summaryrefslogtreecommitdiff
path: root/lang
diff options
context:
space:
mode:
authoradam <adam@pkgsrc.org>2011-08-05 18:06:14 +0000
committeradam <adam@pkgsrc.org>2011-08-05 18:06:14 +0000
commit91ce9f644cbd38fc15aab39cd660222e88133bfa (patch)
tree16e2a212a2321415d8c868d0500e1ed4bf4e1fa5 /lang
parent20ae37f03cd5275231ad166aa2c56fe44512c1f4 (diff)
downloadpkgsrc-91ce9f644cbd38fc15aab39cd660222e88133bfa.tar.gz
Changes 5.14.1:
* Several modules were updated to fix minor bugs. * Tests were fixed. * Documentation was improved. Changes 5.14.0: * Unicode version 6.0 is now supported. * Regular expressions can now be reset to the default modifiers. * Four new regular expression modifiers, "/d", "/l" , "/u", and "/a", were introduced. * The substitution operators now support the modifier "/r" to work non-destructively, leaving the original unmodified. * Larger octals can now be specified. * Array and hash operators can now experimentally operate directly on hard references. * printf-like functions now understand post-1980 size modifiers. * Exception handling was made more reliable and consistent. * Other enhancements and many bug fixes were made PkgSrc: * Fixed configuring on Mac OS X 10.7.
Diffstat (limited to 'lang')
-rw-r--r--lang/perl5/Makefile3
-rw-r--r--lang/perl5/Makefile.common4
-rw-r--r--lang/perl5/buildlink3.mk8
-rw-r--r--lang/perl5/distinfo32
-rw-r--r--lang/perl5/module.mk4
-rw-r--r--lang/perl5/patches/patch-ab4
-rw-r--r--lang/perl5/patches/patch-ad13
-rw-r--r--lang/perl5/patches/patch-ah4
-rw-r--r--lang/perl5/patches/patch-ai17
-rw-r--r--lang/perl5/patches/patch-aq6
-rw-r--r--lang/perl5/patches/patch-ca46
-rw-r--r--lang/perl5/patches/patch-ck4
-rw-r--r--lang/perl5/patches/patch-cn6
-rw-r--r--lang/perl5/patches/patch-dm280
-rw-r--r--lang/perl5/patches/patch-ds109
-rw-r--r--lang/perl5/patches/patch-dt606
-rw-r--r--lang/perl5/patches/patch-hints_darwin.sh19
-rw-r--r--lang/perl5/patches/patch-pp.c34
-rw-r--r--lang/perl5/patches/patch-ta4
-rw-r--r--lang/perl5/patches/patch-zc45
-rw-r--r--lang/perl5/patches/patch-ze15
-rw-r--r--lang/perl5/version.mk4
22 files changed, 75 insertions, 1192 deletions
diff --git a/lang/perl5/Makefile b/lang/perl5/Makefile
index 25170e80eb1..de31178e1c1 100644
--- a/lang/perl5/Makefile
+++ b/lang/perl5/Makefile
@@ -1,9 +1,8 @@
-# $NetBSD: Makefile,v 1.172 2011/05/16 07:59:04 abs Exp $
+# $NetBSD: Makefile,v 1.173 2011/08/05 18:06:14 adam Exp $
.include "license.mk"
.include "Makefile.common"
-PKGREVISION= 2
COMMENT= Practical Extraction and Report Language
PKG_DESTDIR_SUPPORT= user-destdir
diff --git a/lang/perl5/Makefile.common b/lang/perl5/Makefile.common
index b846b8ce0b9..bab1b86006d 100644
--- a/lang/perl5/Makefile.common
+++ b/lang/perl5/Makefile.common
@@ -1,9 +1,9 @@
-# $NetBSD: Makefile.common,v 1.9 2010/09/09 20:35:43 sno Exp $
+# $NetBSD: Makefile.common,v 1.10 2011/08/05 18:06:14 adam Exp $
#
# used by lang/perl5/Makefile
# used by databases/p5-gdbm/Makefile
-DISTNAME= perl-5.12.2
+DISTNAME= perl-5.14.1
CATEGORIES= lang devel perl5
MASTER_SITES= ${MASTER_SITE_PERL_CPAN:S,/modules/by-module/$,/src/5.0/,}
DISTFILES+= ${DISTNAME}${EXTRACT_SUFX}
diff --git a/lang/perl5/buildlink3.mk b/lang/perl5/buildlink3.mk
index 0d6b1aefedd..fb639997dcc 100644
--- a/lang/perl5/buildlink3.mk
+++ b/lang/perl5/buildlink3.mk
@@ -1,4 +1,4 @@
-# $NetBSD: buildlink3.mk,v 1.47 2010/08/27 05:27:37 sno Exp $
+# $NetBSD: buildlink3.mk,v 1.48 2011/08/05 18:06:14 adam Exp $
BUILDLINK_TREE+= perl
@@ -6,13 +6,13 @@ BUILDLINK_TREE+= perl
PERL_BUILDLINK3_MK:=
.include "../../mk/bsd.fast.prefs.mk"
-PERL5_REQD+= 5.12.0
+PERL5_REQD+= 5.14.0
.for _perl5_ver_ in ${PERL5_REQD}
BUILDLINK_API_DEPENDS.perl+= perl>=${_perl5_ver_}
.endfor
-# Prevent p5-* etc. packages built for 5.12.0 to be used
+# Prevent p5-* etc. packages built for 5.14.0 to be used
# with the next incompatible version of perl:
-BUILDLINK_API_DEPENDS.perl+= perl<5.14.0
+BUILDLINK_API_DEPENDS.perl+= perl<5.16.0
BUILDLINK_PKGSRCDIR.perl?= ../../lang/perl5
diff --git a/lang/perl5/distinfo b/lang/perl5/distinfo
index b3696bc6d4d..1080cae2c94 100644
--- a/lang/perl5/distinfo
+++ b/lang/perl5/distinfo
@@ -1,26 +1,18 @@
-$NetBSD: distinfo,v 1.76 2011/08/05 13:12:18 ryoon Exp $
+$NetBSD: distinfo,v 1.77 2011/08/05 18:06:14 adam Exp $
-SHA1 (perl-5.12.2.tar.gz) = c157f214a93ce20fc06dc9d9c902c05ad1327cb1
-RMD160 (perl-5.12.2.tar.gz) = b1fd7f05d96fa6a263d3622654af6b584c308ce4
-Size (perl-5.12.2.tar.gz) = 15143778 bytes
+SHA1 (perl-5.14.1.tar.gz) = bd24b7572330c4f87a47ea841f88deb925245a8b
+RMD160 (perl-5.14.1.tar.gz) = a4b324dc280367d183987dfdc6e43518abb4b252
+Size (perl-5.14.1.tar.gz) = 16321720 bytes
SHA1 (patch-aa) = 4c8197cdc0595a17ba377a28c7457f923c2d9bf9
-SHA1 (patch-ab) = e3aa6bf9695addb9b754297120caf8683a625d1a
+SHA1 (patch-ab) = b6104a02aa6fbeda2340042a93c2382d1a1965bb
SHA1 (patch-ac) = c1893ea4cf4b89b03b3acc5dec9b5828d50c5dad
-SHA1 (patch-ad) = 6018c045b0bce177eab86b16746e189cddbf140f
-SHA1 (patch-ah) = aca6b4bf08809789058f3ec259c6df86df2aaf83
-SHA1 (patch-ai) = 5abdbbddcba79088996056ab88a34db5fcd16b01
-SHA1 (patch-aq) = 3ece22678e3e6dcd3cf641e6389ff203cbe351b9
-SHA1 (patch-ca) = e8340df59362d1d388a8b6ea36fc85d4b230a67f
+SHA1 (patch-ah) = 6fe177646f0fc40f11f4b2b4f504ca45ddff1941
+SHA1 (patch-aq) = 0afdf2d8a262ea09e2df6efae705e7227dc9f06f
+SHA1 (patch-ca) = 112a98b85e8e276d8a211b440596ceba4f3302db
SHA1 (patch-ch) = 5b6a89c82e158bab0a5f06add48c28e600678099
-SHA1 (patch-ck) = 28207b8186c9ad194a1edc696159915bc16d1097
-SHA1 (patch-cn) = 7ca2b1ff19f8371637a34ec26779b37d74c74cca
+SHA1 (patch-ck) = 5c381db130cdf4c315678e2d65380eaaa3065fee
+SHA1 (patch-cn) = a88fcb04b32c6e446d77b62cb6883a04f04e2e75
SHA1 (patch-cp) = 0b22d334df24d128142855464bf6dd61d4d82975
-SHA1 (patch-dm) = 8e8a0ede0f371ef0ad3a0433912967f3b8f3dd43
-SHA1 (patch-ds) = e14502548e2b9579b9ac654bbc83d78cd249e8ab
-SHA1 (patch-dt) = 4d15e650b3aa9a1c8e50e5f9db91d82db3b68b8f
-SHA1 (patch-hints_darwin.sh) = 40e545a13938c96eab61cbf9d04050574a36a27b
-SHA1 (patch-pp.c) = fc8eaa16bfb214d4c346827fbffa7cd345f46c4b
-SHA1 (patch-ta) = 69f0d2df022eb8ff0dbcc77bde638cdc9c6391b1
-SHA1 (patch-zc) = c2a4c65a849f221294eaa61b52cd1fcb196e675b
+SHA1 (patch-ta) = 51a3e02148e78eaab882125f859e59add39a4fbe
SHA1 (patch-zd) = 15532739b4a582da322d3e51fc364905bacbcd7e
-SHA1 (patch-ze) = 73ad81c7f4265837f5d0efca3f2432e7dde265a0
+SHA1 (patch-ze) = 82f03439ab59aac4adfcb895ca22a0bbaaa0a6d1
diff --git a/lang/perl5/module.mk b/lang/perl5/module.mk
index 77502e577c4..0ba73465950 100644
--- a/lang/perl5/module.mk
+++ b/lang/perl5/module.mk
@@ -1,4 +1,4 @@
-# $NetBSD: module.mk,v 1.63 2010/08/27 05:27:37 sno Exp $
+# $NetBSD: module.mk,v 1.64 2011/08/05 18:06:14 adam Exp $
#
# This Makefile fragment is intended to be included by packages that build
# and install perl5 modules.
@@ -214,7 +214,7 @@ PERL5_MAKE_FLAGS.makemaker+= ${_var_}=${PERL5_${_var_}:Q}
# so override its value to the module's ${PREFIX}.
# Also, set VENDORARCHEXP, so existing .packlist won't be read.
#
-PERL5_MAKE_FLAGS.makemaker+= PREFIX=${PREFIX:Q} VENDORARCHEXP=${DESTDIR}${PERL5_INSTALLVENDORARCH}
+PERL5_MAKE_FLAGS.makemaker+= PREFIX=${PREFIX:Q} VENDORARCHEXP=${DESTDIR}${PERL5_INSTALLVENDORARCH}
PERL5_MAKE_FLAGS+= ${PERL5_MAKE_FLAGS.${PERL5_MODTYPE}}
MAKE_FLAGS+= ${PERL5_MAKE_FLAGS}
diff --git a/lang/perl5/patches/patch-ab b/lang/perl5/patches/patch-ab
index f8471b1a800..6638eddf46e 100644
--- a/lang/perl5/patches/patch-ab
+++ b/lang/perl5/patches/patch-ab
@@ -1,8 +1,8 @@
-$NetBSD: patch-ab,v 1.15 2009/12/14 06:36:57 seb Exp $
+$NetBSD: patch-ab,v 1.16 2011/08/05 18:06:14 adam Exp $
--- installperl.orig 2009-12-06 17:14:00.000000000 +0000
+++ installperl 2009-12-06 17:14:13.000000000 +0000
-@@ -355,7 +355,6 @@
+@@ -348,7 +348,6 @@
mkpath($installprivlib, $opts{verbose}, 0777);
mkpath($installarchlib, $opts{verbose}, 0777);
mkpath($installsitelib, $opts{verbose}, 0777) if ($installsitelib);
diff --git a/lang/perl5/patches/patch-ad b/lang/perl5/patches/patch-ad
deleted file mode 100644
index 0b67fabf5c5..00000000000
--- a/lang/perl5/patches/patch-ad
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD: patch-ad,v 1.15 2011/07/19 13:58:53 joerg Exp $
-
---- hints/netbsd.sh.orig 2011-07-15 12:39:37.000000000 +0000
-+++ hints/netbsd.sh
-@@ -35,7 +35,7 @@ case "$osvers" in
- d_dlopen=$define
- d_dlerror=$define
- cccdlflags="-DPIC -fPIC $cccdlflags"
-- lddlflags="--whole-archive -shared $lddlflags"
-+ lddlflags="-shared $lddlflags"
- rpathflag="-Wl,-rpath,"
- case "$osvers" in
- 1.[0-5]*)
diff --git a/lang/perl5/patches/patch-ah b/lang/perl5/patches/patch-ah
index 70a249e10bd..f43547f1f44 100644
--- a/lang/perl5/patches/patch-ah
+++ b/lang/perl5/patches/patch-ah
@@ -1,10 +1,10 @@
-$NetBSD: patch-ah,v 1.12 2010/08/27 05:27:37 sno Exp $
+$NetBSD: patch-ah,v 1.13 2011/08/05 18:06:14 adam Exp $
NetBSD's implementation sometimes returns "/"; reject that too.
--- perl.c.orig 2010-05-21 14:41:18.000000000 +0000
+++ perl.c 2010-05-21 14:44:01.000000000 +0000
-@@ -1414,8 +1414,10 @@
+@@ -1422,8 +1422,10 @@
to the executable (or returning an error from the readlink). Any valid
path has a '/' in it somewhere, so use that to validate the result.
See http://www.freebsd.org/cgi/query-pr.cgi?pr=35703
diff --git a/lang/perl5/patches/patch-ai b/lang/perl5/patches/patch-ai
deleted file mode 100644
index f214aed4aae..00000000000
--- a/lang/perl5/patches/patch-ai
+++ /dev/null
@@ -1,17 +0,0 @@
-$NetBSD: patch-ai,v 1.7 2009/05/02 18:42:32 sno Exp $
-
---- hints/solaris_2.sh.orig 2007-12-18 11:47:07.000000000 +0100
-+++ hints/solaris_2.sh 2009-05-02 10:14:48.292729716 +0200
-@@ -571,9 +571,9 @@
- lddlflags="$lddlflags -G -m64"
- ;;
- *)
-- ccflags="$ccflags `getconf XBS5_LP64_OFF64_CFLAGS 2>/dev/null`"
-- ldflags="$ldflags `getconf XBS5_LP64_OFF64_LDFLAGS 2>/dev/null`"
-- lddlflags="$lddlflags -G `getconf XBS5_LP64_OFF64_LDFLAGS 2>/dev/null`"
-+ ccflags="$ccflags `getconf XBS5_LP64_OFF64_CFLAGS 2>/dev/null|sed 's/-xarch=generic64/-m64/g'`"
-+ ldflags="$ldflags `getconf XBS5_LP64_OFF64_LDFLAGS 2>/dev/null|sed 's/-xarch=generic64/-m64/g'`"
-+ lddlflags="$lddlflags -G `getconf XBS5_LP64_OFF64_LDFLAGS 2>/dev/null|sed 's/-xarch=generic64/-m64/g'`"
- echo "int main() { return(0); } " > try.c
- tryworkshopcc="${cc:-cc} try.c -o try $ccflags"
- if test "$processor" = sparc; then
diff --git a/lang/perl5/patches/patch-aq b/lang/perl5/patches/patch-aq
index 2a48d25c28c..08ca8e66f6a 100644
--- a/lang/perl5/patches/patch-aq
+++ b/lang/perl5/patches/patch-aq
@@ -1,8 +1,8 @@
-$NetBSD: patch-aq,v 1.2 2008/10/10 21:58:43 he Exp $
+$NetBSD: patch-aq,v 1.3 2011/08/05 18:06:14 adam Exp $
--- XSUB.h.orig 2007-12-18 11:47:07.000000000 +0100
+++ XSUB.h
-@@ -93,6 +93,9 @@ is a lexical $_ in scope.
+@@ -94,6 +94,9 @@ is a lexical $_ in scope.
#ifndef PERL_UNUSED_VAR
# define PERL_UNUSED_VAR(x) ((void)x)
#endif
@@ -12,7 +12,7 @@ $NetBSD: patch-aq,v 1.2 2008/10/10 21:58:43 he Exp $
#define ST(off) PL_stack_base[ax + (off)]
-@@ -116,15 +119,7 @@ is a lexical $_ in scope.
+@@ -117,15 +120,7 @@ is a lexical $_ in scope.
# define XS(name) EXPORT_C XSPROTO(name)
#endif
#ifndef XS
diff --git a/lang/perl5/patches/patch-ca b/lang/perl5/patches/patch-ca
index ba733c0d92e..2a6db696e5f 100644
--- a/lang/perl5/patches/patch-ca
+++ b/lang/perl5/patches/patch-ca
@@ -1,11 +1,8 @@
-$NetBSD: patch-ca,v 1.9 2011/01/30 21:31:43 wiz Exp $
+$NetBSD: patch-ca,v 1.10 2011/08/05 18:06:14 adam Exp $
-Hunk 7 (MirBSD) was submitted and accepted upstream, see
-http://rt.perl.org/rt3/Ticket/Display.html?id=82532
-
---- Configure.orig 2010-09-06 23:30:32.000000000 +0000
-+++ Configure
-@@ -3251,13 +3251,14 @@ EOM
+--- Configure.orig 2011-06-09 22:04:29.000000000 +0200
++++ Configure 2011-07-31 12:24:09.000000000 +0200
+@@ -3256,13 +3256,14 @@ EOM
osvers="$3"
;;
dragonfly) osname=dragonfly
@@ -22,7 +19,7 @@ http://rt.perl.org/rt3/Ticket/Display.html?id=82532
genix) osname=genix ;;
gnu) osname=gnu
osvers="$3" ;;
-@@ -3279,7 +3280,7 @@ EOM
+@@ -3284,7 +3285,7 @@ EOM
MiNT) osname=mint
;;
netbsd*) osname=netbsd
@@ -31,7 +28,7 @@ http://rt.perl.org/rt3/Ticket/Display.html?id=82532
;;
news-os) osvers="$3"
case "$3" in
-@@ -3290,7 +3291,7 @@ EOM
+@@ -3295,7 +3296,7 @@ EOM
next*) osname=next ;;
nonstop-ux) osname=nonstopux ;;
openbsd) osname=openbsd
@@ -71,16 +68,23 @@ http://rt.perl.org/rt3/Ticket/Display.html?id=82532
prefixvar=vendorlib
. ./installprefix
-@@ -8326,7 +8331,7 @@ if "$useshrplib"; then
- solaris)
- xxx="-R $shrpdir"
- ;;
-- freebsd|netbsd|openbsd|interix|dragonfly)
-+ freebsd|mirbsd|netbsd|openbsd|interix|dragonfly)
- xxx="-Wl,-R$shrpdir"
- ;;
- bsdos|linux|irix*|dec_osf|gnu*)
-@@ -8339,7 +8344,7 @@ if "$useshrplib"; then
+@@ -7510,6 +7515,15 @@ case "$nm_so_opt" in
+ ;;
+ esac
+
++: Mac OS X 10.7 is different
++case "$osname" in
++ darwin)
++ case "$osvers" in
++ 11.*)
++ libnames="$libnames /usr/lib/system/libsystem_*.dylib"
++ esac
++esac
++
+ : Figure out where the libc is located
+ case "$runnm" in
+ true)
+@@ -8339,7 +8353,7 @@ if "$useshrplib"; then
# beos doesn't like the default, either.
;;
haiku)
@@ -89,7 +93,7 @@ http://rt.perl.org/rt3/Ticket/Display.html?id=82532
;;
hpux*)
# hpux doesn't like the default, either.
-@@ -9410,6 +9415,13 @@ EOCP
+@@ -9410,6 +9424,13 @@ EOCP
;;
esac
@@ -103,7 +107,7 @@ http://rt.perl.org/rt3/Ticket/Display.html?id=82532
: Set the vendorbin variables
case "$vendorprefix" in
'') d_vendorbin="$undef"
-@@ -18925,7 +18937,15 @@ RCAT(Rei,ser)
+@@ -19061,7 +19082,15 @@ RCAT(Rei,ser)
ACAT(Cir,cus)
EOCP
$cppstdin $cppflags $cppminus <cpp_stuff.c >cpp_stuff.out 2>&1
diff --git a/lang/perl5/patches/patch-ck b/lang/perl5/patches/patch-ck
index 966851d7721..908b297af94 100644
--- a/lang/perl5/patches/patch-ck
+++ b/lang/perl5/patches/patch-ck
@@ -1,4 +1,4 @@
-$NetBSD: patch-ck,v 1.1 2005/06/24 06:43:47 jlam Exp $
+$NetBSD: patch-ck,v 1.2 2011/08/05 18:06:14 adam Exp $
--- hints/aix_4.sh.orig 2004-09-09 23:29:04.000000000 -0700
+++ hints/aix_4.sh 2005-03-08 18:42:35.000000000 -0700
@@ -103,9 +103,10 @@
@@ -15,7 +15,7 @@ $NetBSD: patch-ck,v 1.1 2005/06/24 06:43:47 jlam Exp $
cc=${cc:-cc}
ccflags="$ccflags -D_ALL_SOURCE -D_ANSI_C_SOURCE -D_POSIX_SOURCE"
-@@ -297,6 +298,7 @@
+@@ -310,6 +311,7 @@
d_getgrent_r='undef'
d_getpwent_r='undef'
d_random_r='undef'
diff --git a/lang/perl5/patches/patch-cn b/lang/perl5/patches/patch-cn
index 1c6cc1b5b92..01b8511194f 100644
--- a/lang/perl5/patches/patch-cn
+++ b/lang/perl5/patches/patch-cn
@@ -1,8 +1,8 @@
-$NetBSD: patch-cn,v 1.2 2008/10/10 21:58:43 he Exp $
+$NetBSD: patch-cn,v 1.3 2011/08/05 18:06:14 adam Exp $
--- hints/hpux.sh.orig 2007-12-18 11:47:07.000000000 +0100
+++ hints/hpux.sh
-@@ -376,7 +376,7 @@ case "$ccisgcc" in
+@@ -377,7 +377,7 @@ case "$ccisgcc" in
*O[3456789]*) optimize=`echo "$optimize" | sed -e 's/O[3-9]/O2/'` ;;
esac
#ld="$cc"
@@ -11,7 +11,7 @@ $NetBSD: patch-cn,v 1.2 2008/10/10 21:58:43 he Exp $
cccdlflags='-fPIC'
#lddlflags='-shared'
lddlflags='-b'
-@@ -434,7 +434,7 @@ case "$ccisgcc" in
+@@ -435,7 +435,7 @@ case "$ccisgcc" in
toke_cflags="$toke_cflags;optimize=\"$opt\""
regexec_cflags="optimize=\"$opt\""
fi
diff --git a/lang/perl5/patches/patch-dm b/lang/perl5/patches/patch-dm
deleted file mode 100644
index 4c04b63d36f..00000000000
--- a/lang/perl5/patches/patch-dm
+++ /dev/null
@@ -1,280 +0,0 @@
-$NetBSD: patch-dm,v 1.1 2010/09/23 21:47:48 sno Exp $
-
-Update Math::BigInt to 1.95
-
---- cpan/Math-BigInt/lib/Math/BigInt/CalcEmu.pm.orig 2010-09-05 15:14:32.000000000 +0000
-+++ cpan/Math-BigInt/lib/Math/BigInt/CalcEmu.pm
-@@ -5,7 +5,7 @@ use strict;
- # use warnings; # dont use warnings for older Perls
- use vars qw/$VERSION/;
-
--$VERSION = '0.05';
-+$VERSION = '0.06';
-
- package Math::BigInt;
-
---- cpan/Math-BigInt/lib/Math/BigInt/Calc.pm.orig 2010-09-05 15:14:32.000000000 +0000
-+++ cpan/Math-BigInt/lib/Math/BigInt/Calc.pm
-@@ -1,10 +1,10 @@
- package Math::BigInt::Calc;
-
--use 5.006;
-+use 5.006002;
- use strict;
- # use warnings; # dont use warnings for older Perls
-
--our $VERSION = '0.52';
-+our $VERSION = '0.54';
-
- # Package to store unsigned big integers in decimal and do math with them
-
-@@ -1264,7 +1264,7 @@ sub _is_even
-
- sub _is_odd
- {
-- # return true if arg is even
-+ # return true if arg is odd
- (($_[1]->[0] & 1)) <=> 0;
- }
-
-@@ -1536,22 +1536,20 @@ sub _nok
- # ref to array, return ref to array
- my ($c,$n,$k) = @_;
-
-- # ( 7 ) 7! 7*6*5 * 4*3*2*1 7 * 6 * 5
-- # ( - ) = --------- = --------------- = ---------
-- # ( 3 ) 3! (7-3)! 3*2*1 * 4*3*2*1 3 * 2 * 1
-+ # ( 7 ) 7! 1*2*3*4 * 5*6*7 5 * 6 * 7 6 7
-+ # ( - ) = --------- = --------------- = --------- = 5 * - * -
-+ # ( 3 ) (7-3)! 3! 1*2*3*4 * 1*2*3 1 * 2 * 3 2 3
-
-- # compute n - k + 2 (so we start with 5 in the example above)
-+ if (!_is_zero($c,$k))
-+ {
- my $x = _copy($c,$n);
--
- _sub($c,$n,$k);
-- if (!_is_one($c,$n))
-- {
- _inc($c,$n);
- my $f = _copy($c,$n); _inc($c,$f); # n = 5, f = 6, d = 2
- my $d = _two($c);
-- while (_acmp($c,$f,$x) <= 0) # f < n ?
-+ while (_acmp($c,$f,$x) <= 0) # f <= n ?
- {
-- # n = (n * f / d) == 5 * 6 / 2 => n == 3
-+ # n = (n * f / d) == 5 * 6 / 2
- $n = _mul($c,$n,$f); $n = _div($c,$n,$d);
- # f = 7, d = 3
- _inc($c,$f); _inc($c,$d);
---- cpan/Math-BigInt/lib/Math/BigInt.pm.orig 2010-09-05 15:14:32.000000000 +0000
-+++ cpan/Math-BigInt/lib/Math/BigInt.pm
-@@ -16,9 +16,9 @@ package Math::BigInt;
- # underlying lib might change the reference!
-
- my $class = "Math::BigInt";
--use 5.006;
-+use 5.006002;
-
--$VERSION = '1.89_01';
-+$VERSION = '1.95';
-
- @ISA = qw(Exporter);
- @EXPORT_OK = qw(objectify bgcd blcm);
-@@ -1260,7 +1260,7 @@ sub blog
- # objectify is costly, so avoid it
- if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1])))
- {
-- ($self,$x,$base,@r) = objectify(1,ref($x),@_);
-+ ($self,$x,$base,@r) = objectify(2,@_);
- }
-
- return $x if $x->modify('blog');
-@@ -1320,18 +1320,17 @@ sub bnok
- }
- else
- {
-- # ( 7 ) 7! 7*6*5 * 4*3*2*1 7 * 6 * 5
-- # ( - ) = --------- = --------------- = ---------
-- # ( 3 ) 3! (7-3)! 3*2*1 * 4*3*2*1 3 * 2 * 1
--
-- # compute n - k + 2 (so we start with 5 in the example above)
-- my $z = $x - $y;
-- if (!$z->is_one())
-+ # ( 7 ) 7! 1*2*3*4 * 5*6*7 5 * 6 * 7 6 7
-+ # ( - ) = --------- = --------------- = --------- = 5 * - * -
-+ # ( 3 ) (7-3)! 3! 1*2*3*4 * 1*2*3 1 * 2 * 3 2 3
-+
-+ if (!$y->is_zero())
- {
-+ my $z = $x - $y;
- $z->binc();
- my $r = $z->copy(); $z->binc();
- my $d = $self->new(2);
-- while ($z->bacmp($x) <= 0) # f < x ?
-+ while ($z->bacmp($x) <= 0) # f <= x ?
- {
- $r->bmul($z); $r->bdiv($d);
- $z->binc(); $d->binc();
-@@ -1375,11 +1374,11 @@ sub bexp
- else { $x = $u; }
- }
-
--sub blcm
-- {
-+sub blcm
-+ {
- # (BINT or num_str, BINT or num_str) return BINT
- # does not modify arguments, but returns new object
-- # Lowest Common Multiplicator
-+ # Lowest Common Multiple
-
- my $y = shift; my ($x);
- if (ref($y))
-@@ -1498,13 +1497,13 @@ sub is_even
-
- sub is_positive
- {
-- # return true when arg (BINT or num_str) is positive (>= 0)
-+ # return true when arg (BINT or num_str) is positive (> 0)
- my ($self,$x) = ref($_[0]) ? (undef,$_[0]) : objectify(1,@_);
-
- return 1 if $x->{sign} eq '+inf'; # +inf is positive
--
-+
- # 0+ is neither positive nor negative
-- ($x->{sign} eq '+' && !$x->is_zero()) ? 1 : 0;
-+ ($x->{sign} eq '+' && !$x->is_zero()) ? 1 : 0;
- }
-
- sub is_negative
-@@ -3136,8 +3135,8 @@ Math::BigInt - Arbitrary size integer/fl
- $x->is_one('-'); # if $x is -1
- $x->is_odd(); # if $x is odd
- $x->is_even(); # if $x is even
-- $x->is_pos(); # if $x >= 0
-- $x->is_neg(); # if $x < 0
-+ $x->is_pos(); # if $x > 0
-+ $x->is_neg(); # if $x < 0
- $x->is_inf($sign); # if $x is +inf, or -inf (sign is default '+')
- $x->is_int(); # if $x is an integer (not a float)
-
-@@ -3212,14 +3211,14 @@ Math::BigInt - Arbitrary size integer/fl
-
- $x->bfloor(); # return integer less or equal than $x
- $x->bceil(); # return integer greater or equal than $x
--
-+
- # The following do not modify their arguments:
-
- # greatest common divisor (no OO style)
- my $gcd = Math::BigInt::bgcd(@values);
-- # lowest common multiplicator (no OO style)
-- my $lcm = Math::BigInt::blcm(@values);
--
-+ # lowest common multiple (no OO style)
-+ my $lcm = Math::BigInt::blcm(@values);
-+
- $x->length(); # return number of digits in number
- ($xl,$f) = $x->length(); # length of number and length of fraction part,
- # latter is always 0 digits long for BigInts
-@@ -3393,15 +3392,15 @@ to the math operation as additional para
- print scalar $x->copy()->bdiv($y, 2); # print 4300
- print scalar $x->copy()->bdiv($y)->bround(2); # print 4300
-
--Please see the section about L<ACCURACY AND PRECISION> for further details.
-+Please see the section about L<ACCURACY and PRECISION> for further details.
-
- Value must be greater than zero. Pass an undef value to disable it:
-
- $x->accuracy(undef);
- Math::BigInt->accuracy(undef);
-
--Returns the current accuracy. For C<$x->accuracy()> it will return either the
--local accuracy, or if not defined, the global. This means the return value
-+Returns the current accuracy. For C<< $x->accuracy() >> it will return either
-+the local accuracy, or if not defined, the global. This means the return value
- represents the accuracy that will be in effect for $x:
-
- $y = Math::BigInt->new(1234567); # unrounded
-@@ -3443,15 +3442,15 @@ In Math::BigInt, passing a negative numb
- numbers have digits after the dot. In L<Math::BigFloat>, it will round all
- results to P digits after the dot.
-
--Please see the section about L<ACCURACY AND PRECISION> for further details.
-+Please see the section about L<ACCURACY and PRECISION> for further details.
-
- Pass an undef value to disable it:
-
- $x->precision(undef);
- Math::BigInt->precision(undef);
-
--Returns the current precision. For C<$x->precision()> it will return either the
--local precision of $x, or if not defined, the global. This means the return
-+Returns the current precision. For C<< $x->precision() >> it will return either
-+the local precision of $x, or if not defined, the global. This means the return
- value represents the prevision that will be in effect for $x:
-
- $y = Math::BigInt->new(1234567); # unrounded
-@@ -3509,7 +3508,7 @@ See L<Input> for more info on accepted i
-
- =head2 from_bin()
-
-- $x = Math::BigInt->from_oct("0x10011"); # input is binary
-+ $x = Math::BigInt->from_bin("0x10011"); # input is binary
-
- =head2 bnan()
-
-@@ -3605,7 +3604,7 @@ Returns -1, 0, 1 or undef.
-
- $x->bacmp($y);
-
--Compares $x with $y while ignoring their. Returns -1, 0, 1 or undef.
-+Compares $x with $y while ignoring their sign. Returns -1, 0, 1 or undef.
-
- =head2 sign()
-
-@@ -3912,8 +3911,8 @@ does change $x in BigFloat.
-
- =head2 blcm()
-
-- blcm(@values); # lowest common multiplicator (no OO style)
--
-+ blcm(@values); # lowest common multiple (no OO style)
-+
- head2 length()
-
- $x->length();
-@@ -4654,8 +4653,8 @@ directly.
-
- =item *
-
--The private object hash keys like C<$x->{sign}> may not be changed, but
--additional keys can be added, like C<$x->{_custom}>.
-+The private object hash keys like C<< $x->{sign} >> may not be changed, but
-+additional keys can be added, like C<< $x->{_custom} >>.
-
- =item *
-
---- cpan/Math-BigInt/lib/Math/BigFloat.pm.orig 2010-09-05 15:14:32.000000000 +0000
-+++ cpan/Math-BigInt/lib/Math/BigFloat.pm
-@@ -12,8 +12,8 @@ package Math::BigFloat;
- # _a : accuracy
- # _p : precision
-
--$VERSION = '1.60';
--require 5.006;
-+$VERSION = '1.62';
-+require 5.006002;
-
- require Exporter;
- @ISA = qw/Math::BigInt/;
-@@ -3905,7 +3905,7 @@ Some routines (C<is_odd()>, C<is_even()>
- C<is_nan()>) return true or false, while others (C<bcmp()>, C<bacmp()>)
- return either undef, <0, 0 or >0 and are suited for sort.
-
--Actual math is done by using the class defined with C<with => Class;> (which
-+Actual math is done by using the class defined with C<< with => Class; >> (which
- defaults to BigInts) to represent the mantissa and exponent.
-
- The sign C</^[+-]$/> is stored separately. The string 'NaN' is used to
diff --git a/lang/perl5/patches/patch-ds b/lang/perl5/patches/patch-ds
deleted file mode 100644
index 2e17eaa7c3f..00000000000
--- a/lang/perl5/patches/patch-ds
+++ /dev/null
@@ -1,109 +0,0 @@
-$NetBSD: patch-ds,v 1.1 2010/09/23 21:47:48 sno Exp $
-
-Update of threads::shared to 1.33
-
---- dist/threads-shared/shared.pm.orig 2010-09-06 23:30:32.000000000 +0000
-+++ dist/threads-shared/shared.pm
-@@ -7,7 +7,7 @@ use warnings;
-
- use Scalar::Util qw(reftype refaddr blessed);
-
--our $VERSION = '1.32';
-+our $VERSION = '1.33';
- my $XS_VERSION = $VERSION;
- $VERSION = eval $VERSION;
-
-@@ -187,7 +187,7 @@ threads::shared - Perl extension for sha
-
- =head1 VERSION
-
--This document describes threads::shared version 1.32
-+This document describes threads::shared version 1.33
-
- =head1 SYNOPSIS
-
-@@ -527,7 +527,8 @@ that the contents of hash-based objects
- mentioned limitation. See F<examples/class.pl> (in the CPAN distribution of
- this module) for how to create a class that supports object sharing.
-
--Does not support C<splice> on arrays!
-+Does not support C<splice> on arrays. Does not support explicitly changing
-+array lengths via $#array -- use C<push> and C<pop> instead.
-
- Taking references to the elements of shared arrays and hashes does not
- autovivify the elements, and neither does slicing a shared array/hash over
-@@ -588,7 +589,7 @@ L<threads::shared> Discussion Forum on C
- L<http://www.cpanforum.com/dist/threads-shared>
-
- Annotated POD for L<threads::shared>:
--L<http://annocpan.org/~JDHEDDEN/threads-shared-1.32/shared.pm>
-+L<http://annocpan.org/~JDHEDDEN/threads-shared-1.33/shared.pm>
-
- Source repository:
- L<http://code.google.com/p/threads-shared/>
---- dist/threads-shared/shared.xs.orig 2010-09-06 23:30:32.000000000 +0000
-+++ dist/threads-shared/shared.xs
-@@ -864,29 +864,32 @@ sharedsv_elem_mg_FETCH(pTHX_ SV *sv, MAG
- {
- dTHXc;
- SV *saggregate = S_sharedsv_from_obj(aTHX_ mg->mg_obj);
-- SV** svp;
-+ SV** svp = NULL;
-
- ENTER_LOCK;
-- if (SvTYPE(saggregate) == SVt_PVAV) {
-- assert ( mg->mg_ptr == 0 );
-- SHARED_CONTEXT;
-- svp = av_fetch((AV*) saggregate, mg->mg_len, 0);
-- } else {
-- char *key = mg->mg_ptr;
-- I32 len = mg->mg_len;
-- assert ( mg->mg_ptr != 0 );
-- if (mg->mg_len == HEf_SVKEY) {
-- STRLEN slen;
-- key = SvPV((SV *)mg->mg_ptr, slen);
-- len = slen;
-- if (SvUTF8((SV *)mg->mg_ptr)) {
-- len = -len;
-+ if (saggregate) { /* During global destruction, underlying
-+ aggregate may no longer exist */
-+ if (SvTYPE(saggregate) == SVt_PVAV) {
-+ assert ( mg->mg_ptr == 0 );
-+ SHARED_CONTEXT;
-+ svp = av_fetch((AV*) saggregate, mg->mg_len, 0);
-+ } else {
-+ char *key = mg->mg_ptr;
-+ I32 len = mg->mg_len;
-+ assert ( mg->mg_ptr != 0 );
-+ if (mg->mg_len == HEf_SVKEY) {
-+ STRLEN slen;
-+ key = SvPV((SV *)mg->mg_ptr, slen);
-+ len = slen;
-+ if (SvUTF8((SV *)mg->mg_ptr)) {
-+ len = -len;
-+ }
- }
-+ SHARED_CONTEXT;
-+ svp = hv_fetch((HV*) saggregate, key, len, 0);
- }
-- SHARED_CONTEXT;
-- svp = hv_fetch((HV*) saggregate, key, len, 0);
-+ CALLER_CONTEXT;
- }
-- CALLER_CONTEXT;
- if (svp) {
- /* Exists in the array */
- if (SvROK(*svp)) {
-@@ -957,6 +960,12 @@ sharedsv_elem_mg_DELETE(pTHX_ SV *sv, MA
- dTHXc;
- MAGIC *shmg;
- SV *saggregate = S_sharedsv_from_obj(aTHX_ mg->mg_obj);
-+
-+ /* Object may not exist during global destruction */
-+ if (! saggregate) {
-+ return (0);
-+ }
-+
- ENTER_LOCK;
- sharedsv_elem_mg_FETCH(aTHX_ sv, mg);
- if ((shmg = mg_find(sv, PERL_MAGIC_shared_scalar)))
diff --git a/lang/perl5/patches/patch-dt b/lang/perl5/patches/patch-dt
deleted file mode 100644
index 2c33424dcfc..00000000000
--- a/lang/perl5/patches/patch-dt
+++ /dev/null
@@ -1,606 +0,0 @@
-$NetBSD: patch-dt,v 1.2 2011/01/30 21:35:12 wiz Exp $
-
-update of threads to 1.78
-
---- dist/threads/t/thread.t.orig 2010-09-06 23:30:32.000000000 +0000
-+++ dist/threads/t/thread.t
-@@ -20,7 +20,7 @@ BEGIN {
- }
-
- $| = 1;
-- print("1..34\n"); ### Number of tests that will be run ###
-+ print("1..35\n"); ### Number of tests that will be run ###
- };
-
- print("ok 1 - Loaded\n");
-@@ -161,7 +161,7 @@ package main;
-
- # bugid #24165
-
--run_perl(prog => 'use threads 1.75;' .
-+run_perl(prog => 'use threads 1.78;' .
- 'sub a{threads->create(shift)} $t = a sub{};' .
- '$t->tid; $t->join; $t->tid',
- nolib => ($ENV{PERL_CORE}) ? 0 : 1,
-@@ -304,6 +304,26 @@ SKIP: {
- "counts of calls to DESTROY");
- }
-
-+# Bug 73330 - Apply magic to arg to ->object()
-+{
-+ my @tids :shared;
-+
-+ my $thr = threads->create(sub {
-+ lock(@tids);
-+ push(@tids, threads->tid());
-+ cond_signal(@tids);
-+ });
-+
-+ {
-+ lock(@tids);
-+ cond_wait(@tids) while (! @tids);
-+ }
-+
-+ ok(threads->object($_), 'Got threads object') foreach (@tids);
-+
-+ $thr->join();
-+}
-+
- exit(0);
-
- # EOF
---- dist/threads/t/exit.t.orig 2010-09-06 23:30:32.000000000 +0000
-+++ dist/threads/t/exit.t
-@@ -48,7 +48,7 @@ my $rc = $thr->join();
- ok(! defined($rc), 'Exited: threads->exit()');
-
-
--run_perl(prog => 'use threads 1.75;' .
-+run_perl(prog => 'use threads 1.78;' .
- 'threads->exit(86);' .
- 'exit(99);',
- nolib => ($ENV{PERL_CORE}) ? 0 : 1,
-@@ -98,7 +98,7 @@ $rc = $thr->join();
- ok(! defined($rc), 'Exited: $thr->set_thread_exit_only');
-
-
--run_perl(prog => 'use threads 1.75 qw(exit thread_only);' .
-+run_perl(prog => 'use threads 1.78 qw(exit thread_only);' .
- 'threads->create(sub { exit(99); })->join();' .
- 'exit(86);',
- nolib => ($ENV{PERL_CORE}) ? 0 : 1,
-@@ -108,7 +108,7 @@ run_perl(prog => 'use threads 1.75 qw(ex
- is($?>>8, 86, "'use threads 'exit' => 'thread_only'");
- }
-
--my $out = run_perl(prog => 'use threads 1.75;' .
-+my $out = run_perl(prog => 'use threads 1.78;' .
- 'threads->create(sub {' .
- ' exit(99);' .
- '});' .
-@@ -124,7 +124,7 @@ my $out = run_perl(prog => 'use threads
- like($out, '1 finished and unjoined', "exit(status) in thread");
-
-
--$out = run_perl(prog => 'use threads 1.75 qw(exit thread_only);' .
-+$out = run_perl(prog => 'use threads 1.78 qw(exit thread_only);' .
- 'threads->create(sub {' .
- ' threads->set_thread_exit_only(0);' .
- ' exit(99);' .
-@@ -141,7 +141,7 @@ $out = run_perl(prog => 'use threads 1.7
- like($out, '1 finished and unjoined', "set_thread_exit_only(0)");
-
-
--run_perl(prog => 'use threads 1.75;' .
-+run_perl(prog => 'use threads 1.78;' .
- 'threads->create(sub {' .
- ' $SIG{__WARN__} = sub { exit(99); };' .
- ' die();' .
---- dist/threads/t/basic.t.orig 2010-09-06 23:30:32.000000000 +0000
-+++ dist/threads/t/basic.t
-@@ -27,7 +27,7 @@ sub ok {
-
- BEGIN {
- $| = 1;
-- print("1..33\n"); ### Number of tests that will be run ###
-+ print("1..34\n"); ### Number of tests that will be run ###
- };
-
- use threads;
-@@ -153,14 +153,17 @@ $thrx = threads->object();
- ok(30, ! defined($thrx), 'No object');
- $thrx = threads->object(undef);
- ok(31, ! defined($thrx), 'No object');
--$thrx = threads->object(0);
--ok(32, ! defined($thrx), 'No object');
-
- threads->import('stringify');
- $thr1 = threads->create(sub {});
--ok(33, "$thr1" eq $thr1->tid(), 'Stringify');
-+ok(32, "$thr1" eq $thr1->tid(), 'Stringify');
- $thr1->join();
-
-+# ->object($tid) works like ->self() when $tid is thread's TID
-+$thrx = threads->object(threads->tid());
-+ok(33, defined($thrx), 'Main thread object');
-+ok(34, 0 == $thrx->tid(), "Check so that tid for threads work for main thread");
-+
- exit(0);
-
- # EOF
---- dist/threads/threads.xs.orig 2010-09-06 23:30:32.000000000 +0000
-+++ dist/threads/threads.xs
-@@ -52,7 +52,7 @@ typedef perl_os_thread pthread_t;
-
- /* Values for 'state' member */
- #define PERL_ITHR_DETACHED 1 /* Thread has been detached */
--#define PERL_ITHR_JOINED 2 /* Thread has been joined */
-+#define PERL_ITHR_JOINED 2 /* Thread is being / has been joined */
- #define PERL_ITHR_FINISHED 4 /* Thread has finished execution */
- #define PERL_ITHR_THREAD_EXIT_ONLY 8 /* exit() only exits current thread */
- #define PERL_ITHR_NONVIABLE 16 /* Thread creation failed */
-@@ -71,7 +71,7 @@ typedef struct _ithread {
- int state; /* Detached, joined, finished, etc. */
- int gimme; /* Context of create */
- SV *init_function; /* Code to run */
-- SV *params; /* Args to pass function */
-+ AV *params; /* Args to pass function */
- #ifdef WIN32
- DWORD thr; /* OS's idea if thread id */
- HANDLE handle; /* OS's waitable handle */
-@@ -215,7 +215,7 @@ S_ithread_clear(pTHX_ ithread *thread)
- S_ithread_set(aTHX_ thread);
-
- SvREFCNT_dec(thread->params);
-- thread->params = Nullsv;
-+ thread->params = NULL;
-
- if (thread->err) {
- SvREFCNT_dec(thread->err);
-@@ -487,7 +487,7 @@ S_ithread_run(void * arg)
- PL_perl_destruct_level = 2;
-
- {
-- AV *params = (AV *)SvRV(thread->params);
-+ AV *params = thread->params;
- int len = (int)av_len(params)+1;
- int ii;
-
-@@ -675,10 +675,13 @@ S_ithread_create(
- IV stack_size,
- int gimme,
- int exit_opt,
-- SV *params)
-+ SV **params_start,
-+ SV **params_end)
- {
- ithread *thread;
- ithread *current_thread = S_ithread_get(aTHX);
-+ AV *params;
-+ SV **array;
-
- #if PERL_VERSION <= 8 && PERL_SUBVERSION <= 7
- SV **tmps_tmp = PL_tmps_stack;
-@@ -781,7 +784,7 @@ S_ithread_create(
- * they are created
- */
- SvREFCNT_dec(PL_endav);
-- PL_endav = newAV();
-+ PL_endav = NULL;
-
- clone_param.flags = 0;
- if (SvPOK(init_function)) {
-@@ -792,8 +795,13 @@ S_ithread_create(
- SvREFCNT_inc(sv_dup(init_function, &clone_param));
- }
-
-- thread->params = sv_dup(params, &clone_param);
-- SvREFCNT_inc_void(thread->params);
-+ thread->params = params = newAV();
-+ av_extend(params, params_end - params_start - 1);
-+ AvFILLp(params) = params_end - params_start - 1;
-+ array = AvARRAY(params);
-+ while (params_start < params_end) {
-+ *array++ = SvREFCNT_inc(sv_dup(*params_start++, &clone_param));
-+ }
-
- #if PERL_VERSION <= 8 && PERL_SUBVERSION <= 7
- /* The code below checks that anything living on the tmps stack and
-@@ -908,7 +916,6 @@ S_ithread_create(
- #endif
- /* Must unlock mutex for destruct call */
- MUTEX_UNLOCK(&MY_POOL.create_destruct_mutex);
-- sv_2mortal(params);
- thread->state |= PERL_ITHR_NONVIABLE;
- S_ithread_free(aTHX_ thread); /* Releases MUTEX */
- #ifndef WIN32
-@@ -924,7 +931,6 @@ S_ithread_create(
- }
-
- MY_POOL.running_threads++;
-- sv_2mortal(params);
- return (thread);
- }
-
-@@ -942,7 +948,6 @@ ithread_create(...)
- char *classname;
- ithread *thread;
- SV *function_to_call;
-- AV *params;
- HV *specs;
- IV stack_size;
- int context;
-@@ -950,7 +955,8 @@ ithread_create(...)
- SV *thread_exit_only;
- char *str;
- int idx;
-- int ii;
-+ SV **args_start;
-+ SV **args_end;
- dMY_POOL;
- CODE:
- if ((items >= 2) && SvROK(ST(1)) && SvTYPE(SvRV(ST(1)))==SVt_PVHV) {
-@@ -988,18 +994,19 @@ ithread_create(...)
-
- context = -1;
- if (specs) {
-+ SV **svp;
- /* stack_size */
-- if (hv_exists(specs, "stack", 5)) {
-- stack_size = SvIV(*hv_fetch(specs, "stack", 5, 0));
-- } else if (hv_exists(specs, "stacksize", 9)) {
-- stack_size = SvIV(*hv_fetch(specs, "stacksize", 9, 0));
-- } else if (hv_exists(specs, "stack_size", 10)) {
-- stack_size = SvIV(*hv_fetch(specs, "stack_size", 10, 0));
-+ if ((svp = hv_fetch(specs, "stack", 5, 0))) {
-+ stack_size = SvIV(*svp);
-+ } else if ((svp = hv_fetch(specs, "stacksize", 9, 0))) {
-+ stack_size = SvIV(*svp);
-+ } else if ((svp = hv_fetch(specs, "stack_size", 10, 0))) {
-+ stack_size = SvIV(*svp);
- }
-
- /* context */
-- if (hv_exists(specs, "context", 7)) {
-- str = (char *)SvPV_nolen(*hv_fetch(specs, "context", 7, 0));
-+ if ((svp = hv_fetch(specs, "context", 7, 0))) {
-+ str = (char *)SvPV_nolen(*svp);
- switch (*str) {
- case 'a':
- case 'A':
-@@ -1018,27 +1025,27 @@ ithread_create(...)
- default:
- Perl_croak(aTHX_ "Invalid context: %s", str);
- }
-- } else if (hv_exists(specs, "array", 5)) {
-- if (SvTRUE(*hv_fetch(specs, "array", 5, 0))) {
-+ } else if ((svp = hv_fetch(specs, "array", 5, 0))) {
-+ if (SvTRUE(*svp)) {
- context = G_ARRAY;
- }
-- } else if (hv_exists(specs, "list", 4)) {
-- if (SvTRUE(*hv_fetch(specs, "list", 4, 0))) {
-+ } else if ((svp = hv_fetch(specs, "list", 4, 0))) {
-+ if (SvTRUE(*svp)) {
- context = G_ARRAY;
- }
-- } else if (hv_exists(specs, "scalar", 6)) {
-- if (SvTRUE(*hv_fetch(specs, "scalar", 6, 0))) {
-+ } else if ((svp = hv_fetch(specs, "scalar", 6, 0))) {
-+ if (SvTRUE(*svp)) {
- context = G_SCALAR;
- }
-- } else if (hv_exists(specs, "void", 4)) {
-- if (SvTRUE(*hv_fetch(specs, "void", 4, 0))) {
-+ } else if ((svp = hv_fetch(specs, "void", 4, 0))) {
-+ if (SvTRUE(*svp)) {
- context = G_VOID;
- }
- }
-
- /* exit => thread_only */
-- if (hv_exists(specs, "exit", 4)) {
-- str = (char *)SvPV_nolen(*hv_fetch(specs, "exit", 4, 0));
-+ if ((svp = hv_fetch(specs, "exit", 4, 0))) {
-+ str = (char *)SvPV_nolen(*svp);
- exit_opt = (*str == 't' || *str == 'T')
- ? PERL_ITHR_THREAD_EXIT_ONLY : 0;
- }
-@@ -1050,11 +1057,11 @@ ithread_create(...)
- }
-
- /* Function args */
-- params = newAV();
-+ args_start = &ST(idx + 2);
- if (items > 2) {
-- for (ii=2; ii < items ; ii++) {
-- av_push(params, SvREFCNT_inc(ST(idx+ii)));
-- }
-+ args_end = &ST(idx + items);
-+ } else {
-+ args_end = args_start;
- }
-
- /* Create thread */
-@@ -1063,7 +1070,8 @@ ithread_create(...)
- stack_size,
- context,
- exit_opt,
-- newRV_noinc((SV*)params));
-+ args_start,
-+ args_end);
- if (! thread) {
- XSRETURN_UNDEF; /* Mutex already unlocked */
- }
-@@ -1236,7 +1244,7 @@ ithread_join(...)
- PerlInterpreter *other_perl;
- CLONE_PARAMS clone_params;
-
-- params_copy = (AV *)SvRV(thread->params);
-+ params_copy = thread->params;
- other_perl = thread->interp;
- clone_params.stashes = newAV();
- clone_params.flags = CLONEf_JOIN_IN;
-@@ -1337,6 +1345,7 @@ ithread_kill(...)
- ithread *thread;
- char *sig_name;
- IV signal;
-+ int no_handler = 1;
- CODE:
- /* Must have safe signals */
- if (PL_signals & PERL_SIGNALS_UNSAFE_FLAG) {
-@@ -1366,11 +1375,21 @@ ithread_kill(...)
- MUTEX_LOCK(&thread->mutex);
- if (thread->interp) {
- dTHXa(thread->interp);
-- PL_psig_pend[signal]++;
-- PL_sig_pending = 1;
-+ if (PL_psig_pend && PL_psig_ptr[signal]) {
-+ PL_psig_pend[signal]++;
-+ PL_sig_pending = 1;
-+ no_handler = 0;
-+ }
-+ } else {
-+ /* Ignore signal to terminated thread */
-+ no_handler = 0;
- }
- MUTEX_UNLOCK(&thread->mutex);
-
-+ if (no_handler) {
-+ Perl_croak(aTHX_ "Signal %s received in thread %"UVuf", but no signal handler set.", sig_name, thread->tid);
-+ }
-+
- /* Return the thread to allow for method chaining */
- ST(0) = ST(0);
- /* XSRETURN(1); - implied */
-@@ -1409,6 +1428,7 @@ void
- ithread_object(...)
- PREINIT:
- char *classname;
-+ SV *arg;
- UV tid;
- ithread *thread;
- int state;
-@@ -1421,34 +1441,47 @@ ithread_object(...)
- }
- classname = (char *)SvPV_nolen(ST(0));
-
-- if ((items < 2) || ! SvOK(ST(1))) {
-+ /* Turn $tid from PVLV to SV if needed (bug #73330) */
-+ arg = ST(1);
-+ SvGETMAGIC(arg);
-+
-+ if ((items < 2) || ! SvOK(arg)) {
- XSRETURN_UNDEF;
- }
-
- /* threads->object($tid) */
-- tid = SvUV(ST(1));
-+ tid = SvUV(arg);
-
-- /* Walk through threads list */
-- MUTEX_LOCK(&MY_POOL.create_destruct_mutex);
-- for (thread = MY_POOL.main_thread.next;
-- thread != &MY_POOL.main_thread;
-- thread = thread->next)
-- {
-- /* Look for TID */
-- if (thread->tid == tid) {
-- /* Ignore if detached or joined */
-- MUTEX_LOCK(&thread->mutex);
-- state = thread->state;
-- MUTEX_UNLOCK(&thread->mutex);
-- if (! (state & PERL_ITHR_UNCALLABLE)) {
-- /* Put object on stack */
-- ST(0) = sv_2mortal(S_ithread_to_SV(aTHX_ Nullsv, thread, classname, TRUE));
-- have_obj = 1;
-+ /* If current thread wants its own object, then behave the same as
-+ ->self() */
-+ thread = S_ithread_get(aTHX);
-+ if (thread->tid == tid) {
-+ ST(0) = sv_2mortal(S_ithread_to_SV(aTHX_ Nullsv, thread, classname, TRUE));
-+ have_obj = 1;
-+
-+ } else {
-+ /* Walk through threads list */
-+ MUTEX_LOCK(&MY_POOL.create_destruct_mutex);
-+ for (thread = MY_POOL.main_thread.next;
-+ thread != &MY_POOL.main_thread;
-+ thread = thread->next)
-+ {
-+ /* Look for TID */
-+ if (thread->tid == tid) {
-+ /* Ignore if detached or joined */
-+ MUTEX_LOCK(&thread->mutex);
-+ state = thread->state;
-+ MUTEX_UNLOCK(&thread->mutex);
-+ if (! (state & PERL_ITHR_UNCALLABLE)) {
-+ /* Put object on stack */
-+ ST(0) = sv_2mortal(S_ithread_to_SV(aTHX_ Nullsv, thread, classname, TRUE));
-+ have_obj = 1;
-+ }
-+ break;
- }
-- break;
- }
-+ MUTEX_UNLOCK(&MY_POOL.create_destruct_mutex);
- }
-- MUTEX_UNLOCK(&MY_POOL.create_destruct_mutex);
-
- if (! have_obj) {
- XSRETURN_UNDEF;
---- dist/threads/threads.pm.orig 2010-09-06 23:30:32.000000000 +0000
-+++ dist/threads/threads.pm
-@@ -5,7 +5,7 @@ use 5.008;
- use strict;
- use warnings;
-
--our $VERSION = '1.75';
-+our $VERSION = '1.78';
- my $XS_VERSION = $VERSION;
- $VERSION = eval $VERSION;
-
-@@ -134,7 +134,7 @@ threads - Perl interpreter-based threads
-
- =head1 VERSION
-
--This document describes threads version 1.75
-+This document describes threads version 1.78
-
- =head1 SYNOPSIS
-
-@@ -361,9 +361,10 @@ key) will cause its ID to be used as the
- =item threads->object($tid)
-
- This will return the I<threads> object for the I<active> thread associated
--with the specified thread ID. Returns C<undef> if there is no thread
--associated with the TID, if the thread is joined or detached, if no TID is
--specified or if the specified TID is undef.
-+with the specified thread ID. If C<$tid> is the value for the current thread,
-+then this call works the same as C<-E<gt>self()>. Otherwise, returns C<undef>
-+if there is no thread associated with the TID, if the thread is joined or
-+detached, if no TID is specified or if the specified TID is undef.
-
- =item threads->yield()
-
-@@ -902,6 +903,18 @@ other threads are started afterwards.
- If the above does not work, or is not adequate for your application, then file
- a bug report on L<http://rt.cpan.org/Public/> against the problematic module.
-
-+=item Memory consumption
-+
-+On most systems, frequent and continual creation and destruction of threads
-+can lead to ever-increasing growth in the memory footprint of the Perl
-+interpreter. While it is simple to just launch threads and then
-+C<-E<gt>join()> or C<-E<gt>detach()> them, for long-lived applications, it is
-+better to maintain a pool of threads, and to reuse them for the work needed,
-+using L<queues|Thread::Queue> to notify threads of pending work. The CPAN
-+distribution of this module contains a simple example
-+(F<examples/pool_reuse.pl>) illustrating the creation, use and monitoring of a
-+pool of I<reusable> threads.
-+
- =item Current working directory
-
- On all platforms except MSWin32, the setting for the current working directory
-@@ -975,7 +988,7 @@ involved, you may be able to work around
- version of the object (e.g., using L<Data::Dumper> or L<Storable>), and then
- reconstituting it in the joining thread. If you're using Perl 5.10.0 or
- later, and if the class supports L<shared objects|threads::shared/"OBJECTS">,
--you can pass them via L<shared queues| Thread::Queue>.
-+you can pass them via L<shared queues|Thread::Queue>.
-
- =item END blocks in threads
-
-@@ -992,6 +1005,12 @@ mutexes that are needed to control funct
- For this reason, the use of C<END> blocks in threads is B<strongly>
- discouraged.
-
-+=item Open directory handles
-+
-+Spawning threads with open directory handles (see
-+L<opendir|perlfunc/"opendir DIRHANDLE,EXPR">) will crash the interpreter.
-+L<[perl #75154]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=75154>
-+
- =item Perl Bugs and the CPAN Version of L<threads>
-
- Support for threads extends beyond the code in this module (i.e.,
-@@ -1021,7 +1040,7 @@ L<threads> Discussion Forum on CPAN:
- L<http://www.cpanforum.com/dist/threads>
-
- Annotated POD for L<threads>:
--L<http://annocpan.org/~JDHEDDEN/threads-1.75/threads.pm>
-+L<http://annocpan.org/~JDHEDDEN/threads-1.78/threads.pm>
-
- Source repository:
- L<http://code.google.com/p/threads-shared/>
---- /dev/null 2010-09-23 21:51:28.000000000 +0200
-+++ dist/threads/t/kill2.t 2010-09-23 21:47:56.000000000 +0200
-@@ -0,0 +1,68 @@
-+use strict;
-+use warnings;
-+
-+BEGIN {
-+ require($ENV{PERL_CORE} ? '../../t/test.pl' : './t/test.pl');
-+
-+ use Config;
-+ if (! $Config{'useithreads'}) {
-+ skip_all(q/Perl not compiled with 'useithreads'/);
-+ }
-+}
-+
-+use ExtUtils::testlib;
-+
-+use threads;
-+
-+BEGIN {
-+ $| = 1;
-+ print("1..3\n"); ### Number of tests that will be run ###
-+};
-+
-+fresh_perl_is(<<'EOI', 'ok', { }, 'No signal handler in thread');
-+ use threads;
-+ my $test = sub {
-+ while(1) { sleep(1) }
-+ };
-+ my $thr = threads->create($test);
-+ threads->yield();
-+ $thr->detach();
-+ eval {
-+ $thr->kill('STOP');
-+ };
-+ print(($@ =~ /no signal handler set/) ? 'ok' : 'not ok');
-+EOI
-+
-+fresh_perl_is(<<'EOI', 'ok', { }, 'Handler to signal mismatch');
-+ use threads;
-+ my $test = sub {
-+ $SIG{'TERM'} = sub { threads->exit() };
-+ while(1) { sleep(1) }
-+ };
-+ my $thr = threads->create($test);
-+ threads->yield();
-+ $thr->detach();
-+ eval {
-+ $thr->kill('STOP');
-+ };
-+ print(($@ =~ /no signal handler set/) ? 'ok' : 'not ok');
-+EOI
-+
-+fresh_perl_is(<<'EOI', 'ok', { }, 'Handler and signal match');
-+ use threads;
-+ my $test = sub {
-+ $SIG{'STOP'} = sub { threads->exit() };
-+ while(1) { sleep(1) }
-+ };
-+ my $thr = threads->create($test);
-+ threads->yield();
-+ $thr->detach();
-+ eval {
-+ $thr->kill('STOP');
-+ };
-+ print((! $@) ? 'ok' : 'not ok');
-+EOI
-+
-+exit(0);
-+
-+# EOF
diff --git a/lang/perl5/patches/patch-hints_darwin.sh b/lang/perl5/patches/patch-hints_darwin.sh
deleted file mode 100644
index 9398028274f..00000000000
--- a/lang/perl5/patches/patch-hints_darwin.sh
+++ /dev/null
@@ -1,19 +0,0 @@
-$NetBSD: patch-hints_darwin.sh,v 1.1 2011/08/05 13:12:18 ryoon Exp $
-
-Patch from http://perl5.git.perl.org/perl.git/commitdiff/60a655a1ee05c577268377c1135ffabc34dbff43
-
---- /usr/tmp/lang/perl5/work/perl-5.12.2/hints/darwin.sh.orig 2010-09-05 15:14:33.000000000 +0000
-+++ /usr/tmp/lang/perl5/work/perl-5.12.2/hints/darwin.sh
-@@ -68,8 +68,10 @@ esac
- # Since we can build fat, the archname doesn't need the processor type
- archname='darwin';
-
--# nm works.
--usenm='true';
-+# nm isn't known to work after Snow Leopard and XCode 4; testing with OS X 10.5
-+# and Xcode 3 shows a working nm, but pretending it doesn't work produces no
-+# problems.
-+usenm='false';
-
- case "$optimize" in
- '')
diff --git a/lang/perl5/patches/patch-pp.c b/lang/perl5/patches/patch-pp.c
deleted file mode 100644
index 23260c2c1b9..00000000000
--- a/lang/perl5/patches/patch-pp.c
+++ /dev/null
@@ -1,34 +0,0 @@
-$NetBSD: patch-pp.c,v 1.1 2011/04/07 04:03:58 taca Exp $
-
-* Fix for http://secunia.com/advisories/43921/ from perl's git repository
- (539689e74a).
-
---- pp.c.orig 2010-09-06 23:30:32.000000000 +0000
-+++ pp.c
-@@ -3949,6 +3949,8 @@ PP(pp_ucfirst)
- SvCUR_set(dest, need - 1);
- }
- }
-+ if (dest != source && SvTAINTED(source))
-+ SvTAINT(dest);
- SvSETMAGIC(dest);
- RETURN;
- }
-@@ -4222,6 +4224,8 @@ PP(pp_uc)
- SvCUR_set(dest, d - (U8*)SvPVX_const(dest));
- }
- } /* End of isn't utf8 */
-+ if (dest != source && SvTAINTED(source))
-+ SvTAINT(dest);
- SvSETMAGIC(dest);
- RETURN;
- }
-@@ -4433,6 +4437,8 @@ PP(pp_lc)
- SvCUR_set(dest, d - (U8*)SvPVX_const(dest));
- }
- }
-+ if (dest != source && SvTAINTED(source))
-+ SvTAINT(dest);
- SvSETMAGIC(dest);
- RETURN;
- }
diff --git a/lang/perl5/patches/patch-ta b/lang/perl5/patches/patch-ta
index 84d44ba1136..59d008268b7 100644
--- a/lang/perl5/patches/patch-ta
+++ b/lang/perl5/patches/patch-ta
@@ -1,10 +1,10 @@
-$NetBSD: patch-ta,v 1.3 2009/12/14 06:36:57 seb Exp $
+$NetBSD: patch-ta,v 1.4 2011/08/05 18:06:15 adam Exp $
On NetBSD, filesystems may be mounted with the noatime option.
--- t/io/fs.t.orig 2009-12-06 21:03:51.000000000 +0000
+++ t/io/fs.t 2009-12-06 21:04:34.000000000 +0000
-@@ -281,15 +281,15 @@
+@@ -275,15 +275,15 @@
is( $atime, 500000001, 'atime' );
is( $mtime, 500000000 + $delta, 'mtime' );
}
diff --git a/lang/perl5/patches/patch-zc b/lang/perl5/patches/patch-zc
deleted file mode 100644
index aae3f5d1183..00000000000
--- a/lang/perl5/patches/patch-zc
+++ /dev/null
@@ -1,45 +0,0 @@
-$NetBSD: patch-zc,v 1.5 2011/01/30 21:35:32 wiz Exp $
-
---- Policy_sh.SH.orig 2010-04-26 08:08:20.000000000 +0000
-+++ Policy_sh.SH 2010-05-27 09:34:44.000000000 +0000
-@@ -165,7 +165,7 @@
-
- # We don't know what to do with these yet.
- html1dir) dflt='' ;;
-- htm31dir) dflt='' ;;
-+ html3dir) dflt='' ;;
-
- # Directories for site-specific add-on files
- sitebin) dflt=$siteprefix/bin ;;
-@@ -184,11 +184,11 @@
- ;;
- sitearch) dflt="$sitelib/$archname" ;;
-
-- siteman1) dflt="$siteprefix/man/man1" ;;
-- siteman3) dflt="$siteprefix/man/man3" ;;
-+ siteman1dir) dflt="$siteprefix/man/man1" ;;
-+ siteman3dir) dflt="$siteprefix/man/man3" ;;
- # We don't know what to do with these yet.
-- sitehtml1) dflt='' ;;
-- sitehtm31dir) dflt='' ;;
-+ sitehtml1dir) dflt='' ;;
-+ sitehtml3dir) dflt='' ;;
-
- # Directories for vendor-supplied add-on files
- # These are all usually empty.
-@@ -213,11 +213,11 @@
- ;;
- vendorarch) dflt="$vendorlib/$archname" ;;
-
-- vendorman1) dflt="$vendorprefix/man/man1" ;;
-- vendorman3) dflt="$vendorprefix/man/man3" ;;
-+ vendorman1dir) dflt="$vendorprefix/man/man1" ;;
-+ vendorman3dir) dflt="$vendorprefix/man/man3" ;;
- # We don't know what to do with these yet.
-- vendorhtml1) dflt='' ;;
-- vendorhtm3) dflt='' ;;
-+ vendorhtml1dir) dflt='' ;;
-+ vendorhtml3dir) dflt='' ;;
-
- esac # End of vendorprefix != ''
- fi
diff --git a/lang/perl5/patches/patch-ze b/lang/perl5/patches/patch-ze
index 56e54fea8d8..99a51229df9 100644
--- a/lang/perl5/patches/patch-ze
+++ b/lang/perl5/patches/patch-ze
@@ -1,10 +1,21 @@
-$NetBSD: patch-ze,v 1.2 2011/01/30 21:35:24 wiz Exp $
+$NetBSD: patch-ze,v 1.3 2011/08/05 18:06:15 adam Exp $
Fixes compilation problem on Solaris/SPARC.
--- perl.h.orig 2009-07-06 11:18:58.000000000 +0000
+++ perl.h
-@@ -1435,6 +1435,10 @@ EXTERN_C char *crypt(const char *, const
+@@ -1397,8 +1397,8 @@ EXTERN_C char *crypt(const char *, const
+ # endif
+ #else
+ # ifdef HAS_SYS_ERRLIST
+- extern int sys_nerr;
+- extern char *sys_errlist[];
++ extern const int sys_nerr;
++ extern const char *const sys_errlist[];
+ # ifndef Strerror
+ # define Strerror(e) \
+ ((e) < 0 || (e) >= sys_nerr ? "(unknown)" : sys_errlist[e])
+@@ -1476,6 +1476,10 @@ EXTERN_C char *crypt(const char *, const
*/
#if defined(I_SYSMODE) && !defined(PERL_MICRO)
diff --git a/lang/perl5/version.mk b/lang/perl5/version.mk
index 506852c9a01..d6a666e153f 100644
--- a/lang/perl5/version.mk
+++ b/lang/perl5/version.mk
@@ -1,4 +1,4 @@
-# $NetBSD: version.mk,v 1.3 2005/05/27 22:15:53 jlam Exp $
+# $NetBSD: version.mk,v 1.4 2011/08/05 18:06:14 adam Exp $
#
# Distill the PERL5_REQD list into a single value that is the highest
# version of Perl required.
@@ -25,7 +25,7 @@ _PERL5_PKG_SATISFIES_DEP!= \
. endif
. endfor
. if !empty(_PERL5_PKG_SATISFIES_DEP:M[yY][eE][sS])
-_PERL5_REQD= ${_version_}
+_PERL5_REQD= ${_version_}
. endif
. endif
. endfor