summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTorsten Veller <tove@gentoo.org>2008-12-29 21:25:07 +0000
committerTorsten Veller <tove@gentoo.org>2008-12-29 21:25:07 +0000
commitd6686852ea9f539001b81032e3c5ceea280400b6 (patch)
tree25f5a3eeb738df988f268fc0980b8d0aca66f96a /sys-devel
parentSome fixes (diff)
downloadperl-overlay-d6686852ea9f539001b81032e3c5ceea280400b6.tar.gz
perl-overlay-d6686852ea9f539001b81032e3c5ceea280400b6.tar.bz2
perl-overlay-d6686852ea9f539001b81032e3c5ceea280400b6.zip
Some fixes
Diffstat (limited to 'sys-devel')
-rw-r--r--sys-devel/libperl/Manifest14
-rw-r--r--sys-devel/libperl/files/5.10.0/900_all_prelink-lpthread.patch11
-rw-r--r--sys-devel/libperl/files/5.10.0/901_all_create-libperl-soname.patch11
-rw-r--r--sys-devel/libperl/files/5.10.0/902_all_5.8.8-reorder-INC.patch94
-rw-r--r--sys-devel/libperl/files/5.10.0/903_all_picdl.patch13
-rw-r--r--sys-devel/libperl/files/5.10.0/904_all_noksh.patch16
-rw-r--r--sys-devel/libperl/files/5.10.0/906_all_5.8.7-MakeMaker-RUNPATH.patch21
-rw-r--r--sys-devel/libperl/files/5.10.0/907_all_regexp-nossp.patch11
-rw-r--r--sys-devel/libperl/files/5.10.0/908_all_hppa-pa7200-configure.patch11
-rw-r--r--sys-devel/libperl/files/5.10.0/912_all_5.8.8-USE_MM_LD_RUN_PATH.patch111
-rw-r--r--sys-devel/libperl/files/5.10.0/922_all_CVE-2008-2827.patch17
-rw-r--r--sys-devel/libperl/files/5.10.0/923_all_cleanup-paths.patch94
-rw-r--r--sys-devel/libperl/files/5.10.0/924_all_usr-local.patch47
-rw-r--r--sys-devel/libperl/libperl-5.10.0.ebuild37
14 files changed, 475 insertions, 33 deletions
diff --git a/sys-devel/libperl/Manifest b/sys-devel/libperl/Manifest
index 6ba5dfa38..19e42dd42 100644
--- a/sys-devel/libperl/Manifest
+++ b/sys-devel/libperl/Manifest
@@ -1,4 +1,16 @@
+AUX 5.10.0/900_all_prelink-lpthread.patch 476 RMD160 f3252258e5f7a0f82b5f9ea49598ea9f4b0b44b6 SHA1 4202c290c578dfec58d5dbebf7f8f780a483f908 SHA256 289d0bdd08105e7fdf1c2d683d76a0cdcd009998f3ecd84f3a75cf79ab84e7a0
+AUX 5.10.0/901_all_create-libperl-soname.patch 401 RMD160 85f971825840d060a03c41b3efab738db8209e6c SHA1 cfca756f70f85908bd108f849d9360a7ea363676 SHA256 118efc0c6c5e42188626e63660e84fb5ec83ab65596507c3454651abfeba5e6d
+AUX 5.10.0/902_all_5.8.8-reorder-INC.patch 3122 RMD160 41c02f2418aa9ba63a7cbb853e375dca2c4d1f33 SHA1 b83637646a6fb353bbab77e01a4bd03fc9d4350d SHA256 77bf28989aefee756632190c2176cdac13be1e66b63330a7c640d60f03ee8c02
+AUX 5.10.0/903_all_picdl.patch 250 RMD160 2a9cb2fe5debb0db2d3fd063f52f459ee4f4946f SHA1 3000bd0130ed20e0ff5d9fb0147240e3909473a7 SHA256 fdbe94e869457b7e62bdc76b82a13ecd6e500c223d609b1767285190efd63cfa
+AUX 5.10.0/904_all_noksh.patch 611 RMD160 6ddb9e7140c60e05042c3c488c97399a86f965fc SHA1 61bf5bb0955bd04a758d1381fa4260ed9fdbb1d1 SHA256 0861f7f54c184e99a0ffeebeab9420d969d2002f921bc3fb14841a1e24be1f5e
+AUX 5.10.0/906_all_5.8.7-MakeMaker-RUNPATH.patch 859 RMD160 b0e95fcd9b1bbc085e9986f8910e3fbcf3f78eb2 SHA1 1e7c2f05ffaf8f6aee753ab106a9798e6920ff06 SHA256 3d327c525e0cf57899eca48d417fa4363f40da9b0d6b70b61e951521749047ab
+AUX 5.10.0/907_all_regexp-nossp.patch 485 RMD160 8df8aa99a1172d0d1940275a793037c5075a578c SHA1 13b5bc9ec2d099a981b0fd2f4c6d933432c99731 SHA256 172e60ad84bc46f922fb4902442a74c1a7aca824e8e80d8802f4cd20283ce714
+AUX 5.10.0/908_all_hppa-pa7200-configure.patch 446 RMD160 ab902e2b5cf7f96023e0e267f170401b036dd4f5 SHA1 fcb7e61cdf1ce1c9993f257507b3289ce45382d7 SHA256 4fe6a010dbdc39325f4003e7ccd02cb7996b4a99b64ab0fa8b12d6fe67f87a31
+AUX 5.10.0/912_all_5.8.8-USE_MM_LD_RUN_PATH.patch 4963 RMD160 96dfe54660afdcbd24007ffce886f667270694e7 SHA1 e6a28992b63762985846d10661352d40dbd61370 SHA256 49527cd4272ba177b39562363bf34ec6c7b6e709ee6ac770b7fccc302d18b459
+AUX 5.10.0/922_all_CVE-2008-2827.patch 680 RMD160 abf34f0cfcc7c7b17a6405e36aed91f078c84ea0 SHA1 b4eeec8e96a56036bc3adfcccccceeee4d62178c SHA256 5a1c6e07ae4c9f8716a30e709f7d260662b702d03faceb9cd9a1c84ddcfbf91e
+AUX 5.10.0/923_all_cleanup-paths.patch 2265 RMD160 edbe95d901b9d6025f94807c4f375ec9cff451d1 SHA1 d123a51911b13d976e27dc16be217553bff1ea6e SHA256 d20f2467f5c21a6b4179520f46a1e849482bbbbadbf3242708b0ab81a83cea9a
+AUX 5.10.0/924_all_usr-local.patch 1582 RMD160 39e6a1642bfbdceb04fb8f4c8309a28e85e1357a SHA1 9c9d715d88007f53ac51c1ea67a1cc70558a95b5 SHA256 c6a9ee6eb6c9ae11ec9c8c3438b7a3dec46093449705af2a669568de7faf72e0
AUX libperl-5.10.0-create-libperl-soname.patch 401 RMD160 85f971825840d060a03c41b3efab738db8209e6c SHA1 cfca756f70f85908bd108f849d9360a7ea363676 SHA256 118efc0c6c5e42188626e63660e84fb5ec83ab65596507c3454651abfeba5e6d
AUX libperl-noksh.patch 611 RMD160 6ddb9e7140c60e05042c3c488c97399a86f965fc SHA1 61bf5bb0955bd04a758d1381fa4260ed9fdbb1d1 SHA256 0861f7f54c184e99a0ffeebeab9420d969d2002f921bc3fb14841a1e24be1f5e
DIST perl-5.10.0.tar.gz 15595020 RMD160 c6614fc99a162790a703f91085b24a60af903ba2 SHA1 adf73606dd5248af7ccdd735bcaa0e628ea75b3c SHA256 94464a0d374fa63226eee56e0bb3d35564f9d8391a1a8d9f0055805ec25f3b2e
-EBUILD libperl-5.10.0.ebuild 9628 RMD160 95020486d958a5cd774d53adb196929381d71635 SHA1 9a6d12926e5072974ec5e6a6725847eb8b61d64c SHA256 ef7f0df6183dff1c8a3b9d829b00cae1757c34bf8ab8bc8938971a57cd5a6a81
+EBUILD libperl-5.10.0.ebuild 8371 RMD160 f890cac73e2024a8df5d953526a3a46e0369e5f4 SHA1 19429c0b69332a381a1bae2f5e0e83e67f02ffb0 SHA256 e396bbe529b9c74ff7646bea1bb98958e7f3c645538c720c136433b7e9001300
diff --git a/sys-devel/libperl/files/5.10.0/900_all_prelink-lpthread.patch b/sys-devel/libperl/files/5.10.0/900_all_prelink-lpthread.patch
new file mode 100644
index 000000000..d38497e0a
--- /dev/null
+++ b/sys-devel/libperl/files/5.10.0/900_all_prelink-lpthread.patch
@@ -0,0 +1,11 @@
+--- hints/linux.sh.orig 2003-02-14 18:11:50.000000000 -0800
++++ hints/linux.sh 2003-02-14 18:12:01.000000000 -0800
+@@ -43,7 +43,7 @@
+ # 'kaffe' has a /usr/lib/libnet.so which is not at all relevent for perl.
+ set `echo X "$libswanted "| sed -e 's/ bsd / /' -e 's/ net / /'`
+ shift
+-libswanted="$*"
++libswanted="pthread $*"
+
+ # If you have glibc, then report the version for ./myconfig bug reporting.
+ # (Configure doesn't need to know the specific version since it just uses
diff --git a/sys-devel/libperl/files/5.10.0/901_all_create-libperl-soname.patch b/sys-devel/libperl/files/5.10.0/901_all_create-libperl-soname.patch
new file mode 100644
index 000000000..f4e791578
--- /dev/null
+++ b/sys-devel/libperl/files/5.10.0/901_all_create-libperl-soname.patch
@@ -0,0 +1,11 @@
+--- Makefile.SH.bak 2007-11-04 18:40:00.000000000 +0200
++++ Makefile.SH 2007-11-04 18:40:35.000000000 +0200
+@@ -593,7 +593,7 @@
+ true)
+ $spitshell >>Makefile <<'!NO!SUBS!'
+ rm -f $@
+- $(LD) -o $@ $(SHRPLDFLAGS) $(obj) $(DYNALOADER) $(libs)
++ $(LD) -o $@ $(SHRPLDFLAGS) $(obj) $(DYNALOADER) $(libs) -Wl,-soname -Wl,libperl.so.`echo $(LIBPERL) | cut -d. -f3`
+ !NO!SUBS!
+ case "$osname" in
+ aix)
diff --git a/sys-devel/libperl/files/5.10.0/902_all_5.8.8-reorder-INC.patch b/sys-devel/libperl/files/5.10.0/902_all_5.8.8-reorder-INC.patch
new file mode 100644
index 000000000..39bb5c35a
--- /dev/null
+++ b/sys-devel/libperl/files/5.10.0/902_all_5.8.8-reorder-INC.patch
@@ -0,0 +1,94 @@
+--- perl.c
++++ perl.c
+@@ -4753,9 +4753,9 @@
+ incpush(APPLLIB_EXP, TRUE, TRUE, TRUE, TRUE);
+ #endif
+
+-#ifdef ARCHLIB_EXP
+- incpush(ARCHLIB_EXP, FALSE, FALSE, TRUE, TRUE);
+-#endif
++ /* for configuration where /usr is mounted ro (CPAN::Config, Net::Config) */
++ incpush("/etc/perl", FALSE, FALSE, TRUE, TRUE);
++
+ #ifdef MACOS_TRADITIONAL
+ {
+ Stat_t tmpstatbuf;
+@@ -4782,52 +4782,59 @@
+ #endif
+ #if defined(WIN32)
+ incpush(PRIVLIB_EXP, TRUE, FALSE, TRUE, TRUE);
+-#else
+- incpush(PRIVLIB_EXP, FALSE, FALSE, TRUE, TRUE);
+ #endif
+
+-#ifdef SITEARCH_EXP
+- /* sitearch is always relative to sitelib on Windows for
++#ifdef PERL_VENDORARCH_EXP
++ /* vendorarch is always relative to vendorlib on Windows for
+ * DLL-based path intuition to work correctly */
+ # if !defined(WIN32)
+- incpush(SITEARCH_EXP, FALSE, FALSE, TRUE, TRUE);
++ incpush(PERL_VENDORARCH_EXP, FALSE, FALSE, TRUE, TRUE);
+ # endif
+ #endif
+
+-#ifdef SITELIB_EXP
++#ifdef PERL_VENDORLIB_EXP
+ # if defined(WIN32)
+ /* this picks up sitearch as well */
+- incpush(SITELIB_EXP, TRUE, FALSE, TRUE, TRUE);
++ incpush(PERL_VENDORLIB_EXP, TRUE, FALSE, TRUE, TRUE); /* this picks up vendorarch as well */
+ # else
+- incpush(SITELIB_EXP, FALSE, FALSE, TRUE, TRUE);
++ incpush(PERL_VENDORLIB_EXP, FALSE, FALSE, TRUE, TRUE);
+ # endif
+ #endif
+
+-#if defined(SITELIB_STEM) && defined(PERL_INC_VERSION_LIST)
+- /* Search for version-specific dirs below here */
+- incpush(SITELIB_STEM, FALSE, TRUE, TRUE, TRUE);
++#ifdef PERL_VENDORLIB_STEM /* Search for version-specific dirs below here */
++ incpush(PERL_VENDORLIB_STEM, FALSE, TRUE, TRUE, TRUE);
+ #endif
+
+-#ifdef PERL_VENDORARCH_EXP
+- /* vendorarch is always relative to vendorlib on Windows for
++#ifdef SITEARCH_EXP
++ /* sitearch is always relative to sitelib on Windows for
+ * DLL-based path intuition to work correctly */
+ # if !defined(WIN32)
+- incpush(PERL_VENDORARCH_EXP, FALSE, FALSE, TRUE, TRUE);
++ incpush(SITEARCH_EXP, FALSE, FALSE, TRUE, TRUE);
+ # endif
+ #endif
+
+-#ifdef PERL_VENDORLIB_EXP
++#ifdef SITELIB_EXP
+ # if defined(WIN32)
+- incpush(PERL_VENDORLIB_EXP, TRUE, FALSE, TRUE, TRUE); /* this picks up vendorarch as well */
++ /* this picks up sitearch as well */
++ incpush(SITELIB_EXP, TRUE, FALSE, TRUE, TRUE);
+ # else
+- incpush(PERL_VENDORLIB_EXP, FALSE, FALSE, TRUE, TRUE);
++ incpush(SITELIB_EXP, FALSE, FALSE, TRUE, TRUE);
+ # endif
+ #endif
+
+-#ifdef PERL_VENDORLIB_STEM /* Search for version-specific dirs below here */
+- incpush(PERL_VENDORLIB_STEM, FALSE, TRUE, TRUE, TRUE);
++#ifdef SITELIB_STEM /* Search for version-specific dirs below here */
++ incpush(SITELIB_STEM, FALSE, TRUE, TRUE, TRUE);
+ #endif
+
++ incpush(ARCHLIB_EXP, FALSE, FALSE, TRUE, TRUE);
++ incpush(PRIVLIB_EXP, FALSE, FALSE, TRUE, TRUE);
++
++ /* Non-versioned site directory for local modules and for
++ compatability with the previous packages' site dirs */
++
++ incpush("/usr/local/lib/site_perl", TRUE, FALSE, TRUE, TRUE);
++
++
+ #ifdef PERL_OTHERLIBDIRS
+ incpush(PERL_OTHERLIBDIRS, TRUE, TRUE, TRUE, TRUE);
+ #endif
diff --git a/sys-devel/libperl/files/5.10.0/903_all_picdl.patch b/sys-devel/libperl/files/5.10.0/903_all_picdl.patch
new file mode 100644
index 000000000..f69a6800c
--- /dev/null
+++ b/sys-devel/libperl/files/5.10.0/903_all_picdl.patch
@@ -0,0 +1,13 @@
+--- Makefile.SH.orig 2003-11-29 01:16:15.000000000 -0800
++++ Makefile.SH 2003-11-29 01:16:52.000000000 -0800
+@@ -129,8 +129,8 @@
+
+ ;;
+
+-*) pldlflags=''
+- static_target='static'
++*) pldlflags="$cccdlflags"
++ static_target='static_pic'
+ ;;
+ esac
+
diff --git a/sys-devel/libperl/files/5.10.0/904_all_noksh.patch b/sys-devel/libperl/files/5.10.0/904_all_noksh.patch
new file mode 100644
index 000000000..4c33b3e71
--- /dev/null
+++ b/sys-devel/libperl/files/5.10.0/904_all_noksh.patch
@@ -0,0 +1,16 @@
+diff -burN perl-5.8.4.orig/Configure perl-5.8.4/Configure
+--- perl-5.8.4.orig/Configure 2004-04-01 05:48:18.000000000 -0800
++++ perl-5.8.4/Configure 2004-06-09 12:02:54.694172368 -0700
+@@ -164,6 +164,12 @@
+ ;;
+ esac
+
++# 2004.06.09 rac
++# having $newsh persist as ksh here is bad news if ksh doesn't really
++# exist. this causes us to toss away a perfectly good working test in
++# bash in favour of more exotic external options. see bug 42665.
++test -x "${newsh}" || unset newsh
++
+ : if needed set CDPATH to a harmless value that is not chatty
+ : avoid bash 2.02 problems with empty CDPATH.
+ case "$CDPATH" in
diff --git a/sys-devel/libperl/files/5.10.0/906_all_5.8.7-MakeMaker-RUNPATH.patch b/sys-devel/libperl/files/5.10.0/906_all_5.8.7-MakeMaker-RUNPATH.patch
new file mode 100644
index 000000000..c442defa5
--- /dev/null
+++ b/sys-devel/libperl/files/5.10.0/906_all_5.8.7-MakeMaker-RUNPATH.patch
@@ -0,0 +1,21 @@
+Bug #105054.
+
+We do not want the build root in the linked perl module's RUNPATH, so strip
+paths containing PORTAGE_TMPDIR if its set.
+
+--- perl-5.8.7/lib/ExtUtils/MM_Unix.pm 2005-09-10 14:06:59.000000000 +0200
++++ perl-5.8.7.az/lib/ExtUtils/MM_Unix.pm 2005-09-10 15:25:52.000000000 +0200
+@@ -1915,6 +1915,13 @@
+ # LD_RUN_PATH now computed by ExtUtils::Liblist
+ ($self->{EXTRALIBS}, $self->{BSLOADLIBS},
+ $self->{LDLOADLIBS}, $self->{LD_RUN_PATH}) = @libs;
++ # We do not want the build root in RPATH
++ if (exists $ENV{PORTAGE_TMPDIR}) {
++ # If we have PORTAGE_TMPDIR set, strip that, as just testing for
++ # /usr and /opt might not be sufficient
++ $self->{LD_RUN_PATH} = join ':', grep !/^\Q$ENV{PORTAGE_TMPDIR}/,
++ split /:/, $self->{LD_RUN_PATH};
++ }
+ last;
+ }
+ }
diff --git a/sys-devel/libperl/files/5.10.0/907_all_regexp-nossp.patch b/sys-devel/libperl/files/5.10.0/907_all_regexp-nossp.patch
new file mode 100644
index 000000000..1fcb824f8
--- /dev/null
+++ b/sys-devel/libperl/files/5.10.0/907_all_regexp-nossp.patch
@@ -0,0 +1,11 @@
+--- cflags.SH.old 2007-11-04 19:27:56.000000000 +0200
++++ cflags.SH 2007-11-04 19:28:07.000000000 +0200
+@@ -359,6 +359,8 @@
+ fi
+
+ : Can we perhaps use $ansi2knr here
++ [ "x$file" = xregcomp ] && export ccflags="${ccflags} -fno-stack-protector"
++ [ "x$file" = xregexec ] && export ccflags="${ccflags} -fno-stack-protector"
+ echo "$cc -c -DPERL_CORE $ccflags $stdflags $optimize $warn $extra"
+ eval "$also "'"$cc -DPERL_CORE -c $ccflags $stdflags $optimize $warn $extra"'
+
diff --git a/sys-devel/libperl/files/5.10.0/908_all_hppa-pa7200-configure.patch b/sys-devel/libperl/files/5.10.0/908_all_hppa-pa7200-configure.patch
new file mode 100644
index 000000000..396209af1
--- /dev/null
+++ b/sys-devel/libperl/files/5.10.0/908_all_hppa-pa7200-configure.patch
@@ -0,0 +1,11 @@
+--- Configure.orig 2006-06-02 13:14:22.000000000 -0500
++++ Configure 2006-06-02 13:07:03.000000000 -0500
+@@ -2967,7 +2967,7 @@
+ : Try to determine whether config.sh was made on this system
+ case "$config_sh" in
+ '')
+-myuname=`$uname -a 2>/dev/null`
++myuname=`$uname -a | $sed -e "s/'//" 2>/dev/null`
+ $test -z "$myuname" && myuname=`hostname 2>/dev/null`
+ # tr '[A-Z]' '[a-z]' would not work in EBCDIC
+ # because the A-Z/a-z are not consecutive.
diff --git a/sys-devel/libperl/files/5.10.0/912_all_5.8.8-USE_MM_LD_RUN_PATH.patch b/sys-devel/libperl/files/5.10.0/912_all_5.8.8-USE_MM_LD_RUN_PATH.patch
new file mode 100644
index 000000000..edcfc6a41
--- /dev/null
+++ b/sys-devel/libperl/files/5.10.0/912_all_5.8.8-USE_MM_LD_RUN_PATH.patch
@@ -0,0 +1,111 @@
+diff -Naurp perl-5.8.8-orig/lib/ExtUtils/Liblist.pm perl-5.8.8/lib/ExtUtils/Liblist.pm
+--- perl-5.8.8-orig/lib/ExtUtils/Liblist.pm 2003-04-07 14:58:17.000000000 -0400
++++ perl-5.8.8/lib/ExtUtils/Liblist.pm 2006-02-07 09:57:04.000000000 -0500
+@@ -87,6 +87,11 @@ libraries. LD_RUN_PATH is a colon separ
+ in LDLOADLIBS. It is passed as an environment variable to the process
+ that links the shared library.
+
++The Red Hat extension: This generation of LD_RUN_PATH is disabled by default.
++To use the generated LD_RUN_PATH for all links, set the USE_MM_LD_RUN_PATH
++MakeMaker object attribute / argument, (or set the $USE_MM_LD_RUN_PATH
++environment variable).
++
+ =head2 BSLOADLIBS
+
+ List of those libraries that are needed but can be linked in
+diff -Naurp perl-5.8.8-orig/lib/ExtUtils/MM_Unix.pm perl-5.8.8/lib/ExtUtils/MM_Unix.pm
+--- perl-5.8.8-orig/lib/ExtUtils/MM_Unix.pm 2005-05-21 05:42:56.000000000 -0400
++++ perl-5.8.8/lib/ExtUtils/MM_Unix.pm 2006-02-07 09:56:08.000000000 -0500
+@@ -941,7 +941,7 @@ $(INST_DYNAMIC): $(OBJECT) $(MYEXTLIB) $
+ }
+
+ my $ld_run_path_shell = "";
+- if ($self->{LD_RUN_PATH} ne "") {
++ if (($self->{LD_RUN_PATH} ne "") && ($self->{USE_MM_LD_RUN_PATH})) {
+ $ld_run_path_shell = 'LD_RUN_PATH="$(LD_RUN_PATH)" ';
+ }
+
+diff -Naurp perl-5.8.8-orig/lib/ExtUtils/MakeMaker.pm perl-5.8.8/lib/ExtUtils/MakeMaker.pm
+--- perl-5.8.8-orig/lib/ExtUtils/MakeMaker.pm 2005-10-21 10:11:04.000000000 -0400
++++ perl-5.8.8/lib/ExtUtils/MakeMaker.pm 2006-02-07 09:55:03.000000000 -0500
+@@ -233,7 +233,7 @@ sub full_setup {
+ PERL_SRC PERM_RW PERM_RWX
+ PL_FILES PM PM_FILTER PMLIBDIRS POLLUTE PPM_INSTALL_EXEC
+ PPM_INSTALL_SCRIPT PREREQ_FATAL PREREQ_PM PREREQ_PRINT PRINT_PREREQ
+- SIGN SKIP TYPEMAPS VERSION VERSION_FROM XS XSOPT XSPROTOARG
++ SKIP TYPEMAPS USE_MM_LD_RUN_PATH VERSION VERSION_FROM XS XSOPT XSPROTOARG
+ XS_VERSION clean depend dist dynamic_lib linkext macro realclean
+ tool_autosplit
+
+@@ -371,6 +371,26 @@ sub new {
+ exit 0;
+ }
+
++ # USE_MM_LD_RUN_PATH - borrowed from RedHat to disable automatic RPATH generation
++ if ( ( ! $self->{USE_MM_LD_RUN_PATH} )
++ &&( ("@ARGV" =~ /\bUSE_MM_LD_RUN_PATH(=([01]))?\b/)
++ ||( exists( $ENV{USE_MM_LD_RUN_PATH} )
++ &&( $ENV{USE_MM_LD_RUN_PATH} =~ /([01])?$/ )
++ )
++ )
++ )
++ {
++ my $v = $1;
++ if( $v )
++ {
++ $v = ($v=~/=([01])$/)[0];
++ }else
++ {
++ $v = 1;
++ };
++ $self->{USE_MM_LD_RUN_PATH}=$v;
++ };
++
+ print STDOUT "MakeMaker (v$VERSION)\n" if $Verbose;
+ if (-f "MANIFEST" && ! -f "Makefile"){
+ check_manifest();
+@@ -2057,6 +2077,44 @@ precedence. A typemap in the current di
+ precedence, even if it isn't listed in TYPEMAPS. The default system
+ typemap has lowest precedence.
+
++=item USE_MM_LD_RUN_PATH
++
++boolean
++This feature is borrowed from Red Hat to deal with RPATH issues.
++Please see bug 81745 - http://bugs.gentoo.org/81745 - for more
++information.
++
++The Red Hat perl MakeMaker distribution differs from the standard
++upstream release in that it disables use of the MakeMaker generated
++LD_RUN_PATH by default, UNLESS this attribute is specified , or the
++USE_MM_LD_RUN_PATH environment variable is set during the MakeMaker run.
++
++The upstream MakeMaker will set the ld(1) environment variable LD_RUN_PATH
++to the concatenation of every -L ld(1) option directory in which a -l ld(1)
++option library is found, which is used as the ld(1) -rpath option if none
++is specified. This means that, if your application builds shared libraries
++and your MakeMaker application links to them, that the absolute paths of the
++libraries in the build tree will be inserted into the RPATH header of all
++MakeMaker generated binaries, and that such binaries will be unable to link
++to these libraries if they do not still reside in the build tree directories
++(unlikely) or in the system library directories (/lib or /usr/lib), regardless
++of any LD_LIBRARY_PATH setting. So if you specified -L../mylib -lmylib , and
++your 'libmylib.so' gets installed into /some_directory_other_than_usr_lib,
++your MakeMaker application will be unable to link to it, even if LD_LIBRARY_PATH
++is set to include /some_directory_other_than_usr_lib, because RPATH overrides
++LD_LIBRARY_PATH.
++
++So for Red Hat MakeMaker builds LD_RUN_PATH is NOT generated by default for
++every link. You can still use explicit -rpath ld options or the LD_RUN_PATH
++environment variable during the build to generate an RPATH for the binaries.
++
++You can set the USE_MM_LD_RUN_PATH attribute to 1 on the MakeMaker command
++line or in the WriteMakefile arguments to enable generation of LD_RUN_PATH
++for every link command.
++
++USE_MM_LD_RUN_PATH will default to 1 (LD_RUN_PATH will be used) IF the
++$USE_MM_LD_RUN_PATH environment variable is set during a MakeMaker run.
++
+ =item VENDORPREFIX
+
+ Like PERLPREFIX, but only for the vendor install locations.
diff --git a/sys-devel/libperl/files/5.10.0/922_all_CVE-2008-2827.patch b/sys-devel/libperl/files/5.10.0/922_all_CVE-2008-2827.patch
new file mode 100644
index 000000000..a8565a354
--- /dev/null
+++ b/sys-devel/libperl/files/5.10.0/922_all_CVE-2008-2827.patch
@@ -0,0 +1,17 @@
+from http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=487319
+
+--- perl-5.10.0/lib/File/Path.pm
++++ perl-5.10.0/lib/File/Path.pm
+@@ -351,10 +351,8 @@
+ }
+
+ my $nperm = $perm & 07777 | 0600;
+- if ($nperm != $perm and not chmod $nperm, $root) {
+- if ($Force_Writeable) {
+- _error($arg, "cannot make file writeable", $canon);
+- }
++ if ($Force_Writeable && $nperm != $perm and not chmod $nperm, $root) {
++ _error($arg, "cannot make file writeable", $canon);
+ }
+ print "unlink $canon\n" if $arg->{verbose};
+ # delete all versions under VMS
diff --git a/sys-devel/libperl/files/5.10.0/923_all_cleanup-paths.patch b/sys-devel/libperl/files/5.10.0/923_all_cleanup-paths.patch
new file mode 100644
index 000000000..55a3f49ee
--- /dev/null
+++ b/sys-devel/libperl/files/5.10.0/923_all_cleanup-paths.patch
@@ -0,0 +1,94 @@
+* cut the crap of inventing paths, or adding search paths that we don't use
+
+--- Configure
++++ Configure
+@@ -103,28 +103,6 @@
+ fi
+ fi
+
+-: Proper PATH setting
+-paths='/bin /usr/bin /usr/local/bin /usr/ucb /usr/local /usr/lbin'
+-paths="$paths /opt/bin /opt/local/bin /opt/local /opt/lbin"
+-paths="$paths /usr/5bin /etc /usr/gnu/bin /usr/new /usr/new/bin /usr/nbin"
+-paths="$paths /opt/gnu/bin /opt/new /opt/new/bin /opt/nbin"
+-paths="$paths /sys5.3/bin /sys5.3/usr/bin /bsd4.3/bin /bsd4.3/usr/ucb"
+-paths="$paths /bsd4.3/usr/bin /usr/bsd /bsd43/bin /opt/ansic/bin /usr/ccs/bin"
+-paths="$paths /etc /usr/lib /usr/ucblib /lib /usr/ccs/lib"
+-paths="$paths /sbin /usr/sbin /usr/libexec"
+-paths="$paths /system/gnu_library/bin"
+-
+-for p in $paths
+-do
+- case "$p_$PATH$p_" in
+- *$p_$p$p_*) ;;
+- *) test -d $p && PATH=$PATH$p_$p ;;
+- esac
+-done
+-
+-PATH=.$p_$PATH
+-export PATH
+-
+ : shall we be using ksh?
+ inksh=''
+ needksh=''
+@@ -8082,60 +8060,6 @@
+ ;;
+ esac
+
+-# How will the perl executable find the installed shared $libperl?
+-# Add $xxx to ccdlflags.
+-# If we can't figure out a command-line option, use $shrpenv to
+-# set env LD_RUN_PATH. The main perl makefile uses this.
+-shrpdir=$archlibexp/CORE
+-xxx=''
+-tmp_shrpenv=''
+-if "$useshrplib"; then
+- case "$osname" in
+- aix)
+- # We'll set it in Makefile.SH...
+- ;;
+- solaris)
+- xxx="-R $shrpdir"
+- ;;
+- freebsd|netbsd|openbsd|interix|dragonfly)
+- xxx="-Wl,-R$shrpdir"
+- ;;
+- bsdos|linux|irix*|dec_osf|gnu*)
+- xxx="-Wl,-rpath,$shrpdir"
+- ;;
+- next)
+- # next doesn't like the default...
+- ;;
+- beos)
+- # beos doesn't like the default, either.
+- ;;
+- hpux*)
+- # hpux doesn't like the default, either.
+- tmp_shrpenv="env LDOPTS=\"+s +b${shrpdir}\""
+- ;;
+- *)
+- tmp_shrpenv="env LD_RUN_PATH=$shrpdir"
+- ;;
+- esac
+- case "$xxx" in
+- '') ;;
+- *)
+- # Only add $xxx if it isn't already in ccdlflags.
+- case " $ccdlflags " in
+- *" $xxx "*) ;;
+- *) ccdlflags="$ccdlflags $xxx"
+- cat <<EOM >&4
+-
+-Adding $xxx to the flags
+-passed to $ld so that the perl executable will find the
+-installed shared $libperl.
+-
+-EOM
+- ;;
+- esac
+- ;;
+- esac
+-fi
+ # Fix ccdlflags in AIX for building external extensions.
+ # (For building Perl itself bare -bE:perl.exp is needed,
+ # Makefile.SH takes care of this.)
diff --git a/sys-devel/libperl/files/5.10.0/924_all_usr-local.patch b/sys-devel/libperl/files/5.10.0/924_all_usr-local.patch
new file mode 100644
index 000000000..f6cc9a6cd
--- /dev/null
+++ b/sys-devel/libperl/files/5.10.0/924_all_usr-local.patch
@@ -0,0 +1,47 @@
+* remove /usr/local paths from all stuff thats used in Configure script
+
+--- Configure
++++ Configure
+@@ -1251,12 +1251,11 @@
+ : change the next line if compiling for Xenix/286 on Xenix/386
+ xlibpth='/usr/lib/386 /lib/386'
+ : Possible local library directories to search.
+-loclibpth="/usr/local/lib /opt/local/lib /usr/gnu/lib"
+-loclibpth="$loclibpth /opt/gnu/lib /usr/GNU/lib /opt/GNU/lib"
++loclibpth=""
+
+ : general looking path for locating libraries
+ glibpth="/lib /usr/lib $xlibpth"
+-glibpth="$glibpth /usr/ccs/lib /usr/ucblib /usr/local/lib"
++glibpth="$glibpth /usr/ccs/lib /usr/ucblib"
+ 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"
+@@ -1280,8 +1279,7 @@
+
+ : Possible local include directories to search.
+ : Set locincpth to "" in a hint file to defeat local include searches.
+-locincpth="/usr/local/include /opt/local/include /usr/gnu/include"
+-locincpth="$locincpth /opt/gnu/include /usr/GNU/include /opt/GNU/include"
++locincpth=""
+ :
+ : no include file wanted by default
+ inclwanted=''
+@@ -4712,7 +4710,7 @@
+ : Set private lib path
+ case "$plibpth" in
+ '') if ./mips; then
+- plibpth="$incpath/usr/lib /usr/local/lib /usr/ccs/lib"
++ plibpth="$incpath/usr/lib /usr/ccs/lib"
+ fi;;
+ esac
+ case "$libpth" in
+@@ -19642,7 +19640,7 @@
+ case "$ranlib" in
+ :) ranlib='';;
+ '')
+- ranlib=`./loc ranlib X /usr/bin /bin /usr/local/bin`
++ ranlib=`./loc ranlib X /usr/bin /bin`
+ $test -f $ranlib || ranlib=''
+ ;;
+ esac
diff --git a/sys-devel/libperl/libperl-5.10.0.ebuild b/sys-devel/libperl/libperl-5.10.0.ebuild
index db7933e23..963a06a3b 100644
--- a/sys-devel/libperl/libperl-5.10.0.ebuild
+++ b/sys-devel/libperl/libperl-5.10.0.ebuild
@@ -107,39 +107,12 @@ pkg_setup() {
src_unpack() {
unpack ${A}
+ cd "${S}"
- # Fix the build scripts to create libperl with a soname of ${SLOT}.
- # We basically add:
- #
- # -Wl,-soname -Wl,libperl.so.`echo $(LIBPERL) | cut -d. -f3`
- #
- # to the line that links libperl.so, and then set LIBPERL to:
- #
- # LIBPERL=libperl.so.${SLOT}.`echo ${PV} | cut -d. -f1,2`
- #
- cd "${S}";
- # TODO: I guess we need this patch
- use userland_Darwin || epatch "${FILESDIR}"/${P}-create-libperl-soname.patch
-
- # Configure makes an unwarranted assumption that /bin/ksh is a
- # good shell. This patch makes it revert to using /bin/sh unless
- # /bin/ksh really is executable. Should fix bug 42665.
- # rac 2004.06.09
- cd "${S}"; epatch "${FILESDIR}"/${PN}-noksh.patch
-
- # we need the same @INC-inversion magic here we do in perl
- #cd "${S}"; epatch "${FILESDIR}"/${P}-reorder-INC.patch
-
- # On PA7200, uname -a contains a single quote and we need to
- # filter it otherwise configure fails. See #125535.
- #epatch "${FILESDIR}"/perl-hppa-pa7200-configure.patch
-
-
-# use amd64 && cd "${S}" && epatch "${FILESDIR}"/${P}-lib64.patch
-# [[ ${CHOST} == *-dragonfly* ]] && cd "${S}" && epatch "${FILESDIR}"/${P}-dragonfly-clean.patch
-# [[ ${CHOST} == *-freebsd* ]] && cd "${S}" && epatch "${FILESDIR}"/${P}-fbsdhints.patch
-# cd "${S}"; epatch "${FILESDIR}"/${P}-cplusplus.patch
-# has_version '>=sys-devel/gcc-4.2' && epatch "${FILESDIR}"/${P}-gcc42-command-line.patch
+ EPATCH_SOURCE="${FILESDIR}/${PV}" \
+ EPATCH_FORCE="yes" \
+ EPATCH_SUFFIX="patch" \
+ epatch
}
myconf() {