diff options
Diffstat (limited to 'import-layers/yocto-poky/meta/recipes-devtools/perl')
15 files changed, 964 insertions, 14 deletions
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/perl/libxml-parser-perl_2.44.bb b/import-layers/yocto-poky/meta/recipes-devtools/perl/libxml-parser-perl_2.44.bb index 9561a5955..3acd82686 100644 --- a/import-layers/yocto-poky/meta/recipes-devtools/perl/libxml-parser-perl_2.44.bb +++ b/import-layers/yocto-poky/meta/recipes-devtools/perl/libxml-parser-perl_2.44.bb @@ -3,7 +3,7 @@ SECTION = "libs" LICENSE = "Artistic-1.0 | GPL-1.0+" LIC_FILES_CHKSUM = "file://README;beginline=2;endline=6;md5=c8767d7516229f07b26e42d1cf8b51f1" -DEPENDS += "expat expat-native" +DEPENDS += "expat" SRC_URI = "http://www.cpan.org/modules/by-module/XML/XML-Parser-${PV}.tar.gz" SRC_URI[md5sum] = "af4813fe3952362451201ced6fbce379" @@ -32,4 +32,3 @@ do_compile_class-native() { } BBCLASSEXTEND="native" - diff --git a/import-layers/yocto-poky/meta/recipes-devtools/perl/perl-native_5.22.1.bb b/import-layers/yocto-poky/meta/recipes-devtools/perl/perl-native_5.22.1.bb index ed8222f24..1c21522be 100644 --- a/import-layers/yocto-poky/meta/recipes-devtools/perl/perl-native_5.22.1.bb +++ b/import-layers/yocto-poky/meta/recipes-devtools/perl/perl-native_5.22.1.bb @@ -11,6 +11,7 @@ SRC_URI += "\ file://debian/errno_ver.diff \ file://dynaloaderhack.patch \ file://perl-PathTools-don-t-filter-out-blib-from-INC.patch \ + file://perl-remove-nm-from-libswanted.patch \ " SRC_URI[md5sum] = "6671e4829cbaf9cecafa9a84f141b0a3" diff --git a/import-layers/yocto-poky/meta/recipes-devtools/perl/perl-ptest.inc b/import-layers/yocto-poky/meta/recipes-devtools/perl/perl-ptest.inc index 948ea7cdd..d136c5c0e 100644 --- a/import-layers/yocto-poky/meta/recipes-devtools/perl/perl-ptest.inc +++ b/import-layers/yocto-poky/meta/recipes-devtools/perl/perl-ptest.inc @@ -5,10 +5,11 @@ SRC_URI += "file://run-ptest \ do_install_ptest () { mkdir -p ${D}${PTEST_PATH} + sed -e "s:\/usr\/local:${bindir}:g" -i cpan/version/t/* sed -e "s:\/opt:\/usr:" -i Porting/add-package.pl sed -e "s:\/local\/gnu\/:\/:" -i hints/cxux.sh - tar -cf - * --exclude \*.o --exclude libperl.so --exclude Makefile --exclude makefile --exclude hostperl \ - --exclude miniperl --exclude generate_uudmap --exclude patches | ( cd ${D}${PTEST_PATH} && tar -xf - ) + tar -c --exclude=\*.o --exclude=libperl.so --exclude=Makefile --exclude=makefile --exclude=hostperl \ + --exclude=miniperl --exclude=generate_uudmap --exclude=patches * | ( cd ${D}${PTEST_PATH} && tar -x ) sed -i -e "s,${D},,g" \ -e "s,--sysroot=${STAGING_DIR_HOST},,g" \ @@ -34,4 +35,4 @@ python populate_packages_prepend() { '${PN}-ptest%s', '%s', recursive=True, match_path=True) } -RDEPENDS_${PN}-ptest += "${PN}-modules ${PN}-doc ${PN}-misc sed" +RDEPENDS_${PN}-ptest += "${PN}-modules ${PN}-doc ${PN}-misc sed libssp" diff --git a/import-layers/yocto-poky/meta/recipes-devtools/perl/perl-rdepends_5.22.1.inc b/import-layers/yocto-poky/meta/recipes-devtools/perl/perl-rdepends_5.22.1.inc index 830ecce53..2c497fe6a 100644 --- a/import-layers/yocto-poky/meta/recipes-devtools/perl/perl-rdepends_5.22.1.inc +++ b/import-layers/yocto-poky/meta/recipes-devtools/perl/perl-rdepends_5.22.1.inc @@ -18,8 +18,9 @@ RDEPENDS_${PN}-pod += "perl" # Some additional dependencies that the above doesn't manage to figure out RDEPENDS_${PN}-module-file-spec += "${PN}-module-file-spec-unix" -DEPENDS_${PN}-module-math-bigint += "${PN}-module-math-bigint-calc" +RDEPENDS_${PN}-module-math-bigint += "${PN}-module-math-bigint-calc" RDEPENDS_${PN}-module-thread-queue += "${PN}-module-attributes" +RDEPENDS_${PN}-module-overload += "${PN}-module-overloading" # Depends list diff --git a/import-layers/yocto-poky/meta/recipes-devtools/perl/perl/config.sh b/import-layers/yocto-poky/meta/recipes-devtools/perl/perl/config.sh index 59e016e4d..b2a7f2cc4 100644 --- a/import-layers/yocto-poky/meta/recipes-devtools/perl/perl/config.sh +++ b/import-layers/yocto-poky/meta/recipes-devtools/perl/perl/config.sh @@ -8,7 +8,7 @@ # Package name : perl5 # Source directory : . -# Configuration time: Thu Jun 18 05:37:27 UTC 2015 +# Configuration time: Fri May 6 20:13:46 PDT 2016 # Configured by : Open Embedded # Target system : linux qemux86-64 3.19.5-yocto-standard #1 smp preempt tue jun 16 00:28:17 pdt 2015 x86_64 gnulinux @@ -66,7 +66,7 @@ aphostname='' api_revision='5' api_subversion='0' api_version='22' -api_versionstring='5.22.1' +api_versionstring='5.22.0' ar='ar' archlib='@LIBDIR@/perl/5.22.1/@ARCH@-thread-multi' archlibexp='@STAGINGDIR@@LIBDIR@/perl/5.22.1/@ARCH@-thread-multi' @@ -96,7 +96,7 @@ ccsymbols='' ccversion='' cf_by='Open Embedded' cf_email='Open Embedded@localhost.localdomain' -cf_time='Thu Jun 18 05:37:27 UTC 2015' +cf_time='Fri May 6 20:13:46 PDT 2016' charbits='8' charsize='1' chgrp='' @@ -1194,7 +1194,7 @@ vendorprefixexp='@EXECPREFIX@' vendorscript='@USRBIN@' vendorscriptexp='@USRBIN@' version='5.22.1' -version_patchlevel_string='version 22 subversion 0' +version_patchlevel_string='version 22 subversion 1' versiononly='undef' vi='' xlibpth='@LIBDIR@/386 @BASELIBDIR@386' @@ -1204,7 +1204,7 @@ zcat='' zip='zip' PERL_REVISION=5 PERL_VERSION=22 -PERL_SUBVERSION=0 +PERL_SUBVERSION=1 PERL_API_REVISION=5 PERL_API_VERSION=22 PERL_API_SUBVERSION=0 diff --git a/import-layers/yocto-poky/meta/recipes-devtools/perl/perl/fix_bad_rpath.patch b/import-layers/yocto-poky/meta/recipes-devtools/perl/perl/fix_bad_rpath.patch index 69ac43477..76501283e 100644 --- a/import-layers/yocto-poky/meta/recipes-devtools/perl/perl/fix_bad_rpath.patch +++ b/import-layers/yocto-poky/meta/recipes-devtools/perl/perl/fix_bad_rpath.patch @@ -1,5 +1,5 @@ Upstream-Status:Inappropriate [embedded specific] -Signed-Off-By: Nitin A Kamble <nitin.a.kamble@intel.com> +Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com> 2011/07/01 Fix these Package QA warnings before they are converted into fetal errors: diff --git a/import-layers/yocto-poky/meta/recipes-devtools/perl/perl/perl-configure.sh b/import-layers/yocto-poky/meta/recipes-devtools/perl/perl/perl-configure.sh index e72ce49f9..25e7f8b96 100755 --- a/import-layers/yocto-poky/meta/recipes-devtools/perl/perl/perl-configure.sh +++ b/import-layers/yocto-poky/meta/recipes-devtools/perl/perl/perl-configure.sh @@ -15,7 +15,7 @@ echo sh Configure -des \ -Dprefix=/usr \ -Dvendorprefix=/usr \ -Dsiteprefix=/usr \ - -Dotherlibdirs=/usr/lib/perl5/5.12.3 \ + -Dotherlibdirs=/usr/lib/perl5/5.22.1 \ -Duseshrplib \ -Dusethreads \ -Duseithreads \ diff --git a/import-layers/yocto-poky/meta/recipes-devtools/perl/perl/perl-fix-CVE-2015-8607.patch b/import-layers/yocto-poky/meta/recipes-devtools/perl/perl/perl-fix-CVE-2015-8607.patch new file mode 100644 index 000000000..7b4a0015c --- /dev/null +++ b/import-layers/yocto-poky/meta/recipes-devtools/perl/perl/perl-fix-CVE-2015-8607.patch @@ -0,0 +1,74 @@ +From 652c8d4852a69f1bb4d387946f9b76350a1f0d0e Mon Sep 17 00:00:00 2001 +From: Tony Cook <tony@develop-help.com> +Date: Tue, 15 Dec 2015 10:56:54 +1100 +Subject: [PATCH] perl: fix CVE-2015-8607 + +ensure File::Spec::canonpath() preserves taint + +Previously the unix specific XS implementation of canonpath() would +return an untainted path when supplied a tainted path. + +For the empty string case, newSVpvs() already sets taint as needed on +its result. + +This issue was assigned CVE-2015-8607. [perl #126862] + +Backport patch from http://perl5.git.perl.org/perl.git/commitdiff/0b6f93036de171c12ba95d415e264d9cf7f4e1fd + +Upstream-Status: Backport +CVE: CVE-2015-8607 +Signed-off-by: Mingli Yu <Mingli.Yu@windriver.com> +--- + dist/PathTools/Cwd.xs | 1 + + dist/PathTools/t/taint.t | 19 ++++++++++++++++++- + 2 files changed, 19 insertions(+), 1 deletion(-) + +diff --git a/dist/PathTools/Cwd.xs b/dist/PathTools/Cwd.xs +index 9d4dcf0..3d018dc 100644 +--- a/dist/PathTools/Cwd.xs ++++ b/dist/PathTools/Cwd.xs +@@ -535,6 +535,7 @@ THX_unix_canonpath(pTHX_ SV *path) + *o = 0; + SvPOK_on(retval); + SvCUR_set(retval, o - SvPVX(retval)); ++ SvTAINT(retval); + return retval; + } + +diff --git a/dist/PathTools/t/taint.t b/dist/PathTools/t/taint.t +index 309b3e5..48f8c5b 100644 +--- a/dist/PathTools/t/taint.t ++++ b/dist/PathTools/t/taint.t +@@ -12,7 +12,7 @@ use Test::More; + BEGIN { + plan( + ${^TAINT} +- ? (tests => 17) ++ ? (tests => 21) + : (skip_all => "A perl without taint support") + ); + } +@@ -34,3 +34,20 @@ foreach my $func (@Functions) { + + # Previous versions of Cwd tainted $^O + is !tainted($^O), 1, "\$^O should not be tainted"; ++ ++{ ++ # [perl #126862] canonpath() loses taint ++ my $tainted = substr($ENV{PATH}, 0, 0); ++ # yes, getcwd()'s result should be tainted, and is tested above ++ # but be sure ++ ok tainted(File::Spec->canonpath($tainted . Cwd::getcwd)), ++ "canonpath() keeps taint on non-empty string"; ++ ok tainted(File::Spec->canonpath($tainted)), ++ "canonpath() keeps taint on empty string"; ++ ++ (Cwd::getcwd() =~ /^(.*)/); ++ my $untainted = $1; ++ ok !tainted($untainted), "make sure our untainted value is untainted"; ++ ok !tainted(File::Spec->canonpath($untainted)), ++ "canonpath() doesn't add taint to untainted string"; ++} +-- +2.8.1 + diff --git a/import-layers/yocto-poky/meta/recipes-devtools/perl/perl/perl-fix-CVE-2016-1238.patch b/import-layers/yocto-poky/meta/recipes-devtools/perl/perl/perl-fix-CVE-2016-1238.patch new file mode 100644 index 000000000..730ef178a --- /dev/null +++ b/import-layers/yocto-poky/meta/recipes-devtools/perl/perl/perl-fix-CVE-2016-1238.patch @@ -0,0 +1,352 @@ +From 9987be3d24286d96d9dccec0433253ee8ad894b4 Mon Sep 17 00:00:00 2001 +From: Tony Cook <tony@develop-help.com> +Date: Tue, 21 Jun 2016 10:02:02 +1000 +Subject: [PATCH] perl: fix CVE-2016-1238 + +(perl #127834) remove . from the end of @INC if complex modules are loaded + +While currently Encode and Storable are know to attempt to load modules +not included in the core, updates to other modules may lead to those +also attempting to load new modules, so be safe and remove . for those +as well. + +Backport patch from http://perl5.git.perl.org/perl.git/commitdiff/cee96d52c39b1e7b36e1c62d38bcd8d86e9a41ab + +Upstream-Status: Backport +CVE: CVE-2016-1238 +Signed-off-by: Mingli Yu <Mingli.Yu@windriver.com> +--- + cpan/Archive-Tar/bin/ptar | 1 + + cpan/Archive-Tar/bin/ptardiff | 1 + + cpan/Archive-Tar/bin/ptargrep | 1 + + cpan/CPAN/scripts/cpan | 1 + + cpan/Digest-SHA/shasum | 1 + + cpan/Encode/bin/enc2xs | 1 + + cpan/Encode/bin/encguess | 1 + + cpan/Encode/bin/piconv | 1 + + cpan/Encode/bin/ucmlint | 1 + + cpan/Encode/bin/unidump | 1 + + cpan/ExtUtils-MakeMaker/bin/instmodsh | 1 + + cpan/IO-Compress/bin/zipdetails | 1 + + cpan/JSON-PP/bin/json_pp | 1 + + cpan/Test-Harness/bin/prove | 1 + + dist/ExtUtils-ParseXS/lib/ExtUtils/xsubpp | 1 + + dist/Module-CoreList/corelist | 1 + + ext/Pod-Html/bin/pod2html | 1 + + utils/c2ph.PL | 1 + + utils/h2ph.PL | 2 ++ + utils/h2xs.PL | 2 ++ + utils/libnetcfg.PL | 1 + + utils/perlbug.PL | 1 + + utils/perldoc.PL | 5 ++++- + utils/perlivp.PL | 2 ++ + utils/splain.PL | 6 ++++++ + 25 files changed, 36 insertions(+), 1 deletion(-) + +diff --git a/cpan/Archive-Tar/bin/ptar b/cpan/Archive-Tar/bin/ptar +index 0eaffa7..9dc6402 100644 +--- a/cpan/Archive-Tar/bin/ptar ++++ b/cpan/Archive-Tar/bin/ptar +@@ -1,6 +1,7 @@ + #!/usr/bin/perl + use strict; + ++BEGIN { pop @INC if $INC[-1] eq '.' } + use File::Find; + use Getopt::Std; + use Archive::Tar; +diff --git a/cpan/Archive-Tar/bin/ptardiff b/cpan/Archive-Tar/bin/ptardiff +index 66bd859..4668fa6 100644 +--- a/cpan/Archive-Tar/bin/ptardiff ++++ b/cpan/Archive-Tar/bin/ptardiff +@@ -1,5 +1,6 @@ + #!/usr/bin/perl + ++BEGIN { pop @INC if $INC[-1] eq '.' } + use strict; + use Archive::Tar; + use Getopt::Std; +diff --git a/cpan/Archive-Tar/bin/ptargrep b/cpan/Archive-Tar/bin/ptargrep +index 1a320f1..8dc6b4f 100644 +--- a/cpan/Archive-Tar/bin/ptargrep ++++ b/cpan/Archive-Tar/bin/ptargrep +@@ -4,6 +4,7 @@ + # archive. See 'ptargrep --help' for more documentation. + # + ++BEGIN { pop @INC if $INC[-1] eq '.' } + use strict; + use warnings; + +diff --git a/cpan/CPAN/scripts/cpan b/cpan/CPAN/scripts/cpan +index 5f4320e..ccba47e 100644 +--- a/cpan/CPAN/scripts/cpan ++++ b/cpan/CPAN/scripts/cpan +@@ -1,5 +1,6 @@ + #!/usr/local/bin/perl + ++BEGIN { pop @INC if $INC[-1] eq '.' } + use strict; + use vars qw($VERSION); + +diff --git a/cpan/Digest-SHA/shasum b/cpan/Digest-SHA/shasum +index 14ddd60..62a2b0e 100644 +--- a/cpan/Digest-SHA/shasum ++++ b/cpan/Digest-SHA/shasum +@@ -13,6 +13,7 @@ + ## "-0" option for reading bit strings, and + ## "-p" option for portable digests (to be deprecated). + ++BEGIN { pop @INC if $INC[-1] eq '.' } + use strict; + use warnings; + use Fcntl; +diff --git a/cpan/Encode/bin/enc2xs b/cpan/Encode/bin/enc2xs +index 4d64e38..473a15c 100644 +--- a/cpan/Encode/bin/enc2xs ++++ b/cpan/Encode/bin/enc2xs +@@ -4,6 +4,7 @@ BEGIN { + # with $ENV{PERL_CORE} set + # In case we need it in future... + require Config; import Config; ++ pop @INC if $INC[-1] eq '.'; + } + use strict; + use warnings; +diff --git a/cpan/Encode/bin/encguess b/cpan/Encode/bin/encguess +index 5d7ac80..0be5c7c 100644 +--- a/cpan/Encode/bin/encguess ++++ b/cpan/Encode/bin/encguess +@@ -1,5 +1,6 @@ + #!./perl + use 5.008001; ++BEGIN { pop @INC if $INC[-1] eq '.' } + use strict; + use warnings; + use Encode; +diff --git a/cpan/Encode/bin/piconv b/cpan/Encode/bin/piconv +index c1dad9e..60b2a59 100644 +--- a/cpan/Encode/bin/piconv ++++ b/cpan/Encode/bin/piconv +@@ -1,6 +1,7 @@ + #!./perl + # $Id: piconv,v 2.7 2014/05/31 09:48:48 dankogai Exp $ + # ++BEGIN { pop @INC if $INC[-1] eq '.' } + use 5.8.0; + use strict; + use Encode ; +diff --git a/cpan/Encode/bin/ucmlint b/cpan/Encode/bin/ucmlint +index 622376d..25e0d67 100644 +--- a/cpan/Encode/bin/ucmlint ++++ b/cpan/Encode/bin/ucmlint +@@ -3,6 +3,7 @@ + # $Id: ucmlint,v 2.2 2008/03/12 09:51:11 dankogai Exp $ + # + ++BEGIN { pop @INC if $INC[-1] eq '.' } + use strict; + our $VERSION = do { my @r = (q$Revision: 2.2 $ =~ /\d+/g); sprintf "%d."."%02d" x $#r, @r }; + +diff --git a/cpan/Encode/bin/unidump b/cpan/Encode/bin/unidump +index ae0da30..f190827 100644 +--- a/cpan/Encode/bin/unidump ++++ b/cpan/Encode/bin/unidump +@@ -1,5 +1,6 @@ + #!./perl + ++BEGIN { pop @INC if $INC[-1] eq '.' } + use strict; + use Encode; + use Getopt::Std; +diff --git a/cpan/ExtUtils-MakeMaker/bin/instmodsh b/cpan/ExtUtils-MakeMaker/bin/instmodsh +index e551434..b3b109f 100644 +--- a/cpan/ExtUtils-MakeMaker/bin/instmodsh ++++ b/cpan/ExtUtils-MakeMaker/bin/instmodsh +@@ -1,5 +1,6 @@ + #!/usr/bin/perl -w + ++BEGIN { pop @INC if $INC[-1] eq '.' } + use strict; + use IO::File; + use ExtUtils::Packlist; +diff --git a/cpan/IO-Compress/bin/zipdetails b/cpan/IO-Compress/bin/zipdetails +index 0249850..1b9c70a 100644 +--- a/cpan/IO-Compress/bin/zipdetails ++++ b/cpan/IO-Compress/bin/zipdetails +@@ -5,6 +5,7 @@ + # Display info on the contents of a Zip file + # + ++BEGIN { pop @INC if $INC[-1] eq '.' } + use strict; + use warnings ; + +diff --git a/cpan/JSON-PP/bin/json_pp b/cpan/JSON-PP/bin/json_pp +index df9d243..896cd2f 100644 +--- a/cpan/JSON-PP/bin/json_pp ++++ b/cpan/JSON-PP/bin/json_pp +@@ -1,5 +1,6 @@ + #!/usr/bin/perl + ++BEGIN { pop @INC if $INC[-1] eq '.' } + use strict; + use Getopt::Long; + +diff --git a/cpan/Test-Harness/bin/prove b/cpan/Test-Harness/bin/prove +index 6637cc4..d71b238 100644 +--- a/cpan/Test-Harness/bin/prove ++++ b/cpan/Test-Harness/bin/prove +@@ -1,5 +1,6 @@ + #!/usr/bin/perl -w + ++BEGIN { pop @INC if $INC[-1] eq '.' } + use strict; + use warnings; + use App::Prove; +diff --git a/dist/ExtUtils-ParseXS/lib/ExtUtils/xsubpp b/dist/ExtUtils-ParseXS/lib/ExtUtils/xsubpp +index e2ac71a..d596cdf 100644 +--- a/dist/ExtUtils-ParseXS/lib/ExtUtils/xsubpp ++++ b/dist/ExtUtils-ParseXS/lib/ExtUtils/xsubpp +@@ -1,5 +1,6 @@ + #!perl + use 5.006; ++BEGIN { pop @INC if $INC[-1] eq '.' } + use strict; + eval { + require ExtUtils::ParseXS; +diff --git a/dist/Module-CoreList/corelist b/dist/Module-CoreList/corelist +index aa4a945..bbe61cc 100644 +--- a/dist/Module-CoreList/corelist ++++ b/dist/Module-CoreList/corelist +@@ -130,6 +130,7 @@ requested perl versions. + + =cut + ++BEGIN { pop @INC if $INC[-1] eq '.' } + use Module::CoreList; + use Getopt::Long qw(:config no_ignore_case); + use Pod::Usage; +diff --git a/ext/Pod-Html/bin/pod2html b/ext/Pod-Html/bin/pod2html +index b022859..7d1d232 100644 +--- a/ext/Pod-Html/bin/pod2html ++++ b/ext/Pod-Html/bin/pod2html +@@ -216,6 +216,7 @@ This program is distributed under the Artistic License. + + =cut + ++BEGIN { pop @INC if $INC[-1] eq '.' } + use Pod::Html; + + pod2html @ARGV; +diff --git a/utils/c2ph.PL b/utils/c2ph.PL +index 13389ec..cef0b5c 100644 +--- a/utils/c2ph.PL ++++ b/utils/c2ph.PL +@@ -280,6 +280,7 @@ Anyway, here it is. Should run on perl v4 or greater. Maybe less. + + $RCSID = '$Id: c2ph,v 1.7 95/10/28 10:41:47 tchrist Exp Locker: tchrist $'; + ++BEGIN { pop @INC if $INC[-1] eq '.' } + use File::Temp; + + ###################################################################### +diff --git a/utils/h2ph.PL b/utils/h2ph.PL +index 55c1f72..300b756 100644 +--- a/utils/h2ph.PL ++++ b/utils/h2ph.PL +@@ -36,6 +36,8 @@ $Config{startperl} + + print OUT <<'!NO!SUBS!'; + ++BEGIN { pop @INC if $INC[-1] eq '.' } ++ + use strict; + + use Config; +diff --git a/utils/h2xs.PL b/utils/h2xs.PL +index 268f680..f95ee0c 100644 +--- a/utils/h2xs.PL ++++ b/utils/h2xs.PL +@@ -35,6 +35,8 @@ $Config{startperl} + + print OUT <<'!NO!SUBS!'; + ++BEGIN { pop @INC if $INC[-1] eq '.' } ++ + use warnings; + + =head1 NAME +diff --git a/utils/libnetcfg.PL b/utils/libnetcfg.PL +index 59a2de8..26d2f99 100644 +--- a/utils/libnetcfg.PL ++++ b/utils/libnetcfg.PL +@@ -97,6 +97,7 @@ Jarkko Hietaniemi, conversion into libnetcfg for inclusion into Perl 5.8. + + # $Id: Configure,v 1.8 1997/03/04 09:22:32 gbarr Exp $ + ++BEGIN { pop @INC if $INC[-1] eq '.' } + use strict; + use IO::File; + use Getopt::Std; +diff --git a/utils/perlbug.PL b/utils/perlbug.PL +index 885785a..ae8c343 100644 +--- a/utils/perlbug.PL ++++ b/utils/perlbug.PL +@@ -57,6 +57,7 @@ print OUT <<'!NO!SUBS!'; + my @patches = Config::local_patches(); + my $patch_tags = join "", map /(\S+)/ ? "+$1 " : (), @patches; + ++BEGIN { pop @INC if $INC[-1] eq '.' } + use warnings; + use strict; + use Config; +diff --git a/utils/perldoc.PL b/utils/perldoc.PL +index e201de9..cd60bd4 100644 +--- a/utils/perldoc.PL ++++ b/utils/perldoc.PL +@@ -44,7 +44,10 @@ $Config{startperl} + # This "$file" file was generated by "$0" + + require 5; +-BEGIN { \$^W = 1 if \$ENV{'PERLDOCDEBUG'} } ++BEGIN { ++ \$^W = 1 if \$ENV{'PERLDOCDEBUG'}; ++ pop \@INC if \$INC[-1] eq '.'; ++} + use Pod::Perldoc; + exit( Pod::Perldoc->run() ); + +diff --git a/utils/perlivp.PL b/utils/perlivp.PL +index cc49f96..696a44e 100644 +--- a/utils/perlivp.PL ++++ b/utils/perlivp.PL +@@ -39,6 +39,8 @@ print OUT "\n# perlivp $^V\n"; + + print OUT <<'!NO!SUBS!'; + ++BEGIN { pop @INC if $INC[-1] eq '.' } ++ + sub usage { + warn "@_\n" if @_; + print << " EOUSAGE"; +diff --git a/utils/splain.PL b/utils/splain.PL +index 9c70b61..cae84a0 100644 +--- a/utils/splain.PL ++++ b/utils/splain.PL +@@ -38,6 +38,12 @@ $Config{startperl} + if \$running_under_some_shell; + !GROK!THIS! + ++print <<'!NO!SUBS!'; ++ ++BEGIN { pop @INC if $INC[-1] eq '.' } ++ ++!NO!SUBS! ++ + while (<IN>) { + print OUT unless /^package diagnostics/; + } +-- +2.8.1 + diff --git a/import-layers/yocto-poky/meta/recipes-devtools/perl/perl/perl-fix-CVE-2016-2381.patch b/import-layers/yocto-poky/meta/recipes-devtools/perl/perl/perl-fix-CVE-2016-2381.patch new file mode 100644 index 000000000..99fa8d9a6 --- /dev/null +++ b/import-layers/yocto-poky/meta/recipes-devtools/perl/perl/perl-fix-CVE-2016-2381.patch @@ -0,0 +1,114 @@ +CVE: CVE-2016-2381 +Upstream-Status: Backport + +Backport patch to fix CVE-2016-2381 from + +http://perl5.git.perl.org/perl.git/commitdiff/ae37b791a73a9e78dedb89fb2429d2628cf58076 + +Signed-off-by: Kai Kang <kai.kang@windriver.com> +--- +From: Tony Cook <tony@develop-help.com> +Date: Wed, 27 Jan 2016 00:52:15 +0000 (+1100) +Subject: remove duplicate environment variables from environ +X-Git-Tag: v5.23.9~170 +X-Git-Url: http://perl5.git.perl.org/perl.git/commitdiff_plain/ae37b791a73a9e78dedb89fb2429d2628cf58076 + +remove duplicate environment variables from environ + +If we see duplicate environment variables while iterating over +environ[]: + +a) make sure we use the same value in %ENV that getenv() returns. + +Previously on a duplicate, %ENV would have the last entry for the name +from environ[], but a typical getenv() would return the first entry. + +Rather than assuming all getenv() implementations return the first entry +explicitly call getenv() to ensure they agree. + +b) remove duplicate entries from environ + +Previously if there was a duplicate definition for a name in environ[] +setting that name in %ENV could result in an unsafe value being passed +to a child process, so ensure environ[] has no duplicates. + +CVE-2016-2381 +--- + +diff --git a/perl.c b/perl.c +index 4a324c6..5c71fd0 100644 +--- a/perl.c ++++ b/perl.c +@@ -4329,23 +4329,70 @@ S_init_postdump_symbols(pTHX_ int argc, char **argv, char **env) + } + if (env) { + char *s, *old_var; ++ STRLEN nlen; + SV *sv; ++ HV *dups = newHV(); ++ + for (; *env; env++) { + old_var = *env; + + if (!(s = strchr(old_var,'=')) || s == old_var) + continue; ++ nlen = s - old_var; + + #if defined(MSDOS) && !defined(DJGPP) + *s = '\0'; + (void)strupr(old_var); + *s = '='; + #endif +- sv = newSVpv(s+1, 0); +- (void)hv_store(hv, old_var, s - old_var, sv, 0); ++ if (hv_exists(hv, old_var, nlen)) { ++ const char *name = savepvn(old_var, nlen); ++ ++ /* make sure we use the same value as getenv(), otherwise code that ++ uses getenv() (like setlocale()) might see a different value to %ENV ++ */ ++ sv = newSVpv(PerlEnv_getenv(name), 0); ++ ++ /* keep a count of the dups of this name so we can de-dup environ later */ ++ if (hv_exists(dups, name, nlen)) ++ ++SvIVX(*hv_fetch(dups, name, nlen, 0)); ++ else ++ (void)hv_store(dups, name, nlen, newSViv(1), 0); ++ ++ Safefree(name); ++ } ++ else { ++ sv = newSVpv(s+1, 0); ++ } ++ (void)hv_store(hv, old_var, nlen, sv, 0); + if (env_is_not_environ) + mg_set(sv); + } ++ if (HvKEYS(dups)) { ++ /* environ has some duplicate definitions, remove them */ ++ HE *entry; ++ hv_iterinit(dups); ++ while ((entry = hv_iternext_flags(dups, 0))) { ++ STRLEN nlen; ++ const char *name = HePV(entry, nlen); ++ IV count = SvIV(HeVAL(entry)); ++ IV i; ++ SV **valp = hv_fetch(hv, name, nlen, 0); ++ ++ assert(valp); ++ ++ /* try to remove any duplicate names, depending on the ++ * implementation used in my_setenv() the iteration might ++ * not be necessary, but let's be safe. ++ */ ++ for (i = 0; i < count; ++i) ++ my_setenv(name, 0); ++ ++ /* and set it back to the value we set $ENV{name} to */ ++ my_setenv(name, SvPV_nolen(*valp)); ++ } ++ } ++ SvREFCNT_dec_NN(dups); + } + #endif /* USE_ENVIRON_ARRAY */ + #endif /* !PERL_MICRO */ diff --git a/import-layers/yocto-poky/meta/recipes-devtools/perl/perl/perl-fix-CVE-2016-6185.patch b/import-layers/yocto-poky/meta/recipes-devtools/perl/perl/perl-fix-CVE-2016-6185.patch new file mode 100644 index 000000000..2722af35b --- /dev/null +++ b/import-layers/yocto-poky/meta/recipes-devtools/perl/perl/perl-fix-CVE-2016-6185.patch @@ -0,0 +1,128 @@ +From 7cedaa8bc2ca9e63369d0e2d4c4c23af9febb93a Mon Sep 17 00:00:00 2001 +From: Father Chrysostomos <sprout@cpan.org> +Date: Sat, 2 Jul 2016 22:56:51 -0700 +Subject: [PATCH] perl: fix CVE-2016-6185 +MIME-Version: 1.0 + +Don't let XSLoader load relative paths + +[rt.cpan.org #115808] + +The logic in XSLoader for determining the library goes like this: + + my $c = () = split(/::/,$caller,-1); + $modlibname =~ s,[\\/][^\\/]+$,, while $c--; # Q&D basename + my $file = "$modlibname/auto/$modpname/$modfname.bundle"; + +(That last line varies by platform.) + +$caller is the calling package. $modlibname is the calling file. It +removes as many path segments from $modlibname as there are segments +in $caller. So if you have Foo/Bar/XS.pm calling XSLoader from the +Foo::Bar package, the $modlibname will end up containing the path in +@INC where XS.pm was found, followed by "/Foo". Usually the fallback +to Dynaloader::bootstrap_inherit, which does an @INC search, makes +things Just Work. + +But if our hypothetical Foo/Bar/XS.pm actually calls +XSLoader::load from inside a string eval, then path ends up being +"(eval 1)/auto/Foo/Bar/Bar.bundle". + +So if someone creates a directory named '(eval 1)' with a naughty +binary file in it, it will be loaded if a script using Foo::Bar is run +in the parent directory. + +This commit makes XSLoader fall back to Dynaloader's @INC search if +the calling file has a relative path that is not found in @INC. + +Backport patch from http://perl5.git.perl.org/perl.git/commitdiff/08e3451d7 + +Upstream-Status: Backport +CVE: CVE-2016-6185 +Signed-off-by: Mingli Yu <Mingli.Yu@windriver.com> +--- + dist/XSLoader/XSLoader_pm.PL | 25 +++++++++++++++++++++++++ + dist/XSLoader/t/XSLoader.t | 27 ++++++++++++++++++++++++++- + 2 files changed, 51 insertions(+), 1 deletion(-) + +diff --git a/dist/XSLoader/XSLoader_pm.PL b/dist/XSLoader/XSLoader_pm.PL +index 668411d..778e46b 100644 +--- a/dist/XSLoader/XSLoader_pm.PL ++++ b/dist/XSLoader/XSLoader_pm.PL +@@ -104,6 +104,31 @@ print OUT <<'EOT'; + my $modpname = join('/',@modparts); + my $c = () = split(/::/,$caller,-1); + $modlibname =~ s,[\\/][^\\/]+$,, while $c--; # Q&D basename ++ # Does this look like a relative path? ++ if ($modlibname !~ m|^[\\/]|) { ++ # Someone may have a #line directive that changes the file name, or ++ # may be calling XSLoader::load from inside a string eval. We cer- ++ # tainly do not want to go loading some code that is not in @INC, ++ # as it could be untrusted. ++ # ++ # We could just fall back to DynaLoader here, but then the rest of ++ # this function would go untested in the perl core, since all @INC ++ # paths are relative during testing. That would be a time bomb ++ # waiting to happen, since bugs could be introduced into the code. ++ # ++ # So look through @INC to see if $modlibname is in it. A rela- ++ # tive $modlibname is not a common occurrence, so this block is ++ # not hot code. ++ FOUND: { ++ for (@INC) { ++ if ($_ eq $modlibname) { ++ last FOUND; ++ } ++ } ++ # Not found. Fall back to DynaLoader. ++ goto \&XSLoader::bootstrap_inherit; ++ } ++ } + EOT + + my $dl_dlext = quotemeta($Config::Config{'dlext'}); +diff --git a/dist/XSLoader/t/XSLoader.t b/dist/XSLoader/t/XSLoader.t +index 2ff11fe..1e86faa 100644 +--- a/dist/XSLoader/t/XSLoader.t ++++ b/dist/XSLoader/t/XSLoader.t +@@ -33,7 +33,7 @@ my %modules = ( + 'Time::HiRes'=> q| ::can_ok( 'Time::HiRes' => 'usleep' ) |, # 5.7.3 + ); + +-plan tests => keys(%modules) * 3 + 9; ++plan tests => keys(%modules) * 3 + 10; + + # Try to load the module + use_ok( 'XSLoader' ); +@@ -125,3 +125,28 @@ XSLoader::load("Devel::Peek"); + EOS + or ::diag $@; + } ++ ++SKIP: { ++ skip "File::Path not available", 1 ++ unless eval { require File::Path }; ++ my $name = "phooo$$"; ++ File::Path::make_path("$name/auto/Foo/Bar"); ++ open my $fh, ++ ">$name/auto/Foo/Bar/Bar.$Config::Config{'dlext'}"; ++ close $fh; ++ my $fell_back; ++ local *XSLoader::bootstrap_inherit = sub { ++ $fell_back++; ++ # Break out of the calling subs ++ goto the_test; ++ }; ++ eval <<END; ++#line 1 $name ++package Foo::Bar; ++XSLoader::load("Foo::Bar"); ++END ++ the_test: ++ ok $fell_back, ++ 'XSLoader will not load relative paths based on (caller)[1]'; ++ File::Path::remove_tree($name); ++} +-- +2.8.1 + diff --git a/import-layers/yocto-poky/meta/recipes-devtools/perl/perl/perl-fix-conflict-between-skip_all-and-END.patch b/import-layers/yocto-poky/meta/recipes-devtools/perl/perl/perl-fix-conflict-between-skip_all-and-END.patch new file mode 100644 index 000000000..de946dbec --- /dev/null +++ b/import-layers/yocto-poky/meta/recipes-devtools/perl/perl/perl-fix-conflict-between-skip_all-and-END.patch @@ -0,0 +1,181 @@ +Some Perl tests fail when run on a cross-compiled target machine. Apply +a slightly tweaked upstream patch to fix the problems. Notes: + 1. as of 2 Jun 2016, the original patch has been applied to the current + EUMM releases, but has not made it into perl core yet. + 2. when the base perl package is upgraded in Yocto, this patch may need + to be replaced by the original upstream version to correctly apply + to the current version of ExtUtils-MakeMaker at that time. + +[YOCTO #8656] + +Upstream-Status: Backport + +Signed-off-by: Bill Randle <william.c.randle@intel.com> + +From 4a07a3bd18363986112cf2b39dec3c2985353ffb Mon Sep 17 00:00:00 2001 +From: Francois Perrad <francois.perrad@gadz.org> +Date: Mon, 22 Dec 2014 19:04:34 +0100 +Subject: [PATCH] fix conflict between skip_all and END section + +since the commit 430de781809a6be3bcd25a349dc40ce54405ab53 +the test suite fails in cross-compil environment (perl-5.21.6 & perl-5.21.7) +like this : + + $ ./perl harness -v ../cpan/ExtUtils-MakeMaker/t/INSTALL_BASE.t + ../cpan/ExtUtils-MakeMaker/t/INSTALL_BASE.t .. + 1..0 # SKIP cross-compiling and make not available + ok 1 - chdir updir + ok 2 - teardown + # Looks like you planned 0 tests but ran 2. + skipped: cross-compiling and make not available + +this commit restores the implicit call of plan() at import time of Test::More + +Signed-off-by: Francois Perrad <francois.perrad@gadz.org> +--- + cpan/ExtUtils-MakeMaker/t/INSTALL_BASE.t | 7 ++++--- + cpan/ExtUtils-MakeMaker/t/PL_FILES.t | 4 ++-- + cpan/ExtUtils-MakeMaker/t/basic.t | 4 ++-- + cpan/ExtUtils-MakeMaker/t/echo.t | 6 +++--- + cpan/ExtUtils-MakeMaker/t/min_perl_version.t | 4 ++-- + cpan/ExtUtils-MakeMaker/t/pm_to_blib.t | 4 ++-- + cpan/ExtUtils-MakeMaker/t/recurs.t | 4 ++-- + cpan/ExtUtils-MakeMaker/t/several_authors.t | 4 ++-- + 8 files changed, 19 insertions(+), 18 deletions(-) + +diff --git a/cpan/ExtUtils-MakeMaker/t/INSTALL_BASE.t b/cpan/ExtUtils-MakeMaker/t/INSTALL_BASE.t +index f27b62c..3bbb3a6 100644 +--- a/cpan/ExtUtils-MakeMaker/t/INSTALL_BASE.t ++++ b/cpan/ExtUtils-MakeMaker/t/INSTALL_BASE.t +@@ -15,12 +15,13 @@ $CLEANUP &&= 1; # so always 1 or numerically 0 + + use MakeMaker::Test::Utils; + use MakeMaker::Test::Setup::BFD; +-use Test::More; + use Config; + use ExtUtils::MM; +-plan !MM->can_run(make()) && $ENV{PERL_CORE} && $Config{'usecrosscompile'} ++use Test::More ++ !MM->can_run(make()) && $ENV{PERL_CORE} && $Config{'usecrosscompile'} + ? (skip_all => "cross-compiling and make not available") +- : (tests => 3 + $CLEANUP + @INSTDIRS * (15 + $CLEANUP)); ++ : (); ++plan tests => 3 + $CLEANUP + @INSTDIRS * (15 + $CLEANUP); + + my $Is_VMS = $^O eq 'VMS'; + +diff --git a/cpan/ExtUtils-MakeMaker/t/PL_FILES.t b/cpan/ExtUtils-MakeMaker/t/PL_FILES.t +index 0779dbb..85d53a5 100644 +--- a/cpan/ExtUtils-MakeMaker/t/PL_FILES.t ++++ b/cpan/ExtUtils-MakeMaker/t/PL_FILES.t +@@ -11,9 +11,9 @@ use File::Temp qw[tempdir]; + use MakeMaker::Test::Setup::PL_FILES; + use MakeMaker::Test::Utils; + use Config; +-use Test::More; + use ExtUtils::MM; +-plan !MM->can_run(make()) && $ENV{PERL_CORE} && $Config{'usecrosscompile'} ++use Test::More ++ !MM->can_run(make()) && $ENV{PERL_CORE} && $Config{'usecrosscompile'} + ? (skip_all => "cross-compiling and make not available") + : (tests => 9); + +diff --git a/cpan/ExtUtils-MakeMaker/t/basic.t b/cpan/ExtUtils-MakeMaker/t/basic.t +index 3dd66ad..eddf2e9 100644 +--- a/cpan/ExtUtils-MakeMaker/t/basic.t ++++ b/cpan/ExtUtils-MakeMaker/t/basic.t +@@ -20,9 +20,9 @@ use utf8; + use MakeMaker::Test::Utils; + use MakeMaker::Test::Setup::BFD; + use Config; +-use Test::More; + use ExtUtils::MM; +-plan !MM->can_run(make()) && $ENV{PERL_CORE} && $Config{'usecrosscompile'} ++use Test::More ++ !MM->can_run(make()) && $ENV{PERL_CORE} && $Config{'usecrosscompile'} + ? (skip_all => "cross-compiling and make not available") + : (tests => 171); + use File::Find; +diff --git a/cpan/ExtUtils-MakeMaker/t/echo.t b/cpan/ExtUtils-MakeMaker/t/echo.t +index 789b85f..c43bc47 100644 +--- a/cpan/ExtUtils-MakeMaker/t/echo.t ++++ b/cpan/ExtUtils-MakeMaker/t/echo.t +@@ -14,11 +14,11 @@ use MakeMaker::Test::Utils; + use File::Temp; + use Cwd 'abs_path'; + +-use Test::More; + use ExtUtils::MM; +-plan !MM->can_run(make()) && $ENV{PERL_CORE} && $Config{'usecrosscompile'} ++use Test::More ++ !MM->can_run(make()) && $ENV{PERL_CORE} && $Config{'usecrosscompile'} + ? (skip_all => "cross-compiling and make not available") +- : (); ++ : (tests => 18); + + #--------------------- Setup + +diff --git a/cpan/ExtUtils-MakeMaker/t/min_perl_version.t b/cpan/ExtUtils-MakeMaker/t/min_perl_version.t +index c5d78d6..2ef118d 100644 +--- a/cpan/ExtUtils-MakeMaker/t/min_perl_version.t ++++ b/cpan/ExtUtils-MakeMaker/t/min_perl_version.t +@@ -13,9 +13,9 @@ use TieOut; + use MakeMaker::Test::Utils; + use MakeMaker::Test::Setup::MPV; + use Config; +-use Test::More; + use ExtUtils::MM; +-plan !MM->can_run(make()) && $ENV{PERL_CORE} && $Config{'usecrosscompile'} ++use Test::More ++ !MM->can_run(make()) && $ENV{PERL_CORE} && $Config{'usecrosscompile'} + ? (skip_all => "cross-compiling and make not available") + : (tests => 36); + use File::Path; +diff --git a/cpan/ExtUtils-MakeMaker/t/pm_to_blib.t b/cpan/ExtUtils-MakeMaker/t/pm_to_blib.t +index f1e348e..ebfa26c 100644 +--- a/cpan/ExtUtils-MakeMaker/t/pm_to_blib.t ++++ b/cpan/ExtUtils-MakeMaker/t/pm_to_blib.t +@@ -12,9 +12,9 @@ use ExtUtils::MakeMaker; + use MakeMaker::Test::Utils; + use MakeMaker::Test::Setup::BFD; + use Config; +-use Test::More; + use ExtUtils::MM; +-plan !MM->can_run(make()) && $ENV{PERL_CORE} && $Config{'usecrosscompile'} ++use Test::More ++ !MM->can_run(make()) && $ENV{PERL_CORE} && $Config{'usecrosscompile'} + ? (skip_all => "cross-compiling and make not available") + : 'no_plan'; + +diff --git a/cpan/ExtUtils-MakeMaker/t/recurs.t b/cpan/ExtUtils-MakeMaker/t/recurs.t +index 84c09a2..661e0db 100644 +--- a/cpan/ExtUtils-MakeMaker/t/recurs.t ++++ b/cpan/ExtUtils-MakeMaker/t/recurs.t +@@ -14,9 +14,9 @@ use File::Temp qw[tempdir]; + use MakeMaker::Test::Utils; + use MakeMaker::Test::Setup::Recurs; + use Config; +-use Test::More; + use ExtUtils::MM; +-plan !MM->can_run(make()) && $ENV{PERL_CORE} && $Config{'usecrosscompile'} ++use Test::More ++ !MM->can_run(make()) && $ENV{PERL_CORE} && $Config{'usecrosscompile'} + ? (skip_all => "cross-compiling and make not available") + : (tests => 26); + +diff --git a/cpan/ExtUtils-MakeMaker/t/several_authors.t b/cpan/ExtUtils-MakeMaker/t/several_authors.t +index 1a75a3e..869e9f0 100644 +--- a/cpan/ExtUtils-MakeMaker/t/several_authors.t ++++ b/cpan/ExtUtils-MakeMaker/t/several_authors.t +@@ -13,9 +13,9 @@ use TieOut; + use MakeMaker::Test::Utils; + use MakeMaker::Test::Setup::SAS; + use Config; +-use Test::More; + use ExtUtils::MM; +-plan !MM->can_run(make()) && $ENV{PERL_CORE} && $Config{'usecrosscompile'} ++use Test::More ++ !MM->can_run(make()) && $ENV{PERL_CORE} && $Config{'usecrosscompile'} + ? (skip_all => "cross-compiling and make not available") + : (tests => 20); + use File::Path; diff --git a/import-layers/yocto-poky/meta/recipes-devtools/perl/perl/perl-remove-nm-from-libswanted.patch b/import-layers/yocto-poky/meta/recipes-devtools/perl/perl/perl-remove-nm-from-libswanted.patch new file mode 100644 index 000000000..c489f05bf --- /dev/null +++ b/import-layers/yocto-poky/meta/recipes-devtools/perl/perl/perl-remove-nm-from-libswanted.patch @@ -0,0 +1,30 @@ +From 4732711e2548b6d734ca831d65dbcf501a89774e Mon Sep 17 00:00:00 2001 +From: Andreas Koenig <andk@cpan.org> +Date: Sun, 3 Jan 2016 08:40:33 +0100 +Subject: [PATCH] Remove nm from libswanted + +Nm stood for "New Math" library in the context of 1994. 2014 a conflicting +library libnm appeared that has a network manager context. + +Upstream-Status: Backport [commit 4732711e on branch blead, tag v5.25.0] + +--- + Configure | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/Configure b/Configure +index 0e71b4b..cfbdaa1 100755 +--- a/Configure ++++ b/Configure +@@ -1464,7 +1464,7 @@ libswanted_uselargefiles='' + : set usesocks on the Configure command line to enable socks. + : List of libraries we want. + : If anyone needs extra -lxxx, put those in a hint file. +-libswanted="cl pthread socket bind inet nsl nm ndbm gdbm dbm db malloc dl ld" ++libswanted="cl pthread socket bind inet nsl ndbm gdbm dbm db malloc dl ld" + libswanted="$libswanted sun m crypt sec util c cposix posix ucb bsd BSD" + : We probably want to search /usr/shlib before most other libraries. + : This is only used by the lib/ExtUtils/MakeMaker.pm routine extliblist. +-- +2.9.2 + diff --git a/import-layers/yocto-poky/meta/recipes-devtools/perl/perl/perl-test-customized.patch b/import-layers/yocto-poky/meta/recipes-devtools/perl/perl/perl-test-customized.patch new file mode 100644 index 000000000..84b0b88f2 --- /dev/null +++ b/import-layers/yocto-poky/meta/recipes-devtools/perl/perl/perl-test-customized.patch @@ -0,0 +1,61 @@ +The OE core recipies customize some ExtUtils-MakeMaker modules, +which causes their MD5 sum to mismatch the provided table and the +corresponding tests to fail. Also, we patch several test files with +a backported patch. Update list of hashes to reflect the patched files. + +Upstream-Status: Inappropriate [embedded specific] + +Signed-off-by: Bill Randle <william.c.randle@intel.com> + +Index: perl-5.22.1/t/porting/customized.dat +=================================================================== +--- perl-5.22.1.orig/t/porting/customized.dat 2015-10-31 13:36:16.000000000 +0000 ++++ perl-5.22.1/t/porting/customized.dat 2016-06-02 12:50:10.381030204 -0700 +@@ -1,8 +1,8 @@ + CPAN cpan/CPAN/lib/CPAN.pm ce62c43d72f101c011184dbbc59e21c2790826f0 + ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/Command/MM.pm 7f4dfd0fe884bd42412bcf04ca80ef97b39c1d54 + ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/Liblist.pm bef099988b15fb0b2a1f5ac48c01af1f7f36d329 +-ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/Liblist/Kid.pm 8168e18f0e3ce3ece4bb7e7c72d57ec07c67c402 +-ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker.pm 7115e97a53559cb3ec061dd6f7f344e522724c4a ++ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/Liblist/Kid.pm a08ecf80c8f0a234243817713b2a5ab0dcae3c0a ++ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker.pm 3d7abd674b15ed323f743594ef0bd09db76b1aee + ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/Config.pm f8db8d4245bf0684b8210c811f50d7cfb1a27d78 + ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/FAQ.pod 757bffb47857521311f8f3bde43ebe165f8d5191 + ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/Locale.pm 82be06851deb84c6419ad003ce9b6d1957f395f3 +@@ -14,7 +14,7 @@ + ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/Mksymlists.pm ab80029ab16d38d4f2e41dc88d2ceb9f3790e477 + ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM.pm 453e0abbc4bb38db4c0820ad5c4846f313b66291 + ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_AIX.pm c1b1babda8f43ae7a2caba1cb4f70f92af5a0e34 +-ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Any.pm 6f90d94ad3e7aa0045a3b1a10a1bb18391f89f57 ++ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Any.pm 21bde53290bf1a4da4457290b65bd1b0ca6f1d16 + ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_BeOS.pm cab2b3ce08b71a4ce89aa630f236eb08b852439d + ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Cygwin.pm 61fced0faf518bf87c265fcb51ed330ba354623f + ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Darwin.pm ae0ef51a7b6dd0b05aa61c779df7167dda5f5119 +@@ -23,7 +23,7 @@ + ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_NW5.pm 433135eecb85b4b1d90d3027432f329436c78447 + ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_OS2.pm 1fbb5605bfb47feee4083feba8aa85e659628f70 + ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_QNX.pm 5b66d1f485a6034d96fc24ba1665b1bad9e447f1 +-ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm 8cef99a9bd370ecfd07ddb0efbdcbb4101255e45 ++ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm 860d520234d7c9036d91f0b143a1dddf2a5e8cb7 + ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_UWIN.pm 939572fde3d59ba77c2e677fe2df2bed4bed5898 + ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_VMS.pm 09c2049bfd25b735e2a5bcf56a6cff7b4827f9c8 + ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_VOS.pm d65d63f8217a55c36f62e249814988974f593c79 +@@ -31,8 +31,16 @@ + ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Win95.pm 12df38eacceeed73cab94c423236bfaed0fbbfec + ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MY.pm 22fe9596a0237252f45399a36abc83b7813bc328 + ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/testlib.pm 7fbc42ca2ebc6c677b79ae5fd5647243cf069463 +-ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/t/basic.t 6cdc7701b50e586bc9c4cfb1616de8eb0b1baf34 +-ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/t/pm_to_blib.t 71ebcee355691ce374fcad251b12d8b2412462b3 ++ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/t/basic.t d78fdec7a4512dc8d2a7abd62b8104530af8ecf9 ++ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/t/echo.t 9427f4adebbb13b57b4a76fef2972adf63c9bd96 ++ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/t/INSTALL_BASE.t ef356c196bb5c3c428ae309d7f989bdd6d79b86d ++ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/t/INST_PREFIX.t 3e6d4d6eb2eab42e983ac70eb5737a759af0916f ++ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/t/INST.t e553fa0d53c894c8d36aafb69edd55b38a9355f8 ++ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/t/min_perl_version.t e930ec9217de5a1785d0247c30b159e6f7f5673f ++ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/t/PL_FILES.t 7e49ab6c4d467826d22023fa03d77b85f935b58e ++ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/t/pm_to_blib.t a04c96eecfab17e4094604e0fb998dd93cf93b93 ++ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/t/recurs.t 94cce3bff875a878ed27816b3f5df2ca4225c714 ++ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/t/several_authors.t f811d993c0835c66dc501ed55083acb29bf33bf7 + Text::ParseWords cpan/Text-ParseWords/t/ParseWords.t 9bae51c9b944cd5c0bbabe9d397e573976a2be8e + Win32API::File cpan/Win32API-File/buffers.h 02d230ac9ac7091365128161a0ed671898baefae + Win32API::File cpan/Win32API-File/cFile.h fca7e383e76979c3ac3adf12d11d1bcd2618e489 diff --git a/import-layers/yocto-poky/meta/recipes-devtools/perl/perl_5.22.1.bb b/import-layers/yocto-poky/meta/recipes-devtools/perl/perl_5.22.1.bb index bf8b3b60b..792a65b5b 100644 --- a/import-layers/yocto-poky/meta/recipes-devtools/perl/perl_5.22.1.bb +++ b/import-layers/yocto-poky/meta/recipes-devtools/perl/perl_5.22.1.bb @@ -63,6 +63,12 @@ SRC_URI += " \ file://ext-ODBM_File-t-odbm.t-fix-the-path-of-dbmt_common.p.patch \ file://perl-PathTools-don-t-filter-out-blib-from-INC.patch \ file://perl-errno-generation-gcc5.patch \ + file://perl-fix-conflict-between-skip_all-and-END.patch \ + file://perl-test-customized.patch \ + file://perl-fix-CVE-2016-2381.patch \ + file://perl-fix-CVE-2016-6185.patch \ + file://perl-fix-CVE-2015-8607.patch \ + file://perl-fix-CVE-2016-1238.patch \ " # Fix test case issues @@ -340,7 +346,9 @@ FILES_perl-module-unicore += "${libdir}/perl/${PV}/unicore" ALLOW_EMPTY_perl-modules = "1" PACKAGES_append = " perl-modules " -python populate_packages_prepend () { +PACKAGESPLITFUNCS_prepend = "split_perl_packages " + +python split_perl_packages () { libdir = d.expand('${libdir}/perl/${PV}') do_split_packages(d, libdir, 'auto/([^.]*)/[^/]*\.(so|ld|ix|al)', 'perl-module-%s', 'perl module %s', recursive=True, match_path=True, prepend=False) do_split_packages(d, libdir, 'Module/([^\/]*)\.pm', 'perl-module-%s', 'perl module %s', recursive=True, allow_dirs=False, match_path=True, prepend=False) |