diff options
author | 2008-12-29 21:25:07 +0000 | |
---|---|---|
committer | 2008-12-29 21:25:07 +0000 | |
commit | d6686852ea9f539001b81032e3c5ceea280400b6 (patch) | |
tree | 25f5a3eeb738df988f268fc0980b8d0aca66f96a /sys-devel | |
parent | Some fixes (diff) | |
download | perl-overlay-d6686852ea9f539001b81032e3c5ceea280400b6.tar.gz perl-overlay-d6686852ea9f539001b81032e3c5ceea280400b6.tar.bz2 perl-overlay-d6686852ea9f539001b81032e3c5ceea280400b6.zip |
Some fixes
Diffstat (limited to 'sys-devel')
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() { |