diff options
author | Kang Kai <kai.kang@windriver.com> | 2013-01-21 17:03:21 +0800 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2013-01-25 12:42:48 +0000 |
commit | e80f02a93b1c717e6bc7001a05c773290ca68992 (patch) | |
tree | dcc1f97095f9b2a91a63025aa850e9b15a4510b3 /meta/recipes-devtools/perl/perl-5.14.3 | |
parent | 4a7a476785a9bdbd72fd9c32cf640e3c82a2f531 (diff) | |
download | poky-e80f02a93b1c717e6bc7001a05c773290ca68992.tar.gz |
perl-native: update to 5.14.3:
There is a securty issue:
http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2012-5195
Update perl to 5.14.3 could resolve this problem. And update perl-native
first.
(From OE-Core rev: 360401af6e7729a373d0a6d13995714aff121064)
Signed-off-by: Kang Kai <kai.kang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/recipes-devtools/perl/perl-5.14.3')
6 files changed, 236 insertions, 0 deletions
diff --git a/meta/recipes-devtools/perl/perl-5.14.3/Configure-multilib.patch b/meta/recipes-devtools/perl/perl-5.14.3/Configure-multilib.patch new file mode 100644 index 0000000000..9625b0b84e --- /dev/null +++ b/meta/recipes-devtools/perl/perl-5.14.3/Configure-multilib.patch | |||
@@ -0,0 +1,17 @@ | |||
1 | Upstream-Status:Pending | ||
2 | |||
3 | Index: perl-5.12.3/Configure | ||
4 | =================================================================== | ||
5 | --- perl-5.12.3.orig/Configure | ||
6 | +++ perl-5.12.3/Configure | ||
7 | @@ -1316,8 +1316,9 @@ loclibpth="/usr/local/lib /opt/local/lib | ||
8 | loclibpth="$loclibpth /opt/gnu/lib /usr/GNU/lib /opt/GNU/lib" | ||
9 | |||
10 | : general looking path for locating libraries | ||
11 | -glibpth="/lib /usr/lib $xlibpth" | ||
12 | +glibpth="/lib /usr/lib /lib64 /usr/lib64 $xlibpth" | ||
13 | glibpth="$glibpth /usr/ccs/lib /usr/ucblib /usr/local/lib" | ||
14 | +test -f /usr/lib/*-linux-gnu/libc.so && glibpth="/usr/lib/*-linux-gnu $glibpth" | ||
15 | test -f /usr/shlib/libc.so && glibpth="/usr/shlib $glibpth" | ||
16 | test -f /shlib/libc.so && glibpth="/shlib $glibpth" | ||
17 | test -d /usr/lib64 && glibpth="$glibpth /lib64 /usr/lib64 /usr/local/lib64" | ||
diff --git a/meta/recipes-devtools/perl/perl-5.14.3/MM_Unix.pm.patch b/meta/recipes-devtools/perl/perl-5.14.3/MM_Unix.pm.patch new file mode 100644 index 0000000000..eb92ccb678 --- /dev/null +++ b/meta/recipes-devtools/perl/perl-5.14.3/MM_Unix.pm.patch | |||
@@ -0,0 +1,22 @@ | |||
1 | Upstream-Status:Pending | ||
2 | |||
3 | The perl-native should be relocatable while re-use sstate-cache from | ||
4 | another build, especially the original build was renamed/removed. | ||
5 | |||
6 | To get the MakeMaker.pm works in this case, we need perl wrapper here | ||
7 | instead of real perl binary. | ||
8 | |||
9 | Signed-off-by: Wenzong Fan <wenzong.fan@windriver.com> | ||
10 | =================================================================== | ||
11 | --- perl-5.12.3/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm.orig 2011-08-12 16:07:30.000000000 +0800 | ||
12 | +++ perl-5.12.3/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm 2011-08-12 16:08:56.000000000 +0800 | ||
13 | @@ -1019,6 +1019,9 @@ | ||
14 | } | ||
15 | |||
16 | foreach my $name (@$names){ | ||
17 | + # Getting MakeMaker.pm use perl wrapper instead of 'perl.real' directly | ||
18 | + $name =~ s/perl\.real/perl/ if ($name =~ /perl\.real/); | ||
19 | + | ||
20 | foreach my $dir (@$dirs){ | ||
21 | next unless defined $dir; # $self->{PERL_SRC} may be undefined | ||
22 | my ($abs, $val); | ||
diff --git a/meta/recipes-devtools/perl/perl-5.14.3/native-nopacklist.patch b/meta/recipes-devtools/perl/perl-5.14.3/native-nopacklist.patch new file mode 100644 index 0000000000..389c3342fb --- /dev/null +++ b/meta/recipes-devtools/perl/perl-5.14.3/native-nopacklist.patch | |||
@@ -0,0 +1,82 @@ | |||
1 | Upstream-Status:Inappropriate [debian patch] | ||
2 | |||
3 | Part of 52_debian_extutils_hacks.patch just to exclude the installation of .packlist files | ||
4 | |||
5 | Index: perl-5.12.3/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm | ||
6 | =================================================================== | ||
7 | --- perl-5.12.3.orig/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm | ||
8 | +++ perl-5.12.3/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm | ||
9 | @@ -2047,8 +2047,6 @@ doc__install : doc_site_install | ||
10 | |||
11 | pure_perl_install :: all | ||
12 | $(NOECHO) $(MOD_INSTALL) \ | ||
13 | - read }.$self->catfile('$(PERL_ARCHLIB)','auto','$(FULLEXT)','.packlist').q{ \ | ||
14 | - write }.$self->catfile('$(DESTINSTALLARCHLIB)','auto','$(FULLEXT)','.packlist').q{ \ | ||
15 | $(INST_LIB) $(DESTINSTALLPRIVLIB) \ | ||
16 | $(INST_ARCHLIB) $(DESTINSTALLARCHLIB) \ | ||
17 | $(INST_BIN) $(DESTINSTALLBIN) \ | ||
18 | @@ -2074,8 +2072,6 @@ pure_site_install :: all | ||
19 | |||
20 | pure_vendor_install :: all | ||
21 | $(NOECHO) $(MOD_INSTALL) \ | ||
22 | - read }.$self->catfile('$(VENDORARCHEXP)','auto','$(FULLEXT)','.packlist').q{ \ | ||
23 | - write }.$self->catfile('$(DESTINSTALLVENDORARCH)','auto','$(FULLEXT)','.packlist').q{ \ | ||
24 | $(INST_LIB) $(DESTINSTALLVENDORLIB) \ | ||
25 | $(INST_ARCHLIB) $(DESTINSTALLVENDORARCH) \ | ||
26 | $(INST_BIN) $(DESTINSTALLVENDORBIN) \ | ||
27 | @@ -2084,37 +2080,19 @@ pure_vendor_install :: all | ||
28 | $(INST_MAN3DIR) $(DESTINSTALLVENDORMAN3DIR) | ||
29 | |||
30 | doc_perl_install :: all | ||
31 | - $(NOECHO) $(ECHO) Appending installation info to $(DESTINSTALLARCHLIB)/perllocal.pod | ||
32 | - -$(NOECHO) $(MKPATH) $(DESTINSTALLARCHLIB) | ||
33 | - -$(NOECHO) $(DOC_INSTALL) \ | ||
34 | - "Module" "$(NAME)" \ | ||
35 | - "installed into" "$(INSTALLPRIVLIB)" \ | ||
36 | - LINKTYPE "$(LINKTYPE)" \ | ||
37 | - VERSION "$(VERSION)" \ | ||
38 | - EXE_FILES "$(EXE_FILES)" \ | ||
39 | - >> }.$self->catfile('$(DESTINSTALLARCHLIB)','perllocal.pod').q{ | ||
40 | |||
41 | doc_site_install :: all | ||
42 | - $(NOECHO) $(ECHO) Appending installation info to $(DESTINSTALLARCHLIB)/perllocal.pod | ||
43 | - -$(NOECHO) $(MKPATH) $(DESTINSTALLARCHLIB) | ||
44 | + $(NOECHO) $(ECHO) Appending installation info to $(DESTINSTALLSITEARCH)/perllocal.pod | ||
45 | + -$(NOECHO) $(MKPATH) $(DESTINSTALLSITEARCH) | ||
46 | -$(NOECHO) $(DOC_INSTALL) \ | ||
47 | "Module" "$(NAME)" \ | ||
48 | "installed into" "$(INSTALLSITELIB)" \ | ||
49 | LINKTYPE "$(LINKTYPE)" \ | ||
50 | VERSION "$(VERSION)" \ | ||
51 | EXE_FILES "$(EXE_FILES)" \ | ||
52 | - >> }.$self->catfile('$(DESTINSTALLARCHLIB)','perllocal.pod').q{ | ||
53 | + >> }.$self->catfile('$(DESTINSTALLSITEARCH)','perllocal.pod').q{ | ||
54 | |||
55 | doc_vendor_install :: all | ||
56 | - $(NOECHO) $(ECHO) Appending installation info to $(DESTINSTALLARCHLIB)/perllocal.pod | ||
57 | - -$(NOECHO) $(MKPATH) $(DESTINSTALLARCHLIB) | ||
58 | - -$(NOECHO) $(DOC_INSTALL) \ | ||
59 | - "Module" "$(NAME)" \ | ||
60 | - "installed into" "$(INSTALLVENDORLIB)" \ | ||
61 | - LINKTYPE "$(LINKTYPE)" \ | ||
62 | - VERSION "$(VERSION)" \ | ||
63 | - EXE_FILES "$(EXE_FILES)" \ | ||
64 | - >> }.$self->catfile('$(DESTINSTALLARCHLIB)','perllocal.pod').q{ | ||
65 | |||
66 | }; | ||
67 | |||
68 | @@ -2123,13 +2101,12 @@ uninstall :: uninstall_from_$(INSTALLDIR | ||
69 | $(NOECHO) $(NOOP) | ||
70 | |||
71 | uninstall_from_perldirs :: | ||
72 | - $(NOECHO) $(UNINSTALL) }.$self->catfile('$(PERL_ARCHLIB)','auto','$(FULLEXT)','.packlist').q{ | ||
73 | |||
74 | uninstall_from_sitedirs :: | ||
75 | $(NOECHO) $(UNINSTALL) }.$self->catfile('$(SITEARCHEXP)','auto','$(FULLEXT)','.packlist').q{ | ||
76 | |||
77 | uninstall_from_vendordirs :: | ||
78 | - $(NOECHO) $(UNINSTALL) }.$self->catfile('$(VENDORARCHEXP)','auto','$(FULLEXT)','.packlist').q{ | ||
79 | + | ||
80 | }; | ||
81 | |||
82 | join("",@m); | ||
diff --git a/meta/recipes-devtools/perl/perl-5.14.3/native-perlinc.patch b/meta/recipes-devtools/perl/perl-5.14.3/native-perlinc.patch new file mode 100644 index 0000000000..f0bb1f6596 --- /dev/null +++ b/meta/recipes-devtools/perl/perl-5.14.3/native-perlinc.patch | |||
@@ -0,0 +1,26 @@ | |||
1 | Upstream-Status:Inappropriate [embedded specific] | ||
2 | |||
3 | Index: perl-5.8.8/lib/ExtUtils/MM_Unix.pm | ||
4 | =================================================================== | ||
5 | --- perl-5.12.3.orig/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm 2008-10-31 22:01:35.000000000 +0000 | ||
6 | +++ perl-5.12.3/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm 2008-10-31 22:01:35.000000000 +0000 | ||
7 | @@ -1597,6 +1597,19 @@ | ||
8 | $self->{PERL_LIB} ||= $Config{privlibexp}; | ||
9 | $self->{PERL_ARCHLIB} ||= $Config{archlibexp}; | ||
10 | $self->{PERL_INC} = $self->catdir("$self->{PERL_ARCHLIB}","CORE"); # wild guess for now | ||
11 | + # Check for environment override so we'll find the headers in the correct place | ||
12 | + if (defined $ENV{PERL_LIB}) | ||
13 | + { | ||
14 | + $self->{PERL_LIB} = $ENV{PERL_LIB}; | ||
15 | + } | ||
16 | + if (defined $ENV{PERL_ARCHLIB}) | ||
17 | + { | ||
18 | + $self->{PERL_ARCHLIB} = $ENV{PERL_ARCHLIB}; | ||
19 | + } | ||
20 | + if (defined $ENV{PERL_INC}) | ||
21 | + { | ||
22 | + $self->{PERL_INC} = $ENV{PERL_INC}; | ||
23 | + } | ||
24 | my $perl_h; | ||
25 | |||
26 | if (not -f ($perl_h = $self->catfile($self->{PERL_INC},"perl.h")) | ||
diff --git a/meta/recipes-devtools/perl/perl-5.14.3/perl-build-in-t-dir.patch b/meta/recipes-devtools/perl/perl-5.14.3/perl-build-in-t-dir.patch new file mode 100644 index 0000000000..16064ede92 --- /dev/null +++ b/meta/recipes-devtools/perl/perl-5.14.3/perl-build-in-t-dir.patch | |||
@@ -0,0 +1,42 @@ | |||
1 | Upstream-Status:Pending | ||
2 | |||
3 | Perl cannot cross build in a path containing a directory that has the | ||
4 | name of "t". As an example, you can make the perl build fail with | ||
5 | "mkdir -p /tmp/build/t", go to the directory, unpack the sources, | ||
6 | configure and cross build. | ||
7 | |||
8 | You get an error like the following: | ||
9 | pod/buildtoc: no pods at pod/buildtoc line 305. | ||
10 | make[1]: *** [pod/perltoc.pod] Error 255 | ||
11 | |||
12 | The fix is to strip off the top directory that you are building in and | ||
13 | then execute all the same logic as before against the path relative to | ||
14 | the build directory. | ||
15 | |||
16 | Signed-off-by: Jason Wessel <jason.wessel@windriver.com> | ||
17 | --- | ||
18 | pod/buildtoc | 4 +++- | ||
19 | 1 file changed, 3 insertions(+), 1 deletion(-) | ||
20 | |||
21 | --- a/pod/buildtoc | ||
22 | +++ b/pod/buildtoc | ||
23 | @@ -274,8 +274,10 @@ if ($Build{toc}) { | ||
24 | find \&getpods => abs_from_top('lib/'); | ||
25 | |||
26 | sub getpods { | ||
27 | + my $Top = $FindBin::Bin; | ||
28 | if (/\.p(od|m)$/) { | ||
29 | my $file = $File::Find::name; | ||
30 | + $file =~ s!^$Top!!; | ||
31 | return if $file =~ qr!/lib/Pod/Functions.pm\z!; # Used only by pod itself | ||
32 | return if $file =~ m!(?:^|/)t/!; | ||
33 | return if $file =~ m!lib/Attribute/Handlers/demo/!; | ||
34 | @@ -283,7 +285,7 @@ if ($Build{toc}) { | ||
35 | return if $file =~ m!lib/Math/BigInt/t/!; | ||
36 | return if $file =~ m!/Devel/PPPort/[Hh]arness|lib/Devel/Harness!i; | ||
37 | return if $file =~ m!XS/(?:APItest|Typemap)!; | ||
38 | - my $pod = $file; | ||
39 | + my $pod = $file = $File::Find::name; | ||
40 | return if $pod =~ s/pm$/pod/ && -e $pod; | ||
41 | unless (open my $f, '<', $_) { | ||
42 | warn "$0: bogus <$file>: $!"; | ||
diff --git a/meta/recipes-devtools/perl/perl-5.14.3/perl-configpm-switch.patch b/meta/recipes-devtools/perl/perl-5.14.3/perl-configpm-switch.patch new file mode 100644 index 0000000000..c6cc15c93f --- /dev/null +++ b/meta/recipes-devtools/perl/perl-5.14.3/perl-configpm-switch.patch | |||
@@ -0,0 +1,47 @@ | |||
1 | Upstream-Status:Inappropriate [native] | ||
2 | |||
3 | This patch is used for perl-native only. It enables the switching of | ||
4 | configuration files between Config_heavy.pl and | ||
5 | Config_heavy-target.pl by setting the environment variables | ||
6 | PERLCONFIGTARGET - the later containing settings for the target while | ||
7 | the former contains those for the host. This will allow cpan.bbclass | ||
8 | to use the settings appropriate for the native and/or target builds | ||
9 | as required. This also disables the use of the cache since the cached | ||
10 | values would be valid for the host only. | ||
11 | |||
12 | Index: perl-5.14.2/configpm | ||
13 | =================================================================== | ||
14 | --- perl-5.14.2.orig/configpm | ||
15 | +++ perl-5.14.2/configpm | ||
16 | @@ -658,7 +658,7 @@ sub FETCH { | ||
17 | my($self, $key) = @_; | ||
18 | |||
19 | # check for cached value (which may be undef so we use exists not defined) | ||
20 | - return exists $self->{$key} ? $self->{$key} : $self->fetch_string($key); | ||
21 | + return $self->fetch_string($key); | ||
22 | } | ||
23 | |||
24 | ENDOFEND | ||
25 | @@ -816,7 +816,21 @@ $config_txt .= sprintf <<'ENDOFTIE', $fa | ||
26 | sub DESTROY { } | ||
27 | |||
28 | sub AUTOLOAD { | ||
29 | - require 'Config_heavy.pl'; | ||
30 | + my $cfgfile = 'Config_heavy.pl'; | ||
31 | + if (defined $ENV{PERLCONFIGTARGET} and $ENV{PERLCONFIGTARGET} eq "yes") | ||
32 | + { | ||
33 | + $cfgfile = 'Config_heavy-target.pl'; | ||
34 | + } | ||
35 | + if (defined $ENV{PERL_ARCHLIB}) | ||
36 | + { | ||
37 | + push @INC, $ENV{PERL_ARCHLIB}; | ||
38 | + require $cfgfile; | ||
39 | + pop @INC; | ||
40 | + } | ||
41 | + else | ||
42 | + { | ||
43 | + require $cfgfile; | ||
44 | + } | ||
45 | goto \&launcher unless $Config::AUTOLOAD =~ /launcher$/; | ||
46 | die "&Config::AUTOLOAD failed on $Config::AUTOLOAD"; | ||
47 | } | ||