aboutsummaryrefslogtreecommitdiffstats
path: root/lang/perl5.14
diff options
context:
space:
mode:
authorskv <skv@FreeBSD.org>2010-05-07 01:05:45 +0800
committerskv <skv@FreeBSD.org>2010-05-07 01:05:45 +0800
commit3655d4a02636d65a2bf3f500d70f69c5aeba4637 (patch)
treee1b82b1870becb1d0a2abaeb12f382056ec5742c /lang/perl5.14
parent24d74a55ea4b5b28412c4d64bfd7ef54958426ca (diff)
downloadfreebsd-ports-graphics-3655d4a02636d65a2bf3f500d70f69c5aeba4637.tar.gz
freebsd-ports-graphics-3655d4a02636d65a2bf3f500d70f69c5aeba4637.tar.zst
freebsd-ports-graphics-3655d4a02636d65a2bf3f500d70f69c5aeba4637.zip
- Add patches for RT 69973 [1], RT 71952 [2]
- Update P5PORTER mode [3] - Update CONFLICTS for Perl 5.12 Pointed by: a.smith xx ukgrid.net [1] PR: ports/144717 [2], ports/142110 [3] Submitted by: Bryan Fullerton <bryanf@samuraiconsulting.ca> [2], Alex Deiter <alex.deiter xx gmail.com> [3]
Diffstat (limited to 'lang/perl5.14')
-rw-r--r--lang/perl5.14/Makefile3
-rw-r--r--lang/perl5.14/distinfo6
-rw-r--r--lang/perl5.14/files/patch-bug6997395
-rw-r--r--lang/perl5.14/files/patch-bug7195246
4 files changed, 146 insertions, 4 deletions
diff --git a/lang/perl5.14/Makefile b/lang/perl5.14/Makefile
index 55480b6b7b2..5adf79fac9d 100644
--- a/lang/perl5.14/Makefile
+++ b/lang/perl5.14/Makefile
@@ -7,6 +7,7 @@
PORTNAME= perl
PORTVERSION= ${PERL_VERSION}
+PORTREVISON= 1
CATEGORIES= lang devel perl5
MASTER_SITES= CPAN \
${MASTER_SITE_LOCAL:S/$/:local/} \
@@ -159,7 +160,7 @@ BSDPAN_FILES= BSDPAN.pm BSDPAN/Override.pm Config.pm \
ExtUtils/MM_Unix.pm \
ExtUtils/MakeMaker.pm \
ExtUtils/Packlist.pm
-BSDPAN_VERSION= ${PORTVERSION}_20090303
+BSDPAN_VERSION= 5.12.0_20100422
BSDPAN_WRKSRC= ${WRKDIR}/BSDPAN-${BSDPAN_VERSION}
PKGINSTALL= ${WRKDIR}/pkg-install
diff --git a/lang/perl5.14/distinfo b/lang/perl5.14/distinfo
index 550d14bbe19..2aad41e9f7a 100644
--- a/lang/perl5.14/distinfo
+++ b/lang/perl5.14/distinfo
@@ -1,6 +1,6 @@
MD5 (perl/perl-5.10.1.tar.bz2) = 82400c6d34f7b7b43d0196c76cd2bbb1
SHA256 (perl/perl-5.10.1.tar.bz2) = 9385f2c8c2ca8b1dc4a7c31903f1f8dc8f2ba867dc2a9e5c93012ed6b564e826
SIZE (perl/perl-5.10.1.tar.bz2) = 11608061
-MD5 (perl/BSDPAN-5.10.1_20090303.tar.bz2) = e8d27425aec2c15778963e260d24b44e
-SHA256 (perl/BSDPAN-5.10.1_20090303.tar.bz2) = 84d0a016f80bea4b081e5688542f3d70acdebd5bbaaa7f32ea88d6f26839b502
-SIZE (perl/BSDPAN-5.10.1_20090303.tar.bz2) = 8193
+MD5 (perl/BSDPAN-5.12.0_20100422.tar.bz2) = 16918568ae943b416b36196f47015a34
+SHA256 (perl/BSDPAN-5.12.0_20100422.tar.bz2) = 9bbcb4056c9c80c572acdff24319fa9a3b9a2c368ea59dfecb84e965d82f93d9
+SIZE (perl/BSDPAN-5.12.0_20100422.tar.bz2) = 8301
diff --git a/lang/perl5.14/files/patch-bug69973 b/lang/perl5.14/files/patch-bug69973
new file mode 100644
index 00000000000..fe2119fe42a
--- /dev/null
+++ b/lang/perl5.14/files/patch-bug69973
@@ -0,0 +1,95 @@
+# http://rt.perl.org/rt3//Public/Bug/Display.html?id=69973
+# http://perl5.git.perl.org/perl.git/commitdiff_plain/0abd0d78a73da1c4d13b1c700526b7e5d03b32d4?hp=fe88edf0c4ada4230b84bdb5417029b8f766694a
+diff --git a/ext/re/t/regop.t b/ext/re/t/regop.t
+index 9118bf6..46e6ec0 100644
+--- ext/re/t/regop.t
++++ ext/re/t/regop.t
+@@ -231,12 +231,12 @@ anchored "ABC" at 0
+ #Freeing REx: "(\\.COM|\\.EXE|\\.BAT|\\.CMD|\\.VBS|\\.VBE|\\.JS|\\.JSE|\\."......
+ %MATCHED%
+ floating ""$ at 3..4 (checking floating)
+-1:1[1] 3:2[1] 5:2[64] 45:83[1] 47:84[1] 48:85[0]
+-stclass EXACTF <.> minlen 3
+-Found floating substr ""$ at offset 30...
+-Does not contradict STCLASS...
+-Guessed: match at offset 26
+-Matching stclass EXACTF <.> against ".exe"
++#1:1[1] 3:2[1] 5:2[64] 45:83[1] 47:84[1] 48:85[0]
++#stclass EXACTF <.> minlen 3
++#Found floating substr ""$ at offset 30...
++#Does not contradict STCLASS...
++#Guessed: match at offset 26
++#Matching stclass EXACTF <.> against ".exe"
+ ---
+ #Compiling REx "[q]"
+ #size 12 nodes Got 100 bytes for offset annotations.
+diff --git a/regcomp.c b/regcomp.c
+index 6e9fa26..eb5f12f 100644
+--- regcomp.c
++++ regcomp.c
+@@ -2833,13 +2833,18 @@ S_study_chunk(pTHX_ RExC_state_t *pRExC_state, regnode **scanp,
+ }
+ } else {
+ /*
+- Currently we assume that the trie can handle unicode and ascii
+- matches fold cased matches. If this proves true then the following
+- define will prevent tries in this situation.
+-
+- #define TRIE_TYPE_IS_SAFE (UTF || optype==EXACT)
+-*/
++ Currently we do not believe that the trie logic can
++ handle case insensitive matching properly when the
++ pattern is not unicode (thus forcing unicode semantics).
++
++ If/when this is fixed the following define can be swapped
++ in below to fully enable trie logic.
++
+ #define TRIE_TYPE_IS_SAFE 1
++
++*/
++#define TRIE_TYPE_IS_SAFE (UTF || optype==EXACT)
++
+ if ( last && TRIE_TYPE_IS_SAFE ) {
+ make_trie( pRExC_state,
+ startbranch, first, cur, tail, count,
+diff --git a/regexec.c b/regexec.c
+index 402ede3..ec09c28 100644
+--- regexec.c
++++ regexec.c
+@@ -1105,16 +1105,15 @@ Perl_re_intuit_start(pTHX_ REGEXP * const rx, SV *sv, char *strpos,
+
+ #define REXEC_TRIE_READ_CHAR(trie_type, trie, widecharmap, uc, uscan, len, \
+ uvc, charid, foldlen, foldbuf, uniflags) STMT_START { \
+- UV uvc_unfolded = 0; \
+ switch (trie_type) { \
+ case trie_utf8_fold: \
+ if ( foldlen>0 ) { \
+- uvc_unfolded = uvc = utf8n_to_uvuni( uscan, UTF8_MAXLEN, &len, uniflags ); \
++ uvc = utf8n_to_uvuni( uscan, UTF8_MAXLEN, &len, uniflags ); \
+ foldlen -= len; \
+ uscan += len; \
+ len=0; \
+ } else { \
+- uvc_unfolded = uvc = utf8n_to_uvuni( (U8*)uc, UTF8_MAXLEN, &len, uniflags ); \
++ uvc = utf8n_to_uvuni( (U8*)uc, UTF8_MAXLEN, &len, uniflags ); \
+ uvc = to_uni_fold( uvc, foldbuf, &foldlen ); \
+ foldlen -= UNISKIP( uvc ); \
+ uscan = foldbuf + UNISKIP( uvc ); \
+@@ -1140,7 +1139,6 @@ uvc, charid, foldlen, foldbuf, uniflags) STMT_START { \
+ uvc = (UV)*uc; \
+ len = 1; \
+ } \
+- \
+ if (uvc < 256) { \
+ charid = trie->charmap[ uvc ]; \
+ } \
+@@ -1153,9 +1151,6 @@ uvc, charid, foldlen, foldbuf, uniflags) STMT_START { \
+ charid = (U16)SvIV(*svpp); \
+ } \
+ } \
+- if (!charid && trie_type == trie_utf8_fold && !UTF) { \
+- charid = trie->charmap[uvc_unfolded]; \
+- } \
+ } STMT_END
+
+ #define REXEC_FBC_EXACTISH_CHECK(CoNd) \
diff --git a/lang/perl5.14/files/patch-bug71952 b/lang/perl5.14/files/patch-bug71952
new file mode 100644
index 00000000000..c36c7d721ed
--- /dev/null
+++ b/lang/perl5.14/files/patch-bug71952
@@ -0,0 +1,46 @@
+# http://rt.perl.org/rt3/Public/Bug/Display.html?id=71952
+# http://perl5.git.perl.org/perl.git/commitdiff_plain/1f15e670edb515b744e9021b4a42a7955da83093?hp=1f730e6c11736bad913e605b064200a67117e898
+diff --git a/sv.c b/sv.c
+index 4e80e18..a3eb187 100644
+--- sv.c
++++ sv.c
+@@ -5664,7 +5664,8 @@ Perl_sv_clear(pTHX_ register SV *const sv)
+ && !CvCONST(destructor)
+ /* Don't bother calling an empty destructor */
+ && (CvISXSUB(destructor)
+- || CvSTART(destructor)->op_next->op_type != OP_LEAVESUB))
++ || (CvSTART(destructor)
++ && (CvSTART(destructor)->op_next->op_type != OP_LEAVESUB))))
+ {
+ SV* const tmpref = newRV(sv);
+ SvREADONLY_on(tmpref); /* DESTROY() could be naughty */
+diff --git a/t/op/method.t b/t/op/method.t
+index afa8cfb..b602ca2 100644
+--- t/op/method.t
++++ t/op/method.t
+@@ -10,7 +10,7 @@ BEGIN {
+ require "test.pl";
+ }
+
+-print "1..78\n";
++print "1..79\n";
+
+ @A::ISA = 'B';
+ @B::ISA = 'C';
+@@ -292,3 +292,16 @@ EOT
+ "check if UNIVERSAL::AUTOLOAD works",
+ );
+ }
++
++# Test for #71952: crash when looking for a nonexistent destructor
++# Regression introduced by fbb3ee5af3d4
++{
++ fresh_perl_is(<<'EOT',
++sub M::DESTROY; bless {}, "M" ; print "survived\n";
++EOT
++ "survived",
++ {},
++ "no crash with a declared but missing DESTROY method"
++ );
++}
++