summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'dev-lang/perl/files')
-rw-r--r--dev-lang/perl/files/digest-perl-5.8.2-r41
-rw-r--r--dev-lang/perl/files/digest-perl-5.8.4-r41
-rw-r--r--dev-lang/perl/files/digest-perl-5.8.71
-rw-r--r--dev-lang/perl/files/libperl_rebuilder346
-rw-r--r--dev-lang/perl/files/perl-5.8.4-perldoc-emptydirs.patch10
-rw-r--r--dev-lang/perl/files/perl-5.8.4-picdl.patch13
-rw-r--r--dev-lang/perl/files/perl-5.8.4-prelink-lpthread.patch11
-rw-r--r--dev-lang/perl/files/perl-5.8.4-reorder-INC.patch85
-rw-r--r--dev-lang/perl/files/perl-5.8.5-noksh.patch16
-rw-r--r--dev-lang/perl/files/perl-5.8.5-nonblock.patch11
-rw-r--r--dev-lang/perl/files/perl-5.8.5-perldoc-emptydirs.patch10
-rw-r--r--dev-lang/perl/files/perl-5.8.5-picdl.patch13
-rw-r--r--dev-lang/perl/files/perl-5.8.5-prelink-lpthread.patch11
-rw-r--r--dev-lang/perl/files/perl-5.8.5-reorder-INC.patch85
-rw-r--r--dev-lang/perl/files/perl-5.8.6-noksh.patch16
-rw-r--r--dev-lang/perl/files/perl-5.8.6-perldoc-emptydirs.patch10
-rw-r--r--dev-lang/perl/files/perl-5.8.6-picdl.patch13
-rw-r--r--dev-lang/perl/files/perl-5.8.6-prelink-lpthread.patch11
-rw-r--r--dev-lang/perl/files/perl-5.8.6-reorder-INC.patch85
-rw-r--r--dev-lang/perl/files/perl-5.8.7-CAN-2005-0448-rmtree.patch263
-rw-r--r--dev-lang/perl/files/perl-5.8.7-tempfiles.patch33
-rw-r--r--dev-lang/perl/files/perl-h2ph-ansi-header.patch (renamed from dev-lang/perl/files/perl-5.8.0-RC2-special-h2ph-not-failing-on-machine_ansi_header.patch)0
-rw-r--r--dev-lang/perl/files/perl-noksh.patch (renamed from dev-lang/perl/files/perl-5.8.4-noksh.patch)0
-rw-r--r--dev-lang/perl/files/perl-nonblock.patch (renamed from dev-lang/perl/files/perl-5.8.4-nonblock.patch)0
-rw-r--r--dev-lang/perl/files/perl-perldoc-emptydirs.patch (renamed from dev-lang/perl/files/perl-5.8.2-perldoc-emptydirs.patch)0
-rw-r--r--dev-lang/perl/files/perl-picdl.patch (renamed from dev-lang/perl/files/perl-5.8.2-picdl.patch)0
-rw-r--r--dev-lang/perl/files/perl-prelink-lpthread.patch (renamed from dev-lang/perl/files/perl-5.8.2-prelink-lpthread.patch)0
-rw-r--r--dev-lang/perl/files/perl-reorder-INC.patch (renamed from dev-lang/perl/files/perl-5.8.2-reorder-INC.patch)0
-rw-r--r--dev-lang/perl/files/perl-tempfiles.patch60
-rw-r--r--dev-lang/perl/files/perl-uclibc.patch (renamed from dev-lang/perl/files/perl-5.8.2-uclibc.patch)0
-rw-r--r--dev-lang/perl/files/stat.t289
31 files changed, 357 insertions, 1037 deletions
diff --git a/dev-lang/perl/files/digest-perl-5.8.2-r4 b/dev-lang/perl/files/digest-perl-5.8.2-r4
deleted file mode 100644
index 03c9dcc55731..000000000000
--- a/dev-lang/perl/files/digest-perl-5.8.2-r4
+++ /dev/null
@@ -1 +0,0 @@
-MD5 fa356b74f99166b63a68a322c3c68f91 perl-5.8.2.tar.gz 11896287
diff --git a/dev-lang/perl/files/digest-perl-5.8.4-r4 b/dev-lang/perl/files/digest-perl-5.8.4-r4
deleted file mode 100644
index a13f719f8c75..000000000000
--- a/dev-lang/perl/files/digest-perl-5.8.4-r4
+++ /dev/null
@@ -1 +0,0 @@
-MD5 912050a9cb6b0f415b76ba56052fb4cf perl-5.8.4.tar.gz 12094233
diff --git a/dev-lang/perl/files/digest-perl-5.8.7 b/dev-lang/perl/files/digest-perl-5.8.7
new file mode 100644
index 000000000000..7407844a5a36
--- /dev/null
+++ b/dev-lang/perl/files/digest-perl-5.8.7
@@ -0,0 +1 @@
+MD5 9a175d6ccbb5d9b41ffac5073ff9cc3c perl-5.8.7.tar.bz2 9839086
diff --git a/dev-lang/perl/files/libperl_rebuilder b/dev-lang/perl/files/libperl_rebuilder
deleted file mode 100644
index 126e88c5e74d..000000000000
--- a/dev-lang/perl/files/libperl_rebuilder
+++ /dev/null
@@ -1,346 +0,0 @@
-#!/bin/bash
-
-echo "libperl_rebuilder has been replaced by perl-cleaner"
-echo "Please use it instead - its a lot more sane in its"
-echo "approach to your box."
-echo ""
-echo "libperl_rebuilder will start up in ten seconds."
-echo "Press CTL-C to exit and use the much improved"
-echo "perl-cleaner..."
-
-sleep 11
-
-LOG=/tmp/perl-update.log
-
-echo "The script will attempt to re-emerge your perl modules, any packages"
-echo "that compiled against libperl.so previously, as well as any packages"
-echo "that placed files in /usr/lib/perl*. A log of its attempts, work, and"
-echo "even failures is kept in ${LOG} - please refer to this"
-echo "log should you experience any difficulties."
-
-
-echo "--------------------------------------------------------------" >> $LOG
-echo "--------------------------------------------------------------" >> $LOG
-echo "--------------------------------------------------------------" >> $LOG
-
-
-echo 'Finding what perl modules you have installed...'
-echo 'Finding what perl modules you have installed...' >> $LOG
-
-
-cd /var/db/pkg/dev-perl
-PRE_MODULE_LIST=`
- for i in $(ls -1| sort | uniq)
- do
- echo "dev-perl/${i}"
- done | sed 's/-[0-9].*//g' | sort -u `
-
-
-
-echo "Preliminary Module List: $PRE_MODULE_LIST"
-echo "Preliminary Module List: $PRE_MODULE_LIST" >> $LOG
-
-#First, we clean up the perl module list - this is to avoid ambiguities later
-echo "Cleaning Module List..."
-echo "Cleaning Module List..." >> $LOG
-
-
-for MODULE in $PRE_MODULE_LIST;
-do
- env-update
- echo "Cleaning $MODULE"
- echo "Cleaning $MODULE" >> $LOG
- emerge -cp ${MODULE} 2>&1 | tee -a $LOG
- emerge -c ${MODULE}
-done
-
-echo 'Rechecking what perl modules you have installed...'
-echo 'Rechecking what perl modules you have installed...' >> $LOG
-
-
-SECOND_MODULE_LIST=`
- for i in $(ls -1| sort -u)
- do
- echo "dev-perl/${i}"
- done | sed 's/-[0-9].*//g' | sort -u`
-
-
-
-x=0
-while [ $x -lt 3 ] ; do
-let "x++"
-for MODULE in $SECOND_MODULE_LIST;
- do
- env-update
- echo "Rebuilding: $MODULE, pass ${x}"
- echo "Rebuilding: $MODULE, pass ${x}" >> $LOG
- if ! emerge "$MODULE"; then
- echo "emerge $MODULE FAILED while in rebuild, pass ${x}."
- echo "emerge $MODULE FAILED while in rebuild, pass ${x}." >> $LOG
-
- else
- echo "Done with $MODULE, pass ${x}"
- echo "Done with $MODULE, pass ${x}" >> $LOG
-
-
- fi
- done
-
-done
-
-echo 'Preliminary Module Rebuild Complete. Now for rebuilding the rest...'
-echo 'Preliminary Module Rebuild Complete. Now for rebuilding the rest...' >> $LOG
-
-#This time around, we want the explicit package name, since in the group remerge, we use
-# a --oneshot =package syntax
-MODULE_LIST=`
- for i in $(ls -1| sort -u)
- do
- echo "dev-perl/${i}"
- done | sort -u`
-
-
-echo 'Finding broken packages...'
-echo 'Finding broken packages...' >> $LOG
-unset USE
-REBUILD_FAKED=""
-
-env-update
-
-# Note: `` == $()
-# REBUILD EXACTLY AS ON DISK. emerge =cat/package-version-rev
-LDD_LIST=`
-for i in $(find $(egrep -v ^# /etc/ld.so.conf) -type f -name '*.so*') \
- $(find $(echo $PATH | sed 's/:/ /g') -type f -perm +0111);
-do
- ldd ${i} 2>&1 | grep "libperl" - >/dev/null && qpkg -f -nc -v $i;
-done | sort -u`
-ORIGINAL_LIST="$LDD_LIST"
-
-if [ ! -z "$LDD_LIST" ]; then
- REBUILD_PRELIST=`
- echo $LDD_LIST | sed 's:\([^ ]\+\):=\1:g' | xargs emerge -p |
- grep ebuild | sed 's:.*\] \([^ ]*\) .*:\1:'`
-fi
-
-# The following is to grab any packages that have placed files in
-# /usr/lib/perl* - this may include packages that are not explicityly
-# perl modules in dev-perl, or that did not compile against our old
-# libperl - this is a sanity check among other things
-
-cd /var/db/pkg
-LIBS_LIST=`grep -ls "usr\/lib\/perl" */*/CONTENTS | sed 's|/CONTENTS||g' | grep -v "dev-lang/perl" | grep -v "dev-perl"`
-
-REBUILD_LIST=`echo ${LIBS_LIST} ${REBUILD_PRELIST} | sort -u`
-
-if echo $REBUILD_LIST | egrep -q "no.*ebuilds to satisfy"; then
- echo "Packages are installed that no longer exist in Gentoo."
- echo "Determine what you need to do to fix this and try again."
- echo "The package may have been moved to a different category."
- echo
- echo "Easiest course of action: unmerge these by explicit versions"
- echo "and re-emerge them if they still exist."
- echo 'emerge -C \=package-version'
- echo "Notice: $REBUILD_LIST"
- exit 1
-fi
-
-if echo $REBUILD_LIST | grep -q "have been masked"; then
- echo "Masked packages are installed and need to be rebuilt..."
- echo "Either unmask them, or emerge -C them all."
- echo
- echo "Easiest course of action: unmerge these by explicit versions"
- echo 'emerge -C \=package-version'
- echo "Notice: $REBUILD_LIST"
- exit 1
-fi
-
-echo "Preliminary List: $REBUILD_LIST"
-echo "Preliminary List: $REBUILD_LIST" >> $LOG
-
-sleep 10s
-
-if ! emerge -p $(echo "$REBUILD_LIST" | sed 's:\([^ ]\+\):=\1:g') &>/dev/null; #'
-then
- # System isn't up to date, or nothing here to do...
- if [ ! -z "$LDD_LIST" ]; then
- REBUILD_LIST=`
- echo $LDD_LIST | sed 's:\([^ ]\+\):>=\1:g' | xargs emerge -p |
- grep ebuild | sed 's:.*\] \([^ ]\+\) .*:\1:'`
- fi
-fi
-
-
-
-
-echo -e "Rebuild list:\n$REBUILD_LIST"
-echo -e "Rebuild list:\n$REBUILD_LIST" >> $LOG
-
-sleep 20s
-
-if echo $REBUILD_LIST | egrep -q "no.*ebuilds to satisfy"; then
- echo "Packages are installed that no longer exist in Gentoo."
- echo "Determine what you need to do to fix this and try again."
- echo "The package may have been moved to a different category."
- echo
- echo "Easiest course of action: unmerge these by explicit versions"
- echo "and re-emerge them if they still exist."
- echo 'emerge -C \=package-version'
- echo "Notice: $REBUILD_LIST"
- exit 1
-fi
-
-if echo $REBUILD_LIST | grep -q "have been masked"; then
- echo "Masked packages are installed and need to be rebuilt..."
- echo "Either unmask them, or emerge -C them all."
- echo
- echo "Easiest course of action: check your ACCEPT_KEYWORDS in make.conf"
- echo 'emerge -C \=package-version'
- echo "Notice: $REBUILD_LIST"
- exit 1
-fi
-
-# I'm commenting out the next block. I don't think that this is necessary for the
-# perl upgrade the same way it was for the gcc upgrade - MPC
-#echo "Backing up the world file."
-#cp /var/cache/edb/world /var/cache/edb/world.update_system_backup
-#
-#
-#echo "Unmerging broken packages..."
-#emerge -Cp $ORIGINAL_LIST | tee -a $LOG
-#if ! emerge -C $ORIGINAL_LIST; then
-# echo
-# echo "There was a problem unmerging the broken packages."
-# echo "Please pass on your log file to a Gentoo Dev via bugzilla."
-# echo "Log file: $LOG"
-# echo
-# exit 1
-#fi
-#
-#env-update
-#
-#echo "Restoring world file..."
-#mv /var/cache/edb/world.update_system_backup /var/cache/edb/world
-
-REBUILD_LIST=`
- echo $LDD_LIST | sed 's:\([^ ]\+\):\\>\\=\1:g' | xargs emerge -np $(cat /var/cache/edb/world) |
- grep ebuild | sed 's:.*\] \([^ ]\+\) .*:\1:'`
-
-if echo $REBUILD_LIST | egrep -q "no.*ebuilds to satisfy"; then
- echo "Packages are installed that no longer exist in Gentoo."
- echo "Determine what you need to do to fix this and try again."
- echo "The package may have been moved to a different category."
- echo
- echo "Easiest course of action: unmerge these by explicit versions"
- echo "and re-emerge them if they still exist."
- echo 'emerge -C \=package-version'
- echo "Notice: $REBUILD_LIST"
- exit 1
-fi
-
-if echo $REBUILD_LIST | grep -q "have been masked"; then
- echo "Masked packages are installed and need to be rebuilt..."
- echo "Either unmask them, or emerge -C them all."
- echo
- echo "Easiest course of action: check your ACCEPT_KEYWORDS in make.conf"
- echo 'emerge -C \=package-version'
- echo "Notice: $REBUILD_LIST"
- exit 1
-fi
-
-#Join the perl module list and the binary list, sorting out dups
-FULL_LIST=`echo ${REBUILD_LIST} ${MODULE_LIST} | sort -u`
-
-echo -e "Complete rebuild list:\n$FULL_LIST"
-echo -e "Complete rebuild list:\n$FULL_LIST" >> $LOG
-
-
-CLEAN_FAILED=""
-MERGE_FAILED=""
-MERGE_DONE=""
-
-for PACKAGE in $FULL_LIST;
-do
- env-update
- echo "Rebuilding: $PACKAGE"
- echo "Rebuilding: $PACKAGE" >> $LOG
- if ! emerge --oneshot "=$PACKAGE"; then
- echo "emerge $PACKAGE FAILED while in rebuild."
- echo "emerge $PACKAGE FAILED while in rebuild." >> $LOG
- MERGE_FAILED="$MERGE_FAILED \n$PACKAGE"
- else
- echo "Cleaning after $PACKAGE"
- echo "Cleaning after $PACKAGE" >> $LOG
- emerge -cp 2>&1 | tee -a $LOG
- if ! emerge -c; then
- echo "FAILED cleaning after $PACKAGE while in rebuild"
- echo "FAILED cleaning after $PACKAGE while in rebuild" >> $LOG
- CLEAN_FAILED="$CLEAN_FAILED \n$PACKAGE"
- else
- echo "Done with $PACKAGE"
- echo "Done with $PACKAGE" >> $LOG
- MERGE_DONE="$MERGE_DONE \n$PACKAGE"
- fi
- fi
-done
-
-# One last pass of the modules - this is to catch those modules that dep'd a binary from above
-
-for MODULE in $MODULE_LIST;
- do
- env-update
- echo "Rebuilding: $MODULE"
- echo "Rebuilding: $MODULE" >> $LOG
- if ! emerge --oneshot "=$MODULE"; then
- echo "emerge $MODULE FAILED while in final rebuild."
- echo "emerge $MODULE FAILED while in final rebuild." >> $LOG
-
- else
- echo "Done with $MODULE"
- echo "Done with $MODULE" >> $LOG
-
-
- fi
- done
-
-
-
-
-echo
-echo "Ok... We're done (really)..."
-echo -e "The following packages merged successfully:$MERGE_DONE"
-echo -e "The following packages merged successfully:$MERGE_DONE" >> $LOG
-echo "-------------------------------------------"
-echo
-
-if [ ! -z "$MERGE_FAILED" ]; then
- echo -e "Merging failed on the following packages: $MERGE_FAILED"
- echo -e "Merging failed on the following packages: $MERGE_FAILED" >> $LOG
- echo "-----------------------------------------"
-else
- echo "All packages merged successfully."
- echo "All packages merged successfully." >> $LOG
-fi
-
-if [ ! -z "$CLEAN_FAILED" ]; then
- echo -e "Weird: the following packages failed to clean:$CLEAN_FAILED"
- echo -e "Weird: the following packages failed to clean:$CLEAN_FAILED" >> $LOG
- echo "----------------------------------------------------------"
-else
- echo "All packages cleaned successfully."
- echo "All packages cleaned successfully." >> $LOG
-fi
-
-if [ -z "$MERGE_FAILED" ] && [ -z "$CLEAN_FAILED" ]; then
- echo -e "\n\nEverything Completed Successfully."
- echo -e "Have a nice day and thank you for flying with Gentoo."
- echo -e "\n\nEverything Completed Successfully." >> $LOG
- echo -e "Have a nice day and thank you for flying with Gentoo. :)" >> $LOG
-else
- echo -e "\n\nThere were some issues... Check the log for details. :("
- echo "Some or all of the failed packages may have been cause by a"
- echo "dependancy failing earlier. Don't assume EVERYTHING is broken."
- echo "Start with the first one to fail."
- echo "Log is: $LOG"
-fi
-
diff --git a/dev-lang/perl/files/perl-5.8.4-perldoc-emptydirs.patch b/dev-lang/perl/files/perl-5.8.4-perldoc-emptydirs.patch
deleted file mode 100644
index 650248c509e8..000000000000
--- a/dev-lang/perl/files/perl-5.8.4-perldoc-emptydirs.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- 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/files/perl-5.8.4-picdl.patch b/dev-lang/perl/files/perl-5.8.4-picdl.patch
deleted file mode 100644
index f69a6800cf48..000000000000
--- a/dev-lang/perl/files/perl-5.8.4-picdl.patch
+++ /dev/null
@@ -1,13 +0,0 @@
---- 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/files/perl-5.8.4-prelink-lpthread.patch b/dev-lang/perl/files/perl-5.8.4-prelink-lpthread.patch
deleted file mode 100644
index d38497e0aebe..000000000000
--- a/dev-lang/perl/files/perl-5.8.4-prelink-lpthread.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- 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/files/perl-5.8.4-reorder-INC.patch b/dev-lang/perl/files/perl-5.8.4-reorder-INC.patch
deleted file mode 100644
index c934b4135a13..000000000000
--- a/dev-lang/perl/files/perl-5.8.4-reorder-INC.patch
+++ /dev/null
@@ -1,85 +0,0 @@
---- perl.c.orig 2003-07-10 22:09:00.000000000 -0700
-+++ perl.c 2003-07-10 22:30:21.000000000 -0700
-@@ -3932,9 +3932,9 @@
- incpush(APPLLIB_EXP, TRUE, TRUE, TRUE);
- #endif
-
--#ifdef ARCHLIB_EXP
-- incpush(ARCHLIB_EXP, FALSE, FALSE, TRUE);
--#endif
-+ /* for configuration where /usr is mounted ro (CPAN::Config, Net::Config) */
-+ incpush("/etc/perl", FALSE, FALSE, TRUE);
-+
- #ifdef MACOS_TRADITIONAL
- {
- Stat_t tmpstatbuf;
-@@ -3961,8 +3961,6 @@
- #endif
- #if defined(WIN32)
- incpush(PRIVLIB_EXP, TRUE, FALSE, TRUE);
--#else
-- incpush(PRIVLIB_EXP, FALSE, FALSE, TRUE);
- #endif
-
- #ifdef SITEARCH_EXP
-@@ -4006,6 +4004,60 @@
- incpush(PERL_VENDORLIB_STEM, FALSE, TRUE, TRUE);
- #endif
-
-+ incpush(ARCHLIB_EXP, FALSE, FALSE, TRUE);
-+ incpush(PRIVLIB_EXP, FALSE, FALSE, TRUE);
-+
-+ /* Non-versioned site directory for local modules and for
-+ compatability with the previous packages' site dirs */
-+
-+ incpush("/usr/local/lib/site_perl", TRUE, FALSE, TRUE);
-+
-+#ifdef PERL_INC_VERSION_LIST
-+{
-+ struct stat s;
-+
-+ /* add small buffer in case old versions are longer than the current version */
-+ char sitearch[sizeof(SITEARCH_EXP)+16] = SITEARCH_EXP;
-+ char sitelib[sizeof(SITELIB_EXP)+16] = SITELIB_EXP;
-+ char const *vers[] = { PERL_INC_VERSION_LIST };
-+ char const **p;
-+
-+ char *arch_vers = strrchr(sitearch, '/');
-+ char *lib_vers = strrchr(sitelib, '/');
-+
-+ if (arch_vers && isdigit(*++arch_vers))
-+ *arch_vers = 0;
-+ else
-+ arch_vers = 0;
-+
-+ if (lib_vers && isdigit(*++lib_vers))
-+ *lib_vers = 0;
-+ else
-+ lib_vers = 0;
-+
-+ /* there is some duplication here as incpush does something similar
-+ internally, but required as sitearch is not a subdirectory of
-+ sitelib */
-+
-+ for (p = vers; *p; p++)
-+ {
-+ if (arch_vers)
-+ {
-+ strcpy(arch_vers, *p);
-+ if (PerlLIO_stat(sitearch, &s) >= 0 && S_ISDIR(s.st_mode))
-+ incpush(sitearch, FALSE, FALSE, TRUE);
-+ }
-+
-+ if (lib_vers)
-+ {
-+ strcpy(lib_vers, *p);
-+ if (PerlLIO_stat(sitelib, &s) >= 0 && S_ISDIR(s.st_mode))
-+ incpush(sitelib, FALSE, FALSE, TRUE);
-+ }
-+ }
-+}
-+#endif
-+
- #ifdef PERL_OTHERLIBDIRS
- incpush(PERL_OTHERLIBDIRS, TRUE, TRUE, TRUE);
- #endif
diff --git a/dev-lang/perl/files/perl-5.8.5-noksh.patch b/dev-lang/perl/files/perl-5.8.5-noksh.patch
deleted file mode 100644
index 4c33b3e71b33..000000000000
--- a/dev-lang/perl/files/perl-5.8.5-noksh.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-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/files/perl-5.8.5-nonblock.patch b/dev-lang/perl/files/perl-5.8.5-nonblock.patch
deleted file mode 100644
index 65c0acae6e62..000000000000
--- a/dev-lang/perl/files/perl-5.8.5-nonblock.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- ext/IO/IO.xs.orig 2004-08-02 21:26:35.486883359 -0700
-+++ ext/IO/IO.xs 2004-08-02 21:26:58.285155590 -0700
-@@ -75,7 +75,7 @@
- int mode = RETVAL;
- #ifdef O_NONBLOCK
- /* POSIX style */
--#if defined(O_NDELAY) && O_NDELAY != O_NONBLOCK
-+#if defined(O_NDELAY) && O_NDELAY != O_NONBLOCK && !defined(__linux__)
- /* Ooops has O_NDELAY too - make sure we don't
- * get SysV behaviour by mistake. */
-
diff --git a/dev-lang/perl/files/perl-5.8.5-perldoc-emptydirs.patch b/dev-lang/perl/files/perl-5.8.5-perldoc-emptydirs.patch
deleted file mode 100644
index 650248c509e8..000000000000
--- a/dev-lang/perl/files/perl-5.8.5-perldoc-emptydirs.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- 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/files/perl-5.8.5-picdl.patch b/dev-lang/perl/files/perl-5.8.5-picdl.patch
deleted file mode 100644
index f69a6800cf48..000000000000
--- a/dev-lang/perl/files/perl-5.8.5-picdl.patch
+++ /dev/null
@@ -1,13 +0,0 @@
---- 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/files/perl-5.8.5-prelink-lpthread.patch b/dev-lang/perl/files/perl-5.8.5-prelink-lpthread.patch
deleted file mode 100644
index d38497e0aebe..000000000000
--- a/dev-lang/perl/files/perl-5.8.5-prelink-lpthread.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- 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/files/perl-5.8.5-reorder-INC.patch b/dev-lang/perl/files/perl-5.8.5-reorder-INC.patch
deleted file mode 100644
index c934b4135a13..000000000000
--- a/dev-lang/perl/files/perl-5.8.5-reorder-INC.patch
+++ /dev/null
@@ -1,85 +0,0 @@
---- perl.c.orig 2003-07-10 22:09:00.000000000 -0700
-+++ perl.c 2003-07-10 22:30:21.000000000 -0700
-@@ -3932,9 +3932,9 @@
- incpush(APPLLIB_EXP, TRUE, TRUE, TRUE);
- #endif
-
--#ifdef ARCHLIB_EXP
-- incpush(ARCHLIB_EXP, FALSE, FALSE, TRUE);
--#endif
-+ /* for configuration where /usr is mounted ro (CPAN::Config, Net::Config) */
-+ incpush("/etc/perl", FALSE, FALSE, TRUE);
-+
- #ifdef MACOS_TRADITIONAL
- {
- Stat_t tmpstatbuf;
-@@ -3961,8 +3961,6 @@
- #endif
- #if defined(WIN32)
- incpush(PRIVLIB_EXP, TRUE, FALSE, TRUE);
--#else
-- incpush(PRIVLIB_EXP, FALSE, FALSE, TRUE);
- #endif
-
- #ifdef SITEARCH_EXP
-@@ -4006,6 +4004,60 @@
- incpush(PERL_VENDORLIB_STEM, FALSE, TRUE, TRUE);
- #endif
-
-+ incpush(ARCHLIB_EXP, FALSE, FALSE, TRUE);
-+ incpush(PRIVLIB_EXP, FALSE, FALSE, TRUE);
-+
-+ /* Non-versioned site directory for local modules and for
-+ compatability with the previous packages' site dirs */
-+
-+ incpush("/usr/local/lib/site_perl", TRUE, FALSE, TRUE);
-+
-+#ifdef PERL_INC_VERSION_LIST
-+{
-+ struct stat s;
-+
-+ /* add small buffer in case old versions are longer than the current version */
-+ char sitearch[sizeof(SITEARCH_EXP)+16] = SITEARCH_EXP;
-+ char sitelib[sizeof(SITELIB_EXP)+16] = SITELIB_EXP;
-+ char const *vers[] = { PERL_INC_VERSION_LIST };
-+ char const **p;
-+
-+ char *arch_vers = strrchr(sitearch, '/');
-+ char *lib_vers = strrchr(sitelib, '/');
-+
-+ if (arch_vers && isdigit(*++arch_vers))
-+ *arch_vers = 0;
-+ else
-+ arch_vers = 0;
-+
-+ if (lib_vers && isdigit(*++lib_vers))
-+ *lib_vers = 0;
-+ else
-+ lib_vers = 0;
-+
-+ /* there is some duplication here as incpush does something similar
-+ internally, but required as sitearch is not a subdirectory of
-+ sitelib */
-+
-+ for (p = vers; *p; p++)
-+ {
-+ if (arch_vers)
-+ {
-+ strcpy(arch_vers, *p);
-+ if (PerlLIO_stat(sitearch, &s) >= 0 && S_ISDIR(s.st_mode))
-+ incpush(sitearch, FALSE, FALSE, TRUE);
-+ }
-+
-+ if (lib_vers)
-+ {
-+ strcpy(lib_vers, *p);
-+ if (PerlLIO_stat(sitelib, &s) >= 0 && S_ISDIR(s.st_mode))
-+ incpush(sitelib, FALSE, FALSE, TRUE);
-+ }
-+ }
-+}
-+#endif
-+
- #ifdef PERL_OTHERLIBDIRS
- incpush(PERL_OTHERLIBDIRS, TRUE, TRUE, TRUE);
- #endif
diff --git a/dev-lang/perl/files/perl-5.8.6-noksh.patch b/dev-lang/perl/files/perl-5.8.6-noksh.patch
deleted file mode 100644
index 4c33b3e71b33..000000000000
--- a/dev-lang/perl/files/perl-5.8.6-noksh.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-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/files/perl-5.8.6-perldoc-emptydirs.patch b/dev-lang/perl/files/perl-5.8.6-perldoc-emptydirs.patch
deleted file mode 100644
index 650248c509e8..000000000000
--- a/dev-lang/perl/files/perl-5.8.6-perldoc-emptydirs.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- 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/files/perl-5.8.6-picdl.patch b/dev-lang/perl/files/perl-5.8.6-picdl.patch
deleted file mode 100644
index f69a6800cf48..000000000000
--- a/dev-lang/perl/files/perl-5.8.6-picdl.patch
+++ /dev/null
@@ -1,13 +0,0 @@
---- 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/files/perl-5.8.6-prelink-lpthread.patch b/dev-lang/perl/files/perl-5.8.6-prelink-lpthread.patch
deleted file mode 100644
index d38497e0aebe..000000000000
--- a/dev-lang/perl/files/perl-5.8.6-prelink-lpthread.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- 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/files/perl-5.8.6-reorder-INC.patch b/dev-lang/perl/files/perl-5.8.6-reorder-INC.patch
deleted file mode 100644
index c934b4135a13..000000000000
--- a/dev-lang/perl/files/perl-5.8.6-reorder-INC.patch
+++ /dev/null
@@ -1,85 +0,0 @@
---- perl.c.orig 2003-07-10 22:09:00.000000000 -0700
-+++ perl.c 2003-07-10 22:30:21.000000000 -0700
-@@ -3932,9 +3932,9 @@
- incpush(APPLLIB_EXP, TRUE, TRUE, TRUE);
- #endif
-
--#ifdef ARCHLIB_EXP
-- incpush(ARCHLIB_EXP, FALSE, FALSE, TRUE);
--#endif
-+ /* for configuration where /usr is mounted ro (CPAN::Config, Net::Config) */
-+ incpush("/etc/perl", FALSE, FALSE, TRUE);
-+
- #ifdef MACOS_TRADITIONAL
- {
- Stat_t tmpstatbuf;
-@@ -3961,8 +3961,6 @@
- #endif
- #if defined(WIN32)
- incpush(PRIVLIB_EXP, TRUE, FALSE, TRUE);
--#else
-- incpush(PRIVLIB_EXP, FALSE, FALSE, TRUE);
- #endif
-
- #ifdef SITEARCH_EXP
-@@ -4006,6 +4004,60 @@
- incpush(PERL_VENDORLIB_STEM, FALSE, TRUE, TRUE);
- #endif
-
-+ incpush(ARCHLIB_EXP, FALSE, FALSE, TRUE);
-+ incpush(PRIVLIB_EXP, FALSE, FALSE, TRUE);
-+
-+ /* Non-versioned site directory for local modules and for
-+ compatability with the previous packages' site dirs */
-+
-+ incpush("/usr/local/lib/site_perl", TRUE, FALSE, TRUE);
-+
-+#ifdef PERL_INC_VERSION_LIST
-+{
-+ struct stat s;
-+
-+ /* add small buffer in case old versions are longer than the current version */
-+ char sitearch[sizeof(SITEARCH_EXP)+16] = SITEARCH_EXP;
-+ char sitelib[sizeof(SITELIB_EXP)+16] = SITELIB_EXP;
-+ char const *vers[] = { PERL_INC_VERSION_LIST };
-+ char const **p;
-+
-+ char *arch_vers = strrchr(sitearch, '/');
-+ char *lib_vers = strrchr(sitelib, '/');
-+
-+ if (arch_vers && isdigit(*++arch_vers))
-+ *arch_vers = 0;
-+ else
-+ arch_vers = 0;
-+
-+ if (lib_vers && isdigit(*++lib_vers))
-+ *lib_vers = 0;
-+ else
-+ lib_vers = 0;
-+
-+ /* there is some duplication here as incpush does something similar
-+ internally, but required as sitearch is not a subdirectory of
-+ sitelib */
-+
-+ for (p = vers; *p; p++)
-+ {
-+ if (arch_vers)
-+ {
-+ strcpy(arch_vers, *p);
-+ if (PerlLIO_stat(sitearch, &s) >= 0 && S_ISDIR(s.st_mode))
-+ incpush(sitearch, FALSE, FALSE, TRUE);
-+ }
-+
-+ if (lib_vers)
-+ {
-+ strcpy(lib_vers, *p);
-+ if (PerlLIO_stat(sitelib, &s) >= 0 && S_ISDIR(s.st_mode))
-+ incpush(sitelib, FALSE, FALSE, TRUE);
-+ }
-+ }
-+}
-+#endif
-+
- #ifdef PERL_OTHERLIBDIRS
- incpush(PERL_OTHERLIBDIRS, TRUE, TRUE, TRUE);
- #endif
diff --git a/dev-lang/perl/files/perl-5.8.7-CAN-2005-0448-rmtree.patch b/dev-lang/perl/files/perl-5.8.7-CAN-2005-0448-rmtree.patch
new file mode 100644
index 000000000000..0bee3e107ebf
--- /dev/null
+++ b/dev-lang/perl/files/perl-5.8.7-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/files/perl-5.8.7-tempfiles.patch b/dev-lang/perl/files/perl-5.8.7-tempfiles.patch
new file mode 100644
index 000000000000..8d8e306a72b3
--- /dev/null
+++ b/dev-lang/perl/files/perl-5.8.7-tempfiles.patch
@@ -0,0 +1,33 @@
+--- lib/ExtUtils/instmodsh.old 2005-06-28 16:57:43.000000000 -0400
++++ lib/ExtUtils/instmodsh 2005-06-28 16:59:28.000000000 -0400
+@@ -2,6 +2,7 @@
+
+ use strict;
+ use IO::File;
++use File::Temp;
+ use ExtUtils::Packlist;
+ use ExtUtils::Installed;
+
+@@ -58,16 +59,12 @@ while (1)
+ $reply =~ /^t\s*/ and do
+ {
+ my $file = (split(' ', $reply))[1];
+- my $tmp = "/tmp/inst.$$";
+- if (my $fh = IO::File->new($tmp, "w"))
+- {
+- $fh->print(join("\n", $Inst->files($module)));
+- $fh->close();
+- system("tar cvf $file -I $tmp");
+- unlink($tmp);
+- last CASE;
+- }
+- else { print("Can't open $file: $!\n"); }
++ my ($fh, $tmp) = File::Temp::tempfile(UNLINK => 1);
++ $fh->print(join("\n", $Inst->files($module)));
++ $fh->close();
++ # This used to use -I which is wrong for GNU tar.
++ system("tar cvf $file -T $tmp");
++ unlink($tmp);
+ last CASE;
+ };
+ $reply eq 'v' and do
diff --git a/dev-lang/perl/files/perl-5.8.0-RC2-special-h2ph-not-failing-on-machine_ansi_header.patch b/dev-lang/perl/files/perl-h2ph-ansi-header.patch
index c7f0d7246f03..c7f0d7246f03 100644
--- a/dev-lang/perl/files/perl-5.8.0-RC2-special-h2ph-not-failing-on-machine_ansi_header.patch
+++ b/dev-lang/perl/files/perl-h2ph-ansi-header.patch
diff --git a/dev-lang/perl/files/perl-5.8.4-noksh.patch b/dev-lang/perl/files/perl-noksh.patch
index 4c33b3e71b33..4c33b3e71b33 100644
--- a/dev-lang/perl/files/perl-5.8.4-noksh.patch
+++ b/dev-lang/perl/files/perl-noksh.patch
diff --git a/dev-lang/perl/files/perl-5.8.4-nonblock.patch b/dev-lang/perl/files/perl-nonblock.patch
index 65c0acae6e62..65c0acae6e62 100644
--- a/dev-lang/perl/files/perl-5.8.4-nonblock.patch
+++ b/dev-lang/perl/files/perl-nonblock.patch
diff --git a/dev-lang/perl/files/perl-5.8.2-perldoc-emptydirs.patch b/dev-lang/perl/files/perl-perldoc-emptydirs.patch
index 650248c509e8..650248c509e8 100644
--- a/dev-lang/perl/files/perl-5.8.2-perldoc-emptydirs.patch
+++ b/dev-lang/perl/files/perl-perldoc-emptydirs.patch
diff --git a/dev-lang/perl/files/perl-5.8.2-picdl.patch b/dev-lang/perl/files/perl-picdl.patch
index f69a6800cf48..f69a6800cf48 100644
--- a/dev-lang/perl/files/perl-5.8.2-picdl.patch
+++ b/dev-lang/perl/files/perl-picdl.patch
diff --git a/dev-lang/perl/files/perl-5.8.2-prelink-lpthread.patch b/dev-lang/perl/files/perl-prelink-lpthread.patch
index d38497e0aebe..d38497e0aebe 100644
--- a/dev-lang/perl/files/perl-5.8.2-prelink-lpthread.patch
+++ b/dev-lang/perl/files/perl-prelink-lpthread.patch
diff --git a/dev-lang/perl/files/perl-5.8.2-reorder-INC.patch b/dev-lang/perl/files/perl-reorder-INC.patch
index c934b4135a13..c934b4135a13 100644
--- a/dev-lang/perl/files/perl-5.8.2-reorder-INC.patch
+++ b/dev-lang/perl/files/perl-reorder-INC.patch
diff --git a/dev-lang/perl/files/perl-tempfiles.patch b/dev-lang/perl/files/perl-tempfiles.patch
new file mode 100644
index 000000000000..b229d6c0ca25
--- /dev/null
+++ b/dev-lang/perl/files/perl-tempfiles.patch
@@ -0,0 +1,60 @@
+diff -ur lib/ExtUtils/instmodsh.old lib/ExtUtils/instmodsh
+--- lib/ExtUtils/instmodsh.old Tue Sep 30 17:10:47 2003
++++ lib/ExtUtils/instmodsh Mon Jan 19 20:14:11 2004
+@@ -2,6 +2,7 @@
+
+ use strict;
+ use IO::File;
++use File::Temp;
+ use ExtUtils::Packlist;
+ use ExtUtils::Installed;
+
+@@ -58,16 +59,12 @@
+ $reply =~ /^t\s*/ and do
+ {
+ my $file = (split(' ', $reply))[1];
+- my $tmp = "/tmp/inst.$$";
+- if (my $fh = IO::File->new($tmp, "w"))
+- {
+- $fh->print(join("\n", $Inst->files($module)));
+- $fh->close();
+- system("tar cvf $file -I $tmp");
+- unlink($tmp);
+- last CASE;
+- }
+- else { print("Can't open $file: $!\n"); }
++ my ($fh, $tmp) = File::Temp::tempfile(UNLINK => 1);
++ $fh->print(join("\n", $Inst->files($module)));
++ $fh->close();
++ # This used to use -I which is wrong for GNU tar.
++ system("tar cvf $file -T $tmp");
++ unlink($tmp);
+ last CASE;
+ };
+ $reply eq 'v' and do
+
+diff -ur lib/perl5db.pl.old lib/perl5db.pl
+--- lib/perl5db.pl.old Mon Jan 19 18:46:25 2004
++++ lib/perl5db.pl Mon Jan 19 20:14:11 2004
+@@ -206,7 +206,7 @@
+ =item * noTTY
+
+ if set, goes in NonStop mode. On interrupt, if TTY is not set,
+-uses the value of noTTY or F</tmp/perldbtty$$> to find TTY using
++uses the value of noTTY or F</var/run/perldbtty$$> to find TTY using
+ Term::Rendezvous. Current variant is to have the name of TTY in this
+ file.
+
+@@ -5689,8 +5689,8 @@
+ else {
+ eval "require Term::Rendezvous;" or die;
+ # See if we have anything to pass to Term::Rendezvous.
+- # Use /tmp/perldbtty$$ if not.
+- my $rv = $ENV{PERLDB_NOTTY} || "/tmp/perldbtty$$";
++ # Use /var/run/perldbtty$$ if not.
++ my $rv = $ENV{PERLDB_NOTTY} || "/var/run/perldbtty$$";
+
+ # Rendezvous and get the filehandles.
+ my $term_rv = new Term::Rendezvous $rv;
+
+
diff --git a/dev-lang/perl/files/perl-5.8.2-uclibc.patch b/dev-lang/perl/files/perl-uclibc.patch
index 1e086d73879a..1e086d73879a 100644
--- a/dev-lang/perl/files/perl-5.8.2-uclibc.patch
+++ b/dev-lang/perl/files/perl-uclibc.patch
diff --git a/dev-lang/perl/files/stat.t b/dev-lang/perl/files/stat.t
deleted file mode 100644
index aabdd59c265b..000000000000
--- a/dev-lang/perl/files/stat.t
+++ /dev/null
@@ -1,289 +0,0 @@
-#!./perl
-
-# $RCSfile: stat.t,v $$Revision: 1.3 $$Date: 2003/05/31 11:19:02 $
-
-BEGIN {
- chdir 't' if -d 't';
- @INC = '../lib';
-}
-
-use Config;
-
-print "1..58\n";
-
-$Is_MSWin32 = $^O eq 'MSWin32';
-$Is_Dos = $^O eq 'dos';
-$Is_Dosish = $Is_Dos || $^O eq 'os2' || $Is_MSWin32;
-$Is_Cygwin = $^O eq 'cygwin';
-chop($cwd = ($Is_MSWin32 ? `cd` : `pwd`));
-
-$DEV = `ls -l /dev` unless $Is_Dosish or $Is_Cygwin;
-
-unlink "Op.stat.tmp";
-if (open(FOO, ">Op.stat.tmp")) {
- # hack to make Apollo update link count:
- $junk = `ls Op.stat.tmp` unless ($Is_MSWin32 || $Is_Dos);
-
- ($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size,$atime,$mtime,$ctime,
- $blksize,$blocks) = stat(FOO);
- if ($nlink == 1) {
- print "ok 1\n";
- }
- else {
- print "# res=$res, nlink=$nlink.\nnot ok 1\n";
- }
- if ($Is_MSWin32 or $Is_Cygwin or $Is_Dos || ($mtime && $mtime == $ctime)) {
- print "ok 2\n";
- }
- else {
- print "# |$mtime| vs |$ctime|\nnot ok 2\n";
- }
-
- my $funky_FAT_timestamps = $Is_Cygwin;
-
- sleep 3 if $funky_FAT_timestamps;
-
- print FOO "Now is the time for all good men to come to.\n";
- close(FOO);
-
- sleep 2 unless $funky_FAT_timestamps;
-
-} else {
- print "# open failed: $!\nnot ok 1\nnot ok 2\n";
-}
-
-if ($Is_Dosish) { unlink "Op.stat.tmp2"}
-else {
- `rm -f Op.stat.tmp2;ln Op.stat.tmp Op.stat.tmp2; chmod 644 Op.stat.tmp`;
-}
-
-($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size,$atime,$mtime,$ctime,
- $blksize,$blocks) = stat('Op.stat.tmp');
-
-if ($Is_Dosish || $Config{dont_use_nlink})
- {print "ok 3 # skipped: no link count\n";}
-elsif ($nlink == 2)
- {print "ok 3\n";}
-else {print "# \$nlink is |$nlink|\nnot ok 3\n";}
-
-if ( $Is_Dosish
- # Solaris tmpfs bug
- || ($cwd =~ m#^/tmp# and $mtime && $mtime==$ctime && $^O eq 'solaris')
- || $cwd =~ m#/afs/#
- || $^O eq 'amigaos') {
- print "ok 4 # skipped: different semantic of mtime/ctime\n";
-}
-elsif ( ($mtime && $mtime != $ctime) ) {
- print "ok 4\n";
-}
-else {
- print "not ok 4\n";
- print "#4 If test op/stat.t fails test 4, check if you are on a tmpfs\n";
- print "#4 of some sort. Building in /tmp sometimes has this problem.\n";
- print "#4 Also building on the ClearCase VOBS filesystem may cause this failure.\n";
-}
-print "#4 :$mtime: should != :$ctime:\n";
-
-unlink "Op.stat.tmp" or print "# unlink failed: $!\n";
-if ($Is_MSWin32) { open F, '>Op.stat.tmp' and close F }
-else { `touch Op.stat.tmp` }
-
-if (-z 'Op.stat.tmp') {print "ok 5\n";} else {print "not ok 5\n";}
-if (! -s 'Op.stat.tmp') {print "ok 6\n";} else {print "not ok 6\n";}
-
-$Is_MSWin32 ? `cmd /c echo hi > Op.stat.tmp` : `echo hi >Op.stat.tmp`;
-if (! -z 'Op.stat.tmp') {print "ok 7\n";} else {print "not ok 7\n";}
-if (-s 'Op.stat.tmp') {print "ok 8\n";} else {print "not ok 8\n";}
-
-unlink 'Op.stat.tmp' or print "# unlink failed: $!\n";
-$olduid = $>; # can't test -r if uid == 0
-$Is_MSWin32 ? `cmd /c echo hi > Op.stat.tmp` : `echo hi >Op.stat.tmp`;
-chmod 0,'Op.stat.tmp';
-eval '$> = 1;'; # so switch uid (may not be implemented)
-if (!$> || $Is_Dos || ! -r 'Op.stat.tmp') {print "ok 9\n";} else {print "not ok 9\n";}
-if (!$> || ! -w 'Op.stat.tmp') {print "ok 10\n";} else {print "not ok 10\n";}
-eval '$> = $olduid;'; # switch uid back (may not be implemented)
-print "# olduid=$olduid, newuid=$>\n" unless ($> == $olduid);
-
-if (! -x 'Op.stat.tmp') {print "ok 11\n";}
-else {print "not ok 11\n";}
-
-foreach ((12,13,14,15,16,17)) {
- print "ok $_\n"; #deleted tests
-}
-
-# in ms windows, Op.stat.tmp inherits owner uid from directory
-# not sure about os/2, but chown is harmless anyway
-eval { chown $>,'Op.stat.tmp'; 1 } or print "# $@" ;
-chmod 0700,'Op.stat.tmp';
-if (-r 'Op.stat.tmp') {print "ok 18\n";} else {print "not ok 18\n";}
-if (-w 'Op.stat.tmp') {print "ok 19\n";} else {print "not ok 19\n";}
-if ($Is_Dosish) {print "ok 20 # skipped: -x by extension\n";}
-elsif (-x 'Op.stat.tmp') {print "ok 20\n";}
-else {print "not ok 20\n";}
-
-if (-f 'Op.stat.tmp') {print "ok 21\n";} else {print "not ok 21\n";}
-if (! -d 'Op.stat.tmp') {print "ok 22\n";} else {print "not ok 22\n";}
-
-if (-d '.') {print "ok 23\n";} else {print "not ok 23\n";}
-if (! -f '.') {print "ok 24\n";} else {print "not ok 24\n";}
-
-if (!$Is_Dosish and `ls -l perl` =~ /^l.*->/) {
- if (-l 'perl') {print "ok 25\n";} else {print "not ok 25\n";}
-}
-else {
- print "ok 25\n";
-}
-
-if (-o 'Op.stat.tmp') {print "ok 26\n";} else {print "not ok 26\n";}
-
-if (-e 'Op.stat.tmp') {print "ok 27\n";} else {print "not ok 27\n";}
-unlink 'Op.stat.tmp2';
-if (! -e 'Op.stat.tmp2') {print "ok 28\n";} else {print "not ok 28\n";}
-
-if ($Is_MSWin32 || $Is_Dos)
- {print "ok 29\n";}
-elsif ($DEV !~ /\nc.* (\S+)\n/)
- {print "ok 29\n";}
-elsif (-c "/dev/$1")
- {print "ok 29\n";}
-else
- {print "not ok 29\n";}
-if (! -c '.') {print "ok 30\n";} else {print "not ok 30\n";}
-
-if ($Is_MSWin32 || $Is_Dos)
- {print "ok 31\n";}
-elsif ($DEV !~ /\ns.* (\S+)\n/)
- {print "ok 31\n";}
-elsif (-S "/dev/$1")
- {print "ok 31\n";}
-else
- {print "not ok 31\n";}
-if (! -S '.') {print "ok 32\n";} else {print "not ok 32\n";}
-
-if ($Is_MSWin32 || $Is_Dos)
- {print "ok 33\n";}
-elsif ($DEV !~ /\nb.* (\S+)\n/)
- {print "ok 33\n";}
-elsif (-b "/dev/$1")
- {print "ok 33\n";}
-else
- {print "not ok 33\n";}
-if (! -b '.') {print "ok 34\n";} else {print "not ok 34\n";}
-
-if ($^O eq 'mpeix' or $^O eq 'amigaos' or $Is_Dosish or $Is_Cygwin) {
- print "ok 35 # skipped: no -u\n"; goto tty_test;
-}
-
-$cnt = $uid = 0;
-
-die "Can't run op/stat.t test 35 without pwd working" unless $cwd;
-my @bin = grep {-d} ($^O eq 'machten' ?
- qw(/usr/bin /bin) :
- qw(/sbin /usr/sbin /bin /usr/bin));
-unless (@bin) { print ("not ok 35\n"), goto tty_test; }
-for my $bin (@bin) {
- opendir BIN, $bin or die "Can't opendir $bin: $!";
- while (defined($_ = readdir BIN)) {
- $_ = "$bin/$_";
- $cnt++;
- $uid++ if -u;
- last if $uid && $uid < $cnt;
- }
-}
-closedir BIN;
-
-# I suppose this is going to fail somewhere...
-if ($uid > 0 && $uid < $cnt)
- {print "ok 35\n";}
-elsif ($uid == 0)
- {print ("not ok 35\n"), goto tty_test; }
-else
- {print "not ok 35 \n# ($uid $cnt)\n";}
-
-tty_test:
-
-# To assist in automated testing when a controlling terminal (/dev/tty)
-# may not be available (at, cron rsh etc), the PERL_SKIP_TTY_TEST env var
-# can be set to skip the tests that need a tty.
-unless($ENV{PERL_SKIP_TTY_TEST}) {
- if ($Is_MSWin32) {
- print "ok 36\n";
- print "ok 37\n";
- }
- else {
- my $TTY = "/dev/tty";
-
- $TTY = "/dev/ttyp0" if $^O eq 'rhapsody';
-
- if (defined $TTY) {
- unless (open(TTY, $TTY)) {
- print STDERR "Can't open $TTY--run t/TEST outside of make.\n";
- }
- if (-t TTY) {print "ok 36\n";} else {print "not ok 36\n";}
- if (-c TTY) {print "ok 37\n";} else {print "not ok 37\n";}
- close(TTY);
- } else { # if some platform completely undefines $TTY
- print "ok 36 # skipped\n";
- print "ok 37 # skipped\n";
- }
- }
- if (! -t TTY) {print "ok 38\n";} else {print "not ok 38\n";}
- if (-t) {print "ok 39\n";} else {print "not ok 39\n";}
-}
-else {
- print "ok 36\n";
- print "ok 37\n";
- print "ok 38\n";
- print "ok 39\n";
-}
-open(null,"/dev/null");
-if (! -t null || -e '/xenix' || $^O eq 'machten' || $Is_MSWin32)
- {print "ok 40\n";} else {print "not ok 40\n";}
-close(null);
-
-# These aren't strictly "stat" calls, but so what?
-
-if (-T 'op/stat.t') {print "ok 41\n";} else {print "not ok 41\n";}
-if (! -B 'op/stat.t') {print "ok 42\n";} else {print "not ok 42\n";}
-
-if (-B './perl' || -B './perl.exe') {print "ok 43\n";} else {print "not ok 43\n";}
-if (! -T './perl' && ! -T './perl.exe') {print "ok 44\n";} else {print "not ok 44\n";}
-
-open(FOO,'op/stat.t');
-eval { -T FOO; };
-if ($@ =~ /not implemented/) {
- print "# $@";
- for (45 .. 54) {
- print "ok $_\n";
- }
-}
-else {
- if (-T FOO) {print "ok 45\n";} else {print "not ok 45\n";}
- if (! -B FOO) {print "ok 46\n";} else {print "not ok 46\n";}
- $_ = <FOO>;
- if (/perl/) {print "ok 47\n";} else {print "not ok 47\n";}
- if (-T FOO) {print "ok 48\n";} else {print "not ok 48\n";}
- if (! -B FOO) {print "ok 49\n";} else {print "not ok 49\n";}
- close(FOO);
-
- open(FOO,'op/stat.t');
- $_ = <FOO>;
- if (/perl/) {print "ok 50\n";} else {print "not ok 50\n";}
- if (-T FOO) {print "ok 51\n";} else {print "not ok 51\n";}
- if (! -B FOO) {print "ok 52\n";} else {print "not ok 52\n";}
- seek(FOO,0,0);
- if (-T FOO) {print "ok 53\n";} else {print "not ok 53\n";}
- if (! -B FOO) {print "ok 54\n";} else {print "not ok 54\n";}
-}
-close(FOO);
-
-if (-T '/dev/null') {print "ok 55\n";} else {print "not ok 55\n";}
-if (-B '/dev/null') {print "ok 56\n";} else {print "not ok 56\n";}
-
-# and now, a few parsing tests:
-$_ = 'Op.stat.tmp';
-if (-f) {print "ok 57\n";} else {print "not ok 57\n";}
-if (-f()) {print "ok 58\n";} else {print "not ok 58\n";}
-
-unlink 'Op.stat.tmp' or print "# unlink failed: $!\n";