summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Cummings <mcummings@gentoo.org>2007-07-21 23:55:28 +0000
committerMichael Cummings <mcummings@gentoo.org>2007-07-21 23:55:28 +0000
commit60f671bcf7717cbe179b48e2b8901756ab083af7 (patch)
tree757e1430bf90c60cb75aed5b19802167c14e4958 /dev-lang
downloadperl-overlay-60f671bcf7717cbe179b48e2b8901756ab083af7.tar.gz
perl-overlay-60f671bcf7717cbe179b48e2b8901756ab083af7.tar.bz2
perl-overlay-60f671bcf7717cbe179b48e2b8901756ab083af7.zip
Blead perl, stab one (incomplete)
Diffstat (limited to 'dev-lang')
-rw-r--r--dev-lang/perl-blead/Manifest79
-rw-r--r--dev-lang/perl-blead/files/digest-perl-blead-5.9.990
-rw-r--r--dev-lang/perl-blead/files/perl-blead-5.8.7-MakeMaker-RUNPATH.patch21
-rw-r--r--dev-lang/perl-blead/files/perl-blead-5.9.99-CAN-2005-0448-rmtree.patch263
-rw-r--r--dev-lang/perl-blead/files/perl-blead-5.9.99-USE_MM_LD_RUN_PATH.patch111
-rw-r--r--dev-lang/perl-blead/files/perl-blead-5.9.99-asm-page-h-compile-failure.patch12
-rw-r--r--dev-lang/perl-blead/files/perl-blead-5.9.99-cplusplus.patch22
-rw-r--r--dev-lang/perl-blead/files/perl-blead-5.9.99-dragonfly-clean.patch170
-rw-r--r--dev-lang/perl-blead/files/perl-blead-5.9.99-fbsdhints.patch33
-rw-r--r--dev-lang/perl-blead/files/perl-blead-5.9.99-gcc42-command-line.patch11
-rw-r--r--dev-lang/perl-blead/files/perl-blead-5.9.99-lib64.patch96
-rw-r--r--dev-lang/perl-blead/files/perl-blead-5.9.99-links.patch86
-rw-r--r--dev-lang/perl-blead/files/perl-blead-5.9.99-reorder-INC.patch33
-rw-r--r--dev-lang/perl-blead/files/perl-blead-h2ph-ansi-header.patch11
-rw-r--r--dev-lang/perl-blead/files/perl-blead-hppa-pa7200-configure.patch11
-rw-r--r--dev-lang/perl-blead/files/perl-blead-noksh.patch16
-rw-r--r--dev-lang/perl-blead/files/perl-blead-perldoc-emptydirs.patch10
-rw-r--r--dev-lang/perl-blead/files/perl-blead-picdl.patch13
-rw-r--r--dev-lang/perl-blead/files/perl-blead-prelink-lpthread.patch11
-rw-r--r--dev-lang/perl-blead/files/perl-blead-regexp-nossp.patch11
-rw-r--r--dev-lang/perl-blead/perl-blead-5.9.99.ebuild640
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 ""
+
+}