From 360401af6e7729a373d0a6d13995714aff121064 Mon Sep 17 00:00:00 2001 From: Kang Kai Date: Mon, 21 Jan 2013 17:03:21 +0800 Subject: 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. Signed-off-by: Kang Kai --- .../perl/perl-5.14.2/Configure-multilib.patch | 17 --- .../perl/perl-5.14.2/MM_Unix.pm.patch | 22 ---- .../perl/perl-5.14.2/native-nopacklist.patch | 82 -------------- .../perl/perl-5.14.2/native-perlinc.patch | 26 ----- .../perl/perl-5.14.2/perl-build-in-t-dir.patch | 42 ------- .../perl/perl-5.14.2/perl-configpm-switch.patch | 47 -------- .../perl/perl-5.14.3/Configure-multilib.patch | 17 +++ .../perl/perl-5.14.3/MM_Unix.pm.patch | 22 ++++ .../perl/perl-5.14.3/native-nopacklist.patch | 82 ++++++++++++++ .../perl/perl-5.14.3/native-perlinc.patch | 26 +++++ .../perl/perl-5.14.3/perl-build-in-t-dir.patch | 42 +++++++ .../perl/perl-5.14.3/perl-configpm-switch.patch | 47 ++++++++ meta/recipes-devtools/perl/perl-native_5.14.2.bb | 122 --------------------- meta/recipes-devtools/perl/perl-native_5.14.3.bb | 122 +++++++++++++++++++++ 14 files changed, 358 insertions(+), 358 deletions(-) delete mode 100644 meta/recipes-devtools/perl/perl-5.14.2/Configure-multilib.patch delete mode 100644 meta/recipes-devtools/perl/perl-5.14.2/MM_Unix.pm.patch delete mode 100644 meta/recipes-devtools/perl/perl-5.14.2/native-nopacklist.patch delete mode 100644 meta/recipes-devtools/perl/perl-5.14.2/native-perlinc.patch delete mode 100644 meta/recipes-devtools/perl/perl-5.14.2/perl-build-in-t-dir.patch delete mode 100644 meta/recipes-devtools/perl/perl-5.14.2/perl-configpm-switch.patch create mode 100644 meta/recipes-devtools/perl/perl-5.14.3/Configure-multilib.patch create mode 100644 meta/recipes-devtools/perl/perl-5.14.3/MM_Unix.pm.patch create mode 100644 meta/recipes-devtools/perl/perl-5.14.3/native-nopacklist.patch create mode 100644 meta/recipes-devtools/perl/perl-5.14.3/native-perlinc.patch create mode 100644 meta/recipes-devtools/perl/perl-5.14.3/perl-build-in-t-dir.patch create mode 100644 meta/recipes-devtools/perl/perl-5.14.3/perl-configpm-switch.patch delete mode 100644 meta/recipes-devtools/perl/perl-native_5.14.2.bb create mode 100644 meta/recipes-devtools/perl/perl-native_5.14.3.bb (limited to 'meta') diff --git a/meta/recipes-devtools/perl/perl-5.14.2/Configure-multilib.patch b/meta/recipes-devtools/perl/perl-5.14.2/Configure-multilib.patch deleted file mode 100644 index 9625b0b84e..0000000000 --- a/meta/recipes-devtools/perl/perl-5.14.2/Configure-multilib.patch +++ /dev/null @@ -1,17 +0,0 @@ -Upstream-Status:Pending - -Index: perl-5.12.3/Configure -=================================================================== ---- perl-5.12.3.orig/Configure -+++ perl-5.12.3/Configure -@@ -1316,8 +1316,9 @@ loclibpth="/usr/local/lib /opt/local/lib - loclibpth="$loclibpth /opt/gnu/lib /usr/GNU/lib /opt/GNU/lib" - - : general looking path for locating libraries --glibpth="/lib /usr/lib $xlibpth" -+glibpth="/lib /usr/lib /lib64 /usr/lib64 $xlibpth" - glibpth="$glibpth /usr/ccs/lib /usr/ucblib /usr/local/lib" -+test -f /usr/lib/*-linux-gnu/libc.so && glibpth="/usr/lib/*-linux-gnu $glibpth" - test -f /usr/shlib/libc.so && glibpth="/usr/shlib $glibpth" - test -f /shlib/libc.so && glibpth="/shlib $glibpth" - test -d /usr/lib64 && glibpth="$glibpth /lib64 /usr/lib64 /usr/local/lib64" diff --git a/meta/recipes-devtools/perl/perl-5.14.2/MM_Unix.pm.patch b/meta/recipes-devtools/perl/perl-5.14.2/MM_Unix.pm.patch deleted file mode 100644 index eb92ccb678..0000000000 --- a/meta/recipes-devtools/perl/perl-5.14.2/MM_Unix.pm.patch +++ /dev/null @@ -1,22 +0,0 @@ -Upstream-Status:Pending - -The perl-native should be relocatable while re-use sstate-cache from -another build, especially the original build was renamed/removed. - -To get the MakeMaker.pm works in this case, we need perl wrapper here -instead of real perl binary. - -Signed-off-by: Wenzong Fan -=================================================================== ---- perl-5.12.3/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm.orig 2011-08-12 16:07:30.000000000 +0800 -+++ perl-5.12.3/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm 2011-08-12 16:08:56.000000000 +0800 -@@ -1019,6 +1019,9 @@ - } - - foreach my $name (@$names){ -+ # Getting MakeMaker.pm use perl wrapper instead of 'perl.real' directly -+ $name =~ s/perl\.real/perl/ if ($name =~ /perl\.real/); -+ - foreach my $dir (@$dirs){ - next unless defined $dir; # $self->{PERL_SRC} may be undefined - my ($abs, $val); diff --git a/meta/recipes-devtools/perl/perl-5.14.2/native-nopacklist.patch b/meta/recipes-devtools/perl/perl-5.14.2/native-nopacklist.patch deleted file mode 100644 index 389c3342fb..0000000000 --- a/meta/recipes-devtools/perl/perl-5.14.2/native-nopacklist.patch +++ /dev/null @@ -1,82 +0,0 @@ -Upstream-Status:Inappropriate [debian patch] - -Part of 52_debian_extutils_hacks.patch just to exclude the installation of .packlist files - -Index: perl-5.12.3/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm -=================================================================== ---- perl-5.12.3.orig/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm -+++ perl-5.12.3/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm -@@ -2047,8 +2047,6 @@ doc__install : doc_site_install - - pure_perl_install :: all - $(NOECHO) $(MOD_INSTALL) \ -- read }.$self->catfile('$(PERL_ARCHLIB)','auto','$(FULLEXT)','.packlist').q{ \ -- write }.$self->catfile('$(DESTINSTALLARCHLIB)','auto','$(FULLEXT)','.packlist').q{ \ - $(INST_LIB) $(DESTINSTALLPRIVLIB) \ - $(INST_ARCHLIB) $(DESTINSTALLARCHLIB) \ - $(INST_BIN) $(DESTINSTALLBIN) \ -@@ -2074,8 +2072,6 @@ pure_site_install :: all - - pure_vendor_install :: all - $(NOECHO) $(MOD_INSTALL) \ -- read }.$self->catfile('$(VENDORARCHEXP)','auto','$(FULLEXT)','.packlist').q{ \ -- write }.$self->catfile('$(DESTINSTALLVENDORARCH)','auto','$(FULLEXT)','.packlist').q{ \ - $(INST_LIB) $(DESTINSTALLVENDORLIB) \ - $(INST_ARCHLIB) $(DESTINSTALLVENDORARCH) \ - $(INST_BIN) $(DESTINSTALLVENDORBIN) \ -@@ -2084,37 +2080,19 @@ pure_vendor_install :: all - $(INST_MAN3DIR) $(DESTINSTALLVENDORMAN3DIR) - - doc_perl_install :: all -- $(NOECHO) $(ECHO) Appending installation info to $(DESTINSTALLARCHLIB)/perllocal.pod -- -$(NOECHO) $(MKPATH) $(DESTINSTALLARCHLIB) -- -$(NOECHO) $(DOC_INSTALL) \ -- "Module" "$(NAME)" \ -- "installed into" "$(INSTALLPRIVLIB)" \ -- LINKTYPE "$(LINKTYPE)" \ -- VERSION "$(VERSION)" \ -- EXE_FILES "$(EXE_FILES)" \ -- >> }.$self->catfile('$(DESTINSTALLARCHLIB)','perllocal.pod').q{ - - doc_site_install :: all -- $(NOECHO) $(ECHO) Appending installation info to $(DESTINSTALLARCHLIB)/perllocal.pod -- -$(NOECHO) $(MKPATH) $(DESTINSTALLARCHLIB) -+ $(NOECHO) $(ECHO) Appending installation info to $(DESTINSTALLSITEARCH)/perllocal.pod -+ -$(NOECHO) $(MKPATH) $(DESTINSTALLSITEARCH) - -$(NOECHO) $(DOC_INSTALL) \ - "Module" "$(NAME)" \ - "installed into" "$(INSTALLSITELIB)" \ - LINKTYPE "$(LINKTYPE)" \ - VERSION "$(VERSION)" \ - EXE_FILES "$(EXE_FILES)" \ -- >> }.$self->catfile('$(DESTINSTALLARCHLIB)','perllocal.pod').q{ -+ >> }.$self->catfile('$(DESTINSTALLSITEARCH)','perllocal.pod').q{ - - doc_vendor_install :: all -- $(NOECHO) $(ECHO) Appending installation info to $(DESTINSTALLARCHLIB)/perllocal.pod -- -$(NOECHO) $(MKPATH) $(DESTINSTALLARCHLIB) -- -$(NOECHO) $(DOC_INSTALL) \ -- "Module" "$(NAME)" \ -- "installed into" "$(INSTALLVENDORLIB)" \ -- LINKTYPE "$(LINKTYPE)" \ -- VERSION "$(VERSION)" \ -- EXE_FILES "$(EXE_FILES)" \ -- >> }.$self->catfile('$(DESTINSTALLARCHLIB)','perllocal.pod').q{ - - }; - -@@ -2123,13 +2101,12 @@ uninstall :: uninstall_from_$(INSTALLDIR - $(NOECHO) $(NOOP) - - uninstall_from_perldirs :: -- $(NOECHO) $(UNINSTALL) }.$self->catfile('$(PERL_ARCHLIB)','auto','$(FULLEXT)','.packlist').q{ - - uninstall_from_sitedirs :: - $(NOECHO) $(UNINSTALL) }.$self->catfile('$(SITEARCHEXP)','auto','$(FULLEXT)','.packlist').q{ - - uninstall_from_vendordirs :: -- $(NOECHO) $(UNINSTALL) }.$self->catfile('$(VENDORARCHEXP)','auto','$(FULLEXT)','.packlist').q{ -+ - }; - - join("",@m); diff --git a/meta/recipes-devtools/perl/perl-5.14.2/native-perlinc.patch b/meta/recipes-devtools/perl/perl-5.14.2/native-perlinc.patch deleted file mode 100644 index f0bb1f6596..0000000000 --- a/meta/recipes-devtools/perl/perl-5.14.2/native-perlinc.patch +++ /dev/null @@ -1,26 +0,0 @@ -Upstream-Status:Inappropriate [embedded specific] - -Index: perl-5.8.8/lib/ExtUtils/MM_Unix.pm -=================================================================== ---- perl-5.12.3.orig/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm 2008-10-31 22:01:35.000000000 +0000 -+++ perl-5.12.3/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm 2008-10-31 22:01:35.000000000 +0000 -@@ -1597,6 +1597,19 @@ - $self->{PERL_LIB} ||= $Config{privlibexp}; - $self->{PERL_ARCHLIB} ||= $Config{archlibexp}; - $self->{PERL_INC} = $self->catdir("$self->{PERL_ARCHLIB}","CORE"); # wild guess for now -+ # Check for environment override so we'll find the headers in the correct place -+ if (defined $ENV{PERL_LIB}) -+ { -+ $self->{PERL_LIB} = $ENV{PERL_LIB}; -+ } -+ if (defined $ENV{PERL_ARCHLIB}) -+ { -+ $self->{PERL_ARCHLIB} = $ENV{PERL_ARCHLIB}; -+ } -+ if (defined $ENV{PERL_INC}) -+ { -+ $self->{PERL_INC} = $ENV{PERL_INC}; -+ } - my $perl_h; - - if (not -f ($perl_h = $self->catfile($self->{PERL_INC},"perl.h")) diff --git a/meta/recipes-devtools/perl/perl-5.14.2/perl-build-in-t-dir.patch b/meta/recipes-devtools/perl/perl-5.14.2/perl-build-in-t-dir.patch deleted file mode 100644 index 16064ede92..0000000000 --- a/meta/recipes-devtools/perl/perl-5.14.2/perl-build-in-t-dir.patch +++ /dev/null @@ -1,42 +0,0 @@ -Upstream-Status:Pending - -Perl cannot cross build in a path containing a directory that has the -name of "t". As an example, you can make the perl build fail with -"mkdir -p /tmp/build/t", go to the directory, unpack the sources, -configure and cross build. - -You get an error like the following: - pod/buildtoc: no pods at pod/buildtoc line 305. - make[1]: *** [pod/perltoc.pod] Error 255 - -The fix is to strip off the top directory that you are building in and -then execute all the same logic as before against the path relative to -the build directory. - -Signed-off-by: Jason Wessel ---- - pod/buildtoc | 4 +++- - 1 file changed, 3 insertions(+), 1 deletion(-) - ---- a/pod/buildtoc -+++ b/pod/buildtoc -@@ -274,8 +274,10 @@ if ($Build{toc}) { - find \&getpods => abs_from_top('lib/'); - - sub getpods { -+ my $Top = $FindBin::Bin; - if (/\.p(od|m)$/) { - my $file = $File::Find::name; -+ $file =~ s!^$Top!!; - return if $file =~ qr!/lib/Pod/Functions.pm\z!; # Used only by pod itself - return if $file =~ m!(?:^|/)t/!; - return if $file =~ m!lib/Attribute/Handlers/demo/!; -@@ -283,7 +285,7 @@ if ($Build{toc}) { - return if $file =~ m!lib/Math/BigInt/t/!; - return if $file =~ m!/Devel/PPPort/[Hh]arness|lib/Devel/Harness!i; - return if $file =~ m!XS/(?:APItest|Typemap)!; -- my $pod = $file; -+ my $pod = $file = $File::Find::name; - return if $pod =~ s/pm$/pod/ && -e $pod; - unless (open my $f, '<', $_) { - warn "$0: bogus <$file>: $!"; diff --git a/meta/recipes-devtools/perl/perl-5.14.2/perl-configpm-switch.patch b/meta/recipes-devtools/perl/perl-5.14.2/perl-configpm-switch.patch deleted file mode 100644 index c6cc15c93f..0000000000 --- a/meta/recipes-devtools/perl/perl-5.14.2/perl-configpm-switch.patch +++ /dev/null @@ -1,47 +0,0 @@ -Upstream-Status:Inappropriate [native] - -This patch is used for perl-native only. It enables the switching of -configuration files between Config_heavy.pl and -Config_heavy-target.pl by setting the environment variables -PERLCONFIGTARGET - the later containing settings for the target while -the former contains those for the host. This will allow cpan.bbclass -to use the settings appropriate for the native and/or target builds -as required. This also disables the use of the cache since the cached -values would be valid for the host only. - -Index: perl-5.14.2/configpm -=================================================================== ---- perl-5.14.2.orig/configpm -+++ perl-5.14.2/configpm -@@ -658,7 +658,7 @@ sub FETCH { - my($self, $key) = @_; - - # check for cached value (which may be undef so we use exists not defined) -- return exists $self->{$key} ? $self->{$key} : $self->fetch_string($key); -+ return $self->fetch_string($key); - } - - ENDOFEND -@@ -816,7 +816,21 @@ $config_txt .= sprintf <<'ENDOFTIE', $fa - sub DESTROY { } - - sub AUTOLOAD { -- require 'Config_heavy.pl'; -+ my $cfgfile = 'Config_heavy.pl'; -+ if (defined $ENV{PERLCONFIGTARGET} and $ENV{PERLCONFIGTARGET} eq "yes") -+ { -+ $cfgfile = 'Config_heavy-target.pl'; -+ } -+ if (defined $ENV{PERL_ARCHLIB}) -+ { -+ push @INC, $ENV{PERL_ARCHLIB}; -+ require $cfgfile; -+ pop @INC; -+ } -+ else -+ { -+ require $cfgfile; -+ } - goto \&launcher unless $Config::AUTOLOAD =~ /launcher$/; - die "&Config::AUTOLOAD failed on $Config::AUTOLOAD"; - } 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 @@ +Upstream-Status:Pending + +Index: perl-5.12.3/Configure +=================================================================== +--- perl-5.12.3.orig/Configure ++++ perl-5.12.3/Configure +@@ -1316,8 +1316,9 @@ loclibpth="/usr/local/lib /opt/local/lib + loclibpth="$loclibpth /opt/gnu/lib /usr/GNU/lib /opt/GNU/lib" + + : general looking path for locating libraries +-glibpth="/lib /usr/lib $xlibpth" ++glibpth="/lib /usr/lib /lib64 /usr/lib64 $xlibpth" + glibpth="$glibpth /usr/ccs/lib /usr/ucblib /usr/local/lib" ++test -f /usr/lib/*-linux-gnu/libc.so && glibpth="/usr/lib/*-linux-gnu $glibpth" + test -f /usr/shlib/libc.so && glibpth="/usr/shlib $glibpth" + test -f /shlib/libc.so && glibpth="/shlib $glibpth" + 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 @@ +Upstream-Status:Pending + +The perl-native should be relocatable while re-use sstate-cache from +another build, especially the original build was renamed/removed. + +To get the MakeMaker.pm works in this case, we need perl wrapper here +instead of real perl binary. + +Signed-off-by: Wenzong Fan +=================================================================== +--- perl-5.12.3/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm.orig 2011-08-12 16:07:30.000000000 +0800 ++++ perl-5.12.3/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm 2011-08-12 16:08:56.000000000 +0800 +@@ -1019,6 +1019,9 @@ + } + + foreach my $name (@$names){ ++ # Getting MakeMaker.pm use perl wrapper instead of 'perl.real' directly ++ $name =~ s/perl\.real/perl/ if ($name =~ /perl\.real/); ++ + foreach my $dir (@$dirs){ + next unless defined $dir; # $self->{PERL_SRC} may be undefined + 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 @@ +Upstream-Status:Inappropriate [debian patch] + +Part of 52_debian_extutils_hacks.patch just to exclude the installation of .packlist files + +Index: perl-5.12.3/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm +=================================================================== +--- perl-5.12.3.orig/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm ++++ perl-5.12.3/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm +@@ -2047,8 +2047,6 @@ doc__install : doc_site_install + + pure_perl_install :: all + $(NOECHO) $(MOD_INSTALL) \ +- read }.$self->catfile('$(PERL_ARCHLIB)','auto','$(FULLEXT)','.packlist').q{ \ +- write }.$self->catfile('$(DESTINSTALLARCHLIB)','auto','$(FULLEXT)','.packlist').q{ \ + $(INST_LIB) $(DESTINSTALLPRIVLIB) \ + $(INST_ARCHLIB) $(DESTINSTALLARCHLIB) \ + $(INST_BIN) $(DESTINSTALLBIN) \ +@@ -2074,8 +2072,6 @@ pure_site_install :: all + + pure_vendor_install :: all + $(NOECHO) $(MOD_INSTALL) \ +- read }.$self->catfile('$(VENDORARCHEXP)','auto','$(FULLEXT)','.packlist').q{ \ +- write }.$self->catfile('$(DESTINSTALLVENDORARCH)','auto','$(FULLEXT)','.packlist').q{ \ + $(INST_LIB) $(DESTINSTALLVENDORLIB) \ + $(INST_ARCHLIB) $(DESTINSTALLVENDORARCH) \ + $(INST_BIN) $(DESTINSTALLVENDORBIN) \ +@@ -2084,37 +2080,19 @@ pure_vendor_install :: all + $(INST_MAN3DIR) $(DESTINSTALLVENDORMAN3DIR) + + doc_perl_install :: all +- $(NOECHO) $(ECHO) Appending installation info to $(DESTINSTALLARCHLIB)/perllocal.pod +- -$(NOECHO) $(MKPATH) $(DESTINSTALLARCHLIB) +- -$(NOECHO) $(DOC_INSTALL) \ +- "Module" "$(NAME)" \ +- "installed into" "$(INSTALLPRIVLIB)" \ +- LINKTYPE "$(LINKTYPE)" \ +- VERSION "$(VERSION)" \ +- EXE_FILES "$(EXE_FILES)" \ +- >> }.$self->catfile('$(DESTINSTALLARCHLIB)','perllocal.pod').q{ + + doc_site_install :: all +- $(NOECHO) $(ECHO) Appending installation info to $(DESTINSTALLARCHLIB)/perllocal.pod +- -$(NOECHO) $(MKPATH) $(DESTINSTALLARCHLIB) ++ $(NOECHO) $(ECHO) Appending installation info to $(DESTINSTALLSITEARCH)/perllocal.pod ++ -$(NOECHO) $(MKPATH) $(DESTINSTALLSITEARCH) + -$(NOECHO) $(DOC_INSTALL) \ + "Module" "$(NAME)" \ + "installed into" "$(INSTALLSITELIB)" \ + LINKTYPE "$(LINKTYPE)" \ + VERSION "$(VERSION)" \ + EXE_FILES "$(EXE_FILES)" \ +- >> }.$self->catfile('$(DESTINSTALLARCHLIB)','perllocal.pod').q{ ++ >> }.$self->catfile('$(DESTINSTALLSITEARCH)','perllocal.pod').q{ + + doc_vendor_install :: all +- $(NOECHO) $(ECHO) Appending installation info to $(DESTINSTALLARCHLIB)/perllocal.pod +- -$(NOECHO) $(MKPATH) $(DESTINSTALLARCHLIB) +- -$(NOECHO) $(DOC_INSTALL) \ +- "Module" "$(NAME)" \ +- "installed into" "$(INSTALLVENDORLIB)" \ +- LINKTYPE "$(LINKTYPE)" \ +- VERSION "$(VERSION)" \ +- EXE_FILES "$(EXE_FILES)" \ +- >> }.$self->catfile('$(DESTINSTALLARCHLIB)','perllocal.pod').q{ + + }; + +@@ -2123,13 +2101,12 @@ uninstall :: uninstall_from_$(INSTALLDIR + $(NOECHO) $(NOOP) + + uninstall_from_perldirs :: +- $(NOECHO) $(UNINSTALL) }.$self->catfile('$(PERL_ARCHLIB)','auto','$(FULLEXT)','.packlist').q{ + + uninstall_from_sitedirs :: + $(NOECHO) $(UNINSTALL) }.$self->catfile('$(SITEARCHEXP)','auto','$(FULLEXT)','.packlist').q{ + + uninstall_from_vendordirs :: +- $(NOECHO) $(UNINSTALL) }.$self->catfile('$(VENDORARCHEXP)','auto','$(FULLEXT)','.packlist').q{ ++ + }; + + 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 @@ +Upstream-Status:Inappropriate [embedded specific] + +Index: perl-5.8.8/lib/ExtUtils/MM_Unix.pm +=================================================================== +--- perl-5.12.3.orig/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm 2008-10-31 22:01:35.000000000 +0000 ++++ perl-5.12.3/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm 2008-10-31 22:01:35.000000000 +0000 +@@ -1597,6 +1597,19 @@ + $self->{PERL_LIB} ||= $Config{privlibexp}; + $self->{PERL_ARCHLIB} ||= $Config{archlibexp}; + $self->{PERL_INC} = $self->catdir("$self->{PERL_ARCHLIB}","CORE"); # wild guess for now ++ # Check for environment override so we'll find the headers in the correct place ++ if (defined $ENV{PERL_LIB}) ++ { ++ $self->{PERL_LIB} = $ENV{PERL_LIB}; ++ } ++ if (defined $ENV{PERL_ARCHLIB}) ++ { ++ $self->{PERL_ARCHLIB} = $ENV{PERL_ARCHLIB}; ++ } ++ if (defined $ENV{PERL_INC}) ++ { ++ $self->{PERL_INC} = $ENV{PERL_INC}; ++ } + my $perl_h; + + 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 @@ +Upstream-Status:Pending + +Perl cannot cross build in a path containing a directory that has the +name of "t". As an example, you can make the perl build fail with +"mkdir -p /tmp/build/t", go to the directory, unpack the sources, +configure and cross build. + +You get an error like the following: + pod/buildtoc: no pods at pod/buildtoc line 305. + make[1]: *** [pod/perltoc.pod] Error 255 + +The fix is to strip off the top directory that you are building in and +then execute all the same logic as before against the path relative to +the build directory. + +Signed-off-by: Jason Wessel +--- + pod/buildtoc | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +--- a/pod/buildtoc ++++ b/pod/buildtoc +@@ -274,8 +274,10 @@ if ($Build{toc}) { + find \&getpods => abs_from_top('lib/'); + + sub getpods { ++ my $Top = $FindBin::Bin; + if (/\.p(od|m)$/) { + my $file = $File::Find::name; ++ $file =~ s!^$Top!!; + return if $file =~ qr!/lib/Pod/Functions.pm\z!; # Used only by pod itself + return if $file =~ m!(?:^|/)t/!; + return if $file =~ m!lib/Attribute/Handlers/demo/!; +@@ -283,7 +285,7 @@ if ($Build{toc}) { + return if $file =~ m!lib/Math/BigInt/t/!; + return if $file =~ m!/Devel/PPPort/[Hh]arness|lib/Devel/Harness!i; + return if $file =~ m!XS/(?:APItest|Typemap)!; +- my $pod = $file; ++ my $pod = $file = $File::Find::name; + return if $pod =~ s/pm$/pod/ && -e $pod; + unless (open my $f, '<', $_) { + 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 @@ +Upstream-Status:Inappropriate [native] + +This patch is used for perl-native only. It enables the switching of +configuration files between Config_heavy.pl and +Config_heavy-target.pl by setting the environment variables +PERLCONFIGTARGET - the later containing settings for the target while +the former contains those for the host. This will allow cpan.bbclass +to use the settings appropriate for the native and/or target builds +as required. This also disables the use of the cache since the cached +values would be valid for the host only. + +Index: perl-5.14.2/configpm +=================================================================== +--- perl-5.14.2.orig/configpm ++++ perl-5.14.2/configpm +@@ -658,7 +658,7 @@ sub FETCH { + my($self, $key) = @_; + + # check for cached value (which may be undef so we use exists not defined) +- return exists $self->{$key} ? $self->{$key} : $self->fetch_string($key); ++ return $self->fetch_string($key); + } + + ENDOFEND +@@ -816,7 +816,21 @@ $config_txt .= sprintf <<'ENDOFTIE', $fa + sub DESTROY { } + + sub AUTOLOAD { +- require 'Config_heavy.pl'; ++ my $cfgfile = 'Config_heavy.pl'; ++ if (defined $ENV{PERLCONFIGTARGET} and $ENV{PERLCONFIGTARGET} eq "yes") ++ { ++ $cfgfile = 'Config_heavy-target.pl'; ++ } ++ if (defined $ENV{PERL_ARCHLIB}) ++ { ++ push @INC, $ENV{PERL_ARCHLIB}; ++ require $cfgfile; ++ pop @INC; ++ } ++ else ++ { ++ require $cfgfile; ++ } + goto \&launcher unless $Config::AUTOLOAD =~ /launcher$/; + die "&Config::AUTOLOAD failed on $Config::AUTOLOAD"; + } diff --git a/meta/recipes-devtools/perl/perl-native_5.14.2.bb b/meta/recipes-devtools/perl/perl-native_5.14.2.bb deleted file mode 100644 index 9a066e2ecf..0000000000 --- a/meta/recipes-devtools/perl/perl-native_5.14.2.bb +++ /dev/null @@ -1,122 +0,0 @@ -DESCRIPTION = "Perl is a popular scripting language." -HOMEPAGE = "http://www.perl.org/" -SECTION = "libs" -LICENSE = "Artistic-1.0 | GPL-1.0" -LIC_FILES_CHKSUM = "file://Copying;md5=2b4c6ffbcfcbdee469f02565f253d81a \ - file://Artistic;md5=f921793d03cc6d63ec4b15e9be8fd3f8" -PR = "r1" - -LIC_FILES_CHKSUM = "file://Copying;md5=2b4c6ffbcfcbdee469f02565f253d81a \ - file://Artistic;md5=f921793d03cc6d63ec4b15e9be8fd3f8" - -# 5.10.1 has Module::Build built-in -PROVIDES += "libmodule-build-perl-native" - -SRC_URI = "http://www.cpan.org/src/5.0/perl-${PV}.tar.gz \ - file://Configure-multilib.patch \ - file://perl-configpm-switch.patch \ - file://native-nopacklist.patch \ - file://native-perlinc.patch \ - file://MM_Unix.pm.patch \ - file://debian/errno_ver.diff \ - file://dynaloaderhack.patch \ - file://perl-build-in-t-dir.patch" - -SRC_URI[md5sum] = "3306fbaf976dcebdcd49b2ac0be00eb9" -SRC_URI[sha256sum] = "6488359573bd7d41761bf935f66f827dc220fb3df961ef9b775d51fbd66548d3" - -S = "${WORKDIR}/perl-${PV}" - -inherit native - -NATIVE_PACKAGE_PATH_SUFFIX = "/${PN}" - -export LD="${CCLD}" - -do_configure () { - ./Configure \ - -Dcc="${CC}" \ - -Dcflags="${CFLAGS}" \ - -Dldflags="${LDFLAGS}" \ - -Dcf_by="Open Embedded" \ - -Dprefix=${prefix} \ - -Dvendorprefix=${prefix} \ - -Dvendorprefix=${prefix} \ - -Dsiteprefix=${prefix} \ - \ - -Dbin=${STAGING_BINDIR}/${PN} \ - -Dprivlib=${STAGING_LIBDIR}/perl/${PV} \ - -Darchlib=${STAGING_LIBDIR}/perl/${PV} \ - -Dvendorlib=${STAGING_LIBDIR}/perl/${PV} \ - -Dvendorarch=${STAGING_LIBDIR}/perl/${PV} \ - -Dsitelib=${STAGING_LIBDIR}/perl/${PV} \ - -Dsitearch=${STAGING_LIBDIR}/perl/${PV} \ - \ - -Duseshrplib \ - -Dusethreads \ - -Duseithreads \ - -Duselargefiles \ - -Dnoextensions=ODBM_File \ - -Ud_dosuid \ - -Ui_db \ - -Ui_ndbm \ - -Ui_gdbm \ - -Di_shadow \ - -Di_syslog \ - -Duseperlio \ - -Dman3ext=3pm \ - -Uafs \ - -Ud_csh \ - -Uusesfio \ - -Uusenm -des -} - -do_install () { - oe_runmake 'DESTDIR=${D}' install - - # We need a hostperl link for building perl - ln -sf perl${PV} ${D}${bindir}/hostperl - - ln -sf perl ${D}${libdir}/perl5 - - install -d ${D}${libdir}/perl/${PV}/CORE \ - ${D}${datadir}/perl/${PV}/ExtUtils - - # Save native config - install config.sh ${D}${libdir}/perl - install lib/Config.pm ${D}${libdir}/perl/${PV}/ - install lib/ExtUtils/typemap ${D}${libdir}/perl/${PV}/ExtUtils/ - - # perl shared library headers - for i in av.h bitcount.h config.h cop.h cv.h dosish.h embed.h embedvar.h \ - EXTERN.h fakesdio.h fakethr.h form.h gv.h handy.h hv.h INTERN.h \ - intrpvar.h iperlsys.h keywords.h l1_char_class_tab.h malloc_ctl.h \ - metaconfig.h mg.h mydtrace.h nostdio.h opcode.h op.h opnames.h \ - op_reg_common.h overload.h pad.h parser.h patchlevel.h perlapi.h \ - perl.h perlio.h perliol.h perlsdio.h perlsfio.h perlvars.h \ - perly.h pp.h pp_proto.h proto.h reentr.h regcharclass.h regcomp.h \ - regexp.h regnodes.h scope.h sv.h thread.h time64_config.h \ - time64.h uconfig.h unixish.h utf8.h utfebcdic.h util.h \ - uudmap.h warnings.h XSUB.h - do - install $i ${D}${libdir}/perl/${PV}/CORE - done - - create_wrapper ${D}${bindir}/perl PERL5LIB='$PERL5LIB:${STAGING_LIBDIR}/perl/${PV}:${STAGING_LIBDIR}/perl/' - create_wrapper ${D}${bindir}/perl${PV} PERL5LIB='$PERL5LIB:${STAGING_LIBDIR}/perl/${PV}:${STAGING_LIBDIR}/perl/' -} - -SYSROOT_PREPROCESS_FUNCS += "perl_sysroot_create_wrapper" - -perl_sysroot_create_wrapper () { - mkdir -p ${SYSROOT_DESTDIR}${bindir} - # Create a wrapper that /usr/bin/env perl will use to get perl-native. - # This MUST live in the normal bindir. - cat > ${SYSROOT_DESTDIR}${bindir}/../nativeperl << EOF -#!/bin/sh -realpath=\`readlink -fn \$0\` -exec \`dirname \$realpath\`/perl-native/perl "\$@" -EOF - chmod 0755 ${SYSROOT_DESTDIR}${bindir}/../nativeperl - cat ${SYSROOT_DESTDIR}${bindir}/../nativeperl -} diff --git a/meta/recipes-devtools/perl/perl-native_5.14.3.bb b/meta/recipes-devtools/perl/perl-native_5.14.3.bb new file mode 100644 index 0000000000..58bb916fcc --- /dev/null +++ b/meta/recipes-devtools/perl/perl-native_5.14.3.bb @@ -0,0 +1,122 @@ +DESCRIPTION = "Perl is a popular scripting language." +HOMEPAGE = "http://www.perl.org/" +SECTION = "libs" +LICENSE = "Artistic-1.0 | GPL-1.0" +LIC_FILES_CHKSUM = "file://Copying;md5=2b4c6ffbcfcbdee469f02565f253d81a \ + file://Artistic;md5=f921793d03cc6d63ec4b15e9be8fd3f8" +PR = "r0" + +LIC_FILES_CHKSUM = "file://Copying;md5=2b4c6ffbcfcbdee469f02565f253d81a \ + file://Artistic;md5=f921793d03cc6d63ec4b15e9be8fd3f8" + +# 5.10.1 has Module::Build built-in +PROVIDES += "libmodule-build-perl-native" + +SRC_URI = "http://www.cpan.org/src/5.0/perl-${PV}.tar.gz \ + file://Configure-multilib.patch \ + file://perl-configpm-switch.patch \ + file://native-nopacklist.patch \ + file://native-perlinc.patch \ + file://MM_Unix.pm.patch \ + file://debian/errno_ver.diff \ + file://dynaloaderhack.patch \ + file://perl-build-in-t-dir.patch" + +SRC_URI[md5sum] = "f6a3d878c688d111b495c87db56c5be5" +SRC_URI[sha256sum] = "03638a4f01bc26b81231233671524b4163849a3a9ea5cc2397293080c4ea339f" + +S = "${WORKDIR}/perl-${PV}" + +inherit native + +NATIVE_PACKAGE_PATH_SUFFIX = "/${PN}" + +export LD="${CCLD}" + +do_configure () { + ./Configure \ + -Dcc="${CC}" \ + -Dcflags="${CFLAGS}" \ + -Dldflags="${LDFLAGS}" \ + -Dcf_by="Open Embedded" \ + -Dprefix=${prefix} \ + -Dvendorprefix=${prefix} \ + -Dvendorprefix=${prefix} \ + -Dsiteprefix=${prefix} \ + \ + -Dbin=${STAGING_BINDIR}/${PN} \ + -Dprivlib=${STAGING_LIBDIR}/perl/${PV} \ + -Darchlib=${STAGING_LIBDIR}/perl/${PV} \ + -Dvendorlib=${STAGING_LIBDIR}/perl/${PV} \ + -Dvendorarch=${STAGING_LIBDIR}/perl/${PV} \ + -Dsitelib=${STAGING_LIBDIR}/perl/${PV} \ + -Dsitearch=${STAGING_LIBDIR}/perl/${PV} \ + \ + -Duseshrplib \ + -Dusethreads \ + -Duseithreads \ + -Duselargefiles \ + -Dnoextensions=ODBM_File \ + -Ud_dosuid \ + -Ui_db \ + -Ui_ndbm \ + -Ui_gdbm \ + -Di_shadow \ + -Di_syslog \ + -Duseperlio \ + -Dman3ext=3pm \ + -Uafs \ + -Ud_csh \ + -Uusesfio \ + -Uusenm -des +} + +do_install () { + oe_runmake 'DESTDIR=${D}' install + + # We need a hostperl link for building perl + ln -sf perl${PV} ${D}${bindir}/hostperl + + ln -sf perl ${D}${libdir}/perl5 + + install -d ${D}${libdir}/perl/${PV}/CORE \ + ${D}${datadir}/perl/${PV}/ExtUtils + + # Save native config + install config.sh ${D}${libdir}/perl + install lib/Config.pm ${D}${libdir}/perl/${PV}/ + install lib/ExtUtils/typemap ${D}${libdir}/perl/${PV}/ExtUtils/ + + # perl shared library headers + for i in av.h bitcount.h config.h cop.h cv.h dosish.h embed.h embedvar.h \ + EXTERN.h fakesdio.h fakethr.h form.h gv.h handy.h hv.h INTERN.h \ + intrpvar.h iperlsys.h keywords.h l1_char_class_tab.h malloc_ctl.h \ + metaconfig.h mg.h mydtrace.h nostdio.h opcode.h op.h opnames.h \ + op_reg_common.h overload.h pad.h parser.h patchlevel.h perlapi.h \ + perl.h perlio.h perliol.h perlsdio.h perlsfio.h perlvars.h \ + perly.h pp.h pp_proto.h proto.h reentr.h regcharclass.h regcomp.h \ + regexp.h regnodes.h scope.h sv.h thread.h time64_config.h \ + time64.h uconfig.h unixish.h utf8.h utfebcdic.h util.h \ + uudmap.h warnings.h XSUB.h + do + install $i ${D}${libdir}/perl/${PV}/CORE + done + + create_wrapper ${D}${bindir}/perl PERL5LIB='$PERL5LIB:${STAGING_LIBDIR}/perl/${PV}:${STAGING_LIBDIR}/perl/' + create_wrapper ${D}${bindir}/perl${PV} PERL5LIB='$PERL5LIB:${STAGING_LIBDIR}/perl/${PV}:${STAGING_LIBDIR}/perl/' +} + +SYSROOT_PREPROCESS_FUNCS += "perl_sysroot_create_wrapper" + +perl_sysroot_create_wrapper () { + mkdir -p ${SYSROOT_DESTDIR}${bindir} + # Create a wrapper that /usr/bin/env perl will use to get perl-native. + # This MUST live in the normal bindir. + cat > ${SYSROOT_DESTDIR}${bindir}/../nativeperl << EOF +#!/bin/sh +realpath=\`readlink -fn \$0\` +exec \`dirname \$realpath\`/perl-native/perl "\$@" +EOF + chmod 0755 ${SYSROOT_DESTDIR}${bindir}/../nativeperl + cat ${SYSROOT_DESTDIR}${bindir}/../nativeperl +} -- cgit 1.2.3-korg