summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorafresh1 <afresh1@openbsd.org>2017-08-14 13:48:45 +0000
committerafresh1 <afresh1@openbsd.org>2017-08-14 13:48:45 +0000
commitde18eedb1d177e2a8ac32356c93ab698027bc41f (patch)
tree819898cbfcdefa90d93aeb3ef100d076a78b53db
parentImport perl-5.24.2 (diff)
downloadwireguard-openbsd-de18eedb1d177e2a8ac32356c93ab698027bc41f.tar.xz
wireguard-openbsd-de18eedb1d177e2a8ac32356c93ab698027bc41f.zip
Fix merge issues, remove excess files - match perl-5.24.2 dist
OK bluhm@, Reads ok sthen@
-rw-r--r--gnu/usr.bin/perl/Configure43
-rw-r--r--gnu/usr.bin/perl/Cross/config.sh-arm-linux34
-rw-r--r--gnu/usr.bin/perl/Cross/config.sh-arm-linux-n77034
-rw-r--r--gnu/usr.bin/perl/INSTALL28
-rw-r--r--gnu/usr.bin/perl/MANIFEST542
-rw-r--r--gnu/usr.bin/perl/META.json2
-rw-r--r--gnu/usr.bin/perl/META.yml2
-rw-r--r--gnu/usr.bin/perl/Makefile.SH122
-rw-r--r--gnu/usr.bin/perl/NetWare/Makefile4
-rw-r--r--gnu/usr.bin/perl/NetWare/config_H.wc10
-rw-r--r--gnu/usr.bin/perl/Porting/Maintainers.pl7
-rwxr-xr-xgnu/usr.bin/perl/Porting/checkAUTHORS.pl1
-rw-r--r--gnu/usr.bin/perl/Porting/config.sh36
-rw-r--r--gnu/usr.bin/perl/Porting/config_H18
-rw-r--r--gnu/usr.bin/perl/Porting/epigraphs.pod211
-rw-r--r--gnu/usr.bin/perl/Porting/perldelta_template.pod2
-rw-r--r--gnu/usr.bin/perl/Porting/pumpkin.pod4
-rw-r--r--gnu/usr.bin/perl/Porting/release_managers_guide.pod76
-rw-r--r--gnu/usr.bin/perl/Porting/todo.pod4
-rw-r--r--gnu/usr.bin/perl/README.haiku4
-rw-r--r--gnu/usr.bin/perl/README.macosx8
-rw-r--r--gnu/usr.bin/perl/README.os22
-rw-r--r--gnu/usr.bin/perl/README.vms4
-rw-r--r--gnu/usr.bin/perl/configpm12
-rw-r--r--gnu/usr.bin/perl/cpan/Compress-Raw-Bzip2/private/MakeUtil.pm3
-rw-r--r--gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/private/MakeUtil.pm3
-rw-r--r--gnu/usr.bin/perl/cpan/Digest-MD5/MD5.xs409
-rwxr-xr-xgnu/usr.bin/perl/cpan/Digest-MD5/t/files.t2
-rw-r--r--gnu/usr.bin/perl/cpan/ExtUtils-Install/lib/ExtUtils/Install.pm11
-rw-r--r--gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm7
-rw-r--r--gnu/usr.bin/perl/cpan/File-Path/lib/File/Path.pm487
-rw-r--r--gnu/usr.bin/perl/cpan/File-Path/t/FilePathTest.pm44
-rwxr-xr-xgnu/usr.bin/perl/cpan/File-Path/t/Path.t276
-rw-r--r--gnu/usr.bin/perl/cpan/File-Path/t/Path_root.t40
-rw-r--r--gnu/usr.bin/perl/cpan/File-Path/t/Path_win32.t36
-rw-r--r--gnu/usr.bin/perl/cpan/IO-Compress/private/MakeUtil.pm3
-rw-r--r--gnu/usr.bin/perl/cpan/NEXT/lib/NEXT.pm2
-rw-r--r--gnu/usr.bin/perl/cpan/Pod-Parser/lib/Pod/PlainText.pm13
-rw-r--r--gnu/usr.bin/perl/cpan/Sys-Syslog/Makefile.PL2
-rw-r--r--gnu/usr.bin/perl/cpan/Text-Balanced/lib/Text/Balanced.pm2
-rw-r--r--gnu/usr.bin/perl/cpan/podlators/lib/Pod/Man.pm2
-rw-r--r--gnu/usr.bin/perl/cpan/podlators/scripts/pod2man.PL23
-rw-r--r--gnu/usr.bin/perl/deb.c2
-rw-r--r--gnu/usr.bin/perl/dist/Module-CoreList/Changes27
-rw-r--r--gnu/usr.bin/perl/dist/Module-CoreList/lib/Module/CoreList.pm652
-rw-r--r--gnu/usr.bin/perl/dist/Module-CoreList/lib/Module/CoreList/TieHashDelta.pm2
-rw-r--r--gnu/usr.bin/perl/dist/Module-CoreList/lib/Module/CoreList/Utils.pm67
-rw-r--r--gnu/usr.bin/perl/dist/Module-CoreList/t/is_core.t2
-rw-r--r--gnu/usr.bin/perl/dist/Time-HiRes/HiRes.pm42
-rw-r--r--gnu/usr.bin/perl/dist/Time-HiRes/HiRes.xs128
-rw-r--r--gnu/usr.bin/perl/dist/Time-HiRes/Makefile.PL106
-rw-r--r--gnu/usr.bin/perl/dist/Time-HiRes/fallback/const-c.inc79
-rw-r--r--gnu/usr.bin/perl/dist/Time-HiRes/t/Watchdog.pm18
-rw-r--r--gnu/usr.bin/perl/dist/Time-HiRes/t/alarm.t30
-rw-r--r--gnu/usr.bin/perl/dist/Time-HiRes/t/clock.t28
-rw-r--r--gnu/usr.bin/perl/dist/Time-HiRes/t/gettimeofday.t14
-rw-r--r--gnu/usr.bin/perl/dist/Time-HiRes/t/itimer.t18
-rw-r--r--gnu/usr.bin/perl/dist/Time-HiRes/t/nanosleep.t6
-rw-r--r--gnu/usr.bin/perl/dist/Time-HiRes/t/sleep.t6
-rw-r--r--gnu/usr.bin/perl/dist/Time-HiRes/t/stat.t8
-rw-r--r--gnu/usr.bin/perl/dist/Time-HiRes/t/time.t6
-rw-r--r--gnu/usr.bin/perl/dist/Time-HiRes/t/tv_interval.t4
-rw-r--r--gnu/usr.bin/perl/dist/Time-HiRes/t/ualarm.t36
-rw-r--r--gnu/usr.bin/perl/dist/Time-HiRes/t/usleep.t12
-rw-r--r--gnu/usr.bin/perl/dist/base/lib/base.pm71
-rw-r--r--gnu/usr.bin/perl/dist/base/t/incdot.t58
-rw-r--r--gnu/usr.bin/perl/dist/base/t/incmodified-vs-incdot.t27
-rw-r--r--gnu/usr.bin/perl/dist/base/t/lib/BaseIncDoubleExtender.pm9
-rw-r--r--gnu/usr.bin/perl/dist/base/t/lib/BaseIncExtender.pm7
-rwxr-xr-xgnu/usr.bin/perl/dist/threads-shared/t/stress.t2
-rw-r--r--gnu/usr.bin/perl/embed.fnc4
-rw-r--r--gnu/usr.bin/perl/embed.h1
-rw-r--r--gnu/usr.bin/perl/ext/DynaLoader/Makefile.PL4
-rw-r--r--gnu/usr.bin/perl/ext/NDBM_File/Makefile.PL2
-rw-r--r--gnu/usr.bin/perl/ext/POSIX/t/sigaction.t2
-rw-r--r--gnu/usr.bin/perl/hints/catamount.sh4
-rw-r--r--gnu/usr.bin/perl/hints/openbsd.sh20
-rw-r--r--gnu/usr.bin/perl/import_log-DmXIpUUul0
-rw-r--r--gnu/usr.bin/perl/install_lib.pl18
-rw-r--r--gnu/usr.bin/perl/installperl69
-rw-r--r--gnu/usr.bin/perl/lib/AnyDBM_File.pm2
-rw-r--r--gnu/usr.bin/perl/lib/B/Op_private.pm2
-rw-r--r--gnu/usr.bin/perl/lib/Getopt/Std.pm2
-rw-r--r--gnu/usr.bin/perl/mg.c2
-rw-r--r--gnu/usr.bin/perl/patchlevel.h2
-rw-r--r--gnu/usr.bin/perl/perl.c2
-rw-r--r--gnu/usr.bin/perl/plan9/config.plan910
-rw-r--r--gnu/usr.bin/perl/plan9/config_sh.sample32
-rw-r--r--gnu/usr.bin/perl/pod/perl.pod4
-rw-r--r--gnu/usr.bin/perl/pod/perldelta.pod287
-rw-r--r--gnu/usr.bin/perl/pod/perlhist.pod43
-rw-r--r--gnu/usr.bin/perl/pod/perlmodinstall.pod4
-rw-r--r--gnu/usr.bin/perl/pod/perlop.pod2
-rw-r--r--gnu/usr.bin/perl/pp.c3
-rw-r--r--gnu/usr.bin/perl/proto.h3
-rw-r--r--gnu/usr.bin/perl/regen/lib_cleanup.pl6
-rw-r--r--gnu/usr.bin/perl/regexec.c27
-rw-r--r--gnu/usr.bin/perl/t/lib/h2ph.pht4
-rwxr-xr-xgnu/usr.bin/perl/t/op/getppid.t2
-rw-r--r--gnu/usr.bin/perl/t/op/taint.t18
-rw-r--r--gnu/usr.bin/perl/t/porting/customized.dat5
-rw-r--r--gnu/usr.bin/perl/t/porting/dual-life.t6
-rw-r--r--gnu/usr.bin/perl/t/re/speed.t4
-rwxr-xr-xgnu/usr.bin/perl/t/re/subst.t19
-rw-r--r--gnu/usr.bin/perl/util.c29
-rw-r--r--gnu/usr.bin/perl/utils.lst8
-rw-r--r--gnu/usr.bin/perl/utils/Makefile.PL18
-rw-r--r--gnu/usr.bin/perl/utils/h2ph.PL6
-rw-r--r--gnu/usr.bin/perl/utils/perlbug.PL11
-rw-r--r--gnu/usr.bin/perl/vms/descrip_mms.template2
-rw-r--r--gnu/usr.bin/perl/vutil.c4
-rw-r--r--gnu/usr.bin/perl/win32/GNUmakefile9
-rw-r--r--gnu/usr.bin/perl/win32/Makefile10
-rw-r--r--gnu/usr.bin/perl/win32/makefile.mk10
-rw-r--r--gnu/usr.bin/perl/win32/pod.mak8
115 files changed, 2400 insertions, 2372 deletions
diff --git a/gnu/usr.bin/perl/Configure b/gnu/usr.bin/perl/Configure
index 72381fb3ccb..5a353d6de43 100644
--- a/gnu/usr.bin/perl/Configure
+++ b/gnu/usr.bin/perl/Configure
@@ -5459,25 +5459,6 @@ default|recommended)
eval $checkccflag
;;
esac
- case "$gccversion" in
- 1*) ;;
- 2*) ;;
- ?*) echo " "
- echo "Checking if your compiler accepts -fno-delete-null-pointer-checks" 2>&1
- echo 'int main(void) { return 0; }' > gcctest.c
- if $cc -O2 -Werror -fno-delete-null-pointer-checks -o gcctest gcctest.c; then
- echo "Yes, it does." 2>&1
- case "$ccflags" in
- *delete-null-pointer-checks*)
- echo "Leaving current flags $ccflags alone." 2>&1
- ;;
- *) dflt="$dflt -fno-delete-null-pointer-checks" ;;
- esac
- else
- echo "Nope, it doesn't, but that's ok." 2>&1
- fi
- ;;
- esac
# For gcc, adding -pipe speeds up compilations for some, but apparently
# some assemblers can't read from stdin. (It also slows down compilations
# in other cases, but those are apparently rarer these days.) AD 5/2004.
@@ -20490,8 +20471,8 @@ $cat >try.c <<EOP
#define DOUBLESIZE $doublesize
#$d_longdbl HAS_LONG_DOUBLE
#ifdef HAS_LONG_DOUBLE
-#define LONG_DOUBLESIZE $longdblsize
-#define LONG_DOUBLEKIND $longdblkind
+#define LONGDBLSIZE $longdblsize
+#define LONGDBLKIND $longdblkind
#endif
#$i_math I_MATH
#ifdef I_MATH
@@ -20523,15 +20504,16 @@ int main(int argc, char *argv[]) {
#ifdef HAS_LONG_DOUBLE
long double ldinf = (long double)exp(1e9);
long double ldnan = (long double)sqrt(-1.0);
-# if LONG_DOUBLEKIND == 3 || LONG_DOUBLEKIND == 4
-/* the 80-bit long doubles might have garbage in their excess bytes */
- memset((char *)&ldinf + 10, '\0', LONG_DOUBLESIZE - 10);
- memset((char *)&ldnan + 10, '\0', LONG_DOUBLESIZE - 10);
-# endif
+#endif
if (argc == 2) {
switch (argv[1][0]) {
case '1': bytes(&dinf, sizeof(dinf)); break;
case '2': bytes(&dnan, sizeof(dnan)); break;
+#ifdef HAS_LONG_DOUBLE
+# if LONG_DOUBLEKIND == 3 || LONG_DOUBLEKIND == 4
+/* the 80-bit long doubles might have garbage in their excess bytes */
+ memset((char *)&ldinf + 10, '\0', LONG_DOUBLESIZE - 10);
+# endif
case '3': bytes(&ldinf, sizeof(ldinf)); break;
case '4': bytes(&ldnan, sizeof(ldnan)); break;
#endif
@@ -20759,9 +20741,9 @@ case "$ccflags" in
;;
esac
-randfunc=drand48
-drand01="drand48()"
-seedfunc="srand48"
+randfunc=Perl_drand48
+drand01="Perl_drand48()"
+seedfunc="Perl_drand48_init"
randbits=48
randseedtype=U32
@@ -23612,7 +23594,6 @@ xs_extensions=''
find_extensions='
for xxx in *; do
case "$xxx" in
- CVS) ;;
DynaLoader|dynaload) ;;
*)
this_ext=`echo "$xxx" | $sed -e s/-/\\\//g`;
@@ -23850,8 +23831,6 @@ esac
nonxs_ext=''
for xxx in $nonxs_extensions ; do
case "$xxx" in
- CVS|RCS|SCCS|.svn)
- ;;
VMS*)
;;
*) nonxs_ext="$nonxs_ext $xxx"
diff --git a/gnu/usr.bin/perl/Cross/config.sh-arm-linux b/gnu/usr.bin/perl/Cross/config.sh-arm-linux
index a79fdaff4f1..53bc26fb92b 100644
--- a/gnu/usr.bin/perl/Cross/config.sh-arm-linux
+++ b/gnu/usr.bin/perl/Cross/config.sh-arm-linux
@@ -36,8 +36,8 @@ api_subversion='0'
api_version='24'
api_versionstring='5.24.0'
ar='ar'
-archlib='/usr/lib/perl5/5.24.1/armv4l-linux'
-archlibexp='/usr/lib/perl5/5.24.1/armv4l-linux'
+archlib='/usr/lib/perl5/5.24.2/armv4l-linux'
+archlibexp='/usr/lib/perl5/5.24.2/armv4l-linux'
archname64=''
archname='armv4l-linux'
archobjs=''
@@ -56,7 +56,7 @@ castflags='0'
cat='cat'
cc='cc'
cccdlflags='-fpic'
-ccdlflags='-rdynamic -Wl,-rpath,/usr/lib/perl5/5.24.1/armv4l-linux/CORE'
+ccdlflags='-rdynamic -Wl,-rpath,/usr/lib/perl5/5.24.2/armv4l-linux/CORE'
ccflags='-fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64'
ccflags_uselargefiles='-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64'
ccname='arm-linux-gcc'
@@ -808,7 +808,7 @@ inc_version_list=' '
inc_version_list_init='0'
incpath=''
inews=''
-installarchlib='./install_me_here/usr/lib/perl5/5.24.1/armv4l-linux'
+installarchlib='./install_me_here/usr/lib/perl5/5.24.2/armv4l-linux'
installbin='./install_me_here/usr/bin'
installhtml1dir=''
installhtml3dir=''
@@ -816,13 +816,13 @@ installman1dir='./install_me_here/usr/share/man/man1'
installman3dir='./install_me_here/usr/share/man/man3'
installprefix='./install_me_here/usr'
installprefixexp='./install_me_here/usr'
-installprivlib='./install_me_here/usr/lib/perl5/5.24.1'
+installprivlib='./install_me_here/usr/lib/perl5/5.24.2'
installscript='./install_me_here/usr/bin'
-installsitearch='./install_me_here/usr/lib/perl5/site_perl/5.24.1/armv4l-linux'
+installsitearch='./install_me_here/usr/lib/perl5/site_perl/5.24.2/armv4l-linux'
installsitebin='./install_me_here/usr/bin'
installsitehtml1dir=''
installsitehtml3dir=''
-installsitelib='./install_me_here/usr/lib/perl5/site_perl/5.24.1'
+installsitelib='./install_me_here/usr/lib/perl5/site_perl/5.24.2'
installsiteman1dir='./install_me_here/usr/share/man/man1'
installsiteman3dir='./install_me_here/usr/share/man/man3'
installsitescript='./install_me_here/usr/bin'
@@ -956,8 +956,8 @@ pmake=''
pr=''
prefix='/usr'
prefixexp='/usr'
-privlib='/usr/lib/perl5/5.24.1'
-privlibexp='/usr/lib/perl5/5.24.1'
+privlib='/usr/lib/perl5/5.24.2'
+privlibexp='/usr/lib/perl5/5.24.2'
procselfexe='"/proc/self/exe"'
prototype='define'
ptrsize='4'
@@ -1022,17 +1022,17 @@ sig_num='0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
sig_num_init='0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 6, 17, 29, 31, 0'
sig_size='68'
signal_t='void'
-sitearch='/usr/lib/perl5/site_perl/5.24.1/armv4l-linux'
-sitearchexp='/usr/lib/perl5/site_perl/5.24.1/armv4l-linux'
+sitearch='/usr/lib/perl5/site_perl/5.24.2/armv4l-linux'
+sitearchexp='/usr/lib/perl5/site_perl/5.24.2/armv4l-linux'
sitebin='/usr/bin'
sitebinexp='/usr/bin'
sitehtml1dir=''
sitehtml1direxp=''
sitehtml3dir=''
sitehtml3direxp=''
-sitelib='/usr/lib/perl5/site_perl/5.24.1'
+sitelib='/usr/lib/perl5/site_perl/5.24.2'
sitelib_stem='/usr/lib/perl5/site_perl'
-sitelibexp='/usr/lib/perl5/site_perl/5.24.1'
+sitelibexp='/usr/lib/perl5/site_perl/5.24.2'
siteman1dir='/usr/share/man/man1'
siteman1direxp='/usr/share/man/man1'
siteman3dir='/usr/share/man/man3'
@@ -1071,7 +1071,7 @@ stdio_stream_array=''
strerror_r_proto='0'
strings='/usr/include/string.h'
submit=''
-subversion='1'
+subversion='2'
sysman='/usr/share/man/man1'
tail=''
tar=''
@@ -1163,8 +1163,8 @@ vendorprefix=''
vendorprefixexp=''
vendorscript=''
vendorscriptexp=''
-version='5.24.1'
-version_patchlevel_string='version 24 subversion 1'
+version='5.24.2'
+version_patchlevel_string='version 24 subversion 2'
versiononly='undef'
vi=''
xlibpth='/usr/lib/386 /lib/386'
@@ -1178,7 +1178,7 @@ config_args=''
config_argc=0
PERL_REVISION=5
PERL_VERSION=24
-PERL_SUBVERSION=1
+PERL_SUBVERSION=2
PERL_API_REVISION=5
PERL_API_VERSION=24
PERL_API_SUBVERSION=0
diff --git a/gnu/usr.bin/perl/Cross/config.sh-arm-linux-n770 b/gnu/usr.bin/perl/Cross/config.sh-arm-linux-n770
index e4281c54e79..2a1d6635d60 100644
--- a/gnu/usr.bin/perl/Cross/config.sh-arm-linux-n770
+++ b/gnu/usr.bin/perl/Cross/config.sh-arm-linux-n770
@@ -36,8 +36,8 @@ api_subversion='0'
api_version='24'
api_versionstring='5.24.0'
ar='ar'
-archlib='/usr/lib/perl5/5.24.1/armv4l-linux'
-archlibexp='/usr/lib/perl5/5.24.1/armv4l-linux'
+archlib='/usr/lib/perl5/5.24.2/armv4l-linux'
+archlibexp='/usr/lib/perl5/5.24.2/armv4l-linux'
archname64=''
archname='armv4l-linux'
archobjs=''
@@ -55,7 +55,7 @@ castflags='0'
cat='cat'
cc='arm-none-linux-gnueabi-gcc'
cccdlflags='-fpic'
-ccdlflags='-rdynamic -Wl,-rpath,/usr/lib/perl5/5.24.1/armv4l-linux/CORE'
+ccdlflags='-rdynamic -Wl,-rpath,/usr/lib/perl5/5.24.2/armv4l-linux/CORE'
ccflags='-fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64'
ccflags_uselargefiles='-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64'
ccname='arm-linux-gcc'
@@ -699,7 +699,7 @@ inc_version_list=' '
inc_version_list_init='0'
incpath=''
inews=''
-installarchlib='./install_me_here/usr/lib/perl5/5.24.1/armv4l-linux'
+installarchlib='./install_me_here/usr/lib/perl5/5.24.2/armv4l-linux'
installbin='./install_me_here/usr/bin'
installhtml1dir=''
installhtml3dir=''
@@ -707,13 +707,13 @@ installman1dir='./install_me_here/usr/share/man/man1'
installman3dir='./install_me_here/usr/share/man/man3'
installprefix='./install_me_here/usr'
installprefixexp='./install_me_here/usr'
-installprivlib='./install_me_here/usr/lib/perl5/5.24.1'
+installprivlib='./install_me_here/usr/lib/perl5/5.24.2'
installscript='./install_me_here/usr/bin'
-installsitearch='./install_me_here/usr/lib/perl5/site_perl/5.24.1/armv4l-linux'
+installsitearch='./install_me_here/usr/lib/perl5/site_perl/5.24.2/armv4l-linux'
installsitebin='./install_me_here/usr/bin'
installsitehtml1dir=''
installsitehtml3dir=''
-installsitelib='./install_me_here/usr/lib/perl5/site_perl/5.24.1'
+installsitelib='./install_me_here/usr/lib/perl5/site_perl/5.24.2'
installsiteman1dir='./install_me_here/usr/share/man/man1'
installsiteman3dir='./install_me_here/usr/share/man/man3'
installsitescript='./install_me_here/usr/bin'
@@ -841,8 +841,8 @@ pmake=''
pr=''
prefix='/usr'
prefixexp='/usr'
-privlib='/usr/lib/perl5/5.24.1'
-privlibexp='/usr/lib/perl5/5.24.1'
+privlib='/usr/lib/perl5/5.24.2'
+privlibexp='/usr/lib/perl5/5.24.2'
procselfexe='"/proc/self/exe"'
prototype='define'
ptrsize='4'
@@ -903,17 +903,17 @@ sig_num='0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
sig_num_init='0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 6, 17, 29, 31, 0'
sig_size='68'
signal_t='void'
-sitearch='/usr/lib/perl5/site_perl/5.24.1/armv4l-linux'
-sitearchexp='/usr/lib/perl5/site_perl/5.24.1/armv4l-linux'
+sitearch='/usr/lib/perl5/site_perl/5.24.2/armv4l-linux'
+sitearchexp='/usr/lib/perl5/site_perl/5.24.2/armv4l-linux'
sitebin='/usr/bin'
sitebinexp='/usr/bin'
sitehtml1dir=''
sitehtml1direxp=''
sitehtml3dir=''
sitehtml3direxp=''
-sitelib='/usr/lib/perl5/site_perl/5.24.1'
+sitelib='/usr/lib/perl5/site_perl/5.24.2'
sitelib_stem='/usr/lib/perl5/site_perl'
-sitelibexp='/usr/lib/perl5/site_perl/5.24.1'
+sitelibexp='/usr/lib/perl5/site_perl/5.24.2'
siteman1dir='/usr/share/man/man1'
siteman1direxp='/usr/share/man/man1'
siteman3dir='/usr/share/man/man3'
@@ -950,7 +950,7 @@ stdio_stream_array=''
strerror_r_proto='0'
strings='/usr/include/string.h'
submit=''
-subversion='1'
+subversion='2'
sysman='/usr/share/man/man1'
tail=''
tar=''
@@ -1035,8 +1035,8 @@ vendorprefix=''
vendorprefixexp=''
vendorscript=''
vendorscriptexp=''
-version='5.24.1'
-version_patchlevel_string='version 24 subversion 1'
+version='5.24.2'
+version_patchlevel_string='version 24 subversion 2'
versiononly='undef'
vi=''
xlibpth='/usr/lib/386 /lib/386'
@@ -1050,7 +1050,7 @@ config_args=''
config_argc=0
PERL_REVISION=5
PERL_VERSION=24
-PERL_SUBVERSION=1
+PERL_SUBVERSION=2
PERL_API_REVISION=5
PERL_API_VERSION=24
PERL_API_SUBVERSION=0
diff --git a/gnu/usr.bin/perl/INSTALL b/gnu/usr.bin/perl/INSTALL
index 07adda6382a..5edf5bbd0fe 100644
--- a/gnu/usr.bin/perl/INSTALL
+++ b/gnu/usr.bin/perl/INSTALL
@@ -581,7 +581,7 @@ The directories set up by Configure fall into three broad categories.
=item Directories for the perl distribution
-By default, Configure will use the following directories for 5.24.1.
+By default, Configure will use the following directories for 5.24.2.
$version is the full perl version number, including subversion, e.g.
5.12.3, and $archname is a string like sun4-sunos,
determined by Configure. The full definitions of all Configure
@@ -2437,7 +2437,7 @@ http://www.chiark.greenend.org.uk/~sgtatham/bugs.html
=head1 Coexistence with earlier versions of perl 5
-Perl 5.24.1 is not binary compatible with earlier versions of Perl.
+Perl 5.24.2 is not binary compatible with earlier versions of Perl.
In other words, you will have to recompile your XS modules.
In general, you can usually safely upgrade from one version of Perl
@@ -2512,9 +2512,9 @@ won't interfere with another version. (The defaults guarantee this for
libraries after 5.6.0, but not for executables. TODO?) One convenient
way to do this is by using a separate prefix for each version, such as
- sh Configure -Dprefix=/opt/perl5.24.1
+ sh Configure -Dprefix=/opt/perl5.24.2
-and adding /opt/perl5.24.1/bin to the shell PATH variable. Such users
+and adding /opt/perl5.24.2/bin to the shell PATH variable. Such users
may also wish to add a symbolic link /usr/local/bin/perl so that
scripts can still start with #!/usr/local/bin/perl.
@@ -2529,11 +2529,11 @@ yet.
=head2 Upgrading from v5.22 or earlier
-B<Perl 5.24.1 may not be binary compatible with Perl v5.22 or
+B<Perl 5.24.2 may not be binary compatible with Perl v5.22 or
earlier Perl releases.> Perl modules having binary parts
(meaning that a C compiler is used) will have to be recompiled to be
-used with 5.24.1. If you find you do need to rebuild an extension with
-5.24.1, you may safely do so without disturbing the older
+used with 5.24.2. If you find you do need to rebuild an extension with
+5.24.2, you may safely do so without disturbing the older
installations. (See L<"Coexistence with earlier versions of perl 5">
above.)
@@ -2566,15 +2566,15 @@ Firstly, the bare minimum to run this script
print("$f\n");
}
-in Linux with perl-5.24.1 is as follows (under $Config{prefix}):
+in Linux with perl-5.24.2 is as follows (under $Config{prefix}):
./bin/perl
- ./lib/perl5/5.24.1/strict.pm
- ./lib/perl5/5.24.1/warnings.pm
- ./lib/perl5/5.24.1/i686-linux/File/Glob.pm
- ./lib/perl5/5.24.1/feature.pm
- ./lib/perl5/5.24.1/XSLoader.pm
- ./lib/perl5/5.24.1/i686-linux/auto/File/Glob/Glob.so
+ ./lib/perl5/5.24.2/strict.pm
+ ./lib/perl5/5.24.2/warnings.pm
+ ./lib/perl5/5.24.2/i686-linux/File/Glob.pm
+ ./lib/perl5/5.24.2/feature.pm
+ ./lib/perl5/5.24.2/XSLoader.pm
+ ./lib/perl5/5.24.2/i686-linux/auto/File/Glob/Glob.so
Secondly, for perl-5.10.1, the Debian perl-base package contains 591
files, (of which 510 are for lib/unicore) totaling about 3.5MB in its
diff --git a/gnu/usr.bin/perl/MANIFEST b/gnu/usr.bin/perl/MANIFEST
index 06aa640ace0..567fb5132ba 100644
--- a/gnu/usr.bin/perl/MANIFEST
+++ b/gnu/usr.bin/perl/MANIFEST
@@ -14,7 +14,6 @@ cflags.SH A script that emits C compilation flags per file
Changes Describe how to peruse changes between releases
charclass_invlists.h Compiled-in inversion lists
config_h.SH Produces config.h
-config.over Site-specific overrides for Configure defaults
configpm Produces lib/Config.pm
Configure Portability tool
configure.com Configure-equivalent for VMS
@@ -1804,13 +1803,6 @@ cpan/NEXT/t/dynamically_scoped_regex_vars.t NEXT
cpan/NEXT/t/next.t NEXT
cpan/NEXT/t/stringify.t NEXT
cpan/NEXT/t/unseen.t NEXT
-cpan/OpenBSD-MkTemp/lib/OpenBSD/MkTemp.pm OpenBSD::MkTemp
-cpan/OpenBSD-MkTemp/MkTemp.xs OpenBSD::MkTemp
-cpan/OpenBSD-MkTemp/README OpenBSD::MkTemp Readme
-cpan/OpenBSD-MkTemp/t/OpenBSD-MkTemp.t OpenBSD::MkTemp test file
-cpan/OpenBSD-Pledge/lib/OpenBSD/Pledge.pm OpenBSD::Pledge
-cpan/OpenBSD-Pledge/Pledge.xs OpenBSD::Pledge
-cpan/OpenBSD-Pledge/t/OpenBSD-Pledge.t OpenBSD::Pledge test file
cpan/Params-Check/lib/Params/Check.pm Params::Check
cpan/Params-Check/t/01_Params-Check.t Params::Check tests
cpan/parent/lib/parent.pm Establish an ISA relationship with base classes at compile time
@@ -2271,17 +2263,6 @@ cpan/Term-ANSIColor/t/module/stringify.t
cpan/Term-ANSIColor/t/taint/basic.t
cpan/Term-Cap/Cap.pm Perl module supporting termcap usage
cpan/Term-Cap/test.pl See if Term::Cap works
-cpan/Term-ReadKey/Changes Term::ReadKey
-cpan/Term-ReadKey/Configure.pm Term::ReadKey
-cpan/Term-ReadKey/example/test.pl Term::ReadKey
-cpan/Term-ReadKey/genchars.pl Term::ReadKey
-cpan/Term-ReadKey/Makefile.PL Term::ReadKey
-cpan/Term-ReadKey/ppport.h Term::ReadKey
-cpan/Term-ReadKey/ReadKey.pm Term::ReadKey
-cpan/Term-ReadKey/ReadKey.xs Term::ReadKey
-cpan/Term-ReadKey/README Term::ReadKey
-cpan/Term-ReadKey/t/01_basic.t Term::ReadKey
-cpan/Term-ReadKey/t/02_terminal_functions.t Term::ReadKey
cpan/Test-Harness/bin/prove The prove harness utility
cpan/Test-Harness/lib/App/Prove.pm Gubbins for the prove utility
cpan/Test-Harness/lib/App/Prove/State.pm Gubbins for the prove utility
@@ -3027,10 +3008,9 @@ dist/base/t/fields-5_8_0.t See if fields work
dist/base/t/fields-base.t See if fields work
dist/base/t/fields.t See if fields work
dist/base/t/incdot.t Test how base.pm handles '.' in @INC
-dist/base/t/incmodified-vs-incdot.t Test base.pm's @INC fiddling
dist/base/t/isa.t See if base's behaviour doesn't change
-dist/base/t/lib/BaseIncDoubleExtender.pm Test module for base.pm
-dist/base/t/lib/BaseIncExtender.pm Test module for base.pm
+dist/base/t/lib/BaseIncMandatory.pm Test module for base.pm
+dist/base/t/lib/BaseIncOptional.pm Test module for base.pm
dist/base/t/lib/Broken.pm Test module for base.pm
dist/base/t/lib/Dummy.pm Test module for base.pm
dist/base/t/lib/HasSigDie.pm Module for testing base.pm
@@ -3637,6 +3617,7 @@ ext/B/B/Terse.pm Compiler Terse backend
ext/B/B/Xref.pm Compiler Xref backend
ext/B/B.xs Compiler backend external subroutines
ext/B/hints/darwin.pl Hints for named architecture
+ext/B/hints/openbsd.pl Hints for named architecture
ext/B/Makefile.PL Compiler backend makefile writer
ext/B/O.pm Compiler front-end module (-MO=...)
ext/B/t/b.t See if B works
@@ -4077,7 +4058,6 @@ fakesdio.h stdio in terms of PerlIO
feature.h Feature header
form.h Public declarations for formats
generate_uudmap.c Generate uudmap.h, the uuencode decoding map
-git_version.h Pre-generated git_version.h for OpenBSD
globals.c File to declare global symbols (for shared library)
globvar.sym Global variables that need hiding when embedded
gv.c Glob value code
@@ -4222,7 +4202,6 @@ lib/Class/Struct.pm Declare struct-like datatypes as Perl classes
lib/Class/Struct.t See if Class::Struct works
lib/Config/Extensions.pm Convenient hash lookup for built extensions
lib/Config/Extensions.t See if Config::Extensions works
-lib/Config_git.pl Pre-generated Config_git.pl for OpenBSD
lib/Config.t See if Config works
lib/CORE.pod document the CORE namespace
lib/DBM_Filter/compress.pm DBM Filter to compress keys/values
@@ -4383,515 +4362,57 @@ lib/Unicode/README Explanation what happened to lib/unicode.
lib/Unicode/UCD.pm Unicode character database
lib/Unicode/UCD.t See if Unicode character database works
lib/unicore/ArabicShaping.txt Unicode character database
-lib/unicore/auxiliary/GCBTest.txt Unicode character database
-lib/unicore/auxiliary/GraphemeBreakProperty.txt Unicode character database
-lib/unicore/auxiliary/LBTest.txt Unicode character database
-lib/unicore/auxiliary/SBTest.txt Unicode character database
-lib/unicore/auxiliary/SentenceBreakProperty.txt Unicode character database
-lib/unicore/auxiliary/WBTest.txt Unicode character database
-lib/unicore/auxiliary/WordBreakProperty.txt Unicode character database
+lib/unicore/auxiliary/GCBTest.txt Unicode character database
+lib/unicore/auxiliary/GraphemeBreakProperty.txt Unicode character database
+lib/unicore/auxiliary/LBTest.txt Unicode character database
+lib/unicore/auxiliary/SBTest.txt Unicode character database
+lib/unicore/auxiliary/SentenceBreakProperty.txt Unicode character database
+lib/unicore/auxiliary/WBTest.txt Unicode character database
+lib/unicore/auxiliary/WordBreakProperty.txt Unicode character database
lib/unicore/BidiBrackets.txt Unicode character database
lib/unicore/BidiMirroring.txt Unicode character database
lib/unicore/Blocks.txt Unicode character database
lib/unicore/CaseFolding.txt Unicode character database
lib/unicore/CJKRadicals.txt Unicode character database
-lib/unicore/CombiningClass.pl Unicode character database
-lib/unicore/CompositionExclusions.txt Unicode character database
+lib/unicore/CompositionExclusions.txt Unicode character database
lib/unicore/DAge.txt Unicode character database
lib/unicore/DCoreProperties.txt Unicode character database
-lib/unicore/Decomposition.pl Unicode character database
-lib/unicore/DNormalizationProps.txt Unicode character database
+lib/unicore/DNormalizationProps.txt Unicode character database
lib/unicore/EastAsianWidth.txt Unicode character database
lib/unicore/EmojiSources.txt Unicode character database
-lib/unicore/extracted/DBidiClass.txt Unicode character database
-lib/unicore/extracted/DBinaryProperties.txt Unicode character database
-lib/unicore/extracted/DCombiningClass.txt Unicode character database
-lib/unicore/extracted/DDecompositionType.txt Unicode character database
-lib/unicore/extracted/DEastAsianWidth.txt Unicode character database
-lib/unicore/extracted/DGeneralCategory.txt Unicode character database
-lib/unicore/extracted/DJoinGroup.txt Unicode character database
-lib/unicore/extracted/DJoinType.txt Unicode character database
-lib/unicore/extracted/DLineBreak.txt Unicode character database
-lib/unicore/extracted/DNumType.txt Unicode character database
-lib/unicore/extracted/DNumValues.txt Unicode character database
-lib/unicore/HangulSyllableType.txt Unicode character database
-lib/unicore/Heavy.pl Unicode character database
+lib/unicore/extracted/DBidiClass.txt Unicode character database
+lib/unicore/extracted/DBinaryProperties.txt Unicode character database
+lib/unicore/extracted/DCombiningClass.txt Unicode character database
+lib/unicore/extracted/DDecompositionType.txt Unicode character database
+lib/unicore/extracted/DEastAsianWidth.txt Unicode character database
+lib/unicore/extracted/DGeneralCategory.txt Unicode character database
+lib/unicore/extracted/DJoinGroup.txt Unicode character database
+lib/unicore/extracted/DJoinType.txt Unicode character database
+lib/unicore/extracted/DLineBreak.txt Unicode character database
+lib/unicore/extracted/DNumType.txt Unicode character database
+lib/unicore/extracted/DNumValues.txt Unicode character database
+lib/unicore/HangulSyllableType.txt Unicode character database
lib/unicore/Index.txt Unicode character database
-lib/unicore/IndicPositionalCategory.txt Unicode character database
-lib/unicore/IndicSyllabicCategory.txt Unicode character database
+lib/unicore/IndicPositionalCategory.txt Unicode character database
+lib/unicore/IndicSyllabicCategory.txt Unicode character database
lib/unicore/Jamo.txt Unicode character database
-lib/unicore/lib/Age/NA.pl Unicode character database
-lib/unicore/lib/Age/V11.pl Unicode character database
-lib/unicore/lib/Age/V20.pl Unicode character database
-lib/unicore/lib/Age/V30.pl Unicode character database
-lib/unicore/lib/Age/V31.pl Unicode character database
-lib/unicore/lib/Age/V32.pl Unicode character database
-lib/unicore/lib/Age/V40.pl Unicode character database
-lib/unicore/lib/Age/V41.pl Unicode character database
-lib/unicore/lib/Age/V50.pl Unicode character database
-lib/unicore/lib/Age/V51.pl Unicode character database
-lib/unicore/lib/Age/V52.pl Unicode character database
-lib/unicore/lib/Age/V60.pl Unicode character database
-lib/unicore/lib/Age/V61.pl Unicode character database
-lib/unicore/lib/Age/V70.pl Unicode character database
-lib/unicore/lib/Age/V80.pl Unicode character database
-lib/unicore/lib/Alpha/Y.pl Unicode character database
-lib/unicore/lib/Bc/AL.pl Unicode character database
-lib/unicore/lib/Bc/AN.pl Unicode character database
-lib/unicore/lib/Bc/BN.pl Unicode character database
-lib/unicore/lib/Bc/B.pl Unicode character database
-lib/unicore/lib/Bc/CS.pl Unicode character database
-lib/unicore/lib/Bc/EN.pl Unicode character database
-lib/unicore/lib/Bc/ES.pl Unicode character database
-lib/unicore/lib/Bc/ET.pl Unicode character database
-lib/unicore/lib/Bc/L.pl Unicode character database
-lib/unicore/lib/Bc/NSM.pl Unicode character database
-lib/unicore/lib/Bc/ON.pl Unicode character database
-lib/unicore/lib/Bc/R.pl Unicode character database
-lib/unicore/lib/Bc/WS.pl Unicode character database
-lib/unicore/lib/BidiC/Y.pl Unicode character database
-lib/unicore/lib/BidiM/Y.pl Unicode character database
-lib/unicore/lib/Blk/NB.pl Unicode character database
-lib/unicore/lib/Bpt/C.pl Unicode character database
-lib/unicore/lib/Bpt/N.pl Unicode character database
-lib/unicore/lib/Bpt/O.pl Unicode character database
-lib/unicore/lib/Cased/Y.pl Unicode character database
-lib/unicore/lib/Ccc/A.pl Unicode character database
-lib/unicore/lib/Ccc/AR.pl Unicode character database
-lib/unicore/lib/Ccc/ATAR.pl Unicode character database
-lib/unicore/lib/Ccc/B.pl Unicode character database
-lib/unicore/lib/Ccc/BR.pl Unicode character database
-lib/unicore/lib/Ccc/DB.pl Unicode character database
-lib/unicore/lib/Ccc/NK.pl Unicode character database
-lib/unicore/lib/Ccc/NR.pl Unicode character database
-lib/unicore/lib/Ccc/OV.pl Unicode character database
-lib/unicore/lib/Ccc/VR.pl Unicode character database
-lib/unicore/lib/CE/Y.pl Unicode character database
-lib/unicore/lib/CI/Y.pl Unicode character database
-lib/unicore/lib/CompEx/Y.pl Unicode character database
-lib/unicore/lib/CWCF/Y.pl Unicode character database
-lib/unicore/lib/CWCM/Y.pl Unicode character database
-lib/unicore/lib/CWKCF/Y.pl Unicode character database
-lib/unicore/lib/CWL/Y.pl Unicode character database
-lib/unicore/lib/CWT/Y.pl Unicode character database
-lib/unicore/lib/CWU/Y.pl Unicode character database
-lib/unicore/lib/Dash/Y.pl Unicode character database
-lib/unicore/lib/Dep/Y.pl Unicode character database
-lib/unicore/lib/Dia/Y.pl Unicode character database
-lib/unicore/lib/DI/Y.pl Unicode character database
-lib/unicore/lib/Dt/Com.pl Unicode character database
-lib/unicore/lib/Dt/Enc.pl Unicode character database
-lib/unicore/lib/Dt/Fin.pl Unicode character database
-lib/unicore/lib/Dt/Font.pl Unicode character database
-lib/unicore/lib/Dt/Init.pl Unicode character database
-lib/unicore/lib/Dt/Iso.pl Unicode character database
-lib/unicore/lib/Dt/Med.pl Unicode character database
-lib/unicore/lib/Dt/Nar.pl Unicode character database
-lib/unicore/lib/Dt/Nb.pl Unicode character database
-lib/unicore/lib/Dt/NonCanon.pl Unicode character database
-lib/unicore/lib/Dt/Sqr.pl Unicode character database
-lib/unicore/lib/Dt/Sub.pl Unicode character database
-lib/unicore/lib/Dt/Sup.pl Unicode character database
-lib/unicore/lib/Dt/Vert.pl Unicode character database
-lib/unicore/lib/Ea/A.pl Unicode character database
-lib/unicore/lib/Ea/H.pl Unicode character database
-lib/unicore/lib/Ea/Na.pl Unicode character database
-lib/unicore/lib/Ea/N.pl Unicode character database
-lib/unicore/lib/Ea/W.pl Unicode character database
-lib/unicore/lib/Ext/Y.pl Unicode character database
-lib/unicore/lib/GCB/CN.pl Unicode character database
-lib/unicore/lib/GCB/EX.pl Unicode character database
-lib/unicore/lib/GCB/LV.pl Unicode character database
-lib/unicore/lib/GCB/LVT.pl Unicode character database
-lib/unicore/lib/GCB/SM.pl Unicode character database
-lib/unicore/lib/GCB/XX.pl Unicode character database
-lib/unicore/lib/Gc/Cf.pl Unicode character database
-lib/unicore/lib/Gc/Cn.pl Unicode character database
-lib/unicore/lib/Gc/C.pl Unicode character database
-lib/unicore/lib/Gc/LC.pl Unicode character database
-lib/unicore/lib/Gc/Ll.pl Unicode character database
-lib/unicore/lib/Gc/Lm.pl Unicode character database
-lib/unicore/lib/Gc/Lo.pl Unicode character database
-lib/unicore/lib/Gc/L.pl Unicode character database
-lib/unicore/lib/Gc/Lu.pl Unicode character database
-lib/unicore/lib/Gc/Mc.pl Unicode character database
-lib/unicore/lib/Gc/Me.pl Unicode character database
-lib/unicore/lib/Gc/Mn.pl Unicode character database
-lib/unicore/lib/Gc/M.pl Unicode character database
-lib/unicore/lib/Gc/Nd.pl Unicode character database
-lib/unicore/lib/Gc/Nl.pl Unicode character database
-lib/unicore/lib/Gc/No.pl Unicode character database
-lib/unicore/lib/Gc/N.pl Unicode character database
-lib/unicore/lib/Gc/Pd.pl Unicode character database
-lib/unicore/lib/Gc/Pe.pl Unicode character database
-lib/unicore/lib/Gc/Pf.pl Unicode character database
-lib/unicore/lib/Gc/Pi.pl Unicode character database
-lib/unicore/lib/Gc/Po.pl Unicode character database
-lib/unicore/lib/Gc/P.pl Unicode character database
-lib/unicore/lib/Gc/Ps.pl Unicode character database
-lib/unicore/lib/Gc/Sc.pl Unicode character database
-lib/unicore/lib/Gc/Sk.pl Unicode character database
-lib/unicore/lib/Gc/Sm.pl Unicode character database
-lib/unicore/lib/Gc/So.pl Unicode character database
-lib/unicore/lib/Gc/S.pl Unicode character database
-lib/unicore/lib/Gc/Z.pl Unicode character database
-lib/unicore/lib/Gc/Zs.pl Unicode character database
-lib/unicore/lib/GrBase/Y.pl Unicode character database
-lib/unicore/lib/Hex/Y.pl Unicode character database
-lib/unicore/lib/Hst/NA.pl Unicode character database
-lib/unicore/lib/Hyphen/T.pl Unicode character database
-lib/unicore/lib/IDC/Y.pl Unicode character database
-lib/unicore/lib/Ideo/Y.pl Unicode character database
-lib/unicore/lib/IDS/Y.pl Unicode character database
-lib/unicore/lib/In/2_0.pl Unicode character database
-lib/unicore/lib/In/2_1.pl Unicode character database
-lib/unicore/lib/In/3_0.pl Unicode character database
-lib/unicore/lib/In/3_1.pl Unicode character database
-lib/unicore/lib/In/3_2.pl Unicode character database
-lib/unicore/lib/In/4_0.pl Unicode character database
-lib/unicore/lib/In/4_1.pl Unicode character database
-lib/unicore/lib/In/5_0.pl Unicode character database
-lib/unicore/lib/In/5_1.pl Unicode character database
-lib/unicore/lib/In/5_2.pl Unicode character database
-lib/unicore/lib/In/6_0.pl Unicode character database
-lib/unicore/lib/In/6_1.pl Unicode character database
-lib/unicore/lib/In/6_2.pl Unicode character database
-lib/unicore/lib/In/6_3.pl Unicode character database
-lib/unicore/lib/In/7_0.pl Unicode character database
-lib/unicore/lib/In/8_0.pl Unicode character database
-lib/unicore/lib/InPC/Bottom.pl Unicode character database
-lib/unicore/lib/InPC/LeftAndR.pl Unicode character database
-lib/unicore/lib/InPC/Left.pl Unicode character database
-lib/unicore/lib/InPC/NA.pl Unicode character database
-lib/unicore/lib/InPC/Overstru.pl Unicode character database
-lib/unicore/lib/InPC/Right.pl Unicode character database
-lib/unicore/lib/InPC/TopAndBo.pl Unicode character database
-lib/unicore/lib/InPC/TopAndL2.pl Unicode character database
-lib/unicore/lib/InPC/TopAndLe.pl Unicode character database
-lib/unicore/lib/InPC/TopAndRi.pl Unicode character database
-lib/unicore/lib/InPC/Top.pl Unicode character database
-lib/unicore/lib/InPC/VisualOr.pl Unicode character database
-lib/unicore/lib/InSC/Avagraha.pl Unicode character database
-lib/unicore/lib/InSC/Bindu.pl Unicode character database
-lib/unicore/lib/InSC/Cantilla.pl Unicode character database
-lib/unicore/lib/InSC/Consona2.pl Unicode character database
-lib/unicore/lib/InSC/Consona3.pl Unicode character database
-lib/unicore/lib/InSC/Consona4.pl Unicode character database
-lib/unicore/lib/InSC/Consona5.pl Unicode character database
-lib/unicore/lib/InSC/Consona6.pl Unicode character database
-lib/unicore/lib/InSC/Consonan.pl Unicode character database
-lib/unicore/lib/InSC/Invisibl.pl Unicode character database
-lib/unicore/lib/InSC/Nukta.pl Unicode character database
-lib/unicore/lib/InSC/Number.pl Unicode character database
-lib/unicore/lib/InSC/Other.pl Unicode character database
-lib/unicore/lib/InSC/PureKill.pl Unicode character database
-lib/unicore/lib/InSC/Syllable.pl Unicode character database
-lib/unicore/lib/InSC/ToneMark.pl Unicode character database
-lib/unicore/lib/InSC/Virama.pl Unicode character database
-lib/unicore/lib/InSC/Visarga.pl Unicode character database
-lib/unicore/lib/InSC/VowelDep.pl Unicode character database
-lib/unicore/lib/InSC/VowelInd.pl Unicode character database
-lib/unicore/lib/InSC/Vowel.pl Unicode character database
-lib/unicore/lib/Jg/Ain.pl Unicode character database
-lib/unicore/lib/Jg/Alef.pl Unicode character database
-lib/unicore/lib/Jg/Beh.pl Unicode character database
-lib/unicore/lib/Jg/Dal.pl Unicode character database
-lib/unicore/lib/Jg/FarsiYeh.pl Unicode character database
-lib/unicore/lib/Jg/Feh.pl Unicode character database
-lib/unicore/lib/Jg/Gaf.pl Unicode character database
-lib/unicore/lib/Jg/Hah.pl Unicode character database
-lib/unicore/lib/Jg/Kaf.pl Unicode character database
-lib/unicore/lib/Jg/Lam.pl Unicode character database
-lib/unicore/lib/Jg/NoJoinin.pl Unicode character database
-lib/unicore/lib/Jg/Qaf.pl Unicode character database
-lib/unicore/lib/Jg/Reh.pl Unicode character database
-lib/unicore/lib/Jg/Sad.pl Unicode character database
-lib/unicore/lib/Jg/Seen.pl Unicode character database
-lib/unicore/lib/Jg/Waw.pl Unicode character database
-lib/unicore/lib/Jg/Yeh.pl Unicode character database
-lib/unicore/lib/Jt/C.pl Unicode character database
-lib/unicore/lib/Jt/D.pl Unicode character database
-lib/unicore/lib/Jt/R.pl Unicode character database
-lib/unicore/lib/Jt/T.pl Unicode character database
-lib/unicore/lib/Jt/U.pl Unicode character database
-lib/unicore/lib/Lb/AI.pl Unicode character database
-lib/unicore/lib/Lb/AL.pl Unicode character database
-lib/unicore/lib/Lb/BA.pl Unicode character database
-lib/unicore/lib/Lb/BB.pl Unicode character database
-lib/unicore/lib/Lb/CJ.pl Unicode character database
-lib/unicore/lib/Lb/CL.pl Unicode character database
-lib/unicore/lib/Lb/CM.pl Unicode character database
-lib/unicore/lib/Lb/EX.pl Unicode character database
-lib/unicore/lib/Lb/GL.pl Unicode character database
-lib/unicore/lib/Lb/ID.pl Unicode character database
-lib/unicore/lib/Lb/IN.pl Unicode character database
-lib/unicore/lib/Lb/IS.pl Unicode character database
-lib/unicore/lib/Lb/NS.pl Unicode character database
-lib/unicore/lib/Lb/OP.pl Unicode character database
-lib/unicore/lib/Lb/PO.pl Unicode character database
-lib/unicore/lib/Lb/PR.pl Unicode character database
-lib/unicore/lib/Lb/QU.pl Unicode character database
-lib/unicore/lib/Lb/SA.pl Unicode character database
-lib/unicore/lib/Lb/XX.pl Unicode character database
-lib/unicore/lib/Lower/Y.pl Unicode character database
-lib/unicore/lib/Math/Y.pl Unicode character database
-lib/unicore/lib/NFCQC/M.pl Unicode character database
-lib/unicore/lib/NFCQC/Y.pl Unicode character database
-lib/unicore/lib/NFDQC/N.pl Unicode character database
-lib/unicore/lib/NFDQC/Y.pl Unicode character database
-lib/unicore/lib/NFKCQC/N.pl Unicode character database
-lib/unicore/lib/NFKCQC/Y.pl Unicode character database
-lib/unicore/lib/NFKDQC/N.pl Unicode character database
-lib/unicore/lib/NFKDQC/Y.pl Unicode character database
-lib/unicore/lib/Nt/Di.pl Unicode character database
-lib/unicore/lib/Nt/None.pl Unicode character database
-lib/unicore/lib/Nt/Nu.pl Unicode character database
-lib/unicore/lib/Nv/0.pl Unicode character database
-lib/unicore/lib/Nv/10000.pl Unicode character database
-lib/unicore/lib/Nv/1000.pl Unicode character database
-lib/unicore/lib/Nv/100.pl Unicode character database
-lib/unicore/lib/Nv/10.pl Unicode character database
-lib/unicore/lib/Nv/11.pl Unicode character database
-lib/unicore/lib/Nv/12.pl Unicode character database
-lib/unicore/lib/Nv/1_2.pl Unicode character database
-lib/unicore/lib/Nv/13.pl Unicode character database
-lib/unicore/lib/Nv/1_3.pl Unicode character database
-lib/unicore/lib/Nv/14.pl Unicode character database
-lib/unicore/lib/Nv/1_4.pl Unicode character database
-lib/unicore/lib/Nv/15.pl Unicode character database
-lib/unicore/lib/Nv/16.pl Unicode character database
-lib/unicore/lib/Nv/17.pl Unicode character database
-lib/unicore/lib/Nv/18.pl Unicode character database
-lib/unicore/lib/Nv/1_8.pl Unicode character database
-lib/unicore/lib/Nv/19.pl Unicode character database
-lib/unicore/lib/Nv/1.pl Unicode character database
-lib/unicore/lib/Nv/200.pl Unicode character database
-lib/unicore/lib/Nv/20.pl Unicode character database
-lib/unicore/lib/Nv/2_3.pl Unicode character database
-lib/unicore/lib/Nv/2.pl Unicode character database
-lib/unicore/lib/Nv/300.pl Unicode character database
-lib/unicore/lib/Nv/30.pl Unicode character database
-lib/unicore/lib/Nv/3_4.pl Unicode character database
-lib/unicore/lib/Nv/3.pl Unicode character database
-lib/unicore/lib/Nv/400.pl Unicode character database
-lib/unicore/lib/Nv/40.pl Unicode character database
-lib/unicore/lib/Nv/4.pl Unicode character database
-lib/unicore/lib/Nv/50000.pl Unicode character database
-lib/unicore/lib/Nv/5000.pl Unicode character database
-lib/unicore/lib/Nv/500.pl Unicode character database
-lib/unicore/lib/Nv/50.pl Unicode character database
-lib/unicore/lib/Nv/5.pl Unicode character database
-lib/unicore/lib/Nv/600.pl Unicode character database
-lib/unicore/lib/Nv/60.pl Unicode character database
-lib/unicore/lib/Nv/6.pl Unicode character database
-lib/unicore/lib/Nv/700.pl Unicode character database
-lib/unicore/lib/Nv/70.pl Unicode character database
-lib/unicore/lib/Nv/7.pl Unicode character database
-lib/unicore/lib/Nv/800.pl Unicode character database
-lib/unicore/lib/Nv/80.pl Unicode character database
-lib/unicore/lib/Nv/8.pl Unicode character database
-lib/unicore/lib/Nv/900.pl Unicode character database
-lib/unicore/lib/Nv/90.pl Unicode character database
-lib/unicore/lib/Nv/9.pl Unicode character database
-lib/unicore/lib/PatSyn/Y.pl Unicode character database
-lib/unicore/lib/Perl/Alnum.pl Unicode character database
-lib/unicore/lib/Perl/Assigned.pl Unicode character database
-lib/unicore/lib/Perl/Blank.pl Unicode character database
-lib/unicore/lib/Perl/Graph.pl Unicode character database
-lib/unicore/lib/Perl/_PerlAny.pl Unicode character database
-lib/unicore/lib/Perl/_PerlCh2.pl Unicode character database
-lib/unicore/lib/Perl/_PerlCha.pl Unicode character database
-lib/unicore/lib/Perl/_PerlFol.pl Unicode character database
-lib/unicore/lib/Perl/_PerlIDC.pl Unicode character database
-lib/unicore/lib/Perl/_PerlIDS.pl Unicode character database
-lib/unicore/lib/Perl/_PerlNch.pl Unicode character database
-lib/unicore/lib/Perl/_PerlPat.pl Unicode character database
-lib/unicore/lib/Perl/_PerlPr2.pl Unicode character database
-lib/unicore/lib/Perl/_PerlPro.pl Unicode character database
-lib/unicore/lib/Perl/_PerlQuo.pl Unicode character database
-lib/unicore/lib/Perl/PerlWord.pl Unicode character database
-lib/unicore/lib/Perl/PosixPun.pl Unicode character database
-lib/unicore/lib/Perl/Print.pl Unicode character database
-lib/unicore/lib/Perl/SpacePer.pl Unicode character database
-lib/unicore/lib/Perl/Title.pl Unicode character database
-lib/unicore/lib/Perl/Word.pl Unicode character database
-lib/unicore/lib/Perl/XPosixPu.pl Unicode character database
-lib/unicore/lib/QMark/Y.pl Unicode character database
-lib/unicore/lib/SB/AT.pl Unicode character database
-lib/unicore/lib/SB/CL.pl Unicode character database
-lib/unicore/lib/SB/EX.pl Unicode character database
-lib/unicore/lib/SB/FO.pl Unicode character database
-lib/unicore/lib/SB/LE.pl Unicode character database
-lib/unicore/lib/SB/LO.pl Unicode character database
-lib/unicore/lib/SB/NU.pl Unicode character database
-lib/unicore/lib/SB/SC.pl Unicode character database
-lib/unicore/lib/SB/Sp.pl Unicode character database
-lib/unicore/lib/SB/ST.pl Unicode character database
-lib/unicore/lib/SB/UP.pl Unicode character database
-lib/unicore/lib/SB/XX.pl Unicode character database
-lib/unicore/lib/Sc/Arab.pl Unicode character database
-lib/unicore/lib/Sc/Armn.pl Unicode character database
-lib/unicore/lib/Sc/Beng.pl Unicode character database
-lib/unicore/lib/Sc/Cham.pl Unicode character database
-lib/unicore/lib/Sc/Cprt.pl Unicode character database
-lib/unicore/lib/Sc/Cyrl.pl Unicode character database
-lib/unicore/lib/Sc/Deva.pl Unicode character database
-lib/unicore/lib/Sc/Dupl.pl Unicode character database
-lib/unicore/lib/Sc/Ethi.pl Unicode character database
-lib/unicore/lib/Sc/Geor.pl Unicode character database
-lib/unicore/lib/Sc/Gran.pl Unicode character database
-lib/unicore/lib/Sc/Grek.pl Unicode character database
-lib/unicore/lib/Sc/Gujr.pl Unicode character database
-lib/unicore/lib/Sc/Guru.pl Unicode character database
-lib/unicore/lib/Sc/Hang.pl Unicode character database
-lib/unicore/lib/Sc/Han.pl Unicode character database
-lib/unicore/lib/Sc/Hebr.pl Unicode character database
-lib/unicore/lib/Sc/Hira.pl Unicode character database
-lib/unicore/lib/Sc/Hmng.pl Unicode character database
-lib/unicore/lib/Sc/Kana.pl Unicode character database
-lib/unicore/lib/Sc/Khar.pl Unicode character database
-lib/unicore/lib/Sc/Khmr.pl Unicode character database
-lib/unicore/lib/Sc/Knda.pl Unicode character database
-lib/unicore/lib/Sc/Lana.pl Unicode character database
-lib/unicore/lib/Sc/Lao.pl Unicode character database
-lib/unicore/lib/Sc/Latn.pl Unicode character database
-lib/unicore/lib/Sc/Limb.pl Unicode character database
-lib/unicore/lib/Sc/Linb.pl Unicode character database
-lib/unicore/lib/Sc/Mlym.pl Unicode character database
-lib/unicore/lib/Sc/Mong.pl Unicode character database
-lib/unicore/lib/Sc/Mult.pl Unicode character database
-lib/unicore/lib/Sc/Orya.pl Unicode character database
-lib/unicore/lib/Sc/Sinh.pl Unicode character database
-lib/unicore/lib/Sc/Talu.pl Unicode character database
-lib/unicore/lib/Sc/Taml.pl Unicode character database
-lib/unicore/lib/Sc/Telu.pl Unicode character database
-lib/unicore/lib/Sc/Tibt.pl Unicode character database
-lib/unicore/lib/Scx/Arab.pl Unicode character database
-lib/unicore/lib/Scx/Armn.pl Unicode character database
-lib/unicore/lib/Scx/Beng.pl Unicode character database
-lib/unicore/lib/Scx/Bopo.pl Unicode character database
-lib/unicore/lib/Scx/Cakm.pl Unicode character database
-lib/unicore/lib/Scx/Copt.pl Unicode character database
-lib/unicore/lib/Scx/Cprt.pl Unicode character database
-lib/unicore/lib/Scx/Cyrl.pl Unicode character database
-lib/unicore/lib/Scx/Deva.pl Unicode character database
-lib/unicore/lib/Scx/Dupl.pl Unicode character database
-lib/unicore/lib/Scx/Geor.pl Unicode character database
-lib/unicore/lib/Scx/Glag.pl Unicode character database
-lib/unicore/lib/Scx/Gran.pl Unicode character database
-lib/unicore/lib/Scx/Grek.pl Unicode character database
-lib/unicore/lib/Scx/Gujr.pl Unicode character database
-lib/unicore/lib/Scx/Guru.pl Unicode character database
-lib/unicore/lib/Scx/Hang.pl Unicode character database
-lib/unicore/lib/Scx/Han.pl Unicode character database
-lib/unicore/lib/Scx/Hira.pl Unicode character database
-lib/unicore/lib/Scx/Kana.pl Unicode character database
-lib/unicore/lib/Scx/Knda.pl Unicode character database
-lib/unicore/lib/Scx/Latn.pl Unicode character database
-lib/unicore/lib/Scx/Limb.pl Unicode character database
-lib/unicore/lib/Scx/Linb.pl Unicode character database
-lib/unicore/lib/Scx/Mlym.pl Unicode character database
-lib/unicore/lib/Scx/Mong.pl Unicode character database
-lib/unicore/lib/Scx/Mult.pl Unicode character database
-lib/unicore/lib/Scx/Mymr.pl Unicode character database
-lib/unicore/lib/Scx/Orya.pl Unicode character database
-lib/unicore/lib/Scx/Phlp.pl Unicode character database
-lib/unicore/lib/Scx/Shrd.pl Unicode character database
-lib/unicore/lib/Scx/Sind.pl Unicode character database
-lib/unicore/lib/Scx/Sinh.pl Unicode character database
-lib/unicore/lib/Sc/Xsux.pl Unicode character database
-lib/unicore/lib/Scx/Syrc.pl Unicode character database
-lib/unicore/lib/Scx/Tagb.pl Unicode character database
-lib/unicore/lib/Scx/Takr.pl Unicode character database
-lib/unicore/lib/Scx/Taml.pl Unicode character database
-lib/unicore/lib/Scx/Telu.pl Unicode character database
-lib/unicore/lib/Scx/Thaa.pl Unicode character database
-lib/unicore/lib/Scx/Tirh.pl Unicode character database
-lib/unicore/lib/Scx/Yi.pl Unicode character database
-lib/unicore/lib/Scx/Zinh.pl Unicode character database
-lib/unicore/lib/Scx/Zyyy.pl Unicode character database
-lib/unicore/lib/Sc/Zinh.pl Unicode character database
-lib/unicore/lib/Sc/Zyyy.pl Unicode character database
-lib/unicore/lib/Sc/Zzzz.pl Unicode character database
-lib/unicore/lib/SD/Y.pl Unicode character database
-lib/unicore/lib/STerm/Y.pl Unicode character database
-lib/unicore/lib/Term/Y.pl Unicode character database
-lib/unicore/lib/UIdeo/Y.pl Unicode character database
-lib/unicore/lib/Upper/Y.pl Unicode character database
-lib/unicore/lib/WB/EX.pl Unicode character database
-lib/unicore/lib/WB/FO.pl Unicode character database
-lib/unicore/lib/WB/HL.pl Unicode character database
-lib/unicore/lib/WB/KA.pl Unicode character database
-lib/unicore/lib/WB/LE.pl Unicode character database
-lib/unicore/lib/WB/MB.pl Unicode character database
-lib/unicore/lib/WB/ML.pl Unicode character database
-lib/unicore/lib/WB/MN.pl Unicode character database
-lib/unicore/lib/WB/NU.pl Unicode character database
-lib/unicore/lib/WB/XX.pl Unicode character database
-lib/unicore/lib/XIDC/Y.pl Unicode character database
-lib/unicore/lib/XIDS/Y.pl Unicode character database
lib/unicore/LineBreak.txt Unicode character database
lib/unicore/Makefile Unicode character database
lib/unicore/mktables Unicode character database generator
-lib/unicore/mktables.lst Unicode character database
lib/unicore/NameAliases.txt Unicode character database
lib/unicore/NamedSequences.txt Unicode character database
lib/unicore/NamedSqProv.txt Unicode character database
-lib/unicore/Name.pl Unicode character database
-lib/unicore/Name.pm Unicode character database
lib/unicore/NamesList.txt Unicode character database
-lib/unicore/NormalizationCorrections.txt Unicode character database
+lib/unicore/NormalizationCorrections.txt Unicode character database
lib/unicore/PropertyAliases.txt Unicode character database
lib/unicore/PropList.txt Unicode character database
-lib/unicore/PropValueAliases.txt Unicode character database
+lib/unicore/PropValueAliases.txt Unicode character database
lib/unicore/README.perl Unicode character database
lib/unicore/ReadMe.txt Unicode character database info
-lib/unicore/ScriptExtensions.txt Unicode character database
+lib/unicore/ScriptExtensions.txt Unicode character database
lib/unicore/Scripts.txt Unicode character database
lib/unicore/SpecialCasing.txt Unicode character database
-lib/unicore/StandardizedVariants.txt Unicode character database
-lib/unicore/TestProp.pl Unicode character database
-lib/unicore/To/Age.pl Unicode character database
-lib/unicore/To/Bc.pl Unicode character database
-lib/unicore/To/Bmg.pl Unicode character database
-lib/unicore/To/Bpb.pl Unicode character database
-lib/unicore/To/Bpt.pl Unicode character database
-lib/unicore/To/Cf.pl Unicode character database
-lib/unicore/To/Digit.pl Unicode character database
-lib/unicore/To/Ea.pl Unicode character database
-lib/unicore/To/Fold.pl Unicode character database
-lib/unicore/To/GCB.pl Unicode character database
-lib/unicore/To/Gc.pl Unicode character database
-lib/unicore/To/Hst.pl Unicode character database
-lib/unicore/To/InPC.pl Unicode character database
-lib/unicore/To/InSC.pl Unicode character database
-lib/unicore/To/Isc.pl Unicode character database
-lib/unicore/To/Jg.pl Unicode character database
-lib/unicore/To/Jt.pl Unicode character database
-lib/unicore/To/Lb.pl Unicode character database
-lib/unicore/To/Lc.pl Unicode character database
-lib/unicore/To/Lower.pl Unicode character database
-lib/unicore/To/Na1.pl Unicode character database
-lib/unicore/To/NameAlia.pl Unicode character database
-lib/unicore/To/NFCQC.pl Unicode character database
-lib/unicore/To/NFDQC.pl Unicode character database
-lib/unicore/To/NFKCCF.pl Unicode character database
-lib/unicore/To/NFKCQC.pl Unicode character database
-lib/unicore/To/NFKDQC.pl Unicode character database
-lib/unicore/To/Nt.pl Unicode character database
-lib/unicore/To/Nv.pl Unicode character database
-lib/unicore/To/PerlDeci.pl Unicode character database
-lib/unicore/To/_PerlLB.pl Unicode character database
-lib/unicore/To/_PerlWB.pl Unicode character database
-lib/unicore/To/SB.pl Unicode character database
-lib/unicore/To/Sc.pl Unicode character database
-lib/unicore/To/Scx.pl Unicode character database
-lib/unicore/To/Tc.pl Unicode character database
-lib/unicore/To/Title.pl Unicode character database
-lib/unicore/To/Uc.pl Unicode character database
-lib/unicore/To/Upper.pl Unicode character database
-lib/unicore/To/WB.pl Unicode character database
-lib/unicore/UCD.pl Unicode character database
+lib/unicore/StandardizedVariants.txt Unicode character database
lib/unicore/UnicodeData.txt Unicode character database
lib/unicore/version The version of the Unicode
lib/UNIVERSAL.pm Base class for ALL classes
@@ -5127,7 +4648,9 @@ pod/perl5203delta.pod Perl changes in version 5.20.3
pod/perl5220delta.pod Perl changes in version 5.22.0
pod/perl5221delta.pod Perl changes in version 5.22.1
pod/perl5222delta.pod Perl changes in version 5.22.2
+pod/perl5223delta.pod Perl changes in version 5.22.3
pod/perl5240delta.pod Perl changes in version 5.24.0
+pod/perl5241delta.pod Perl changes in version 5.24.1
pod/perl561delta.pod Perl changes in version 5.6.1
pod/perl56delta.pod Perl changes in version 5.6
pod/perl581delta.pod Perl changes in version 5.8.1
@@ -5226,7 +4749,6 @@ pod/perlunicode.pod Perl Unicode support
pod/perlunicook.pod Perl Unicode cookbook
pod/perlunifaq.pod Perl Unicode FAQ
pod/perluniintro.pod Perl Unicode introduction
-pod/perluniprops.pod Index of Unicode properties in Perl
pod/perlunitut.pod Perl Unicode tutorial
pod/perlutil.pod utilities packaged with the Perl distribution
pod/perlvar.pod Perl predefined variables
diff --git a/gnu/usr.bin/perl/META.json b/gnu/usr.bin/perl/META.json
index 86fa43ebdf2..97ef248ca26 100644
--- a/gnu/usr.bin/perl/META.json
+++ b/gnu/usr.bin/perl/META.json
@@ -124,6 +124,6 @@
"url" : "http://perl5.git.perl.org/"
}
},
- "version" : "5.024001",
+ "version" : "5.024002",
"x_serialization_backend" : "JSON::PP version 2.27300_01"
}
diff --git a/gnu/usr.bin/perl/META.yml b/gnu/usr.bin/perl/META.yml
index 32850d38829..797c6d0b04a 100644
--- a/gnu/usr.bin/perl/META.yml
+++ b/gnu/usr.bin/perl/META.yml
@@ -111,5 +111,5 @@ resources:
homepage: http://www.perl.org/
license: http://dev.perl.org/licenses/
repository: http://perl5.git.perl.org/
-version: '5.024001'
+version: '5.024002'
x_serialization_backend: 'CPAN::Meta::YAML version 0.018'
diff --git a/gnu/usr.bin/perl/Makefile.SH b/gnu/usr.bin/perl/Makefile.SH
index be74c3668a9..811dfe9e033 100644
--- a/gnu/usr.bin/perl/Makefile.SH
+++ b/gnu/usr.bin/perl/Makefile.SH
@@ -464,7 +464,7 @@ shextract=`SH_to_target $SH`
## In the following dollars and backticks do not need the extra backslash.
$spitshell >>$Makefile <<!GROK!THIS!
-private = preplibrary \$(CONFIGPM) \$(CONFIGPOD) lib/buildcustomize.pl
+private = preplibrary \$(CONFIGPM) \$(CONFIGPOD) git_version.h lib/buildcustomize.pl
# Files to be built with variable substitution before miniperl
# is available.
@@ -522,7 +522,7 @@ miniperl_objs = $(miniperl_objs_nodt) $(DTRACE_MINI_O)
perllib_objs = $(perllib_objs_nodt) $(DTRACE_PERLLIB_O)
perlmain_objs = perlmain$(OBJ_EXT) $(DTRACE_MAIN_O)
-perltoc_pod_prereqs = extra.pods pod/perl5241delta.pod pod/perlapi.pod pod/perlintern.pod pod/perlmodlib.pod
+perltoc_pod_prereqs = extra.pods pod/perl5242delta.pod pod/perlapi.pod pod/perlintern.pod pod/perlmodlib.pod pod/perluniprops.pod
generated_pods = pod/perltoc.pod $(perltoc_pod_prereqs)
generated_headers = uudmap.h bitcount.h mg_data.h
@@ -607,16 +607,15 @@ $(MANIFEST_SRT): MANIFEST $(PERL_EXE)
.PHONY: all utilities
-# OpenBSD uses pre-generated lib/Config_git.pl and git_version.h files
# Both git_version.h and lib/Config_git.pl are built
# by make_patchnum.pl.
-#git_version.h: lib/Config_git.pl
-#
-#lib/Config_git.pl: $(MINIPERL_EXE) make_patchnum.pl
-# $(MINIPERL) make_patchnum.pl
-#
-## make sure that we recompile perl.c if the git version changes
-#perl$(OBJ_EXT): git_version.h
+git_version.h: lib/Config_git.pl
+
+lib/Config_git.pl: $(MINIPERL_EXE) make_patchnum.pl
+ $(MINIPERL) make_patchnum.pl
+
+# make sure that we recompile perl.c if the git version changes
+perl$(OBJ_EXT): git_version.h
!NO!SUBS!
@@ -782,11 +781,11 @@ CCDLFLAGS = `echo $ccdlflags|sed -e 's@-bE:.*/perl\.exp@-bE:perl.exp@'`
LIBPERL_NONSHR = libperl_nonshr$(LIB_EXT)
MINIPERL_NONSHR = miniperl_nonshr$(EXE_EXT)
-#$(LIBPERL_NONSHR): $(perllib_objs)
-# $(RMS) $(LIBPERL_NONSHR)
-# $(AR) rc $(LIBPERL_NONSHR) $(perllib_objs)
+$(LIBPERL_NONSHR): $(perllib_objs)
+ $(RMS) $(LIBPERL_NONSHR)
+ $(AR) rc $(LIBPERL_NONSHR) $(perllib_objs)
-$(MINIPERL_NONSHR): miniperlmain$(OBJ_EXT) opmini$(OBJ_EXT) perlmini$(OBJ_EXT)
+$(MINIPERL_NONSHR): $(LIBPERL_NONSHR) miniperlmain$(OBJ_EXT) opmini$(OBJ_EXT) perlmini$(OBJ_EXT)
$(CC) $(LDFLAGS) -o $(MINIPERL_NONSHR) miniperlmain$(OBJ_EXT) \
opmini$(OBJ_EXT) perlmini$(OBJ_EXT) $(LIBPERL_NONSHR) $(LIBS)
@@ -873,33 +872,33 @@ $(DTRACE_MAIN_O): perldtrace.d perlmain$(OBJ_EXT)
;;
esac
$spitshell >>$Makefile <<'!NO!SUBS!'
-#$(LIBPERL): $& $(perllib_objs) $(DYNALOADER) $(LIBPERLEXPORT)
-#!NO!SUBS!
-# case "$useshrplib" in
-# true)
-# $spitshell >>$Makefile <<'!NO!SUBS!'
-# rm -f $@
-# $(LD) -o $@ $(SHRPLDFLAGS) $(perllib_objs) $(DYNALOADER) $(libs)
-#!NO!SUBS!
-# case "$osname" in
-# aix)
-# $spitshell >>$Makefile <<'!NO!SUBS!'
-# rm -f libperl$(OBJ_EXT)
-# mv $@ libperl$(OBJ_EXT)
-# $(AR) qv $(LIBPERL) libperl$(OBJ_EXT)
-#!NO!SUBS!
-# ;;
-# esac
-# ;;
-# *)
-# $spitshell >>$Makefile <<'!NO!SUBS!'
-# rm -f $(LIBPERL)
-# $(AR) rc $(LIBPERL) $(perllib_objs) $(DYNALOADER)
-# @$(ranlib) $(LIBPERL)
-#!NO!SUBS!
-# ;;
-# esac
-# $spitshell >>$Makefile <<'!NO!SUBS!'
+$(LIBPERL): $& $(perllib_objs) $(DYNALOADER) $(LIBPERLEXPORT)
+!NO!SUBS!
+ case "$useshrplib" in
+ true)
+ $spitshell >>$Makefile <<'!NO!SUBS!'
+ rm -f $@
+ $(LD) -o $@ $(SHRPLDFLAGS) $(perllib_objs) $(DYNALOADER) $(libs)
+!NO!SUBS!
+ case "$osname" in
+ aix)
+ $spitshell >>$Makefile <<'!NO!SUBS!'
+ rm -f libperl$(OBJ_EXT)
+ mv $@ libperl$(OBJ_EXT)
+ $(AR) qv $(LIBPERL) libperl$(OBJ_EXT)
+!NO!SUBS!
+ ;;
+ esac
+ ;;
+ *)
+ $spitshell >>$Makefile <<'!NO!SUBS!'
+ rm -f $(LIBPERL)
+ $(AR) rc $(LIBPERL) $(perllib_objs) $(DYNALOADER)
+ @$(ranlib) $(LIBPERL)
+!NO!SUBS!
+ ;;
+ esac
+ $spitshell >>$Makefile <<'!NO!SUBS!'
# How to build executables.
@@ -964,6 +963,10 @@ NAMESPACEFLAGS = -force_flat_namespace
esac
$spitshell >>$Makefile <<'!NO!SUBS!'
lib/buildcustomize.pl: $& $(miniperl_objs) write_buildcustomize.pl
+ -@rm -f miniperl.xok
+ $(CC) $(CLDFLAGS) $(NAMESPACEFLAGS) -o $(MINIPERL_EXE) \
+ $(miniperl_objs) $(libs)
+ $(LDLIBPTH) ./miniperl$(HOST_EXE_EXT) -w -Ilib -Idist/Exporter/lib -MExporter -e '<?>' || sh -c 'echo >&2 Failed to build miniperl. Please run make minitest; exit 1'
$(MINIPERL) -f write_buildcustomize.pl
!NO!SUBS!
;;
@@ -1063,7 +1066,10 @@ $(CONFIGPOD): config.sh $(MINIPERL_EXE) configpm Porting/Glossary lib/Config_git
unidatafiles $(unidatafiles) pod/perluniprops.pod: uni.data
uni.data: $(MINIPERL_EXE) $(CONFIGPM) lib/unicore/mktables $(nonxs_ext)
- touch uni.data
+ $(MINIPERL) lib/unicore/mktables -C lib/unicore -P pod -maketest -makelist -p
+# Commented out so always runs, mktables looks at far more files than we
+# can in this makefile to decide if needs to run or not
+# touch uni.data
# $(PERL_EXE) and ext because pod_lib.pl needs Digest::MD5
# But also this ensures that all extensions are built before we try to scan
@@ -1079,9 +1085,9 @@ pod/perlintern.pod: $(MINIPERL_EXE) autodoc.pl embed.fnc
pod/perlmodlib.pod: $(MINIPERL_EXE) pod/perlmodlib.PL MANIFEST
$(MINIPERL) pod/perlmodlib.PL -q
-pod/perl5241delta.pod: pod/perldelta.pod
- $(RMS) pod/perl5241delta.pod
- $(LNS) perldelta.pod pod/perl5241delta.pod
+pod/perl5242delta.pod: pod/perldelta.pod
+ $(RMS) pod/perl5242delta.pod
+ $(LNS) perldelta.pod pod/perl5242delta.pod
extra.pods: $(MINIPERL_EXE)
-@test ! -f extra.pods || rm -f `cat extra.pods`
@@ -1327,7 +1333,7 @@ _mopup:
-rm -f *perl.xok
-rm -f cygwin.c libperl*.def libperl*.dll cygperl*.dll *.exe.stackdump
-rm -f $(PERL_EXE) $(MINIPERL_EXE) $(LIBPERL) libperl.* microperl
- -rm -f $(DTRACE_H)
+ -rm -f config.arch config.over $(DTRACE_H)
_cleaner1:
-cd os2; rm -f Makefile
@@ -1379,18 +1385,18 @@ _cleaner2:
-rmdir lib/Sys/Syslog lib/Sys lib/Sub lib/Search lib/Scalar
-rmdir lib/Pod/Text lib/Pod/Simple lib/Pod/Perldoc lib/PerlIO/via
-rmdir lib/PerlIO lib/Perl lib/Parse/CPAN lib/Parse lib/Params
- -rmdir lib/OpenBSD lib/Net/FTP lib/Module/Load lib/Module/CoreList
- -rmdir lib/Module lib/Memoize lib/Math/BigInt lib/Math/BigFloat
- -rmdir lib/Math lib/MIME lib/Locale/Maketext lib/Locale/Codes
- -rmdir lib/Locale lib/List/Util lib/List lib/JSON/PP lib/JSON lib/IPC
- -rmdir lib/IO/Uncompress/Adapter lib/IO/Uncompress lib/IO/Socket
- -rmdir lib/IO/Compress/Zlib lib/IO/Compress/Zip lib/IO/Compress/Gzip
- -rmdir lib/IO/Compress/Base lib/IO/Compress/Adapter lib/IO/Compress
- -rmdir lib/IO lib/I18N/LangTags lib/I18N lib/Hash/Util lib/Hash
- -rmdir lib/HTTP lib/Filter/Util lib/Filter lib/File/Spec
- -rmdir lib/ExtUtils/Typemaps lib/ExtUtils/ParseXS
- -rmdir lib/ExtUtils/MakeMaker/version lib/ExtUtils/MakeMaker
- -rmdir lib/ExtUtils/Liblist lib/ExtUtils/Constant lib/ExtUtils/Command
+ -rmdir lib/Net/FTP lib/Module/Load lib/Module/CoreList lib/Module
+ -rmdir lib/Memoize lib/Math/BigInt lib/Math/BigFloat lib/Math lib/MIME
+ -rmdir lib/Locale/Maketext lib/Locale/Codes lib/Locale lib/List/Util
+ -rmdir lib/List lib/JSON/PP lib/JSON lib/IPC lib/IO/Uncompress/Adapter
+ -rmdir lib/IO/Uncompress lib/IO/Socket lib/IO/Compress/Zlib
+ -rmdir lib/IO/Compress/Zip lib/IO/Compress/Gzip lib/IO/Compress/Base
+ -rmdir lib/IO/Compress/Adapter lib/IO/Compress lib/IO
+ -rmdir lib/I18N/LangTags lib/I18N lib/Hash/Util lib/Hash lib/HTTP
+ -rmdir lib/Filter/Util lib/Filter lib/File/Spec lib/ExtUtils/Typemaps
+ -rmdir lib/ExtUtils/ParseXS lib/ExtUtils/MakeMaker/version
+ -rmdir lib/ExtUtils/MakeMaker lib/ExtUtils/Liblist
+ -rmdir lib/ExtUtils/Constant lib/ExtUtils/Command
-rmdir lib/ExtUtils/CBuilder/Platform/Windows
-rmdir lib/ExtUtils/CBuilder/Platform lib/ExtUtils/CBuilder
-rmdir lib/Exporter lib/Encode/Unicode lib/Encode/MIME/Header
diff --git a/gnu/usr.bin/perl/NetWare/Makefile b/gnu/usr.bin/perl/NetWare/Makefile
index 33691bb9d39..488b58cfa20 100644
--- a/gnu/usr.bin/perl/NetWare/Makefile
+++ b/gnu/usr.bin/perl/NetWare/Makefile
@@ -86,7 +86,7 @@ NLM_VERSION = 3,20,0
# Here comes the CW tools - TO BE FILLED TO BUILD WITH CW -
-MODULE_DESC = "Perl 5.24.1 for NetWare"
+MODULE_DESC = "Perl 5.24.2 for NetWare"
CCTYPE = CodeWarrior
C_COMPILER = mwccnlm -c
CPP_COMPILER = mwccnlm
@@ -462,7 +462,7 @@ INST_NW_TOP2 = $(INST_NW_DRV)\perl
# versioned installation can be obtained by setting INST_TOP above to a
# path that includes an arbitrary version string.
#
-INST_VER = \5.24.1
+INST_VER = \5.24.2
#
# Comment this out if you DON'T want your perl installation to have
diff --git a/gnu/usr.bin/perl/NetWare/config_H.wc b/gnu/usr.bin/perl/NetWare/config_H.wc
index 30f5ff5241e..686cd48a333 100644
--- a/gnu/usr.bin/perl/NetWare/config_H.wc
+++ b/gnu/usr.bin/perl/NetWare/config_H.wc
@@ -1042,7 +1042,7 @@
* This symbol contains the ~name expanded version of ARCHLIB, to be used
* in programs that are not prepared to deal with ~ expansion at run-time.
*/
-#define ARCHLIB "c:\\perl\\5.24.1\\lib\\NetWare-x86-multi-thread" /**/
+#define ARCHLIB "c:\\perl\\5.24.2\\lib\\NetWare-x86-multi-thread" /**/
/*#define ARCHLIB_EXP "" /**/
/* ARCHNAME:
@@ -1073,8 +1073,8 @@
* This symbol is the filename expanded version of the BIN symbol, for
* programs that do not want to deal with that at run-time.
*/
-#define BIN "c:\\perl\\5.24.1\\bin\\NetWare-x86-multi-thread" /**/
-#define BIN_EXP "c:\\perl\\5.24.1\\bin\\NetWare-x86-multi-thread" /**/
+#define BIN "c:\\perl\\5.24.2\\bin\\NetWare-x86-multi-thread" /**/
+#define BIN_EXP "c:\\perl\\5.24.2\\bin\\NetWare-x86-multi-thread" /**/
/* BYTEORDER:
* This symbol holds the hexadecimal constant defined in byteorder,
@@ -3047,7 +3047,7 @@
* This symbol contains the ~name expanded version of SITEARCH, to be used
* in programs that are not prepared to deal with ~ expansion at run-time.
*/
-#define SITEARCH "c:\\perl\\site\\5.24.1\\lib\\NetWare-x86-multi-thread" /**/
+#define SITEARCH "c:\\perl\\site\\5.24.2\\lib\\NetWare-x86-multi-thread" /**/
/*#define SITEARCH_EXP "" /**/
/* SITELIB:
@@ -3070,7 +3070,7 @@
* removed. The elements in inc_version_list (inc_version_list.U) can
* be tacked onto this variable to generate a list of directories to search.
*/
-#define SITELIB "c:\\perl\\site\\5.24.1\\lib" /**/
+#define SITELIB "c:\\perl\\site\\5.24.2\\lib" /**/
/*#define SITELIB_EXP "" /**/
#define SITELIB_STEM "" /**/
diff --git a/gnu/usr.bin/perl/Porting/Maintainers.pl b/gnu/usr.bin/perl/Porting/Maintainers.pl
index 13b7ff261fd..b924e1017e5 100644
--- a/gnu/usr.bin/perl/Porting/Maintainers.pl
+++ b/gnu/usr.bin/perl/Porting/Maintainers.pl
@@ -189,10 +189,6 @@ use File::Glob qw(:case);
'base' => {
'DISTRIBUTION' => 'RJBS/base-2.23.tar.gz',
'FILES' => q[dist/base],
- 'CUSTOMIZED' => [
- # https://rt.perl.org/Ticket/Display.html?id=127834
- qw( lib/base.pm )
- ],
},
'bignum' => {
@@ -1627,9 +1623,6 @@ use File::Glob qw(:case);
lib/vmsish.{pm,t}
],
},
- 'openbsd' => {
- 'FILES' => q[lib/Config_git.pl],
- },
);
# legacy CPAN flag
diff --git a/gnu/usr.bin/perl/Porting/checkAUTHORS.pl b/gnu/usr.bin/perl/Porting/checkAUTHORS.pl
index 13791ca4815..655edc4ea6b 100755
--- a/gnu/usr.bin/perl/Porting/checkAUTHORS.pl
+++ b/gnu/usr.bin/perl/Porting/checkAUTHORS.pl
@@ -830,6 +830,7 @@ module@renee-baecker.de renee.baecker\100smart-websolutions.de
+ github@renee-baecker.de
+ otrs\100ubuntu.(none)
+ perl\100renee-baecker.de
++ reb\100perl-services.de
richard.foley\100rfi.net richard.foley\100t-online.de
+ richard.foley\100ubs.com
+ richard.foley\100ubsw.com
diff --git a/gnu/usr.bin/perl/Porting/config.sh b/gnu/usr.bin/perl/Porting/config.sh
index e4f82ae2017..d2994535b0f 100644
--- a/gnu/usr.bin/perl/Porting/config.sh
+++ b/gnu/usr.bin/perl/Porting/config.sh
@@ -43,8 +43,8 @@ api_subversion='0'
api_version='24'
api_versionstring='5.24.0'
ar='ar'
-archlib='/tmp/mblead/lib/perl5/5.24.1/darwin-2level'
-archlibexp='/tmp/mblead/lib/perl5/5.24.1/darwin-2level'
+archlib='/tmp/mblead/lib/perl5/5.24.2/darwin-2level'
+archlibexp='/tmp/mblead/lib/perl5/5.24.2/darwin-2level'
archname64=''
archname='darwin-2level'
archobjs=''
@@ -829,7 +829,7 @@ incpath=''
incpth='/usr/local/include /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/clang/6.0/include /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include /usr/include /usr/local/include /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/clang/6.0/include /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include /usr/include /usr/local/include /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/clang/6.0/include /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include /usr/include'
inews=''
initialinstalllocation='/tmp/mblead/bin'
-installarchlib='/tmp/mblead/lib/perl5/5.24.1/darwin-2level'
+installarchlib='/tmp/mblead/lib/perl5/5.24.2/darwin-2level'
installbin='/tmp/mblead/bin'
installhtml1dir=''
installhtml3dir=''
@@ -837,13 +837,13 @@ installman1dir='/tmp/mblead/man/man1'
installman3dir='/tmp/mblead/man/man3'
installprefix='/tmp/mblead'
installprefixexp='/tmp/mblead'
-installprivlib='/tmp/mblead/lib/perl5/5.24.1'
+installprivlib='/tmp/mblead/lib/perl5/5.24.2'
installscript='/tmp/mblead/bin'
-installsitearch='/tmp/mblead/lib/perl5/site_perl/5.24.1/darwin-2level'
+installsitearch='/tmp/mblead/lib/perl5/site_perl/5.24.2/darwin-2level'
installsitebin='/tmp/mblead/bin'
installsitehtml1dir=''
installsitehtml3dir=''
-installsitelib='/tmp/mblead/lib/perl5/site_perl/5.24.1'
+installsitelib='/tmp/mblead/lib/perl5/site_perl/5.24.2'
installsiteman1dir='/tmp/mblead/man/man1'
installsiteman3dir='/tmp/mblead/man/man3'
installsitescript='/tmp/mblead/bin'
@@ -968,7 +968,7 @@ perl_patchlevel=''
perl_static_inline='static __inline__'
perladmin='aaron@daybreak.nonet'
perllibs='-lpthread -ldl -lm -lutil -lc'
-perlpath='/tmp/mblead/bin/perl5.24.1'
+perlpath='/tmp/mblead/bin/perl5.24.2'
pg='pg'
phostname='hostname'
pidtype='pid_t'
@@ -977,8 +977,8 @@ pmake=''
pr=''
prefix='/tmp/mblead'
prefixexp='/tmp/mblead'
-privlib='/tmp/mblead/lib/perl5/5.24.1'
-privlibexp='/tmp/mblead/lib/perl5/5.24.1'
+privlib='/tmp/mblead/lib/perl5/5.24.2'
+privlibexp='/tmp/mblead/lib/perl5/5.24.2'
procselfexe=''
prototype='define'
ptrsize='8'
@@ -1044,17 +1044,17 @@ sig_num='0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
sig_num_init='0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 6, 0'
sig_size='33'
signal_t='void'
-sitearch='/tmp/mblead/lib/perl5/site_perl/5.24.1/darwin-2level'
-sitearchexp='/tmp/mblead/lib/perl5/site_perl/5.24.1/darwin-2level'
+sitearch='/tmp/mblead/lib/perl5/site_perl/5.24.2/darwin-2level'
+sitearchexp='/tmp/mblead/lib/perl5/site_perl/5.24.2/darwin-2level'
sitebin='/tmp/mblead/bin'
sitebinexp='/tmp/mblead/bin'
sitehtml1dir=''
sitehtml1direxp=''
sitehtml3dir=''
sitehtml3direxp=''
-sitelib='/tmp/mblead/lib/perl5/site_perl/5.24.1'
+sitelib='/tmp/mblead/lib/perl5/site_perl/5.24.2'
sitelib_stem='/tmp/mblead/lib/perl5/site_perl'
-sitelibexp='/tmp/mblead/lib/perl5/site_perl/5.24.1'
+sitelibexp='/tmp/mblead/lib/perl5/site_perl/5.24.2'
siteman1dir='/tmp/mblead/man/man1'
siteman1direxp='/tmp/mblead/man/man1'
siteman3dir='/tmp/mblead/man/man3'
@@ -1080,7 +1080,7 @@ src='.'
ssizetype='ssize_t'
st_ino_sign='1'
st_ino_size='8'
-startperl='#!/tmp/mblead/bin/perl5.24.1'
+startperl='#!/tmp/mblead/bin/perl5.24.2'
startsh='#!/bin/sh'
static_ext=' '
stdchar='char'
@@ -1093,7 +1093,7 @@ stdio_stream_array=''
strerror_r_proto='0'
strings='/usr/include/string.h'
submit=''
-subversion='1'
+subversion='2'
sysman='/usr/share/man/man1'
sysroot=''
tail=''
@@ -1192,8 +1192,8 @@ vendorprefix=''
vendorprefixexp=''
vendorscript=''
vendorscriptexp=''
-version='5.24.1'
-version_patchlevel_string='version 24 subversion 1'
+version='5.24.2'
+version_patchlevel_string='version 24 subversion 2'
versiononly='define'
vi=''
xlibpth='/usr/lib/386 /lib/386'
@@ -1203,7 +1203,7 @@ zcat=''
zip='zip'
PERL_REVISION=5
PERL_VERSION=24
-PERL_SUBVERSION=1
+PERL_SUBVERSION=2
PERL_API_REVISION=5
PERL_API_VERSION=24
PERL_API_SUBVERSION=0
diff --git a/gnu/usr.bin/perl/Porting/config_H b/gnu/usr.bin/perl/Porting/config_H
index a2dc30ed3ca..33f611cc35a 100644
--- a/gnu/usr.bin/perl/Porting/config_H
+++ b/gnu/usr.bin/perl/Porting/config_H
@@ -960,8 +960,8 @@
* This symbol contains the ~name expanded version of ARCHLIB, to be used
* in programs that are not prepared to deal with ~ expansion at run-time.
*/
-#define ARCHLIB "/pro/lib/perl5/5.24.1/i686-linux-64int-ld" /**/
-#define ARCHLIB_EXP "/pro/lib/perl5/5.24.1/i686-linux-64int-ld" /**/
+#define ARCHLIB "/pro/lib/perl5/5.24.2/i686-linux-64int-ld" /**/
+#define ARCHLIB_EXP "/pro/lib/perl5/5.24.2/i686-linux-64int-ld" /**/
/* ARCHNAME:
* This symbol holds a string representing the architecture name.
@@ -2068,8 +2068,8 @@
* This symbol contains the ~name expanded version of PRIVLIB, to be used
* in programs that are not prepared to deal with ~ expansion at run-time.
*/
-#define PRIVLIB "/pro/lib/perl5/5.24.1" /**/
-#define PRIVLIB_EXP "/pro/lib/perl5/5.24.1" /**/
+#define PRIVLIB "/pro/lib/perl5/5.24.2" /**/
+#define PRIVLIB_EXP "/pro/lib/perl5/5.24.2" /**/
/* PTRSIZE:
* This symbol contains the size of a pointer, so that the C preprocessor
@@ -2119,8 +2119,8 @@
* This symbol contains the ~name expanded version of SITEARCH, to be used
* in programs that are not prepared to deal with ~ expansion at run-time.
*/
-#define SITEARCH "/pro/lib/perl5/site_perl/5.24.1/i686-linux-64int-ld" /**/
-#define SITEARCH_EXP "/pro/lib/perl5/site_perl/5.24.1/i686-linux-64int-ld" /**/
+#define SITEARCH "/pro/lib/perl5/site_perl/5.24.2/i686-linux-64int-ld" /**/
+#define SITEARCH_EXP "/pro/lib/perl5/site_perl/5.24.2/i686-linux-64int-ld" /**/
/* SITELIB:
* This symbol contains the name of the private library for this package.
@@ -2142,8 +2142,8 @@
* removed. The elements in inc_version_list (inc_version_list.U) can
* be tacked onto this variable to generate a list of directories to search.
*/
-#define SITELIB "/pro/lib/perl5/site_perl/5.24.1" /**/
-#define SITELIB_EXP "/pro/lib/perl5/site_perl/5.24.1" /**/
+#define SITELIB "/pro/lib/perl5/site_perl/5.24.2" /**/
+#define SITELIB_EXP "/pro/lib/perl5/site_perl/5.24.2" /**/
#define SITELIB_STEM "/pro/lib/perl5/site_perl" /**/
/* SSize_t:
@@ -4282,7 +4282,7 @@
* script to make sure (one hopes) that it runs with perl and not
* some shell.
*/
-#define STARTPERL "#!/pro/bin/perl5.24.1" /**/
+#define STARTPERL "#!/pro/bin/perl5.24.2" /**/
/* HAS_STDIO_STREAM_ARRAY:
* This symbol, if defined, tells that there is an array
diff --git a/gnu/usr.bin/perl/Porting/epigraphs.pod b/gnu/usr.bin/perl/Porting/epigraphs.pod
index d30e23e54c8..10753bf47b5 100644
--- a/gnu/usr.bin/perl/Porting/epigraphs.pod
+++ b/gnu/usr.bin/perl/Porting/epigraphs.pod
@@ -17,6 +17,102 @@ Consult your favorite dictionary for details.
=head1 EPIGRAPHS
+=head2 v5.27.1 - Rona Munro, Doctor Who: Survival
+
+L<Announced on 2017-06-20 by Eric Herman|http://www.nntp.perl.org/group/perl.perl5.porters/2017/06/msg245055.html>
+
+ There are worlds out there where the sky is burning,
+ where the sea's asleep and the rivers dream,
+ people made of smoke and cities made of song.
+ Somewhere there's danger,
+ somewhere there's injustice
+ and somewhere else the tea is getting cold.
+ Come on, Ace, we've got work to do.
+
+=head2 v5.27.0 - Bertrand Russell, The Road to Happiness
+
+L<Announced on 2017-05-31 by Sawyer X|http://www.nntp.perl.org/group/perl.perl5.porters/2017/05/msg244580.html>
+
+ People who have theories as to how one should live tend to forget the
+ limitations of nature. If your way of life involves constant
+ restraint of impulse for the sake of some one supreme aim that you
+ have set yourself, it is likely that the aim will become increasingly
+ distasteful because of the efforts that it demands; impulse, denied
+ its normal outlets, will find others, probably in spite; pleasure, if
+ you allow yourself any at all, will be dissociated from the main
+ current of your life, and will become Bacchic and frivolous. Such
+ pleasure brings no happiness, but only a deeper despair.
+
+ -- Bertrand Russell, The Road to Happiness
+
+=head2 v5.26.0 - Nine Simone, Ain't Got No / I Got Life
+
+L<Announced on 2017-05-30 by Sawyer X|http://www.nntp.perl.org/group/perl.perl5.porters/2017/05/msg244573.html>
+
+ I've got the life
+ And I'm gonna keep it
+ I've got the life
+ And nobody's gonna take it away
+ I've got the life
+
+=head2 v5.26.0-RC2 - Richard Condon, The Manchurian Candidate
+
+L<Announced on 2017-05-23 by Sawyer X|http://www.nntp.perl.org/group/perl.perl5.porters/2017/05/msg244511.html>
+
+ Amateur psychiatric prognosis can be fascinating when there is
+ absolutely nothing else to do.
+
+=head2 v5.26.0-RC1 - Thomas Paine, Common Sense
+
+L<Announced on 2017-05-11 by Sawyer X|http://www.nntp.perl.org/group/perl.perl5.porters/2017/05/msg244337.html>
+
+ A long habit of not thinking a thing WRONG, gives it a superficial
+ appearance of being RIGHT, and raises at first a formidable outcry in
+ defense of custom. But the tumult soon subsides. Time makes more
+ converts than reason.
+
+=head2 v5.25.12 - Kurt Vonnegut, Slaughterhouse-Five
+
+L<Announced on 2017-04-20 by Sawyer X|http://www.nntp.perl.org/group/perl.perl5.porters/2017/04/msg244146.html>
+
+ I have told my sons that they are not under any circumstances to take
+ part in massacres, and that the news of massacres of enemies is not
+ to fill them with satisfaction or glee.
+
+ I have also told them not to work for companies which make massacre
+ machinery, and to express contempt for people who think we need
+ machinery like that.
+
+=head2 v5.25.11 - Daniel Kahneman, Thinking, Fast and Slow
+
+L<Announced on 2017-03-20 by Sawyer X|http://www.nntp.perl.org/group/perl.perl5.porters/2017/03/msg243624.html>
+
+ Subjective confidence in a judgment is not a reasoned evaluation of
+ the probability that this judgment is correct. Confidence is a
+ feeling, which reflects the coherence of the information and the
+ cognitive ease of processing it. It is wise to take admissions of
+ uncertainty seriously, but declarations of high confidence mainly
+ tell you that an individual has constructed a coherent story in his
+ mind, not necessarily that the story is true.
+
+=head2 v5.25.10 - Erich Fried, 1968
+
+L<Announced on 2017-02-20 by Renee Bäcker|https://www.nntp.perl.org/group/perl.perl5.porters/2017/02/msg243173.html>
+
+ He who wants the world to remain as it is
+ doesn't want it to remain.
+
+=head2 v5.25.9 - A. A. Milne, "Winnie-the-Pooh", 1926
+
+L<Announced on 2017-01-20 by Abigail|http://www.nntp.perl.org/group/perl.perl5.porters/2017/01/msg242405.html>
+
+ Pooh always liked a little something at eleven o'clock in the
+ morning, and he was very glad to see Rabbit getting out the plates
+ and mugs; and when Rabbit said, "Honey or condensed milk with
+ your bread?" he was so excited that he said, "Both," and then,
+ so as not to seem greedy, he added, "But don't bother about the
+ bread, please."
+
=head2 v5.25.8 - Langston Hughes, So long
L<Announced on 2016-12-20 by Sawyer X|http://www.nntp.perl.org/group/perl.perl5.porters/2016/12/msg241739.html>
@@ -36,12 +132,12 @@ L<Announced on 2016-12-20 by Sawyer X|http://www.nntp.perl.org/group/perl.perl5.
L<Announced on 2016-11-20 by Chad 'Exodist' Granum|http://www.nntp.perl.org/group/perl.perl5.porters/2016/11/msg241120.html>
- Of Beren and Lúthien
+ Of Beren and Lúthien
Among the tales of sorrow and of ruin that come down to us from the darkness of
those days there are yet some in which amid weeping there is joy and under the
shadow of death light that endures. And of these histories most fair still in
- the ears of the Elves is the tale of Beren and Lúthien. Of their lives was made
+ the ears of the Elves is the tale of Beren and Lúthien. Of their lives was made
the Lay of Leithian, Release from Bondage, which is the longest save one of the
songs concerning the world of old; but here is told in fewer words and without
song.
@@ -193,6 +289,62 @@ L<Announced on 2016-05-09 by Ricardo Signes|http://www.nntp.perl.org/group/perl.
To find that the utmost reward
Of daring should be still to dare.
+=head2 v5.24.2-RC1 - Roald Dahl, "The Three Little Pigs"
+
+L<Announced on 2017-07-01 by Steve Hay|http://www.nntp.perl.org/group/perl.perl5.porters/2017/07/msg245292.html>
+
+ The animal I really dig
+ Above all others is the pig.
+ Pigs are noble. Pigs are clever,
+ Pig are courteous. However,
+ Now and then, to break this rule,
+ One meets a pig who is a fool.
+ What, for example, would you say
+ If strolling through the woods one day,
+ Right there in front of you you saw
+ A pig who'd built his house of STRAW?
+ The Wolf who saw it licked his lips,
+ And said, 'That pig has had his chips.'
+
+=head2 v5.24.1 - Charles Dodgson [as "Lewis Carroll"], "The Hunting of the Snark", Fit 4: The Hunting
+
+L<Announced on 2017-01-14 by Steve Hay|https://www.nntp.perl.org/group/perl.perl5.porters/2017/01/msg242259.html>
+
+ The Bellman looked uffish, and wrinkled his brow.
+ 'If only you'd spoken before!
+ It's excessively awkward to mention it now,
+ With the Snark, so to speak, at the door!
+
+ 'We should all of us grieve, as you well may believe,
+ If you never were met with again -
+ But surely, my man, when the voyage began,
+ You might have suggested it then?
+
+ 'It's excessively awkward to mention it now -
+ As I think I've already remarked.'
+ And the man they called 'Hi!' replied, with a sigh,
+ 'I informed you the day we embarked.
+
+ 'You may charge me with murder - or want of sense -
+ (We are all of us weak at times):
+ But the slightest approach to a false pretence
+ Was never among my crimes!
+
+ 'I said it in Hebrew - I said it in Dutch -
+ I said it in German and Greek:
+ But I wholly forgot (and it vexes me much)
+ That English is what you speak!'
+
+ ''Tis a pitiful tale,' said the Bellman, whose face
+ Had grown longer at every word:
+ 'But, now that you've stated the whole of your case,
+ More debate would be simply absurd.
+
+ 'The rest of my speech' (he exclaimed to his men)
+ 'You shall hear when I've leisure to speak it.
+ But the Snark is at hand, let me tell you again!
+ 'Tis your glorious duty to seek it!
+
=head2 v5.24.1-RC5 - John Milton, ed. Gordon Campbell, "Paradise Regained", Book IV
L<Announced on 2017-01-02 by Steve Hay|http://www.nntp.perl.org/group/perl.perl5.porters/2017/01/msg242016.html>
@@ -681,6 +833,61 @@ L<Announced on 2015-06-20 by Ricardo Signes|http://www.nntp.perl.org/group/perl.
They sing while you slave and I just get bored
I ain't gonna work on Maggie's farm no more
+=head2 v5.22.4-RC1 - Roald Dahl, "Little Red Riding Hood and the Wolf"
+
+L<Announced on 2017-07-01 by Steve Hay|http://www.nntp.perl.org/group/perl.perl5.porters/2017/07/msg245293.html>
+
+ As soon as Wolf began to feel
+ That he would like a decent meal,
+ He went and knocked on Grandma's door.
+ When Grandma opened it, she saw
+ The sharp white teeth, the horrid grin,
+ And Wolfie said, 'May I come in?'
+ Poor Grandmamma was terrified,
+ 'He's going to eat me up!' she cried.
+ And she was absolutely right.
+ He ate her up in one big bite.
+
+=head2 v5.22.3 - Charles Dodgson [as "Lewis Carroll"], "Phantasmagoria", Canto 6: Discomfyture
+
+L<Announced on 2017-01-14 by Steve Hay|https://www.nntp.perl.org/group/perl.perl5.porters/2017/01/msg242258.html>
+
+ As one who strives a hill to climb,
+ Who never climbed before:
+ Who finds it, in a little time,
+ Grow every moment less sublime,
+ And votes the thing a bore:
+
+ Yet, having once begun to try,
+ Dares not desert his quest,
+ But, climbing, ever keeps his eye
+ On one small hut against the sky
+ Wherein he hopes to rest:
+
+ Who climbs till nerve and force are spent,
+ With many a puff and pant:
+ Who still, as rises the ascent,
+ In language grows more violent,
+ Although in breath more scant:
+
+ Who, climbing, gains at length the place
+ That crowns the upward track:
+ And, entering with unsteady pace,
+ Receives a buffet in the face
+ That lands him on his back:
+
+ And feels himself, like one in sleep,
+ Glide swiftly down again,
+ A helpless weight, from steep to steep,
+ Till, with a headlong giddy sweep,
+ He drops upon the plain -
+
+ So I, that had resolved to bring
+ Conviction to a ghost,
+ And found it quite a different thing
+ From any human arguing,
+ Yet dared not quit my post.
+
=head2 v5.22.3-RC5 - John Milton, ed. Gordon Campbell, "Paradise Regained", Book II
L<Announced on 2017-01-02 by Steve Hay|http://www.nntp.perl.org/group/perl.perl5.porters/2017/01/msg242017.html>
diff --git a/gnu/usr.bin/perl/Porting/perldelta_template.pod b/gnu/usr.bin/perl/Porting/perldelta_template.pod
index a12e6383608..07158987bd0 100644
--- a/gnu/usr.bin/perl/Porting/perldelta_template.pod
+++ b/gnu/usr.bin/perl/Porting/perldelta_template.pod
@@ -378,7 +378,7 @@ here.
XXX Generate this with:
- perl Porting/acknowledgements.pl v5.24.1..HEAD
+ perl Porting/acknowledgements.pl v5.24.2..HEAD
=head1 Reporting Bugs
diff --git a/gnu/usr.bin/perl/Porting/pumpkin.pod b/gnu/usr.bin/perl/Porting/pumpkin.pod
index 74110428f7d..3618eec7799 100644
--- a/gnu/usr.bin/perl/Porting/pumpkin.pod
+++ b/gnu/usr.bin/perl/Porting/pumpkin.pod
@@ -540,9 +540,9 @@ Here's how I generate a new patch. I'll use the hypothetical
5.004_07 to 5.004_08 patch as an example.
# unpack perl5.004_07/
- gzip -d -c perl5.004_07.tar.gz | tar -xf -
+ gzip -d -c perl5.004_07.tar.gz | tar -xof -
# unpack perl5.004_08/
- gzip -d -c perl5.004_08.tar.gz | tar -xf -
+ gzip -d -c perl5.004_08.tar.gz | tar -xof -
makepatch perl5.004_07 perl5.004_08 > perl5.004_08.pat
Makepatch will automatically generate appropriate B<rm> commands to remove
diff --git a/gnu/usr.bin/perl/Porting/release_managers_guide.pod b/gnu/usr.bin/perl/Porting/release_managers_guide.pod
index 56b8847ec29..9f8004c7e07 100644
--- a/gnu/usr.bin/perl/Porting/release_managers_guide.pod
+++ b/gnu/usr.bin/perl/Porting/release_managers_guide.pod
@@ -173,7 +173,7 @@ which has a F<public_html> directory to share files with.
If you use Dropbox, you can append "raw=1" as a parameter to their usual
sharing link to allow direct download (albeit with redirects).
-=head3 git clone of https://github.com/perlorg/perlweb
+=head3 git clone of L<https://github.com/perlorg/perlweb>
For updating the L<http://dev.perl.org> web pages, either a Github account or
sweet-talking somebody with a Github account into obedience is needed. This
@@ -245,6 +245,15 @@ have some extra changes.
=head3 How to sync a CPAN module with a cpanE<sol> distro
+In most cases, once a new version of a distribution shipped with core has been
+uploaded to CPAN, the core version thereof can be synchronized automatically
+with the program F<Porting/sync-with-cpan>. (But see the comments at the
+beginning of that program. In particular, it has not yet been exercised on
+Windows as much as it has on Unix-like platforms.)
+
+If, however, F<Porting/sync-with-cpan> does not provide good results, follow
+the steps below.
+
=over 4
=item *
@@ -326,12 +335,6 @@ If everything is ok, commit the changes.
For entries with a non-simple C<FILES> section, or with a C<MAP>, you
may have to take more steps than listed above.
-F<Porting/sync-with-cpan> is a script that automates most of the steps
-above; but see the comments at the beginning of the file. In particular,
-it has not yet been exercised on Windows, but will certainly require a set
-of Unix tools such as Cygwin, and steps that run C<make> will need to run
-C<nmake> instead.
-
=head3 dual-life CPAN module stability
Ensure dual-life CPAN modules are stable, which comes down to:
@@ -370,14 +373,14 @@ fix.
=head3 monitor CPAN testers for failures
For any release except a BLEAD-POINT: Examine the relevant analysis report(s)
-at http://analysis.cpantesters.org/beforemaintrelease to see how the impending
-release is performing compared to previous releases with regard to building
-and testing CPAN modules.
+at L<http://analysis.cpantesters.org/beforemaintrelease> to see how the
+impending release is performing compared to previous releases with
+regard to building and testing CPAN modules.
That page accepts a query parameter, C<pair> that takes a pair of
colon-delimited versions to use for comparison. For example:
-http://analysis.cpantesters.org/beforemaintrelease?pair=5.20.2:5.22.0%20RC1
+L<http://analysis.cpantesters.org/beforemaintrelease?pair=5.20.2:5.22.0%20RC1>
=head3 update perldelta
@@ -597,9 +600,23 @@ C<$Module::CoreList::Utils::VERSION> should always be equal to
C<$Module::CoreList::VERSION>. If necessary, bump those two versions to match
before proceeding.
-The files to modify are: F<dist/Module-CoreList/lib/Module/CoreList.pm>,
-F<dist/Module-CoreList/lib/Module/CoreList/Utils.pm> and
-F<dist/Module-CoreList/lib/Module/CoreList/TieHashDelta.pm>.
+The files to modify are:
+
+=over 4
+
+=item *
+
+F<dist/Module-CoreList/lib/Module/CoreList.pm>
+
+=item *
+
+F<dist/Module-CoreList/lib/Module/CoreList/Utils.pm>
+
+=item *
+
+F<dist/Module-CoreList/lib/Module/CoreList/TieHashDelta.pm>
+
+=back
=head4 Update C<Module::CoreList> with module version data for the new release.
@@ -627,7 +644,7 @@ modules on CPAN. It can use a full, local CPAN mirror and/or fall back
on HTTP::Tiny to fetch package metadata remotely.
(If you'd prefer to have a full CPAN mirror, see
-http://www.cpan.org/misc/cpan-faq.html#How_mirror_CPAN)
+L<http://www.cpan.org/misc/cpan-faq.html#How_mirror_CPAN>)
Then change to your perl checkout, and if necessary,
@@ -722,7 +739,7 @@ formatting, e.g.
$ ./perl -Ilib ext/Pod-Html/bin/pod2html pod/perldelta.pod > \
/tmp/perldelta.html
-Another good HTML preview option is http://search.cpan.org/pod2html
+Another good HTML preview option is L<http://search.cpan.org/pod2html>
If you make changes, be sure to commit them.
@@ -793,12 +810,14 @@ then configure and build perl so that you have a Makefile and porting tools:
For the first RC for a MAINT release, copy in the latest
F<pod/perlhist.pod> from blead; this will include details of newer
releases in all branches. In theory, blead's version should be a strict
-superset of the one in this branch, but it's probably safest to diff them
-first to ensure that there's nothing in this branch that was forgotten
-from blead:
-
- $ diff pod/perlhist.pod ..../blead/pod/perlhist.pod
- $ cp ..../blead/pod/perlhist.pod pod/
+superset of the one in this branch, but it's probably safest to examine the
+changes first, to ensure that there's nothing in this branch that was
+forgotten from blead. An easy way to do that is with C<< git checkout -p >>,
+to selectively apply any changes from the blead version to your current
+branch:
+
+ $ git fetch origin
+ $ git checkout -p origin/blead pod/perlhist.pod
$ git commit -m 'sync perlhist from blead' pod/perlhist.pod
=head3 update perlhist.pod
@@ -966,10 +985,10 @@ your own tarball testing, below.
Check that basic configuration and tests work on each test machine:
- $ ./Configure -des && make all test
+ $ ./Configure -des && make all minitest test
# Or for a development release:
- $ ./Configure -Dusedevel -des && make all test
+ $ ./Configure -Dusedevel -des && make all minitest test
=head4 Run the test harness and install
@@ -1021,6 +1040,11 @@ Bootstrap the CPAN client on the clean install:
=head4 Install the Inline module with CPAN and test it
+If you're using C<local::lib>, you should reset your environment before
+performing these actions:
+
+ $ unset PERL5LIB PERL_MB_OPT PERL_LOCAL_LIB_ROOT PERL_MM_OPT
+
Try installing a popular CPAN module that's reasonably complex and that
has dependencies; for example:
@@ -1394,7 +1418,7 @@ Thanks for releasing perl!
=head2 Building a release - the day after
-=for checklist skip BLEAD-FINAL, MAINT, RC
+=for checklist skip BLEAD-FINAL MAINT RC
=head3 update Module::CoreList
@@ -1526,7 +1550,7 @@ will make life easier for the next release manager.
=head1 SOURCE
Based on
-http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2009-05/msg00608.html,
+L<http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2009-05/msg00608.html>,
plus a whole bunch of other sources, including private correspondence.
=cut
diff --git a/gnu/usr.bin/perl/Porting/todo.pod b/gnu/usr.bin/perl/Porting/todo.pod
index 594fb3c401a..c32a13b4940 100644
--- a/gnu/usr.bin/perl/Porting/todo.pod
+++ b/gnu/usr.bin/perl/Porting/todo.pod
@@ -467,7 +467,7 @@ Natively 64-bit systems need neither -Duse64bitint nor -Duse64bitall.
On these systems, it might be the default compilation mode, and there
is currently no guarantee that passing no use64bitall option to the
Configure process will build a 32bit perl. Implementing -Duse32bit*
-options would be nice for perl 5.24.1.
+options would be nice for perl 5.24.2.
=head2 Profile Perl - am I hot or not?
@@ -1170,7 +1170,7 @@ L<http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2013-01/msg00339.html>
=head1 Big projects
Tasks that will get your name mentioned in the description of the "Highlights
-of 5.24.1"
+of 5.24.2"
=head2 make ithreads more robust
diff --git a/gnu/usr.bin/perl/README.haiku b/gnu/usr.bin/perl/README.haiku
index 1a74156fdeb..a2e6dc893e0 100644
--- a/gnu/usr.bin/perl/README.haiku
+++ b/gnu/usr.bin/perl/README.haiku
@@ -22,9 +22,9 @@ The build procedure is completely standard:
Make perl executable and create a symlink for libperl:
chmod a+x /boot/common/bin/perl
- cd /boot/common/lib; ln -s perl5/5.24.1/BePC-haiku/CORE/libperl.so .
+ cd /boot/common/lib; ln -s perl5/5.24.2/BePC-haiku/CORE/libperl.so .
-Replace C<5.24.1> with your respective version of Perl.
+Replace C<5.24.2> with your respective version of Perl.
=head1 KNOWN PROBLEMS
diff --git a/gnu/usr.bin/perl/README.macosx b/gnu/usr.bin/perl/README.macosx
index 596c1833ae5..347489e2a7b 100644
--- a/gnu/usr.bin/perl/README.macosx
+++ b/gnu/usr.bin/perl/README.macosx
@@ -10,9 +10,9 @@ perlmacosx - Perl under Mac OS X
This document briefly describes Perl under Mac OS X.
- curl -O http://www.cpan.org/src/perl-5.24.1.tar.gz
- tar -xzf perl-5.24.1.tar.gz
- cd perl-5.24.1
+ curl -O http://www.cpan.org/src/perl-5.24.2.tar.gz
+ tar -xzf perl-5.24.2.tar.gz
+ cd perl-5.24.2
./Configure -des -Dprefix=/usr/local/
make
make test
@@ -20,7 +20,7 @@ This document briefly describes Perl under Mac OS X.
=head1 DESCRIPTION
-The latest Perl release (5.24.1 as of this writing) builds without changes
+The latest Perl release (5.24.2 as of this writing) builds without changes
under all versions of Mac OS X from 10.3 "Panther" onwards.
In order to build your own version of Perl you will need 'make',
diff --git a/gnu/usr.bin/perl/README.os2 b/gnu/usr.bin/perl/README.os2
index 6c0eaf26578..6b9367806b4 100644
--- a/gnu/usr.bin/perl/README.os2
+++ b/gnu/usr.bin/perl/README.os2
@@ -619,7 +619,7 @@ C<set PERLLIB_PREFIX> in F<Config.sys>, see L<"PERLLIB_PREFIX">.
=item Additional Perl modules
- unzip perl_ste.zip -d f:/perllib/lib/site_perl/5.24.1/
+ unzip perl_ste.zip -d f:/perllib/lib/site_perl/5.24.2/
Same remark as above applies. Additionally, if this directory is not
one of directories on @INC (and @INC is influenced by C<PERLLIB_PREFIX>), you
diff --git a/gnu/usr.bin/perl/README.vms b/gnu/usr.bin/perl/README.vms
index 716bf924caf..b527ecfdf8b 100644
--- a/gnu/usr.bin/perl/README.vms
+++ b/gnu/usr.bin/perl/README.vms
@@ -142,11 +142,11 @@ You may need to set up a foreign symbol for the unpacking utility of
choice. Once you have done so, use a command like the following to
unpack the archive:
- vmstar -xvf perl-5^.24^.1.tar
+ vmstar -xvf perl-5^.24^.2.tar
Then set default to the top-level source directory like so:
- set default [.perl-5^.24^.1]
+ set default [.perl-5^.24^.2]
and proceed with configuration as described in the next section.
diff --git a/gnu/usr.bin/perl/configpm b/gnu/usr.bin/perl/configpm
index 2e44893d45f..21bd3ef4f1b 100644
--- a/gnu/usr.bin/perl/configpm
+++ b/gnu/usr.bin/perl/configpm
@@ -1108,18 +1108,6 @@ my $orig_heavy_txt = "";
}
if ($orig_config_txt ne $config_txt or $orig_heavy_txt ne $heavy_txt) {
- # During the build don't look in /usr/local for libs or includes
- # but after, we want to let modules look there.
- my $install_heavy_txt = $heavy_txt;
- $install_heavy_txt =~ s,^(ccflags|cppflags)[^=]*='[^']+,$& -I/usr/local/include,gm;
- $install_heavy_txt =~ s,^(ldflags|lddlflags)[^=]*='[^']+,$& -L/usr/local/lib,gm;
-
- open INSTALL_CONFIG_HEAVY, ">", "$Config_heavy.install"
- or die "Can't open install $Config_heavy: $!\n";
- print INSTALL_CONFIG_HEAVY $install_heavy_txt;
- close INSTALL_CONFIG_HEAVY;
- print "updated install $Config_heavy\n";
-
open CONFIG, ">", $Config_PM or die "Can't open $Config_PM: $!\n";
open CONFIG_HEAVY, ">", $Config_heavy or die "Can't open $Config_heavy: $!\n";
print CONFIG $config_txt;
diff --git a/gnu/usr.bin/perl/cpan/Compress-Raw-Bzip2/private/MakeUtil.pm b/gnu/usr.bin/perl/cpan/Compress-Raw-Bzip2/private/MakeUtil.pm
index 9d7e5ed262d..47aebd60743 100644
--- a/gnu/usr.bin/perl/cpan/Compress-Raw-Bzip2/private/MakeUtil.pm
+++ b/gnu/usr.bin/perl/cpan/Compress-Raw-Bzip2/private/MakeUtil.pm
@@ -35,8 +35,7 @@ sub MY::libscan
my $path = shift;
return undef
- if $path =~ /^(?:RCS|CVS|SCCS|\.svn|_darcs)$/ ||
- $path =~ /(~|\.bak|_bak)$/ ||
+ if $path =~ /(~|\.bak|_bak)$/ ||
$path =~ /\..*\.sw(o|p)$/ ||
$path =~ /\B\.svn\b/;
diff --git a/gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/private/MakeUtil.pm b/gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/private/MakeUtil.pm
index 9d7e5ed262d..47aebd60743 100644
--- a/gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/private/MakeUtil.pm
+++ b/gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/private/MakeUtil.pm
@@ -35,8 +35,7 @@ sub MY::libscan
my $path = shift;
return undef
- if $path =~ /^(?:RCS|CVS|SCCS|\.svn|_darcs)$/ ||
- $path =~ /(~|\.bak|_bak)$/ ||
+ if $path =~ /(~|\.bak|_bak)$/ ||
$path =~ /\..*\.sw(o|p)$/ ||
$path =~ /\B\.svn\b/;
diff --git a/gnu/usr.bin/perl/cpan/Digest-MD5/MD5.xs b/gnu/usr.bin/perl/cpan/Digest-MD5/MD5.xs
index d8b156370f6..acefc30711e 100644
--- a/gnu/usr.bin/perl/cpan/Digest-MD5/MD5.xs
+++ b/gnu/usr.bin/perl/cpan/Digest-MD5/MD5.xs
@@ -39,8 +39,6 @@ extern "C" {
#include "EXTERN.h"
#include "perl.h"
#include "XSUB.h"
-#include <sys/types.h>
-#include <md5.h>
#ifdef __cplusplus
}
#endif
@@ -90,6 +88,61 @@ static MAGIC *THX_sv_magicext(pTHX_ SV *sv, SV *obj, int type,
# define SvPVbyte(sv, lp) (sv_utf8_downgrade((sv), 0), SvPV((sv), (lp)))
#endif
+/* Perl does not guarantee that U32 is exactly 32 bits. Some system
+ * has no integral type with exactly 32 bits. For instance, A Cray has
+ * short, int and long all at 64 bits so we need to apply this macro
+ * to reduce U32 values to 32 bits at appropriate places. If U32
+ * really does have 32 bits then this is a no-op.
+ */
+#if BYTEORDER > 0x4321 || defined(TRUNCATE_U32)
+ #define TO32(x) ((x) & 0xFFFFffff)
+ #define TRUNC32(x) ((x) &= 0xFFFFffff)
+#else
+ #define TO32(x) (x)
+ #define TRUNC32(x) /*nothing*/
+#endif
+
+/* The MD5 algorithm is defined in terms of little endian 32-bit
+ * values. The following macros (and functions) allow us to convert
+ * between native integers and such values.
+ */
+#undef BYTESWAP
+#ifndef U32_ALIGNMENT_REQUIRED
+ #if BYTEORDER == 0x1234 /* 32-bit little endian */
+ #define BYTESWAP(x) (x) /* no-op */
+
+ #elif BYTEORDER == 0x4321 /* 32-bit big endian */
+ #define BYTESWAP(x) ((((x)&0xFF)<<24) \
+ |(((x)>>24)&0xFF) \
+ |(((x)&0x0000FF00)<<8) \
+ |(((x)&0x00FF0000)>>8) )
+ #endif
+#endif
+
+#ifndef BYTESWAP
+static void u2s(U32 u, U8* s)
+{
+ *s++ = (U8)(u & 0xFF);
+ *s++ = (U8)((u >> 8) & 0xFF);
+ *s++ = (U8)((u >> 16) & 0xFF);
+ *s = (U8)((u >> 24) & 0xFF);
+}
+
+#define s2u(s,u) ((u) = (U32)(*s) | \
+ ((U32)(*(s+1)) << 8) | \
+ ((U32)(*(s+2)) << 16) | \
+ ((U32)(*(s+3)) << 24))
+#endif
+
+/* This structure keeps the current state of algorithm.
+ */
+typedef struct {
+ U32 A, B, C, D; /* current digest */
+ U32 bytes_low; /* counts bytes in message */
+ U32 bytes_high; /* turn it into a 64-bit counter */
+ U8 buffer[128]; /* collect complete 64 byte blocks */
+} MD5_CTX;
+
#if defined(USE_ITHREADS) && defined(MGf_DUP)
STATIC int dup_md5_ctx(pTHX_ MAGIC *mg, CLONE_PARAMS *params)
{
@@ -126,6 +179,325 @@ const STATIC struct {
};
#endif
+
+/* Padding is added at the end of the message in order to fill a
+ * complete 64 byte block (- 8 bytes for the message length). The
+ * padding is also the reason the buffer in MD5_CTX have to be
+ * 128 bytes.
+ */
+static const unsigned char PADDING[64] = {
+ 0x80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+};
+
+/* Constants for MD5Transform routine.
+ */
+#define S11 7
+#define S12 12
+#define S13 17
+#define S14 22
+#define S21 5
+#define S22 9
+#define S23 14
+#define S24 20
+#define S31 4
+#define S32 11
+#define S33 16
+#define S34 23
+#define S41 6
+#define S42 10
+#define S43 15
+#define S44 21
+
+/* F, G, H and I are basic MD5 functions.
+ */
+#define F(x, y, z) ((((x) & ((y) ^ (z))) ^ (z)))
+#define G(x, y, z) F(z, x, y)
+#define H(x, y, z) ((x) ^ (y) ^ (z))
+#define I(x, y, z) ((y) ^ ((x) | (~z)))
+
+/* ROTATE_LEFT rotates x left n bits.
+ */
+#define ROTATE_LEFT(x, n) (((x) << (n) | ((x) >> (32-(n)))))
+
+/* FF, GG, HH, and II transformations for rounds 1, 2, 3, and 4.
+ * Rotation is separate from addition to prevent recomputation.
+ */
+#define FF(a, b, c, d, s, ac) \
+ (a) += F ((b), (c), (d)) + (NEXTx) + (U32)(ac); \
+ TRUNC32((a)); \
+ (a) = ROTATE_LEFT ((a), (s)); \
+ (a) += (b); \
+ TRUNC32((a));
+
+#define GG(a, b, c, d, x, s, ac) \
+ (a) += G ((b), (c), (d)) + X[x] + (U32)(ac); \
+ TRUNC32((a)); \
+ (a) = ROTATE_LEFT ((a), (s)); \
+ (a) += (b); \
+ TRUNC32((a));
+
+#define HH(a, b, c, d, x, s, ac) \
+ (a) += H ((b), (c), (d)) + X[x] + (U32)(ac); \
+ TRUNC32((a)); \
+ (a) = ROTATE_LEFT ((a), (s)); \
+ (a) += (b); \
+ TRUNC32((a));
+
+#define II(a, b, c, d, x, s, ac) \
+ (a) += I ((b), (c), (d)) + X[x] + (U32)(ac); \
+ TRUNC32((a)); \
+ (a) = ROTATE_LEFT ((a), (s)); \
+ (a) += (b); \
+ TRUNC32((a));
+
+
+static void
+MD5Init(MD5_CTX *ctx)
+{
+ /* Start state */
+ ctx->A = 0x67452301;
+ ctx->B = 0xefcdab89;
+ ctx->C = 0x98badcfe;
+ ctx->D = 0x10325476;
+
+ /* message length */
+ ctx->bytes_low = ctx->bytes_high = 0;
+}
+
+
+static void
+MD5Transform(MD5_CTX* ctx, const U8* buf, STRLEN blocks)
+{
+#ifdef MD5_DEBUG
+ static int tcount = 0;
+#endif
+
+ U32 A = ctx->A;
+ U32 B = ctx->B;
+ U32 C = ctx->C;
+ U32 D = ctx->D;
+
+#ifndef U32_ALIGNMENT_REQUIRED
+ const U32 *x = (U32*)buf; /* really just type casting */
+#endif
+
+ do {
+ U32 a = A;
+ U32 b = B;
+ U32 c = C;
+ U32 d = D;
+
+#if BYTEORDER == 0x1234 && !defined(U32_ALIGNMENT_REQUIRED)
+ const U32 *X = x;
+ #define NEXTx (*x++)
+#else
+ U32 X[16]; /* converted values, used in round 2-4 */
+ U32 *uptr = X;
+ U32 tmp;
+ #ifdef BYTESWAP
+ #define NEXTx (tmp=*x++, *uptr++ = BYTESWAP(tmp))
+ #else
+ #define NEXTx (s2u(buf,tmp), buf += 4, *uptr++ = tmp)
+ #endif
+#endif
+
+#ifdef MD5_DEBUG
+ if (buf == ctx->buffer)
+ fprintf(stderr,"%5d: Transform ctx->buffer", ++tcount);
+ else
+ fprintf(stderr,"%5d: Transform %p (%d)", ++tcount, buf, blocks);
+
+ {
+ int i;
+ fprintf(stderr,"[");
+ for (i = 0; i < 16; i++) {
+ fprintf(stderr,"%x,", x[i]);
+ }
+ fprintf(stderr,"]\n");
+ }
+#endif
+
+ /* Round 1 */
+ FF (a, b, c, d, S11, 0xd76aa478); /* 1 */
+ FF (d, a, b, c, S12, 0xe8c7b756); /* 2 */
+ FF (c, d, a, b, S13, 0x242070db); /* 3 */
+ FF (b, c, d, a, S14, 0xc1bdceee); /* 4 */
+ FF (a, b, c, d, S11, 0xf57c0faf); /* 5 */
+ FF (d, a, b, c, S12, 0x4787c62a); /* 6 */
+ FF (c, d, a, b, S13, 0xa8304613); /* 7 */
+ FF (b, c, d, a, S14, 0xfd469501); /* 8 */
+ FF (a, b, c, d, S11, 0x698098d8); /* 9 */
+ FF (d, a, b, c, S12, 0x8b44f7af); /* 10 */
+ FF (c, d, a, b, S13, 0xffff5bb1); /* 11 */
+ FF (b, c, d, a, S14, 0x895cd7be); /* 12 */
+ FF (a, b, c, d, S11, 0x6b901122); /* 13 */
+ FF (d, a, b, c, S12, 0xfd987193); /* 14 */
+ FF (c, d, a, b, S13, 0xa679438e); /* 15 */
+ FF (b, c, d, a, S14, 0x49b40821); /* 16 */
+
+ /* Round 2 */
+ GG (a, b, c, d, 1, S21, 0xf61e2562); /* 17 */
+ GG (d, a, b, c, 6, S22, 0xc040b340); /* 18 */
+ GG (c, d, a, b, 11, S23, 0x265e5a51); /* 19 */
+ GG (b, c, d, a, 0, S24, 0xe9b6c7aa); /* 20 */
+ GG (a, b, c, d, 5, S21, 0xd62f105d); /* 21 */
+ GG (d, a, b, c, 10, S22, 0x2441453); /* 22 */
+ GG (c, d, a, b, 15, S23, 0xd8a1e681); /* 23 */
+ GG (b, c, d, a, 4, S24, 0xe7d3fbc8); /* 24 */
+ GG (a, b, c, d, 9, S21, 0x21e1cde6); /* 25 */
+ GG (d, a, b, c, 14, S22, 0xc33707d6); /* 26 */
+ GG (c, d, a, b, 3, S23, 0xf4d50d87); /* 27 */
+ GG (b, c, d, a, 8, S24, 0x455a14ed); /* 28 */
+ GG (a, b, c, d, 13, S21, 0xa9e3e905); /* 29 */
+ GG (d, a, b, c, 2, S22, 0xfcefa3f8); /* 30 */
+ GG (c, d, a, b, 7, S23, 0x676f02d9); /* 31 */
+ GG (b, c, d, a, 12, S24, 0x8d2a4c8a); /* 32 */
+
+ /* Round 3 */
+ HH (a, b, c, d, 5, S31, 0xfffa3942); /* 33 */
+ HH (d, a, b, c, 8, S32, 0x8771f681); /* 34 */
+ HH (c, d, a, b, 11, S33, 0x6d9d6122); /* 35 */
+ HH (b, c, d, a, 14, S34, 0xfde5380c); /* 36 */
+ HH (a, b, c, d, 1, S31, 0xa4beea44); /* 37 */
+ HH (d, a, b, c, 4, S32, 0x4bdecfa9); /* 38 */
+ HH (c, d, a, b, 7, S33, 0xf6bb4b60); /* 39 */
+ HH (b, c, d, a, 10, S34, 0xbebfbc70); /* 40 */
+ HH (a, b, c, d, 13, S31, 0x289b7ec6); /* 41 */
+ HH (d, a, b, c, 0, S32, 0xeaa127fa); /* 42 */
+ HH (c, d, a, b, 3, S33, 0xd4ef3085); /* 43 */
+ HH (b, c, d, a, 6, S34, 0x4881d05); /* 44 */
+ HH (a, b, c, d, 9, S31, 0xd9d4d039); /* 45 */
+ HH (d, a, b, c, 12, S32, 0xe6db99e5); /* 46 */
+ HH (c, d, a, b, 15, S33, 0x1fa27cf8); /* 47 */
+ HH (b, c, d, a, 2, S34, 0xc4ac5665); /* 48 */
+
+ /* Round 4 */
+ II (a, b, c, d, 0, S41, 0xf4292244); /* 49 */
+ II (d, a, b, c, 7, S42, 0x432aff97); /* 50 */
+ II (c, d, a, b, 14, S43, 0xab9423a7); /* 51 */
+ II (b, c, d, a, 5, S44, 0xfc93a039); /* 52 */
+ II (a, b, c, d, 12, S41, 0x655b59c3); /* 53 */
+ II (d, a, b, c, 3, S42, 0x8f0ccc92); /* 54 */
+ II (c, d, a, b, 10, S43, 0xffeff47d); /* 55 */
+ II (b, c, d, a, 1, S44, 0x85845dd1); /* 56 */
+ II (a, b, c, d, 8, S41, 0x6fa87e4f); /* 57 */
+ II (d, a, b, c, 15, S42, 0xfe2ce6e0); /* 58 */
+ II (c, d, a, b, 6, S43, 0xa3014314); /* 59 */
+ II (b, c, d, a, 13, S44, 0x4e0811a1); /* 60 */
+ II (a, b, c, d, 4, S41, 0xf7537e82); /* 61 */
+ II (d, a, b, c, 11, S42, 0xbd3af235); /* 62 */
+ II (c, d, a, b, 2, S43, 0x2ad7d2bb); /* 63 */
+ II (b, c, d, a, 9, S44, 0xeb86d391); /* 64 */
+
+ A += a; TRUNC32(A);
+ B += b; TRUNC32(B);
+ C += c; TRUNC32(C);
+ D += d; TRUNC32(D);
+
+ } while (--blocks);
+ ctx->A = A;
+ ctx->B = B;
+ ctx->C = C;
+ ctx->D = D;
+}
+
+
+#ifdef MD5_DEBUG
+static char*
+ctx_dump(MD5_CTX* ctx)
+{
+ static char buf[1024];
+ sprintf(buf, "{A=%x,B=%x,C=%x,D=%x,%d,%d(%d)}",
+ ctx->A, ctx->B, ctx->C, ctx->D,
+ ctx->bytes_low, ctx->bytes_high, (ctx->bytes_low&0x3F));
+ return buf;
+}
+#endif
+
+
+static void
+MD5Update(MD5_CTX* ctx, const U8* buf, STRLEN len)
+{
+ STRLEN blocks;
+ STRLEN fill = ctx->bytes_low & 0x3F;
+
+#ifdef MD5_DEBUG
+ static int ucount = 0;
+ fprintf(stderr,"%5i: Update(%s, %p, %d)\n", ++ucount, ctx_dump(ctx),
+ buf, len);
+#endif
+
+ ctx->bytes_low += len;
+ if (ctx->bytes_low < len) /* wrap around */
+ ctx->bytes_high++;
+
+ if (fill) {
+ STRLEN missing = 64 - fill;
+ if (len < missing) {
+ Copy(buf, ctx->buffer + fill, len, U8);
+ return;
+ }
+ Copy(buf, ctx->buffer + fill, missing, U8);
+ MD5Transform(ctx, ctx->buffer, 1);
+ buf += missing;
+ len -= missing;
+ }
+
+ blocks = len >> 6;
+ if (blocks)
+ MD5Transform(ctx, buf, blocks);
+ if ( (len &= 0x3F)) {
+ Copy(buf + (blocks << 6), ctx->buffer, len, U8);
+ }
+}
+
+
+static void
+MD5Final(U8* digest, MD5_CTX *ctx)
+{
+ STRLEN fill = ctx->bytes_low & 0x3F;
+ STRLEN padlen = (fill < 56 ? 56 : 120) - fill;
+ U32 bits_low, bits_high;
+#ifdef MD5_DEBUG
+ fprintf(stderr," Final: %s\n", ctx_dump(ctx));
+#endif
+ Copy(PADDING, ctx->buffer + fill, padlen, U8);
+ fill += padlen;
+
+ bits_low = ctx->bytes_low << 3;
+ bits_high = (ctx->bytes_high << 3) | (ctx->bytes_low >> 29);
+#ifdef BYTESWAP
+ *(U32*)(ctx->buffer + fill) = BYTESWAP(bits_low); fill += 4;
+ *(U32*)(ctx->buffer + fill) = BYTESWAP(bits_high); fill += 4;
+#else
+ u2s(bits_low, ctx->buffer + fill); fill += 4;
+ u2s(bits_high, ctx->buffer + fill); fill += 4;
+#endif
+
+ MD5Transform(ctx, ctx->buffer, fill >> 6);
+#ifdef MD5_DEBUG
+ fprintf(stderr," Result: %s\n", ctx_dump(ctx));
+#endif
+
+#ifdef BYTESWAP
+ *(U32*)digest = BYTESWAP(ctx->A); digest += 4;
+ *(U32*)digest = BYTESWAP(ctx->B); digest += 4;
+ *(U32*)digest = BYTESWAP(ctx->C); digest += 4;
+ *(U32*)digest = BYTESWAP(ctx->D);
+#else
+ u2s(ctx->A, digest);
+ u2s(ctx->B, digest+4);
+ u2s(ctx->C, digest+8);
+ u2s(ctx->D, digest+12);
+#endif
+}
+
+#ifndef INT2PTR
+#define INT2PTR(any,d) (any)(d)
+#endif
+
static MD5_CTX* get_md5_ctx(pTHX_ SV* sv)
{
MAGIC *mg;
@@ -306,7 +678,7 @@ addfile(self, fh)
InputStream fh
PREINIT:
MD5_CTX* context = get_md5_ctx(aTHX_ self);
- STRLEN fill = (context->count >> 3) & (MD5_BLOCK_LENGTH - 1);
+ STRLEN fill = context->bytes_low & 0x3F;
#ifdef USE_HEAP_INSTEAD_OF_STACK
unsigned char* buffer;
#else
@@ -371,12 +743,14 @@ context(ctx, ...)
PPCODE:
if (items > 2) {
STRLEN len;
- ctx->count = SvUV(ST(1)) << 3;
+ unsigned long blocks = SvUV(ST(1));
unsigned char *buf = (unsigned char *)(SvPV(ST(2), len));
- ctx->state[0] = buf[ 0] | (buf[ 1]<<8) | (buf[ 2]<<16) | (buf[ 3]<<24);
- ctx->state[1] = buf[ 4] | (buf[ 5]<<8) | (buf[ 6]<<16) | (buf[ 7]<<24);
- ctx->state[2] = buf[ 8] | (buf[ 9]<<8) | (buf[10]<<16) | (buf[11]<<24);
- ctx->state[3] = buf[12] | (buf[13]<<8) | (buf[14]<<16) | (buf[15]<<24);
+ ctx->A = buf[ 0] | (buf[ 1]<<8) | (buf[ 2]<<16) | (buf[ 3]<<24);
+ ctx->B = buf[ 4] | (buf[ 5]<<8) | (buf[ 6]<<16) | (buf[ 7]<<24);
+ ctx->C = buf[ 8] | (buf[ 9]<<8) | (buf[10]<<16) | (buf[11]<<24);
+ ctx->D = buf[12] | (buf[13]<<8) | (buf[14]<<16) | (buf[15]<<24);
+ ctx->bytes_low = blocks << 6;
+ ctx->bytes_high = blocks >> 26;
if (items == 4) {
buf = (unsigned char *)(SvPV(ST(3), len));
MD5Update(ctx, buf, len);
@@ -386,20 +760,17 @@ context(ctx, ...)
XSRETURN(0);
}
- w=ctx->state[0]; out[ 0]=w; out[ 1]=(w>>8); out[ 2]=(w>>16); out[ 3]=(w>>24);
- w=ctx->state[1]; out[ 4]=w; out[ 5]=(w>>8); out[ 6]=(w>>16); out[ 7]=(w>>24);
- w=ctx->state[2]; out[ 8]=w; out[ 9]=(w>>8); out[10]=(w>>16); out[11]=(w>>24);
- w=ctx->state[3]; out[12]=w; out[13]=(w>>8); out[14]=(w>>16); out[15]=(w>>24);
+ w=ctx->A; out[ 0]=w; out[ 1]=(w>>8); out[ 2]=(w>>16); out[ 3]=(w>>24);
+ w=ctx->B; out[ 4]=w; out[ 5]=(w>>8); out[ 6]=(w>>16); out[ 7]=(w>>24);
+ w=ctx->C; out[ 8]=w; out[ 9]=(w>>8); out[10]=(w>>16); out[11]=(w>>24);
+ w=ctx->D; out[12]=w; out[13]=(w>>8); out[14]=(w>>16); out[15]=(w>>24);
EXTEND(SP, 3);
- ST(0) = sv_2mortal(newSViv((ctx->count >> 3)
- - ((ctx->count >> 3) % MD5_BLOCK_LENGTH)));
+ ST(0) = sv_2mortal(newSVuv(ctx->bytes_high << 26 |
+ ctx->bytes_low >> 6));
ST(1) = sv_2mortal(newSVpv(out, 16));
- ST(2) = sv_2mortal(newSVpv("",0));
- if (((ctx->count >> 3) & (MD5_BLOCK_LENGTH - 1)) != 0)
- ST(2) = sv_2mortal(newSVpv((char *)ctx->buffer,
- (ctx->count >> 3) & (MD5_BLOCK_LENGTH - 1)));
-
+ ST(2) = sv_2mortal(newSVpv((char *)ctx->buffer,
+ ctx->bytes_low & 0x3F));
XSRETURN(3);
void
diff --git a/gnu/usr.bin/perl/cpan/Digest-MD5/t/files.t b/gnu/usr.bin/perl/cpan/Digest-MD5/t/files.t
index 14a39925707..d6b4fcb2cd7 100755
--- a/gnu/usr.bin/perl/cpan/Digest-MD5/t/files.t
+++ b/gnu/usr.bin/perl/cpan/Digest-MD5/t/files.t
@@ -21,7 +21,7 @@ EOT
# This is the output of: 'md5sum README MD5.xs rfc1321.txt'
$EXPECT = <<EOT;
2f93400875dbb56f36691d5f69f3eba5 README
-5457ac1c3f0f33df96437555dc7eb172 MD5.xs
+0a0cf2512d18d24c6881d7d755e2b609 MD5.xs
754b9db19f79dbc4992f7166eb0f37ce rfc1321.txt
EOT
}
diff --git a/gnu/usr.bin/perl/cpan/ExtUtils-Install/lib/ExtUtils/Install.pm b/gnu/usr.bin/perl/cpan/ExtUtils-Install/lib/ExtUtils/Install.pm
index 1b98c4321e2..1e8ac4cd12b 100644
--- a/gnu/usr.bin/perl/cpan/ExtUtils-Install/lib/ExtUtils/Install.pm
+++ b/gnu/usr.bin/perl/cpan/ExtUtils-Install/lib/ExtUtils/Install.pm
@@ -100,7 +100,6 @@ my $Is_MacPerl = $^O eq 'MacOS';
my $Is_Win32 = $^O eq 'MSWin32';
my $Is_cygwin = $^O eq 'cygwin';
my $CanMoveAtBoot = ($Is_Win32 || $Is_cygwin);
-my $Perm_Dir = $ENV{PERL_CORE} ? 0770 : 0755;
# *note* CanMoveAtBoot is only incidentally the same condition as below
# this needs not hold true in the future.
@@ -784,7 +783,7 @@ sub install { #XXX OS-SPECIFIC
_chdir($cwd);
}
foreach my $targetdir (sort keys %check_dirs) {
- _mkpath( $targetdir, 0, $Perm_Dir, $verbose, $dry_run );
+ _mkpath( $targetdir, 0, 0755, $verbose, $dry_run );
}
foreach my $found (@found_files) {
my ($diff, $ffd, $origfile, $mode, $size, $atime, $mtime,
@@ -798,7 +797,7 @@ sub install { #XXX OS-SPECIFIC
$targetfile= _unlink_or_rename( $targetfile, 'tryhard', 'install' )
unless $dry_run;
} elsif ( ! -d $targetdir ) {
- _mkpath( $targetdir, 0, $Perm_Dir, $verbose, $dry_run );
+ _mkpath( $targetdir, 0, 0755, $verbose, $dry_run );
}
print "Installing $targetfile\n";
@@ -838,7 +837,7 @@ sub install { #XXX OS-SPECIFIC
if ($pack{'write'}) {
$dir = install_rooted_dir(dirname($pack{'write'}));
- _mkpath( $dir, 0, $Perm_Dir, $verbose, $dry_run );
+ _mkpath( $dir, 0, 0755, $verbose, $dry_run );
print "Writing $pack{'write'}\n" if $verbose;
$packlist->write(install_rooted_file($pack{'write'})) unless $dry_run;
}
@@ -1181,7 +1180,7 @@ environment variable will silence this output.
sub pm_to_blib {
my($fromto,$autodir,$pm_filter) = @_;
- _mkpath($autodir,0,$Perm_Dir);
+ _mkpath($autodir,0,0755);
while(my($from, $to) = each %$fromto) {
if( -f $to && -s $from == -s $to && -M $to < -M $from ) {
print "Skip $to (unchanged)\n" unless $INSTALL_QUIET;
@@ -1204,7 +1203,7 @@ sub pm_to_blib {
# we wont try hard here. its too likely to mess things up.
forceunlink($to);
} else {
- _mkpath(dirname($to),0,$Perm_Dir);
+ _mkpath(dirname($to),0,0755);
}
if ($need_filtering) {
run_filter($pm_filter, $from, $to);
diff --git a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm
index 785daaaed32..009b18ee085 100644
--- a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm
+++ b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm
@@ -933,7 +933,7 @@ OTHERLDFLAGS = '.$ld_opt.$otherldflags.'
INST_DYNAMIC_DEP = '.$inst_dynamic_dep.'
INST_DYNAMIC_FIX = '.$ld_fix.'
-$(INST_DYNAMIC): $(OBJECT) $(MYEXTLIB) $(BOOTSTRAP) $(INST_ARCHAUTODIR)$(DFSEP).exists $(EXPORT_LIST) $(PERL_ARCHIVEDEP) $(PERL_ARCHIVE_AFTER) $(INST_DYNAMIC_DEP)
+$(INST_DYNAMIC): $(OBJECT) $(MYEXTLIB) $(INST_ARCHAUTODIR)$(DFSEP).exists $(EXPORT_LIST) $(PERL_ARCHIVEDEP) $(PERL_ARCHIVE_AFTER) $(INST_DYNAMIC_DEP)
');
if ($armaybe ne ':'){
$ldfrom = 'tmp$(LIB_EXT)';
@@ -985,7 +985,7 @@ MAKE
push @m, <<'MAKE';
$(CHMOD) $(PERM_RWX) $@
- $(NOECHO) $(RM_RF) $(INST_BOOT)
+ $(NOECHO) $(RM_RF) $(BOOTSTRAP)
- $(CP_NONEMPTY) $(BOOTSTRAP) $(INST_BOOT) $(PERM_RW)
MAKE
@@ -2049,8 +2049,7 @@ Called by init_main. Initializes PERL_*
sub init_PERM {
my($self) = shift;
- my $perm_dir = $self->{PERL_CORE} ? 770 : 755;
- $self->{PERM_DIR} = $perm_dir unless defined $self->{PERM_DIR};
+ $self->{PERM_DIR} = 755 unless defined $self->{PERM_DIR};
$self->{PERM_RW} = 644 unless defined $self->{PERM_RW};
$self->{PERM_RWX} = 755 unless defined $self->{PERM_RWX};
diff --git a/gnu/usr.bin/perl/cpan/File-Path/lib/File/Path.pm b/gnu/usr.bin/perl/cpan/File-Path/lib/File/Path.pm
index 138bdc24ffb..034da1e578d 100644
--- a/gnu/usr.bin/perl/cpan/File-Path/lib/File/Path.pm
+++ b/gnu/usr.bin/perl/cpan/File-Path/lib/File/Path.pm
@@ -18,7 +18,7 @@ BEGIN {
use Exporter ();
use vars qw($VERSION @ISA @EXPORT @EXPORT_OK);
-$VERSION = '2.13';
+$VERSION = '2.12_01';
$VERSION = eval $VERSION;
@ISA = qw(Exporter);
@EXPORT = qw(mkpath rmtree);
@@ -85,15 +85,15 @@ sub make_path {
sub mkpath {
my $old_style = !( @_ and __is_arg( $_[-1] ) );
- my $data;
+ my $arg;
my $paths;
if ($old_style) {
my ( $verbose, $mode );
( $paths, $verbose, $mode ) = @_;
$paths = [$paths] unless UNIVERSAL::isa( $paths, 'ARRAY' );
- $data->{verbose} = $verbose;
- $data->{mode} = defined $mode ? $mode : oct '777';
+ $arg->{verbose} = $verbose;
+ $arg->{mode} = defined $mode ? $mode : oct '777';
}
else {
my %args_permitted = map { $_ => 1 } ( qw|
@@ -107,74 +107,55 @@ sub mkpath {
user
verbose
| );
- my %not_on_win32_args = map { $_ => 1 } ( qw|
- group
- owner
- uid
- user
- | );
my @bad_args = ();
- my @win32_implausible_args = ();
- my $arg = pop @_;
+ $arg = pop @_;
for my $k (sort keys %{$arg}) {
- if (! $args_permitted{$k}) {
- push @bad_args, $k;
- }
- elsif ($not_on_win32_args{$k} and _IS_MSWIN32) {
- push @win32_implausible_args, $k;
- }
- else {
- $data->{$k} = $arg->{$k};
- }
+ push @bad_args, $k unless $args_permitted{$k};
}
- _carp("Unrecognized option(s) passed to mkpath() or make_path(): @bad_args")
+ _carp("Unrecognized option(s) passed to make_path(): @bad_args")
if @bad_args;
- _carp("Option(s) implausible on Win32 passed to mkpath() or make_path(): @win32_implausible_args")
- if @win32_implausible_args;
- $data->{mode} = delete $data->{mask} if exists $data->{mask};
- $data->{mode} = oct '777' unless exists $data->{mode};
- ${ $data->{error} } = [] if exists $data->{error};
- unless (@win32_implausible_args) {
- $data->{owner} = delete $data->{user} if exists $data->{user};
- $data->{owner} = delete $data->{uid} if exists $data->{uid};
- if ( exists $data->{owner} and $data->{owner} =~ /\D/ ) {
- my $uid = ( getpwnam $data->{owner} )[2];
- if ( defined $uid ) {
- $data->{owner} = $uid;
- }
- else {
- _error( $data,
- "unable to map $data->{owner} to a uid, ownership not changed"
- );
- delete $data->{owner};
- }
+ $arg->{mode} = delete $arg->{mask} if exists $arg->{mask};
+ $arg->{mode} = oct '777' unless exists $arg->{mode};
+ ${ $arg->{error} } = [] if exists $arg->{error};
+ $arg->{owner} = delete $arg->{user} if exists $arg->{user};
+ $arg->{owner} = delete $arg->{uid} if exists $arg->{uid};
+ if ( exists $arg->{owner} and $arg->{owner} =~ /\D/ ) {
+ my $uid = ( getpwnam $arg->{owner} )[2];
+ if ( defined $uid ) {
+ $arg->{owner} = $uid;
}
- if ( exists $data->{group} and $data->{group} =~ /\D/ ) {
- my $gid = ( getgrnam $data->{group} )[2];
- if ( defined $gid ) {
- $data->{group} = $gid;
- }
- else {
- _error( $data,
- "unable to map $data->{group} to a gid, group ownership not changed"
- );
- delete $data->{group};
- }
+ else {
+ _error( $arg,
+"unable to map $arg->{owner} to a uid, ownership not changed"
+ );
+ delete $arg->{owner};
}
- if ( exists $data->{owner} and not exists $data->{group} ) {
- $data->{group} = -1; # chown will leave group unchanged
+ }
+ if ( exists $arg->{group} and $arg->{group} =~ /\D/ ) {
+ my $gid = ( getgrnam $arg->{group} )[2];
+ if ( defined $gid ) {
+ $arg->{group} = $gid;
}
- if ( exists $data->{group} and not exists $data->{owner} ) {
- $data->{owner} = -1; # chown will leave owner unchanged
+ else {
+ _error( $arg,
+"unable to map $arg->{group} to a gid, group ownership not changed"
+ );
+ delete $arg->{group};
}
}
+ if ( exists $arg->{owner} and not exists $arg->{group} ) {
+ $arg->{group} = -1; # chown will leave group unchanged
+ }
+ if ( exists $arg->{group} and not exists $arg->{owner} ) {
+ $arg->{owner} = -1; # chown will leave owner unchanged
+ }
$paths = [@_];
}
- return _mkpath( $data, $paths );
+ return _mkpath( $arg, $paths );
}
sub _mkpath {
- my $data = shift;
+ my $arg = shift;
my $paths = shift;
my ( @created );
@@ -189,51 +170,38 @@ sub _mkpath {
}
next if -d $path;
my $parent = File::Basename::dirname($path);
- # Coverage note: It's not clear how we would test the condition:
- # '-d $parent or $path eq $parent'
unless ( -d $parent or $path eq $parent ) {
- push( @created, _mkpath( $data, [$parent] ) );
+ push( @created, _mkpath( $arg, [$parent] ) );
}
- print "mkdir $path\n" if $data->{verbose};
- if ( mkdir( $path, $data->{mode} ) ) {
+ print "mkdir $path\n" if $arg->{verbose};
+ if ( mkdir( $path, $arg->{mode} ) ) {
push( @created, $path );
- if ( exists $data->{owner} ) {
+ if ( exists $arg->{owner} ) {
- # NB: $data->{group} guaranteed to be set during initialisation
- if ( !chown $data->{owner}, $data->{group}, $path ) {
- _error( $data,
- "Cannot change ownership of $path to $data->{owner}:$data->{group}"
+ # NB: $arg->{group} guaranteed to be set during initialisation
+ if ( !chown $arg->{owner}, $arg->{group}, $path ) {
+ _error( $arg,
+"Cannot change ownership of $path to $arg->{owner}:$arg->{group}"
);
}
}
- if ( exists $data->{chmod} ) {
- # Coverage note: It's not clear how we would trigger the next
- # 'if' block. Failure of 'chmod' might first result in a
- # system error: "Permission denied".
- if ( !chmod $data->{chmod}, $path ) {
- _error( $data,
- "Cannot change permissions of $path to $data->{chmod}" );
+ if ( exists $arg->{chmod} ) {
+ if ( !chmod $arg->{chmod}, $path ) {
+ _error( $arg,
+ "Cannot change permissions of $path to $arg->{chmod}" );
}
}
}
else {
my $save_bang = $!;
-
- # From 'perldoc perlvar': $EXTENDED_OS_ERROR ($^E) is documented
- # as:
- # Error information specific to the current operating system. At the
- # moment, this differs from "$!" under only VMS, OS/2, and Win32
- # (and for MacPerl). On all other platforms, $^E is always just the
- # same as $!.
-
my ( $e, $e1 ) = ( $save_bang, $^E );
$e .= "; $e1" if $e ne $e1;
# allow for another process to have created it meanwhile
if ( ! -d $path ) {
$! = $save_bang;
- if ( $data->{error} ) {
- push @{ ${ $data->{error} } }, { $path => $e };
+ if ( $arg->{error} ) {
+ push @{ ${ $arg->{error} } }, { $path => $e };
}
else {
_croak("mkdir $path: $e");
@@ -270,13 +238,14 @@ sub _is_subdir {
sub rmtree {
my $old_style = !( @_ and __is_arg( $_[-1] ) );
- my ($arg, $data, $paths);
+ my $arg;
+ my $paths;
if ($old_style) {
my ( $verbose, $safe );
( $paths, $verbose, $safe ) = @_;
- $data->{verbose} = $verbose;
- $data->{safe} = defined $safe ? $safe : 0;
+ $arg->{verbose} = $verbose;
+ $arg->{safe} = defined $safe ? $safe : 0;
if ( defined($paths) and length($paths) ) {
$paths = [$paths] unless UNIVERSAL::isa( $paths, 'ARRAY' );
@@ -295,53 +264,38 @@ sub rmtree {
verbose
| );
my @bad_args = ();
- my $arg = pop @_;
+ $arg = pop @_;
for my $k (sort keys %{$arg}) {
- if (! $args_permitted{$k}) {
- push @bad_args, $k;
- }
- else {
- $data->{$k} = $arg->{$k};
- }
+ push @bad_args, $k unless $args_permitted{$k};
}
_carp("Unrecognized option(s) passed to remove_tree(): @bad_args")
if @bad_args;
- ${ $data->{error} } = [] if exists $data->{error};
- ${ $data->{result} } = [] if exists $data->{result};
-
- # Wouldn't it make sense to do some validation on @_ before assigning
- # to $paths here?
- # In the $old_style case we guarantee that each path is both defined
- # and non-empty. We don't check that here, which means we have to
- # check it later in the first condition in this line:
- # if ( $ortho_root_length && _is_subdir( $ortho_root, $ortho_cwd ) ) {
- # Granted, that would be a change in behavior for the two
- # non-old-style interfaces.
-
+ ${ $arg->{error} } = [] if exists $arg->{error};
+ ${ $arg->{result} } = [] if exists $arg->{result};
$paths = [@_];
}
- $data->{prefix} = '';
- $data->{depth} = 0;
+ $arg->{prefix} = '';
+ $arg->{depth} = 0;
my @clean_path;
- $data->{cwd} = getcwd() or do {
- _error( $data, "cannot fetch initial working directory" );
+ $arg->{cwd} = getcwd() or do {
+ _error( $arg, "cannot fetch initial working directory" );
return 0;
};
- for ( $data->{cwd} ) { /\A(.*)\Z/s; $_ = $1 } # untaint
+ for ( $arg->{cwd} ) { /\A(.*)\Z/s; $_ = $1 } # untaint
for my $p (@$paths) {
# need to fixup case and map \ to / on Windows
my $ortho_root = _IS_MSWIN32 ? _slash_lc($p) : $p;
my $ortho_cwd =
- _IS_MSWIN32 ? _slash_lc( $data->{cwd} ) : $data->{cwd};
+ _IS_MSWIN32 ? _slash_lc( $arg->{cwd} ) : $arg->{cwd};
my $ortho_root_length = length($ortho_root);
$ortho_root_length-- if _IS_VMS; # don't compare '.' with ']'
if ( $ortho_root_length && _is_subdir( $ortho_root, $ortho_cwd ) ) {
local $! = 0;
- _error( $data, "cannot remove path when cwd is $data->{cwd}", $p );
+ _error( $arg, "cannot remove path when cwd is $arg->{cwd}", $p );
next;
}
@@ -358,16 +312,16 @@ sub rmtree {
push @clean_path, $p;
}
- @{$data}{qw(device inode)} = ( lstat $data->{cwd} )[ 0, 1 ] or do {
- _error( $data, "cannot stat initial working directory", $data->{cwd} );
+ @{$arg}{qw(device inode perm)} = ( lstat $arg->{cwd} )[ 0, 1 ] or do {
+ _error( $arg, "cannot stat initial working directory", $arg->{cwd} );
return 0;
};
- return _rmtree( $data, \@clean_path );
+ return _rmtree( $arg, \@clean_path );
}
sub _rmtree {
- my $data = shift;
+ my $arg = shift;
my $paths = shift;
my $count = 0;
@@ -385,8 +339,8 @@ sub _rmtree {
# opposed to being truly canonical, anchored from the root (/).
my $canon =
- $data->{prefix}
- ? File::Spec->catfile( $data->{prefix}, $root )
+ $arg->{prefix}
+ ? File::Spec->catfile( $arg->{prefix}, $root )
: $root;
my ( $ldev, $lino, $perm ) = ( lstat $root )[ 0, 1, 2 ]
@@ -400,40 +354,29 @@ sub _rmtree {
# see if we can escalate privileges to get in
# (e.g. funny protection mask such as -w- instead of rwx)
- # This uses fchmod to avoid traversing outside of the proper
- # location (CVE-2017-6512)
- my $root_fh;
- if (open($root_fh, '<', $root)) {
- my ($fh_dev, $fh_inode) = (stat $root_fh )[0,1];
- $perm &= oct '7777';
- my $nperm = $perm | oct '700';
- local $@;
- if (
- !(
- $data->{safe}
- or $nperm == $perm
- or !-d _
- or $fh_dev ne $ldev
- or $fh_inode ne $lino
- or eval { chmod( $nperm, $root_fh ) }
- )
- )
- {
- _error( $data,
- "cannot make child directory read-write-exec", $canon );
- next ROOT_DIR;
- }
- close $root_fh;
+ $perm &= oct '7777';
+ my $nperm = $perm | oct '700';
+ if (
+ !(
+ $arg->{safe}
+ or $nperm == $perm
+ or chmod( $nperm, $root )
+ )
+ )
+ {
+ _error( $arg,
+ "cannot make child directory read-write-exec", $canon );
+ next ROOT_DIR;
}
- if ( !chdir($root) ) {
- _error( $data, "cannot chdir to child", $canon );
+ elsif ( !chdir($root) ) {
+ _error( $arg, "cannot chdir to child", $canon );
next ROOT_DIR;
}
}
my ( $cur_dev, $cur_inode, $perm ) = ( stat $curdir )[ 0, 1, 2 ]
or do {
- _error( $data, "cannot stat current working directory", $canon );
+ _error( $arg, "cannot stat current working directory", $canon );
next ROOT_DIR;
};
@@ -454,20 +397,20 @@ sub _rmtree {
if (
!(
- $data->{safe}
+ $arg->{safe}
or $nperm == $perm
or chmod( $nperm, $curdir )
)
)
{
- _error( $data, "cannot make directory read+writeable", $canon );
+ _error( $arg, "cannot make directory read+writeable", $canon );
$nperm = $perm;
}
my $d;
$d = gensym() if $] < 5.006;
if ( !opendir $d, $curdir ) {
- _error( $data, "cannot opendir", $canon );
+ _error( $arg, "cannot opendir", $canon );
@files = ();
}
else {
@@ -494,9 +437,9 @@ sub _rmtree {
if (@files) {
# remove the contained files before the directory itself
- my $narg = {%$data};
+ my $narg = {%$arg};
@{$narg}{qw(device inode cwd prefix depth)} =
- ( $cur_dev, $cur_inode, $updir, $canon, $data->{depth} + 1 );
+ ( $cur_dev, $cur_inode, $updir, $canon, $arg->{depth} + 1 );
$count += _rmtree( $narg, \@files );
}
@@ -504,49 +447,49 @@ sub _rmtree {
# below fails), while we are still in the directory and may do so
# without a race via '.'
if ( $nperm != $perm and not chmod( $perm, $curdir ) ) {
- _error( $data, "cannot reset chmod", $canon );
+ _error( $arg, "cannot reset chmod", $canon );
}
# don't leave the client code in an unexpected directory
- chdir( $data->{cwd} )
+ chdir( $arg->{cwd} )
or
- _croak("cannot chdir to $data->{cwd} from $canon: $!, aborting.");
+ _croak("cannot chdir to $arg->{cwd} from $canon: $!, aborting.");
# ensure that a chdir upwards didn't take us somewhere other
# than we expected (see CVE-2002-0435)
( $cur_dev, $cur_inode ) = ( stat $curdir )[ 0, 1 ]
or _croak(
- "cannot stat prior working directory $data->{cwd}: $!, aborting."
+ "cannot stat prior working directory $arg->{cwd}: $!, aborting."
);
if (_NEED_STAT_CHECK) {
- ( $data->{device} eq $cur_dev and $data->{inode} eq $cur_inode )
- or _croak( "previous directory $data->{cwd} "
+ ( $arg->{device} eq $cur_dev and $arg->{inode} eq $cur_inode )
+ or _croak( "previous directory $arg->{cwd} "
. "changed before entering $canon, "
. "expected dev=$ldev ino=$lino, "
. "actual dev=$cur_dev ino=$cur_inode, aborting."
);
}
- if ( $data->{depth} or !$data->{keep_root} ) {
- if ( $data->{safe}
+ if ( $arg->{depth} or !$arg->{keep_root} ) {
+ if ( $arg->{safe}
&& ( _IS_VMS
? !&VMS::Filespec::candelete($root)
: !-w $root ) )
{
- print "skipped $root\n" if $data->{verbose};
+ print "skipped $root\n" if $arg->{verbose};
next ROOT_DIR;
}
if ( _FORCE_WRITABLE and !chmod $perm | oct '700', $root ) {
- _error( $data, "cannot make directory writeable", $canon );
+ _error( $arg, "cannot make directory writeable", $canon );
}
- print "rmdir $root\n" if $data->{verbose};
+ print "rmdir $root\n" if $arg->{verbose};
if ( rmdir $root ) {
- push @{ ${ $data->{result} } }, $root if $data->{result};
+ push @{ ${ $arg->{result} } }, $root if $arg->{result};
++$count;
}
else {
- _error( $data, "cannot remove directory", $canon );
+ _error( $arg, "cannot remove directory", $canon );
if (
_FORCE_WRITABLE
&& !chmod( $perm,
@@ -555,7 +498,7 @@ sub _rmtree {
)
{
_error(
- $data,
+ $arg,
sprintf( "cannot restore permissions to 0%o",
$perm ),
$canon
@@ -572,7 +515,7 @@ sub _rmtree {
&& ( $root !~ m/(?<!\^)[\]>]+/ ); # not already in VMS syntax
if (
- $data->{safe}
+ $arg->{safe}
&& (
_IS_VMS
? !&VMS::Filespec::candelete($root)
@@ -580,7 +523,7 @@ sub _rmtree {
)
)
{
- print "skipped $root\n" if $data->{verbose};
+ print "skipped $root\n" if $arg->{verbose};
next ROOT_DIR;
}
@@ -589,19 +532,19 @@ sub _rmtree {
and $nperm != $perm
and not chmod $nperm, $root )
{
- _error( $data, "cannot make file writeable", $canon );
+ _error( $arg, "cannot make file writeable", $canon );
}
- print "unlink $canon\n" if $data->{verbose};
+ print "unlink $canon\n" if $arg->{verbose};
# delete all versions under VMS
for ( ; ; ) {
if ( unlink $root ) {
- push @{ ${ $data->{result} } }, $root if $data->{result};
+ push @{ ${ $arg->{result} } }, $root if $arg->{result};
}
else {
- _error( $data, "cannot unlink file", $canon );
+ _error( $arg, "cannot unlink file", $canon );
_FORCE_WRITABLE and chmod( $perm, $root )
- or _error( $data,
+ or _error( $arg,
sprintf( "cannot restore permissions to 0%o", $perm ),
$canon );
last;
@@ -633,41 +576,41 @@ File::Path - Create or remove directory trees
=head1 VERSION
-2.13 - released May 31 2017.
+This document describes version 2.12 of File::Path.
=head1 SYNOPSIS
- use File::Path qw(make_path remove_tree);
-
- @created = make_path('foo/bar/baz', '/zug/zwang');
- @created = make_path('foo/bar/baz', '/zug/zwang', {
- verbose => 1,
- mode => 0711,
- });
- make_path('foo/bar/baz', '/zug/zwang', {
- chmod => 0777,
- });
-
- $removed_count = remove_tree('foo/bar/baz', '/zug/zwang', {
- verbose => 1,
- error => \my $err_list,
- safe => 1,
- });
-
- # legacy (interface promoted before v2.00)
- @created = mkpath('/foo/bar/baz');
- @created = mkpath('/foo/bar/baz', 1, 0711);
- @created = mkpath(['/foo/bar/baz', 'blurfl/quux'], 1, 0711);
- $removed_count = rmtree('foo/bar/baz', 1, 1);
- $removed_count = rmtree(['foo/bar/baz', 'blurfl/quux'], 1, 1);
-
- # legacy (interface promoted before v2.06)
- @created = mkpath('foo/bar/baz', '/zug/zwang', { verbose => 1, mode => 0711 });
- $removed_count = rmtree('foo/bar/baz', '/zug/zwang', { verbose => 1, mode => 0711 });
+ use File::Path qw(make_path remove_tree);
+
+ @created = make_path('foo/bar/baz', '/zug/zwang');
+ @created = make_path('foo/bar/baz', '/zug/zwang', {
+ verbose => 1,
+ mode => 0711,
+ });
+ make_path('foo/bar/baz', '/zug/zwang', {
+ chmod => 0777,
+ });
+
+ $removed_count = remove_tree('foo/bar/baz', '/zug/zwang');
+ $removed_count = remove_tree('foo/bar/baz', '/zug/zwang', {
+ verbose => 1,
+ error => \my $err_list,
+ });
+
+ # legacy (interface promoted before v2.00)
+ @created = mkpath('/foo/bar/baz');
+ @created = mkpath('/foo/bar/baz', 1, 0711);
+ @created = mkpath(['/foo/bar/baz', 'blurfl/quux'], 1, 0711);
+ $removed_count = rmtree('foo/bar/baz', 1, 1);
+ $removed_count = rmtree(['foo/bar/baz', 'blurfl/quux'], 1, 1);
+
+ # legacy (interface promoted before v2.06)
+ @created = mkpath('foo/bar/baz', '/zug/zwang', { verbose => 1, mode => 0711 });
+ $removed_count = rmtree('foo/bar/baz', '/zug/zwang', { verbose => 1, mode => 0711 });
=head1 DESCRIPTION
-This module provides a convenient way to create directories of
+This module provide a convenient way to create directories of
arbitrary depth and to delete an entire directory subtree from the
filesystem.
@@ -680,7 +623,7 @@ The following functions are provided:
=item make_path( $dir1, $dir2, ...., \%opts )
The C<make_path> function creates the given directories if they don't
-exist before, much like the Unix command C<mkdir -p>.
+exists before, much like the Unix command C<mkdir -p>.
The function accepts a list of directories to be created. Its
behaviour may be tuned by an optional hashref appearing as the last
@@ -696,7 +639,7 @@ The following keys are recognised in the option hash:
=item mode => $num
The numeric permissions mode to apply to each created directory
-(defaults to C<0777>), to be modified by the current C<umask>. If the
+(defaults to 0777), to be modified by the current C<umask>. If the
directory already exists (and thus does not need to be created),
the permissions will not be modified.
@@ -732,9 +675,9 @@ in an C<eval> block.
=item uid => $owner
If present, will cause any created directory to be owned by C<$owner>.
-If the value is numeric, it will be interpreted as a uid; otherwise a
-username is assumed. An error will be issued if the username cannot be
-mapped to a uid, the uid does not exist or the process lacks the
+If the value is numeric, it will be interpreted as a uid, otherwise
+as username is assumed. An error will be issued if the username cannot be
+mapped to a uid, or the uid does not exist, or the process lacks the
privileges to change ownership.
Ownership of directories that already exist will not be changed.
@@ -743,11 +686,11 @@ C<user> and C<uid> are aliases of C<owner>.
=item group => $group
-If present, will cause any created directory to be owned by the group
-C<$group>. If the value is numeric, it will be interpreted as a gid;
-otherwise a group name is assumed. An error will be issued if the
-group name cannot be mapped to a gid, the gid does not exist or the
-process lacks the privileges to change group ownership.
+If present, will cause any created directory to be owned by the group C<$group>.
+If the value is numeric, it will be interpreted as a gid, otherwise
+as group name is assumed. An error will be issued if the group name cannot be
+mapped to a gid, or the gid does not exist, or the process lacks the
+privileges to change group ownership.
Group ownership of directories that already exist will not be changed.
@@ -763,10 +706,9 @@ Group ownership of directories that already exist will not be changed.
=item mkpath( $dir1, $dir2,..., \%opt )
-The C<mkpath()> function provide the legacy interface of
-C<make_path()> with a different interpretation of the arguments
-passed. The behaviour and return value of the function is otherwise
-identical to C<make_path()>.
+The mkpath() function provide the legacy interface of make_path() with
+a different interpretation of the arguments passed. The behaviour and
+return value of the function is otherwise identical to make_path().
=item remove_tree( $dir1, $dir2, .... )
@@ -774,27 +716,16 @@ identical to C<make_path()>.
The C<remove_tree> function deletes the given directories and any
files and subdirectories they might contain, much like the Unix
-command C<rm -rf> or the Windows commands C<rmdir /s> and C<rd /s>. The
-only exception to the function similarity is that C<remove_tree> accepts
-only directories whereas C<rm -rf> also accepts files.
+command C<rm -r> or the Windows commands C<rmdir /s> and C<rd /s>. The
+only exception to the function similarity is C<remove_tree> accepts
+only directories whereas C<rm -r> also accepts files.
The function accepts a list of directories to be
removed. Its behaviour may be tuned by an optional hashref
appearing as the last parameter on the call. If an empty string is
passed to C<remove_tree>, an error will occur.
-B<NOTE:> For security reasons, we strongly advise use of the
-hashref-as-final-argument syntax -- specifically, with a setting of the C<safe>
-element to a true value.
-
- remove_tree( $dir1, $dir2, ....,
- {
- safe => 1,
- ... # other key-value pairs
- },
- );
-
-The function returns the number of files successfully deleted.
+The functions returns the number of files successfully deleted.
The following keys are recognised in the option hash:
@@ -820,7 +751,7 @@ When set to a true value, will cause all files and subdirectories
to be removed, except the initially specified directories. This comes
in handy when cleaning out an application's scratch directory.
- remove_tree( '/tmp', {keep_root => 1} );
+ remove_tree( '/tmp', {keep_root => 1} );
=item result => \$res
@@ -829,8 +760,8 @@ This scalar will be made to reference an array, which will
be used to store all files and directories unlinked
during the call. If nothing is unlinked, the array will be empty.
- remove_tree( '/tmp', {result => \my $list} );
- print "unlinked $_\n" for @$list;
+ remove_tree( '/tmp', {result => \my $list} );
+ print "unlinked $_\n" for @$list;
This is a useful alternative to the C<verbose> key.
@@ -860,21 +791,10 @@ of hand. This is the safest course of action.
=item rmtree( $dir1, $dir2,..., \%opt )
-The C<rmtree()> function provide the legacy interface of
-C<remove_tree()> with a different interpretation of the arguments
-passed. The behaviour and return value of the function is otherwise
-identical to C<remove_tree()>.
-
-B<NOTE:> For security reasons, we strongly advise use of the
-hashref-as-final-argument syntax, specifically with a setting of the C<safe>
-element to a true value.
-
- rmtree( $dir1, $dir2, ....,
- {
- safe => 1,
- ... # other key-value pairs
- },
- );
+The rmtree() function provide the legacy interface of remove_tree()
+with a different interpretation of the arguments passed. The behaviour
+and return value of the function is otherwise identical to
+remove_tree().
=back
@@ -893,9 +813,9 @@ C<make_path> or C<remove_tree>, you should take additional precautions.
=back
-If C<make_path> or C<remove_tree> encounters an error, a diagnostic
+If C<make_path> or C<remove_tree> encounter an error, a diagnostic
message will be printed to C<STDERR> via C<carp> (for non-fatal
-errors) or via C<croak> (for fatal errors).
+errors), or via C<croak> (for fatal errors).
If this behaviour is not desirable, the C<error> attribute may be
used to hold a reference to a variable, which will be used to store
@@ -908,7 +828,7 @@ encountered the diagnostic key will be empty.
An example usage looks like:
remove_tree( 'foo/bar', 'bar/rat', {error => \my $err} );
- if ($err && @$err) {
+ if (@$err) {
for my $diag (@$err) {
my ($file, $message) = %$diag;
if ($file eq '') {
@@ -962,16 +882,16 @@ to at least 2.08 in order to avoid surprises.
=head3 SECURITY CONSIDERATIONS
-There were race conditions in the 1.x implementations of File::Path's
+There were race conditions 1.x implementations of File::Path's
C<rmtree> function (although sometimes patched depending on the OS
distribution or platform). The 2.0 version contains code to avoid the
problem mentioned in CVE-2002-0435.
See the following pages for more information:
- http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=286905
- http://www.nntp.perl.org/group/perl.perl5.porters/2005/01/msg97623.html
- http://www.debian.org/security/2005/dsa-696
+ http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=286905
+ http://www.nntp.perl.org/group/perl.perl5.porters/2005/01/msg97623.html
+ http://www.debian.org/security/2005/dsa-696
Additionally, unless the C<safe> parameter is set (or the
third parameter in the traditional interface is TRUE), should a
@@ -979,27 +899,6 @@ C<remove_tree> be interrupted, files that were originally in read-only
mode may now have their permissions set to a read-write (or "delete
OK") mode.
-The following CVE reports were previously filed against File-Path and are
-believed to have been addressed:
-
-=over 4
-
-=item * L<http://cve.circl.lu/cve/CVE-2004-0452>
-
-=item * L<http://cve.circl.lu/cve/CVE-2005-0448>
-
-=back
-
-In February 2017 the cPanel Security Team reported an additional vulnerability
-in File-Path. The C<chmod()> logic to make directories traversable can be
-abused to set the mode on an attacker-chosen file to an attacker-chosen value.
-This is due to the time-of-check-to-time-of-use (TOCTTOU) race condition
-(L<https://en.wikipedia.org/wiki/Time_of_check_to_time_of_use>) between the
-C<stat()> that decides the inode is a directory and the C<chmod()> that tries
-to make it user-rwx. CPAN versions 2.13 and later incorporate a patch
-provided by John Lightsey to address this problem. This vulnerability has
-been reported as CVE-2017-6512.
-
=head1 DIAGNOSTICS
FATAL errors will cause the program to halt (C<croak>), since the
@@ -1008,7 +907,7 @@ can always be trapped with C<eval>, but it's not a good idea. Under
the circumstances, dying is the best thing to do).
SEVERE errors may be trapped using the modern interface. If the
-they are not trapped, or if the old interface is used, such an error
+they are not trapped, or the old interface is used, such an error
will cause the program will halt.
All other errors may be trapped using the modern interface, otherwise
@@ -1019,7 +918,7 @@ they will be C<carp>ed about. Program execution will not be halted.
=item mkdir [path]: [errmsg] (SEVERE)
C<make_path> was unable to create the path. Probably some sort of
-permissions error at the point of departure or insufficient resources
+permissions error at the point of departure, or insufficient resources
(such as free inodes on Unix).
=item No root path(s) specified
@@ -1098,7 +997,7 @@ halts to avoid a race condition from occurring.
=item cannot stat prior working directory [dir]: [errmsg], aborting. (FATAL)
-C<remove_tree> was unable to stat the parent directory after having returned
+C<remove_tree> was unable to stat the parent directory after have returned
from the child. Since there is no way of knowing if we returned to
where we think we should be (by comparing device and inode) the only
way out is to C<croak>.
@@ -1118,9 +1017,9 @@ execution continues, but the directory may possibly not be deleted.
=item cannot remove directory [dir]: [errmsg]
-C<remove_tree> attempted to remove a directory, but failed. This may be because
+C<remove_tree> attempted to remove a directory, but failed. This may because
some objects that were unable to be removed remain in the directory, or
-it could be a permissions issue. The directory will be left behind.
+a permissions issue. The directory will be left behind.
=item cannot restore permissions of [dir] to [0nnn]: [errmsg]
@@ -1188,16 +1087,14 @@ to examining directory trees.
The following describes F<File::Path> limitations and how to report bugs.
-=head2 MULTITHREADED APPLICATIONS
+=head2 MULTITHREAD APPLICATIONS
-F<File::Path> C<rmtree> and C<remove_tree> will not work with
-multithreaded applications due to its use of C<chdir>. At this time,
-no warning or error is generated in this situation. You will
-certainly encounter unexpected results.
+F<File::Path> B<rmtree> and B<remove_tree> will not work with multithreaded
+applications due to its use of B<chdir>. At this time, no warning or error
+results and you will certainly encounter unexpected results.
-The implementation that surfaces this limitation will not be changed. See the
-F<File::Path::Tiny> module for functionality similar to F<File::Path> but which does
-not C<chdir>.
+The implementation that surfaces this limitation may change in a future
+release.
=head2 NFS Mount Points
@@ -1250,14 +1147,8 @@ Contributors to File::Path, in alphabetical order.
=item <F<bulkdd@cpan.org>>
-=item Charlie Gonzalez <F<itcharlie@cpan.org>>
-
=item Craig A. Berry <F<craigberry@mac.com>>
-=item James E Keenan <F<jkeenan@cpan.org>>
-
-=item John Lightsey <F<john@perlsec.org>>
-
=item Richard Elberger <F<riche@cpan.org>>
=item Ryan Yee <F<ryee@cpan.org>>
@@ -1266,14 +1157,12 @@ Contributors to File::Path, in alphabetical order.
=item Tom Lutz <F<tommylutz@gmail.com>>
-=item Will Sheppard <F<willsheppard@github>>
-
=back
=head1 COPYRIGHT
This module is copyright (C) Charles Bailey, Tim Bunce, David Landgren,
-James Keenan and Richard Elberger 1995-2017. All rights reserved.
+James Keenan, and Richard Elberger 1995-2015. All rights reserved.
=head1 LICENSE
diff --git a/gnu/usr.bin/perl/cpan/File-Path/t/FilePathTest.pm b/gnu/usr.bin/perl/cpan/File-Path/t/FilePathTest.pm
index 88b411d4bb3..f9e82893119 100644
--- a/gnu/usr.bin/perl/cpan/File-Path/t/FilePathTest.pm
+++ b/gnu/usr.bin/perl/cpan/File-Path/t/FilePathTest.pm
@@ -3,26 +3,18 @@ use strict;
use warnings;
use base 'Exporter';
use SelectSaver;
-use Carp;
use Cwd;
use File::Spec::Functions;
-use File::Path ();
-use Test::More ();
-our @EXPORT_OK = qw(
- _run_for_warning
- _run_for_verbose
- _cannot_delete_safe_mode
- _verbose_expected
- create_3_level_subdirs
- cleanup_3_level_subdirs
-);
+our @EXPORT = qw(_run_for_warning _run_for_verbose _basedir
+ _cannot_delete_safe_mode
+ _verbose_expected);
sub _basedir {
- return catdir(
- curdir(),
- sprintf( 'test-%x-%x-%x', time, $$, rand(99999) ),
+ return catdir( curdir(),
+ sprintf( 'test-%x-%x-%x', time, $$, rand(99999) ),
);
+
}
sub _run_for_warning {
@@ -117,28 +109,4 @@ END
}
}
-sub create_3_level_subdirs {
- my @dirnames = @_;
- my %seen = map {$_ => 1} @dirnames;
- croak "Need 3 distinct names for subdirectories"
- unless scalar(keys %seen) == 3;
- my $tdir = File::Spec::Functions::tmpdir();
- my $least_deep = catdir($tdir, $dirnames[0]);
- my $next_deepest = catdir($least_deep, $dirnames[1]);
- my $deepest = catdir($next_deepest, $dirnames[2]);
- return ($least_deep, $next_deepest, $deepest);
-}
-
-sub cleanup_3_level_subdirs {
- # runs 2 tests
- my $least_deep = shift;
- croak "Must provide path of least subdirectory"
- unless (length($least_deep) and (-d $least_deep));
- my $x;
- my $opts = { error => \$x };
- File::Path::remove_tree($least_deep, $opts);
- Test::More::ok(! -d $least_deep, "directory '$least_deep' removed, as expected");
- Test::More::is(scalar(@{$x}), 0, "no error messages using remove_tree() with \$opts");
-}
-
1;
diff --git a/gnu/usr.bin/perl/cpan/File-Path/t/Path.t b/gnu/usr.bin/perl/cpan/File-Path/t/Path.t
index 9be39a5de2f..5644f57a516 100755
--- a/gnu/usr.bin/perl/cpan/File-Path/t/Path.t
+++ b/gnu/usr.bin/perl/cpan/File-Path/t/Path.t
@@ -3,20 +3,11 @@
use strict;
-use Test::More tests => 167;
+use Test::More tests => 127;
use Config;
use Fcntl ':mode';
-use lib './t';
-use FilePathTest qw(
- _run_for_warning
- _run_for_verbose
- _cannot_delete_safe_mode
- _verbose_expected
- create_3_level_subdirs
- cleanup_3_level_subdirs
-);
-use Errno qw(:POSIX);
-use Carp;
+use lib 't/';
+use FilePathTest;
BEGIN {
use_ok('Cwd');
@@ -26,13 +17,6 @@ BEGIN {
my $Is_VMS = $^O eq 'VMS';
-my $fchmod_supported = 0;
-if (open my $fh, curdir()) {
- my ($perm) = (stat($fh))[2];
- $perm &= 07777;
- eval { $fchmod_supported = chmod( $perm, $fh); };
-}
-
# first check for stupid permissions second for full, so we clean up
# behind ourselves
for my $perm (0111,0777) {
@@ -314,19 +298,16 @@ is($created[0], $dir, "created directory (old style 3 mode undef) cross-check");
is(rmtree($dir, 0, undef), 1, "removed directory 3 verbose undef");
-SKIP: {
- skip "fchmod of directories not supported on this platform", 3 unless $fchmod_supported;
- $dir = catdir($tmp_base,'G');
- $dir = VMS::Filespec::unixify($dir) if $Is_VMS;
+$dir = catdir($tmp_base,'G');
+$dir = VMS::Filespec::unixify($dir) if $Is_VMS;
- @created = mkpath($dir, undef, 0400);
+@created = mkpath($dir, undef, 0200);
- is(scalar(@created), 1, "created read-only dir");
+is(scalar(@created), 1, "created write-only dir");
- is($created[0], $dir, "created read-only directory cross-check");
+is($created[0], $dir, "created write-only directory cross-check");
- is(rmtree($dir), 1, "removed read-only dir");
-}
+is(rmtree($dir), 1, "removed write-only dir");
# borderline new-style heuristics
if (chdir $tmp_base) {
@@ -468,28 +449,26 @@ SKIP: {
}
SKIP : {
- my $skip_count = 18;
+ my $skip_count = 19;
# this test will fail on Windows, as per:
# http://perldoc.perl.org/perlport.html#chmod
skip "Windows chmod test skipped", $skip_count
if $^O eq 'MSWin32';
- skip "fchmod() on directories is not supported on this platform", $skip_count
- unless $fchmod_supported;
my $mode;
my $octal_mode;
my @inputs = (
- 0777, 0700, 0470, 0407,
- 0433, 0400, 0430, 0403,
- 0111, 0100, 0110, 0101,
- 0731, 0713, 0317, 0371,
- 0173, 0137);
+ 0777, 0700, 0070, 0007,
+ 0333, 0300, 0030, 0003,
+ 0111, 0100, 0010, 0001,
+ 0731, 0713, 0317, 0371, 0173, 0137,
+ 00 );
my $input;
my $octal_input;
+ $dir = catdir($tmp_base, 'chmod_test');
foreach (@inputs) {
$input = $_;
- $dir = catdir($tmp_base, sprintf("chmod_test%04o", $input));
# We can skip from here because 0 is last in the list.
skip "Mode of 0 means assume user defaults on VMS", 1
if ($input == 0 && $Is_VMS);
@@ -497,11 +476,7 @@ SKIP : {
$mode = (stat($dir))[2];
$octal_mode = S_IMODE($mode);
$octal_input = sprintf "%04o", S_IMODE($input);
- SKIP: {
- skip "permissions are not fully supported by the filesystem", 1
- if (($^O eq 'MSWin32' || $^O eq 'cygwin') && ((Win32::FsType())[1] & 8) == 0);
- is($octal_mode,$input, "create a new directory with chmod $input ($octal_input)");
- }
+ is($octal_mode,$input, "create a new directory with chmod $input ($octal_input)");
rmtree( $dir );
}
}
@@ -612,27 +587,29 @@ SKIP: {
my $dir2 = catdir( $base, 'B');
{
- my $warn = _run_for_warning( sub {
- my @created = make_path(
- $dir,
- $dir2,
- { mode => 0711, foo => 1, bar => 1 }
- );
- } );
+ my $warn;
+ $SIG{__WARN__} = sub { $warn = shift };
+
+ my @created = make_path(
+ $dir,
+ $dir2,
+ { mode => 0711, foo => 1, bar => 1 }
+ );
like($warn,
- qr/Unrecognized option\(s\) passed to mkpath\(\) or make_path\(\):.*?bar.*?foo/,
+ qr/Unrecognized option\(s\) passed to make_path\(\):.*?bar.*?foo/,
'make_path with final hashref warned due to unrecognized options'
);
}
{
- my $warn = _run_for_warning( sub {
- my @created = remove_tree(
- $dir,
- $dir2,
- { foo => 1, bar => 1 }
- );
- } );
+ my $warn;
+ $SIG{__WARN__} = sub { $warn = shift };
+
+ my @created = remove_tree(
+ $dir,
+ $dir2,
+ { foo => 1, bar => 1 }
+ );
like($warn,
qr/Unrecognized option\(s\) passed to remove_tree\(\):.*?bar.*?foo/,
'remove_tree with final hashref failed due to unrecognized options'
@@ -679,7 +656,7 @@ is(
{
my ($x, $message, $object, $expect, $rv, $arg, $error);
my ($k, $v, $second_error, $third_error);
- local $! = ENOENT;
+ local $! = 2;
$x = $!;
$message = 'message in a bottle';
@@ -752,186 +729,3 @@ is(
is($k, '', "key of hash is empty string, since 3rd arg was undef");
is($v, $expect, "value of hash is 2nd arg: $message");
}
-
-{
- # https://rt.cpan.org/Ticket/Display.html?id=117019
- # remove_tree(): Permit re-use of options hash without issuing a warning
-
- my ($least_deep, $next_deepest, $deepest) =
- create_3_level_subdirs( qw| a b c | );
- my @created;
- @created = File::Path::make_path($deepest, { mode => 0711 });
- is(scalar(@created), 3, "Created 3 subdirectories");
-
- my $x = '';
- my $opts = { error => \$x };
- File::Path::remove_tree($deepest, $opts);
- ok(! -d $deepest, "directory '$deepest' removed, as expected");
-
- my $warn;
- $warn = _run_for_warning( sub { File::Path::remove_tree($next_deepest, $opts); } );
- ok(! $warn, "CPAN 117019: No warning thrown when re-using \$opts");
- ok(! -d $next_deepest, "directory '$next_deepest' removed, as expected");
-
- $warn = _run_for_warning( sub { File::Path::remove_tree($least_deep, $opts); } );
- ok(! $warn, "CPAN 117019: No warning thrown when re-using \$opts");
- ok(! -d $least_deep, "directory '$least_deep' removed, as expected");
-}
-
-{
- # Corner cases with respect to arguments provided to functions
- my $count;
-
- $count = remove_tree();
- is($count, 0,
- "If not provided with any paths, remove_tree() will return a count of 0 things deleted");
-
- $count = remove_tree('');
- is($count, 0,
- "If not provided with any paths, remove_tree() will return a count of 0 things deleted");
-
- my $warn;
- $warn = _run_for_warning( sub { $count = rmtree(); } );
- like($warn, qr/No root path\(s\) specified/s, "Got expected carp");
- is($count, 0,
- "If not provided with any paths, remove_tree() will return a count of 0 things deleted");
-
- $warn = _run_for_warning( sub {$count = rmtree(undef); } );
- like($warn, qr/No root path\(s\) specified/s, "Got expected carp");
- is($count, 0,
- "If provided only with an undefined value, remove_tree() will return a count of 0 things deleted");
-
- $warn = _run_for_warning( sub {$count = rmtree(''); } );
- like($warn, qr/No root path\(s\) specified/s, "Got expected carp");
- is($count, 0,
- "If provided with an empty string for a path, remove_tree() will return a count of 0 things deleted");
-
- $count = make_path();
- is($count, 0,
- "If not provided with any paths, make_path() will return a count of 0 things created");
-
- $count = mkpath();
- is($count, 0,
- "If not provided with any paths, make_path() will return a count of 0 things created");
-}
-
-SKIP: {
- my $skip_count = 5;
- skip "Windows will not set this error condition", $skip_count
- if $^O eq 'MSWin32';
-
- # mkpath() with hashref: case of phony user
- my ($least_deep, $next_deepest, $deepest) =
- create_3_level_subdirs( qw| d e f | );
- my (@created, $error);
- my $user = join('_' => 'foobar', $$);
- @created = mkpath($deepest, { mode => 0711, user => $user, error => \$error });
- TODO: {
- local $TODO = "Notwithstanding the phony 'user', mkpath will actually create subdirectories; should it?";
- is(scalar(@created), 0, "No subdirectories created");
- }
- is(scalar(@$error), 1, "caught error condition" );
- my ($file, $message) = each %{$error->[0]};
- like($message,
- qr/unable to map $user to a uid, ownership not changed/s,
- "Got expected error message for phony user",
- );
-
- cleanup_3_level_subdirs($least_deep);
-}
-
-{
- # mkpath() with hashref: case of valid uid
- my ($least_deep, $next_deepest, $deepest) =
- create_3_level_subdirs( qw| j k l | );
- my (@created, $error);
- @created = mkpath($deepest, { mode => 0711, uid => $>, error => \$error });
- is(scalar(@created), 3, "Provide valid 'uid' argument: 3 subdirectories created");
-
- cleanup_3_level_subdirs($least_deep);
-}
-
-SKIP: {
- my $skip_count = 3;
- skip "getpwuid() and getgrgid() not implemented on Windows", $skip_count
- if $^O eq 'MSWin32';
-
- # mkpath() with hashref: case of valid owner
- my ($least_deep, $next_deepest, $deepest) =
- create_3_level_subdirs( qw| m n o | );
- my (@created, $error);
- my $name = getpwuid($>);
- @created = mkpath($deepest, { mode => 0711, owner => $name, error => \$error });
- is(scalar(@created), 3, "Provide valid 'owner' argument: 3 subdirectories created");
-
- cleanup_3_level_subdirs($least_deep);
-}
-
-SKIP: {
- my $skip_count = 5;
- skip "Windows will not set this error condition", $skip_count
- if $^O eq 'MSWin32';
-
- # mkpath() with hashref: case of phony group
- my ($least_deep, $next_deepest, $deepest) =
- create_3_level_subdirs( qw| p q r | );
- my (@created, $error);
- my $bad_group = join('_' => 'foobarbaz', $$);
- @created = mkpath($deepest, { mode => 0711, group => $bad_group, error => \$error });
- TODO: {
- local $TODO = "Notwithstanding the phony 'group', mkpath will actually create subdirectories; should it?";
- is(scalar(@created), 0, "No subdirectories created");
- }
- is(scalar(@$error), 1, "caught error condition" );
- my ($file, $message) = each %{$error->[0]};
- like($message,
- qr/unable to map $bad_group to a gid, group ownership not changed/s,
- "Got expected error message for phony user",
- );
-
- cleanup_3_level_subdirs($least_deep);
-}
-
-{
- # mkpath() with hashref: case of valid group
- my ($least_deep, $next_deepest, $deepest) =
- create_3_level_subdirs( qw| s t u | );
- my (@created, $error);
- @created = mkpath($deepest, { mode => 0711, group => $(, error => \$error });
- is(scalar(@created), 3, "Provide valid 'group' argument: 3 subdirectories created");
-
- cleanup_3_level_subdirs($least_deep);
-}
-
-SKIP: {
- my $skip_count = 3;
- skip "getpwuid() and getgrgid() not implemented on Windows", $skip_count
- if $^O eq 'MSWin32';
-
- # mkpath() with hashref: case of valid group
- my ($least_deep, $next_deepest, $deepest) =
- create_3_level_subdirs( qw| v w x | );
- my (@created, $error);
- my $group_name = (getgrgid($())[0];
- @created = mkpath($deepest, { mode => 0711, group => $group_name, error => \$error });
- is(scalar(@created), 3, "Provide valid 'group' argument: 3 subdirectories created");
-
- cleanup_3_level_subdirs($least_deep);
-}
-
-SKIP: {
- my $skip_count = 3;
- skip "getpwuid() and getgrgid() not implemented on Windows", $skip_count
- if $^O eq 'MSWin32';
-
- # mkpath() with hashref: case of valid owner and group
- my ($least_deep, $next_deepest, $deepest) =
- create_3_level_subdirs( qw| delta epsilon zeta | );
- my (@created, $error);
- my $name = getpwuid($>);
- my $group_name = (getgrgid($())[0];
- @created = mkpath($deepest, { mode => 0711, owner => $name, group => $group_name, error => \$error });
- is(scalar(@created), 3, "Provide valid 'owner' and 'group' 'group' arguments: 3 subdirectories created");
-
- cleanup_3_level_subdirs($least_deep);
-}
diff --git a/gnu/usr.bin/perl/cpan/File-Path/t/Path_root.t b/gnu/usr.bin/perl/cpan/File-Path/t/Path_root.t
index 2647b7fd121..36aeb1677de 100644
--- a/gnu/usr.bin/perl/cpan/File-Path/t/Path_root.t
+++ b/gnu/usr.bin/perl/cpan/File-Path/t/Path_root.t
@@ -1,17 +1,15 @@
use strict;
use Test::More;
use Config;
-use lib './t';
-use FilePathTest qw(
- _run_for_warning
-);
+use lib 't/';
+use FilePathTest;
use File::Path qw(rmtree mkpath make_path remove_tree);
use File::Spec::Functions;
my $prereq = prereq();
plan skip_all => $prereq if defined $prereq;
-plan tests => 11;
+plan tests => 8;
my $pwent = max_u();
my $grent = max_g();
@@ -62,35 +60,21 @@ is(scalar(@created), 1, "created a directory owned by $max_user:$max_group...");
is($dir_uid, $max_uid, "... owned by $max_uid");
is($dir_gid, $max_gid, "... owned by group $max_gid");
-{
+SKIP: {
+ skip('Skip until RT 85878 is fixed', 1);
# invent a user and group that don't exist
do { ++$max_user } while ( getpwnam( $max_user ) );
do { ++$max_group } while ( getgrnam( $max_group ) );
$dir = catdir($dir_stem, 'aad');
- my $rv = _run_for_warning( sub {
- make_path(
- $dir,
- { user => $max_user, group => $max_group }
- )
- } );
- like( $rv,
- qr{unable to map $max_user to a uid, ownership not changed:}s,
- "created a directory not owned by $max_user:$max_group...",
- );
+ my $rv = _run_for_warning( sub { make_path( $dir,
+ { user => $max_user,
+ group => $max_group } ) } );
like( $rv,
- qr{unable to map $max_group to a gid, group ownership not changed:}s,
- "created a directory not owned by $max_user:$max_group...",
- );
-}
-
-{
- # cleanup
- my $x;
- my $opts = { error => \$x };
- remove_tree($tmp_base, $opts);
- ok(! -d $tmp_base, "directory '$tmp_base' removed, as expected");
- is(scalar(@{$x}), 0, "no error messages using remove_tree() with \$opts");
+ qr{\Aunable to map $max_user to a uid, ownership not changed: .* at \S+ line \d+
+unable to map $max_group to a gid, group ownership not changed: .* at \S+ line \d+\b},
+ "created a directory not owned by $max_user:$max_group..."
+ );
}
sub max_u {
diff --git a/gnu/usr.bin/perl/cpan/File-Path/t/Path_win32.t b/gnu/usr.bin/perl/cpan/File-Path/t/Path_win32.t
index 89b0b2f045c..47168822b96 100644
--- a/gnu/usr.bin/perl/cpan/File-Path/t/Path_win32.t
+++ b/gnu/usr.bin/perl/cpan/File-Path/t/Path_win32.t
@@ -1,20 +1,16 @@
use strict;
use Test::More;
-use lib './t';
-use FilePathTest qw(
- create_3_level_subdirs
- cleanup_3_level_subdirs
-);
+use lib 't/';
+use FilePathTest;
use File::Path;
use Cwd;
use File::Spec::Functions;
-use Carp;
plan skip_all => 'not win32' unless $^O eq 'MSWin32';
my ($ignore, $major, $minor, $build, $id) = Win32::GetOSVersion();
plan skip_all => "WinXP or later"
unless $id >= 2 && ($major > 5 || $major == 5 && $minor >= 1);
-plan tests => 9;
+plan tests => 3;
my $tmp_base = catdir(
curdir(),
@@ -34,29 +30,3 @@ ok(-d $UNC_path, 'mkpath on Win32 UNC path made dir');
my $removed = rmtree($UNC_path);
cmp_ok($removed, '>', 0, "removed $removed entries from $UNC_path");
-
-{
- my ($least_deep, $next_deepest, $deepest) =
- create_3_level_subdirs( qw| d e f | );
- my (@created, $error);
- my $user = join('_' => 'foobar', $$);
- {
- my $warn;
- $SIG{__WARN__} = sub { $warn = shift };
-
- @created = mkpath($deepest, { mode => 0711, user => $user, error => \$error });
- like($warn,
- qr/Option\(s\) implausible on Win32 passed to mkpath\(\) or make_path\(\)/,
- 'make_path with final hashref warned due to options implausible on Win32'
- );
- TODO: {
- local $TODO = "Notwithstanding the Win32-implausible 'user', mkpath will actually create subdirectories; should it?";
- is(scalar(@created), 0, "No subdirectories created");
- }
- is(scalar(@created), 3, "3 subdirectories created");
- is(scalar(@$error), 0, "no error condition" );
- }
-
- cleanup_3_level_subdirs($least_deep);
-}
-
diff --git a/gnu/usr.bin/perl/cpan/IO-Compress/private/MakeUtil.pm b/gnu/usr.bin/perl/cpan/IO-Compress/private/MakeUtil.pm
index 9d7e5ed262d..47aebd60743 100644
--- a/gnu/usr.bin/perl/cpan/IO-Compress/private/MakeUtil.pm
+++ b/gnu/usr.bin/perl/cpan/IO-Compress/private/MakeUtil.pm
@@ -35,8 +35,7 @@ sub MY::libscan
my $path = shift;
return undef
- if $path =~ /^(?:RCS|CVS|SCCS|\.svn|_darcs)$/ ||
- $path =~ /(~|\.bak|_bak)$/ ||
+ if $path =~ /(~|\.bak|_bak)$/ ||
$path =~ /\..*\.sw(o|p)$/ ||
$path =~ /\B\.svn\b/;
diff --git a/gnu/usr.bin/perl/cpan/NEXT/lib/NEXT.pm b/gnu/usr.bin/perl/cpan/NEXT/lib/NEXT.pm
index 72dbee8c51c..a77bb387433 100644
--- a/gnu/usr.bin/perl/cpan/NEXT/lib/NEXT.pm
+++ b/gnu/usr.bin/perl/cpan/NEXT/lib/NEXT.pm
@@ -190,7 +190,7 @@ __END__
=head1 NAME
-NEXT - Provide a pseudo-class NEXT (et al) that allows method redispatch
+NEXT.pm - Provide a pseudo-class NEXT (et al) that allows method redispatch
=head1 SYNOPSIS
diff --git a/gnu/usr.bin/perl/cpan/Pod-Parser/lib/Pod/PlainText.pm b/gnu/usr.bin/perl/cpan/Pod-Parser/lib/Pod/PlainText.pm
index 03252e93c71..3db4d903cd6 100644
--- a/gnu/usr.bin/perl/cpan/Pod-Parser/lib/Pod/PlainText.pm
+++ b/gnu/usr.bin/perl/cpan/Pod-Parser/lib/Pod/PlainText.pm
@@ -139,19 +139,6 @@ sub initialize {
return $self->SUPER::initialize;
}
-# pod2text and pod2man re-use the same parser on a list of files,
-# and will lose some information if some intermediate documents produce
-# unbalanced calls to begin_cmd/end_cmd.
-# via r1.4 of OpenBSD src/gnu/usr.bin/perl/lib/Pod/PlainText.pm
-sub begin_pod {
- my $self = shift;
-
- $$self{VERBATIM} = 0;
- $$self{EXCLUDE} = 0;
-
- return $self->SUPER::begin_pod(@_);
-}
-
############################################################################
# Core overrides
diff --git a/gnu/usr.bin/perl/cpan/Sys-Syslog/Makefile.PL b/gnu/usr.bin/perl/cpan/Sys-Syslog/Makefile.PL
index fce84965200..347197ab440 100644
--- a/gnu/usr.bin/perl/cpan/Sys-Syslog/Makefile.PL
+++ b/gnu/usr.bin/perl/cpan/Sys-Syslog/Makefile.PL
@@ -13,7 +13,7 @@ if ($] < 5.008) {
}
# create a lib/ dir in order to avoid warnings in Test::Distribution
-mkdir "lib", $ENV{PERL_CORE} ? 0770 : 0755;
+mkdir "lib", 0755;
# virtual paths given to EU::MM
my %virtual_path = ( 'Syslog.pm' => '$(INST_LIBDIR)/Syslog.pm' );
diff --git a/gnu/usr.bin/perl/cpan/Text-Balanced/lib/Text/Balanced.pm b/gnu/usr.bin/perl/cpan/Text-Balanced/lib/Text/Balanced.pm
index 4fbb1bc6315..f1a5780a0b9 100644
--- a/gnu/usr.bin/perl/cpan/Text-Balanced/lib/Text/Balanced.pm
+++ b/gnu/usr.bin/perl/cpan/Text-Balanced/lib/Text/Balanced.pm
@@ -1508,7 +1508,7 @@ C<extract_tagged> returns the complete text up to the point of failure.
If the string is "PARA", C<extract_tagged> returns only the first paragraph
after the tag (up to the first line that is either empty or contains
only whitespace characters).
-If the string is "", the default behaviour (i.e. failure) is reinstated.
+If the string is "", the the default behaviour (i.e. failure) is reinstated.
For example, suppose the start tag "/para" introduces a paragraph, which then
continues until the next "/endpara" tag or until another "/para" tag is
diff --git a/gnu/usr.bin/perl/cpan/podlators/lib/Pod/Man.pm b/gnu/usr.bin/perl/cpan/podlators/lib/Pod/Man.pm
index f014b3183e9..b739559551d 100644
--- a/gnu/usr.bin/perl/cpan/podlators/lib/Pod/Man.pm
+++ b/gnu/usr.bin/perl/cpan/podlators/lib/Pod/Man.pm
@@ -896,8 +896,6 @@ sub devise_title {
$cut = $i + 1;
$cut++ if ($dirs[$i + 1] && $dirs[$i + 1] eq 'lib');
last;
- } elsif ($dirs[$i] eq 'lib' && $dirs[$i + 1] && $dirs[0] eq 'ext') {
- $cut = $i + 1;
}
}
if ($cut > 0) {
diff --git a/gnu/usr.bin/perl/cpan/podlators/scripts/pod2man.PL b/gnu/usr.bin/perl/cpan/podlators/scripts/pod2man.PL
index ea7070f7d63..f40c126e562 100644
--- a/gnu/usr.bin/perl/cpan/podlators/scripts/pod2man.PL
+++ b/gnu/usr.bin/perl/cpan/podlators/scripts/pod2man.PL
@@ -77,7 +77,7 @@ Getopt::Long::config ('bundling_override');
GetOptions (\%options, 'center|c=s', 'date|d=s', 'errors=s', 'fixed=s',
'fixedbold=s', 'fixeditalic=s', 'fixedbolditalic=s', 'help|h',
'lax|l', 'name|n=s', 'nourls', 'official|o', 'quotes|q=s',
- 'release|r=s', 'section|s=s', 'stderr', 'verbose|v', 'utf8|u!')
+ 'release|r=s', 'section|s=s', 'stderr', 'verbose|v', 'utf8|u')
or exit 1;
pod2usage (0) if $options{help};
@@ -123,7 +123,7 @@ exit $status;
__END__
=for stopwords
-en em --stderr stderr --no-utf8 UTF-8 overdo markup MT-LEVEL Allbery Solaris
+en em --stderr stderr --utf8 UTF-8 overdo markup MT-LEVEL Allbery Solaris
URL troff troff-specific formatters uppercased Christiansen --nourls UTC
prepend
@@ -137,7 +137,7 @@ pod2man [B<--center>=I<string>] [B<--date>=I<string>] [B<--errors>=I<style>]
[B<--fixed>=I<font>] [B<--fixedbold>=I<font>] [B<--fixeditalic>=I<font>]
[B<--fixedbolditalic>=I<font>] [B<--name>=I<name>] [B<--nourls>]
[B<--official>] [B<--quotes>=I<quotes>] [B<--release>=I<version>]
- [B<--section>=I<manext>] [B<--stderr>] [B<--no-utf8>] [B<--verbose>]
+ [B<--section>=I<manext>] [B<--stderr>] [B<--utf8>] [B<--verbose>]
[I<input> [I<output>] ...]
pod2man B<--help>
@@ -323,10 +323,19 @@ to C<--errors=stderr> and is supported for backward compatibility.
=item B<-u>, B<--utf8>
-This option allows B<pod2man> to output literal UTF-8 characters.
-On OpenBSD, it is enabled by default and can be disabled with
-B<--no-utf8>, in which case non-ASCII characters are converted
-either to *roff escape sequences or to C<X>.
+By default, B<pod2man> produces the most conservative possible *roff
+output to try to ensure that it will work with as many different *roff
+implementations as possible. Many *roff implementations cannot handle
+non-ASCII characters, so this means all non-ASCII characters are converted
+either to a *roff escape sequence that tries to create a properly accented
+character (at least for troff output) or to C<X>.
+
+This option says to instead output literal UTF-8 characters. If your
+*roff implementation can handle it, this is the best output format to use
+and avoids corruption of documents containing non-ASCII characters.
+However, be warned that *roff source with literal UTF-8 characters is not
+supported by many implementations and may even result in segfaults and
+other bad behavior.
Be aware that, when using this option, the input encoding of your POD
source should be properly declared unless it's US-ASCII. Pod::Simple will
diff --git a/gnu/usr.bin/perl/deb.c b/gnu/usr.bin/perl/deb.c
index 37dcdded903..02a0a7d17ce 100644
--- a/gnu/usr.bin/perl/deb.c
+++ b/gnu/usr.bin/perl/deb.c
@@ -234,7 +234,7 @@ Perl_deb_stack_all(pTHX)
PerlIO_printf(Perl_debug_log, "\n");
else {
- /* Find the current context's stack range by searching
+ /* Find the the current context's stack range by searching
* forward for any higher contexts using this stack; failing
* that, it will be equal to the size of the stack for old
* stacks, or PL_stack_sp for the current stack
diff --git a/gnu/usr.bin/perl/dist/Module-CoreList/Changes b/gnu/usr.bin/perl/dist/Module-CoreList/Changes
index 91107a6d911..995f5322fb1 100644
--- a/gnu/usr.bin/perl/dist/Module-CoreList/Changes
+++ b/gnu/usr.bin/perl/dist/Module-CoreList/Changes
@@ -1,6 +1,33 @@
+5.20170715_24
+ - Updated for v5.24.2
+
+5.20170621
+ - Updated for v5.27.1
+
+5.20170531
+ - Updated for v5.27.0
+
+5.20170530
+ - Updated for v5.26.0
+
+5.20170420
+ - Updated for v5.25.12
+
+5.20170320
+ - Updated for v5.25.11
+
+5.20170220
+ - Updated for v5.25.10
+
+5.20170120
+ - Updated for v5.25.9
+
5.20170114_24
- Updated for v5.24.1
+5.20170114_22
+ - Updated for v5.22.3
+
5.20161220
- Updated for v5.25.8
diff --git a/gnu/usr.bin/perl/dist/Module-CoreList/lib/Module/CoreList.pm b/gnu/usr.bin/perl/dist/Module-CoreList/lib/Module/CoreList.pm
index 66cb9a64325..7b14b378274 100644
--- a/gnu/usr.bin/perl/dist/Module-CoreList/lib/Module/CoreList.pm
+++ b/gnu/usr.bin/perl/dist/Module-CoreList/lib/Module/CoreList.pm
@@ -4,7 +4,7 @@ use vars qw/$VERSION %released %version %families %upstream
%bug_tracker %deprecated %delta/;
use Module::CoreList::TieHashDelta;
use version;
-$VERSION = '5.20170114_24';
+$VERSION = '5.20170715_24';
sub _released_order { # Sort helper, to make '?' sort after everything else
(substr($released{$a}, 0, 1) eq "?")
@@ -302,7 +302,16 @@ sub changes_between {
5.025006 => '2016-10-20',
5.025007 => '2016-11-20',
5.025008 => '2016-12-20',
+ 5.022003 => '2017-01-14',
5.024001 => '2017-01-14',
+ 5.025009 => '2017-01-20',
+ 5.025010 => '2017-02-20',
+ 5.025011 => '2017-03-20',
+ 5.025012 => '2017-04-20',
+ 5.026000 => '2017-05-30',
+ 5.027000 => '2017-05-31',
+ 5.027001 => '2017-06-20',
+ 5.024002 => '2017-07-15',
);
for my $version ( sort { $a <=> $b } keys %released ) {
@@ -13520,6 +13529,174 @@ for my $version ( sort { $a <=> $b } keys %released ) {
removed => {
}
},
+ 5.022003 => {
+ delta_from => 5.022002,
+ changed => {
+ 'App::Cpan' => '1.63_01',
+ 'App::Prove' => '3.35_01',
+ 'App::Prove::State' => '3.35_01',
+ 'App::Prove::State::Result'=> '3.35_01',
+ 'App::Prove::State::Result::Test'=> '3.35_01',
+ 'Archive::Tar' => '2.04_01',
+ 'Archive::Tar::Constant'=> '2.04_01',
+ 'Archive::Tar::File' => '2.04_01',
+ 'B::Op_private' => '5.022003',
+ 'CPAN' => '2.11_01',
+ 'Compress::Zlib' => '2.068_001',
+ 'Config' => '5.022003',
+ 'Cwd' => '3.56_02',
+ 'Digest' => '1.17_01',
+ 'Digest::SHA' => '5.95_01',
+ 'Encode' => '2.72_01',
+ 'ExtUtils::Command' => '1.20_01',
+ 'ExtUtils::Command::MM' => '7.04_02',
+ 'ExtUtils::Liblist' => '7.04_02',
+ 'ExtUtils::Liblist::Kid'=> '7.04_02',
+ 'ExtUtils::MM' => '7.04_02',
+ 'ExtUtils::MM_AIX' => '7.04_02',
+ 'ExtUtils::MM_Any' => '7.04_02',
+ 'ExtUtils::MM_BeOS' => '7.04_02',
+ 'ExtUtils::MM_Cygwin' => '7.04_02',
+ 'ExtUtils::MM_DOS' => '7.04_02',
+ 'ExtUtils::MM_Darwin' => '7.04_02',
+ 'ExtUtils::MM_MacOS' => '7.04_02',
+ 'ExtUtils::MM_NW5' => '7.04_02',
+ 'ExtUtils::MM_OS2' => '7.04_02',
+ 'ExtUtils::MM_QNX' => '7.04_02',
+ 'ExtUtils::MM_UWIN' => '7.04_02',
+ 'ExtUtils::MM_Unix' => '7.04_02',
+ 'ExtUtils::MM_VMS' => '7.04_02',
+ 'ExtUtils::MM_VOS' => '7.04_02',
+ 'ExtUtils::MM_Win32' => '7.04_02',
+ 'ExtUtils::MM_Win95' => '7.04_02',
+ 'ExtUtils::MY' => '7.04_02',
+ 'ExtUtils::MakeMaker' => '7.04_02',
+ 'ExtUtils::MakeMaker::Config'=> '7.04_02',
+ 'ExtUtils::Mkbootstrap' => '7.04_02',
+ 'ExtUtils::Mksymlists' => '7.04_02',
+ 'ExtUtils::testlib' => '7.04_02',
+ 'File::Fetch' => '0.48_01',
+ 'File::Spec' => '3.56_02',
+ 'File::Spec::Cygwin' => '3.56_02',
+ 'File::Spec::Epoc' => '3.56_02',
+ 'File::Spec::Functions' => '3.56_02',
+ 'File::Spec::Mac' => '3.56_02',
+ 'File::Spec::OS2' => '3.56_02',
+ 'File::Spec::Unix' => '3.56_02',
+ 'File::Spec::VMS' => '3.56_02',
+ 'File::Spec::Win32' => '3.56_02',
+ 'HTTP::Tiny' => '0.054_01',
+ 'I18N::LangTags::Detect'=> '1.05_01',
+ 'IO' => '1.35_01',
+ 'IO::Compress::Adapter::Bzip2'=> '2.068_001',
+ 'IO::Compress::Adapter::Deflate'=> '2.068_001',
+ 'IO::Compress::Adapter::Identity'=> '2.068_001',
+ 'IO::Compress::Base' => '2.068_001',
+ 'IO::Compress::Base::Common'=> '2.068_001',
+ 'IO::Compress::Bzip2' => '2.068_001',
+ 'IO::Compress::Deflate' => '2.068_001',
+ 'IO::Compress::Gzip' => '2.068_001',
+ 'IO::Compress::Gzip::Constants'=> '2.068_001',
+ 'IO::Compress::RawDeflate'=> '2.068_001',
+ 'IO::Compress::Zip' => '2.068_001',
+ 'IO::Compress::Zip::Constants'=> '2.068_001',
+ 'IO::Compress::Zlib::Constants'=> '2.068_001',
+ 'IO::Compress::Zlib::Extra'=> '2.068_001',
+ 'IO::Uncompress::Adapter::Bunzip2'=> '2.068_001',
+ 'IO::Uncompress::Adapter::Identity'=> '2.068_001',
+ 'IO::Uncompress::Adapter::Inflate'=> '2.068_001',
+ 'IO::Uncompress::AnyInflate'=> '2.068_001',
+ 'IO::Uncompress::AnyUncompress'=> '2.068_001',
+ 'IO::Uncompress::Base' => '2.068_001',
+ 'IO::Uncompress::Bunzip2'=> '2.068_001',
+ 'IO::Uncompress::Gunzip'=> '2.068_001',
+ 'IO::Uncompress::Inflate'=> '2.068_001',
+ 'IO::Uncompress::RawInflate'=> '2.068_001',
+ 'IO::Uncompress::Unzip' => '2.068_001',
+ 'IPC::Cmd' => '0.92_01',
+ 'JSON::PP' => '2.27300_01',
+ 'Locale::Maketext' => '1.26_01',
+ 'Locale::Maketext::Simple'=> '0.21_01',
+ 'Memoize' => '1.03_01',
+ 'Module::CoreList' => '5.20170114_22',
+ 'Module::CoreList::TieHashDelta'=> '5.20170114_22',
+ 'Module::CoreList::Utils'=> '5.20170114_22',
+ 'Module::Metadata::corpus::BOMTest::UTF16BE'=> undef,
+ 'Module::Metadata::corpus::BOMTest::UTF16LE'=> undef,
+ 'Module::Metadata::corpus::BOMTest::UTF8'=> '1',
+ 'Net::Cmd' => '3.05_01',
+ 'Net::Config' => '3.05_01',
+ 'Net::Domain' => '3.05_01',
+ 'Net::FTP' => '3.05_01',
+ 'Net::FTP::A' => '3.05_01',
+ 'Net::FTP::E' => '3.05_01',
+ 'Net::FTP::I' => '3.05_01',
+ 'Net::FTP::L' => '3.05_01',
+ 'Net::FTP::dataconn' => '3.05_01',
+ 'Net::NNTP' => '3.05_01',
+ 'Net::Netrc' => '3.05_01',
+ 'Net::POP3' => '3.05_01',
+ 'Net::Ping' => '2.43_01',
+ 'Net::SMTP' => '3.05_01',
+ 'Net::Time' => '3.05_01',
+ 'Parse::CPAN::Meta' => '1.4414_001',
+ 'Pod::Html' => '1.2201',
+ 'Pod::Perldoc' => '3.25_01',
+ 'Storable' => '2.53_02',
+ 'Sys::Syslog' => '0.33_01',
+ 'TAP::Base' => '3.35_01',
+ 'TAP::Formatter::Base' => '3.35_01',
+ 'TAP::Formatter::Color' => '3.35_01',
+ 'TAP::Formatter::Console'=> '3.35_01',
+ 'TAP::Formatter::Console::ParallelSession'=> '3.35_01',
+ 'TAP::Formatter::Console::Session'=> '3.35_01',
+ 'TAP::Formatter::File' => '3.35_01',
+ 'TAP::Formatter::File::Session'=> '3.35_01',
+ 'TAP::Formatter::Session'=> '3.35_01',
+ 'TAP::Harness' => '3.35_01',
+ 'TAP::Harness::Env' => '3.35_01',
+ 'TAP::Object' => '3.35_01',
+ 'TAP::Parser' => '3.35_01',
+ 'TAP::Parser::Aggregator'=> '3.35_01',
+ 'TAP::Parser::Grammar' => '3.35_01',
+ 'TAP::Parser::Iterator' => '3.35_01',
+ 'TAP::Parser::Iterator::Array'=> '3.35_01',
+ 'TAP::Parser::Iterator::Process'=> '3.35_01',
+ 'TAP::Parser::Iterator::Stream'=> '3.35_01',
+ 'TAP::Parser::IteratorFactory'=> '3.35_01',
+ 'TAP::Parser::Multiplexer'=> '3.35_01',
+ 'TAP::Parser::Result' => '3.35_01',
+ 'TAP::Parser::Result::Bailout'=> '3.35_01',
+ 'TAP::Parser::Result::Comment'=> '3.35_01',
+ 'TAP::Parser::Result::Plan'=> '3.35_01',
+ 'TAP::Parser::Result::Pragma'=> '3.35_01',
+ 'TAP::Parser::Result::Test'=> '3.35_01',
+ 'TAP::Parser::Result::Unknown'=> '3.35_01',
+ 'TAP::Parser::Result::Version'=> '3.35_01',
+ 'TAP::Parser::Result::YAML'=> '3.35_01',
+ 'TAP::Parser::ResultFactory'=> '3.35_01',
+ 'TAP::Parser::Scheduler'=> '3.35_01',
+ 'TAP::Parser::Scheduler::Job'=> '3.35_01',
+ 'TAP::Parser::Scheduler::Spinner'=> '3.35_01',
+ 'TAP::Parser::Source' => '3.35_01',
+ 'TAP::Parser::SourceHandler'=> '3.35_01',
+ 'TAP::Parser::SourceHandler::Executable'=> '3.35_01',
+ 'TAP::Parser::SourceHandler::File'=> '3.35_01',
+ 'TAP::Parser::SourceHandler::Handle'=> '3.35_01',
+ 'TAP::Parser::SourceHandler::Perl'=> '3.35_01',
+ 'TAP::Parser::SourceHandler::RawTAP'=> '3.35_01',
+ 'TAP::Parser::YAMLish::Reader'=> '3.35_01',
+ 'TAP::Parser::YAMLish::Writer'=> '3.35_01',
+ 'Test' => '1.26_01',
+ 'Test::Harness' => '3.35_01',
+ 'XSLoader' => '0.20_01',
+ 'bigint' => '0.39_01',
+ 'bignum' => '0.39_01',
+ 'bigrat' => '0.39_01',
+ },
+ removed => {
+ }
+ },
5.024001 => {
delta_from => 5.024000,
changed => {
@@ -13683,7 +13860,6 @@ for my $version ( sort { $a <=> $b } keys %released ) {
'Test' => '1.28_01',
'Test::Harness' => '3.36_01',
'XSLoader' => '0.22',
- 'base' => '2.23_01',
'bigint' => '0.42_01',
'bignum' => '0.42_01',
'bigrat' => '0.42_01',
@@ -13691,6 +13867,415 @@ for my $version ( sort { $a <=> $b } keys %released ) {
removed => {
}
},
+ 5.025009 => {
+ delta_from => 5.025008,
+ changed => {
+ 'App::Cpan' => '1.66',
+ 'B::Deparse' => '1.40',
+ 'B::Op_private' => '5.025009',
+ 'B::Terse' => '1.07',
+ 'B::Xref' => '1.06',
+ 'CPAN' => '2.16',
+ 'CPAN::Bundle' => '5.5002',
+ 'CPAN::Distribution' => '2.16',
+ 'CPAN::Exception::RecursiveDependency'=> '5.5001',
+ 'CPAN::FTP' => '5.5008',
+ 'CPAN::FirstTime' => '5.5310',
+ 'CPAN::HandleConfig' => '5.5008',
+ 'CPAN::Module' => '5.5003',
+ 'Compress::Raw::Bzip2' => '2.070',
+ 'Compress::Raw::Zlib' => '2.070',
+ 'Config' => '5.025009',
+ 'DB_File' => '1.840',
+ 'Data::Dumper' => '2.167',
+ 'Devel::SelfStubber' => '1.06',
+ 'DynaLoader' => '1.41',
+ 'Errno' => '1.28',
+ 'ExtUtils::Embed' => '1.34',
+ 'File::Glob' => '1.28',
+ 'I18N::LangTags' => '0.42',
+ 'Module::CoreList' => '5.20170120',
+ 'Module::CoreList::TieHashDelta'=> '5.20170120',
+ 'Module::CoreList::Utils'=> '5.20170120',
+ 'OS2::Process' => '1.12',
+ 'PerlIO::scalar' => '0.26',
+ 'Pod::Html' => '1.2202',
+ 'Storable' => '2.61',
+ 'Symbol' => '1.08',
+ 'Term::ReadLine' => '1.16',
+ 'Test' => '1.30',
+ 'Unicode::UCD' => '0.68',
+ 'VMS::DCLsym' => '1.08',
+ 'XS::APItest' => '0.88',
+ 'XSLoader' => '0.26',
+ 'attributes' => '0.29',
+ 'diagnostics' => '1.36',
+ 'feature' => '1.46',
+ 'lib' => '0.64',
+ 'overload' => '1.28',
+ 're' => '0.34',
+ 'threads' => '2.12',
+ 'threads::shared' => '1.54',
+ },
+ removed => {
+ }
+ },
+ 5.025010 => {
+ delta_from => 5.025009,
+ changed => {
+ 'B' => '1.68',
+ 'B::Op_private' => '5.025010',
+ 'CPAN' => '2.17',
+ 'CPAN::Distribution' => '2.17',
+ 'Config' => '5.02501',
+ 'Getopt::Std' => '1.12',
+ 'Module::CoreList' => '5.20170220',
+ 'Module::CoreList::TieHashDelta'=> '5.20170220',
+ 'Module::CoreList::Utils'=> '5.20170220',
+ 'PerlIO' => '1.10',
+ 'Storable' => '2.62',
+ 'Thread::Queue' => '3.12',
+ 'feature' => '1.47',
+ 'open' => '1.11',
+ 'threads' => '2.13',
+ },
+ removed => {
+ }
+ },
+ 5.025011 => {
+ delta_from => 5.025010,
+ changed => {
+ 'App::Prove' => '3.38',
+ 'App::Prove::State' => '3.38',
+ 'App::Prove::State::Result'=> '3.38',
+ 'App::Prove::State::Result::Test'=> '3.38',
+ 'B::Op_private' => '5.025011',
+ 'Compress::Raw::Bzip2' => '2.074',
+ 'Compress::Raw::Zlib' => '2.074',
+ 'Compress::Zlib' => '2.074',
+ 'Config' => '5.025011',
+ 'Config::Perl::V' => '0.28',
+ 'Cwd' => '3.67',
+ 'ExtUtils::ParseXS' => '3.34',
+ 'ExtUtils::ParseXS::Constants'=> '3.34',
+ 'ExtUtils::ParseXS::CountLines'=> '3.34',
+ 'ExtUtils::ParseXS::Eval'=> '3.34',
+ 'ExtUtils::Typemaps' => '3.34',
+ 'ExtUtils::Typemaps::Cmd'=> '3.34',
+ 'ExtUtils::Typemaps::InputMap'=> '3.34',
+ 'ExtUtils::Typemaps::OutputMap'=> '3.34',
+ 'ExtUtils::Typemaps::Type'=> '3.34',
+ 'File::Spec' => '3.67',
+ 'File::Spec::AmigaOS' => '3.67',
+ 'File::Spec::Cygwin' => '3.67',
+ 'File::Spec::Epoc' => '3.67',
+ 'File::Spec::Functions' => '3.67',
+ 'File::Spec::Mac' => '3.67',
+ 'File::Spec::OS2' => '3.67',
+ 'File::Spec::Unix' => '3.67',
+ 'File::Spec::VMS' => '3.67',
+ 'File::Spec::Win32' => '3.67',
+ 'IO::Compress::Adapter::Bzip2'=> '2.074',
+ 'IO::Compress::Adapter::Deflate'=> '2.074',
+ 'IO::Compress::Adapter::Identity'=> '2.074',
+ 'IO::Compress::Base' => '2.074',
+ 'IO::Compress::Base::Common'=> '2.074',
+ 'IO::Compress::Bzip2' => '2.074',
+ 'IO::Compress::Deflate' => '2.074',
+ 'IO::Compress::Gzip' => '2.074',
+ 'IO::Compress::Gzip::Constants'=> '2.074',
+ 'IO::Compress::RawDeflate'=> '2.074',
+ 'IO::Compress::Zip' => '2.074',
+ 'IO::Compress::Zip::Constants'=> '2.074',
+ 'IO::Compress::Zlib::Constants'=> '2.074',
+ 'IO::Compress::Zlib::Extra'=> '2.074',
+ 'IO::Uncompress::Adapter::Bunzip2'=> '2.074',
+ 'IO::Uncompress::Adapter::Identity'=> '2.074',
+ 'IO::Uncompress::Adapter::Inflate'=> '2.074',
+ 'IO::Uncompress::AnyInflate'=> '2.074',
+ 'IO::Uncompress::AnyUncompress'=> '2.074',
+ 'IO::Uncompress::Base' => '2.074',
+ 'IO::Uncompress::Bunzip2'=> '2.074',
+ 'IO::Uncompress::Gunzip'=> '2.074',
+ 'IO::Uncompress::Inflate'=> '2.074',
+ 'IO::Uncompress::RawInflate'=> '2.074',
+ 'IO::Uncompress::Unzip' => '2.074',
+ 'Module::CoreList' => '5.20170320',
+ 'Module::CoreList::TieHashDelta'=> '5.20170230',
+ 'Module::CoreList::Utils'=> '5.20170320',
+ 'Pod::Perldoc' => '3.28',
+ 'Pod::Perldoc::BaseTo' => '3.28',
+ 'Pod::Perldoc::GetOptsOO'=> '3.28',
+ 'Pod::Perldoc::ToANSI' => '3.28',
+ 'Pod::Perldoc::ToChecker'=> '3.28',
+ 'Pod::Perldoc::ToMan' => '3.28',
+ 'Pod::Perldoc::ToNroff' => '3.28',
+ 'Pod::Perldoc::ToPod' => '3.28',
+ 'Pod::Perldoc::ToRtf' => '3.28',
+ 'Pod::Perldoc::ToTerm' => '3.28',
+ 'Pod::Perldoc::ToText' => '3.28',
+ 'Pod::Perldoc::ToTk' => '3.28',
+ 'Pod::Perldoc::ToXml' => '3.28',
+ 'TAP::Base' => '3.38',
+ 'TAP::Formatter::Base' => '3.38',
+ 'TAP::Formatter::Color' => '3.38',
+ 'TAP::Formatter::Console'=> '3.38',
+ 'TAP::Formatter::Console::ParallelSession'=> '3.38',
+ 'TAP::Formatter::Console::Session'=> '3.38',
+ 'TAP::Formatter::File' => '3.38',
+ 'TAP::Formatter::File::Session'=> '3.38',
+ 'TAP::Formatter::Session'=> '3.38',
+ 'TAP::Harness' => '3.38',
+ 'TAP::Harness::Env' => '3.38',
+ 'TAP::Object' => '3.38',
+ 'TAP::Parser' => '3.38',
+ 'TAP::Parser::Aggregator'=> '3.38',
+ 'TAP::Parser::Grammar' => '3.38',
+ 'TAP::Parser::Iterator' => '3.38',
+ 'TAP::Parser::Iterator::Array'=> '3.38',
+ 'TAP::Parser::Iterator::Process'=> '3.38',
+ 'TAP::Parser::Iterator::Stream'=> '3.38',
+ 'TAP::Parser::IteratorFactory'=> '3.38',
+ 'TAP::Parser::Multiplexer'=> '3.38',
+ 'TAP::Parser::Result' => '3.38',
+ 'TAP::Parser::Result::Bailout'=> '3.38',
+ 'TAP::Parser::Result::Comment'=> '3.38',
+ 'TAP::Parser::Result::Plan'=> '3.38',
+ 'TAP::Parser::Result::Pragma'=> '3.38',
+ 'TAP::Parser::Result::Test'=> '3.38',
+ 'TAP::Parser::Result::Unknown'=> '3.38',
+ 'TAP::Parser::Result::Version'=> '3.38',
+ 'TAP::Parser::Result::YAML'=> '3.38',
+ 'TAP::Parser::ResultFactory'=> '3.38',
+ 'TAP::Parser::Scheduler'=> '3.38',
+ 'TAP::Parser::Scheduler::Job'=> '3.38',
+ 'TAP::Parser::Scheduler::Spinner'=> '3.38',
+ 'TAP::Parser::Source' => '3.38',
+ 'TAP::Parser::SourceHandler'=> '3.38',
+ 'TAP::Parser::SourceHandler::Executable'=> '3.38',
+ 'TAP::Parser::SourceHandler::File'=> '3.38',
+ 'TAP::Parser::SourceHandler::Handle'=> '3.38',
+ 'TAP::Parser::SourceHandler::Perl'=> '3.38',
+ 'TAP::Parser::SourceHandler::RawTAP'=> '3.38',
+ 'TAP::Parser::YAMLish::Reader'=> '3.38',
+ 'TAP::Parser::YAMLish::Writer'=> '3.38',
+ 'Test::Harness' => '3.38',
+ 'VMS::Stdio' => '2.41',
+ 'threads' => '2.15',
+ 'threads::shared' => '1.55',
+ },
+ removed => {
+ }
+ },
+ 5.025012 => {
+ delta_from => 5.025011,
+ changed => {
+ 'B::Op_private' => '5.025012',
+ 'CPAN' => '2.18',
+ 'CPAN::Bundle' => '5.5003',
+ 'CPAN::Distribution' => '2.18',
+ 'Config' => '5.025012',
+ 'DynaLoader' => '1.42',
+ 'Module::CoreList' => '5.20170420',
+ 'Module::CoreList::TieHashDelta'=> '5.20170420',
+ 'Module::CoreList::Utils'=> '5.20170420',
+ 'Safe' => '2.40',
+ 'XSLoader' => '0.27',
+ 'base' => '2.25',
+ 'threads::shared' => '1.56',
+ },
+ removed => {
+ }
+ },
+ 5.026000 => {
+ delta_from => 5.025012,
+ changed => {
+ 'B::Op_private' => '5.026000',
+ 'Config' => '5.026',
+ 'Module::CoreList' => '5.20170530',
+ 'Module::CoreList::TieHashDelta'=> '5.20170530',
+ 'Module::CoreList::Utils'=> '5.20170530',
+ },
+ removed => {
+ }
+ },
+ 5.027000 => {
+ delta_from => 5.026000,
+ changed => {
+ 'Attribute::Handlers' => '1.00',
+ 'B::Concise' => '1.000',
+ 'B::Deparse' => '1.41',
+ 'B::Op_private' => '5.027000',
+ 'Config' => '5.027',
+ 'Module::CoreList' => '5.20170531',
+ 'Module::CoreList::TieHashDelta'=> '5.20170531',
+ 'Module::CoreList::Utils'=> '5.20170531',
+ 'O' => '1.02',
+ 'attributes' => '0.3',
+ 'feature' => '1.48',
+ },
+ removed => {
+ }
+ },
+ 5.027001 => {
+ delta_from => 5.027,
+ changed => {
+ 'App::Prove' => '3.39',
+ 'App::Prove::State' => '3.39',
+ 'App::Prove::State::Result'=> '3.39',
+ 'App::Prove::State::Result::Test'=> '3.39',
+ 'Archive::Tar' => '2.26',
+ 'Archive::Tar::Constant'=> '2.26',
+ 'Archive::Tar::File' => '2.26',
+ 'B::Op_private' => '5.027001',
+ 'B::Terse' => '1.08',
+ 'Config' => '5.027001',
+ 'Devel::PPPort' => '3.36',
+ 'DirHandle' => '1.05',
+ 'ExtUtils::Command' => '7.30',
+ 'ExtUtils::Command::MM' => '7.30',
+ 'ExtUtils::Install' => '2.14',
+ 'ExtUtils::Installed' => '2.14',
+ 'ExtUtils::Liblist' => '7.30',
+ 'ExtUtils::Liblist::Kid'=> '7.30',
+ 'ExtUtils::MM' => '7.30',
+ 'ExtUtils::MM_AIX' => '7.30',
+ 'ExtUtils::MM_Any' => '7.30',
+ 'ExtUtils::MM_BeOS' => '7.30',
+ 'ExtUtils::MM_Cygwin' => '7.30',
+ 'ExtUtils::MM_DOS' => '7.30',
+ 'ExtUtils::MM_Darwin' => '7.30',
+ 'ExtUtils::MM_MacOS' => '7.30',
+ 'ExtUtils::MM_NW5' => '7.30',
+ 'ExtUtils::MM_OS2' => '7.30',
+ 'ExtUtils::MM_QNX' => '7.30',
+ 'ExtUtils::MM_UWIN' => '7.30',
+ 'ExtUtils::MM_Unix' => '7.30',
+ 'ExtUtils::MM_VMS' => '7.30',
+ 'ExtUtils::MM_VOS' => '7.30',
+ 'ExtUtils::MM_Win32' => '7.30',
+ 'ExtUtils::MM_Win95' => '7.30',
+ 'ExtUtils::MY' => '7.30',
+ 'ExtUtils::MakeMaker' => '7.30',
+ 'ExtUtils::MakeMaker::Config'=> '7.30',
+ 'ExtUtils::MakeMaker::Locale'=> '7.30',
+ 'ExtUtils::MakeMaker::version'=> '7.30',
+ 'ExtUtils::MakeMaker::version::regex'=> '7.30',
+ 'ExtUtils::Mkbootstrap' => '7.30',
+ 'ExtUtils::Mksymlists' => '7.30',
+ 'ExtUtils::Packlist' => '2.14',
+ 'ExtUtils::testlib' => '7.30',
+ 'File::Path' => '2.14',
+ 'Filter::Util::Call' => '1.57',
+ 'GDBM_File' => '1.16',
+ 'Getopt::Long' => '2.5',
+ 'IO::Socket::IP' => '0.39',
+ 'IPC::Cmd' => '0.98',
+ 'JSON::PP' => '2.94',
+ 'JSON::PP::Boolean' => '2.94',
+ 'Locale::Codes' => '3.52',
+ 'Locale::Codes::Constants'=> '3.52',
+ 'Locale::Codes::Country'=> '3.52',
+ 'Locale::Codes::Country_Codes'=> '3.52',
+ 'Locale::Codes::Country_Retired'=> '3.52',
+ 'Locale::Codes::Currency'=> '3.52',
+ 'Locale::Codes::Currency_Codes'=> '3.52',
+ 'Locale::Codes::Currency_Retired'=> '3.52',
+ 'Locale::Codes::LangExt'=> '3.52',
+ 'Locale::Codes::LangExt_Codes'=> '3.52',
+ 'Locale::Codes::LangExt_Retired'=> '3.52',
+ 'Locale::Codes::LangFam'=> '3.52',
+ 'Locale::Codes::LangFam_Codes'=> '3.52',
+ 'Locale::Codes::LangFam_Retired'=> '3.52',
+ 'Locale::Codes::LangVar'=> '3.52',
+ 'Locale::Codes::LangVar_Codes'=> '3.52',
+ 'Locale::Codes::LangVar_Retired'=> '3.52',
+ 'Locale::Codes::Language'=> '3.52',
+ 'Locale::Codes::Language_Codes'=> '3.52',
+ 'Locale::Codes::Language_Retired'=> '3.52',
+ 'Locale::Codes::Script' => '3.52',
+ 'Locale::Codes::Script_Codes'=> '3.52',
+ 'Locale::Codes::Script_Retired'=> '3.52',
+ 'Locale::Country' => '3.52',
+ 'Locale::Currency' => '3.52',
+ 'Locale::Language' => '3.52',
+ 'Locale::Script' => '3.52',
+ 'Module::CoreList' => '5.20170621',
+ 'Module::CoreList::TieHashDelta'=> '5.20170621',
+ 'Module::CoreList::Utils'=> '5.20170621',
+ 'PerlIO::scalar' => '0.27',
+ 'PerlIO::via' => '0.17',
+ 'Storable' => '2.63',
+ 'TAP::Base' => '3.39',
+ 'TAP::Formatter::Base' => '3.39',
+ 'TAP::Formatter::Color' => '3.39',
+ 'TAP::Formatter::Console'=> '3.39',
+ 'TAP::Formatter::Console::ParallelSession'=> '3.39',
+ 'TAP::Formatter::Console::Session'=> '3.39',
+ 'TAP::Formatter::File' => '3.39',
+ 'TAP::Formatter::File::Session'=> '3.39',
+ 'TAP::Formatter::Session'=> '3.39',
+ 'TAP::Harness' => '3.39',
+ 'TAP::Harness::Env' => '3.39',
+ 'TAP::Object' => '3.39',
+ 'TAP::Parser' => '3.39',
+ 'TAP::Parser::Aggregator'=> '3.39',
+ 'TAP::Parser::Grammar' => '3.39',
+ 'TAP::Parser::Iterator' => '3.39',
+ 'TAP::Parser::Iterator::Array'=> '3.39',
+ 'TAP::Parser::Iterator::Process'=> '3.39',
+ 'TAP::Parser::Iterator::Stream'=> '3.39',
+ 'TAP::Parser::IteratorFactory'=> '3.39',
+ 'TAP::Parser::Multiplexer'=> '3.39',
+ 'TAP::Parser::Result' => '3.39',
+ 'TAP::Parser::Result::Bailout'=> '3.39',
+ 'TAP::Parser::Result::Comment'=> '3.39',
+ 'TAP::Parser::Result::Plan'=> '3.39',
+ 'TAP::Parser::Result::Pragma'=> '3.39',
+ 'TAP::Parser::Result::Test'=> '3.39',
+ 'TAP::Parser::Result::Unknown'=> '3.39',
+ 'TAP::Parser::Result::Version'=> '3.39',
+ 'TAP::Parser::Result::YAML'=> '3.39',
+ 'TAP::Parser::ResultFactory'=> '3.39',
+ 'TAP::Parser::Scheduler'=> '3.39',
+ 'TAP::Parser::Scheduler::Job'=> '3.39',
+ 'TAP::Parser::Scheduler::Spinner'=> '3.39',
+ 'TAP::Parser::Source' => '3.39',
+ 'TAP::Parser::SourceHandler'=> '3.39',
+ 'TAP::Parser::SourceHandler::Executable'=> '3.39',
+ 'TAP::Parser::SourceHandler::File'=> '3.39',
+ 'TAP::Parser::SourceHandler::Handle'=> '3.39',
+ 'TAP::Parser::SourceHandler::Perl'=> '3.39',
+ 'TAP::Parser::SourceHandler::RawTAP'=> '3.39',
+ 'TAP::Parser::YAMLish::Reader'=> '3.39',
+ 'TAP::Parser::YAMLish::Writer'=> '3.39',
+ 'Test::Harness' => '3.39',
+ 'XS::APItest' => '0.89',
+ '_charnames' => '1.45',
+ 'charnames' => '1.45',
+ 'if' => '0.0607',
+ 'mro' => '1.21',
+ 'threads' => '2.16',
+ 'threads::shared' => '1.57',
+ 'version' => '0.9918',
+ 'version::regex' => '0.9918',
+ },
+ removed => {
+ }
+ },
+ 5.024002 => {
+ delta_from => 5.024001,
+ changed => {
+ 'B::Op_private' => '5.024002',
+ 'Config' => '5.024002',
+ 'Module::CoreList' => '5.20170715_24',
+ 'Module::CoreList::TieHashDelta'=> '5.20170715_24',
+ 'Module::CoreList::Utils'=> '5.20170715_24',
+ 'base' => '2.23_01',
+ },
+ removed => {
+ }
+ },
);
sub is_core
@@ -14407,6 +14992,13 @@ for my $version (sort { $a <=> $b } keys %delta) {
removed => {
}
},
+ 5.022003 => {
+ delta_from => 5.022002,
+ changed => {
+ },
+ removed => {
+ }
+ },
5.024001 => {
delta_from => 5.024000,
changed => {
@@ -14414,6 +15006,62 @@ for my $version (sort { $a <=> $b } keys %delta) {
removed => {
}
},
+ 5.025009 => {
+ delta_from => 5.025008,
+ changed => {
+ },
+ removed => {
+ }
+ },
+ 5.025010 => {
+ delta_from => 5.025009,
+ changed => {
+ },
+ removed => {
+ }
+ },
+ 5.025011 => {
+ delta_from => 5.025010,
+ changed => {
+ },
+ removed => {
+ }
+ },
+ 5.025012 => {
+ delta_from => 5.025011,
+ changed => {
+ },
+ removed => {
+ }
+ },
+ 5.026000 => {
+ delta_from => 5.025012,
+ changed => {
+ },
+ removed => {
+ }
+ },
+ 5.027000 => {
+ delta_from => 5.026,
+ changed => {
+ },
+ removed => {
+ }
+ },
+ 5.027001 => {
+ delta_from => 5.027,
+ changed => {
+ },
+ removed => {
+ }
+ },
+ 5.024002 => {
+ delta_from => 5.024001,
+ changed => {
+ },
+ removed => {
+ }
+ },
);
for my $version (sort { $a <=> $b } keys %deprecated) {
diff --git a/gnu/usr.bin/perl/dist/Module-CoreList/lib/Module/CoreList/TieHashDelta.pm b/gnu/usr.bin/perl/dist/Module-CoreList/lib/Module/CoreList/TieHashDelta.pm
index dedd3ab4995..80af77e0645 100644
--- a/gnu/usr.bin/perl/dist/Module-CoreList/lib/Module/CoreList/TieHashDelta.pm
+++ b/gnu/usr.bin/perl/dist/Module-CoreList/lib/Module/CoreList/TieHashDelta.pm
@@ -3,7 +3,7 @@ package Module::CoreList::TieHashDelta;
use strict;
use vars qw($VERSION);
-$VERSION = '5.20170114_24';
+$VERSION = '5.20170715_24';
sub TIEHASH {
my ($class, $changed, $removed, $parent) = @_;
diff --git a/gnu/usr.bin/perl/dist/Module-CoreList/lib/Module/CoreList/Utils.pm b/gnu/usr.bin/perl/dist/Module-CoreList/lib/Module/CoreList/Utils.pm
index 71edc4f4d07..cb79cd4bcad 100644
--- a/gnu/usr.bin/perl/dist/Module-CoreList/lib/Module/CoreList/Utils.pm
+++ b/gnu/usr.bin/perl/dist/Module-CoreList/lib/Module/CoreList/Utils.pm
@@ -6,7 +6,7 @@ use vars qw[$VERSION %utilities];
use Module::CoreList;
use Module::CoreList::TieHashDelta;
-$VERSION = '5.20170114_24';
+$VERSION = '5.20170715_24';
sub utilities {
my $perl = shift;
@@ -1213,6 +1213,13 @@ my %delta = (
removed => {
}
},
+ 5.022003 => {
+ delta_from => 5.022002,
+ changed => {
+ },
+ removed => {
+ }
+ },
5.024001 => {
delta_from => 5.024000,
changed => {
@@ -1220,6 +1227,64 @@ my %delta = (
removed => {
}
},
+ 5.025009 => {
+ delta_from => 5.025008,
+ changed => {
+ },
+ removed => {
+ 'c2ph' => 1,
+ 'pstruct' => 1,
+ }
+ },
+ 5.025010 => {
+ delta_from => 5.025009,
+ changed => {
+ },
+ removed => {
+ }
+ },
+ 5.025011 => {
+ delta_from => 5.025010,
+ changed => {
+ },
+ removed => {
+ }
+ },
+ 5.025012 => {
+ delta_from => 5.025011,
+ changed => {
+ },
+ removed => {
+ }
+ },
+ 5.026000 => {
+ delta_from => 5.025012,
+ changed => {
+ },
+ removed => {
+ }
+ },
+ 5.027000 => {
+ delta_from => 5.026000,
+ changed => {
+ },
+ removed => {
+ }
+ },
+ 5.027001 => {
+ delta_from => 5.027000,
+ changed => {
+ },
+ removed => {
+ }
+ },
+ 5.024002 => {
+ delta_from => 5.024001,
+ changed => {
+ },
+ removed => {
+ }
+ },
);
for my $version (sort { $a <=> $b } keys %delta) {
diff --git a/gnu/usr.bin/perl/dist/Module-CoreList/t/is_core.t b/gnu/usr.bin/perl/dist/Module-CoreList/t/is_core.t
index 1ddc2603483..3903703fb8d 100644
--- a/gnu/usr.bin/perl/dist/Module-CoreList/t/is_core.t
+++ b/gnu/usr.bin/perl/dist/Module-CoreList/t/is_core.t
@@ -81,4 +81,4 @@ ok(! Module::CoreList->is_core("CGI", undef, 5.021), "CGI not in 5.021");
ok(! Module::CoreList->is_core("CGI", undef, 5.021001), "CGI not in 5.021001");
ok( Module::CoreList::is_core("Config", 0, "5.020"), "Config v0+ is in core in 5.020");
-ok( Module::CoreList::is_core("Config", undef, "5.020"), "Config v(undef) is in core in 7.020");
+ok( Module::CoreList::is_core("Config", undef, "5.020"), "Config v(undef) is in core in 5.020");
diff --git a/gnu/usr.bin/perl/dist/Time-HiRes/HiRes.pm b/gnu/usr.bin/perl/dist/Time-HiRes/HiRes.pm
index 2071e5e83dc..ad9a65c99d2 100644
--- a/gnu/usr.bin/perl/dist/Time-HiRes/HiRes.pm
+++ b/gnu/usr.bin/perl/dist/Time-HiRes/HiRes.pm
@@ -23,12 +23,12 @@ our @EXPORT_OK = qw (usleep sleep ualarm alarm gettimeofday time tv_interval
ITIMER_REAL ITIMER_VIRTUAL ITIMER_PROF ITIMER_REALPROF
TIMER_ABSTIME
d_usleep d_ualarm d_gettimeofday d_getitimer d_setitimer
- d_nanosleep d_clock_gettime d_clock_getres d_hires_utime
+ d_nanosleep d_clock_gettime d_clock_getres
d_clock d_clock_nanosleep
- stat lstat utime
+ stat lstat
);
-our $VERSION = '1.9739';
+our $VERSION = '1.9733';
our $XS_VERSION = $VERSION;
$VERSION = eval $VERSION;
@@ -60,7 +60,6 @@ sub import {
($i eq 'clock' && !&d_clock) ||
($i eq 'nanosleep' && !&d_nanosleep) ||
($i eq 'usleep' && !&d_usleep) ||
- ($i eq 'utime' && !&d_hires_utime) ||
($i eq 'ualarm' && !&d_ualarm)) {
require Carp;
Carp::croak("Time::HiRes::$i(): unimplemented in this platform");
@@ -93,7 +92,7 @@ Time::HiRes - High resolution alarm, sleep, gettimeofday, interval timers
use Time::HiRes qw( usleep ualarm gettimeofday tv_interval nanosleep
clock_gettime clock_getres clock_nanosleep clock
- stat lstat utime);
+ stat lstat );
usleep ($microseconds);
nanosleep ($nanoseconds);
@@ -138,9 +137,6 @@ Time::HiRes - High resolution alarm, sleep, gettimeofday, interval timers
my @stat = stat(FH);
my @stat = lstat("file");
- use Time::HiRes qw( utime );
- utime $floating_seconds, $floating_seconds, file...;
-
=head1 DESCRIPTION
The C<Time::HiRes> module implements a Perl interface to the
@@ -450,26 +446,6 @@ if the operations are
the access time stamp from t2 need not be greater-than the modify
time stamp from t1: it may be equal or I<less>.
-=item utime LIST
-
-As L<perlfunc/utime>
-but with the ability to set the access/modify file timestamps
-in subsecond resolution, if the operating system and the filesystem
-both support such timestamps. To override the standard utime():
-
- use Time::HiRes qw(utime);
-
-Test for the value of &Time::HiRes::d_hires_utime to find out whether
-the operating system supports setting subsecond file timestamps.
-
-As with CORE::utime(), passing undef as both the atime and mtime will
-call the syscall with a NULL argument.
-
-The actual achievable subsecond resolution depends on the combination
-of the operating system and the filesystem.
-
-Returns the number of files successfully changed.
-
=back
=head1 EXAMPLES
@@ -610,13 +586,9 @@ might help in this (in case your system supports CLOCK_MONOTONIC).
Some systems have APIs but not implementations: for example QNX and Haiku
have the interval timer APIs but not the functionality.
-In pre-Sierra macOS (pre-10.12, OS X) clock_getres(), clock_gettime()
-and clock_nanosleep() are emulated using the Mach timers; as a side
-effect of being emulated the CLOCK_REALTIME and CLOCK_MONOTONIC are
-the same timer.
-
-gnukfreebsd seems to have non-functional futimens() and utimensat()
-(at least as of 10.1): therefore the hires utime() does not work.
+In OS X clock_getres(), clock_gettime() and clock_nanosleep() are
+emulated using the Mach timers; as a side effect of being emulated
+the CLOCK_REALTIME and CLOCK_MONOTONIC are the same timer.
=head1 SEE ALSO
diff --git a/gnu/usr.bin/perl/dist/Time-HiRes/HiRes.xs b/gnu/usr.bin/perl/dist/Time-HiRes/HiRes.xs
index 3a5c7a1d63c..38ca0dc3204 100644
--- a/gnu/usr.bin/perl/dist/Time-HiRes/HiRes.xs
+++ b/gnu/usr.bin/perl/dist/Time-HiRes/HiRes.xs
@@ -747,33 +747,21 @@ hrstatns(UV *atime_nsec, UV *mtime_nsec, UV *ctime_nsec)
#endif /* !TIME_HIRES_STAT */
}
-/* Until Apple implements clock_gettime()
- * (ditto clock_getres() and clock_nanosleep())
- * we will emulate them using the Mach kernel interfaces. */
-#if defined(PERL_DARWIN) && \
- (defined(TIME_HIRES_CLOCK_GETTIME_EMULATION) || \
- defined(TIME_HIRES_CLOCK_GETRES_EMULATION) || \
- defined(TIME_HIRES_CLOCK_NANOSLEEP_EMULATION))
-
-#ifndef CLOCK_REALTIME
+/* Until Apple implements clock_gettime() (ditto clock_getres())
+ * we will emulate it using Mach interfaces. */
+#if defined(PERL_DARWIN) && !defined(CLOCK_REALTIME)
+
+# include <mach/mach_time.h>
+
# define CLOCK_REALTIME 0x01
# define CLOCK_MONOTONIC 0x02
-#endif
-#ifndef TIMER_ABSTIME
# define TIMER_ABSTIME 0x01
-#endif
#ifdef USE_ITHREADS
-# define PERL_DARWIN_MUTEX
-#endif
-
-#ifdef PERL_DARWIN_MUTEX
STATIC perl_mutex darwin_time_mutex;
#endif
-#include <mach/mach_time.h>
-
static uint64_t absolute_time_init;
static mach_timebase_info_data_t timebase_info;
static struct timespec timespec_init;
@@ -781,7 +769,7 @@ static struct timespec timespec_init;
static int darwin_time_init() {
struct timeval tv;
int success = 1;
-#ifdef PERL_DARWIN_MUTEX
+#ifdef USE_ITHREADS
MUTEX_LOCK(&darwin_time_mutex);
#endif
if (absolute_time_init == 0) {
@@ -796,13 +784,12 @@ static int darwin_time_init() {
}
}
}
-#ifdef PERL_DARWIN_MUTEX
+#ifdef USE_ITHREADS
MUTEX_UNLOCK(&darwin_time_mutex);
#endif
return success;
}
-#ifdef TIME_HIRES_CLOCK_GETTIME_EMULATION
static int clock_gettime(int clock_id, struct timespec *ts) {
if (darwin_time_init() && timebase_info.denom) {
switch (clock_id) {
@@ -834,9 +821,7 @@ static int clock_gettime(int clock_id, struct timespec *ts) {
SETERRNO(EINVAL, LIB_INVARG);
return -1;
}
-#endif /* TIME_HIRES_CLOCK_GETTIME_EMULATION */
-#ifdef TIME_HIRES_CLOCK_GETRES_EMULATION
static int clock_getres(int clock_id, struct timespec *ts) {
if (darwin_time_init() && timebase_info.denom) {
switch (clock_id) {
@@ -856,9 +841,7 @@ static int clock_getres(int clock_id, struct timespec *ts) {
SETERRNO(EINVAL, LIB_INVARG);
return -1;
}
-#endif /* TIME_HIRES_CLOCK_GETRES_EMULATION */
-#ifdef TIME_HIRES_CLOCK_NANOSLEEP_EMULATION
static int clock_nanosleep(int clock_id, int flags,
const struct timespec *rqtp,
struct timespec *rmtp) {
@@ -896,7 +879,6 @@ static int clock_nanosleep(int clock_id, int flags,
SETERRNO(EINVAL, LIB_INVARG);
return -1;
}
-#endif /* TIME_HIRES_CLOCK_NANOSLEEP_EMULATION */
#endif /* PERL_DARWIN */
@@ -939,22 +921,6 @@ nsec_without_unslept(struct timespec *sleepfor,
#endif
-/* In case Perl and/or Devel::PPPort are too old, minimally emulate
- * IS_SAFE_PATHNAME() (which looks for zero bytes in the pathname). */
-#ifndef IS_SAFE_PATHNAME
-#if PERL_VERSION >= 12 /* Perl_ck_warner is 5.10.0 -> */
-#ifdef WARN_SYSCALLS
-#define WARNEMUCAT WARN_SYSCALLS /* 5.22.0 -> */
-#else
-#define WARNEMUCAT WARN_MISC
-#endif
-#define WARNEMU(opname) Perl_ck_warner(aTHX_ packWARN(WARNEMUCAT), "Invalid \\0 character in pathname for %s",opname)
-#else
-#define WARNEMU(opname) Perl_warn(aTHX_ "Invalid \\0 character in pathname for %s",opname)
-#endif
-#define IS_SAFE_PATHNAME(pv, len, opname) (((len)>1)&&memchr((pv), 0, (len)-1)?(SETERRNO(ENOENT, LIB_INVARG),WARNEMU(opname),FALSE):(TRUE))
-#endif
-
MODULE = Time::HiRes PACKAGE = Time::HiRes
PROTOTYPES: ENABLE
@@ -975,7 +941,7 @@ BOOT:
# endif
#endif
#if defined(PERL_DARWIN)
-# if defined(USE_ITHREADS) && defined(PERL_DARWIN_MUTEX)
+# ifdef USE_ITHREADS
MUTEX_INIT(&darwin_time_mutex);
# endif
#endif
@@ -1351,82 +1317,6 @@ getitimer(which)
#endif /* #if defined(HAS_GETITIMER) && defined(HAS_SETITIMER) */
-#if defined(TIME_HIRES_UTIME)
-
-I32
-utime(accessed, modified, ...)
-PROTOTYPE: $$@
- PREINIT:
- SV* accessed;
- SV* modified;
- SV* file;
-
- struct timespec utbuf[2];
- struct timespec *utbufp = utbuf;
- int tot;
-
- CODE:
- accessed = ST(0);
- modified = ST(1);
- items -= 2;
- tot = 0;
-
- if ( accessed == &PL_sv_undef && modified == &PL_sv_undef )
- utbufp = NULL;
- else {
- if (SvNV(accessed) < 0.0 || SvNV(modified) < 0.0)
- croak("Time::HiRes::utime(%"NVgf", %"NVgf"): negative time not invented yet", SvNV(accessed), SvNV(modified));
- Zero(&utbuf, sizeof utbuf, char);
- utbuf[0].tv_sec = (Time_t)SvNV(accessed); /* time accessed */
- utbuf[0].tv_nsec = (long)( ( SvNV(accessed) - utbuf[0].tv_sec ) * 1e9 );
- utbuf[1].tv_sec = (Time_t)SvNV(modified); /* time modified */
- utbuf[1].tv_nsec = (long)( ( SvNV(modified) - utbuf[1].tv_sec ) * 1e9 );
- }
-
- while (items > 0) {
- file = POPs; items--;
-
- if (SvROK(file) && GvIO(SvRV(file)) && IoIFP(sv_2io(SvRV(file)))) {
- int fd = PerlIO_fileno(IoIFP(sv_2io(file)));
- if (fd < 0)
- SETERRNO(EBADF,RMS_IFI);
- else
-#ifdef HAS_FUTIMENS
- if (futimens(fd, utbufp) == 0)
- tot++;
-#else /* HAS_FUTIMES */
- croak("futimens unimplemented in this platform");
-#endif /* HAS_FUTIMES */
- }
- else {
-#ifdef HAS_UTIMENSAT
- STRLEN len;
- char * name = SvPV(file, len);
- if (IS_SAFE_PATHNAME(name, len, "utime") &&
- utimensat(AT_FDCWD, name, utbufp, 0) == 0)
- tot++;
-#else /* HAS_UTIMENSAT */
- croak("utimensat unimplemented in this platform");
-#endif /* HAS_UTIMENSAT */
- }
- } /* while items */
- RETVAL = tot;
-
- OUTPUT:
- RETVAL
-
-#else /* #if defined(TIME_HIRES_UTIME) */
-
-I32
-utime(accessed, modified, ...)
- CODE:
- croak("Time::HiRes::utime(): unimplemented in this platform");
- RETVAL = 0;
- OUTPUT:
- RETVAL
-
-#endif /* #if defined(TIME_HIRES_UTIME) */
-
#if defined(TIME_HIRES_CLOCK_GETTIME)
NV
diff --git a/gnu/usr.bin/perl/dist/Time-HiRes/Makefile.PL b/gnu/usr.bin/perl/dist/Time-HiRes/Makefile.PL
index 1c1ce1f4dea..087ab79871c 100644
--- a/gnu/usr.bin/perl/dist/Time-HiRes/Makefile.PL
+++ b/gnu/usr.bin/perl/dist/Time-HiRes/Makefile.PL
@@ -354,41 +354,6 @@ int main(int argc, char** argv)
EOM
}
-sub has_futimens {
- return 1 if
- try_compile_and_link(<<EOM);
-#include "EXTERN.h"
-#include "perl.h"
-#include "XSUB.h"
-#include <sys/time.h>
-int main(int argc, char** argv)
-{
- int ret;
- struct timespec ts[2];
- ret = futimens(0, ts);
- ret == 0 ? exit(0) : exit(errno ? errno : -1);
-}
-EOM
-}
-
-sub has_utimensat{
- return 1 if
- try_compile_and_link(<<EOM);
-#include "EXTERN.h"
-#include "perl.h"
-#include "XSUB.h"
-#include <sys/time.h>
-#include <fcntl.h>
-int main(int argc, char** argv)
-{
- int ret;
- struct timespec ts[2];
- ret = utimensat(AT_FDCWD, 0, ts, 0);
- ret == 0 ? exit(0) : exit(errno ? errno : -1);
-}
-EOM
-}
-
sub DEFINE {
my ($def, $val) = @_;
my $define = defined $val ? "$def=$val" : $def ;
@@ -583,7 +548,7 @@ EOD
} elsif ($^O eq 'darwin') {
$has_clock_gettime_emulation++;
$has_clock_gettime++;
- $DEFINE .= ' -DTIME_HIRES_CLOCK_GETTIME -DTIME_HIRES_CLOCK_GETTIME_EMULATION';
+ $DEFINE .= ' -DTIME_HIRES_CLOCK_GETTIME';
}
if ($has_clock_gettime) {
@@ -612,7 +577,7 @@ EOD
} elsif ($^O eq 'darwin') {
$has_clock_getres_emulation++;
$has_clock_getres++;
- $DEFINE .= ' -DTIME_HIRES_CLOCK_GETRES -DTIME_HIRES_CLOCK_GETRES_EMULATION';
+ $DEFINE .= ' -DTIME_HIRES_CLOCK_GETRES';
}
if ($has_clock_getres) {
@@ -638,7 +603,7 @@ EOD
} elsif ($^O eq 'darwin') {
$has_clock_nanosleep++;
$has_clock_nanosleep_emulation++;
- $DEFINE .= ' -DTIME_HIRES_CLOCK_NANOSLEEP -DTIME_HIRES_CLOCK_NANOSLEEP_EMULATION';
+ $DEFINE .= ' -DTIME_HIRES_CLOCK_NANOSLEEP';
}
if ($has_clock_nanosleep) {
@@ -666,36 +631,6 @@ EOD
print "NOT found.\n";
}
- print "Looking for futimens()... ";
- my $has_futimens;
- if (has_futimens()) {
- $has_futimens++;
- $DEFINE .= ' -DHAS_FUTIMENS';
- }
-
- if ($has_futimens) {
- print "found.\n";
- } else {
- print "NOT found.\n";
- }
-
- print "Looking for utimensat()... ";
- my $has_utimensat;
- if (has_utimensat()) {
- $has_utimensat++;
- $DEFINE .= ' -DHAS_UTIMENSAT';
- }
-
- if ($has_utimensat) {
- print "found.\n";
- } else {
- print "NOT found.\n";
- }
-
- if ($has_futimens or $has_utimensat) {
- $DEFINE .= ' -DTIME_HIRES_UTIME';
- }
-
print "Looking for stat() subsecond timestamps...\n";
print "Trying struct stat st_atimespec.tv_nsec...";
@@ -709,7 +644,7 @@ int main(int argc, char** argv) {
}
EOM
$has_stat_st_xtimespec++;
- DEFINE('TIME_HIRES_STAT_ST_XTIMESPEC'); # 1
+ DEFINE('TIME_HIRES_STAT', 1);
}
if ($has_stat_st_xtimespec) {
@@ -729,7 +664,7 @@ int main(int argc, char** argv) {
}
EOM
$has_stat_st_xtimensec++;
- DEFINE('TIME_HIRES_STAT_ST_XTIMENSEC'); # 2
+ DEFINE('TIME_HIRES_STAT', 2);
}
if ($has_stat_st_xtimensec) {
@@ -749,7 +684,7 @@ int main(int argc, char** argv) {
}
EOM
$has_stat_st_xtime_n++;
- DEFINE('TIME_HIRES_STAT_ST_XTIME_N'); # 3
+ DEFINE('TIME_HIRES_STAT', 3);
}
if ($has_stat_st_xtime_n) {
@@ -769,7 +704,7 @@ int main(int argc, char** argv) {
}
EOM
$has_stat_st_xtim++;
- DEFINE('TIME_HIRES_STAT_XTIM'); # 4
+ DEFINE('TIME_HIRES_STAT', 4);
}
if ($has_stat_st_xtim) {
@@ -789,7 +724,7 @@ int main(int argc, char** argv) {
}
EOM
$has_stat_st_uxtime++;
- DEFINE('TIME_HIRES_STAT_ST_UXTIME'); # 5
+ DEFINE('TIME_HIRES_STAT', 5);
}
if ($has_stat_st_uxtime) {
@@ -798,19 +733,6 @@ EOM
print "NOT found.\n";
}
- # See HiRes.xs hrstatns()
- if ($has_stat_st_xtimespec) {
- DEFINE('TIME_HIRES_STAT', 1);
- } elsif ($has_stat_st_xtimensec) {
- DEFINE('TIME_HIRES_STAT', 2);
- } elsif ($has_stat_st_xtime_n) {
- DEFINE('TIME_HIRES_STAT', 3);
- } elsif ($has_stat_st_xtim) {
- DEFINE('TIME_HIRES_STAT', 4);
- } elsif ($has_stat_st_uxtime) {
- DEFINE('TIME_HIRES_STAT', 5);
- }
-
if ($DEFINE =~ /-DTIME_HIRES_STAT=\d+/) {
print "You seem to have stat() subsecond timestamps.\n";
print "(Your struct stat has them, but the filesystems must help.)\n";
@@ -869,7 +791,7 @@ sub doMakefile {
'DynaLoader' => 0,
'Exporter' => 0,
'ExtUtils::MakeMaker' => 0,
- 'Test::More' => 0,
+ 'Test::More' => "0.82",
'strict' => 0,
},
'dist' => {
@@ -947,8 +869,7 @@ sub doConstants {
);
foreach (qw (d_usleep d_ualarm d_gettimeofday d_getitimer d_setitimer
d_nanosleep d_clock_gettime d_clock_getres
- d_clock d_clock_nanosleep d_hires_stat
- d_futimens d_utimensat d_hires_utime)) {
+ d_clock d_clock_nanosleep d_hires_stat)) {
my $macro = $_;
if ($macro =~ /^(d_nanosleep|d_clock)$/) {
$macro =~ s/^d_(.+)/TIME_HIRES_\U$1/;
@@ -958,13 +879,6 @@ sub doConstants {
push @names, {name => $_, macro => "TIME_HIRES_STAT", value => $d_hires_stat,
default => ["IV", "0"]};
next;
- } elsif ($macro =~ /^(d_hires_utime)$/) {
- my $d_hires_utime =
- ($DEFINE =~ /-DHAS_FUTIMENS/ ||
- $DEFINE =~ /-DHAS_UTIMENSAT/) ? 1 : 0;
- push @names, {name => $_, macro => "TIME_HIRES_UTIME", value => $d_hires_utime,
- default => ["IV", "0"]};
- next;
} elsif ($macro =~ /^(d_clock_gettime|d_clock_getres|d_clock_nanosleep)$/) {
$macro =~ s/^d_(.+)/TIME_HIRES_\U$1/;
my $val = ($DEFINE =~ /-D$macro\b/) ? 1 : 0;
diff --git a/gnu/usr.bin/perl/dist/Time-HiRes/fallback/const-c.inc b/gnu/usr.bin/perl/dist/Time-HiRes/fallback/const-c.inc
index 524db169a9f..a8626172af5 100644
--- a/gnu/usr.bin/perl/dist/Time-HiRes/fallback/const-c.inc
+++ b/gnu/usr.bin/perl/dist/Time-HiRes/fallback/const-c.inc
@@ -19,7 +19,6 @@ typedef double NV; /* 5.6 and later define NVTYPE, and typedef NV to it. */
#ifndef pTHX_
#define pTHX_ /* 5.6 or later define this for threading support. */
#endif
-
static int
constant_11 (pTHX_ const char *name, IV *iv_return) {
/* When generated this function returned values for the list of names given
@@ -88,51 +87,6 @@ constant_11 (pTHX_ const char *name, IV *iv_return) {
}
static int
-constant_13 (pTHX_ const char *name, IV *iv_return) {
- /* When generated this function returned values for the list of names given
- here. However, subsequent manual editing may have added or removed some.
- CLOCK_HIGHRES TIMER_ABSTIME d_hires_utime */
- /* Offset 1 gives the best switch position. */
- switch (name[1]) {
- case 'I':
- if (memEQ(name, "TIMER_ABSTIME", 13)) {
- /* ^ */
-#ifdef TIMER_ABSTIME
- *iv_return = TIMER_ABSTIME;
- return PERL_constant_ISIV;
-#else
- return PERL_constant_NOTDEF;
-#endif
- }
- break;
- case 'L':
- if (memEQ(name, "CLOCK_HIGHRES", 13)) {
- /* ^ */
-#ifdef CLOCK_HIGHRES
- *iv_return = CLOCK_HIGHRES;
- return PERL_constant_ISIV;
-#else
- return PERL_constant_NOTDEF;
-#endif
- }
- break;
- case '_':
- if (memEQ(name, "d_hires_utime", 13)) {
- /* ^ */
-#ifdef TIME_HIRES_UTIME
- *iv_return = 1;
- return PERL_constant_ISIV;
-#else
- *iv_return = 0;
- return PERL_constant_ISIV;
-#endif
- }
- break;
- }
- return PERL_constant_NOTFOUND;
-}
-
-static int
constant_14 (pTHX_ const char *name, IV *iv_return) {
/* When generated this function returned values for the list of names given
here. However, subsequent manual editing may have added or removed some.
@@ -296,17 +250,16 @@ my @names = (qw(CLOCKS_PER_SEC CLOCK_HIGHRES CLOCK_MONOTONIC
{name=>"d_getitimer", type=>"IV", macro=>"HAS_GETITIMER", value=>"1", default=>["IV", "0"]},
{name=>"d_gettimeofday", type=>"IV", macro=>"HAS_GETTIMEOFDAY", value=>"1", default=>["IV", "0"]},
{name=>"d_hires_stat", type=>"IV", macro=>"TIME_HIRES_STAT", value=>"1", default=>["IV", "0"]},
- {name=>"d_hires_utime", type=>"IV", macro=>"TIME_HIRES_UTIME", value=>"1", default=>["IV", "0"]},
{name=>"d_nanosleep", type=>"IV", macro=>"TIME_HIRES_NANOSLEEP", value=>"1", default=>["IV", "0"]},
{name=>"d_setitimer", type=>"IV", macro=>"HAS_SETITIMER", value=>"1", default=>["IV", "0"]},
{name=>"d_ualarm", type=>"IV", macro=>"HAS_UALARM", value=>"1", default=>["IV", "0"]},
{name=>"d_usleep", type=>"IV", macro=>"HAS_USLEEP", value=>"1", default=>["IV", "0"]});
-print constant_types(), "\n"; # macro defs
+print constant_types(); # macro defs
foreach (C_constant ("Time::HiRes", 'constant', 'IV', $types, undef, 3, @names) ) {
print $_, "\n"; # C constant subs
}
-print "\n#### XS Section:\n";
+print "#### XS Section:\n";
print XS_constant ("Time::HiRes", $types);
__END__
*/
@@ -369,7 +322,33 @@ __END__
}
break;
case 13:
- return constant_13 (aTHX_ name, iv_return);
+ /* Names all of length 13. */
+ /* CLOCK_HIGHRES TIMER_ABSTIME */
+ /* Offset 2 gives the best switch position. */
+ switch (name[2]) {
+ case 'M':
+ if (memEQ(name, "TIMER_ABSTIME", 13)) {
+ /* ^ */
+#ifdef TIMER_ABSTIME
+ *iv_return = TIMER_ABSTIME;
+ return PERL_constant_ISIV;
+#else
+ return PERL_constant_NOTDEF;
+#endif
+ }
+ break;
+ case 'O':
+ if (memEQ(name, "CLOCK_HIGHRES", 13)) {
+ /* ^ */
+#ifdef CLOCK_HIGHRES
+ *iv_return = CLOCK_HIGHRES;
+ return PERL_constant_ISIV;
+#else
+ return PERL_constant_NOTDEF;
+#endif
+ }
+ break;
+ }
break;
case 14:
return constant_14 (aTHX_ name, iv_return);
diff --git a/gnu/usr.bin/perl/dist/Time-HiRes/t/Watchdog.pm b/gnu/usr.bin/perl/dist/Time-HiRes/t/Watchdog.pm
index 44ec8081dea..83e854396fd 100644
--- a/gnu/usr.bin/perl/dist/Time-HiRes/t/Watchdog.pm
+++ b/gnu/usr.bin/perl/dist/Time-HiRes/t/Watchdog.pm
@@ -10,44 +10,44 @@ my $watchdog_pid;
my $TheEnd;
if ($Config{d_fork}) {
- print("# I am the main process $$, starting the watchdog process...\n");
+ note "I am the main process $$, starting the watchdog process...";
$watchdog_pid = fork();
if (defined $watchdog_pid) {
if ($watchdog_pid == 0) { # We are the kid, set up the watchdog.
my $ppid = getppid();
- print("# I am the watchdog process $$, sleeping for $waitfor seconds...\n");
+ note "I am the watchdog process $$, sleeping for $waitfor seconds...";
sleep($waitfor - 2); # Workaround for perlbug #49073
sleep(2); # Wait for parent to exit
if (kill(0, $ppid)) { # Check if parent still exists
warn "\n$0: overall time allowed for tests (${waitfor}s) exceeded!\n";
- print("Terminating main process $ppid...\n");
+ note "Terminating main process $ppid...";
kill('KILL', $ppid);
- print("# This is the watchdog process $$, over and out.\n");
+ note "This is the watchdog process $$, over and out.";
}
exit(0);
} else {
- print("# The watchdog process $watchdog_pid launched, continuing testing...\n");
+ note "The watchdog process $watchdog_pid launched, continuing testing...";
$TheEnd = time() + $waitfor;
}
} else {
warn "$0: fork failed: $!\n";
}
} else {
- print("# No watchdog process (need fork)\n");
+ note "No watchdog process (need fork)";
}
END {
if ($watchdog_pid) { # Only in the main process.
my $left = $TheEnd - time();
- printf("# I am the main process $$, terminating the watchdog process $watchdog_pid before it terminates me in %d seconds (testing took %d seconds).\n", $left, $waitfor - $left);
+ note sprintf "I am the main process $$, terminating the watchdog process $watchdog_pid before it terminates me in %d seconds (testing took %d seconds).", $left, $waitfor - $left;
if (kill(0, $watchdog_pid)) {
local $? = 0;
my $kill = kill('KILL', $watchdog_pid); # We are done, the watchdog can go.
wait();
- printf("# kill KILL $watchdog_pid = %d\n", $kill);
+ note sprintf "kill KILL $watchdog_pid = %d", $kill;
}
unlink("ktrace.out"); # Used in BSD system call tracing.
- print("# All done.\n");
+ note "All done.";
}
}
diff --git a/gnu/usr.bin/perl/dist/Time-HiRes/t/alarm.t b/gnu/usr.bin/perl/dist/Time-HiRes/t/alarm.t
index f600f99256c..841694f67c2 100644
--- a/gnu/usr.bin/perl/dist/Time-HiRes/t/alarm.t
+++ b/gnu/usr.bin/perl/dist/Time-HiRes/t/alarm.t
@@ -1,6 +1,6 @@
use strict;
-use Test::More tests => 10;
+use Test::More 0.82 tests => 10;
use t::Watchdog;
BEGIN { require_ok "Time::HiRes"; }
@@ -29,14 +29,12 @@ SKIP: {
my ($r, $i, $not, $ok);
- $not = "";
-
$r = [Time::HiRes::gettimeofday()];
$i = 5;
my $oldaction;
if ($use_sigaction) {
$oldaction = new POSIX::SigAction;
- printf("# sigaction tick, ALRM = %d\n", &POSIX::SIGALRM);
+ note sprintf "sigaction tick, ALRM = %d", &POSIX::SIGALRM;
# Perl's deferred signals may be too wimpy to break through
# a restartable select(), so use POSIX::sigaction if available.
@@ -46,7 +44,7 @@ SKIP: {
$oldaction)
or die "Error setting SIGALRM handler with sigaction: $!\n";
} else {
- print("# SIG tick\n");
+ note "SIG tick";
$SIG{ALRM} = "tick";
}
@@ -58,8 +56,8 @@ SKIP: {
Time::HiRes::alarm(0.3);
select (undef, undef, undef, 3);
my $ival = Time::HiRes::tv_interval ($r);
- print("# Select returned! $i $ival\n");
- printf("# %s\n", abs($ival/3 - 1));
+ note "Select returned! $i $ival";
+ note abs($ival/3 - 1);
# Whether select() gets restarted after signals is
# implementation dependent. If it is restarted, we
# will get about 3.3 seconds: 3 from the select, 0.3
@@ -88,7 +86,7 @@ SKIP: {
sub tick {
$i--;
my $ival = Time::HiRes::tv_interval ($r);
- print("# Tick! $i $ival\n");
+ note "Tick! $i $ival";
my $exp = 0.3 * (5 - $i);
if ($exp == 0) {
$not = "tick: divisor became zero";
@@ -108,8 +106,8 @@ SKIP: {
Time::HiRes::alarm(0); # can't cancel usig %SIG
}
- print("# $not\n");
ok !$not;
+ note $not || $ok;
}
SKIP: {
@@ -128,7 +126,7 @@ SKIP: {
# http://groups.google.com/group/perl.perl5.porters/browse_thread/thread/adaffaaf939b042e/20dafc298df737f0%2320dafc298df737f0?sa=X&oi=groupsr&start=0&num=3
# Perl changes [18765] and [18770], perl bug [perl #20920]
- print("# Finding delay loop...\n");
+ note "Finding delay loop...";
my $T = 0.01;
my $DelayN = 1024;
@@ -139,7 +137,7 @@ SKIP: {
for ($i = 0; $i < $DelayN; $i++) { }
my $t1 = Time::HiRes::time();
my $dt = $t1 - $t0;
- print("# N = $DelayN, t1 = $t1, t0 = $t0, dt = $dt\n");
+ note "N = $DelayN, t1 = $t1, t0 = $t0, dt = $dt";
last N if $dt > $T;
$DelayN *= 2;
} while (1);
@@ -171,7 +169,7 @@ SKIP: {
$SIG{ALRM} = sub {
$a++;
- printf("# Alarm $a - %s\n", Time::HiRes::time());
+ note "Alarm $a - ", Time::HiRes::time();
Time::HiRes::alarm(0) if $a >= $A; # Disarm the alarm.
$Delay->(2); # Try burning CPU at least for 2T seconds.
};
@@ -206,18 +204,18 @@ SKIP: {
my $alrm = 0;
$SIG{ALRM} = sub { $alrm++ };
my $got = Time::HiRes::alarm(2.7);
- ok $got == 0 or print("# $got\n");
+ ok $got == 0 or note $got;
my $t0 = Time::HiRes::time();
1 while Time::HiRes::time() - $t0 <= 1;
$got = Time::HiRes::alarm(0);
- ok $got > 0 && $got < 1.8 or print("# $got\n");
+ ok $got > 0 && $got < 1.8 or note $got;
- ok $alrm == 0 or print("# $alrm\n");
+ ok $alrm == 0 or note $alrm;
$got = Time::HiRes::alarm(0);
- ok $got == 0 or print("# $got\n");
+ ok $got == 0 or note $got;
}
}
diff --git a/gnu/usr.bin/perl/dist/Time-HiRes/t/clock.t b/gnu/usr.bin/perl/dist/Time-HiRes/t/clock.t
index 346ca57fbf5..6d11dd2ca0a 100644
--- a/gnu/usr.bin/perl/dist/Time-HiRes/t/clock.t
+++ b/gnu/usr.bin/perl/dist/Time-HiRes/t/clock.t
@@ -1,6 +1,6 @@
use strict;
-use Test::More tests => 5;
+use Test::More 0.82 tests => 5;
use t::Watchdog;
BEGIN { require_ok "Time::HiRes"; }
@@ -13,10 +13,10 @@ sub has_symbol {
return $@ eq '';
}
-printf("# have_clock_gettime = %d\n", &Time::HiRes::d_clock_gettime);
-printf("# have_clock_getres = %d\n", &Time::HiRes::d_clock_getres);
-printf("# have_clock_nanosleep = %d\n", &Time::HiRes::d_clock_nanosleep);
-printf("# have_clock = %d\n", &Time::HiRes::d_clock);
+note sprintf "have_clock_gettime = %d", &Time::HiRes::d_clock_gettime;
+note sprintf "have_clock_getres = %d", &Time::HiRes::d_clock_getres;
+note sprintf "have_clock_nanosleep = %d", &Time::HiRes::d_clock_nanosleep;
+note sprintf "have_clock = %d", &Time::HiRes::d_clock;
# Ideally, we'd like to test that the timers are rather precise.
# However, if the system is busy, there are no guarantees on how
@@ -36,25 +36,25 @@ SKIP: {
my $ok = 0;
TRY: {
for my $try (1..3) {
- print("# CLOCK_REALTIME: try = $try\n");
+ note "CLOCK_REALTIME: try = $try";
my $t0 = Time::HiRes::clock_gettime(&CLOCK_REALTIME);
my $T = 1.5;
Time::HiRes::sleep($T);
my $t1 = Time::HiRes::clock_gettime(&CLOCK_REALTIME);
if ($t0 > 0 && $t1 > $t0) {
- print("# t1 = $t1, t0 = $t0\n");
+ note "t1 = $t1, t0 = $t0";
my $dt = $t1 - $t0;
my $rt = abs(1 - $dt / $T);
- print("# dt = $dt, rt = $rt\n");
+ note "dt = $dt, rt = $rt";
if ($rt <= 2 * $limit) {
$ok = 1;
last TRY;
}
} else {
- print("# Error: t0 = $t0, t1 = $t1\n");
+ note "Error: t0 = $t0, t1 = $t1";
}
my $r = rand() + rand();
- printf("# Sleeping for %.6f seconds...\n", $r);
+ note sprintf "Sleeping for %.6f seconds...\n", $r;
Time::HiRes::sleep($r);
}
}
@@ -64,7 +64,7 @@ SKIP: {
SKIP: {
skip "no clock_getres", 1 unless &Time::HiRes::d_clock_getres;
my $tr = Time::HiRes::clock_getres();
- ok $tr > 0 or print("# tr = $tr\n");
+ ok $tr > 0 or note "tr = $tr";
}
SKIP: {
@@ -73,17 +73,17 @@ SKIP: {
my $s = 1.5e9;
my $t = Time::HiRes::clock_nanosleep(&CLOCK_REALTIME, $s);
my $r = abs(1 - $t / $s);
- ok $r < 2 * $limit or print("# t = $t, r = $r\n");
+ ok $r < 2 * $limit or note "t = $t, r = $r";
}
SKIP: {
skip "no clock", 1 unless &Time::HiRes::d_clock;
my @clock = Time::HiRes::clock();
- print("# clock = @clock\n");
+ note "clock = @clock";
for my $i (1..3) {
for (my $j = 0; $j < 1e6; $j++) { }
push @clock, Time::HiRes::clock();
- print("# clock = @clock\n");
+ note "clock = @clock";
}
ok $clock[0] >= 0 &&
$clock[1] > $clock[0] &&
diff --git a/gnu/usr.bin/perl/dist/Time-HiRes/t/gettimeofday.t b/gnu/usr.bin/perl/dist/Time-HiRes/t/gettimeofday.t
index 69defe8672e..8f7c5f3039a 100644
--- a/gnu/usr.bin/perl/dist/Time-HiRes/t/gettimeofday.t
+++ b/gnu/usr.bin/perl/dist/Time-HiRes/t/gettimeofday.t
@@ -8,26 +8,26 @@ BEGIN {
}
}
-use Test::More tests => 6;
+use Test::More 0.82 tests => 6;
use t::Watchdog;
my @one = Time::HiRes::gettimeofday();
-printf("# gettimeofday returned %d args\n", 0+@one);
+note 'gettimeofday returned ', 0+@one, ' args';
ok @one == 2;
-ok $one[0] > 850_000_000 or print("# @one too small\n");
+ok $one[0] > 850_000_000 or note "@one too small";
sleep 1;
my @two = Time::HiRes::gettimeofday();
ok $two[0] > $one[0] || ($two[0] == $one[0] && $two[1] > $one[1])
- or print("# @two is not greater than @one\n");
+ or note "@two is not greater than @one";
my $f = Time::HiRes::time();
-ok $f > 850_000_000 or print("# $f too small\n");
-ok $f - $two[0] < 2 or print("# $f - $two[0] >= 2\n");
+ok $f > 850_000_000 or note "$f too small";
+ok $f - $two[0] < 2 or note "$f - $two[0] >= 2";
my $r = [Time::HiRes::gettimeofday()];
my $g = Time::HiRes::tv_interval $r;
-ok $g < 2 or print("# $g\n");
+ok $g < 2 or note $g;
1;
diff --git a/gnu/usr.bin/perl/dist/Time-HiRes/t/itimer.t b/gnu/usr.bin/perl/dist/Time-HiRes/t/itimer.t
index 31cdd674ae7..9eb2b93f6f0 100644
--- a/gnu/usr.bin/perl/dist/Time-HiRes/t/itimer.t
+++ b/gnu/usr.bin/perl/dist/Time-HiRes/t/itimer.t
@@ -25,7 +25,7 @@ BEGIN {
}
}
-use Test::More tests => 2;
+use Test::More 0.82 tests => 2;
use t::Watchdog;
my $limit = 0.25; # 25% is acceptable slosh for testing timers
@@ -35,11 +35,11 @@ my $r = [Time::HiRes::gettimeofday()];
$SIG{VTALRM} = sub {
$i ? $i-- : Time::HiRes::setitimer(&Time::HiRes::ITIMER_VIRTUAL, 0);
- printf("# Tick! $i %s\n", Time::HiRes::tv_interval($r));
+ note "Tick! $i ", Time::HiRes::tv_interval($r);
};
-printf("# setitimer: %s\n", join(" ",
- Time::HiRes::setitimer(&Time::HiRes::ITIMER_VIRTUAL, 0.5, 0.4)));
+note "setitimer: ", join(" ",
+ Time::HiRes::setitimer(&Time::HiRes::ITIMER_VIRTUAL, 0.5, 0.4));
# Assume interval timer granularity of $limit * 0.5 seconds. Too bold?
my $virt = Time::HiRes::getitimer(&Time::HiRes::ITIMER_VIRTUAL);
@@ -47,19 +47,19 @@ ok(defined $virt && abs($virt / 0.5) - 1 < $limit,
"ITIMER_VIRTUAL defined with sufficient granularity")
or diag "virt=" . (defined $virt ? $virt : 'undef');
-printf("# getitimer: %s\n", join(" ",
- Time::HiRes::getitimer(&Time::HiRes::ITIMER_VIRTUAL)));
+note "getitimer: ", join(" ",
+ Time::HiRes::getitimer(&Time::HiRes::ITIMER_VIRTUAL));
while (Time::HiRes::getitimer(&Time::HiRes::ITIMER_VIRTUAL)) {
my $j;
for (1..1000) { $j++ } # Can't be unbreakable, must test getitimer().
}
-printf("# getitimer: %s\n", join(" ",
- Time::HiRes::getitimer(&Time::HiRes::ITIMER_VIRTUAL)));
+note "getitimer: ", join(" ",
+ Time::HiRes::getitimer(&Time::HiRes::ITIMER_VIRTUAL));
$virt = Time::HiRes::getitimer(&Time::HiRes::ITIMER_VIRTUAL);
-print("# at end, i=$i\n");
+note "at end, i=$i";
is($virt, 0, "time left should be zero");
$SIG{VTALRM} = 'DEFAULT';
diff --git a/gnu/usr.bin/perl/dist/Time-HiRes/t/nanosleep.t b/gnu/usr.bin/perl/dist/Time-HiRes/t/nanosleep.t
index c17a7e4790e..aef9db6163c 100644
--- a/gnu/usr.bin/perl/dist/Time-HiRes/t/nanosleep.t
+++ b/gnu/usr.bin/perl/dist/Time-HiRes/t/nanosleep.t
@@ -8,7 +8,7 @@ BEGIN {
}
}
-use Test::More tests => 3;
+use Test::More 0.82 tests => 3;
use t::Watchdog;
eval { Time::HiRes::nanosleep(-5) };
@@ -21,7 +21,7 @@ my $two = CORE::time;
Time::HiRes::nanosleep(10_000_000);
my $three = CORE::time;
ok $one == $two || $two == $three
- or print("# slept too long, $one $two $three\n");
+ or note "slept too long, $one $two $three";
SKIP: {
skip "no gettimeofday", 1 unless &Time::HiRes::d_gettimeofday;
@@ -29,7 +29,7 @@ SKIP: {
Time::HiRes::nanosleep(500_000_000);
my $f2 = Time::HiRes::time();
my $d = $f2 - $f;
- ok $d > 0.4 && $d < 0.9 or print("# slept $d secs $f to $f2\n");
+ ok $d > 0.4 && $d < 0.9 or note "slept $d secs $f to $f2";
}
1;
diff --git a/gnu/usr.bin/perl/dist/Time-HiRes/t/sleep.t b/gnu/usr.bin/perl/dist/Time-HiRes/t/sleep.t
index c4d802be402..e7cc6271a89 100644
--- a/gnu/usr.bin/perl/dist/Time-HiRes/t/sleep.t
+++ b/gnu/usr.bin/perl/dist/Time-HiRes/t/sleep.t
@@ -1,6 +1,6 @@
use strict;
-use Test::More tests => 4;
+use Test::More 0.82 tests => 4;
use t::Watchdog;
BEGIN { require_ok "Time::HiRes"; }
@@ -26,12 +26,12 @@ like $@, qr/::sleep\(-1\): negative time not invented yet/,
SKIP: {
skip "no subsecond alarm", 2 unless $can_subsecond_alarm;
my $f = Time::HiRes::time;
- print("# time...$f\n");
+ note "time...$f";
ok 1;
my $r = [Time::HiRes::gettimeofday()];
Time::HiRes::sleep (0.5);
- printf("# sleep...%s\n", Time::HiRes::tv_interval($r));
+ note "sleep...", Time::HiRes::tv_interval($r);
ok 1;
}
diff --git a/gnu/usr.bin/perl/dist/Time-HiRes/t/stat.t b/gnu/usr.bin/perl/dist/Time-HiRes/t/stat.t
index e7552b5e256..68a6fb6bbdc 100644
--- a/gnu/usr.bin/perl/dist/Time-HiRes/t/stat.t
+++ b/gnu/usr.bin/perl/dist/Time-HiRes/t/stat.t
@@ -13,7 +13,7 @@ BEGIN {
}
}
-use Test::More tests => 43;
+use Test::More 0.82 tests => 43;
use t::Watchdog;
my @atime;
@@ -42,8 +42,8 @@ for (1..5) {
is_deeply $lstat, $stat;
}
1 while unlink $$;
-print("# mtime = @mtime\n");
-print("# atime = @atime\n");
+note "mtime = @mtime";
+note "atime = @atime";
my $ai = 0;
my $mi = 0;
my $ss = 0;
@@ -63,7 +63,7 @@ for (my $i = 1; $i < @mtime; $i++) {
$ss++;
}
}
-print("# ai = $ai, mi = $mi, ss = $ss\n");
+note "ai = $ai, mi = $mi, ss = $ss";
# Need at least 75% of monotonical increase and
# 20% of subsecond results. Yes, this is guessing.
SKIP: {
diff --git a/gnu/usr.bin/perl/dist/Time-HiRes/t/time.t b/gnu/usr.bin/perl/dist/Time-HiRes/t/time.t
index 6f219f9e0c4..feec4799d90 100644
--- a/gnu/usr.bin/perl/dist/Time-HiRes/t/time.t
+++ b/gnu/usr.bin/perl/dist/Time-HiRes/t/time.t
@@ -1,6 +1,6 @@
use strict;
-use Test::More tests => 2;
+use Test::More 0.82 tests => 2;
use t::Watchdog;
BEGIN { require_ok "Time::HiRes"; }
@@ -16,8 +16,8 @@ SKIP: {
# (CORE::time() may be rounding down, up, or closest),
# but allow 10% of slop.
ok abs($s) / $n <= 1.10
- or print("# Time::HiRes::time() not close to CORE::time()\n");
- printf("# s = $s, n = $n, s/n = %s\n", abs($s)/$n);
+ or note "Time::HiRes::time() not close to CORE::time()";
+ note "s = $s, n = $n, s/n = ", abs($s)/$n;
}
1;
diff --git a/gnu/usr.bin/perl/dist/Time-HiRes/t/tv_interval.t b/gnu/usr.bin/perl/dist/Time-HiRes/t/tv_interval.t
index 8ac876daf3a..bffcf39ec10 100644
--- a/gnu/usr.bin/perl/dist/Time-HiRes/t/tv_interval.t
+++ b/gnu/usr.bin/perl/dist/Time-HiRes/t/tv_interval.t
@@ -1,10 +1,10 @@
use strict;
-use Test::More tests => 2;
+use Test::More 0.82 tests => 2;
BEGIN { require_ok "Time::HiRes"; }
my $f = Time::HiRes::tv_interval [5, 100_000], [10, 500_000];
-ok abs($f - 5.4) < 0.001 or print("# $f\n");
+ok abs($f - 5.4) < 0.001 or note $f;
1;
diff --git a/gnu/usr.bin/perl/dist/Time-HiRes/t/ualarm.t b/gnu/usr.bin/perl/dist/Time-HiRes/t/ualarm.t
index b50a175f449..12ef4b52cc5 100644
--- a/gnu/usr.bin/perl/dist/Time-HiRes/t/ualarm.t
+++ b/gnu/usr.bin/perl/dist/Time-HiRes/t/ualarm.t
@@ -8,7 +8,7 @@ BEGIN {
}
}
-use Test::More tests => 12;
+use Test::More 0.82 tests => 12;
use t::Watchdog;
use Config;
@@ -24,13 +24,13 @@ SKIP: {
$tick = 0; Time::HiRes::ualarm(10_000); while ($tick == 0) { }
my $three = CORE::time;
ok $one == $two || $two == $three
- or print("# slept too long, $one $two $three\n");
- print("# tick = $tick, one = $one, two = $two, three = $three\n");
+ or note "slept too long, $one $two $three";
+ note "tick = $tick, one = $one, two = $two, three = $three";
$tick = 0; Time::HiRes::ualarm(10_000, 10_000); while ($tick < 3) { }
ok 1;
Time::HiRes::ualarm(0);
- print("# tick = $tick, one = $one, two = $two, three = $three\n");
+ note "tick = $tick, one = $one, two = $two, three = $three";
}
eval { Time::HiRes::ualarm(-4) };
@@ -59,24 +59,24 @@ for my $n (100_000, 1_100_000, 2_200_000, 4_300_000) {
my $alarmed = 0;
local $SIG{ ALRM } = sub { $alarmed++ };
my $t0 = Time::HiRes::time();
- print("# t0 = $t0\n");
- print("# ualarm($n)\n");
+ note "t0 = $t0";
+ note "ualarm($n)";
Time::HiRes::ualarm($n); 1 while $alarmed == 0;
my $t1 = Time::HiRes::time();
- print("# t1 = $t1\n");
+ note "t1 = $t1";
my $dt = $t1 - $t0;
- print("# dt = $dt\n");
+ note "dt = $dt";
my $r = $dt / ($n/1e6);
- print("# r = $r\n");
+ note "r = $r";
$ok =
($n < 1_000_000 || # Too much noise.
($r >= 0.8 && $r <= 1.6));
last if $ok;
my $nap = bellish(3, 15);
- printf("# Retrying in %.1f seconds...\n", $nap);
+ note sprintf "Retrying in %.1f seconds...\n", $nap;
Time::HiRes::sleep($nap);
}
- ok $ok or print("# ualarm($n) close enough\n");
+ ok $ok or note "ualarm($n) close enough";
}
{
@@ -93,12 +93,12 @@ for my $n (100_000, 1_100_000, 2_200_000, 4_300_000) {
} while $t1 - $t0 <= 0.3;
my $got1 = Time::HiRes::ualarm(0);
- print("# t0 = $t0\n");
- print("# got0 = $got0\n");
- print("# t1 = $t1\n");
- printf("# t1 - t0 = %s\n", ($t1 - $t0));
- print("# got1 = $got1\n");
- ok $got0 == 0 or print("# $got0\n");
+ note "t0 = $t0";
+ note "got0 = $got0";
+ note "t1 = $t1";
+ note "t1 - t0 = ", ($t1 - $t0);
+ note "got1 = $got1";
+ ok $got0 == 0 or note $got0;
SKIP: {
skip "alarm interval exceeded", 2 if $t1 - $t0 >= 0.5;
ok $got1 > 0;
@@ -106,7 +106,7 @@ for my $n (100_000, 1_100_000, 2_200_000, 4_300_000) {
}
ok $got1 < 300_000;
my $got2 = Time::HiRes::ualarm(0);
- ok $got2 == 0 or print("# $got2\n");
+ ok $got2 == 0 or note $got2;
}
1;
diff --git a/gnu/usr.bin/perl/dist/Time-HiRes/t/usleep.t b/gnu/usr.bin/perl/dist/Time-HiRes/t/usleep.t
index bdf372bd163..0d6bacfac34 100644
--- a/gnu/usr.bin/perl/dist/Time-HiRes/t/usleep.t
+++ b/gnu/usr.bin/perl/dist/Time-HiRes/t/usleep.t
@@ -8,7 +8,7 @@ BEGIN {
}
}
-use Test::More tests => 6;
+use Test::More 0.82 tests => 6;
use t::Watchdog;
eval { Time::HiRes::usleep(-2) };
@@ -23,7 +23,7 @@ my $two = CORE::time;
Time::HiRes::usleep(10_000);
my $three = CORE::time;
ok $one == $two || $two == $three
-or print("# slept too long, $one $two $three\n");
+or note "slept too long, $one $two $three";
SKIP: {
skip "no gettimeofday", 1 unless &Time::HiRes::d_gettimeofday;
@@ -31,7 +31,7 @@ SKIP: {
Time::HiRes::usleep(500_000);
my $f2 = Time::HiRes::time();
my $d = $f2 - $f;
- ok $d > 0.4 && $d < 0.9 or print("# slept $d secs $f to $f2\n");
+ ok $d > 0.4 && $d < 0.9 or note "slept $d secs $f to $f2";
}
SKIP: {
@@ -39,7 +39,7 @@ SKIP: {
my $r = [ Time::HiRes::gettimeofday() ];
Time::HiRes::sleep( 0.5 );
my $f = Time::HiRes::tv_interval $r;
- ok $f > 0.4 && $f < 0.9 or print("# slept $f instead of 0.5 secs.\n");
+ ok $f > 0.4 && $f < 0.9 or note "slept $f instead of 0.5 secs.";
}
SKIP: {
@@ -59,7 +59,7 @@ SKIP: {
SKIP: {
skip $msg, 1 unless $td < $sleep * (1 + $limit);
- ok $a < $limit or print("# $msg\n");
+ ok $a < $limit or note $msg;
}
$t0 = Time::HiRes::gettimeofday();
@@ -71,7 +71,7 @@ SKIP: {
SKIP: {
skip $msg, 1 unless $td < $sleep * (1 + $limit);
- ok $a < $limit or print("# $msg\n");
+ ok $a < $limit or note $msg;
}
}
diff --git a/gnu/usr.bin/perl/dist/base/lib/base.pm b/gnu/usr.bin/perl/dist/base/lib/base.pm
index 40c1ffde9a1..edb35494762 100644
--- a/gnu/usr.bin/perl/dist/base/lib/base.pm
+++ b/gnu/usr.bin/perl/dist/base/lib/base.pm
@@ -7,10 +7,9 @@ $VERSION = '2.23_01';
$VERSION =~ tr/_//d;
# simplest way to avoid indexing of the package: no package statement
-sub base::__inc_scope_guard::DESTROY {
- my $noop = $_[0][0];
- ref $_ and $_ == $noop and $_ = '.' for @INC;
-}
+sub base::__inc::unhook { @INC = grep !(ref eq 'CODE' && $_ == $_[0]), @INC }
+# instance is blessed array of coderefs to be removed from @INC at scope exit
+sub base::__inc::scope_guard::DESTROY { base::__inc::unhook $_ for @{$_[0]} }
# constant.pm is slow
sub SUCCESS () { 1 }
@@ -103,11 +102,53 @@ sub import {
{
local $SIG{__DIE__};
my $fn = _module_to_filename($base);
- my $dotty = $INC[-1] eq '.' && ( $INC[-1] = sub {()} );
+ my $dot_hidden;
eval {
- my $redotty = $dotty && bless [ $dotty ], 'base::__inc_scope_guard';
+ my $guard;
+ if ($INC[-1] eq '.' && %{"$base\::"}) {
+ # So: the package already exists => this an optional load
+ # And: there is a dot at the end of @INC => we want to hide it
+ # However: we only want to hide it during our *own* require()
+ # (i.e. without affecting nested require()s).
+ # So we add a hook to @INC whose job is to hide the dot, but which
+ # first checks checks the callstack depth, because within nested
+ # require()s the callstack is deeper.
+ # Since CORE::GLOBAL::require makes it unknowable in advance what
+ # the exact relevant callstack depth will be, we have to record it
+ # inside a hook. So we put another hook just for that at the front
+ # of @INC, where it's guaranteed to run -- immediately.
+ # The dot-hiding hook does its job by sitting directly in front of
+ # the dot and removing itself from @INC when reached. This causes
+ # the dot to move up one index in @INC, causing the loop inside
+ # pp_require() to skip it.
+ # Loaded coded may disturb this precise arrangement, but that's OK
+ # because the hook is inert by that time. It is only active during
+ # the top-level require(), when @INC is in our control. The only
+ # possible gotcha is if other hooks already in @INC modify @INC in
+ # some way during that initial require().
+ # Note that this jiggery hookery works just fine recursively: if
+ # a module loaded via base.pm uses base.pm itself, there will be
+ # one pair of hooks in @INC per base::import call frame, but the
+ # pairs from different nestings do not interfere with each other.
+ my $lvl;
+ unshift @INC, sub { return if defined $lvl; 1 while defined caller ++$lvl; () };
+ splice @INC, -1, 0, sub { return if defined caller $lvl; ++$dot_hidden, &base::__inc::unhook; () };
+ $guard = bless [ @INC[0,-2] ], 'base::__inc::scope_guard';
+ }
require $fn
};
+ if ($dot_hidden && (my @fn = grep -e && !( -d _ || -b _ ), $fn.'c', $fn)) {
+ require Carp;
+ Carp::croak(<<ERROR);
+Base class package "$base" is not empty but "$fn[0]" exists in the current directory.
+ To help avoid security issues, base.pm now refuses to load optional modules
+ from the current working directory when it is the last entry in \@INC.
+ If your software worked on previous versions of Perl, the best solution
+ is to use FindBin to detect the path properly and to add that path to
+ \@INC. As a last resort, you can re-enable looking in the current working
+ directory by adding "use lib '.'" to your code.
+ERROR
+ }
# Only ignore "Can't locate" errors from our eval require.
# Other fatal errors (syntax etc) must be reported.
#
@@ -120,26 +161,12 @@ sub import {
|| $@ =~ /Compilation failed in require at .* line [0-9]+(?:, <[^>]*> (?:line|chunk) [0-9]+)?\.\n\z/;
unless (%{"$base\::"}) {
require Carp;
- my @inc = $dotty ? @INC[0..$#INC-1] : @INC;
local $" = " ";
- my $e = <<ERROR;
+ Carp::croak(<<ERROR);
Base class package "$base" is empty.
(Perhaps you need to 'use' the module which defines that package first,
- or make that module available in \@INC (\@INC contains: @inc).
+ or make that module available in \@INC (\@INC contains: @INC).
ERROR
- if ($dotty && -e $fn) {
- $e .= <<ERROS;
- The file $fn does exist in the current directory. But note
- that base.pm, when loading a module, now ignores the current working
- directory if it is the last entry in \@INC. If your software worked on
- previous versions of Perl, the best solution is to use FindBin to
- detect the path properly and to add that path to \@INC. As a last
- resort, you can re-enable looking in the current working directory by
- adding "use lib '.'" to your code.
-ERROS
- }
- $e =~ s/\n\z/)\n/;
- Carp::croak($e);
}
$sigdie = $SIG{__DIE__} || undef;
}
diff --git a/gnu/usr.bin/perl/dist/base/t/incdot.t b/gnu/usr.bin/perl/dist/base/t/incdot.t
index 1619492250e..412b2feefb0 100644
--- a/gnu/usr.bin/perl/dist/base/t/incdot.t
+++ b/gnu/usr.bin/perl/dist/base/t/incdot.t
@@ -2,18 +2,54 @@
use strict;
-use base ();
+#######################################################################
-use Test::More tests => 2;
+sub array_diff {
+ my ( $got, $expected ) = @_;
+ push @$got, ( '(missing)' ) x ( @$expected - @$got ) if @$got < @$expected;
+ push @$expected, ( '(should not exist)' ) x ( @$got - @$expected ) if @$got > @$expected;
+ join "\n ", ' All differences:', (
+ map +( "got [$_] " . $got->[$_], 'expected'.(' ' x length).$expected->[$_] ),
+ grep $got->[$_] ne $expected->[$_],
+ 0 .. $#$got
+ );
+}
-if ($INC[-1] ne '.') { push @INC, '.' }
+#######################################################################
-my $inc = quotemeta "@INC[0..$#INC-1]";
+use Test::More tests => 8; # some extra tests in t/lib/BaseInc*
-eval { 'base'->import("foo") };
-like $@, qr/\@INC contains: $inc\).\)/,
- 'Error does not list final dot in @INC (or mention use lib)';
-eval { 'base'->import('t::lib::Dummy') };
-like $@, qr<\@INC contains: $inc\).\n(?x:
- ) The file t/lib/Dummy\.pm does exist in the current direct>,
- 'special cur dir message for existing files in . that are ignored';
+use lib 't/lib', sub {()};
+
+# make it look like an older perl
+BEGIN { push @INC, '.' if $INC[-1] ne '.' }
+
+BEGIN {
+ my $x = sub { CORE::require $_[0] };
+ my $y = sub { &$x };
+ my $z = sub { &$y };
+ *CORE::GLOBAL::require = $z;
+}
+
+my @expected; BEGIN { @expected = @INC }
+
+use base 'BaseIncMandatory';
+
+BEGIN {
+ @t::lib::Dummy::ISA = (); # make it look like an optional load
+ my $success = eval q{use base 't::lib::Dummy'}, my $err = $@;
+ ok !$success, 'loading optional modules from . using base.pm fails';
+ is_deeply \@INC, \@expected, '... without changes to @INC'
+ or diag array_diff [@INC], [@expected];
+ like $err, qr!Base class package "t::lib::Dummy" is not empty but "t/lib/Dummy\.pm" exists in the current directory\.!,
+ '... and the proper error message';
+}
+
+BEGIN { @BaseIncOptional::ISA = () } # make it look like an optional load
+use base 'BaseIncOptional';
+
+BEGIN {
+ @expected = ( 't/lib/on-head', @expected, 't/lib/on-tail' );
+ is_deeply \@INC, \@expected, 'modules loaded by base can extend @INC at both ends'
+ or diag array_diff [@INC], [@expected];
+}
diff --git a/gnu/usr.bin/perl/dist/base/t/incmodified-vs-incdot.t b/gnu/usr.bin/perl/dist/base/t/incmodified-vs-incdot.t
deleted file mode 100644
index a5288e861f5..00000000000
--- a/gnu/usr.bin/perl/dist/base/t/incmodified-vs-incdot.t
+++ /dev/null
@@ -1,27 +0,0 @@
-#!/usr/bin/perl -w
-
-use strict;
-use Test::More tests => 10; # one test is in each BaseInc* itself
-
-use lib 't/lib';
-
-# make it look like an older perl
-BEGIN { push @INC, '.' if $INC[-1] ne '.' }
-
-use base 'BaseIncExtender';
-
-BEGIN {
- is $INC[0], 't/lib/blahblah', 'modules loaded by base can prepend entries to @INC';
- is $INC[1], 't/lib', 'previously prepended additional @INC entry remains';
- is $INC[-1], '.', 'dot still at end @INC after using base';
-}
-
-use base 'BaseIncDoubleExtender';
-
-BEGIN {
- is $INC[0], 't/lib/blahdeblah', 'modules loaded by base can prepend entries to @INC';
- is $INC[1], 't/lib/blahblah', 'previously prepended additional @INC entry remains';
- is $INC[2], 't/lib', 'previously prepended additional @INC entry remains';
- is $INC[-2], '.', 'dot still at previous end of @INC after using base';
- is $INC[-1], 't/lib/on-end', 'modules loaded by base can append entries to @INC';
-}
diff --git a/gnu/usr.bin/perl/dist/base/t/lib/BaseIncDoubleExtender.pm b/gnu/usr.bin/perl/dist/base/t/lib/BaseIncDoubleExtender.pm
deleted file mode 100644
index 455c5de5138..00000000000
--- a/gnu/usr.bin/perl/dist/base/t/lib/BaseIncDoubleExtender.pm
+++ /dev/null
@@ -1,9 +0,0 @@
-package BaseIncDoubleExtender;
-
-BEGIN { ::ok( $INC[-1] ne '.', 'no trailing dot in @INC during module load from base' ) }
-
-use lib 't/lib/blahdeblah';
-
-push @INC, 't/lib/on-end';
-
-1;
diff --git a/gnu/usr.bin/perl/dist/base/t/lib/BaseIncExtender.pm b/gnu/usr.bin/perl/dist/base/t/lib/BaseIncExtender.pm
deleted file mode 100644
index 3b693adc066..00000000000
--- a/gnu/usr.bin/perl/dist/base/t/lib/BaseIncExtender.pm
+++ /dev/null
@@ -1,7 +0,0 @@
-package BaseIncExtender;
-
-BEGIN { ::ok( $INC[-1] ne '.', 'no trailing dot in @INC during module load from base' ) }
-
-use lib 't/lib/blahblah';
-
-1;
diff --git a/gnu/usr.bin/perl/dist/threads-shared/t/stress.t b/gnu/usr.bin/perl/dist/threads-shared/t/stress.t
index e3c1441288e..1dd95e39595 100755
--- a/gnu/usr.bin/perl/dist/threads-shared/t/stress.t
+++ b/gnu/usr.bin/perl/dist/threads-shared/t/stress.t
@@ -83,7 +83,7 @@ use threads::shared;
print "# Looping for $busycount iterations should take about 0.025s\n";
}
- my $TIMEOUT = 600;
+ my $TIMEOUT = 60;
my $mutex = 1;
share($mutex);
diff --git a/gnu/usr.bin/perl/embed.fnc b/gnu/usr.bin/perl/embed.fnc
index a64ffbac747..d59eb35bc90 100644
--- a/gnu/usr.bin/perl/embed.fnc
+++ b/gnu/usr.bin/perl/embed.fnc
@@ -344,6 +344,10 @@ Ap |I32 |debstackptrs
pR |SV * |defelem_target |NN SV *sv|NULLOK MAGIC *mg
Anp |char* |delimcpy |NN char* to|NN const char* toend|NN const char* from \
|NN const char* fromend|int delim|NN I32* retlen
+np |char* |delimcpy_no_escape|NN char* to|NN const char* toend \
+ |NN const char* from \
+ |NN const char* fromend|int delim \
+ |NN I32* retlen
: Used in op.c, perl.c
pM |void |delete_eval_scope
Aprd |OP* |die_sv |NN SV *baseex
diff --git a/gnu/usr.bin/perl/embed.h b/gnu/usr.bin/perl/embed.h
index 42c65b2eb04..5b2998d79ee 100644
--- a/gnu/usr.bin/perl/embed.h
+++ b/gnu/usr.bin/perl/embed.h
@@ -1206,6 +1206,7 @@
#define deb_stack_all() Perl_deb_stack_all(aTHX)
#define defelem_target(a,b) Perl_defelem_target(aTHX_ a,b)
#define delete_eval_scope() Perl_delete_eval_scope(aTHX)
+#define delimcpy_no_escape Perl_delimcpy_no_escape
#define die_unwind(a) Perl_die_unwind(aTHX_ a)
#define do_aexec5(a,b,c,d,e) Perl_do_aexec5(aTHX_ a,b,c,d,e)
#define do_dump_pad(a,b,c,d) Perl_do_dump_pad(aTHX_ a,b,c,d)
diff --git a/gnu/usr.bin/perl/ext/DynaLoader/Makefile.PL b/gnu/usr.bin/perl/ext/DynaLoader/Makefile.PL
index 81bd54665a7..864af3ed8e2 100644
--- a/gnu/usr.bin/perl/ext/DynaLoader/Makefile.PL
+++ b/gnu/usr.bin/perl/ext/DynaLoader/Makefile.PL
@@ -65,8 +65,8 @@ sub MY::static {
return "
$object : \$(FIRST_MAKEFILE) \$(OBJECT)
- #\$(RM_RF) $object
- #\$(CP) \$(OBJECT) $object
+ \$(RM_RF) $object
+ \$(CP) \$(OBJECT) $object
static :: $object
";
diff --git a/gnu/usr.bin/perl/ext/NDBM_File/Makefile.PL b/gnu/usr.bin/perl/ext/NDBM_File/Makefile.PL
index a48c039fa88..a8adbf01218 100644
--- a/gnu/usr.bin/perl/ext/NDBM_File/Makefile.PL
+++ b/gnu/usr.bin/perl/ext/NDBM_File/Makefile.PL
@@ -1,7 +1,7 @@
use ExtUtils::MakeMaker;
WriteMakefile(
NAME => 'NDBM_File',
- #LIBS => ["-L/usr/local/lib -lndbm", "-ldbm -lucb"],
+ LIBS => ["-L/usr/local/lib -lndbm", "-ldbm -lucb"],
XSPROTOARG => '-noprototypes', # XXX remove later?
VERSION_FROM => 'NDBM_File.pm',
INC => ($^O eq "MacOS" ? "-i ::::db:include" : "")
diff --git a/gnu/usr.bin/perl/ext/POSIX/t/sigaction.t b/gnu/usr.bin/perl/ext/POSIX/t/sigaction.t
index b96812f3470..d19341c2461 100644
--- a/gnu/usr.bin/perl/ext/POSIX/t/sigaction.t
+++ b/gnu/usr.bin/perl/ext/POSIX/t/sigaction.t
@@ -202,7 +202,7 @@ SKIP: {
$skip{pid}{$^O} = $skip{uid}{$^O} = "not set for kill()"
if (($^O.$Config{osvers}) =~ /^darwin[0-8]\./
||
- ($^O.$Config{osvers}) =~ /^openbsd[0-6]\./);
+ ($^O.$Config{osvers}) =~ /^openbsd[0-5]\./);
my $tests = keys %{{ %siginfo, %opt_val }};
eval 'use POSIX qw(SA_SIGINFO); SA_SIGINFO';
skip("no SA_SIGINFO", $tests) if $@;
diff --git a/gnu/usr.bin/perl/hints/catamount.sh b/gnu/usr.bin/perl/hints/catamount.sh
index f95afbf062a..6a514def2ed 100644
--- a/gnu/usr.bin/perl/hints/catamount.sh
+++ b/gnu/usr.bin/perl/hints/catamount.sh
@@ -31,11 +31,11 @@
# mkdir -p /opt/perl-catamount
# mkdir -p /opt/perl-catamount/include
# mkdir -p /opt/perl-catamount/lib
-# mkdir -p /opt/perl-catamount/lib/perl5/5.24.1
+# mkdir -p /opt/perl-catamount/lib/perl5/5.24.2
# mkdir -p /opt/perl-catamount/bin
# cp *.h /opt/perl-catamount/include
# cp libperl.a /opt/perl-catamount/lib
-# cp -pr lib/* /opt/perl-catamount/lib/perl5/5.24.1
+# cp -pr lib/* /opt/perl-catamount/lib/perl5/5.24.2
# cp miniperl perl run.sh cc.sh /opt/perl-catamount/lib
#
# With the headers and the libperl.a you can embed Perl to your Catamount
diff --git a/gnu/usr.bin/perl/hints/openbsd.sh b/gnu/usr.bin/perl/hints/openbsd.sh
index c36b9acadae..6c366ec2d08 100644
--- a/gnu/usr.bin/perl/hints/openbsd.sh
+++ b/gnu/usr.bin/perl/hints/openbsd.sh
@@ -84,8 +84,6 @@ esac
# around for old NetBSD binaries.
libswanted=`echo $libswanted | sed 's/ crypt / /'`
-libswanted=`echo $libswanted | sed 's/ util / /'`
-
# Configure can't figure this out non-interactively
d_suidsafe=$define
@@ -103,13 +101,6 @@ m88k-3.4)
;;
esac
-# Special per-arch specific ccflags
-case "${ARCH}-${osvers}" in
- vax-*)
- ccflags="-DUSE_PERL_ATOF=0 $ccflags"
- ;;
-esac
-
# 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'
@@ -131,9 +122,6 @@ $define|true|[yY]*)
# Broken up to OpenBSD 3.6, fixed in OpenBSD 3.7
d_getservbyname_r=$undef ;;
esac
- ;;
-*)
- libswanted=`echo $libswanted | sed 's/ pthread / /'`
esac
EOCBU
@@ -152,12 +140,12 @@ case "$openbsd_distribution" in
siteprefix='/usr/local'
siteprefixexp='/usr/local'
# Ports installs non-std libs in /usr/local/lib so look there too
- locincpth=''
- loclibpth=''
+ locincpth='/usr/local/include'
+ loclibpth='/usr/local/lib'
# Link perl with shared libperl
- if [ "$usedl" = "$define" -a -r $src/shlib_version ]; then
+ if [ "$usedl" = "$define" -a -r shlib_version ]; then
useshrplib=true
- libperl=`. $src/shlib_version; echo libperl.so.${major}.${minor}`
+ libperl=`. ./shlib_version; echo libperl.so.${major}.${minor}`
fi
;;
esac
diff --git a/gnu/usr.bin/perl/import_log-DmXIpUUul b/gnu/usr.bin/perl/import_log-DmXIpUUul
deleted file mode 100644
index e69de29bb2d..00000000000
--- a/gnu/usr.bin/perl/import_log-DmXIpUUul
+++ /dev/null
diff --git a/gnu/usr.bin/perl/install_lib.pl b/gnu/usr.bin/perl/install_lib.pl
index 8ca801b00a6..ac17bd81d81 100644
--- a/gnu/usr.bin/perl/install_lib.pl
+++ b/gnu/usr.bin/perl/install_lib.pl
@@ -6,7 +6,7 @@
use strict;
use vars qw($Is_VMS $Is_W32 $Is_OS2 $Is_Cygwin $Is_Darwin $Is_NetWare $Is_AmigaOS
%opts $packlist);
-use subs qw(unlink link chmod chown);
+use subs qw(unlink link chmod);
require File::Path;
require File::Copy;
@@ -99,9 +99,6 @@ sub link {
unless -f $to and (chmod(0666, $to), unlink $to)
and File::Copy::copy($from, $to) and ++$success;
}
- if (defined($opts{uid}) || defined($opts{gid})) {
- chown($opts{uid}, $opts{gid}, $to) if $success;
- }
$packlist->{$xto} = { type => 'file' };
}
$success;
@@ -117,16 +114,6 @@ sub chmod {
unless $opts{notify};
}
-sub chown {
- my($uid,$gid,$name) = @_;
-
- return if ($^O eq 'dos');
- printf " chown %s:%s %s\n", $uid, $gid, $name if $opts{verbose};
- CORE::chown($uid,$gid,$name)
- || warn sprintf("Couldn't chown %s:%s %s: $!\n", $uid, $gid, $name)
- unless $opts{notify};
-}
-
sub samepath {
my($p1, $p2) = @_;
@@ -158,8 +145,7 @@ sub safe_rename {
}
sub mkpath {
- File::Path::make_path(shift, {owner=>$opts{uid}, group=>$opts{gid},
- mode=>0777, verbose=>$opts{verbose}}) unless $opts{notify};
+ File::Path::mkpath(shift , $opts{verbose}, 0777) unless $opts{notify};
}
sub unixtoamiga
diff --git a/gnu/usr.bin/perl/installperl b/gnu/usr.bin/perl/installperl
index 452dd2efd8b..f4d850be34c 100644
--- a/gnu/usr.bin/perl/installperl
+++ b/gnu/usr.bin/perl/installperl
@@ -77,8 +77,8 @@ $opts{destdir} = '';
my $usage = 0;
if (!GetOptions(\%opts, 'notify|n', 'strip|s', 'silent|S',
'skip-otherperls|o', 'force|f', 'verbose|V', 'archname|A',
- 'netware', 'nopods|p', 'destdir:s', 'help|h|?', 'user|u:s',
- 'group|g:s', 'versiononly|v' => \$versiononly, '<>' => sub {
+ 'netware', 'nopods|p', 'destdir:s', 'help|h|?',
+ 'versiononly|v' => \$versiononly, '<>' => sub {
if ($_[0] eq '+v') {
$versiononly = 0;
} else {
@@ -107,8 +107,6 @@ Usage $0: [switches]
-A Also install perl with the architecture's name in the perl binary's
name.
-p Don't install the pod files. [This will break use diagnostics;]
- -g group install files with the specified group
- -u user install files with the specified user
-netware Install correctly on a Netware server.
-destdir Prefix installation directories by this string.
-h Display this help message.
@@ -116,8 +114,6 @@ EOT
exit $usage;
}
}
-$opts{'uid'} = getpwnam($opts{'user'}) if exists($opts{'user'});
-$opts{'gid'} = getgrnam($opts{'group'}) if exists($opts{'group'});
$versiononly = 1 if $Config{versiononly} && !defined $versiononly;
my (@scripts, @tolink);
@@ -157,7 +153,7 @@ if ((-e "testcompile") && (defined($ENV{'COMPILE'}))) {
}
# Exclude nonxs extensions that are not architecture dependent
-my @nonxs = grep(!/^(Errno|IO\/Compress)$/, split(' ', $Config{'nonxs_ext'}));
+my @nonxs = grep(!/^Errno$/, split(' ', $Config{'nonxs_ext'}));
my @ext_dirs = qw(cpan dist ext);
foreach my $ext_dir (@ext_dirs) {
@@ -203,7 +199,7 @@ my $installprivlib = "$opts{destdir}$Config{installprivlib}";
my $installarchlib = "$opts{destdir}$Config{installarchlib}";
my $installsitelib = "$opts{destdir}$Config{installsitelib}";
my $installsitearch = "$opts{destdir}$Config{installsitearch}";
-my $installman1dir = "none";
+my $installman1dir = "$opts{destdir}$Config{installman1dir}";
my $man1ext = $Config{man1ext};
my $libperl = $Config{libperl};
# Shared library and dynamic loading suffixes.
@@ -243,6 +239,8 @@ if ($Is_VMS) { # Hang in there until File::Spec hits the big time
$installbin || die "No installbin directory in config.sh\n";
-d $installbin || mkpath($installbin);
-d $installbin || $opts{notify} || die "$installbin is not a directory\n";
+-w $installbin || $opts{notify} || die "$installbin is not writable by you\n"
+ unless $installbin =~ m#^/afs/# || $opts{notify};
if (!$Is_NetWare) {
if (!$Is_VMS) {
@@ -255,9 +253,9 @@ else {
}
}
-#-f 't/rantests' || $Is_W32
-# || warn "WARNING: You've never run 'make test' or",
-# " some tests failed! (Installing anyway.)\n";
+-f 't/rantests' || $Is_W32
+ || warn "WARNING: You've never run 'make test' or",
+ " some tests failed! (Installing anyway.)\n";
} #if (!$Is_NetWare)
# This will be used to store the packlist
@@ -283,10 +281,6 @@ if (($Is_W32 and ! $Is_NetWare) or $Is_Cygwin) {
$packlist->{"$Config{installbin}/$perldll"} = { type => 'file' };
} # if (($Is_W32 and ! $Is_NetWare) or $Is_Cygwin)
-# Get the install command and flags from the environment
-my @installcmd = $ENV{"INSTALL"} || "install";
-push(@installcmd, $ENV{"INSTALL_COPY"} || "-c");
-
# First we install the version-numbered executables.
if ($Is_VMS) {
@@ -307,8 +301,10 @@ if ($Is_VMS) {
}
elsif ($^O ne 'dos') {
if (!$Is_NetWare) {
- my $ver = ''; # don't install a versioned perl binary
- install("perl$exe_ext", "$installbin/$perl_verbase$ver$exe_ext", "0755");
+ safe_unlink("$installbin/$perl_verbase$ver$exe_ext");
+ copy("perl$exe_ext", "$installbin/$perl_verbase$ver$exe_ext");
+ strip("$installbin/$perl_verbase$ver$exe_ext");
+ chmod(0755, "$installbin/$perl_verbase$ver$exe_ext");
}
else {
# If installing onto a NetWare server
@@ -381,9 +377,7 @@ elsif ($Is_Cygwin) { # On Cygwin symlink it to CORE to make Makefile happy
@corefiles = <*.h>;
} else {
# [als] hard-coded 'libperl' name... not good!
- #@corefiles = <*.h libperl*.* perl*$Config{lib_ext}>;
- @corefiles = <*.h *.inc perl*$Config{lib_ext}>;
- push(@corefiles,<libperl*.*>) unless defined($ENV{"NOLIBINSTALL"});
+ @corefiles = <*.h libperl*.* perl*$Config{lib_ext}>;
# AIX needs perl.exp installed as well.
push(@corefiles,'perl.exp') if $^O eq 'aix';
@@ -411,8 +405,7 @@ if ($Is_W32) { #linking lib isn't made in root but in CORE on Win32
# Install main perl executables
# Make links to ordinary names if installbin directory isn't current directory.
-if (0) { # don't install a versioned perl binary
-#if (! $versiononly && ! samepath($installbin, '.') && ($^O ne 'dos') && ! $Is_VMS && ! $Is_NetWare) {
+if (! $versiononly && ! samepath($installbin, '.') && ($^O ne 'dos') && ! $Is_VMS && ! $Is_NetWare) {
safe_unlink("$installbin/$perl$exe_ext", "$installbin/suid$perl$exe_ext");
if ($^O eq 'vos') {
# VOS doesn't support hard links, so use a symlink.
@@ -593,9 +586,6 @@ if (!$versiononly && !$opts{'skip-otherperls'}) {
}
$packlist->write() unless $opts{notify};
-if (defined($opts{uid}) || defined($opts{gid})) {
- chown($opts{uid}, $opts{gid}, $packlist->packlist_file());
-}
print " Installation complete\n" if $opts{verbose};
exit 0;
@@ -634,7 +624,6 @@ sub safe_unlink {
sub copy {
my($from,$to) = @_;
- my($success) = 0;
my $xto = $to;
$xto =~ s/^\Q$opts{destdir}\E//;
@@ -642,32 +631,12 @@ sub copy {
unless $opts{silent};
print " creating new version of $xto\n"
if $Is_VMS and -e $to and !$opts{silent};
- unless ($opts{notify} or File::Copy::copy($from, $to) and ++$success) {
+ unless ($opts{notify} or File::Copy::copy($from, $to)) {
# Might have been that F::C::c can't overwrite the target
warn "Couldn't copy $from to $to: $!\n"
unless -f $to and (chmod(0666, $to), unlink $to)
- and File::Copy::copy($from, $to) and ++$success;
+ and File::Copy::copy($from, $to);
}
- if (defined($opts{uid}) || defined($opts{gid})) {
- chown($opts{uid}, $opts{gid}, $to) if $success;
- }
- $packlist->{$xto} = { type => 'file' };
-}
-
-sub install {
- my($from,$to,$mode) = @_;
-
- my $xto = $to;
- my $cmd = join(' ', @installcmd);
- $cmd .= " -m $mode" if $mode;
- $cmd .= " -o $opts{uid}" if defined($opts{uid});
- $cmd .= " -g $opts{gid}" if defined($opts{gid});
- $cmd .= " -s" if $opts{strip};
- $cmd .= " $from $to";
- $xto =~ s/^\Q$opts{destdir}\E// if $opts{destdir};
- print $opts{verbose} ? " install $from $xto\n" : " $xto\n" unless $opts{silent};
- system($cmd);
- warn "Couldn't $cmd\n" if $?;
$packlist->{$xto} = { type => 'file' };
}
@@ -699,10 +668,6 @@ sub installlib {
return;
}
- # If we have different install version, install that instead
- return if -e "$_.install";
- $name =~ s/\.install$//;
-
# ignore patch backups, RCS files, emacs backup & temp files and the
# .exists files, .PL files, and test files.
return if $name =~ m{\.orig$|\.rej$|~$|^#.+#$|,v$|^\.exists|\.PL$|\.plc$|\.t$|^test\.pl$|^dbm_filter_util\.pl$|^filter-util\.pl$|^uupacktool\.pl$|^\.gitignore$} ||
diff --git a/gnu/usr.bin/perl/lib/AnyDBM_File.pm b/gnu/usr.bin/perl/lib/AnyDBM_File.pm
index 3b41a4a100b..4153af2de2d 100644
--- a/gnu/usr.bin/perl/lib/AnyDBM_File.pm
+++ b/gnu/usr.bin/perl/lib/AnyDBM_File.pm
@@ -22,6 +22,8 @@ __END__
AnyDBM_File - provide framework for multiple DBMs
+NDBM_File, DB_File, GDBM_File, SDBM_File, ODBM_File - various DBM implementations
+
=head1 SYNOPSIS
use AnyDBM_File;
diff --git a/gnu/usr.bin/perl/lib/B/Op_private.pm b/gnu/usr.bin/perl/lib/B/Op_private.pm
index c6c8906c442..02adaf4c013 100644
--- a/gnu/usr.bin/perl/lib/B/Op_private.pm
+++ b/gnu/usr.bin/perl/lib/B/Op_private.pm
@@ -118,7 +118,7 @@ package B::Op_private;
our %bits;
-our $VERSION = "5.024001";
+our $VERSION = "5.024002";
$bits{$_}{3} = 'OPpENTERSUB_AMPER' for qw(entersub rv2cv);
$bits{$_}{6} = 'OPpENTERSUB_DB' for qw(entersub rv2cv);
diff --git a/gnu/usr.bin/perl/lib/Getopt/Std.pm b/gnu/usr.bin/perl/lib/Getopt/Std.pm
index b98bd57f077..b7f8132b381 100644
--- a/gnu/usr.bin/perl/lib/Getopt/Std.pm
+++ b/gnu/usr.bin/perl/lib/Getopt/Std.pm
@@ -4,7 +4,7 @@ require Exporter;
=head1 NAME
-Getopt::Std, getopt, getopts - Process single-character switches with switch clustering
+getopt, getopts - Process single-character switches with switch clustering
=head1 SYNOPSIS
diff --git a/gnu/usr.bin/perl/mg.c b/gnu/usr.bin/perl/mg.c
index 4321a401ad4..1c43c9dedb3 100644
--- a/gnu/usr.bin/perl/mg.c
+++ b/gnu/usr.bin/perl/mg.c
@@ -1259,7 +1259,7 @@ Perl_magic_setenv(pTHX_ SV *sv, MAGIC *mg)
#else
const char path_sep = ':';
#endif
- s = delimcpy(tmpbuf, tmpbuf + sizeof tmpbuf,
+ s = delimcpy_no_escape(tmpbuf, tmpbuf + sizeof tmpbuf,
s, strend, path_sep, &i);
s++;
if (i >= (I32)sizeof tmpbuf /* too long -- assume the worst */
diff --git a/gnu/usr.bin/perl/patchlevel.h b/gnu/usr.bin/perl/patchlevel.h
index 0d8ab183f39..94429442831 100644
--- a/gnu/usr.bin/perl/patchlevel.h
+++ b/gnu/usr.bin/perl/patchlevel.h
@@ -15,7 +15,7 @@
#define PERL_REVISION 5 /* age */
#define PERL_VERSION 24 /* epoch */
-#define PERL_SUBVERSION 1 /* generation */
+#define PERL_SUBVERSION 2 /* generation */
/* The following numbers describe the earliest compatible version of
Perl ("compatibility" here being defined as sufficient binary/API
diff --git a/gnu/usr.bin/perl/perl.c b/gnu/usr.bin/perl/perl.c
index f81f39c3c9c..6197ea08d55 100644
--- a/gnu/usr.bin/perl/perl.c
+++ b/gnu/usr.bin/perl/perl.c
@@ -1835,8 +1835,6 @@ S_Internals_V(pTHX_ CV *cv)
# endif
#endif
-#undef PERL_BUILD_DATE
-
#ifdef PERL_BUILD_DATE
PUSHs(Perl_newSVpvn_flags(aTHX_
STR_WITH_LEN("Compiled at " PERL_BUILD_DATE),
diff --git a/gnu/usr.bin/perl/plan9/config.plan9 b/gnu/usr.bin/perl/plan9/config.plan9
index a8e2783bae4..1da805b4c69 100644
--- a/gnu/usr.bin/perl/plan9/config.plan9
+++ b/gnu/usr.bin/perl/plan9/config.plan9
@@ -3329,8 +3329,8 @@
* This symbol contains the ~name expanded version of PRIVLIB, to be used
* in programs that are not prepared to deal with ~ expansion at run-time.
*/
-#define PRIVLIB "/sys/lib/perl/5.24.1" /**/
-#define PRIVLIB_EXP "/sys/lib/perl/5.24.1" /**/
+#define PRIVLIB "/sys/lib/perl/5.24.2" /**/
+#define PRIVLIB_EXP "/sys/lib/perl/5.24.2" /**/
/* PTRSIZE:
* This symbol contains the size of a pointer, so that the C preprocessor
@@ -3457,9 +3457,9 @@
* removed. The elements in inc_version_list (inc_version_list.U) can
* be tacked onto this variable to generate a list of directories to search.
*/
-#define SITELIB "/sys/lib/perl/5.24.1/site_perl" /**/
-#define SITELIB_EXP "/sys/lib/perl/5.24.1/site_perl" /**/
-#define SITELIB_STEM "/sys/lib/perl/5.24.1/site_perl" /**/
+#define SITELIB "/sys/lib/perl/5.24.2/site_perl" /**/
+#define SITELIB_EXP "/sys/lib/perl/5.24.2/site_perl" /**/
+#define SITELIB_STEM "/sys/lib/perl/5.24.2/site_perl" /**/
/* Size_t_size:
* This symbol holds the size of a Size_t in bytes.
diff --git a/gnu/usr.bin/perl/plan9/config_sh.sample b/gnu/usr.bin/perl/plan9/config_sh.sample
index 4e92d01ea80..572dc6cfd6f 100644
--- a/gnu/usr.bin/perl/plan9/config_sh.sample
+++ b/gnu/usr.bin/perl/plan9/config_sh.sample
@@ -36,8 +36,8 @@ api_subversion='0'
api_version='24'
api_versionstring='5.24.0'
ar='ar'
-archlib='/sys/lib/perl5/5.24.1/386'
-archlibexp='/sys/lib/perl5/5.24.1/386'
+archlib='/sys/lib/perl5/5.24.2/386'
+archlibexp='/sys/lib/perl5/5.24.2/386'
archname64=''
archname='386'
archobjs=''
@@ -802,17 +802,17 @@ inc_version_list=' '
inc_version_list_init='0'
incpath=''
inews=''
-installarchlib='/sys/lib/perl/5.24.1/386'
+installarchlib='/sys/lib/perl/5.24.2/386'
installbin='/usr/bin'
installman1dir='/sys/man/1pub'
installman3dir='/sys/man/2pub'
installprefix='/usr'
installprefixexp='/usr'
-installprivlib='/sys/lib/perl/5.24.1'
+installprivlib='/sys/lib/perl/5.24.2'
installscript='/usr/bin'
-installsitearch='/sys/lib/perl/5.24.1/site_perl/386'
+installsitearch='/sys/lib/perl/5.24.2/site_perl/386'
installsitebin='/usr/bin'
-installsitelib='/sys/lib/perl/5.24.1/site_perl'
+installsitelib='/sys/lib/perl/5.24.2/site_perl'
installstyle='lib/perl5'
installusrbinperl='undef'
installvendorarch=''
@@ -937,8 +937,8 @@ pmake=''
pr=''
prefix='/usr'
prefixexp='/usr'
-privlib='/sys/lib/perl/5.24.1'
-privlibexp='/sys/lib/perl/5.24.1'
+privlib='/sys/lib/perl/5.24.2'
+privlibexp='/sys/lib/perl/5.24.2'
procselfexe=''
prototype='define'
ptrsize='4'
@@ -1003,13 +1003,13 @@ sig_num='0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
sig_num_init='0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 0'
sig_size='50'
signal_t='void'
-sitearch='/sys/lib/perl/5.24.1/site_perl/386'
+sitearch='/sys/lib/perl/5.24.2/site_perl/386'
sitearchexp='/sys/lib/perl/site_perl/386'
sitebin='/usr/bin'
sitebinexp='/usr/bin'
-sitelib='/sys/lib/perl/5.24.1/site_perl'
-sitelib_stem='/sys/lib/perl/5.24.1/site_perl'
-sitelibexp='/sys/lib/perl/5.24.1/site_perl'
+sitelib='/sys/lib/perl/5.24.2/site_perl'
+sitelib_stem='/sys/lib/perl/5.24.2/site_perl'
+sitelibexp='/sys/lib/perl/5.24.2/site_perl'
siteprefix='/usr'
siteprefixexp='/usr'
sizesize='4'
@@ -1042,7 +1042,7 @@ stdio_stream_array=''
strerror_r_proto='0'
strings='/sys/include/ape/string.h'
submit=''
-subversion='1'
+subversion='2'
sysman='/sys/man/1pub'
tail=''
tar=''
@@ -1124,8 +1124,8 @@ vendorlib_stem=''
vendorlibexp=''
vendorprefix=''
vendorprefixexp=''
-version='5.24.1'
-version_patchlevel_string='version 24 subversion 1'
+version='5.24.2'
+version_patchlevel_string='version 24 subversion 2'
versiononly='undef'
vi=''
xlibpth=''
@@ -1139,7 +1139,7 @@ config_args=''
config_argc=0
PERL_REVISION=5
PERL_VERSION=24
-PERL_SUBVERSION=1
+PERL_SUBVERSION=2
PERL_API_REVISION=5
PERL_API_VERSION=24
PERL_API_SUBVERSION=0
diff --git a/gnu/usr.bin/perl/pod/perl.pod b/gnu/usr.bin/perl/pod/perl.pod
index 24606264516..7c2dcfbcd68 100644
--- a/gnu/usr.bin/perl/pod/perl.pod
+++ b/gnu/usr.bin/perl/pod/perl.pod
@@ -34,7 +34,7 @@ For ease of access, the Perl manual has been split up into several sections.
# This section is parsed by Porting/pod_lib.pl for use by pod/buildtoc etc
-flag =g perlmodlib perlapi perlintern
+flag =g perluniprops perlmodlib perlapi perlintern
flag =go perltoc
flag =ro perlcn perljp perlko perltw
flag = perlvms
@@ -180,7 +180,9 @@ aux c2ph h2ph h2xs perlbug pl2pm pod2html pod2man splain xsubpp
perlhist Perl history records
perldelta Perl changes since previous version
+ perl5241delta Perl changes in version 5.24.1
perl5240delta Perl changes in version 5.24.0
+ perl5223delta Perl changes in version 5.22.3
perl5222delta Perl changes in version 5.22.2
perl5221delta Perl changes in version 5.22.1
perl5220delta Perl changes in version 5.22.0
diff --git a/gnu/usr.bin/perl/pod/perldelta.pod b/gnu/usr.bin/perl/pod/perldelta.pod
index f12e08fec77..855d0f4a8aa 100644
--- a/gnu/usr.bin/perl/pod/perldelta.pod
+++ b/gnu/usr.bin/perl/pod/perldelta.pod
@@ -2,114 +2,34 @@
=head1 NAME
-perldelta - what is new for perl v5.24.1
+perldelta - what is new for perl v5.24.2
=head1 DESCRIPTION
-This document describes differences between the 5.24.0 release and the 5.24.1
+This document describes differences between the 5.24.1 release and the 5.24.2
release.
-If you are upgrading from an earlier release such as 5.22.0, first read
-L<perl5240delta>, which describes differences between 5.22.0 and 5.24.0.
+If you are upgrading from an earlier release such as 5.24.0, first read
+L<perl5241delta>, which describes differences between 5.24.0 and 5.24.1.
=head1 Security
-=head2 B<-Di> switch is now required for PerlIO debugging output
+=head2 Improved handling of '.' in @INC in base.pm
-Previously PerlIO debugging output would be sent to the file specified by the
-C<PERLIO_DEBUG> environment variable if perl wasn't running setuid and the
-B<-T> or B<-t> switches hadn't been parsed yet.
+The handling of (the removal of) C<'.'> in C<@INC> in L<base> has been
+improved. This resolves some problematic behaviour in the approach taken in
+Perl 5.24.1, which is probably best described in the following two threads on
+the Perl 5 Porters mailing list:
+L<http://www.nntp.perl.org/group/perl.perl5.porters/2016/08/msg238991.html>,
+L<http://www.nntp.perl.org/group/perl.perl5.porters/2016/10/msg240297.html>.
-If perl performed output at a point where it hadn't yet parsed its switches
-this could result in perl creating or overwriting the file named by
-C<PERLIO_DEBUG> even when the B<-T> switch had been supplied.
+=head2 "Escaped" colons and relative paths in PATH
-Perl now requires the B<-Di> switch to produce PerlIO debugging output. By
-default this is written to C<stderr>, but can optionally be redirected to a
-file by setting the C<PERLIO_DEBUG> environment variable.
-
-If perl is running setuid or the B<-T> switch was supplied C<PERLIO_DEBUG> is
-ignored and the debugging output is sent to C<stderr> as for any other B<-D>
-switch.
-
-=head2 Core modules and tools no longer search F<"."> for optional modules
-
-The tools and many modules supplied in core no longer search the default
-current directory entry in L<C<@INC>|perlvar/@INC> for optional modules. For
-example, L<Storable> will remove the final F<"."> from C<@INC> before trying to
-load L<Log::Agent>.
-
-This prevents an attacker injecting an optional module into a process run by
-another user where the current directory is writable by the attacker, e.g. the
-F</tmp> directory.
-
-In most cases this removal should not cause problems, the exception being
-L<base>.
-
-L<base> treats every module name supplied as optional. If you have
-applications that use L<base> to load non-optional modules from the current
-directory you will need to modify your code or environment.
-
-If your code always trusts the contents of the current directory, the simplest
-change is adding F<"."> to C<PERL5LIB>:
-
- # for Bourne shell and similar
- set PERL5LIB=.
- export PERL5LIB
-
-If you do B<not> trust the current directory this will open your code up to
-attacks on any module load, not just optional modules. You may want to add the
-absolute path of your application's module directory to C<PERL5LIB> instead.
-
-Alternatively, you can change your code, either to add the directory with your
-binary to C<@INC>:
-
- use FindBin;
- use lib $FindBin::Bin;
-
-or switch to L<parent>, which requires an explicit parameter for optional
-modules:
-
- use parent 'Nonoptional::Module';
-
-though this will have the same problem if the current directory is removed from
-C<@INC> in Perl 5.26.
-
-Also, since L<base> now localizes C<@INC> when loading modules, changes to
-C<@INC> in the loaded module will be discarded when C<@INC> is restored to its
-previous value.
-
-To protect your own code from this attack, either remove the default F<".">
-entry from C<@INC> at the start of your script, so:
-
- #!/usr/bin/perl
- use strict;
- ...
-
-becomes:
-
- #!/usr/bin/perl
- BEGIN { pop @INC if $INC[-1] eq '.' }
- use strict;
- ...
-
-or for modules, remove F<"."> from a localized C<@INC>, so:
-
- my $can_foo = eval { require Foo; }
-
-becomes:
-
- my $can_foo = eval {
- local @INC = @INC;
- pop @INC if $INC[-1] eq '.';
- require Foo;
- };
-
-=head1 Incompatible Changes
-
-Other than the security changes above there are no changes intentionally
-incompatible with Perl 5.24.0. If any exist, they are bugs, and we request
-that you submit a report. See L</Reporting Bugs> below.
+On Unix systems, Perl treats any relative paths in the PATH environment
+variable as tainted when starting a new process. Previously, it was allowing a
+backslash to escape a colon (unlike the OS), consequently allowing relative
+paths to be considered safe if the PATH was set to something like C</\:.>. The
+check has been fixed to treat C<.> as tainted in that example.
=head1 Modules and Pragmata
@@ -119,153 +39,11 @@ that you submit a report. See L</Reporting Bugs> below.
=item *
-L<Archive::Tar> has been upgraded from version 2.04 to 2.04_01.
-
-=item *
-
L<base> has been upgraded from version 2.23 to 2.23_01.
=item *
-L<bignum> has been upgraded from version 0.42 to 0.42_01.
-
-=item *
-
-L<CPAN> has been upgraded from version 2.11 to 2.11_01.
-
-=item *
-
-L<Digest> has been upgraded from version 1.17 to 1.17_01.
-
-=item *
-
-L<Digest::SHA> has been upgraded from version 5.95 to 5.95_01.
-
-=item *
-
-L<Encode> has been upgraded from version 2.80 to 2.80_01.
-
-=item *
-
-L<ExtUtils::MakeMaker> has been upgraded from version 7.10_01 to 7.10_02.
-
-=item *
-
-L<File::Fetch> has been upgraded from version 0.48 to 0.48_01.
-
-=item *
-
-L<File::Spec> has been upgraded from version 3.63 to 3.63_01.
-
-=item *
-
-L<HTTP::Tiny> has been upgraded from version 0.056 to 0.056_001.
-
-=item *
-
-L<IO> has been upgraded from version 1.36 to 1.36_01.
-
-=item *
-
-The IO-Compress modules have been upgraded from version 2.069 to 2.069_001.
-
-=item *
-
-L<IPC::Cmd> has been upgraded from version 0.92 to 0.92_01.
-
-=item *
-
-L<JSON::PP> has been upgraded from version 2.27300 to 2.27300_01.
-
-=item *
-
-L<Locale::Maketext> has been upgraded from version 1.26 to 1.26_01.
-
-=item *
-
-L<Locale::Maketext::Simple> has been upgraded from version 0.21 to 0.21_01.
-
-=item *
-
-L<Memoize> has been upgraded from version 1.03 to 1.03_01.
-
-=item *
-
-L<Module::CoreList> has been upgraded from version 5.20160506 to 5.20170114_24.
-
-=item *
-
-L<Net::Ping> has been upgraded from version 2.43 to 2.43_01.
-
-=item *
-
-L<Parse::CPAN::Meta> has been upgraded from version 1.4417 to 1.4417_001.
-
-=item *
-
-L<Pod::Html> has been upgraded from version 1.22 to 1.2201.
-
-=item *
-
-L<Pod::Perldoc> has been upgraded from version 3.25_02 to 3.25_03.
-
-=item *
-
-L<Storable> has been upgraded from version 2.56 to 2.56_01.
-
-=item *
-
-L<Sys::Syslog> has been upgraded from version 0.33 to 0.33_01.
-
-=item *
-
-L<Test> has been upgraded from version 1.28 to 1.28_01.
-
-=item *
-
-L<Test::Harness> has been upgraded from version 3.36 to 3.36_01.
-
-=item *
-
-L<XSLoader> has been upgraded from version 0.21 to 0.22, fixing a security hole
-in which binary files could be loaded from a path outside of C<@INC>.
-L<[perl #128528]|https://rt.perl.org/Public/Bug/Display.html?id=128528>
-
-=back
-
-=head1 Documentation
-
-=head2 Changes to Existing Documentation
-
-=head3 L<perlapio>
-
-=over 4
-
-=item *
-
-The documentation of C<PERLIO_DEBUG> has been updated.
-
-=back
-
-=head3 L<perlrun>
-
-=over 4
-
-=item *
-
-The new B<-Di> switch has been documented, and the documentation of
-C<PERLIO_DEBUG> has been updated.
-
-=back
-
-=head1 Testing
-
-=over 4
-
-=item *
-
-A new test script, F<t/run/switchDx.t>, has been added to test that the new
-B<-Di> switch is working correctly.
+L<Module::CoreList> has been upgraded from version 5.20170114_24 to 5.20170715_24.
=back
@@ -275,30 +53,29 @@ B<-Di> switch is working correctly.
=item *
-The change to hashbang redirection introduced in Perl 5.24.0, whereby perl
-would redirect to another interpreter (Perl 6) if it found a hashbang path
-which contains "perl" followed by "6", has been reverted because it broke in
-cases such as C<#!/opt/perl64/bin/perl>.
+Fixed a crash with C<s///l> where it thought it was dealing with UTF-8 when it
+wasn't.
+L<[perl #129038]|https://rt.perl.org/Ticket/Display.html?id=129038>
=back
=head1 Acknowledgements
-Perl 5.24.1 represents approximately 8 months of development since Perl 5.24.0
-and contains approximately 8,100 lines of changes across 240 files from 18
+Perl 5.24.2 represents approximately 6 months of development since Perl 5.24.1
+and contains approximately 2,500 lines of changes across 53 files from 18
authors.
Excluding auto-generated files, documentation and release tools, there were
-approximately 2,200 lines of changes to 170 .pm, .t, .c and .h files.
+approximately 960 lines of changes to 17 .pm, .t, .c and .h files.
Perl continues to flourish into its third decade thanks to a vibrant community
of users and developers. The following people are known to have contributed
-the improvements that became Perl 5.24.1:
+the improvements that became Perl 5.24.2:
-Aaron Crane, Alex Vandiver, Aristotle Pagaltzis, Chad Granum, Chris 'BinGOs'
-Williams, Craig A. Berry, Father Chrysostomos, James E Keenan, Jarkko
-Hietaniemi, Karen Etheridge, Leon Timmermans, Matthew Horsfall, Ricardo Signes,
-Sawyer X, Sébastien Aperghis-Tramoni, Stevan Little, Steve Hay, Tony Cook.
+Aaron Crane, Abigail, Aristotle Pagaltzis, Chris 'BinGOs' Williams, Dan
+Collins, David Mitchell, Eric Herman, Father Chrysostomos, James E Keenan, Karl
+Williamson, Lukas Mai, Renee Baecker, Ricardo Signes, Sawyer X, Stevan Little,
+Steve Hay, Tony Cook, Yves Orton.
The list above is almost certainly incomplete as it is automatically generated
from version control history. In particular, it does not include the names of
@@ -315,7 +92,7 @@ the F<AUTHORS> file in the Perl source distribution.
=head1 Reporting Bugs
If you find what you think is a bug, you might check the articles recently
-posted to the comp.lang.perl.misc newsgroup and the Perl bug database at
+posted to the comp.lang.perl.misc newsgroup and the perl bug database at
L<https://rt.perl.org/> . There may also be information at
L<http://www.perl.org/> , the Perl Home Page.
@@ -326,8 +103,8 @@ will be sent off to perlbug@perl.org to be analysed by the Perl porting team.
If the bug you are reporting has security implications which make it
inappropriate to send to a publicly archived mailing list, then see
-L<perlsec/SECURITY VULNERABILITY CONTACT INFORMATION> for details of how to
-report the issue.
+L<perlsec/SECURITY VULNERABILITY CONTACT INFORMATION>
+for details of how to report the issue.
=head1 SEE ALSO
diff --git a/gnu/usr.bin/perl/pod/perlhist.pod b/gnu/usr.bin/perl/pod/perlhist.pod
index 1b2e626bc82..17b07dee327 100644
--- a/gnu/usr.bin/perl/pod/perlhist.pod
+++ b/gnu/usr.bin/perl/pod/perlhist.pod
@@ -33,7 +33,8 @@ Matt S Trout, David Golden, Florian Ragwitz, Tatsuhiko Miyagawa,
Chris C<BinGOs> Williams, Zefram, Ævar Arnfjörð Bjarmason, Stevan
Little, Dave Rolsky, Max Maischein, Abigail, Jesse Luehrs, Tony Cook,
Dominic Hargreaves, Aaron Crane, Aristotle Pagaltzis, Matthew Horsfall,
-Peter Martini, Sawyer X, and Chad 'Exodist' Granum.
+Peter Martini, Sawyer X, Chad 'Exodist' Granum, Renee Bäcker,
+and Eric Herman.
=head2 PUMPKIN?
@@ -573,6 +574,8 @@ the strings?).
Steve 5.22.3-RC4 2016-Oct-12
Steve 5.22.3-RC5 2017-Jan-02
Steve 5.22.3 2017-Jan-14
+ Steve 5.22.4-RC1 2017-Jul-01
+ Steve 5.22.4 2017-Jul-15
Ricardo 5.23.0 2015-Jun-20 The 5.23 development track
Matthew 5.23.1 2015-Jul-20
@@ -597,6 +600,8 @@ the strings?).
Steve 5.24.1-RC4 2016-Oct-12
Steve 5.24.1-RC5 2017-Jan-02
Steve 5.24.1 2017-Jan-14
+ Steve 5.24.2-RC1 2017-Jul-01
+ Steve 5.24.2 2017-Jul-15
Ricardo 5.25.0 2016-May-09 The 5.25 development track
Sawyer X 5.25.1 2016-May-20
@@ -606,7 +611,18 @@ the strings?).
Stevan 5.25.5 2016-Sep-20
Aaron 5.25.6 2016-Oct-20
Chad 5.25.7 2016-Nov-20
- Sawyer 5.25.8 2016-Dec-20
+ Sawyer X 5.25.8 2016-Dec-20
+ Abigail 5.25.9 2017-Jan-20
+ Renee 5.25.10 2017-Feb-20
+ Sawyer X 5.25.11 2017-Mar-20
+ Sawyer X 5.25.12 2017-Apr-20
+
+ Sawyer X 5.26.0-RC1 2017-May-11 The 5.26 maintenance track
+ Sawyer X 5.26.0-RC2 2017-May-23
+ Sawyer X 5.26.0 2017-May-30
+
+ Sawyer X 5.27.0 2017-May-31 The 5.27 development track
+ Eric 5.27.1 2017-Jun-20
=head2 SELECTED RELEASE SIZES
@@ -690,6 +706,7 @@ explained below.
5.20.0 6243 115 1187 75 19499 2701 9620 2457 5145 159
5.22.0 7819 115 1284 77 19121 2635 9772 2434 5615 176
5.24.0 7922 113 1287 77 19535 2677 9994 2465 5702 177
+ 5.26.0 9140 121 24925 1200 40643 3017 10514 2614 7854 211
The "core"..."doc" mean the following files from the Perl source code
distribution. The glob notation ** means recursively, (.) means
@@ -1014,6 +1031,28 @@ the Perl source distribution for somewhat more selected releases.
win32 1183 64 1201 64 1268 65
x2p 341 19 - - - -
+ ======================================================================
+
+ 5.26.0
+
+ Configure 593 1
+ Cross 122 15
+ djgpp 21 7
+ h2pl 24 15
+ hints 376 87
+ mad - -
+ NetWare 499 61
+ os2 552 70
+ plan9 322 17
+ Porting 1380 73
+ qnx 5 4
+ symbian 315 54
+ utils 578 50
+ vms 527 12
+ vos 12 7
+ win32 1313 65
+ x2p - -
+
=head2 SELECTED PATCH SIZES
The "diff lines kB" means that for example the patch 5.003_08, to be
diff --git a/gnu/usr.bin/perl/pod/perlmodinstall.pod b/gnu/usr.bin/perl/pod/perlmodinstall.pod
index 9a2634e9ab3..f92620c6d61 100644
--- a/gnu/usr.bin/perl/pod/perlmodinstall.pod
+++ b/gnu/usr.bin/perl/pod/perlmodinstall.pod
@@ -79,11 +79,11 @@ You can get gzip from ftp://prep.ai.mit.edu/pub/gnu/
Or, you can combine this step with the next to save disk space:
- gzip -dc yourmodule.tar.gz | tar -xf -
+ gzip -dc yourmodule.tar.gz | tar -xof -
B. UNPACK
-Unpack the result with C<tar -xf yourmodule.tar>
+Unpack the result with C<tar -xof yourmodule.tar>
C. BUILD
diff --git a/gnu/usr.bin/perl/pod/perlop.pod b/gnu/usr.bin/perl/pod/perlop.pod
index 34835130469..9b1319a7a6c 100644
--- a/gnu/usr.bin/perl/pod/perlop.pod
+++ b/gnu/usr.bin/perl/pod/perlop.pod
@@ -1618,7 +1618,7 @@ and although they often accept just C<"\012">, they seldom tolerate just
C<"\015">. If you get in the habit of using C<"\n"> for networking,
you may be burned some day.
X<newline> X<line terminator> X<eol> X<end of line>
-X<\r>
+X<\n> X<\r> X<\r\n>
For constructs that do interpolate, variables beginning with "C<$>"
or "C<@>" are interpolated. Subscripted variables such as C<$a[3]> or
diff --git a/gnu/usr.bin/perl/pp.c b/gnu/usr.bin/perl/pp.c
index d95832a3368..4a2cde05e03 100644
--- a/gnu/usr.bin/perl/pp.c
+++ b/gnu/usr.bin/perl/pp.c
@@ -3130,13 +3130,12 @@ PP(pp_srand)
"Integer overflow in srand");
anum = UV_MAX;
}
- (void)srand48_deterministic((Rand_seed_t)anum);
}
else {
anum = seed();
- (void)seedDrand01((Rand_seed_t)anum);
}
+ (void)seedDrand01((Rand_seed_t)anum);
PL_srand_called = TRUE;
if (anum)
XPUSHu(anum);
diff --git a/gnu/usr.bin/perl/proto.h b/gnu/usr.bin/perl/proto.h
index fb4ee295087..8d4713b0969 100644
--- a/gnu/usr.bin/perl/proto.h
+++ b/gnu/usr.bin/perl/proto.h
@@ -659,6 +659,9 @@ PERL_CALLCONV void Perl_delete_eval_scope(pTHX);
PERL_CALLCONV char* Perl_delimcpy(char* to, const char* toend, const char* from, const char* fromend, int delim, I32* retlen);
#define PERL_ARGS_ASSERT_DELIMCPY \
assert(to); assert(toend); assert(from); assert(fromend); assert(retlen)
+PERL_CALLCONV char* Perl_delimcpy_no_escape(char* to, const char* toend, const char* from, const char* fromend, int delim, I32* retlen);
+#define PERL_ARGS_ASSERT_DELIMCPY_NO_ESCAPE \
+ assert(to); assert(toend); assert(from); assert(fromend); assert(retlen)
PERL_CALLCONV void Perl_despatch_signals(pTHX);
PERL_CALLCONV_NO_RET OP* Perl_die(pTHX_ const char* pat, ...)
__attribute__noreturn__
diff --git a/gnu/usr.bin/perl/regen/lib_cleanup.pl b/gnu/usr.bin/perl/regen/lib_cleanup.pl
index d43b4b222f8..c9d6e434bd4 100644
--- a/gnu/usr.bin/perl/regen/lib_cleanup.pl
+++ b/gnu/usr.bin/perl/regen/lib_cleanup.pl
@@ -74,12 +74,6 @@ foreach my $file (@ext) {
$package = $1;
last;
}
- elsif (/^\s*package\s*$/) {
- # If they're hiding their package name, we ignore them
- ++$ignore{"/$path"};
- $package='';
- last;
- }
}
close $fh
or die "Can't close $file: $!";
diff --git a/gnu/usr.bin/perl/regexec.c b/gnu/usr.bin/perl/regexec.c
index cdaa95cce52..5735b997fd9 100644
--- a/gnu/usr.bin/perl/regexec.c
+++ b/gnu/usr.bin/perl/regexec.c
@@ -6191,23 +6191,26 @@ S_regmatch(pTHX_ regmatch_info *reginfo, char *startpos, regnode *prog)
if (! (to_complement ^ cBOOL(isFOO_lc(FLAGS(scan), (U8) nextchr)))) {
sayNO;
}
+
+ locinput++;
+ break;
}
- else if (UTF8_IS_DOWNGRADEABLE_START(nextchr)) {
- if (! (to_complement ^ cBOOL(isFOO_lc(FLAGS(scan),
- EIGHT_BIT_UTF8_TO_NATIVE(nextchr,
- *(locinput + 1))))))
- {
- sayNO;
- }
- }
- else { /* Here, must be an above Latin-1 code point */
+
+ if (! UTF8_IS_DOWNGRADEABLE_START(nextchr)) { /* An above Latin-1 code point */
_CHECK_AND_OUTPUT_WIDE_LOCALE_UTF8_MSG(locinput, reginfo->strend);
goto utf8_posix_above_latin1;
}
- /* Here, must be utf8 */
- locinput += UTF8SKIP(locinput);
- break;
+ /* Here is a UTF-8 variant code point below 256 and the target is
+ * UTF-8 */
+ if (! (to_complement ^ cBOOL(isFOO_lc(FLAGS(scan),
+ EIGHT_BIT_UTF8_TO_NATIVE(nextchr,
+ *(locinput + 1))))))
+ {
+ sayNO;
+ }
+
+ goto increment_locinput;
case NPOSIXD: /* \W or [:^punct:] etc. under /d */
to_complement = 1;
diff --git a/gnu/usr.bin/perl/t/lib/h2ph.pht b/gnu/usr.bin/perl/t/lib/h2ph.pht
index cda8d21051c..f068d6dae46 100644
--- a/gnu/usr.bin/perl/t/lib/h2ph.pht
+++ b/gnu/usr.bin/perl/t/lib/h2ph.pht
@@ -90,6 +90,10 @@ unless(defined(&_H2PH_H_)) {
}
eval("sub flim () { 0; }") unless defined(&flim);
eval("sub flam () { 1; }") unless defined(&flam);
+ eval 'sub blli_in_use {
+ my($blli) = @_;
+ eval q({ ($blli->{l2_proto}) || ($blli->{l3_proto}); });
+ }' unless defined(&blli_in_use);
eval 'sub multiline () {"multilinestring";}' unless defined(&multiline);
}
1;
diff --git a/gnu/usr.bin/perl/t/op/getppid.t b/gnu/usr.bin/perl/t/op/getppid.t
index e3175a80c35..a8d0f2cb3b8 100755
--- a/gnu/usr.bin/perl/t/op/getppid.t
+++ b/gnu/usr.bin/perl/t/op/getppid.t
@@ -97,7 +97,7 @@ sub fork_and_retrieve {
}
} else {
# Fudge it by waiting a bit more:
- sleep 3;
+ sleep 2;
}
my $ppid2 = getppid();
print $w "$how,$ppid1,$ppid2\n";
diff --git a/gnu/usr.bin/perl/t/op/taint.t b/gnu/usr.bin/perl/t/op/taint.t
index 101c6da4270..846ac23f0da 100644
--- a/gnu/usr.bin/perl/t/op/taint.t
+++ b/gnu/usr.bin/perl/t/op/taint.t
@@ -17,7 +17,7 @@ BEGIN {
use strict;
use Config;
-plan tests => 808;
+plan tests => 812;
$| = 1;
@@ -187,6 +187,22 @@ my $TEST = 'TEST';
like($@, qr/^Insecure (?:directory in )?\$ENV\{PATH}/);
}
+ # Relative paths in $ENV{PATH} are always implicitly tainted.
+ SKIP: {
+ skip "Do these work on VMS?", 4 if $Is_VMS;
+ skip "Not applicable to DOSish systems", 4 if! $tmp;
+
+ local $ENV{PATH} = '.';
+ is(eval { `$echo 1` }, undef);
+ like($@, qr/^Insecure (?:directory in )?\$ENV\{PATH}/);
+
+ # Backslash should not fool perl into thinking that this is one
+ # path.
+ local $ENV{PATH} = '/\:.';
+ is(eval { `$echo 1` }, undef);
+ like($@, qr/^Insecure (?:directory in )?\$ENV\{PATH}/);
+ }
+
SKIP: {
skip "This is not VMS", 4 unless $Is_VMS;
diff --git a/gnu/usr.bin/perl/t/porting/customized.dat b/gnu/usr.bin/perl/t/porting/customized.dat
index 901bd4dfb3c..defeae11275 100644
--- a/gnu/usr.bin/perl/t/porting/customized.dat
+++ b/gnu/usr.bin/perl/t/porting/customized.dat
@@ -1,4 +1,3 @@
-Digest::MD5 cpan/Digest-MD5/t/files.t f8fe234035918d3b7324eba05f73e7e903a45ca0
Archive::Tar cpan/Archive-Tar/bin/ptar 5e9f3c6f565114193d98847ed8569cd0010c229c
Archive::Tar cpan/Archive-Tar/bin/ptardiff 5a9f4c01a0390bf98da7e63f1c0bbf5bc74d12c7
Archive::Tar cpan/Archive-Tar/bin/ptargrep eb74056c434acf314ac5a122e33bdd2ef99e6edb
@@ -43,7 +42,7 @@ ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_MacOS.pm 1f5eb772eed
ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_NW5.pm de777d7809c0d73e5d4622a29921731c7e5dff48
ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_OS2.pm 01e8f08a82b5304009574e3ac0892b4066ff7639
ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_QNX.pm 5340052b58557a6764f5ac9f8b807fefec404a06
-ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm 20a9e08add92f04ee97084dbc48876c18622613b
+ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm 3c3b93f431b0a51b9592b3d69624dbf5409f6f74
ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_UWIN.pm 40397f4cd2d49700b80b4ef490da98add24c5b37
ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_VMS.pm 147e97fbabb74841f0733dbd5d1b9f3fa51f87c1
ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_VOS.pm 3f13ed7045ff3443bcb4dd6c95c98b9bd705820f
@@ -160,8 +159,6 @@ Test::Harness cpan/Test-Harness/lib/TAP/Parser/YAMLish/Reader.pm 76771092dd2b87a
Test::Harness cpan/Test-Harness/lib/TAP/Parser/YAMLish/Writer.pm bf1fbfff9720330886651f183959a5db56daeea0
Test::Harness cpan/Test-Harness/lib/Test/Harness.pm da2d76ba673372da129060c9d0adb8cf0d91f9f7
autodie cpan/autodie/t/mkdir.t 9e70d2282a3cc7d76a78bf8144fccba20fb37dac
-base dist/base/lib/base.pm 8db115a702f759526b031f90cc572d97086978a6
-version vutil.c 45ff345c3d8424ba63e130a223848f5b336bd87b
bignum cpan/bignum/lib/bigint.pm 56330354995409dab5073ea92d749f8727e265db
bignum cpan/bignum/lib/bignum.pm e999973f78e6be12282c11bb6328246b31a9576b
bignum cpan/bignum/lib/bigrat.pm 7fccc9df30e43dbbae6e5ea91b26c8046545c9a9
diff --git a/gnu/usr.bin/perl/t/porting/dual-life.t b/gnu/usr.bin/perl/t/porting/dual-life.t
index 9aa60c2ea6f..d7d62d717d5 100644
--- a/gnu/usr.bin/perl/t/porting/dual-life.t
+++ b/gnu/usr.bin/perl/t/porting/dual-life.t
@@ -24,12 +24,6 @@ use File::Spec::Functions;
# Exceptions that are found in dual-life bin dirs but aren't
# installed by default; some occur only during testing:
my $not_installed = qr{^(?:
- \.\./cpan/Archive-Tar/bin/ptar.*
- |
- \.\./cpan/JSON-PP/bin/json_pp
- |
- \.\./cpan/IO-Compress/bin/zipdetails
- |
\.\./cpan/Encode/bin/u(?:cm(?:2table|lint|sort)|nidump)
|
\.\./cpan/Module-(?:Metadata|Build)
diff --git a/gnu/usr.bin/perl/t/re/speed.t b/gnu/usr.bin/perl/t/re/speed.t
index 0a32b5c9237..648f2e9b749 100644
--- a/gnu/usr.bin/perl/t/re/speed.t
+++ b/gnu/usr.bin/perl/t/re/speed.t
@@ -41,7 +41,7 @@ run_tests() unless caller;
sub run_tests {
- watchdog(($::running_as_thread && $::running_as_thread) ? 150 : 540);
+ watchdog(($::running_as_thread && $::running_as_thread) ? 150 : 225);
{
# [perl #120446]
@@ -150,7 +150,7 @@ PROG
my $substr= substr( $str, 1 );
1 while $substr=~m/0/g;
$elapsed += time;
- ok( $elapsed <= 2, "should not COW on long string with substr and m//g");
+ ok( $elapsed <= 1, "should not COW on long string with substr and m//g");
}
diff --git a/gnu/usr.bin/perl/t/re/subst.t b/gnu/usr.bin/perl/t/re/subst.t
index 26a78c774d3..49d28e9689c 100755
--- a/gnu/usr.bin/perl/t/re/subst.t
+++ b/gnu/usr.bin/perl/t/re/subst.t
@@ -11,7 +11,7 @@ BEGIN {
require './loc_tools.pl';
}
-plan( tests => 270 );
+plan( tests => 271 );
$_ = 'david';
$a = s/david/rules/r;
@@ -1102,3 +1102,20 @@ SKIP: {
$s =~ s/..\G//g;
is($s, "\x{123}", "#RT 126260 gofs");
}
+
+SKIP: {
+ if (! locales_enabled('LC_CTYPE')) {
+ skip "Can't test locale", 1;
+ }
+
+ # To cause breakeage, we need a locale in which \xff matches whatever
+ # POSIX class is used in the pattern. Easiest is C, with \W.
+ fresh_perl_is(' use POSIX qw(locale_h);
+ setlocale(&POSIX::LC_CTYPE, "C");
+ my $s = "\xff";
+ $s =~ s/\W//l;
+ print qq(ok$s\n)',
+ "ok\n",
+ {stderr => 1 },
+ '[perl #129038 ] s/\xff//l no longer crashes');
+}
diff --git a/gnu/usr.bin/perl/util.c b/gnu/usr.bin/perl/util.c
index 8dfe8e250d8..b64e87dd32f 100644
--- a/gnu/usr.bin/perl/util.c
+++ b/gnu/usr.bin/perl/util.c
@@ -524,15 +524,17 @@ Free_t Perl_mfree (Malloc_t where)
/* copy a string up to some (non-backslashed) delimiter, if any */
-char *
-Perl_delimcpy(char *to, const char *toend, const char *from, const char *fromend, int delim, I32 *retlen)
+static char *
+S_delimcpy(char *to, const char *toend, const char *from,
+ const char *fromend, int delim, I32 *retlen,
+ const bool allow_escape)
{
I32 tolen;
PERL_ARGS_ASSERT_DELIMCPY;
for (tolen = 0; from < fromend; from++, tolen++) {
- if (*from == '\\') {
+ if (allow_escape && *from == '\\') {
if (from[1] != delim) {
if (to < toend)
*to++ = *from;
@@ -551,6 +553,23 @@ Perl_delimcpy(char *to, const char *toend, const char *from, const char *fromend
return (char *)from;
}
+char *
+Perl_delimcpy(char *to, const char *toend, const char *from, const char *fromend, int delim, I32 *retlen)
+{
+ PERL_ARGS_ASSERT_DELIMCPY;
+
+ return S_delimcpy(to, toend, from, fromend, delim, retlen, 1);
+}
+
+char *
+Perl_delimcpy_no_escape(char *to, const char *toend, const char *from,
+ const char *fromend, int delim, I32 *retlen)
+{
+ PERL_ARGS_ASSERT_DELIMCPY_NO_ESCAPE;
+
+ return S_delimcpy(to, toend, from, fromend, delim, retlen, 0);
+}
+
/* return ptr to little string in big string, NULL if not found */
/* This routine was donated by Corey Satten. */
@@ -4630,9 +4649,6 @@ Perl_parse_unicode_opts(pTHX_ const char **popt)
U32
Perl_seed(pTHX)
{
-#if defined(__OpenBSD__)
- return arc4random();
-#else
/*
* This is really just a quick hack which grabs various garbage
* values. It really should be a real hash algorithm which
@@ -4701,7 +4717,6 @@ Perl_seed(pTHX)
u += SEED_C5 * (U32)PTR2UV(&when);
#endif
return u;
-#endif
}
void
diff --git a/gnu/usr.bin/perl/utils.lst b/gnu/usr.bin/perl/utils.lst
index 13384932674..216a9d0b557 100644
--- a/gnu/usr.bin/perl/utils.lst
+++ b/gnu/usr.bin/perl/utils.lst
@@ -11,13 +11,19 @@ utils/encguess
utils/h2ph
utils/h2xs
utils/instmodsh
+utils/json_pp
utils/libnetcfg
-utils/perlbug
+utils/perlbug # link = utils/perlthanks
utils/perldoc
utils/perlivp
utils/piconv
utils/pl2pm
utils/pod2html
utils/prove
+utils/ptar
+utils/ptardiff
+utils/ptargrep
+utils/shasum
utils/splain
utils/xsubpp
+utils/zipdetails
diff --git a/gnu/usr.bin/perl/utils/Makefile.PL b/gnu/usr.bin/perl/utils/Makefile.PL
index 640dac255bf..27c371f82a8 100644
--- a/gnu/usr.bin/perl/utils/Makefile.PL
+++ b/gnu/usr.bin/perl/utils/Makefile.PL
@@ -35,9 +35,9 @@ print $fh <<'EOT';
# Files to be built with variable substitution after miniperl is
# available. Dependencies handled manually below (for now).
-pl = c2ph.PL corelist.PL cpan.PL h2ph.PL h2xs.PL instmodsh.PL perlbug.PL perldoc.PL perlivp.PL pl2pm.PL prove.PL splain.PL libnetcfg.PL piconv.PL enc2xs.PL encguess.PL xsubpp.PL pod2html.PL
-plextract = c2ph corelist cpan h2ph h2xs instmodsh perlbug perldoc perlivp pl2pm prove splain libnetcfg piconv enc2xs encguess xsubpp pod2html
-plextractexe = ./c2ph ./corelist ./cpan ./h2ph ./h2xs ./instmodsh ./perlbug ./perldoc ./perlivp ./pl2pm ./prove ./splain ./libnetcfg ./piconv ./enc2xs ./encguess ./xsubpp ./pod2html
+pl = c2ph.PL corelist.PL cpan.PL h2ph.PL h2xs.PL instmodsh.PL json_pp.PL perlbug.PL perldoc.PL perlivp.PL pl2pm.PL prove.PL ptar.PL ptardiff.PL ptargrep.PL shasum.PL splain.PL libnetcfg.PL piconv.PL enc2xs.PL encguess.PL xsubpp.PL pod2html.PL zipdetails.PL
+plextract = c2ph corelist cpan h2ph h2xs instmodsh json_pp perlbug perldoc perlivp pl2pm prove ptar ptardiff ptargrep shasum splain libnetcfg piconv enc2xs encguess xsubpp pod2html zipdetails
+plextractexe = ./c2ph ./corelist ./cpan ./h2ph ./h2xs ./json_pp ./instmodsh ./perlbug ./perldoc ./perlivp ./pl2pm ./prove ./ptar ./ptardiff ./ptargrep ./shasum ./splain ./libnetcfg ./piconv ./enc2xs ./encguess ./xsubpp ./pod2html ./zipdetails
all: $(plextract)
@@ -56,6 +56,8 @@ h2xs: h2xs.PL ../config.sh
instmodsh: instmodsh.PL ../config.sh
+json_pp: json_pp.PL ../config.sh
+
perlbug: perlbug.PL ../config.sh ../patchlevel.h
perldoc: perldoc.PL ../config.sh
@@ -64,8 +66,16 @@ perlivp: perlivp.PL ../config.sh
prove: prove.PL ../config.sh
+ptar: ptar.PL ../config.sh
+
+ptardiff: ptardiff.PL ../config.sh
+
+ptargrep: ptargrep.PL ../config.sh
+
pl2pm: pl2pm.PL ../config.sh
+shasum: shasum.PL ../config.sh
+
splain: splain.PL ../config.sh ../lib/diagnostics.pm
libnetcfg: libnetcfg.PL ../config.sh
@@ -78,6 +88,8 @@ enc2xs: encguess.PL ../config.sh
xsubpp: xsubpp.PL ../config.sh
+zipdetails: zipdetails.PL ../config.sh
+
pod2html: pod2html.PL ../config.sh ../ext/Pod-Html/bin/pod2html
clean:
diff --git a/gnu/usr.bin/perl/utils/h2ph.PL b/gnu/usr.bin/perl/utils/h2ph.PL
index 6d743718c63..2523c0a6545 100644
--- a/gnu/usr.bin/perl/utils/h2ph.PL
+++ b/gnu/usr.bin/perl/utils/h2ph.PL
@@ -573,7 +573,7 @@ sub next_line
$in =~ s/\?\?</{/g; # | ??<| {|
$in =~ s/\?\?>/}/g; # | ??>| }|
}
- if ($in =~ s/^\#ifdef __LANGUAGE_PASCAL__//) {
+ if ($in =~ /^\#ifdef __LANGUAGE_PASCAL__/) {
# Tru64 disassembler.h evilness: mixed C and Pascal.
while (<IN>) {
last if /^\#endif/;
@@ -581,8 +581,8 @@ sub next_line
$in = "";
next READ;
}
- # Skip inlined functions in headers
- if ($in =~ s/^(extern|static) (__inline__|inline) .*[^;]\s*$//) {
+ if ($in =~ /^extern inline / && # Inlined assembler.
+ $^O eq 'linux' && $file =~ m!(?:^|/)asm/[^/]+\.h$!) {
while (<IN>) {
last if /^}/;
}
diff --git a/gnu/usr.bin/perl/utils/perlbug.PL b/gnu/usr.bin/perl/utils/perlbug.PL
index 931fcd86851..ae8c3430521 100644
--- a/gnu/usr.bin/perl/utils/perlbug.PL
+++ b/gnu/usr.bin/perl/utils/perlbug.PL
@@ -346,14 +346,15 @@ sub Query {
This program provides an easy way to send a thank-you message back to the
authors and maintainers of perl.
-If you wish to submit a bug report, please run it without the -T flag.
+If you wish to submit a bug report, please run it without the -T flag
+(or run the program perlbug rather than perlthanks)
EOF
} else {
paraprint <<"EOF";
This program provides an easy way to create a message reporting a
bug in the core perl distribution (along with tests or patches)
to the volunteers who maintain perl at $address. To send a thank-you
-note to $thanksaddress instead of a bug report, please use the -T flag.
+note to $thanksaddress instead of a bug report, please run 'perlthanks'.
Please do not use $0 to send test messages, test whether perl
works, or to report bugs in perl modules from CPAN.
@@ -1244,6 +1245,8 @@ S<[ B<-S> ]> S<[ B<-t> ]> S<[ B<-d> ]> S<[ B<-A> ]> S<[ B<-h> ]> S<[ B<-T> ]>
B<perlbug> S<[ B<-v> ]> S<[ B<-r> I<returnaddress> ]>
S<[ B<-A> ]> S<[ B<-ok> | B<-okay> | B<-nok> | B<-nokay> ]>
+B<perlthanks>
+
=head1 DESCRIPTION
@@ -1396,8 +1399,8 @@ description of what's wrong is fine.
=item Can you use C<perlbug> to submit a thank-you note?
-Yes, you can do this by using the C<-T> option.
-Thank-you notes are good. It makes people
+Yes, you can do this by either using the C<-T> option, or by invoking
+the program as C<perlthanks>. Thank-you notes are good. It makes people
smile.
=back
diff --git a/gnu/usr.bin/perl/vms/descrip_mms.template b/gnu/usr.bin/perl/vms/descrip_mms.template
index da4e541e79a..9702c68d5fd 100644
--- a/gnu/usr.bin/perl/vms/descrip_mms.template
+++ b/gnu/usr.bin/perl/vms/descrip_mms.template
@@ -307,7 +307,7 @@ utils : $(utils1) $(utils2) $(utils3) $(utils4) $(utils5)
extra.pods : miniperl
@ @extra_pods.com
-PERLDELTA_CURRENT = [.pod]perl5241delta.pod
+PERLDELTA_CURRENT = [.pod]perl5242delta.pod
$(PERLDELTA_CURRENT) : [.pod]perldelta.pod
Copy/NoConfirm/Log $(MMS$SOURCE) $(PERLDELTA_CURRENT)
diff --git a/gnu/usr.bin/perl/vutil.c b/gnu/usr.bin/perl/vutil.c
index de3367e7dca..610c03c4463 100644
--- a/gnu/usr.bin/perl/vutil.c
+++ b/gnu/usr.bin/perl/vutil.c
@@ -609,11 +609,7 @@ VER_NV:
/* may get too much accuracy */
char tbuf[64];
-#ifdef __vax__
- SV *sv = SvNVX(ver) > 10e37 ? newSV(64) : 0;
-#else
SV *sv = SvNVX(ver) > 10e50 ? newSV(64) : 0;
-#endif
char *buf;
#if PERL_VERSION_GE(5,19,0)
diff --git a/gnu/usr.bin/perl/win32/GNUmakefile b/gnu/usr.bin/perl/win32/GNUmakefile
index cd855c272a5..e895cdbae62 100644
--- a/gnu/usr.bin/perl/win32/GNUmakefile
+++ b/gnu/usr.bin/perl/win32/GNUmakefile
@@ -67,7 +67,7 @@ INST_TOP := $(INST_DRV)\perl
# versioned installation can be obtained by setting INST_TOP above to a
# path that includes an arbitrary version string.
#
-#INST_VER := \5.24.1
+#INST_VER := \5.24.2
#
# Comment this out if you DON'T want your perl installation to have
@@ -1544,7 +1544,7 @@ utils: $(HAVEMINIPERL) ..\utils\Makefile
copy ..\README.tw ..\pod\perltw.pod
copy ..\README.vos ..\pod\perlvos.pod
copy ..\README.win32 ..\pod\perlwin32.pod
- copy ..\pod\perldelta.pod ..\pod\perl5241delta.pod
+ copy ..\pod\perldelta.pod ..\pod\perl5242delta.pod
$(MINIPERL) -I..\lib $(PL2BAT) $(UTILS)
$(MINIPERL) -I..\lib ..\autodoc.pl ..
$(MINIPERL) -I..\lib ..\pod\perlmodlib.PL -q ..
@@ -1640,7 +1640,7 @@ distclean: realclean
-if exist $(LIBDIR)\Win32API rmdir /s /q $(LIBDIR)\Win32API
-if exist $(LIBDIR)\XS rmdir /s /q $(LIBDIR)\XS
-cd $(PODDIR) && del /f *.html *.bat roffitall \
- perl5241delta.pod perlaix.pod perlamiga.pod perlandroid.pod \
+ perl5242delta.pod perlaix.pod perlamiga.pod perlandroid.pod \
perlapi.pod perlbs2000.pod perlce.pod perlcn.pod perlcygwin.pod \
perldos.pod perlfreebsd.pod perlhaiku.pod perlhpux.pod \
perlhurd.pod perlintern.pod perlirix.pod perljp.pod perlko.pod \
@@ -1648,7 +1648,8 @@ distclean: realclean
perlnetware.pod perlopenbsd.pod perlos2.pod perlos390.pod \
perlos400.pod perlplan9.pod perlqnx.pod perlriscos.pod \
perlsolaris.pod perlsymbian.pod perlsynology.pod perltoc.pod \
- perltru64.pod perltw.pod perlvos.pod perlwin32.pod
+ perltru64.pod perltw.pod perluniprops.pod perlvos.pod \
+ perlwin32.pod
-cd ..\utils && del /f h2ph splain perlbug pl2pm c2ph pstruct h2xs \
perldoc perlivp libnetcfg enc2xs encguess piconv cpan *.bat \
xsubpp pod2html instmodsh json_pp prove ptar ptardiff ptargrep shasum corelist zipdetails
diff --git a/gnu/usr.bin/perl/win32/Makefile b/gnu/usr.bin/perl/win32/Makefile
index 52a4fc78d50..cec0a002cf6 100644
--- a/gnu/usr.bin/perl/win32/Makefile
+++ b/gnu/usr.bin/perl/win32/Makefile
@@ -38,7 +38,7 @@ INST_TOP = $(INST_DRV)\perl
# versioned installation can be obtained by setting INST_TOP above to a
# path that includes an arbitrary version string.
#
-#INST_VER = \5.24.1
+#INST_VER = \5.24.2
#
# Comment this out if you DON'T want your perl installation to have
@@ -1215,7 +1215,7 @@ utils: $(PERLEXE) ..\utils\Makefile
copy ..\README.tw ..\pod\perltw.pod
copy ..\README.vos ..\pod\perlvos.pod
copy ..\README.win32 ..\pod\perlwin32.pod
- copy ..\pod\perldelta.pod ..\pod\perl5241delta.pod
+ copy ..\pod\perldelta.pod ..\pod\perl5242delta.pod
cd ..\win32
$(PERLEXE) $(PL2BAT) $(UTILS)
$(MINIPERL) -I..\lib ..\autodoc.pl ..
@@ -1288,7 +1288,6 @@ distclean: realclean
-if exist $(LIBDIR)\MIME rmdir /s /q $(LIBDIR)\MIME
-if exist $(LIBDIR)\Module rmdir /s /q $(LIBDIR)\Module
-if exist $(LIBDIR)\Net\FTP rmdir /s /q $(LIBDIR)\Net\FTP
- -if exist $(LIBDIR)\OpenBSD rmdir /s /q $(LIBDIR)\OpenBSD
-if exist $(LIBDIR)\Params rmdir /s /q $(LIBDIR)\Params
-if exist $(LIBDIR)\Parse rmdir /s /q $(LIBDIR)\Parse
-if exist $(LIBDIR)\Perl rmdir /s /q $(LIBDIR)\Perl
@@ -1314,7 +1313,7 @@ distclean: realclean
-if exist $(LIBDIR)\Win32API rmdir /s /q $(LIBDIR)\Win32API
-if exist $(LIBDIR)\XS rmdir /s /q $(LIBDIR)\XS
-cd $(PODDIR) && del /f *.html *.bat roffitall \
- perl5241delta.pod perlaix.pod perlamiga.pod perlandroid.pod \
+ perl5242delta.pod perlaix.pod perlamiga.pod perlandroid.pod \
perlapi.pod perlbs2000.pod perlce.pod perlcn.pod perlcygwin.pod \
perldos.pod perlfreebsd.pod perlhaiku.pod perlhpux.pod \
perlhurd.pod perlintern.pod perlirix.pod perljp.pod perlko.pod \
@@ -1322,7 +1321,8 @@ distclean: realclean
perlnetware.pod perlopenbsd.pod perlos2.pod perlos390.pod \
perlos400.pod perlplan9.pod perlqnx.pod perlriscos.pod \
perlsolaris.pod perlsymbian.pod perlsynology.pod perltoc.pod \
- perltru64.pod perltw.pod perlvos.pod perlwin32.pod
+ perltru64.pod perltw.pod perluniprops.pod perlvos.pod \
+ perlwin32.pod
-cd ..\utils && del /f h2ph splain perlbug pl2pm c2ph pstruct h2xs \
perldoc perlivp libnetcfg enc2xs encguess piconv cpan *.bat \
xsubpp pod2html instmodsh json_pp prove ptar ptardiff ptargrep shasum corelist zipdetails
diff --git a/gnu/usr.bin/perl/win32/makefile.mk b/gnu/usr.bin/perl/win32/makefile.mk
index fa11d46bc37..9823e63a0b4 100644
--- a/gnu/usr.bin/perl/win32/makefile.mk
+++ b/gnu/usr.bin/perl/win32/makefile.mk
@@ -44,7 +44,7 @@ INST_TOP *= $(INST_DRV)\perl
# versioned installation can be obtained by setting INST_TOP above to a
# path that includes an arbitrary version string.
#
-#INST_VER *= \5.24.1
+#INST_VER *= \5.24.2
#
# Comment this out if you DON'T want your perl installation to have
@@ -1511,7 +1511,7 @@ utils: $(HAVEMINIPERL) ..\utils\Makefile
copy ..\README.tw ..\pod\perltw.pod
copy ..\README.vos ..\pod\perlvos.pod
copy ..\README.win32 ..\pod\perlwin32.pod
- copy ..\pod\perldelta.pod ..\pod\perl5241delta.pod
+ copy ..\pod\perldelta.pod ..\pod\perl5242delta.pod
$(MINIPERL) -I..\lib $(PL2BAT) $(UTILS)
$(MINIPERL) -I..\lib ..\autodoc.pl ..
$(MINIPERL) -I..\lib ..\pod\perlmodlib.PL -q ..
@@ -1583,7 +1583,6 @@ distclean: realclean
-if exist $(LIBDIR)\MIME rmdir /s /q $(LIBDIR)\MIME
-if exist $(LIBDIR)\Module rmdir /s /q $(LIBDIR)\Module
-if exist $(LIBDIR)\Net\FTP rmdir /s /q $(LIBDIR)\Net\FTP
- -if exist $(LIBDIR)\OpenBSD rmdir /s /q $(LIBDIR)\OpenBSD
-if exist $(LIBDIR)\Params rmdir /s /q $(LIBDIR)\Params
-if exist $(LIBDIR)\Parse rmdir /s /q $(LIBDIR)\Parse
-if exist $(LIBDIR)\Perl rmdir /s /q $(LIBDIR)\Perl
@@ -1609,7 +1608,7 @@ distclean: realclean
-if exist $(LIBDIR)\Win32API rmdir /s /q $(LIBDIR)\Win32API
-if exist $(LIBDIR)\XS rmdir /s /q $(LIBDIR)\XS
-cd $(PODDIR) && del /f *.html *.bat roffitall \
- perl5241delta.pod perlaix.pod perlamiga.pod perlandroid.pod \
+ perl5242delta.pod perlaix.pod perlamiga.pod perlandroid.pod \
perlapi.pod perlbs2000.pod perlce.pod perlcn.pod perlcygwin.pod \
perldos.pod perlfreebsd.pod perlhaiku.pod perlhpux.pod \
perlhurd.pod perlintern.pod perlirix.pod perljp.pod perlko.pod \
@@ -1617,7 +1616,8 @@ distclean: realclean
perlnetware.pod perlopenbsd.pod perlos2.pod perlos390.pod \
perlos400.pod perlplan9.pod perlqnx.pod perlriscos.pod \
perlsolaris.pod perlsymbian.pod perlsynology.pod perltoc.pod \
- perltru64.pod perltw.pod perlvos.pod perlwin32.pod
+ perltru64.pod perltw.pod perluniprops.pod perlvos.pod \
+ perlwin32.pod
-cd ..\utils && del /f h2ph splain perlbug pl2pm c2ph pstruct h2xs \
perldoc perlivp libnetcfg enc2xs encguess piconv cpan *.bat \
xsubpp pod2html instmodsh json_pp prove ptar ptardiff ptargrep shasum corelist zipdetails
diff --git a/gnu/usr.bin/perl/win32/pod.mak b/gnu/usr.bin/perl/win32/pod.mak
index 829226583d5..f32d93c712a 100644
--- a/gnu/usr.bin/perl/win32/pod.mak
+++ b/gnu/usr.bin/perl/win32/pod.mak
@@ -43,8 +43,10 @@ POD = perl.pod \
perl5220delta.pod \
perl5221delta.pod \
perl5222delta.pod \
+ perl5223delta.pod \
perl5240delta.pod \
perl5241delta.pod \
+ perl5242delta.pod \
perl561delta.pod \
perl56delta.pod \
perl581delta.pod \
@@ -182,8 +184,10 @@ MAN = perl.man \
perl5220delta.man \
perl5221delta.man \
perl5222delta.man \
+ perl5223delta.man \
perl5240delta.man \
perl5241delta.man \
+ perl5242delta.man \
perl561delta.man \
perl56delta.man \
perl581delta.man \
@@ -321,8 +325,10 @@ HTML = perl.html \
perl5220delta.html \
perl5221delta.html \
perl5222delta.html \
+ perl5223delta.html \
perl5240delta.html \
perl5241delta.html \
+ perl5242delta.html \
perl561delta.html \
perl56delta.html \
perl581delta.html \
@@ -460,8 +466,10 @@ TEX = perl.tex \
perl5220delta.tex \
perl5221delta.tex \
perl5222delta.tex \
+ perl5223delta.tex \
perl5240delta.tex \
perl5241delta.tex \
+ perl5242delta.tex \
perl561delta.tex \
perl56delta.tex \
perl581delta.tex \