diff options
author | Michael Cummings <mcummings@gentoo.org> | 2007-07-21 23:55:28 +0000 |
---|---|---|
committer | Michael Cummings <mcummings@gentoo.org> | 2007-07-21 23:55:28 +0000 |
commit | 60f671bcf7717cbe179b48e2b8901756ab083af7 (patch) | |
tree | 757e1430bf90c60cb75aed5b19802167c14e4958 /dev-lang | |
download | perl-overlay-60f671bcf7717cbe179b48e2b8901756ab083af7.tar.gz perl-overlay-60f671bcf7717cbe179b48e2b8901756ab083af7.tar.bz2 perl-overlay-60f671bcf7717cbe179b48e2b8901756ab083af7.zip |
Blead perl, stab one (incomplete)
Diffstat (limited to 'dev-lang')
21 files changed, 1660 insertions, 0 deletions
diff --git a/dev-lang/perl-blead/Manifest b/dev-lang/perl-blead/Manifest new file mode 100644 index 000000000..ff5eba86d --- /dev/null +++ b/dev-lang/perl-blead/Manifest @@ -0,0 +1,79 @@ +AUX perl-blead-5.8.7-MakeMaker-RUNPATH.patch 859 RMD160 b0e95fcd9b1bbc085e9986f8910e3fbcf3f78eb2 SHA1 1e7c2f05ffaf8f6aee753ab106a9798e6920ff06 SHA256 3d327c525e0cf57899eca48d417fa4363f40da9b0d6b70b61e951521749047ab +MD5 044b90a8895f8a03bef8e4cf5759eecc files/perl-blead-5.8.7-MakeMaker-RUNPATH.patch 859 +RMD160 b0e95fcd9b1bbc085e9986f8910e3fbcf3f78eb2 files/perl-blead-5.8.7-MakeMaker-RUNPATH.patch 859 +SHA256 3d327c525e0cf57899eca48d417fa4363f40da9b0d6b70b61e951521749047ab files/perl-blead-5.8.7-MakeMaker-RUNPATH.patch 859 +AUX perl-blead-5.9.99-CAN-2005-0448-rmtree.patch 6961 RMD160 bf242f32c1e1450a7d4d252cdc54cace36b50c62 SHA1 97d1f3a3b2d75b7a82983b1f98d4445ff82d2c19 SHA256 d6565afabbc35e0e1aeecfb469eaf037f892834312a7c2616357a309cd56e3f1 +MD5 fd8a46de4b22dbf9146a6d0459e812c4 files/perl-blead-5.9.99-CAN-2005-0448-rmtree.patch 6961 +RMD160 bf242f32c1e1450a7d4d252cdc54cace36b50c62 files/perl-blead-5.9.99-CAN-2005-0448-rmtree.patch 6961 +SHA256 d6565afabbc35e0e1aeecfb469eaf037f892834312a7c2616357a309cd56e3f1 files/perl-blead-5.9.99-CAN-2005-0448-rmtree.patch 6961 +AUX perl-blead-5.9.99-USE_MM_LD_RUN_PATH.patch 4963 RMD160 96dfe54660afdcbd24007ffce886f667270694e7 SHA1 e6a28992b63762985846d10661352d40dbd61370 SHA256 49527cd4272ba177b39562363bf34ec6c7b6e709ee6ac770b7fccc302d18b459 +MD5 93a7b749eec75f6ba4bc7c4edf3a0ccd files/perl-blead-5.9.99-USE_MM_LD_RUN_PATH.patch 4963 +RMD160 96dfe54660afdcbd24007ffce886f667270694e7 files/perl-blead-5.9.99-USE_MM_LD_RUN_PATH.patch 4963 +SHA256 49527cd4272ba177b39562363bf34ec6c7b6e709ee6ac770b7fccc302d18b459 files/perl-blead-5.9.99-USE_MM_LD_RUN_PATH.patch 4963 +AUX perl-blead-5.9.99-asm-page-h-compile-failure.patch 384 RMD160 cb55d65bd1245019689f7a6241d313f45cc0ecda SHA1 69f7ee3d09abfba81d4b3976263b23491cb39f10 SHA256 b6be7b879d07a0f5a80ec775ce122d84a126a860471ccd86e4f32cbc2c90f704 +MD5 46376561e58c420b6654d905ca4e62c0 files/perl-blead-5.9.99-asm-page-h-compile-failure.patch 384 +RMD160 cb55d65bd1245019689f7a6241d313f45cc0ecda files/perl-blead-5.9.99-asm-page-h-compile-failure.patch 384 +SHA256 b6be7b879d07a0f5a80ec775ce122d84a126a860471ccd86e4f32cbc2c90f704 files/perl-blead-5.9.99-asm-page-h-compile-failure.patch 384 +AUX perl-blead-5.9.99-cplusplus.patch 854 RMD160 1fbfc7ec9940622beb644ce0fa98a6f52131c9db SHA1 e4718e0b1c869ec56d59466caed3fab555848085 SHA256 ea1368e609b0d992b6cd5f92c327768d8c61ca2096826f26af2576263efb8a89 +MD5 c3eeecbfcccfc4787f5157ad8b29ac7e files/perl-blead-5.9.99-cplusplus.patch 854 +RMD160 1fbfc7ec9940622beb644ce0fa98a6f52131c9db files/perl-blead-5.9.99-cplusplus.patch 854 +SHA256 ea1368e609b0d992b6cd5f92c327768d8c61ca2096826f26af2576263efb8a89 files/perl-blead-5.9.99-cplusplus.patch 854 +AUX perl-blead-5.9.99-dragonfly-clean.patch 5211 RMD160 d2411913185276cd9c9aa55a614ae2ed13d22fe9 SHA1 2d2bb9a8b7fa312229d5e13eea845384069d7e2f SHA256 08b22fe26695f6f7f7d21ca2628954eded91205b64450e24d0b295eb75952b6c +MD5 476fc96783fc1fd13c86aa1e66b98778 files/perl-blead-5.9.99-dragonfly-clean.patch 5211 +RMD160 d2411913185276cd9c9aa55a614ae2ed13d22fe9 files/perl-blead-5.9.99-dragonfly-clean.patch 5211 +SHA256 08b22fe26695f6f7f7d21ca2628954eded91205b64450e24d0b295eb75952b6c files/perl-blead-5.9.99-dragonfly-clean.patch 5211 +AUX perl-blead-5.9.99-fbsdhints.patch 1190 RMD160 c55ec6943e7a3957939d3a1f348d01496eefe0e8 SHA1 bf6902ec664f69a442b4de8eff0040fcbbcdaa59 SHA256 339a73f860025b53ef12a394138abb71ec22c027c5a338fb6f29085e127c321b +MD5 6a2521ba615f5a59d06b6c4e4f2ac253 files/perl-blead-5.9.99-fbsdhints.patch 1190 +RMD160 c55ec6943e7a3957939d3a1f348d01496eefe0e8 files/perl-blead-5.9.99-fbsdhints.patch 1190 +SHA256 339a73f860025b53ef12a394138abb71ec22c027c5a338fb6f29085e127c321b files/perl-blead-5.9.99-fbsdhints.patch 1190 +AUX perl-blead-5.9.99-gcc42-command-line.patch 497 RMD160 5fe723ae71be6c6316f11ca2219f489fce60101c SHA1 ae75dfd80b59afb23377fdf491b46b7a561714d7 SHA256 946d02284221bc3615e1f03afda1735e6da0296b03315e2a644bd784ad6f76d1 +MD5 565a8ae3144b4a695c0525fcb587476a files/perl-blead-5.9.99-gcc42-command-line.patch 497 +RMD160 5fe723ae71be6c6316f11ca2219f489fce60101c files/perl-blead-5.9.99-gcc42-command-line.patch 497 +SHA256 946d02284221bc3615e1f03afda1735e6da0296b03315e2a644bd784ad6f76d1 files/perl-blead-5.9.99-gcc42-command-line.patch 497 +AUX perl-blead-5.9.99-lib64.patch 3393 RMD160 406206c33b10b4af8cb2d1aba2fa6aadf5d9eea6 SHA1 d2e3bced513435dd66634d89938d65aa5839e7a8 SHA256 3efe8048934093a1a66bc37b22fbb56a6e10df2940bb85b57802c9129c9bd1bd +MD5 b67f84d9f78688c8d1d06503241d0f6d files/perl-blead-5.9.99-lib64.patch 3393 +RMD160 406206c33b10b4af8cb2d1aba2fa6aadf5d9eea6 files/perl-blead-5.9.99-lib64.patch 3393 +SHA256 3efe8048934093a1a66bc37b22fbb56a6e10df2940bb85b57802c9129c9bd1bd files/perl-blead-5.9.99-lib64.patch 3393 +AUX perl-blead-5.9.99-links.patch 2925 RMD160 68116f3922d1e4d818cf65965b1886fc55b14faf SHA1 849ef26d29369470985eb54ede94a6be6764878b SHA256 aeecee505f05ab0d7336142119f7a3e6d061b8fd2c7bbf9bd88cfb0421323bea +MD5 e1310772583a085881cd30e53546410d files/perl-blead-5.9.99-links.patch 2925 +RMD160 68116f3922d1e4d818cf65965b1886fc55b14faf files/perl-blead-5.9.99-links.patch 2925 +SHA256 aeecee505f05ab0d7336142119f7a3e6d061b8fd2c7bbf9bd88cfb0421323bea files/perl-blead-5.9.99-links.patch 2925 +AUX perl-blead-5.9.99-reorder-INC.patch 1105 RMD160 9b7f59ceb0c47598288eccfa76444788f7fa8a9b SHA1 52c17ef6190a403d3d5e08232fb9cafcaf5b9189 SHA256 db9facc56ef2501fe149efd52833d66ab8bbe4a35950d591fc7fe37d045a3cbc +MD5 32241edff68f56d299a88ea9c3aabdc8 files/perl-blead-5.9.99-reorder-INC.patch 1105 +RMD160 9b7f59ceb0c47598288eccfa76444788f7fa8a9b files/perl-blead-5.9.99-reorder-INC.patch 1105 +SHA256 db9facc56ef2501fe149efd52833d66ab8bbe4a35950d591fc7fe37d045a3cbc files/perl-blead-5.9.99-reorder-INC.patch 1105 +AUX perl-blead-h2ph-ansi-header.patch 446 RMD160 8baf89df0d3f916a8c4f437444fa1af01f5fa8b0 SHA1 31f0a7e7444e914bec2a0a3e41838eb82e038e6f SHA256 dc28a8ccba56e0aa5e01b0ecf68a163ebfb9460917d201f1f6d9a1efef06c788 +MD5 060e9f10466fdc1268c75a7cf4dcbc7c files/perl-blead-h2ph-ansi-header.patch 446 +RMD160 8baf89df0d3f916a8c4f437444fa1af01f5fa8b0 files/perl-blead-h2ph-ansi-header.patch 446 +SHA256 dc28a8ccba56e0aa5e01b0ecf68a163ebfb9460917d201f1f6d9a1efef06c788 files/perl-blead-h2ph-ansi-header.patch 446 +AUX perl-blead-hppa-pa7200-configure.patch 460 RMD160 d8f4175afc23d3bb09eaf7fef52278c7c3a0358f SHA1 58c75cf8af2b399059c3cffc61ad021d2a2364ea SHA256 f57bf3c0286bb54113d3f8d5a5b8894bb53166f7c3e82d6c27429624661ea92f +MD5 42b4e5fb5d798d6e3ada5ae19cc25920 files/perl-blead-hppa-pa7200-configure.patch 460 +RMD160 d8f4175afc23d3bb09eaf7fef52278c7c3a0358f files/perl-blead-hppa-pa7200-configure.patch 460 +SHA256 f57bf3c0286bb54113d3f8d5a5b8894bb53166f7c3e82d6c27429624661ea92f files/perl-blead-hppa-pa7200-configure.patch 460 +AUX perl-blead-noksh.patch 611 RMD160 6ddb9e7140c60e05042c3c488c97399a86f965fc SHA1 61bf5bb0955bd04a758d1381fa4260ed9fdbb1d1 SHA256 0861f7f54c184e99a0ffeebeab9420d969d2002f921bc3fb14841a1e24be1f5e +MD5 076dcbef37263d6dd7af719b55cfc2de files/perl-blead-noksh.patch 611 +RMD160 6ddb9e7140c60e05042c3c488c97399a86f965fc files/perl-blead-noksh.patch 611 +SHA256 0861f7f54c184e99a0ffeebeab9420d969d2002f921bc3fb14841a1e24be1f5e files/perl-blead-noksh.patch 611 +AUX perl-blead-perldoc-emptydirs.patch 489 RMD160 66d619f5811c1c35d16776e23a0a580bd83fe19b SHA1 d8f852db37fb1e5d1085bc94cab79c3422c12a84 SHA256 e8c52d67793f0a5ae0aee52a3b9db2b348a1303b57069d6f82c4bb499f45ee2f +MD5 0a28eb41f5f12ed54f025004af45c83d files/perl-blead-perldoc-emptydirs.patch 489 +RMD160 66d619f5811c1c35d16776e23a0a580bd83fe19b files/perl-blead-perldoc-emptydirs.patch 489 +SHA256 e8c52d67793f0a5ae0aee52a3b9db2b348a1303b57069d6f82c4bb499f45ee2f files/perl-blead-perldoc-emptydirs.patch 489 +AUX perl-blead-picdl.patch 250 RMD160 2a9cb2fe5debb0db2d3fd063f52f459ee4f4946f SHA1 3000bd0130ed20e0ff5d9fb0147240e3909473a7 SHA256 fdbe94e869457b7e62bdc76b82a13ecd6e500c223d609b1767285190efd63cfa +MD5 319b56a7ce715fb7a494fe4d5cb9474c files/perl-blead-picdl.patch 250 +RMD160 2a9cb2fe5debb0db2d3fd063f52f459ee4f4946f files/perl-blead-picdl.patch 250 +SHA256 fdbe94e869457b7e62bdc76b82a13ecd6e500c223d609b1767285190efd63cfa files/perl-blead-picdl.patch 250 +AUX perl-blead-prelink-lpthread.patch 476 RMD160 f3252258e5f7a0f82b5f9ea49598ea9f4b0b44b6 SHA1 4202c290c578dfec58d5dbebf7f8f780a483f908 SHA256 289d0bdd08105e7fdf1c2d683d76a0cdcd009998f3ecd84f3a75cf79ab84e7a0 +MD5 4e99f7529e149661372283c981cf17ff files/perl-blead-prelink-lpthread.patch 476 +RMD160 f3252258e5f7a0f82b5f9ea49598ea9f4b0b44b6 files/perl-blead-prelink-lpthread.patch 476 +SHA256 289d0bdd08105e7fdf1c2d683d76a0cdcd009998f3ecd84f3a75cf79ab84e7a0 files/perl-blead-prelink-lpthread.patch 476 +AUX perl-blead-regexp-nossp.patch 516 RMD160 489b923375d56551cb7a79a1c1675f91cb6742f9 SHA1 231e3649a96cef65f772411b03635e94d4d799f7 SHA256 d042da4b5593ec0a1033d2965d9aebc05b3c7c6343a272c836388b10b48213a9 +MD5 4384e85512d8840ba3dbae496e69b214 files/perl-blead-regexp-nossp.patch 516 +RMD160 489b923375d56551cb7a79a1c1675f91cb6742f9 files/perl-blead-regexp-nossp.patch 516 +SHA256 d042da4b5593ec0a1033d2965d9aebc05b3c7c6343a272c836388b10b48213a9 files/perl-blead-regexp-nossp.patch 516 +EBUILD perl-blead-5.9.99.ebuild 17854 RMD160 56a660a44d8ee20ee5d888ad2ca288837da683aa SHA1 56a30c3e7f3568556661c6f7f6740717af8ba4b0 SHA256 13e32d79e7eb5e7e2479661c89e49954f05cded53a9b051bbb3adb86d5949d73 +MD5 a8f122ac9d679f291354535d31c49da3 perl-blead-5.9.99.ebuild 17854 +RMD160 56a660a44d8ee20ee5d888ad2ca288837da683aa perl-blead-5.9.99.ebuild 17854 +SHA256 13e32d79e7eb5e7e2479661c89e49954f05cded53a9b051bbb3adb86d5949d73 perl-blead-5.9.99.ebuild 17854 +MD5 d41d8cd98f00b204e9800998ecf8427e files/digest-perl-blead-5.9.99 0 +RMD160 9c1185a5c5e9fc54612808977ee8f548b2258d31 files/digest-perl-blead-5.9.99 0 +SHA256 e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 files/digest-perl-blead-5.9.99 0 diff --git a/dev-lang/perl-blead/files/digest-perl-blead-5.9.99 b/dev-lang/perl-blead/files/digest-perl-blead-5.9.99 new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/dev-lang/perl-blead/files/digest-perl-blead-5.9.99 diff --git a/dev-lang/perl-blead/files/perl-blead-5.8.7-MakeMaker-RUNPATH.patch b/dev-lang/perl-blead/files/perl-blead-5.8.7-MakeMaker-RUNPATH.patch new file mode 100644 index 000000000..c442defa5 --- /dev/null +++ b/dev-lang/perl-blead/files/perl-blead-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/dev-lang/perl-blead/files/perl-blead-5.9.99-CAN-2005-0448-rmtree.patch b/dev-lang/perl-blead/files/perl-blead-5.9.99-CAN-2005-0448-rmtree.patch new file mode 100644 index 000000000..0bee3e107 --- /dev/null +++ b/dev-lang/perl-blead/files/perl-blead-5.9.99-CAN-2005-0448-rmtree.patch @@ -0,0 +1,263 @@ +--- lib/File/Path.pm.old 2005-06-28 17:22:21.000000000 -0400 ++++ lib/File/Path.pm 2005-06-28 17:32:32.000000000 -0400 +@@ -26,9 +26,11 @@ to a list of paths to create, + + =item * + +-a boolean value, which if TRUE will cause C<mkpath> +-to print the name of each directory as it is created +-(defaults to FALSE), and ++a boolean value, which if FALSE (the default for non-root users) will ++cause C<rmtree> to adjust the mode of directories (if required) prior ++to attempting to remove the contents. Note that on interruption or ++failure of C<rmtree>, directories may be left with more permissi ++modes for the owner. + + =item * + +@@ -124,6 +126,7 @@ use File::Basename (); + use Exporter (); + use strict; + use warnings; ++use Cwd 'getcwd'; + + our $VERSION = "1.07"; + our @ISA = qw( Exporter ); +@@ -172,111 +175,133 @@ sub mkpath { + @created; + } + +-sub rmtree { +- my($roots, $verbose, $safe) = @_; +- my(@files); +- my($count) = 0; +- $verbose ||= 0; +- $safe ||= 0; +- +- if ( defined($roots) && length($roots) ) { +- $roots = [$roots] unless ref $roots; +- } +- else { +- carp "No root path(s) specified\n"; +- return 0; +- } +- +- my($root); +- foreach $root (@{$roots}) { +- if ($Is_MacOS) { +- $root = ":$root" if $root !~ /:/; +- $root =~ s#([^:])\z#$1:#; +- } else { +- $root =~ s#/\z##; +- } +- (undef, undef, my $rp) = lstat $root or next; +- $rp &= 07777; # don't forget setuid, setgid, sticky bits +- if ( -d _ ) { +- # notabene: 0700 is for making readable in the first place, +- # it's also intended to change it to writable in case we have +- # to recurse in which case we are better than rm -rf for +- # subtrees with strange permissions +- chmod($rp | 0700, ($Is_VMS ? VMS::Filespec::fileify($root) : $root)) +- or carp "Can't make directory $root read+writeable: $!" +- unless $safe; +- +- if (opendir my $d, $root) { +- no strict 'refs'; +- if (!defined ${"\cTAINT"} or ${"\cTAINT"}) { +- # Blindly untaint dir names +- @files = map { /^(.*)$/s ; $1 } readdir $d; +- } else { +- @files = readdir $d; +- } +- closedir $d; +- } +- else { +- carp "Can't read $root: $!"; +- @files = (); +- } ++sub _rmtree; ++sub _rmtree ++{ ++ ++ my ($path, $prefix, $up, $up_dev, $up_ino, $verbose, $safe) = @_; ++ ++ my ($dev, $ino) = lstat $path or do { ++ carp "Can't stat $prefix$path ($!)" unless $!{ENOENT}; ++ return 0; ++ }; ++ ++ unless (-d _) ++ { ++ print "unlink $prefix$path\n" if $verbose; ++ unless (unlink $path) ++ { ++ carp "Can't remove file $prefix$path ($!)"; ++ return 0; ++ } ++ return 1; ++ } + +- # Deleting large numbers of files from VMS Files-11 filesystems +- # is faster if done in reverse ASCIIbetical order +- @files = reverse @files if $Is_VMS; +- ($root = VMS::Filespec::unixify($root)) =~ s#\.dir\z## if $Is_VMS; +- if ($Is_MacOS) { +- @files = map("$root$_", @files); +- } else { +- @files = map("$root/$_", grep $_!~/^\.{1,2}\z/s,@files); +- } +- $count += rmtree(\@files,$verbose,$safe); +- if ($safe && +- ($Is_VMS ? !&VMS::Filespec::candelete($root) : !-w $root)) { +- print "skipped $root\n" if $verbose; +- next; +- } +- chmod $rp | 0700, $root +- or carp "Can't make directory $root writeable: $!" +- if $force_writeable; +- print "rmdir $root\n" if $verbose; +- if (rmdir $root) { +- ++$count; +- } +- else { +- carp "Can't remove directory $root: $!"; +- chmod($rp, ($Is_VMS ? VMS::Filespec::fileify($root) : $root)) +- or carp("and can't restore permissions to " +- . sprintf("0%o",$rp) . "\n"); +- } +- } +- else { +- if ($safe && +- ($Is_VMS ? !&VMS::Filespec::candelete($root) +- : !(-l $root || -w $root))) +- { +- print "skipped $root\n" if $verbose; +- next; +- } +- chmod $rp | 0600, $root +- or carp "Can't make file $root writeable: $!" +- if $force_writeable; +- print "unlink $root\n" if $verbose; +- # delete all versions under VMS +- for (;;) { +- unless (unlink $root) { +- carp "Can't unlink file $root: $!"; +- if ($force_writeable) { +- chmod $rp, $root +- or carp("and can't restore permissions to " +- . sprintf("0%o",$rp) . "\n"); +- } +- last; +- } +- ++$count; +- last unless $Is_VMS && lstat $root; +- } +- } ++ unless (chdir $path) ++ { ++ carp "Can't chdir to $prefix$path ($!)"; ++ return 0; ++ } ++ ++ # avoid a race condition where a directory may be replaced by a ++ # symlink between the lstat and the chdir ++ my ($new_dev, $new_ino, $perm) = stat '.'; ++ unless ("$new_dev:$new_ino" eq "$dev:$ino") ++ { ++ croak "Directory $prefix$path changed before chdir, aborting"; ++ } ++ ++ $perm &= 07777; ++ my $nperm = $perm | 0700; ++ unless ($safe or $nperm == $perm or chmod $nperm, '.') ++ { ++ carp "Can't make directory $prefix$path read+writeable ($!)"; ++ $nperm = $perm; ++ } ++ ++ my $count = 0; ++ if (opendir my $dir, '.') ++ { ++ my $entry; ++ while (defined ($entry = readdir $dir)) ++ { ++ next if $entry =~ /^\.\.?$/; ++ $entry =~ /^(.*)$/s; $entry = $1; # untaint ++ $count += _rmtree $entry, "$prefix$path/", '..', $dev, $ino, ++ $verbose, $safe; ++ } ++ ++ closedir $dir; ++ } ++ ++ # restore directory permissions if required (in case the rmdir ++ # below fails) now, while we're still in the directory and may do ++ # so without a race via '.' ++ unless ($nperm == $perm or chmod $perm, '.') ++ { ++ carp "Can't restore permissions on directory $prefix$path ($!)"; ++ } ++ ++ # don't leave the caller in an unexpected directory ++ unless (chdir $up) ++ { ++ croak "Can't return to $up from $prefix$path ($!)"; ++ } ++ ++ # ensure that a chdir .. didn't take us somewhere other than ++ # where we expected (see CVE-2002-0435) ++ unless (($new_dev, $new_ino) = stat '.' ++ and "$new_dev:$new_ino" eq "$up_dev:$up_ino") ++ { ++ croak "Previous directory $up changed since entering $prefix$path"; ++ } ++ ++ print "rmdir $prefix$path\n" if $verbose; ++ if (rmdir $path) ++ { ++ $count++; ++ } ++ else ++ { ++ carp "Can't remove directory $prefix$path ($!)"; ++ } ++ ++ return $count; ++} ++ ++sub rmtree ++{ ++ my ($p, $verbose, $safe) = @_; ++ $p = [] unless defined $p and length $p; ++ $p = [ $p ] unless ref $p; ++ my @paths = grep defined && length, @$p; ++ ++ # default to "unsafe" for non-root (will chmod dirs) ++ $safe = $> ? 0 : 1 unless defined $safe; ++ ++ unless (@paths) ++ { ++ carp "No root path(s) specified"; ++ return; ++ } ++ ++ my $oldpwd = getcwd or do { ++ carp "Can't fetch initial working directory"; ++ return; ++ }; ++ ++ my ($dev, $ino) = stat '.' or do { ++ carp "Can't stat initial working directory"; ++ return; ++ }; ++ ++ # untaint ++ for ($oldpwd) { /^(.*)$/s; $_ = $1 } ++ ++ my $count = 0; ++ for my $path (@paths) ++ { ++ $count += _rmtree $path, '', $oldpwd, $dev, $ino, $verbose, $safe; + } + + $count; diff --git a/dev-lang/perl-blead/files/perl-blead-5.9.99-USE_MM_LD_RUN_PATH.patch b/dev-lang/perl-blead/files/perl-blead-5.9.99-USE_MM_LD_RUN_PATH.patch new file mode 100644 index 000000000..edcfc6a41 --- /dev/null +++ b/dev-lang/perl-blead/files/perl-blead-5.9.99-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/dev-lang/perl-blead/files/perl-blead-5.9.99-asm-page-h-compile-failure.patch b/dev-lang/perl-blead/files/perl-blead-5.9.99-asm-page-h-compile-failure.patch new file mode 100644 index 000000000..325caafc8 --- /dev/null +++ b/dev-lang/perl-blead/files/perl-blead-5.9.99-asm-page-h-compile-failure.patch @@ -0,0 +1,12 @@ +--- perl-5.8.8/ext/IPC/SysV/SysV.xs.no_asm_page_h 2001-06-30 14:46:07.000000000 -0400 ++++ perl-5.8.8/ext/IPC/SysV/SysV.xs 2006-06-02 17:37:22.000000000 -0400 +@@ -3,9 +3,6 @@ + #include "XSUB.h" + + #include <sys/types.h> +-#ifdef __linux__ +-# include <asm/page.h> +-#endif + #if defined(HAS_MSG) || defined(HAS_SEM) || defined(HAS_SHM) + #ifndef HAS_SEM + # include <sys/ipc.h> diff --git a/dev-lang/perl-blead/files/perl-blead-5.9.99-cplusplus.patch b/dev-lang/perl-blead/files/perl-blead-5.9.99-cplusplus.patch new file mode 100644 index 000000000..064bda422 --- /dev/null +++ b/dev-lang/perl-blead/files/perl-blead-5.9.99-cplusplus.patch @@ -0,0 +1,22 @@ +--- perl.h.orig 2006-03-29 08:53:46.000000000 -0500 ++++ perl.h 2006-03-29 08:54:19.000000000 -0500 +@@ -159,7 +159,7 @@ struct perl_thread; + #endif + + #ifndef PERL_UNUSED_DECL +-# ifdef HASATTRIBUTE_UNUSED ++# if defined(HASATTRIBUTE_UNUSED) && !defined(__cplusplus) + # define PERL_UNUSED_DECL __attribute__unused__ + # else + # define PERL_UNUSED_DECL +--- XSUB.h.orig 2006-03-29 08:54:24.000000000 -0500 ++++ XSUB.h 2006-03-29 08:54:48.000000000 -0500 +@@ -91,7 +91,7 @@ handled automatically by C<xsubpp>. + #if defined(__CYGWIN__) && defined(USE_DYNAMIC_LOADING) + # define XS(name) __declspec(dllexport) void name(pTHX_ CV* cv) + #else +-# ifdef HASATTRIBUTE_UNUSED ++# if defined(HASATTRIBUTE_UNUSED) && !defined(__cplusplus) + # define XS(name) void name(pTHX_ CV* cv __attribute__unused__) + # else + # define XS(name) void name(pTHX_ CV* cv) diff --git a/dev-lang/perl-blead/files/perl-blead-5.9.99-dragonfly-clean.patch b/dev-lang/perl-blead/files/perl-blead-5.9.99-dragonfly-clean.patch new file mode 100644 index 000000000..52f32bf5e --- /dev/null +++ b/dev-lang/perl-blead/files/perl-blead-5.9.99-dragonfly-clean.patch @@ -0,0 +1,170 @@ +Index: perl-5.8.8/Configure +=================================================================== +--- perl-5.8.8.orig/Configure 2006-01-08 14:51:03 +0000 ++++ perl-5.8.8/Configure 2006-02-14 13:41:41 +0000 +@@ -3130,6 +3130,8 @@ + dgux) osname=dgux + osvers="$3" + ;; ++ dragonfly) osname=dragonfly ++ osvers="$3" ;; + dynixptx*) osname=dynixptx + osvers=`echo "$4"|sed 's/^v//'` + ;; +@@ -7889,7 +7891,7 @@ + solaris) + xxx="-R $shrpdir" + ;; +- freebsd|netbsd|openbsd|interix) ++ freebsd|netbsd|openbsd|dragonfly|interix) + xxx="-Wl,-R$shrpdir" + ;; + bsdos|linux|irix*|dec_osf|gnu*) +Index: perl-5.8.8/Makefile.SH +=================================================================== +--- perl-5.8.8.orig/Makefile.SH 2006-01-24 12:49:44 +0000 ++++ perl-5.8.8/Makefile.SH 2006-02-14 13:46:57 +0000 +@@ -73,7 +73,7 @@ + sunos*) + linklibperl="-lperl" + ;; +- netbsd*|freebsd[234]*|openbsd*) ++ netbsd*|freebsd[234]*|openbsd*|dragonfly*) + linklibperl="-L. -lperl" + ;; + interix*) +@@ -990,6 +990,10 @@ + n_dummy $(nonxs_ext): miniperl$(EXE_EXT) preplibrary $(DYNALOADER) FORCE + @$(LDLIBPTH) sh ext/util/make_ext nonxs $@ MAKE=$(MAKE) LIBPERL_A=$(LIBPERL) + ++.PHONY: printconfig ++printconfig: ++ @eval `$(LDLIBPTH) ./perl -Ilib -V:$(CONFIGVAR)`; echo $$$(CONFIGVAR) ++ + .PHONY: clean _tidy _mopup _cleaner1 _cleaner2 \ + realclean _realcleaner clobber _clobber \ + distclean veryclean _verycleaner +Index: perl-5.8.8/hints/dragonfly.sh +=================================================================== +--- perl-5.8.8.orig/hints/dragonfly.sh 1970-01-01 00:00:00 +0000 ++++ perl-5.8.8/hints/dragonfly.sh 2006-02-14 13:15:04 +0000 +@@ -0,0 +1,118 @@ ++# hints/dragonfly.sh ++# ++# This file is mostly copied from hints/freebsd.sh with the OS version ++# information taken out and only the FreeBSD-4 information intact. ++# Please check with Todd Willey <xtoddx@gmail.com> before making ++# modifications to this file. ++ ++case "$osvers" in ++*) usevfork='true' ++ case "$usemymalloc" in ++ "") usemymalloc='n' ++ ;; ++ esac ++ libswanted=`echo $libswanted | sed 's/ malloc / /'` ++ ;; ++esac ++ ++# Dynamic Loading flags have not changed much, so they are separated ++# out here to avoid duplicating them everywhere. ++case "$osvers" in ++*) ++ objformat=`/usr/bin/objformat` ++ if [ x$objformat = xelf ]; then ++ libpth="/usr/lib /usr/local/lib" ++ glibpth="/usr/lib /usr/local/lib" ++ ldflags="-Wl,-E " ++ lddlflags="-shared " ++ else ++ if [ -e /usr/lib/aout ]; then ++ libpth="/usr/lib/aout /usr/local/lib /usr/lib" ++ glibpth="/usr/lib/aout /usr/local/lib /usr/lib" ++ fi ++ lddlflags='-Bshareable' ++ fi ++ cccdlflags='-DPIC -fPIC' ++ ;; ++esac ++ ++case "$osvers" in ++*) ++ ccflags="${ccflags} -DHAS_FPSETMASK -DHAS_FLOATINGPOINT_H" ++ if /usr/bin/file -L /usr/lib/libc.so | /usr/bin/grep -vq "not stripped" ; then ++ usenm=false ++ fi ++ ;; ++esac ++ ++cat <<'EOM' >&4 ++ ++Some users have reported that Configure halts when testing for ++the O_NONBLOCK symbol with a syntax error. This is apparently a ++sh error. Rerunning Configure with ksh apparently fixes the ++problem. Try ++ ksh Configure [your options] ++ ++EOM ++ ++# From: Anton Berezin <tobez@plab.ku.dk> ++# To: perl5-porters@perl.org ++# Subject: [PATCH 5.005_54] Configure - hints/freebsd.sh signal handler type ++# Date: 30 Nov 1998 19:46:24 +0100 ++# Message-ID: <864srhhvcv.fsf@lion.plab.ku.dk> ++ ++signal_t='void' ++d_voidsig='define' ++ ++# This script UU/usethreads.cbu will get 'called-back' by Configure ++# after it has prompted the user for whether to use threads. ++cat > UU/usethreads.cbu <<'EOCBU' ++case "$usethreads" in ++$define|true|[yY]*) ++ lc_r=`/sbin/ldconfig -r|grep ':-lc_r'|awk '{print $NF}'|sed -n '$p'` ++ case "$osvers" in ++ *) ++ if [ ! -r "$lc_r" ]; then ++ cat <<EOM >&4 ++POSIX threads should be supported by FreeBSD $osvers -- ++but your system is missing the shared libc_r. ++(/sbin/ldconfig -r doesn't find any). ++ ++Consider using the latest STABLE release. ++EOM ++ exit 1 ++ fi ++ case "$osvers" in ++ *) ldflags="-pthread $ldflags" ++ ;; ++ esac ++ # Both in 4.x and 5.x gethostbyaddr_r exists but ++ # it is "Temporary function, not threadsafe"... ++ # Presumably earlier it didn't even exist. ++ d_gethostbyaddr_r="undef" ++ d_gethostbyaddr_r_proto="0" ++ ;; ++ ++ esac ++ ++ set `echo X "$libswanted "| sed -e 's/ c / c_r /'` ++ shift ++ libswanted="$*" ++ # Configure will probably pick the wrong libc to use for nm scan. ++ # The safest quick-fix is just to not use nm at all... ++ usenm=false ++ ++ unset lc_r ++ ++ # Even with the malloc mutexes the Perl malloc does not ++ # seem to be threadsafe in FreeBSD? ++ case "$usemymalloc" in ++ '') usemymalloc=n ;; ++ esac ++esac ++EOCBU ++ ++# malloc wrap works ++case "$usemallocwrap" in ++'') usemallocwrap='define' ;; ++esac + diff --git a/dev-lang/perl-blead/files/perl-blead-5.9.99-fbsdhints.patch b/dev-lang/perl-blead/files/perl-blead-5.9.99-fbsdhints.patch new file mode 100644 index 000000000..5f888346a --- /dev/null +++ b/dev-lang/perl-blead/files/perl-blead-5.9.99-fbsdhints.patch @@ -0,0 +1,33 @@ +Index: perl-5.8.8/hints/freebsd.sh +=================================================================== +--- perl-5.8.8.orig/hints/freebsd.sh ++++ perl-5.8.8/hints/freebsd.sh +@@ -88,6 +88,8 @@ case "$osvers" in + esac + libswanted=`echo $libswanted | sed 's/ malloc / /'` + libswanted=`echo $libswanted | sed 's/ bind / /'` ++ libswanted=`echo $libswanted | sed 's/ dl / /'` ++ libswanted=`echo $libswanted | sed 's/ c / /'` + # iconv gone in Perl 5.8.1, but if someone compiles 5.8.0 or earlier. + libswanted=`echo $libswanted | sed 's/ iconv / /'` + d_setregid='define' +@@ -102,6 +104,10 @@ case "$osvers" in + ;; + esac + libswanted=`echo $libswanted | sed 's/ malloc / /'` ++ libswanted=`echo $libswanted | sed 's/ bind / /'` ++ libswanted=`echo $libswanted | sed 's/ dl / /'` ++ libswanted=`echo $libswanted | sed 's/ iconv / /'` ++ libswanted=`echo $libswanted | sed 's/ c / /'` + ;; + esac + +@@ -137,7 +143,7 @@ case "$osvers" in + + *) + ccflags="${ccflags} -DHAS_FPSETMASK -DHAS_FLOATINGPOINT_H" +- if /usr/bin/file -L /usr/lib/libc.so | /usr/bin/grep -vq "not stripped" ; then ++ if /usr/bin/file -L /usr/lib/libc.so | grep -vq "not stripped" ; then + usenm=false + fi + ;; diff --git a/dev-lang/perl-blead/files/perl-blead-5.9.99-gcc42-command-line.patch b/dev-lang/perl-blead/files/perl-blead-5.9.99-gcc42-command-line.patch new file mode 100644 index 000000000..6904136c7 --- /dev/null +++ b/dev-lang/perl-blead/files/perl-blead-5.9.99-gcc42-command-line.patch @@ -0,0 +1,11 @@ +diff -Naur perl-5.8.8-orig/makedepend.SH perl-5.8.8/makedepend.SH +--- perl-5.8.8-orig/makedepend.SH 2006-10-01 20:05:40.000000000 -0600 ++++ perl-5.8.8/makedepend.SH 2006-10-01 20:07:03.000000000 -0600 +@@ -167,6 +167,7 @@ + -e '/^#.*<builtin>/d' \ + -e '/^#.*<built-in>/d' \ + -e '/^#.*<command line>/d' \ ++ -e '/^#.*<command-line>/d' \ + -e '/^#.*"-"/d' \ + -e '/: file path prefix .* never used$/d' \ + -e 's#\.[0-9][0-9]*\.c#'"$file.c#" \ diff --git a/dev-lang/perl-blead/files/perl-blead-5.9.99-lib64.patch b/dev-lang/perl-blead/files/perl-blead-5.9.99-lib64.patch new file mode 100644 index 000000000..dcc91846d --- /dev/null +++ b/dev-lang/perl-blead/files/perl-blead-5.9.99-lib64.patch @@ -0,0 +1,96 @@ +--- Configure.orig 2006-02-03 16:15:00.000000000 -0500 ++++ Configure 2006-02-03 16:25:04.000000000 -0500 +@@ -1256,17 +1256,24 @@ locincpth="$locincpth /opt/gnu/include / + : no include file wanted by default + inclwanted='' + ++: determine libdir name ++: Should be */lib64 on x86-64, sparc64, ppc64 ++case `arch` in ++ x86_64) lib='lib64';; ++ *) lib='lib';; ++esac ++ + groupstype='' + libnames='' + : 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="/usr/local/$lib /opt/local/$lib /usr/gnu/$lib" ++loclibpth="$loclibpth /opt/gnu/$lib /usr/GNU/$lib /opt/GNU/$lib" + + : general looking path for locating libraries +-glibpth="/lib /usr/lib $xlibpth" +-glibpth="$glibpth /usr/ccs/lib /usr/ucblib /usr/local/lib" ++glibpth="/$lib /usr/$lib $xlibpth" ++glibpth="$glibpth /usr/ccs/$lib /usr/ucblib /usr/local/$lib" + test -f /usr/shlib/libc.so && glibpth="/usr/shlib $glibpth" + test -f /shlib/libc.so && glibpth="/shlib $glibpth" + +@@ -5951,8 +5958,8 @@ fi + : Reproduce behavior of 5.005 and earlier, maybe drop that in 5.7. + case "$installstyle" in + '') case "$prefix" in +- *perl*) dflt='lib';; +- *) dflt='lib/perl5' ;; ++ *perl*) dflt='lib64';; ++ *) dflt='lib64/perl5' ;; + esac + ;; + *) dflt="$installstyle" ;; +@@ -5968,8 +5975,8 @@ installstyle=$dflt + : /opt/perl/lib/perl5... would be redundant. + : The default "style" setting is made in installstyle.U + case "$installstyle" in +-*lib/perl5*) set dflt privlib lib/$package/$version ;; +-*) set dflt privlib lib/$version ;; ++*lib64/perl5*) set dflt privlib lib64/$package/$version ;; ++*) set dflt privlib lib64/$version ;; + esac + eval $prefixit + $cat <<EOM +@@ -6471,8 +6478,8 @@ siteprefixexp="$ansexp" + prog=`echo $package | $sed 's/-*[0-9.]*$//'` + case "$sitelib" in + '') case "$installstyle" in +- *lib/perl5*) dflt=$siteprefix/lib/$package/site_$prog/$version ;; +- *) dflt=$siteprefix/lib/site_$prog/$version ;; ++ *lib64/perl5*) dflt=$siteprefix/lib64/$package/site_$prog/$version ;; ++ *) dflt=$siteprefix/lib64/site_$prog/$version ;; + esac + ;; + *) dflt="$sitelib" +@@ -6598,8 +6605,8 @@ case "$vendorprefix" in + '') + prog=`echo $package | $sed 's/-*[0-9.]*$//'` + case "$installstyle" in +- *lib/perl5*) dflt=$vendorprefix/lib/$package/vendor_$prog/$version ;; +- *) dflt=$vendorprefix/lib/vendor_$prog/$version ;; ++ *lib64/perl5*) dflt=$vendorprefix/lib64/$package/vendor_$prog/$version ;; ++ *) dflt=$vendorprefix/lib64/vendor_$prog/$version ;; + esac + ;; + *) dflt="$vendorlib" +@@ -10556,9 +10563,9 @@ else + else + for net in net socket + do +- if test -f /usr/lib/lib$net$_a; then +- ( ($nm $nm_opt /usr/lib/lib$net$_a | eval $nm_extract) || \ +- $ar t /usr/lib/lib$net$_a) 2>/dev/null >> libc.list ++ if test -f /usr/$lib/lib$net$_a; then ++ ( ($nm $nm_opt /usr/$lib/lib$net$_a | eval $nm_extract) || \ ++ $ar t /usr/$lib/lib$net$_a) 2>/dev/null >> libc.list + if $contains socket libc.list >/dev/null 2>&1; then + d_socket="$define" + socketlib="-l$net" +@@ -21677,6 +21684,7 @@ ldflags='$ldflags' + ldflags_uselargefiles='$ldflags_uselargefiles' + ldlibpthname='$ldlibpthname' + less='$less' ++lib='$lib' + lib_ext='$lib_ext' + libc='$libc' + libperl='$libperl' diff --git a/dev-lang/perl-blead/files/perl-blead-5.9.99-links.patch b/dev-lang/perl-blead/files/perl-blead-5.9.99-links.patch new file mode 100644 index 000000000..22e74b3a6 --- /dev/null +++ b/dev-lang/perl-blead/files/perl-blead-5.9.99-links.patch @@ -0,0 +1,86 @@ +--- lib/CPAN/FirstTime.pm.orig 2006-02-06 07:50:13.000000000 -0500 ++++ lib/CPAN/FirstTime.pm 2006-02-06 07:50:28.000000000 -0500 +@@ -292,7 +292,7 @@ by ENTER. + my(@path) = split /$Config{'path_sep'}/, $ENV{'PATH'}; + local $^W = $old_warn; + my $progname; +- for $progname (qw/gzip tar unzip make lynx wget ncftpget ncftp ftp gpg/){ ++ for $progname (qw/gzip tar unzip make links lynx wget ncftpget ncftp ftp gpg/){ + if ($^O eq 'MacOS') { + $CPAN::Config->{$progname} = 'not_here'; + next; +--- lib/CPAN.pm.orig 2006-02-06 07:54:43.000000000 -0500 ++++ lib/CPAN.pm 2006-02-06 07:52:59.000000000 -0500 +@@ -2604,7 +2604,7 @@ sub hosthard { + + $self->debug("localizing funkyftpwise[$url]") if $CPAN::DEBUG; + my($f,$funkyftp); +- for $f ('lynx','ncftpget','ncftp','wget') { ++ for $f ('links','lynx','ncftpget','ncftp','wget') { + next unless exists $CPAN::Config->{$f}; + $funkyftp = $CPAN::Config->{$f}; + next unless defined $funkyftp; +@@ -2613,7 +2613,7 @@ sub hosthard { + ($asl_ungz = $aslocal) =~ s/\.gz//; + $asl_gz = "$asl_ungz.gz"; + my($src_switch) = ""; +- if ($f eq "lynx"){ ++ if (($f eq "lynx")||($f eq "links")){ + $src_switch = " -source"; + } elsif ($f eq "ncftp"){ + $src_switch = " -c"; +@@ -2637,10 +2637,14 @@ Trying with "$funkyftp$src_switch" to ge + my($wstatus); + if (($wstatus = system($system)) == 0 + && +- ($f eq "lynx" ? ++ (($f eq "lynx" ? + -s $asl_ungz # lynx returns 0 when it fails somewhere + : 1 +- ) ++ )|| ++ ($f eq "links" ? ++ -s $asl_ungz # links returns 0 when it fails somewhere ++ : 1 ++ )) + ) { + if (-s $aslocal) { + # Looks good +@@ -2695,7 +2699,7 @@ returned status $estatus (wstat $wstatus + }); + } + return if $CPAN::Signal; +- } # lynx,ncftpget,ncftp ++ } # links,lynx,ncftpget,ncftp + } # host + } + +@@ -6022,7 +6026,7 @@ stalled. + + The CPAN module is designed to automate the make and install of perl + modules and extensions. It includes some primitive searching capabilities and +-knows how to use Net::FTP or LWP (or lynx or an external ftp client) ++knows how to use Net::FTP or LWP (or lynx or links or an external ftp client) + to fetch the raw data from the net. + + Modules are fetched from one or more of the mirrored CPAN +@@ -6975,16 +6979,18 @@ or + + =back + +-=head2 Configuring lynx or ncftp for going through a firewall ++=head2 Configuring links or lynx or ncftp for going through a firewall + + If you can go through your firewall with e.g. lynx, presumably with a + command such as + + /usr/local/bin/lynx -pscott:tiger ++ /usr/local/bin/links -pscott:tiger + + then you would configure CPAN.pm with the command + + o conf lynx "/usr/local/bin/lynx -pscott:tiger" ++ o conf links "/usr/local/bin/links -pscott:tiger" + + That's all. Similarly for ncftp or ftp, you would configure something + like diff --git a/dev-lang/perl-blead/files/perl-blead-5.9.99-reorder-INC.patch b/dev-lang/perl-blead/files/perl-blead-5.9.99-reorder-INC.patch new file mode 100644 index 000000000..25a8e8419 --- /dev/null +++ b/dev-lang/perl-blead/files/perl-blead-5.9.99-reorder-INC.patch @@ -0,0 +1,33 @@ +--- perl.c 2007-07-11 10:54:09.000000000 -0400 ++++ perl.c.orig 2007-07-11 10:48:26.000000000 -0400 +@@ -4791,8 +4791,9 @@ S_init_perllib(pTHX) + incpush(APPLLIB_EXP, TRUE, TRUE, TRUE, TRUE); + #endif + +-/* for configuration where /usr is mounted ro (CPAN::Config, Net::Config */ +- incpush("/etc/perl", FALSE, FALSE, TRUE); ++#ifdef ARCHLIB_EXP ++ incpush(ARCHLIB_EXP, FALSE, FALSE, TRUE, TRUE); ++#endif + #ifdef MACOS_TRADITIONAL + { + Stat_t tmpstatbuf; +@@ -4819,6 +4820,8 @@ S_init_perllib(pTHX) + #endif + #if defined(WIN32) + incpush(PRIVLIB_EXP, TRUE, FALSE, TRUE, TRUE); ++#else ++ incpush(PRIVLIB_EXP, FALSE, FALSE, TRUE, TRUE); + #endif + + #ifdef SITEARCH_EXP +@@ -4862,9 +4865,6 @@ S_init_perllib(pTHX) + #ifdef PERL_VENDORLIB_STEM /* Search for version-specific dirs below here */ + incpush(PERL_VENDORLIB_STEM, FALSE, TRUE, TRUE, TRUE); + #endif +- incpush(ARCHLIB_EXP, FALSE, FALSE, TRUE); +- incpush(PRIVLIB_EXP, FALSE, FALSE, TRUE); +- incpush("/usr/local/lib/site_perl", TRUE, FALSE, TRUE); + + #ifdef PERL_OTHERLIBDIRS + incpush(PERL_OTHERLIBDIRS, TRUE, TRUE, TRUE, TRUE); diff --git a/dev-lang/perl-blead/files/perl-blead-h2ph-ansi-header.patch b/dev-lang/perl-blead/files/perl-blead-h2ph-ansi-header.patch new file mode 100644 index 000000000..c7f0d7246 --- /dev/null +++ b/dev-lang/perl-blead/files/perl-blead-h2ph-ansi-header.patch @@ -0,0 +1,11 @@ +--- perl-5.8.0-RC2/utils/h2ph_patched.pix 2002-06-24 12:52:31.000000000 +0200 ++++ perl-5.8.0-RC2/utils/h2ph_patched 2002-06-24 12:54:32.000000000 +0200 +@@ -39,6 +39,8 @@ + my ($t, $tab, %curargs, $new, $eval_index, $dir, $name, $args, $outfile); + my ($incl, $next); + while (defined (my $file = next_file())) { ++ next if $file eq 'machine/ansi.h'; ++ + if (-l $file and -d $file) { + link_if_possible($file) if ($opt_l); + next; diff --git a/dev-lang/perl-blead/files/perl-blead-hppa-pa7200-configure.patch b/dev-lang/perl-blead/files/perl-blead-hppa-pa7200-configure.patch new file mode 100644 index 000000000..52a9b3b42 --- /dev/null +++ b/dev-lang/perl-blead/files/perl-blead-hppa-pa7200-configure.patch @@ -0,0 +1,11 @@ +--- Configure.orig 2007-07-05 13:40:01.000000000 -0400 ++++ Configure 2007-07-05 13:40:29.000000000 -0400 +@@ -3028,7 +3028,7 @@ $eunicefix tr + : 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/dev-lang/perl-blead/files/perl-blead-noksh.patch b/dev-lang/perl-blead/files/perl-blead-noksh.patch new file mode 100644 index 000000000..4c33b3e71 --- /dev/null +++ b/dev-lang/perl-blead/files/perl-blead-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/dev-lang/perl-blead/files/perl-blead-perldoc-emptydirs.patch b/dev-lang/perl-blead/files/perl-blead-perldoc-emptydirs.patch new file mode 100644 index 000000000..650248c50 --- /dev/null +++ b/dev-lang/perl-blead/files/perl-blead-perldoc-emptydirs.patch @@ -0,0 +1,10 @@ +--- lib/Pod/Perldoc.pm.orig 2003-10-22 13:02:15.000000000 -0700 ++++ lib/Pod/Perldoc.pm 2003-10-22 13:02:36.000000000 -0700 +@@ -1513,6 +1513,7 @@ + $self->{'target'} = (splitdir $s)[-1]; # XXX: why not use File::Basename? + for ($i=0; $i<@dirs; $i++) { + $dir = $dirs[$i]; ++ next unless -d $dir; + ($dir = VMS::Filespec::unixpath($dir)) =~ s!/\z!! if IS_VMS; + if ( (! $self->opt_m && ( $ret = $self->check_file($dir,"$s.pod"))) + or ( $ret = $self->check_file($dir,"$s.pm")) diff --git a/dev-lang/perl-blead/files/perl-blead-picdl.patch b/dev-lang/perl-blead/files/perl-blead-picdl.patch new file mode 100644 index 000000000..f69a6800c --- /dev/null +++ b/dev-lang/perl-blead/files/perl-blead-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/dev-lang/perl-blead/files/perl-blead-prelink-lpthread.patch b/dev-lang/perl-blead/files/perl-blead-prelink-lpthread.patch new file mode 100644 index 000000000..d38497e0a --- /dev/null +++ b/dev-lang/perl-blead/files/perl-blead-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/dev-lang/perl-blead/files/perl-blead-regexp-nossp.patch b/dev-lang/perl-blead/files/perl-blead-regexp-nossp.patch new file mode 100644 index 000000000..b7b836e7c --- /dev/null +++ b/dev-lang/perl-blead/files/perl-blead-regexp-nossp.patch @@ -0,0 +1,11 @@ +--- cflags.SH.orig 2007-07-05 13:33:47.000000000 -0400 ++++ cflags.SH 2007-07-05 13:34:15.000000000 -0400 +@@ -330,6 +330,8 @@ if test -f .patch; then + 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/dev-lang/perl-blead/perl-blead-5.9.99.ebuild b/dev-lang/perl-blead/perl-blead-5.9.99.ebuild new file mode 100644 index 000000000..7f8402622 --- /dev/null +++ b/dev-lang/perl-blead/perl-blead-5.9.99.ebuild @@ -0,0 +1,640 @@ +# Copyright 1999-2007 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/dev-lang/perl/perl-5.8.8-r2.ebuild,v 1.34 2007/04/30 21:21:58 solar Exp $ + +inherit eutils flag-o-matic toolchain-funcs multilib + +# The slot of this binary compat version of libperl.so +PERLSLOT="1" + +SHORT_PV="${PV%.*}" +MY_P="perl-${PV/_rc/-RC}" +MY_PV="${PV%_rc*}" +DESCRIPTION="Larry Wall's Practical Extraction and Report Language" +S="${WORKDIR}/${MY_P}" +HOMEPAGE="http://www.perl.org/" +LIBPERL="libperl$(get_libname ${PERLSLOT}.${SHORT_PV})" + +LICENSE="|| ( Artistic GPL-2 )" +SLOT="0" +KEYWORDS="alpha amd64 arm hppa ia64 m68k mips ppc ppc64 s390 sh sparc ~sparc-fbsd x86 ~x86-fbsd" +IUSE="berkdb debug doc gdbm ithreads perlsuid build" +PERL_OLDVERSEN="5.8.0 5.8.2 5.8.4 5.8.5 5.8.6 5.8.7 5.8.8" + +DEPEND="berkdb? ( sys-libs/db ) + !dev-lang/perl + !<sys-devel/libperl-${PV}-r1 + gdbm? ( >=sys-libs/gdbm-1.8.3 ) + elibc_FreeBSD? ( sys-freebsd/freebsd-mk-defs ) + net-misc/rsync + !<perl-core/File-Spec-0.87 + !<perl-core/Test-Simple-0.47-r1" + +RDEPEND="!<sys-devel/libperl-${PV} + !dev-lang/perl + berkdb? ( sys-libs/db ) + gdbm? ( >=sys-libs/gdbm-1.8.3 )" + +PDEPEND=">=app-admin/perl-cleaner-1.03 + !build? ( + >=perl-core/PodParser-1.32 + >=perl-core/Test-Harness-2.56 + dev-perl/Archive-Tar + dev-perl/module-build + dev-perl/Digest-SHA + )" + +pkg_setup() { + # I think this should rather be displayed if you *have* 'ithreads' + # in USE if it could break things ... + if use ithreads + then + ewarn "PLEASE NOTE: You are compiling ${MY_P} with" + ewarn "interpreter-level threading enabled." + ewarn "Threading is not supported by all applications " + ewarn "that compile against perl. You use threading at " + ewarn "your own discretion. " + epause 5 + fi + +} + +src_unpack() { + mkdir ${S} + cd ${S} + #rsync -avz rsync://ftp.linux.activestate.com/perl-current/ . + rsync -avz /opt/perl/ . + + # Get -lpthread linked before -lc. This is needed + # when using glibc >= 2.3, or else runtime signal + # handling breaks. Fixes bug #14380. + # <rac@gentoo.org> (14 Feb 2003) + # reinstated to try to avoid sdl segfaults 03.10.02 + cd ${S}; epatch ${FILESDIR}/${PN}-prelink-lpthread.patch + + # Patch perldoc to not abort when it attempts to search + # nonexistent directories; fixes bug #16589. + # <rac@gentoo.org> (28 Feb 2003) + + cd ${S}; epatch ${FILESDIR}/${PN}-perldoc-emptydirs.patch + + # this lays the groundwork for solving the issue of what happens + # when people (or ebuilds) install different versiosn of modules + # that are in the core, by rearranging the @INC directory to look + # site -> vendor -> core. + cd ${S}; epatch ${FILESDIR}/${P}-reorder-INC.patch + + # some well-intentioned stuff in http://groups.google.com/groups?hl=en&lr=&ie=UTF-8&selm=Pine.SOL.4.10.10205231231200.5399-100000%40maxwell.phys.lafayette.edu + # attempts to avoid bringing cccdlflags to bear on static + # extensions (like DynaLoader). i believe this is + # counterproductive on a Gentoo system which has both a shared + # and static libperl, so effectively revert this here. + cd ${S}; epatch ${FILESDIR}/${PN}-picdl.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 do not want the build root in the linked perl module's RUNPATH, so + # strip paths containing PORTAGE_TMPDIR if its set. This is for the + # MakeMaker module, bug #105054. + epatch ${FILESDIR}/${PN}-5.8.7-MakeMaker-RUNPATH.patch + + # Starting and hopefully ending with 5.8.7 we observe stack + # corruption with the regexp handling in perls DynaLoader code + # with ssp enabled. This become fatal during compile time so we + # temporally disable ssp on two regexp files till upstream has a + # chance to work it out. Bug #97452 + [[ -n $(test-flags -fno-stack-protector) ]] && \ + epatch ${FILESDIR}/${PN}-regexp-nossp.patch + + + # On PA7200, uname -a contains a single quote and we need to + # filter it otherwise configure fails. See #125535. + epatch ${FILESDIR}/perl-blead-hppa-pa7200-configure.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}-USE_MM_LD_RUN_PATH.patch + + has_version '>sys-devel/gcc-4.1.9999' && epatch ${FILESDIR}/${P}-gcc42-command-line.patch + + # Newer linux-headers don't include asm/page.h. Fix this. + # Patch from bug 168312, thanks Peter! + has_version '>sys-kernel/linux-headers-2.6.20' && epatch ${FILESDIR}/${P}-asm-page-h-compile-failure.patch + + +} + +myconf() { + # the myconf array is declared in src_configure + myconf=( "${myconf[@]}" "$@" ) +} + +src_configure() { + declare -a myconf + + # some arches and -O do not mix :) + use arm && replace-flags -O? -O1 + use ppc && replace-flags -O? -O1 + use ia64 && replace-flags -O? -O1 + # Perl has problems compiling with -Os in your flags with glibc + use elibc_uclibc || replace-flags "-Os" "-O2" + ( gcc-specs-ssp && use ia64 ) && append-flags -fno-stack-protector + # This flag makes compiling crash in interesting ways + filter-flags -malign-double + # Fixes bug #97645 + use ppc && filter-flags -mpowerpc-gpopt + # Fixes bug #143895 on gcc-4.1.1 + filter-flags "-fsched2-use-superblocks" + + export LC_ALL="C" + + case ${CHOST} in + *-freebsd*) osname="freebsd" ;; + *-dragonfly*) osname="dragonfly" ;; + *-netbsd*) osname="netbsd" ;; + *-openbsd*) osname="openbsd" ;; + *-darwin*) osname="darwin" ;; + + *) osname="linux" ;; + esac + + if use ithreads + then + einfo "using ithreads" + mythreading="-multi" + myconf -Dusethreads + myarch=${CHOST} + myarch="${myarch%%-*}-${osname}-thread" + else + myarch=${CHOST} + myarch="${myarch%%-*}-${osname}" + fi + + local inclist=$(for v in $PERL_OLDVERSEN; do echo -n "$v $v/$myarch$mythreading "; done) + + # allow either gdbm to provide ndbm (in <gdbm/ndbm.h>) or db1 + + myndbm='U' + mygdbm='U' + mydb='U' + + if use gdbm + then + mygdbm='D' + myndbm='D' + fi + if use berkdb + then + mydb='D' + has_version '=sys-libs/db-1*' && myndbm='D' + fi + + myconf "-${myndbm}i_ndbm" "-${mygdbm}i_gdbm" "-${mydb}i_db" + + if use mips + then + # this is needed because gcc 3.3-compiled kernels will hang + # the machine trying to run this test - check with `Kumba + # <rac@gentoo.org> 2003.06.26 + myconf -Dd_u32align + fi + + if use perlsuid + then + myconf -Dd_dosuid + ewarn "You have enabled Perl's suid compile. Please" + ewarn "read http://perldoc.com/perl5.8.2/INSTALL.html#suidperl" + epause 3 + fi + + if use debug + then + CFLAGS="${CFLAGS} -g" + myconf -DDEBUGGING + fi + + if use sparc + then + myconf -Ud_longdbl + fi + + if use alpha && "$(tc-getCC)" == "ccc" + then + ewarn "Perl will not be built with berkdb support, use gcc if you needed it..." + myconf -Ui_db -Ui_ndbm + fi + + [[ -n "${ABI}" ]] && myconf "-Dusrinc=$(get_ml_incdir)" + + [[ ${ELIBC} == "FreeBSD" ]] && myconf "-Dlibc=/usr/$(get_libdir)/libc.a" + + if [[ $(get_libdir) != "lib" ]] ; then + # We need to use " and not ', as the written config.sh use ' ... + myconf "-Dlibpth=/usr/local/$(get_libdir) /$(get_libdir) /usr/$(get_libdir)" + fi + + sh Configure -des \ + -Dusedevel \ + -Darchname="${myarch}" \ + -Dcccdlflags='-fPIC' \ + -Dccdlflags='-rdynamic' \ + -Dcc="$(tc-getCC)" \ + -Dprefix='/usr' \ + -Dvendorprefix='/usr' \ + -Dsiteprefix='/usr' \ + -Dlocincpth=' ' \ + -Doptimize="${CFLAGS}" \ + -Duselargefiles \ + -Duseshrplib \ + -Dd_semctl_semun \ + -Dscriptdir=/usr/bin \ + -Dman1dir=/usr/share/man/man1 \ + -Dman3dir=/usr/share/man/man3 \ + -Dinstallman1dir=/usr/share/man/man1 \ + -Dinstallman3dir=/usr/share/man/man3 \ + -Dman1ext='1' \ + -Dman3ext='3pm' \ + -Dinc_version_list="$inclist" \ + -Dinc_version_list="$inclist" \ + -Dcf_by='Gentoo' \ + -Ud_csh \ + -Dusenm \ + "${myconf[@]}" || die "Unable to configure" +} + +src_compile() { + + # would like to bracket this with a test for the existence of a + # dotfile, but can't clean it automatically now. + + src_configure + + emake -j1 || die "Unable to make" +} + +src_test() { + use elibc_uclibc && export MAKEOPTS="${MAKEOPTS} -j1" + #emake -i -I ${S}/lib test CCDLFLAGS= || die "test failed" + emake -i test CCDLFLAGS= || die "test failed" +} + +src_install() { + + export LC_ALL="C" + + # Need to do this, else apps do not link to dynamic version of + # the library ... + local coredir="/usr/$(get_libdir)/perl5/${MY_PV}/${myarch}${mythreading}/CORE" + dodir ${coredir} + + # Fix for "stupid" modules and programs + dodir /usr/$(get_libdir)/perl5/site_perl/${MY_PV}/${myarch}${mythreading} + + local installtarget=install + if use build ; then + installtarget=install.perl + fi + make DESTDIR="${D}" ${installtarget} || die "Unable to make ${installtarget}" + + rm ${D}/usr/bin/perl + ln -s perl${MY_PV} ${D}/usr/bin/perl + + cp -f utils/h2ph utils/h2ph_patched + epatch ${FILESDIR}/${PN}-h2ph-ansi-header.patch + + + LD_LIBRARY_PATH=. ./perl -Ilib utils/h2ph_patched \ + -a -d ${D}/usr/$(get_libdir)/perl5/${MY_PV}/${myarch}${mythreading} <<EOF +asm/termios.h +syscall.h +syslimits.h +syslog.h +sys/ioctl.h +sys/socket.h +sys/time.h +wait.h +EOF + + # This is to fix a missing c flag for backwards compat + for i in `find ${D}/usr/$(get_libdir)/perl5 -iname "Config.pm"`;do + sed -e "s:ccflags=':ccflags='-DPERL5 :" \ + -e "s:cppflags=':cppflags='-DPERL5 :" \ + ${i} > ${i}.new &&\ + mv ${i}.new ${i} || die "Sed failed" + done + + # A poor fix for the miniperl issues + dosed 's:./miniperl:/usr/bin/perl:' /usr/$(get_libdir)/perl5/${MY_PV}/ExtUtils/xsubpp + fperms 0444 /usr/$(get_libdir)/perl5/${MY_PV}/ExtUtils/xsubpp + dosed 's:./miniperl:/usr/bin/perl:' /usr/bin/xsubpp + fperms 0755 /usr/bin/xsubpp + + # This removes ${D} from Config.pm and .packlist + for i in `find ${D} -iname "Config.pm"` `find ${D} -iname ".packlist"`;do + einfo "Removing ${D} from ${i}..." + sed -e "s:${D}::" ${i} > ${i}.new &&\ + mv ${i}.new ${i} || die "Sed failed" + done + + # Note: find out from psm why we would need/want this. + # ( use berkdb && has_version '=sys-libs/db-1*' ) || + # find ${D} -name "*NDBM*" | xargs rm -f + + dodoc Changes* Artistic Copying README Todo* AUTHORS + + if use doc + then + # HTML Documentation + # We expect errors, warnings, and such with the following. + + dodir /usr/share/doc/${PF}/html + ./perl installhtml \ + --podroot='.' \ + --podpath='lib:ext:pod:vms' \ + --recurse \ + --htmldir="${D}/usr/share/doc/${PF}/html" \ + --libpods='perlfunc:perlguts:perlvar:perlrun:perlop' + fi + + # Remove those items we PDPEND on + rm -f ${D}/usr/bin/pod2usage + rm -f ${D}/usr/bin/podchecker + rm -f ${D}/usr/bin/podselect + rm -f ${D}/usr/bin/prove + rm -f ${D}/usr/bin/ptar + rm -f ${D}/usr/bin/ptardiff + rm -f ${D}/usr/bin/config_data + rm -f ${D}/usr/bin/shasum + rm -f ${D}/usr/share/man/man1/pod2usage* + rm -f ${D}/usr/share/man/man1/podchecker* + rm -f ${D}/usr/share/man/man1/podselect* + rm -f ${D}/usr/share/man/man1/prove* + rm -f ${D}/usr/share/man/man1/ptar* + rm -f ${D}/usr/share/man/man1/ptardiff* + rm -f ${D}/usr/share/man/man1/config_data* + rm -f ${D}/usr/share/man/man1/shasum* + if use build ; then + src_remove_extra_files + fi + +} + +src_remove_extra_files() +{ + local prefix="./usr" # ./ is important + local bindir="${prefix}/bin" + local perlroot="${prefix}/$(get_libdir)/perl5" # perl installs per-arch dirs + local prV="${perlroot}/${MY_PV}" + # myarch and mythreading are defined inside src_configure() + local prVA="${prV}/${myarch}${mythreading}" + + # I made this list from the Mandr*, Debian and ex-Connectiva perl-base list + # Then, I added several files to get GNU autotools running + # FIXME: should this be in a separated file to be sourced? + local MINIMAL_PERL_INSTALL=" + ${bindir}/h2ph + ${bindir}/perl + ${bindir}/perl${MY_PV} + ${bindir}/pod2man + ${prV}/attributes.pm + ${prV}/AutoLoader.pm + ${prV}/autouse.pm + ${prV}/base.pm + ${prV}/bigint.pm + ${prV}/bignum.pm + ${prV}/bigrat.pm + ${prV}/blib.pm + ${prV}/bytes_heavy.pl + ${prV}/bytes.pm + ${prV}/Carp/Heavy.pm + ${prV}/Carp.pm + ${prV}/charnames.pm + ${prV}/Class/Struct.pm + ${prV}/constant.pm + ${prV}/diagnostics.pm + ${prV}/DirHandle.pm + ${prV}/Exporter/Heavy.pm + ${prV}/Exporter.pm + ${prV}/ExtUtils/Command.pm + ${prV}/ExtUtils/Constant.pm + ${prV}/ExtUtils/Embed.pm + ${prV}/ExtUtils/Installed.pm + ${prV}/ExtUtils/Install.pm + ${prV}/ExtUtils/Liblist.pm + ${prV}/ExtUtils/MakeMaker.pm + ${prV}/ExtUtils/Manifest.pm + ${prV}/ExtUtils/Mkbootstrap.pm + ${prV}/ExtUtils/Mksymlists.pm + ${prV}/ExtUtils/MM_Any.pm + ${prV}/ExtUtils/MM_MacOS.pm + ${prV}/ExtUtils/MM.pm + ${prV}/ExtUtils/MM_Unix.pm + ${prV}/ExtUtils/MY.pm + ${prV}/ExtUtils/Packlist.pm + ${prV}/ExtUtils/testlib.pm + ${prV}/ExtUtils/Miniperl.pm + ${prV}/ExtUtils/Command/MM.pm + ${prV}/ExtUtils/Constant/Base.pm + ${prV}/ExtUtils/Constant/Utils.pm + ${prV}/ExtUtils/Constant/XS.pm + ${prV}/ExtUtils/Liblist/Kid.pm + ${prV}/ExtUtils/MakeMaker/bytes.pm + ${prV}/ExtUtils/MakeMaker/vmsish.pm + ${prV}/fields.pm + ${prV}/File/Basename.pm + ${prV}/File/Compare.pm + ${prV}/File/Copy.pm + ${prV}/File/Find.pm + ${prV}/FileHandle.pm + ${prV}/File/Path.pm + ${prV}/File/Spec.pm + ${prV}/File/Spec/Unix.pm + ${prV}/File/stat.pm + ${prV}/filetest.pm + ${prVA}/attrs.pm + ${prVA}/auto/attrs + ${prVA}/auto/Cwd/Cwd$(get_libname) + ${prVA}/auto/Data/Dumper/Dumper$(get_libname) + ${prVA}/auto/DynaLoader/dl_findfile.al + ${prVA}/auto/Fcntl/Fcntl$(get_libname) + ${prVA}/auto/File/Glob/Glob$(get_libname) + ${prVA}/auto/IO/IO$(get_libname) + ${prVA}/auto/POSIX/autosplit.ix + ${prVA}/auto/POSIX/fstat.al + ${prVA}/auto/POSIX/load_imports.al + ${prVA}/auto/POSIX/POSIX.bs + ${prVA}/auto/POSIX/POSIX$(get_libname) + ${prVA}/auto/POSIX/assert.al + ${prVA}/auto/POSIX/stat.al + ${prVA}/auto/POSIX/tmpfile.al + ${prVA}/auto/re/re$(get_libname) + ${prVA}/auto/Socket/Socket$(get_libname) + ${prVA}/auto/Storable/autosplit.ix + ${prVA}/auto/Storable/_retrieve.al + ${prVA}/auto/Storable/retrieve.al + ${prVA}/auto/Storable/Storable$(get_libname) + ${prVA}/auto/Storable/_store.al + ${prVA}/auto/Storable/store.al + ${prVA}/B/Deparse.pm + ${prVA}/B.pm + ${prVA}/Config.pm + ${prVA}/Config_heavy.pl + ${prVA}/CORE/libperl$(get_libname) + ${prVA}/Cwd.pm + ${prVA}/Data/Dumper.pm + ${prVA}/DynaLoader.pm + ${prVA}/encoding.pm + ${prVA}/Errno.pm + ${prVA}/Fcntl.pm + ${prVA}/File/Glob.pm + ${prVA}/_h2ph_pre.ph + ${prVA}/IO/File.pm + ${prVA}/IO/Handle.pm + ${prVA}/IO/Pipe.pm + ${prVA}/IO.pm + ${prVA}/IO/Seekable.pm + ${prVA}/IO/Select.pm + ${prVA}/IO/Socket.pm + ${prVA}/lib.pm + ${prVA}/NDBM_File.pm + ${prVA}/ops.pm + ${prVA}/POSIX.pm + ${prVA}/re.pm + ${prVA}/Socket.pm + ${prVA}/Storable.pm + ${prVA}/threads + ${prVA}/threads.pm + ${prVA}/XSLoader.pm + ${prV}/Getopt/Long.pm + ${prV}/Getopt/Std.pm + ${prV}/if.pm + ${prV}/integer.pm + ${prV}/IO/Socket/INET.pm + ${prV}/IO/Socket/UNIX.pm + ${prV}/IPC/Open2.pm + ${prV}/IPC/Open3.pm + ${prV}/less.pm + ${prV}/List/Util.pm + ${prV}/locale.pm + ${prV}/open.pm + ${prV}/overload.pm + ${prV}/Pod/InputObjects.pm + ${prV}/Pod/Man.pm + ${prV}/Pod/ParseLink.pm + ${prV}/Pod/Parser.pm + ${prV}/Pod/Select.pm + ${prV}/Pod/Text.pm + ${prV}/Pod/Usage.pm + ${prV}/PerlIO.pm + ${prV}/Scalar/Util.pm + ${prV}/SelectSaver.pm + ${prV}/sigtrap.pm + ${prV}/sort.pm + ${prV}/stat.pl + ${prV}/strict.pm + ${prV}/subs.pm + ${prV}/Symbol.pm + ${prV}/Text/ParseWords.pm + ${prV}/Text/Tabs.pm + ${prV}/Text/Wrap.pm + ${prV}/Time/Local.pm + ${prV}/unicore/Canonical.pl + ${prV}/unicore/Exact.pl + ${prV}/unicore/lib/gc_sc/Digit.pl + ${prV}/unicore/lib/gc_sc/Word.pl + ${prV}/unicore/PVA.pl + ${prV}/unicore/To/Fold.pl + ${prV}/unicore/To/Lower.pl + ${prV}/unicore/To/Upper.pl + ${prV}/utf8_heavy.pl + ${prV}/utf8.pm + ${prV}/vars.pm + ${prV}/vmsish.pm + ${prV}/warnings + ${prV}/warnings.pm + ${prV}/warnings/register.pm" + + + if use perlsuid ; then + MINIMAL_PERL_INSTALL="${MINIMAL_PERL_INSTALL} + ${bindir}/suidperl + ${bindir}/sperl${MY_PV}" + fi + + pushd ${D} > /dev/null + # Remove cruft + einfo "Removing files that are not in the minimal install" + echo "${MINIMAL_PERL_INSTALL}" + for f in $(find . -type f); do + has ${f} ${MINIMAL_PERL_INSTALL} || rm -f ${f} + done + # Remove empty directories + find . -depth -type d | xargs -r rmdir &> /dev/null + popd > /dev/null +} + +pkg_postinst() { + INC=$(perl -e 'for $line (@INC) { next if $line eq "."; next if $line =~ m/'${MY_PV}'|etc|local|perl$/; print "$line\n" }') + if [[ "${ROOT}" = "/" ]] + then + ebegin "Removing old .ph files" + for DIR in $INC; do + if [[ -d ${ROOT}/$DIR ]]; then + for file in $(find ${ROOT}/$DIR -name "*.ph" -type f); do + rm ${ROOT}/$file + einfo "<< $file" + done + fi + done + # Silently remove the now empty dirs + for DIR in $INC; do + if [[ -d ${ROOT}/$DIR ]]; then + find ${ROOT}/$DIR -depth -type d | xargs -r rmdir &> /dev/null + fi + done + ebegin "Generating ConfigLocal.pm (ignore any error)" + enc2xs -C + ebegin "Converting C header files to the corresponding Perl format" + cd /usr/include; + h2ph * + h2ph -r sys/* arpa/* netinet/* bits/* security/* asm/* gnu/* linux/* gentoo* + cd /usr/include/linux + h2ph * + fi + +# This has been moved into a function because rumor has it that a future release +# of portage will allow us to check what version was just removed - which means +# we will be able to invoke this only as needed :) + # Tried doing this via -z, but $INC is too big... + if [[ "${INC}x" != "x" ]]; then + cleaner_msg + epause 5 + fi +} + +cleaner_msg() { + eerror "You have had multiple versions of perl. It is recommended" + eerror "that you run perl-cleaner now. perl-cleaner will" + eerror "assist with this transition. This script is capable" + eerror "of cleaning out old .ph files, rebuilding modules for " + eerror "your new version of perl, as well as re-emerging" + eerror "applications that compiled against your old libperl$(get_libname)" + eerror + eerror "PLEASE DO NOT INTERRUPT THE RUNNING OF THIS SCRIPT." + eerror "Part of the rebuilding of applications compiled against " + eerror "your old libperl involves temporarily unmerging" + eerror "them - interruptions could leave you with unmerged" + eerror "packages before they can be remerged." + eerror "" + eerror "If you have run perl-cleaner and a package still gives" + eerror "you trouble, and re-emerging it fails to correct" + eerror "the problem, please check http://bugs.gentoo.org/" + eerror "for more information or to report a bug." + eerror "" + eerror "" + +} |