From 59397e34d704eeeb560eca1d7c690e249eb035ba Mon Sep 17 00:00:00 2001 From: Jitka Plesnikova Date: Jun 02 2017 06:17:46 +0000 Subject: 5.26.0 bump; Update sub-packages; Update or remove patches --- diff --git a/.gitignore b/.gitignore index d76e0b8..2b17b18 100644 --- a/.gitignore +++ b/.gitignore @@ -23,3 +23,4 @@ perl-5.12.1.tar.gz /perl-5.22.2.tar.bz2 /perl-5.24.0.tar.bz2 /perl-5.24.1.tar.bz2 +/perl-5.26.0.tar.bz2 diff --git a/Compress-Raw-Zlib-2.071-Adapt-to-zlib-1.2.11.patch b/Compress-Raw-Zlib-2.071-Adapt-to-zlib-1.2.11.patch deleted file mode 100644 index c08dd17..0000000 --- a/Compress-Raw-Zlib-2.071-Adapt-to-zlib-1.2.11.patch +++ /dev/null @@ -1,367 +0,0 @@ -From 0c7af9e6cb05b436505e7f46ef49dcb6f791f30a Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= -Date: Fri, 17 Feb 2017 11:00:21 +0100 -Subject: [PATCH] Adapt to zlib-1.2.11 -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -This is a fix ported from Compress-Raw-Zlib-2.072 that restores -compatibility with zlib-1.2.11. - -CPAN RT#119762 - -Signed-off-by: Petr Písař ---- - Zlib.xs | 220 +++++++++++++++++++++++++++++++++++++++++++++++-------------- - t/02zlib.t | 11 +++- - 2 files changed, 178 insertions(+), 53 deletions(-) - -diff --git a/Zlib.xs b/Zlib.xs -index d379f78..83d1423 100644 ---- a/Zlib.xs -+++ b/Zlib.xs -@@ -74,6 +74,10 @@ - # define AT_LEAST_ZLIB_1_2_8 - #endif - -+#if defined(ZLIB_VERNUM) && ZLIB_VERNUM >= 0x1290 -+# define AT_LEAST_ZLIB_1_2_9 -+#endif -+ - #ifdef USE_PPPORT_H - # define NEED_sv_2pvbyte - # define NEED_sv_2pv_nolen -@@ -134,12 +138,13 @@ typedef struct di_stream { - uLong dict_adler ; - int last_error ; - bool zip_mode ; --#define SETP_BYTE -+/* #define SETP_BYTE */ - #ifdef SETP_BYTE -+ /* SETP_BYTE only works with zlib up to 1.2.8 */ - bool deflateParams_out_valid ; - Bytef deflateParams_out_byte; - #else --#define deflateParams_BUFFER_SIZE 0x4000 -+#define deflateParams_BUFFER_SIZE 0x40000 - uLong deflateParams_out_length; - Bytef* deflateParams_out_buffer; - #endif -@@ -636,6 +641,103 @@ char * string ; - return sv ; - } - -+#if 0 -+int -+flushToBuffer(di_stream* s, int flush) -+{ -+ dTHX; -+ int ret ; -+ z_stream * strm = &s->stream; -+ -+ Bytef* output = s->deflateParams_out_buffer ; -+ -+ strm->next_in = NULL; -+ strm->avail_in = 0; -+ -+ uLong total_output = 0; -+ uLong have = 0; -+ -+ do -+ { -+ if (output) -+ output = (unsigned char *)saferealloc(output, total_output + s->bufsize); -+ else -+ output = (unsigned char *)safemalloc(s->bufsize); -+ -+ strm->next_out = output + total_output; -+ strm->avail_out = s->bufsize; -+ -+ ret = deflate(strm, flush); /* no bad return value */ -+ //assert(ret != Z_STREAM_ERROR); /* state not clobbered */ -+ if(ret == Z_STREAM_ERROR) -+ { -+ safefree(output); -+ return ret; -+ } -+ have = s->bufsize - strm->avail_out; -+ total_output += have; -+ -+ //fprintf(stderr, "FLUSH %s %d, return %d\n", flush_flags[flush], have, ret); -+ -+ } while (strm->avail_out == 0); -+ -+ s->deflateParams_out_buffer = output; -+ s->deflateParams_out_length = total_output; -+ -+ return Z_OK; -+} -+#endif -+ -+#ifndef SETP_BYTE -+int -+flushParams(di_stream* s) -+{ -+ dTHX; -+ int ret ; -+ z_stream * strm = &s->stream; -+ -+ strm->next_in = NULL; -+ strm->avail_in = 0; -+ -+ Bytef* output = s->deflateParams_out_buffer ; -+ uLong total_output = s->deflateParams_out_length; -+ -+ uLong have = 0; -+ -+ do -+ { -+ if (output) -+ output = (unsigned char *)saferealloc(output, total_output + s->bufsize); -+ else -+ output = (unsigned char *)safemalloc(s->bufsize); -+ -+ strm->next_out = output + total_output; -+ strm->avail_out = s->bufsize; -+ -+ ret = deflateParams(&(s->stream), s->Level, s->Strategy); -+ /* fprintf(stderr, "deflateParams %d %s %lu\n", ret, -+ GetErrorString(ret), s->bufsize - strm->avail_out); */ -+ -+ if (ret == Z_STREAM_ERROR) -+ break; -+ -+ have = s->bufsize - strm->avail_out; -+ total_output += have; -+ -+ -+ } while (ret == Z_BUF_ERROR) ; -+ -+ if(ret == Z_STREAM_ERROR) -+ safefree(output); -+ else -+ { -+ s->deflateParams_out_buffer = output; -+ s->deflateParams_out_length = total_output; -+ } -+ -+ return ret; -+} -+#endif /* ! SETP_BYTE */ - - #include "constants.h" - -@@ -991,20 +1093,24 @@ deflate (s, buf, output) - /* Check for saved output from deflateParams */ - if (s->deflateParams_out_length) { - uLong plen = s->deflateParams_out_length ; -- /* printf("Copy %d bytes saved data\n", plen);*/ -+ /* printf("Copy %lu bytes saved data\n", plen); */ - if (s->stream.avail_out < plen) { -- /*printf("GROW from %d to %d\n", s->stream.avail_out, -- SvLEN(output) + plen - s->stream.avail_out); */ -- Sv_Grow(output, SvLEN(output) + plen - s->stream.avail_out) ; -+ /* printf("GROW from %d to %lu\n", s->stream.avail_out, -+ SvLEN(output) + plen - s->stream.avail_out); */ -+ s->stream.next_out = (Bytef*) Sv_Grow(output, SvLEN(output) + plen - s->stream.avail_out) ; -+ s->stream.next_out += cur_length; - } - -- Copy(s->stream.next_out, s->deflateParams_out_buffer, plen, Bytef) ; -- cur_length = cur_length + plen; -+ Copy(s->deflateParams_out_buffer, s->stream.next_out, plen, Bytef) ; -+ cur_length += plen; - SvCUR_set(output, cur_length); -- s->stream.next_out += plen ; -- s->stream.avail_out = SvLEN(output) - cur_length ; -- increment = s->stream.avail_out; -- s->deflateParams_out_length = 0; -+ s->stream.next_out += plen ; -+ s->stream.avail_out = SvLEN(output) - cur_length ; -+ increment = s->stream.avail_out; -+ -+ s->deflateParams_out_length = 0; -+ Safefree(s->deflateParams_out_buffer); -+ s->deflateParams_out_buffer = NULL; - } - #endif - RETVAL = Z_OK ; -@@ -1027,6 +1133,12 @@ deflate (s, buf, output) - } - - RETVAL = deflate(&(s->stream), Z_NO_FLUSH); -+ if (RETVAL != Z_STREAM_ERROR) { -+ int done = increment - s->stream.avail_out ; -+ /* printf("std DEFLATEr returned %d '%s' avail in %d, out %d wrote %d\n", RETVAL, -+ GetErrorString(RETVAL), s->stream.avail_in, -+s->stream.avail_out, done); */ -+ } - - if (trace) { - printf("DEFLATE returned %d %s, avail in %d, out %d\n", RETVAL, -@@ -1080,7 +1192,6 @@ flush(s, output, f=Z_FINISH) - CODE: - bufinc = s->bufsize; - -- s->stream.avail_in = 0; /* should be zero already anyway */ - - /* retrieve the output buffer */ - output = deRef_l(output, "flush") ; -@@ -1108,20 +1219,24 @@ flush(s, output, f=Z_FINISH) - /* Check for saved output from deflateParams */ - if (s->deflateParams_out_length) { - uLong plen = s->deflateParams_out_length ; -- /* printf("Copy %d bytes saved data\n", plen); */ -+ /* printf("Copy %lu bytes saved data\n", plen); */ - if (s->stream.avail_out < plen) { -- /* printf("GROW from %d to %d\n", s->stream.avail_out, -+ /* printf("GROW from %d to %lu\n", s->stream.avail_out, - SvLEN(output) + plen - s->stream.avail_out); */ -- Sv_Grow(output, SvLEN(output) + plen - s->stream.avail_out) ; -+ s->stream.next_out = (Bytef*) Sv_Grow(output, SvLEN(output) + plen - s->stream.avail_out) ; -+ s->stream.next_out += cur_length; - } - -- Copy(s->stream.next_out, s->deflateParams_out_buffer, plen, Bytef) ; -- cur_length = cur_length + plen; -+ Copy(s->deflateParams_out_buffer, s->stream.next_out, plen, Bytef) ; -+ cur_length += plen; - SvCUR_set(output, cur_length); -- s->stream.next_out += plen ; -- s->stream.avail_out = SvLEN(output) - cur_length ; -- increment = s->stream.avail_out; -- s->deflateParams_out_length = 0; -+ s->stream.next_out += plen ; -+ s->stream.avail_out = SvLEN(output) - cur_length ; -+ increment = s->stream.avail_out; -+ -+ s->deflateParams_out_length = 0; -+ Safefree(s->deflateParams_out_buffer); -+ s->deflateParams_out_buffer = NULL; - } - #endif - -@@ -1145,9 +1260,15 @@ flush(s, output, f=Z_FINISH) - } - - RETVAL = deflate(&(s->stream), f); -+ if (RETVAL != Z_STREAM_ERROR) { -+ int done = availableout - s->stream.avail_out ; -+ /* printf("flush DEFLATEr returned %d '%s' avail in %d, out %d wrote %d\n", RETVAL, -+ GetErrorString(RETVAL), s->stream.avail_in, -+s->stream.avail_out, done); */ -+ } - - if (trace) { -- printf("flush DEFLATE returned %d %s, avail in %d, out %d\n", RETVAL, -+ printf("flush DEFLATE returned %d '%s', avail in %d, out %d\n", RETVAL, - GetErrorString(RETVAL), s->stream.avail_in, s->stream.avail_out); - DispStream(s, "AFTER"); - } -@@ -1184,41 +1305,38 @@ _deflateParams(s, flags, level, strategy, bufsize) - int level - int strategy - uLong bufsize -+ bool changed = FALSE; - CODE: -- /* printf("_deflateParams(Flags %d Level %d Strategy %d Bufsize %d)\n", flags, level, strategy, bufsize); -- printf("Before -- Level %d, Strategy %d, Bufsize %d\n", s->Level, s->Strategy, s->bufsize); */ -- if (flags & 1) -- s->Level = level ; -- if (flags & 2) -- s->Strategy = strategy ; -- if (flags & 4) { -+ /* printf("_deflateParams(Flags %d Level %d Strategy %d Bufsize %d)\n", flags, level, strategy, bufsize); -+ printf("Before -- Level %d, Strategy %d, Bufsize %d\n", s->Level, s->Strategy, s->bufsize); */ -+ if (flags & 1 && level != s->Level) { -+ s->Level = level ; -+ changed = TRUE; -+ } -+ if (flags & 2 && strategy != s->Strategy) { -+ s->Strategy = strategy ; -+ changed = TRUE; -+ } -+ if (flags & 4) - s->bufsize = bufsize; -- } -- /* printf("After -- Level %d, Strategy %d, Bufsize %d\n", s->Level, s->Strategy, s->bufsize);*/ -+ if (changed) { - #ifdef SETP_BYTE -- s->stream.avail_in = 0; -- s->stream.next_out = &(s->deflateParams_out_byte) ; -- s->stream.avail_out = 1; -- RETVAL = deflateParams(&(s->stream), s->Level, s->Strategy); -- s->deflateParams_out_valid = -- (RETVAL == Z_OK && s->stream.avail_out == 0) ; -- /* printf("RETVAL %d, avail out %d, byte %c\n", RETVAL, s->stream.avail_out, s->deflateParams_out_byte); */ -+ s->stream.avail_in = 0; -+ s->stream.next_out = &(s->deflateParams_out_byte) ; -+ s->stream.avail_out = 1; -+ RETVAL = deflateParams(&(s->stream), s->Level, s->Strategy); -+ s->deflateParams_out_valid = -+ (RETVAL == Z_OK && s->stream.avail_out == 0) ; - #else -- /* printf("Level %d Strategy %d, Prev Len %d\n", -+ /* printf("Level %d Strategy %d, Prev Len %d\n", - s->Level, s->Strategy, s->deflateParams_out_length); */ -- s->stream.avail_in = 0; -- if (s->deflateParams_out_buffer == NULL) -- s->deflateParams_out_buffer = safemalloc(deflateParams_BUFFER_SIZE); -- s->stream.next_out = s->deflateParams_out_buffer ; -- s->stream.avail_out = deflateParams_BUFFER_SIZE; -- -- RETVAL = deflateParams(&(s->stream), s->Level, s->Strategy); -- s->deflateParams_out_length = deflateParams_BUFFER_SIZE - s->stream.avail_out; -- /* printf("RETVAL %d, length out %d, avail %d\n", -- RETVAL, s->deflateParams_out_length, s->stream.avail_out ); */ -+ RETVAL = flushParams(s); - #endif -+ } -+ else -+ RETVAL = Z_OK; - OUTPUT: -- RETVAL -+ RETVAL - - - int -diff --git a/t/02zlib.t b/t/02zlib.t -index 2c9aad6..5d024a9 100644 ---- a/t/02zlib.t -+++ b/t/02zlib.t -@@ -27,7 +27,7 @@ BEGIN - $count = 232 ; - } - elsif ($] >= 5.006) { -- $count = 317 ; -+ $count = 320 ; - } - else { - $count = 275 ; -@@ -559,6 +559,13 @@ SKIP: - is $x->get_Level(), Z_BEST_SPEED; - is $x->get_Strategy(), Z_HUFFMAN_ONLY; - -+ # change both Level & Strategy again without any calls to deflate -+ $status = $x->deflateParams(-Level => Z_DEFAULT_COMPRESSION, -Strategy => Z_DEFAULT_STRATEGY, -Bufsize => 1234) ; -+ cmp_ok $status, '==', Z_OK ; -+ -+ is $x->get_Level(), Z_DEFAULT_COMPRESSION; -+ is $x->get_Strategy(), Z_DEFAULT_STRATEGY; -+ - $status = $x->deflate($goodbye, $Answer) ; - cmp_ok $status, '==', Z_OK ; - $input .= $goodbye; -@@ -568,7 +575,7 @@ SKIP: - cmp_ok $status, '==', Z_OK ; - - is $x->get_Level(), Z_NO_COMPRESSION; -- is $x->get_Strategy(), Z_HUFFMAN_ONLY; -+ is $x->get_Strategy(), Z_DEFAULT_STRATEGY; - - $status = $x->deflate($goodbye, $Answer) ; - cmp_ok $status, '==', Z_OK ; --- -2.7.4 - diff --git a/Compress-Raw-Zlib-2.071-Conform-to-C90.patch b/Compress-Raw-Zlib-2.071-Conform-to-C90.patch deleted file mode 100644 index 91d6096..0000000 --- a/Compress-Raw-Zlib-2.071-Conform-to-C90.patch +++ /dev/null @@ -1,82 +0,0 @@ -From 1f3ac68dac93b7b85f09427d188386aaff0d3f80 Mon Sep 17 00:00:00 2001 -From: Reini Urban -Date: Fri, 17 Feb 2017 12:06:27 +0100 -Subject: [PATCH] Conform to C90 -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -The code failed to compile when building perl because perl adds -Werror=declaration-after-statement: - -gcc -c -I/usr/include -D_REENTRANT -D_GNU_SOURCE -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -fwrapv -fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Werror=declaration-after-statement -Wextra -Wc++-compat -Wwrite-strings -g -DVERSION=\"2.069\" -DXS_VERSION=\"2.069\" -fPIC "-I../.." -DNO_VIZ -DZ_SOLO -DGZIP_OS_CODE=3 Zlib.c -Zlib.xs: In function 'flushParams': -Zlib.xs:702:5: error: ISO C90 forbids mixed declarations and code [-Werror=declaration-after-statement] - Bytef* output = s->deflateParams_out_buffer ; - ^~~~~ - -CPAN RT#120272 - -Signed-off-by: Petr Písař ---- - Zlib.xs | 22 +++++++++++----------- - 1 file changed, 11 insertions(+), 11 deletions(-) - -diff --git a/Zlib.xs b/Zlib.xs -index 83d1423..7f4396a 100644 ---- a/Zlib.xs -+++ b/Zlib.xs -@@ -696,14 +696,14 @@ flushParams(di_stream* s) - int ret ; - z_stream * strm = &s->stream; - -- strm->next_in = NULL; -- strm->avail_in = 0; -- - Bytef* output = s->deflateParams_out_buffer ; - uLong total_output = s->deflateParams_out_length; - - uLong have = 0; - -+ strm->next_in = NULL; -+ strm->avail_in = 0; -+ - do - { - if (output) -@@ -1133,12 +1133,12 @@ deflate (s, buf, output) - } - - RETVAL = deflate(&(s->stream), Z_NO_FLUSH); -- if (RETVAL != Z_STREAM_ERROR) { -+ /* if (RETVAL != Z_STREAM_ERROR) { - int done = increment - s->stream.avail_out ; -- /* printf("std DEFLATEr returned %d '%s' avail in %d, out %d wrote %d\n", RETVAL, -+ printf("std DEFLATEr returned %d '%s' avail in %d, out %d wrote %d\n", RETVAL, - GetErrorString(RETVAL), s->stream.avail_in, --s->stream.avail_out, done); */ -- } -+s->stream.avail_out, done); -+ } */ - - if (trace) { - printf("DEFLATE returned %d %s, avail in %d, out %d\n", RETVAL, -@@ -1260,12 +1260,12 @@ flush(s, output, f=Z_FINISH) - } - - RETVAL = deflate(&(s->stream), f); -- if (RETVAL != Z_STREAM_ERROR) { -+ /* if (RETVAL != Z_STREAM_ERROR) { - int done = availableout - s->stream.avail_out ; -- /* printf("flush DEFLATEr returned %d '%s' avail in %d, out %d wrote %d\n", RETVAL, -+ printf("flush DEFLATEr returned %d '%s' avail in %d, out %d wrote %d\n", RETVAL, - GetErrorString(RETVAL), s->stream.avail_in, --s->stream.avail_out, done); */ -- } -+s->stream.avail_out, done); -+ } */ - - if (trace) { - printf("flush DEFLATE returned %d '%s', avail in %d, out %d\n", RETVAL, --- -2.7.4 - diff --git a/gendep.macros b/gendep.macros index 956c3dc..13cbf58 100644 --- a/gendep.macros +++ b/gendep.macros @@ -1,6 +1,7 @@ %global gendep_perl \ Requires: perl(:VERSION) >= 5.0.0 \ Requires: perl(:VERSION) >= 5.10.1 \ +Requires: perl(:VERSION) >= 5.24.0 \ Requires: perl(:VERSION) >= 5.3.0 \ Requires: perl(:VERSION) >= 5.5.0 \ Requires: perl(:VERSION) >= 5.6.0 \ @@ -63,18 +64,18 @@ Requires: perl(warnings::register) \ Provides: perl(AnyDBM_File) = 1.01 \ Provides: perl(AutoLoader) = 5.74 \ Provides: perl(AutoSplit) = 1.06 \ -Provides: perl(B) = 1.62 \ -Provides: perl(B::Concise) = 0.996 \ -Provides: perl(B::Deparse) = 1.37 \ +Provides: perl(B) = 1.68 \ +Provides: perl(B::Concise) = 0.999 \ +Provides: perl(B::Deparse) = 1.40 \ Provides: perl(B::OBJECT) \ -Provides: perl(B::Op_private) = 5.024000 \ +Provides: perl(B::Op_private) = 5.026000 \ Provides: perl(B::Showlex) = 1.05 \ -Provides: perl(B::Terse) = 1.06 \ -Provides: perl(B::Xref) = 1.05 \ +Provides: perl(B::Terse) = 1.07 \ +Provides: perl(B::Xref) = 1.06 \ Provides: perl(Benchmark) = 1.22 \ Provides: perl(Class::Struct) = 0.65 \ Provides: perl(Class::Struct::Tie_ISA) \ -Provides: perl(Config) = 5.024000 \ +Provides: perl(Config) = 5.026000 \ Provides: perl(Config::Extensions) = 0.01 \ Provides: perl(DB) = 1.08 \ Provides: perl(DBM_Filter) = 0.06 \ @@ -85,8 +86,7 @@ Provides: perl(DBM_Filter::null) = 0.03 \ Provides: perl(DBM_Filter::utf8) = 0.03 \ Provides: perl(DirHandle) = 1.04 \ Provides: perl(Dumpvalue) = 1.18 \ -Provides: perl(DynaLoader) = 1.38 \ -Provides: perl(EVERY) \ +Provides: perl(DynaLoader) = 1.42 \ Provides: perl(EVERY::LAST) \ Provides: perl(English) = 1.10 \ Provides: perl(ExtUtils::Constant) = 0.23 \ @@ -97,27 +97,27 @@ Provides: perl(ExtUtils::Constant::XS) = 0.03 \ Provides: perl(Fcntl) = 1.13 \ Provides: perl(File::Basename) = 2.85 \ Provides: perl(File::Compare) = 1.1006 \ -Provides: perl(File::Copy) = 2.31 \ +Provides: perl(File::Copy) = 2.32 \ Provides: perl(File::DosGlob) = 1.12 \ Provides: perl(File::Find) = 1.34 \ -Provides: perl(File::Glob) = 1.26 \ +Provides: perl(File::Glob) = 1.28 \ Provides: perl(File::stat) = 1.07 \ Provides: perl(FileCache) = 1.09 \ -Provides: perl(FileHandle) = 2.02 \ +Provides: perl(FileHandle) = 2.03 \ Provides: perl(FindBin) = 1.51 \ Provides: perl(GDBM_File) = 1.15 \ -Provides: perl(Getopt::Std) = 1.11 \ -Provides: perl(Hash::Util) = 0.19 \ +Provides: perl(Getopt::Std) = 1.12 \ +Provides: perl(Hash::Util) = 0.22 \ Provides: perl(Hash::Util::FieldHash) = 1.19 \ Provides: perl(I18N::Collate) = 1.02 \ -Provides: perl(I18N::LangTags) = 0.40 \ -Provides: perl(I18N::LangTags::Detect) = 1.05 \ +Provides: perl(I18N::LangTags) = 0.42 \ +Provides: perl(I18N::LangTags::Detect) = 1.06 \ Provides: perl(I18N::LangTags::List) = 0.39 \ Provides: perl(I18N::Langinfo) = 0.13 \ Provides: perl(IPC::Open2) = 1.04 \ Provides: perl(IPC::Open3) = 1.20 \ Provides: perl(NDBM_File) = 1.14 \ -Provides: perl(NEXT) = 0.65 \ +Provides: perl(NEXT) = 0.67 \ Provides: perl(NEXT::ACTUAL) \ Provides: perl(NEXT::ACTUAL::DISTINCT) \ Provides: perl(NEXT::ACTUAL::UNSEEN) \ @@ -131,31 +131,31 @@ Provides: perl(Net::protoent) = 1.00 \ Provides: perl(Net::servent) = 1.01 \ Provides: perl(O) = 1.01 \ Provides: perl(ODBM_File) = 1.14 \ -Provides: perl(Opcode) = 1.34 \ -Provides: perl(POSIX) = 1.65 \ +Provides: perl(Opcode) = 1.39 \ +Provides: perl(POSIX) = 1.76 \ Provides: perl(POSIX::SigAction) \ Provides: perl(POSIX::SigRt) \ Provides: perl(POSIX::SigSet) \ -Provides: perl(PerlIO) = 1.09 \ -Provides: perl(PerlIO::encoding) = 0.24 \ +Provides: perl(PerlIO) = 1.10 \ +Provides: perl(PerlIO::encoding) = 0.25 \ Provides: perl(PerlIO::mmap) = 0.016 \ -Provides: perl(PerlIO::scalar) = 0.24 \ +Provides: perl(PerlIO::scalar) = 0.26 \ Provides: perl(PerlIO::via) = 0.16 \ -Provides: perl(Pod::Functions) = 1.10 \ +Provides: perl(Pod::Functions) = 1.11 \ Provides: perl(SDBM_File) = 1.14 \ -Provides: perl(Safe) = 2.39 \ +Provides: perl(Safe) = 2.40 \ Provides: perl(Search::Dict) = 1.07 \ Provides: perl(SelectSaver) = 1.02 \ -Provides: perl(Symbol) = 1.07 \ +Provides: perl(Symbol) = 1.08 \ Provides: perl(Sys::Hostname) = 1.20 \ Provides: perl(Term::Complete) = 1.403 \ -Provides: perl(Term::ReadLine) = 1.15 \ +Provides: perl(Term::ReadLine) = 1.16 \ Provides: perl(Term::ReadLine::Stub) \ Provides: perl(Term::ReadLine::TermCap) \ Provides: perl(Term::ReadLine::Tk) \ Provides: perl(Text::Abbrev) = 1.02 \ Provides: perl(Thread) = 3.04 \ -Provides: perl(Thread::Semaphore) = 2.12 \ +Provides: perl(Thread::Semaphore) = 2.13 \ Provides: perl(Tie::Array) = 1.06 \ Provides: perl(Tie::ExtraHash) \ Provides: perl(Tie::File) = 1.02 \ @@ -164,7 +164,7 @@ Provides: perl(Tie::File::Heap) \ Provides: perl(Tie::Handle) = 4.2 \ Provides: perl(Tie::Hash) \ Provides: perl(Tie::Hash) = 1.05 \ -Provides: perl(Tie::Hash::NamedCapture) = 0.09 \ +Provides: perl(Tie::Hash::NamedCapture) = 0.10 \ Provides: perl(Tie::Memoize) = 1.1 \ Provides: perl(Tie::RefHash) = 1.39 \ Provides: perl(Tie::RefHash::Nestable) \ @@ -178,32 +178,32 @@ Provides: perl(Time::gmtime) = 1.03 \ Provides: perl(Time::localtime) = 1.02 \ Provides: perl(Time::tm) = 1.00 \ Provides: perl(UNIVERSAL) = 1.13 \ -Provides: perl(Unicode::UCD) = 0.64 \ +Provides: perl(Unicode::UCD) = 0.68 \ Provides: perl(User::grent) = 1.01 \ Provides: perl(User::pwent) = 1.00 \ -Provides: perl(_charnames) = 1.43 \ -Provides: perl(arybase) = 0.11 \ -Provides: perl(attributes) = 0.27 \ +Provides: perl(_charnames) = 1.44 \ +Provides: perl(arybase) = 0.12 \ +Provides: perl(attributes) = 0.29 \ Provides: perl(autouse) = 1.11 \ -Provides: perl(base) = 2.23 \ +Provides: perl(base) = 2.25 \ Provides: perl(blib) = 1.06 \ Provides: perl(bytes) = 1.05 \ Provides: perl(bytes_heavy.pl) \ -Provides: perl(charnames) = 1.43 \ +Provides: perl(charnames) = 1.44 \ Provides: perl(deprecate) = 0.03 \ -Provides: perl(diagnostics) = 1.34 \ +Provides: perl(diagnostics) = 1.36 \ Provides: perl(dumpvar.pl) \ -Provides: perl(encoding::warnings) = 0.12 \ -Provides: perl(feature) = 1.42 \ +Provides: perl(encoding::warnings) = 0.13 \ +Provides: perl(feature) = 1.47 \ Provides: perl(fields) = 2.23 \ Provides: perl(filetest) = 1.03 \ Provides: perl(if) = 0.0606 \ Provides: perl(less) = 0.03 \ -Provides: perl(lib) = 0.63 \ +Provides: perl(lib) = 0.64 \ Provides: perl(locale) = 1.09 \ -Provides: perl(mro) = 1.18 \ +Provides: perl(mro) = 1.20 \ Provides: perl(ops) = 1.02 \ -Provides: perl(overload) = 1.26 \ +Provides: perl(overload) = 1.28 \ Provides: perl(overload::numbers) \ Provides: perl(overloading) = 0.02 \ Provides: perl(perl5db.pl) \ @@ -213,7 +213,7 @@ Provides: perl(subs) = 1.02 \ Provides: perl(vars) = 1.03 \ Provides: perl(vmsish) = 1.04 \ Provides: perl(warnings::register) = 1.04 \ -Provides: perl(x86-64) = 4:5.24.0-364.fc25 \ +Provides: perl(x86-64) = 4:5.26.0-392.fc27 \ %{nil} %global gendep_perl_Archive_Tar \ Requires: perl(:VERSION) >= 5.5.0 \ @@ -240,9 +240,9 @@ Requires: perl(constant) \ Requires: perl(strict) \ Requires: perl(vars) \ Requires: perl(warnings) \ -Provides: perl(Archive::Tar) = 2.04 \ -Provides: perl(Archive::Tar::Constant) = 2.04 \ -Provides: perl(Archive::Tar::File) = 2.04 \ +Provides: perl(Archive::Tar) = 2.24 \ +Provides: perl(Archive::Tar::Constant) = 2.24 \ +Provides: perl(Archive::Tar::File) = 2.24 \ %{nil} %global gendep_perl_Attribute_Handlers \ Requires: perl(:VERSION) >= 5.6.0 \ @@ -257,7 +257,7 @@ Requires: perl(:VERSION) >= 5.6.0 \ Requires: perl(B) \ Requires: perl(Config) \ Requires: perl(strict) \ -Provides: perl(B::Debug) = 1.23 \ +Provides: perl(B::Debug) = 1.24 \ %{nil} %global gendep_perl_CPAN \ Requires: perl(:VERSION) >= 5.6.0 \ @@ -318,15 +318,15 @@ Requires: perl(overload) \ Requires: perl(strict) \ Requires: perl(vars) \ Requires: perl(warnings) \ -Provides: perl(App::Cpan) = 1.63 \ -Provides: perl(CPAN) = 2.11 \ +Provides: perl(App::Cpan) = 1.66 \ +Provides: perl(CPAN) = 2.18 \ Provides: perl(CPAN::Author) = 5.5002 \ -Provides: perl(CPAN::Bundle) = 5.5001 \ +Provides: perl(CPAN::Bundle) = 5.5003 \ Provides: perl(CPAN::CacheMgr) = 5.5002 \ Provides: perl(CPAN::Complete) = 5.5001 \ Provides: perl(CPAN::Debug) = 5.5001 \ Provides: perl(CPAN::DeferredCode) = 5.50 \ -Provides: perl(CPAN::Distribution) = 2.04 \ +Provides: perl(CPAN::Distribution) = 2.18 \ Provides: perl(CPAN::Distroprefs) = 6.0001 \ Provides: perl(CPAN::Distroprefs::Iterator) \ Provides: perl(CPAN::Distroprefs::Pref) \ @@ -337,62 +337,66 @@ Provides: perl(CPAN::Distroprefs::Result::Success) \ Provides: perl(CPAN::Distroprefs::Result::Warning) \ Provides: perl(CPAN::Distrostatus) = 5.5 \ Provides: perl(CPAN::Eval) \ -Provides: perl(CPAN::Exception::RecursiveDependency) = 5.5 \ +Provides: perl(CPAN::Exception::RecursiveDependency) = 5.5001 \ +Provides: perl(CPAN::Exception::RecursiveDependency::na) \ Provides: perl(CPAN::Exception::blocked_urllist) = 1.001 \ Provides: perl(CPAN::Exception::yaml_not_installed) = 5.5 \ Provides: perl(CPAN::Exception::yaml_process_error) = 5.5 \ -Provides: perl(CPAN::FTP) = 5.5006 \ +Provides: perl(CPAN::FTP) = 5.5008 \ Provides: perl(CPAN::FTP::netrc) = 1.01 \ -Provides: perl(CPAN::FirstTime) = 5.5307 \ +Provides: perl(CPAN::FirstTime) = 5.5310 \ Provides: perl(CPAN::HTTP::Client) = 1.9601 \ Provides: perl(CPAN::HTTP::Credentials) = 1.9601 \ -Provides: perl(CPAN::HandleConfig) = 5.5006 \ -Provides: perl(CPAN::Index) = 1.9601 \ +Provides: perl(CPAN::HandleConfig) = 5.5008 \ +Provides: perl(CPAN::Index) = 2.12 \ Provides: perl(CPAN::InfoObj) = 5.5 \ Provides: perl(CPAN::Kwalify) = 5.50 \ Provides: perl(CPAN::LWP::UserAgent) = 1.9601 \ Provides: perl(CPAN::Mirrored::By) \ -Provides: perl(CPAN::Mirrors) = 1.9601 \ -Provides: perl(CPAN::Module) = 5.5002 \ +Provides: perl(CPAN::Mirrors) = 2.12 \ +Provides: perl(CPAN::Module) = 5.5003 \ Provides: perl(CPAN::Nox) = 5.5001 \ -Provides: perl(CPAN::Plugin) = 0.95 \ +Provides: perl(CPAN::Plugin) = 0.96 \ Provides: perl(CPAN::Plugin::Specfile) = 0.01 \ Provides: perl(CPAN::Prompt) = 5.5 \ Provides: perl(CPAN::Queue) = 5.5002 \ Provides: perl(CPAN::Queue::Item) \ -Provides: perl(CPAN::Shell) = 5.5005 \ +Provides: perl(CPAN::Shell) = 5.5006 \ Provides: perl(CPAN::Tarzip) = 5.5012 \ Provides: perl(CPAN::URL) = 5.5 \ Provides: perl(CPAN::Version) = 5.5003 \ %{nil} %global gendep_perl_CPAN_Meta \ Requires: perl(:VERSION) >= 5.6.0 \ +Requires: perl(:VERSION) >= 5.8.1 \ Requires: perl(CPAN::Meta::Converter) >= 2.141170 \ Requires: perl(CPAN::Meta::Feature) \ Requires: perl(CPAN::Meta::Prereqs) \ Requires: perl(CPAN::Meta::Requirements) >= 2.121 \ Requires: perl(CPAN::Meta::Validator) \ Requires: perl(Carp) \ +Requires: perl(Exporter) \ Requires: perl(Parse::CPAN::Meta) >= 1.4400 \ Requires: perl(Parse::CPAN::Meta) >= 1.4414 \ Requires: perl(Scalar::Util) \ Requires: perl(strict) \ Requires: perl(warnings) \ -Provides: perl(CPAN::Meta) = 2.150005 \ -Provides: perl(CPAN::Meta::Converter) = 2.150005 \ -Provides: perl(CPAN::Meta::Feature) = 2.150005 \ -Provides: perl(CPAN::Meta::History) = 2.150005 \ -Provides: perl(CPAN::Meta::Merge) = 2.150005 \ -Provides: perl(CPAN::Meta::Prereqs) = 2.150005 \ -Provides: perl(CPAN::Meta::Spec) = 2.150005 \ -Provides: perl(CPAN::Meta::Validator) = 2.150005 \ +Provides: perl(CPAN::Meta) = 2.150010 \ +Provides: perl(CPAN::Meta::Converter) = 2.150010 \ +Provides: perl(CPAN::Meta::Feature) = 2.150010 \ +Provides: perl(CPAN::Meta::History) = 2.150010 \ +Provides: perl(CPAN::Meta::Merge) = 2.150010 \ +Provides: perl(CPAN::Meta::Prereqs) = 2.150010 \ +Provides: perl(CPAN::Meta::Spec) = 2.150010 \ +Provides: perl(CPAN::Meta::Validator) = 2.150010 \ +Provides: perl(Parse::CPAN::Meta) = 2.150010 \ %{nil} %global gendep_perl_CPAN_Meta_Requirements \ Requires: perl(:VERSION) >= 5.6.0 \ Requires: perl(Carp) \ Requires: perl(strict) \ Requires: perl(warnings) \ -Provides: perl(CPAN::Meta::Requirements) = 2.132000 \ +Provides: perl(CPAN::Meta::Requirements) = 2.140000 \ %{nil} %global gendep_perl_CPAN_Meta_YAML \ Requires: perl(:VERSION) >= 5.8.1 \ @@ -408,9 +412,9 @@ Requires: perl(Carp) \ Requires: perl(Exporter) \ Requires: perl(strict) \ Requires: perl(warnings) \ -Provides: perl(Carp) = 1.40 \ -Provides: perl(Carp::Heavy) = 1.40 \ -Provides: perl(Carp::Heavy) = 1.40 \ +Provides: perl(Carp) = 1.42 \ +Provides: perl(Carp::Heavy) = 1.42 \ +Provides: perl(Carp::Heavy) = 1.42 \ %{nil} %global gendep_perl_Compress_Raw_Bzip2 \ Requires: perl(:VERSION) >= 5.6.0 \ @@ -420,7 +424,7 @@ Requires: perl(bytes) \ Requires: perl(constant) \ Requires: perl(strict) \ Requires: perl(warnings) \ -Provides: perl(Compress::Raw::Bzip2) = 2.069 \ +Provides: perl(Compress::Raw::Bzip2) = 2.074 \ %{nil} %global gendep_perl_Compress_Raw_Zlib \ Requires: perl(:VERSION) >= 5.6.0 \ @@ -430,7 +434,7 @@ Requires: perl(bytes) \ Requires: perl(constant) \ Requires: perl(strict) \ Requires: perl(warnings) \ -Provides: perl(Compress::Raw::Zlib) = 2.069 \ +Provides: perl(Compress::Raw::Zlib) = 2.074 \ %{nil} %global gendep_perl_Config_Perl_V \ Requires: perl(Config) \ @@ -438,7 +442,7 @@ Requires: perl(Exporter) \ Requires: perl(strict) \ Requires: perl(vars) \ Requires: perl(warnings) \ -Provides: perl(Config::Perl::V) = 0.25 \ +Provides: perl(Config::Perl::V) = 0.28 \ %{nil} %global gendep_perl_DB_File \ Requires: perl(:VERSION) >= 5.8.3 \ @@ -448,7 +452,7 @@ Requires: perl(File::Spec) \ Requires: perl(Tie::Hash) \ Requires: perl(strict) \ Requires: perl(warnings) \ -Provides: perl(DB_File) = 1.835 \ +Provides: perl(DB_File) = 1.840 \ Provides: perl(DB_File::BTREEINFO) \ Provides: perl(DB_File::HASHINFO) \ Provides: perl(DB_File::RECNOINFO) \ @@ -458,23 +462,22 @@ Requires: perl(:VERSION) >= 5.6.0 \ Requires: perl(Carp) \ Requires: perl(Exporter) \ Requires: perl(constant) \ -Requires: perl(overload) \ -Provides: perl(Data::Dumper) = 2.160 \ +Provides: perl(Data::Dumper) = 2.167 \ %{nil} %global gendep_perl_Devel_PPPort \ Requires: perl(strict) \ Requires: perl(vars) \ -Provides: perl(Devel::PPPort) = 3.32 \ +Provides: perl(Devel::PPPort) = 3.35 \ %{nil} %global gendep_perl_Devel_Peek \ Requires: perl(Exporter) \ Requires: perl(XSLoader) \ -Provides: perl(Devel::Peek) = 1.23 \ +Provides: perl(Devel::Peek) = 1.26 \ %{nil} %global gendep_perl_Devel_SelfStubber \ Requires: perl(File::Spec) \ Requires: perl(SelfLoader) \ -Provides: perl(Devel::SelfStubber) = 1.05 \ +Provides: perl(Devel::SelfStubber) = 1.06 \ %{nil} %global gendep_perl_Digest \ Requires: perl(Carp) \ @@ -490,7 +493,7 @@ Provides: perl(Digest::file) = 1.16 \ Requires: perl(Exporter) \ Requires: perl(strict) \ Requires: perl(vars) \ -Provides: perl(Digest::MD5) = 2.54 \ +Provides: perl(Digest::MD5) = 2.55 \ %{nil} %global gendep_perl_Digest_SHA \ Requires: perl(:VERSION) >= 5.3.0 \ @@ -502,7 +505,7 @@ Requires: perl(integer) \ Requires: perl(strict) \ Requires: perl(vars) \ Requires: perl(warnings) \ -Provides: perl(Digest::SHA) = 5.95 \ +Provides: perl(Digest::SHA) = 5.96 \ %{nil} %global gendep_perl_Encode \ Requires: perl(:VERSION) >= 5.8.0 \ @@ -534,12 +537,12 @@ Requires: perl(strict) \ Requires: perl(utf8) \ Requires: perl(vars) \ Requires: perl(warnings) \ -Provides: perl(Encode) = 2.80 \ -Provides: perl(Encode::Alias) = 2.20 \ +Provides: perl(Encode) = 2.88 \ +Provides: perl(Encode::Alias) = 2.21 \ Provides: perl(Encode::Byte) = 2.4 \ Provides: perl(Encode::CJKConstants) = 2.2 \ Provides: perl(Encode::CN) = 2.3 \ -Provides: perl(Encode::CN::HZ) = 2.7 \ +Provides: perl(Encode::CN::HZ) = 2.8 \ Provides: perl(Encode::Config) = 2.5 \ Provides: perl(Encode::EBCDIC) = 2.2 \ Provides: perl(Encode::Encoder) = 2.3 \ @@ -552,9 +555,9 @@ Provides: perl(Encode::JP::H2Z) = 2.2 \ Provides: perl(Encode::JP::JIS7) = 2.5 \ Provides: perl(Encode::KR) = 2.3 \ Provides: perl(Encode::KR::2022_KR) = 2.3 \ -Provides: perl(Encode::MIME::Header) = 2.19 \ -Provides: perl(Encode::MIME::Header::ISO_2022_JP) = 1.4 \ -Provides: perl(Encode::MIME::Name) = 1.1 \ +Provides: perl(Encode::MIME::Header) = 2.24 \ +Provides: perl(Encode::MIME::Header::ISO_2022_JP) = 1.7 \ +Provides: perl(Encode::MIME::Name) = 1.2 \ Provides: perl(Encode::Symbol) = 2.2 \ Provides: perl(Encode::TW) = 2.3 \ Provides: perl(Encode::UTF_EBCDIC) \ @@ -583,7 +586,7 @@ Provides: perl(Env::Array::VMS) \ Requires: perl(Config) \ Requires: perl(Exporter) \ Requires: perl(strict) \ -Provides: perl(Errno) = 1.25 \ +Provides: perl(Errno) = 1.28 \ %{nil} %global gendep_perl_Exporter \ Requires: perl(:VERSION) >= 5.6.0 \ @@ -630,7 +633,7 @@ Requires: perl(:VERSION) >= 5.5.30 \ Requires: perl(Exporter) \ Requires: perl(strict) \ Requires: perl(vars) \ -Provides: perl(ExtUtils::Command) = 7.10 \ +Provides: perl(ExtUtils::Command) = 7.24 \ %{nil} %global gendep_perl_ExtUtils_Embed \ Requires: perl(Config) \ @@ -638,7 +641,7 @@ Requires: perl(Exporter) \ Requires: perl(File::Spec) \ Requires: perl(strict) \ Requires: perl(vars) \ -Provides: perl(ExtUtils::Embed) = 1.33 \ +Provides: perl(ExtUtils::Embed) = 1.34 \ %{nil} %global gendep_perl_ExtUtils_Install \ Requires: perl(:VERSION) >= 5.5.30 \ @@ -670,11 +673,10 @@ Provides: perl(ExtUtils::MM::Utils) = 7.11 \ %{nil} %global gendep_perl_ExtUtils_MakeMaker \ Requires: perl(:VERSION) >= 5.6.0 \ -Requires: perl(:VERSION) >= 5.6.2 \ +Requires: perl(:VERSION) >= 5.6.1 \ Requires: perl(Carp) \ Requires: perl(Config) \ Requires: perl(Cwd) \ -Requires: perl(DirHandle) \ Requires: perl(Encode) \ Requires: perl(Encode::Alias) \ Requires: perl(Exporter) \ @@ -699,34 +701,34 @@ Requires: perl(lib) \ Requires: perl(strict) \ Requires: perl(vars) \ Requires: perl(warnings) \ -Provides: perl(ExtUtils::Command::MM) = 7.10 \ -Provides: perl(ExtUtils::Liblist) = 7.10 \ -Provides: perl(ExtUtils::Liblist::Kid) = 7.10 \ -Provides: perl(ExtUtils::MM) = 7.10 \ -Provides: perl(ExtUtils::MM_AIX) = 7.10 \ -Provides: perl(ExtUtils::MM_Any) = 7.10 \ -Provides: perl(ExtUtils::MM_BeOS) = 7.10 \ -Provides: perl(ExtUtils::MM_Cygwin) = 7.10 \ -Provides: perl(ExtUtils::MM_DOS) = 7.10 \ -Provides: perl(ExtUtils::MM_Darwin) = 7.10 \ -Provides: perl(ExtUtils::MM_MacOS) = 7.10 \ -Provides: perl(ExtUtils::MM_NW5) = 7.10 \ -Provides: perl(ExtUtils::MM_OS2) = 7.10 \ -Provides: perl(ExtUtils::MM_QNX) = 7.10 \ -Provides: perl(ExtUtils::MM_UWIN) = 7.10 \ -Provides: perl(ExtUtils::MM_Unix) = 7.10 \ -Provides: perl(ExtUtils::MM_VMS) = 7.10 \ -Provides: perl(ExtUtils::MM_VOS) = 7.10 \ -Provides: perl(ExtUtils::MM_Win32) = 7.10 \ -Provides: perl(ExtUtils::MM_Win95) = 7.10 \ -Provides: perl(ExtUtils::MY) = 7.10 \ -Provides: perl(ExtUtils::MakeMaker) = 7.10 \ -Provides: perl(ExtUtils::MakeMaker::Config) = 7.10 \ -Provides: perl(ExtUtils::MakeMaker::Locale) = 7.10 \ -Provides: perl(ExtUtils::MakeMaker::version) = 7.10 \ -Provides: perl(ExtUtils::Mkbootstrap) = 7.10 \ -Provides: perl(ExtUtils::Mksymlists) = 7.10 \ -Provides: perl(ExtUtils::testlib) = 7.10 \ +Provides: perl(ExtUtils::Command::MM) = 7.24 \ +Provides: perl(ExtUtils::Liblist) = 7.24 \ +Provides: perl(ExtUtils::Liblist::Kid) = 7.24 \ +Provides: perl(ExtUtils::MM) = 7.24 \ +Provides: perl(ExtUtils::MM_AIX) = 7.24 \ +Provides: perl(ExtUtils::MM_Any) = 7.24 \ +Provides: perl(ExtUtils::MM_BeOS) = 7.24 \ +Provides: perl(ExtUtils::MM_Cygwin) = 7.24 \ +Provides: perl(ExtUtils::MM_DOS) = 7.24 \ +Provides: perl(ExtUtils::MM_Darwin) = 7.24 \ +Provides: perl(ExtUtils::MM_MacOS) = 7.24 \ +Provides: perl(ExtUtils::MM_NW5) = 7.24 \ +Provides: perl(ExtUtils::MM_OS2) = 7.24 \ +Provides: perl(ExtUtils::MM_QNX) = 7.24 \ +Provides: perl(ExtUtils::MM_UWIN) = 7.24 \ +Provides: perl(ExtUtils::MM_Unix) = 7.24 \ +Provides: perl(ExtUtils::MM_VMS) = 7.24 \ +Provides: perl(ExtUtils::MM_VOS) = 7.24 \ +Provides: perl(ExtUtils::MM_Win32) = 7.24 \ +Provides: perl(ExtUtils::MM_Win95) = 7.24 \ +Provides: perl(ExtUtils::MY) = 7.24 \ +Provides: perl(ExtUtils::MakeMaker) = 7.24 \ +Provides: perl(ExtUtils::MakeMaker::Config) = 7.24 \ +Provides: perl(ExtUtils::MakeMaker::Locale) = 7.24 \ +Provides: perl(ExtUtils::MakeMaker::version) = 7.24 \ +Provides: perl(ExtUtils::Mkbootstrap) = 7.24 \ +Provides: perl(ExtUtils::Mksymlists) = 7.24 \ +Provides: perl(ExtUtils::testlib) = 7.24 \ Provides: perl(MM) \ Provides: perl(MY) \ %{nil} @@ -747,7 +749,7 @@ Requires: perl(Exporter) \ Requires: perl(ExtUtils::Embed) >= 1.31 \ Requires: perl(strict) \ Requires: perl(vars) \ -Provides: perl(ExtUtils::Miniperl) = 1.05 \ +Provides: perl(ExtUtils::Miniperl) = 1.06 \ %{nil} %global gendep_perl_ExtUtils_ParseXS \ Requires: perl(:VERSION) >= 5.6.0 \ @@ -771,16 +773,16 @@ Requires: perl(Symbol) \ Requires: perl(re) \ Requires: perl(strict) \ Requires: perl(warnings) \ -Provides: perl(ExtUtils::ParseXS) = 3.31 \ -Provides: perl(ExtUtils::ParseXS::Constants) = 3.31 \ -Provides: perl(ExtUtils::ParseXS::CountLines) = 3.31 \ -Provides: perl(ExtUtils::ParseXS::Eval) = 3.31 \ -Provides: perl(ExtUtils::ParseXS::Utilities) = 3.31 \ -Provides: perl(ExtUtils::Typemaps) = 3.31 \ -Provides: perl(ExtUtils::Typemaps::Cmd) = 3.31 \ -Provides: perl(ExtUtils::Typemaps::InputMap) = 3.31 \ -Provides: perl(ExtUtils::Typemaps::OutputMap) = 3.31 \ -Provides: perl(ExtUtils::Typemaps::Type) = 3.31 \ +Provides: perl(ExtUtils::ParseXS) = 3.34 \ +Provides: perl(ExtUtils::ParseXS::Constants) = 3.34 \ +Provides: perl(ExtUtils::ParseXS::CountLines) = 3.34 \ +Provides: perl(ExtUtils::ParseXS::Eval) = 3.34 \ +Provides: perl(ExtUtils::ParseXS::Utilities) = 3.34 \ +Provides: perl(ExtUtils::Typemaps) = 3.34 \ +Provides: perl(ExtUtils::Typemaps::Cmd) = 3.34 \ +Provides: perl(ExtUtils::Typemaps::InputMap) = 3.34 \ +Provides: perl(ExtUtils::Typemaps::OutputMap) = 3.34 \ +Provides: perl(ExtUtils::Typemaps::Type) = 3.34 \ %{nil} %global gendep_perl_File_Fetch \ Requires: perl(Carp) \ @@ -799,7 +801,7 @@ Requires: perl(Params::Check) \ Requires: perl(constant) \ Requires: perl(strict) \ Requires: perl(vars) \ -Provides: perl(File::Fetch) = 0.48 \ +Provides: perl(File::Fetch) = 0.52 \ %{nil} %global gendep_perl_File_Path \ Requires: perl(:VERSION) >= 5.5.0 \ @@ -847,7 +849,7 @@ Requires: perl(Carp) \ Requires: perl(Filter::Util::Call) \ Requires: perl(Text::Balanced) \ Requires: perl(vars) \ -Provides: perl(Filter::Simple) = 0.92 \ +Provides: perl(Filter::Simple) = 0.93 \ %{nil} %global gendep_perl_Getopt_Long \ Requires: perl(:VERSION) >= 5.4.0 \ @@ -856,17 +858,17 @@ Requires: perl(constant) \ Requires: perl(overload) \ Requires: perl(strict) \ Requires: perl(vars) \ -Provides: perl(Getopt::Long) = 2.48 \ +Provides: perl(Getopt::Long) = 2.49 \ Provides: perl(Getopt::Long::CallBack) \ Provides: perl(Getopt::Long::Parser) \ %{nil} %global gendep_perl_HTTP_Tiny \ -Requires: perl(Carp) \ Requires: perl(Errno) \ Requires: perl(IO::Socket) \ +Requires: perl(Socket) \ Requires: perl(strict) \ Requires: perl(warnings) \ -Provides: perl(HTTP::Tiny) = 0.056 \ +Provides: perl(HTTP::Tiny) = 0.070 \ %{nil} %global gendep_perl_IO \ Requires: perl(:VERSION) >= 5.6.0 \ @@ -892,7 +894,7 @@ Requires: perl(strict) \ Requires: perl(vars) \ Requires: perl(warnings) \ Requires: perl(warnings::register) \ -Provides: perl(IO) = 1.36 \ +Provides: perl(IO) = 1.38 \ Provides: perl(IO::Dir) = 1.10 \ Provides: perl(IO::File) = 1.16 \ Provides: perl(IO::Handle) = 1.36 \ @@ -908,35 +910,35 @@ Provides: perl(IO::Socket::UNIX) = 1.26 \ %global gendep_perl_IO_Compress \ Requires: perl(:VERSION) >= 5.6.0 \ Requires: perl(Carp) \ -Requires: perl(Compress::Raw::Bzip2) >= 2.069 \ -Requires: perl(Compress::Raw::Zlib) >= 2.069 \ +Requires: perl(Compress::Raw::Bzip2) >= 2.074 \ +Requires: perl(Compress::Raw::Zlib) >= 2.074 \ Requires: perl(Config) \ Requires: perl(Encode) \ Requires: perl(Exporter) \ Requires: perl(Fcntl) \ Requires: perl(File::GlobMapper) \ Requires: perl(File::Spec) \ -Requires: perl(IO::Compress::Adapter::Bzip2) >= 2.069 \ -Requires: perl(IO::Compress::Adapter::Deflate) >= 2.069 \ -Requires: perl(IO::Compress::Adapter::Identity) >= 2.069 \ -Requires: perl(IO::Compress::Base) >= 2.069 \ -Requires: perl(IO::Compress::Base::Common) >= 2.069 \ -Requires: perl(IO::Compress::Gzip) >= 2.069 \ -Requires: perl(IO::Compress::Gzip::Constants) >= 2.069 \ -Requires: perl(IO::Compress::RawDeflate) >= 2.069 \ -Requires: perl(IO::Compress::Zip::Constants) >= 2.069 \ -Requires: perl(IO::Compress::Zlib::Constants) >= 2.069 \ -Requires: perl(IO::Compress::Zlib::Extra) >= 2.069 \ +Requires: perl(IO::Compress::Adapter::Bzip2) >= 2.074 \ +Requires: perl(IO::Compress::Adapter::Deflate) >= 2.074 \ +Requires: perl(IO::Compress::Adapter::Identity) >= 2.074 \ +Requires: perl(IO::Compress::Base) >= 2.074 \ +Requires: perl(IO::Compress::Base::Common) >= 2.074 \ +Requires: perl(IO::Compress::Gzip) >= 2.074 \ +Requires: perl(IO::Compress::Gzip::Constants) >= 2.074 \ +Requires: perl(IO::Compress::RawDeflate) >= 2.074 \ +Requires: perl(IO::Compress::Zip::Constants) >= 2.074 \ +Requires: perl(IO::Compress::Zlib::Constants) >= 2.074 \ +Requires: perl(IO::Compress::Zlib::Extra) >= 2.074 \ Requires: perl(IO::File) \ Requires: perl(IO::Handle) \ -Requires: perl(IO::Uncompress::Adapter::Bunzip2) >= 2.069 \ -Requires: perl(IO::Uncompress::Adapter::Identity) >= 2.069 \ -Requires: perl(IO::Uncompress::Adapter::Inflate) >= 2.069 \ -Requires: perl(IO::Uncompress::Base) >= 2.069 \ -Requires: perl(IO::Uncompress::Gunzip) >= 2.069 \ -Requires: perl(IO::Uncompress::Inflate) >= 2.069 \ -Requires: perl(IO::Uncompress::RawInflate) >= 2.069 \ -Requires: perl(IO::Uncompress::Unzip) >= 2.069 \ +Requires: perl(IO::Uncompress::Adapter::Bunzip2) >= 2.074 \ +Requires: perl(IO::Uncompress::Adapter::Identity) >= 2.074 \ +Requires: perl(IO::Uncompress::Adapter::Inflate) >= 2.074 \ +Requires: perl(IO::Uncompress::Base) >= 2.074 \ +Requires: perl(IO::Uncompress::Gunzip) >= 2.074 \ +Requires: perl(IO::Uncompress::Inflate) >= 2.074 \ +Requires: perl(IO::Uncompress::RawInflate) >= 2.074 \ +Requires: perl(IO::Uncompress::Unzip) >= 2.074 \ Requires: perl(List::Util) \ Requires: perl(POSIX) \ Requires: perl(Scalar::Util) \ @@ -946,34 +948,34 @@ Requires: perl(constant) \ Requires: perl(strict) \ Requires: perl(utf8) \ Requires: perl(warnings) \ -Provides: perl(Compress::Zlib) = 2.069 \ +Provides: perl(Compress::Zlib) = 2.074 \ Provides: perl(File::GlobMapper) = 1.000 \ -Provides: perl(IO::Compress::Adapter::Bzip2) = 2.069 \ -Provides: perl(IO::Compress::Adapter::Deflate) = 2.069 \ -Provides: perl(IO::Compress::Adapter::Identity) = 2.069 \ -Provides: perl(IO::Compress::Base) = 2.069 \ -Provides: perl(IO::Compress::Base::Common) = 2.069 \ -Provides: perl(IO::Compress::Bzip2) = 2.069 \ -Provides: perl(IO::Compress::Deflate) = 2.069 \ -Provides: perl(IO::Compress::Gzip) = 2.069 \ -Provides: perl(IO::Compress::Gzip::Constants) = 2.069 \ -Provides: perl(IO::Compress::RawDeflate) = 2.069 \ -Provides: perl(IO::Compress::Zip) = 2.069 \ -Provides: perl(IO::Compress::Zip::Constants) = 2.069 \ -Provides: perl(IO::Compress::Zlib::Constants) = 2.069 \ -Provides: perl(IO::Compress::Zlib::Extra) = 2.069 \ -Provides: perl(IO::Uncompress::Adapter::Bunzip2) = 2.069 \ -Provides: perl(IO::Uncompress::Adapter::Identity) = 2.069 \ -Provides: perl(IO::Uncompress::Adapter::Inflate) = 2.069 \ -Provides: perl(IO::Uncompress::AnyInflate) = 2.069 \ -Provides: perl(IO::Uncompress::AnyUncompress) = 2.069 \ -Provides: perl(IO::Uncompress::Base) = 2.069 \ +Provides: perl(IO::Compress::Adapter::Bzip2) = 2.074 \ +Provides: perl(IO::Compress::Adapter::Deflate) = 2.074 \ +Provides: perl(IO::Compress::Adapter::Identity) = 2.074 \ +Provides: perl(IO::Compress::Base) = 2.074 \ +Provides: perl(IO::Compress::Base::Common) = 2.074 \ +Provides: perl(IO::Compress::Bzip2) = 2.074 \ +Provides: perl(IO::Compress::Deflate) = 2.074 \ +Provides: perl(IO::Compress::Gzip) = 2.074 \ +Provides: perl(IO::Compress::Gzip::Constants) = 2.074 \ +Provides: perl(IO::Compress::RawDeflate) = 2.074 \ +Provides: perl(IO::Compress::Zip) = 2.074 \ +Provides: perl(IO::Compress::Zip::Constants) = 2.074 \ +Provides: perl(IO::Compress::Zlib::Constants) = 2.074 \ +Provides: perl(IO::Compress::Zlib::Extra) = 2.074 \ +Provides: perl(IO::Uncompress::Adapter::Bunzip2) = 2.074 \ +Provides: perl(IO::Uncompress::Adapter::Identity) = 2.074 \ +Provides: perl(IO::Uncompress::Adapter::Inflate) = 2.074 \ +Provides: perl(IO::Uncompress::AnyInflate) = 2.074 \ +Provides: perl(IO::Uncompress::AnyUncompress) = 2.074 \ +Provides: perl(IO::Uncompress::Base) = 2.074 \ Provides: perl(IO::Uncompress::Bunzip2) \ -Provides: perl(IO::Uncompress::Bunzip2) = 2.069 \ -Provides: perl(IO::Uncompress::Gunzip) = 2.069 \ -Provides: perl(IO::Uncompress::Inflate) = 2.069 \ -Provides: perl(IO::Uncompress::RawInflate) = 2.069 \ -Provides: perl(IO::Uncompress::Unzip) = 2.069 \ +Provides: perl(IO::Uncompress::Bunzip2) = 2.074 \ +Provides: perl(IO::Uncompress::Gunzip) = 2.074 \ +Provides: perl(IO::Uncompress::Inflate) = 2.074 \ +Provides: perl(IO::Uncompress::RawInflate) = 2.074 \ +Provides: perl(IO::Uncompress::Unzip) = 2.074 \ Provides: perl(U64) \ Provides: perl(Zlib::OldDeflate) \ Provides: perl(Zlib::OldInflate) \ @@ -989,7 +991,7 @@ Requires: perl(base) \ Requires: perl(constant) \ Requires: perl(strict) \ Requires: perl(warnings) \ -Provides: perl(IO::Socket::IP) = 0.37 \ +Provides: perl(IO::Socket::IP) = 0.38 \ %{nil} %global gendep_perl_IO_Zlib \ Requires: perl(:VERSION) >= 5.6.0 \ @@ -1013,7 +1015,7 @@ Requires: perl(Text::ParseWords) \ Requires: perl(constant) \ Requires: perl(strict) \ Requires: perl(vars) \ -Provides: perl(IPC::Cmd) = 0.92 \ +Provides: perl(IPC::Cmd) = 0.96 \ %{nil} %global gendep_perl_IPC_SysV \ Requires: perl(Carp) \ @@ -1023,13 +1025,13 @@ Requires: perl(Exporter) \ Requires: perl(IPC::SysV) \ Requires: perl(strict) \ Requires: perl(vars) \ -Provides: perl(IPC::Msg) = 2.06 \ +Provides: perl(IPC::Msg) = 2.07 \ Provides: perl(IPC::Msg::stat) \ -Provides: perl(IPC::Semaphore) = 2.06 \ +Provides: perl(IPC::Semaphore) = 2.07 \ Provides: perl(IPC::Semaphore::stat) \ -Provides: perl(IPC::SharedMem) = 2.06 \ +Provides: perl(IPC::SharedMem) = 2.07 \ Provides: perl(IPC::SharedMem::stat) \ -Provides: perl(IPC::SysV) = 2.06 \ +Provides: perl(IPC::SysV) = 2.07 \ %{nil} %global gendep_perl_JSON_PP \ Requires: perl(:VERSION) >= 5.5.0 \ @@ -1043,7 +1045,7 @@ Requires: perl(bytes) \ Requires: perl(constant) \ Requires: perl(overload) \ Requires: perl(strict) \ -Provides: perl(JSON::PP) = 2.27300 \ +Provides: perl(JSON::PP) = 2.27400 \ Provides: perl(JSON::PP::Boolean) \ Provides: perl(JSON::PP::IncrParser) = 1.01 \ %{nil} @@ -1059,19 +1061,19 @@ Requires: perl(strict) \ Requires: perl(utf8) \ Requires: perl(warnings) \ Provides: perl(Locale::Codes) = 3.25 \ -Provides: perl(Locale::Codes) = 3.37 \ -Provides: perl(Locale::Codes::Constants) = 3.37 \ -Provides: perl(Locale::Codes::Country) = 3.37 \ -Provides: perl(Locale::Codes::Currency) = 3.37 \ -Provides: perl(Locale::Codes::LangExt) = 3.37 \ -Provides: perl(Locale::Codes::LangFam) = 3.37 \ -Provides: perl(Locale::Codes::LangVar) = 3.37 \ -Provides: perl(Locale::Codes::Language) = 3.37 \ -Provides: perl(Locale::Codes::Script) = 3.37 \ -Provides: perl(Locale::Country) = 3.37 \ -Provides: perl(Locale::Currency) = 3.37 \ -Provides: perl(Locale::Language) = 3.37 \ -Provides: perl(Locale::Script) = 3.37 \ +Provides: perl(Locale::Codes) = 3.42 \ +Provides: perl(Locale::Codes::Constants) = 3.42 \ +Provides: perl(Locale::Codes::Country) = 3.42 \ +Provides: perl(Locale::Codes::Currency) = 3.42 \ +Provides: perl(Locale::Codes::LangExt) = 3.42 \ +Provides: perl(Locale::Codes::LangFam) = 3.42 \ +Provides: perl(Locale::Codes::LangVar) = 3.42 \ +Provides: perl(Locale::Codes::Language) = 3.42 \ +Provides: perl(Locale::Codes::Script) = 3.42 \ +Provides: perl(Locale::Country) = 3.42 \ +Provides: perl(Locale::Currency) = 3.42 \ +Provides: perl(Locale::Language) = 3.42 \ +Provides: perl(Locale::Script) = 3.42 \ %{nil} %global gendep_perl_Locale_Maketext \ Requires: perl(Carp) \ @@ -1081,7 +1083,7 @@ Requires: perl(Locale::Maketext) \ Requires: perl(integer) \ Requires: perl(strict) \ Requires: perl(vars) \ -Provides: perl(Locale::Maketext) = 1.26 \ +Provides: perl(Locale::Maketext) = 1.28 \ Provides: perl(Locale::Maketext::Guts) = 1.20 \ Provides: perl(Locale::Maketext::GutsLoader) = 1.20 \ %{nil} @@ -1103,24 +1105,28 @@ Provides: perl(MIME::QuotedPrint) = 3.13 \ %{nil} %global gendep_perl_Math_BigInt \ Requires: perl(:VERSION) >= 5.6.1 \ +Requires: perl(Carp) \ Requires: perl(Exporter) \ +Requires: perl(Math::BigInt) \ +Requires: perl(Math::BigInt::Lib) \ Requires: perl(constant) \ Requires: perl(integer) \ Requires: perl(overload) \ Requires: perl(strict) \ Requires: perl(warnings) \ -Provides: perl(Math::BigFloat) = 1.999715 \ -Provides: perl(Math::BigInt) = 1.999715 \ -Provides: perl(Math::BigInt::Calc) = 1.999715 \ -Provides: perl(Math::BigInt::CalcEmu) = 1.999715 \ +Provides: perl(Math::BigFloat) = 1.999806 \ +Provides: perl(Math::BigInt) = 1.999806 \ +Provides: perl(Math::BigInt::Calc) = 1.999806 \ +Provides: perl(Math::BigInt::CalcEmu) = 1.999806 \ +Provides: perl(Math::BigInt::Lib) = 1.999806 \ %{nil} %global gendep_perl_Math_BigInt_FastCalc \ Requires: perl(:VERSION) >= 5.6.0 \ -Requires: perl(Math::BigInt::Calc) >= 1.999706 \ +Requires: perl(Math::BigInt::Calc) \ Requires: perl(XSLoader) \ Requires: perl(strict) \ Requires: perl(warnings) \ -Provides: perl(Math::BigInt::FastCalc) = 0.40 \ +Provides: perl(Math::BigInt::FastCalc) = 0.5005 \ %{nil} %global gendep_perl_Math_BigRat \ Requires: perl(:VERSION) >= 5.6.0 \ @@ -1129,7 +1135,7 @@ Requires: perl(Math::BigFloat) \ Requires: perl(overload) \ Requires: perl(strict) \ Requires: perl(warnings) \ -Provides: perl(Math::BigRat) = 0.260802 \ +Provides: perl(Math::BigRat) = 0.2611 \ %{nil} %global gendep_perl_Math_Complex \ Requires: perl(Config) \ @@ -1162,14 +1168,13 @@ Provides: perl(Memoize::Storable) = 1.03 \ %{nil} %global gendep_perl_Module_CoreList \ Requires: perl(Module::CoreList) \ -Requires: perl(Module::CoreList::TieHashDelta) \ Requires: perl(strict) \ Requires: perl(vars) \ Requires: perl(version) \ Requires: perl(warnings) \ -Provides: perl(Module::CoreList) = 5.20160506 \ -Provides: perl(Module::CoreList::TieHashDelta) = 5.20160506 \ -Provides: perl(Module::CoreList::Utils) = 5.20160506 \ +Provides: perl(Module::CoreList) = 5.20170530 \ +Provides: perl(Module::CoreList::TieHashDelta) = 5.20170530 \ +Provides: perl(Module::CoreList::Utils) = 5.20170530 \ %{nil} %global gendep_perl_Module_CoreList_tools \ Requires: perl(Getopt::Long) \ @@ -1198,7 +1203,7 @@ Requires: perl(constant) \ Requires: perl(strict) \ Requires: perl(vars) \ Requires: perl(version) \ -Provides: perl(Module::Load::Conditional) = 0.64 \ +Provides: perl(Module::Load::Conditional) = 0.68 \ %{nil} %global gendep_perl_Module_Loaded \ Requires: perl(Carp) \ @@ -1213,7 +1218,7 @@ Requires: perl(File::Spec) \ Requires: perl(strict) \ Requires: perl(version) >= 0.87 \ Requires: perl(warnings) \ -Provides: perl(Module::Metadata) = 1.000031 \ +Provides: perl(Module::Metadata) = 1.000033 \ %{nil} %global gendep_perl_Net_Ping \ Requires: perl(:VERSION) >= 5.2.0 \ @@ -1227,7 +1232,7 @@ Requires: perl(Time::HiRes) \ Requires: perl(constant) \ Requires: perl(strict) \ Requires: perl(vars) \ -Provides: perl(Net::Ping) = 2.43 \ +Provides: perl(Net::Ping) = 2.55 \ %{nil} %global gendep_perl_Params_Check \ Requires: perl(Carp) \ @@ -1237,13 +1242,6 @@ Requires: perl(strict) \ Requires: perl(vars) \ Provides: perl(Params::Check) = 0.38 \ %{nil} -%global gendep_perl_Parse_CPAN_Meta \ -Requires: perl(:VERSION) >= 5.8.1 \ -Requires: perl(Carp) \ -Requires: perl(Exporter) \ -Requires: perl(strict) \ -Provides: perl(Parse::CPAN::Meta) = 1.4417 \ -%{nil} %global gendep_perl_PathTools \ Requires: perl(Exporter) \ Requires: perl(File::Spec) \ @@ -1251,22 +1249,22 @@ Requires: perl(File::Spec::Unix) \ Requires: perl(constant) \ Requires: perl(strict) \ Requires: perl(vars) \ -Provides: perl(Cwd) = 3.63 \ -Provides: perl(File::Spec) = 3.63 \ -Provides: perl(File::Spec::AmigaOS) = 3.64 \ -Provides: perl(File::Spec::Cygwin) = 3.63 \ -Provides: perl(File::Spec::Epoc) = 3.63 \ -Provides: perl(File::Spec::Functions) = 3.63 \ -Provides: perl(File::Spec::Mac) = 3.63 \ -Provides: perl(File::Spec::OS2) = 3.63 \ -Provides: perl(File::Spec::Unix) = 3.63 \ -Provides: perl(File::Spec::Win32) = 3.63 \ +Provides: perl(Cwd) = 3.67 \ +Provides: perl(File::Spec) = 3.67 \ +Provides: perl(File::Spec::AmigaOS) = 3.67 \ +Provides: perl(File::Spec::Cygwin) = 3.67 \ +Provides: perl(File::Spec::Epoc) = 3.67 \ +Provides: perl(File::Spec::Functions) = 3.67 \ +Provides: perl(File::Spec::Mac) = 3.67 \ +Provides: perl(File::Spec::OS2) = 3.67 \ +Provides: perl(File::Spec::Unix) = 3.67 \ +Provides: perl(File::Spec::Win32) = 3.67 \ %{nil} %global gendep_perl_Perl_OSType \ Requires: perl(Exporter) \ Requires: perl(strict) \ Requires: perl(warnings) \ -Provides: perl(Perl::OSType) = 1.009 \ +Provides: perl(Perl::OSType) = 1.010 \ %{nil} %global gendep_perl_PerlIO_via_QuotedPrint \ Requires: perl(MIME::QuotedPrint) \ @@ -1274,17 +1272,16 @@ Requires: perl(strict) \ Provides: perl(PerlIO::via::QuotedPrint) = 0.08 \ %{nil} %global gendep_perl_Pod_Checker \ -Requires: perl(:VERSION) >= 5.5.0 \ Requires: perl(Carp) \ Requires: perl(Exporter) \ Requires: perl(Getopt::Long) \ Requires: perl(Pod::Checker) \ -Requires: perl(Pod::ParseUtils) \ -Requires: perl(Pod::Parser) \ +Requires: perl(Pod::Simple::Methody) \ Requires: perl(Pod::Usage) \ +Requires: perl(base) \ Requires: perl(strict) \ -Requires: perl(vars) \ -Provides: perl(Pod::Checker) = 1.60 \ +Requires: perl(warnings) \ +Provides: perl(Pod::Checker) = 1.73 \ %{nil} %global gendep_perl_Pod_Escapes \ Requires: perl(:VERSION) >= 5.6.0 \ @@ -1311,7 +1308,7 @@ Requires: perl(parent) \ Requires: perl(strict) \ Requires: perl(vars) \ Requires: perl(warnings) \ -Provides: perl(Pod::Html) = 1.22 \ +Provides: perl(Pod::Html) = 1.2202 \ Provides: perl(Pod::Simple::XHTML::LocalPodLinks) \ %{nil} %global gendep_perl_Pod_Parser \ @@ -1366,19 +1363,19 @@ Requires: perl(parent) \ Requires: perl(strict) \ Requires: perl(vars) \ Requires: perl(warnings) \ -Provides: perl(Pod::Perldoc) = 3.25 \ -Provides: perl(Pod::Perldoc::BaseTo) = 3.25 \ -Provides: perl(Pod::Perldoc::GetOptsOO) = 3.25 \ -Provides: perl(Pod::Perldoc::ToANSI) = 3.25 \ -Provides: perl(Pod::Perldoc::ToChecker) = 3.25 \ -Provides: perl(Pod::Perldoc::ToMan) = 3.25 \ -Provides: perl(Pod::Perldoc::ToNroff) = 3.25 \ -Provides: perl(Pod::Perldoc::ToPod) = 3.25 \ -Provides: perl(Pod::Perldoc::ToRtf) = 3.25 \ -Provides: perl(Pod::Perldoc::ToTerm) = 3.25 \ -Provides: perl(Pod::Perldoc::ToText) = 3.25 \ -Provides: perl(Pod::Perldoc::ToTk) = 3.25 \ -Provides: perl(Pod::Perldoc::ToXml) = 3.25 \ +Provides: perl(Pod::Perldoc) = 3.28 \ +Provides: perl(Pod::Perldoc::BaseTo) = 3.28 \ +Provides: perl(Pod::Perldoc::GetOptsOO) = 3.28 \ +Provides: perl(Pod::Perldoc::ToANSI) = 3.28 \ +Provides: perl(Pod::Perldoc::ToChecker) = 3.28 \ +Provides: perl(Pod::Perldoc::ToMan) = 3.28 \ +Provides: perl(Pod::Perldoc::ToNroff) = 3.28 \ +Provides: perl(Pod::Perldoc::ToPod) = 3.28 \ +Provides: perl(Pod::Perldoc::ToRtf) = 3.28 \ +Provides: perl(Pod::Perldoc::ToTerm) = 3.28 \ +Provides: perl(Pod::Perldoc::ToText) = 3.28 \ +Provides: perl(Pod::Perldoc::ToTk) = 3.28 \ +Provides: perl(Pod::Perldoc::ToXml) = 3.28 \ %{nil} %global gendep_perl_Pod_Simple \ Requires: perl(:VERSION) >= 5.0.0 \ @@ -1409,34 +1406,34 @@ Requires: perl(integer) \ Requires: perl(overload) \ Requires: perl(strict) \ Requires: perl(vars) \ -Provides: perl(Pod::Simple) = 3.32 \ -Provides: perl(Pod::Simple::BlackBox) = 3.32 \ -Provides: perl(Pod::Simple::Checker) = 3.32 \ -Provides: perl(Pod::Simple::Debug) = 3.32 \ -Provides: perl(Pod::Simple::DumpAsText) = 3.32 \ -Provides: perl(Pod::Simple::DumpAsXML) = 3.32 \ -Provides: perl(Pod::Simple::HTML) = 3.32 \ -Provides: perl(Pod::Simple::HTMLBatch) = 3.32 \ +Provides: perl(Pod::Simple) = 3.35 \ +Provides: perl(Pod::Simple::BlackBox) = 3.35 \ +Provides: perl(Pod::Simple::Checker) = 3.35 \ +Provides: perl(Pod::Simple::Debug) = 3.35 \ +Provides: perl(Pod::Simple::DumpAsText) = 3.35 \ +Provides: perl(Pod::Simple::DumpAsXML) = 3.35 \ +Provides: perl(Pod::Simple::HTML) = 3.35 \ +Provides: perl(Pod::Simple::HTMLBatch) = 3.35 \ Provides: perl(Pod::Simple::HTMLLegacy) = 5.01 \ -Provides: perl(Pod::Simple::LinkSection) = 3.32 \ -Provides: perl(Pod::Simple::Methody) = 3.32 \ -Provides: perl(Pod::Simple::Progress) = 3.32 \ -Provides: perl(Pod::Simple::PullParser) = 3.32 \ -Provides: perl(Pod::Simple::PullParserEndToken) = 3.32 \ -Provides: perl(Pod::Simple::PullParserStartToken) = 3.32 \ -Provides: perl(Pod::Simple::PullParserTextToken) = 3.32 \ -Provides: perl(Pod::Simple::PullParserToken) = 3.32 \ -Provides: perl(Pod::Simple::RTF) = 3.32 \ -Provides: perl(Pod::Simple::Search) = 3.32 \ -Provides: perl(Pod::Simple::SimpleTree) = 3.32 \ -Provides: perl(Pod::Simple::Text) = 3.32 \ -Provides: perl(Pod::Simple::TextContent) = 3.32 \ -Provides: perl(Pod::Simple::TiedOutFH) = 3.32 \ -Provides: perl(Pod::Simple::Transcode) = 3.32 \ -Provides: perl(Pod::Simple::TranscodeDumb) = 3.32 \ -Provides: perl(Pod::Simple::TranscodeSmart) = 3.32 \ -Provides: perl(Pod::Simple::XHTML) = 3.32 \ -Provides: perl(Pod::Simple::XMLOutStream) = 3.32 \ +Provides: perl(Pod::Simple::LinkSection) = 3.35 \ +Provides: perl(Pod::Simple::Methody) = 3.35 \ +Provides: perl(Pod::Simple::Progress) = 3.35 \ +Provides: perl(Pod::Simple::PullParser) = 3.35 \ +Provides: perl(Pod::Simple::PullParserEndToken) = 3.35 \ +Provides: perl(Pod::Simple::PullParserStartToken) = 3.35 \ +Provides: perl(Pod::Simple::PullParserTextToken) = 3.35 \ +Provides: perl(Pod::Simple::PullParserToken) = 3.35 \ +Provides: perl(Pod::Simple::RTF) = 3.35 \ +Provides: perl(Pod::Simple::Search) = 3.35 \ +Provides: perl(Pod::Simple::SimpleTree) = 3.35 \ +Provides: perl(Pod::Simple::Text) = 3.35 \ +Provides: perl(Pod::Simple::TextContent) = 3.35 \ +Provides: perl(Pod::Simple::TiedOutFH) = 3.35 \ +Provides: perl(Pod::Simple::Transcode) = 3.35 \ +Provides: perl(Pod::Simple::TranscodeDumb) = 3.35 \ +Provides: perl(Pod::Simple::TranscodeSmart) = 3.35 \ +Provides: perl(Pod::Simple::XHTML) = 3.35 \ +Provides: perl(Pod::Simple::XMLOutStream) = 3.35 \ %{nil} %global gendep_perl_Pod_Usage \ Requires: perl(:VERSION) >= 5.6.0 \ @@ -1448,7 +1445,7 @@ Requires: perl(Getopt::Long) \ Requires: perl(Pod::Usage) \ Requires: perl(strict) \ Requires: perl(vars) \ -Provides: perl(Pod::Usage) = 1.68 \ +Provides: perl(Pod::Usage) = 1.69 \ %{nil} %global gendep_perl_Scalar_List_Utils \ Requires: perl(Exporter) \ @@ -1456,10 +1453,10 @@ Requires: perl(List::Util) \ Requires: perl(XSLoader) \ Requires: perl(strict) \ Requires: perl(warnings) \ -Provides: perl(List::Util) = 1.42 \ -Provides: perl(List::Util::XS) = 1.42 \ -Provides: perl(Scalar::Util) = 1.42 \ -Provides: perl(Sub::Util) = 1.42 \ +Provides: perl(List::Util) = 1.46 \ +Provides: perl(List::Util::XS) = 1.46 \ +Provides: perl(Scalar::Util) = 1.46 \ +Provides: perl(Sub::Util) = 1.46 \ %{nil} %global gendep_perl_SelfLoader \ Requires: perl(:VERSION) >= 5.8.0 \ @@ -1481,28 +1478,29 @@ Provides: perl(Socket) = 2.020 \ Requires: perl(Exporter) \ Requires: perl(XSLoader) \ Requires: perl(vars) \ -Provides: perl(Storable) = 2.56 \ +Provides: perl(Storable) = 2.62 \ %{nil} %global gendep_perl_Sys_Syslog \ Requires: perl(:VERSION) >= 5.5.0 \ Requires: perl(Carp) \ +Requires: perl(Config) \ Requires: perl(Exporter) \ Requires: perl(File::Basename) \ Requires: perl(POSIX) \ Requires: perl(Socket) \ +Requires: perl(constant) \ Requires: perl(strict) \ Requires: perl(vars) \ Requires: perl(warnings) \ Requires: perl(warnings::register) \ -Provides: perl(Sys::Syslog) = 0.33 \ +Provides: perl(Sys::Syslog) = 0.35 \ %{nil} %global gendep_perl_Term_ANSIColor \ Requires: perl(:VERSION) >= 5.6.0 \ -Requires: perl(Carp) \ Requires: perl(Exporter) \ Requires: perl(strict) \ Requires: perl(warnings) \ -Provides: perl(Term::ANSIColor) = 4.04 \ +Provides: perl(Term::ANSIColor) = 4.06 \ %{nil} %global gendep_perl_Term_Cap \ Requires: perl(strict) \ @@ -1515,7 +1513,7 @@ Requires: perl(Carp) \ Requires: perl(Exporter) \ Requires: perl(strict) \ Requires: perl(vars) \ -Provides: perl(Test) = 1.28 \ +Provides: perl(Test) = 1.30 \ %{nil} %global gendep_perl_Test_Harness \ Requires: perl(:VERSION) >= 5.6.0 \ @@ -1576,54 +1574,54 @@ Requires: perl(base) \ Requires: perl(constant) \ Requires: perl(strict) \ Requires: perl(warnings) \ -Provides: perl(App::Prove) = 3.36 \ -Provides: perl(App::Prove::State) = 3.36 \ -Provides: perl(App::Prove::State::Result) = 3.36 \ -Provides: perl(App::Prove::State::Result::Test) = 3.36 \ -Provides: perl(TAP::Base) = 3.36 \ -Provides: perl(TAP::Formatter::Base) = 3.36 \ -Provides: perl(TAP::Formatter::Color) = 3.36 \ -Provides: perl(TAP::Formatter::Console) = 3.36 \ -Provides: perl(TAP::Formatter::Console::ParallelSession) = 3.36 \ -Provides: perl(TAP::Formatter::Console::Session) = 3.36 \ -Provides: perl(TAP::Formatter::File) = 3.36 \ -Provides: perl(TAP::Formatter::File::Session) = 3.36 \ -Provides: perl(TAP::Formatter::Session) = 3.36 \ -Provides: perl(TAP::Harness) = 3.36 \ -Provides: perl(TAP::Harness::Env) = 3.36 \ -Provides: perl(TAP::Object) = 3.36 \ -Provides: perl(TAP::Parser) = 3.36 \ -Provides: perl(TAP::Parser::Aggregator) = 3.36 \ -Provides: perl(TAP::Parser::Grammar) = 3.36 \ -Provides: perl(TAP::Parser::Iterator) = 3.36 \ -Provides: perl(TAP::Parser::Iterator::Array) = 3.36 \ -Provides: perl(TAP::Parser::Iterator::Process) = 3.36 \ -Provides: perl(TAP::Parser::Iterator::Stream) = 3.36 \ -Provides: perl(TAP::Parser::IteratorFactory) = 3.36 \ -Provides: perl(TAP::Parser::Multiplexer) = 3.36 \ -Provides: perl(TAP::Parser::Result) = 3.36 \ -Provides: perl(TAP::Parser::Result::Bailout) = 3.36 \ -Provides: perl(TAP::Parser::Result::Comment) = 3.36 \ -Provides: perl(TAP::Parser::Result::Plan) = 3.36 \ -Provides: perl(TAP::Parser::Result::Pragma) = 3.36 \ -Provides: perl(TAP::Parser::Result::Test) = 3.36 \ -Provides: perl(TAP::Parser::Result::Unknown) = 3.36 \ -Provides: perl(TAP::Parser::Result::Version) = 3.36 \ -Provides: perl(TAP::Parser::Result::YAML) = 3.36 \ -Provides: perl(TAP::Parser::ResultFactory) = 3.36 \ -Provides: perl(TAP::Parser::Scheduler) = 3.36 \ -Provides: perl(TAP::Parser::Scheduler::Job) = 3.36 \ -Provides: perl(TAP::Parser::Scheduler::Spinner) = 3.36 \ -Provides: perl(TAP::Parser::Source) = 3.36 \ -Provides: perl(TAP::Parser::SourceHandler) = 3.36 \ -Provides: perl(TAP::Parser::SourceHandler::Executable) = 3.36 \ -Provides: perl(TAP::Parser::SourceHandler::File) = 3.36 \ -Provides: perl(TAP::Parser::SourceHandler::Handle) = 3.36 \ -Provides: perl(TAP::Parser::SourceHandler::Perl) = 3.36 \ -Provides: perl(TAP::Parser::SourceHandler::RawTAP) = 3.36 \ -Provides: perl(TAP::Parser::YAMLish::Reader) = 3.36 \ -Provides: perl(TAP::Parser::YAMLish::Writer) = 3.36 \ -Provides: perl(Test::Harness) = 3.36 \ +Provides: perl(App::Prove) = 3.38 \ +Provides: perl(App::Prove::State) = 3.38 \ +Provides: perl(App::Prove::State::Result) = 3.38 \ +Provides: perl(App::Prove::State::Result::Test) = 3.38 \ +Provides: perl(TAP::Base) = 3.38 \ +Provides: perl(TAP::Formatter::Base) = 3.38 \ +Provides: perl(TAP::Formatter::Color) = 3.38 \ +Provides: perl(TAP::Formatter::Console) = 3.38 \ +Provides: perl(TAP::Formatter::Console::ParallelSession) = 3.38 \ +Provides: perl(TAP::Formatter::Console::Session) = 3.38 \ +Provides: perl(TAP::Formatter::File) = 3.38 \ +Provides: perl(TAP::Formatter::File::Session) = 3.38 \ +Provides: perl(TAP::Formatter::Session) = 3.38 \ +Provides: perl(TAP::Harness) = 3.38 \ +Provides: perl(TAP::Harness::Env) = 3.38 \ +Provides: perl(TAP::Object) = 3.38 \ +Provides: perl(TAP::Parser) = 3.38 \ +Provides: perl(TAP::Parser::Aggregator) = 3.38 \ +Provides: perl(TAP::Parser::Grammar) = 3.38 \ +Provides: perl(TAP::Parser::Iterator) = 3.38 \ +Provides: perl(TAP::Parser::Iterator::Array) = 3.38 \ +Provides: perl(TAP::Parser::Iterator::Process) = 3.38 \ +Provides: perl(TAP::Parser::Iterator::Stream) = 3.38 \ +Provides: perl(TAP::Parser::IteratorFactory) = 3.38 \ +Provides: perl(TAP::Parser::Multiplexer) = 3.38 \ +Provides: perl(TAP::Parser::Result) = 3.38 \ +Provides: perl(TAP::Parser::Result::Bailout) = 3.38 \ +Provides: perl(TAP::Parser::Result::Comment) = 3.38 \ +Provides: perl(TAP::Parser::Result::Plan) = 3.38 \ +Provides: perl(TAP::Parser::Result::Pragma) = 3.38 \ +Provides: perl(TAP::Parser::Result::Test) = 3.38 \ +Provides: perl(TAP::Parser::Result::Unknown) = 3.38 \ +Provides: perl(TAP::Parser::Result::Version) = 3.38 \ +Provides: perl(TAP::Parser::Result::YAML) = 3.38 \ +Provides: perl(TAP::Parser::ResultFactory) = 3.38 \ +Provides: perl(TAP::Parser::Scheduler) = 3.38 \ +Provides: perl(TAP::Parser::Scheduler::Job) = 3.38 \ +Provides: perl(TAP::Parser::Scheduler::Spinner) = 3.38 \ +Provides: perl(TAP::Parser::Source) = 3.38 \ +Provides: perl(TAP::Parser::SourceHandler) = 3.38 \ +Provides: perl(TAP::Parser::SourceHandler::Executable) = 3.38 \ +Provides: perl(TAP::Parser::SourceHandler::File) = 3.38 \ +Provides: perl(TAP::Parser::SourceHandler::Handle) = 3.38 \ +Provides: perl(TAP::Parser::SourceHandler::Perl) = 3.38 \ +Provides: perl(TAP::Parser::SourceHandler::RawTAP) = 3.38 \ +Provides: perl(TAP::Parser::YAMLish::Reader) = 3.38 \ +Provides: perl(TAP::Parser::YAMLish::Writer) = 3.38 \ +Provides: perl(Test::Harness) = 3.38 \ %{nil} %global gendep_perl_Test_Simple \ Requires: perl(:VERSION) >= 5.5.0 \ @@ -1631,12 +1629,40 @@ Requires: perl(:VERSION) >= 5.6.0 \ Requires: perl(Carp) \ Requires: perl(Config) \ Requires: perl(Exporter) \ +Requires: perl(File::Spec) \ +Requires: perl(File::Temp) \ Requires: perl(IO::Handle) \ +Requires: perl(POSIX) \ +Requires: perl(PerlIO) \ +Requires: perl(Scalar::Util) \ +Requires: perl(Storable) \ Requires: perl(Symbol) \ -Requires: perl(Test::Builder) >= 0.99 \ -Requires: perl(Test::Builder) >= 1.00 \ -Requires: perl(Test::Builder::Module) >= 0.99 \ +Requires: perl(Test2::API) \ +Requires: perl(Test2::API::Context) \ +Requires: perl(Test2::API::Instance) \ +Requires: perl(Test2::API::Stack) \ +Requires: perl(Test2::Event::Bail) \ +Requires: perl(Test2::Event::Diag) \ +Requires: perl(Test2::Event::Exception) \ +Requires: perl(Test2::Event::Note) \ +Requires: perl(Test2::Event::Ok) \ +Requires: perl(Test2::Event::Plan) \ +Requires: perl(Test2::Event::Skip) \ +Requires: perl(Test2::Event::Subtest) \ +Requires: perl(Test2::Event::Waiting) \ +Requires: perl(Test2::Hub) \ +Requires: perl(Test2::Hub::Interceptor) \ +Requires: perl(Test2::Hub::Interceptor::Terminator) \ +Requires: perl(Test2::Hub::Subtest) \ +Requires: perl(Test2::Util) \ +Requires: perl(Test2::Util::ExternalMeta) \ +Requires: perl(Test2::Util::HashBase) \ +Requires: perl(Test2::Util::Trace) \ +Requires: perl(Test::Builder) \ +Requires: perl(Test::Builder::Formatter) \ +Requires: perl(Test::Builder::Module) \ Requires: perl(Test::Builder::Tester) \ +Requires: perl(Test::Builder::TodoDiag) \ Requires: perl(Test::More) \ Requires: perl(Test::Tester::Capture) \ Requires: perl(Test::Tester::CaptureRunner) \ @@ -1644,20 +1670,56 @@ Requires: perl(Test::Tester::Delegate) \ Requires: perl(strict) \ Requires: perl(vars) \ Requires: perl(warnings) \ -Provides: perl(Test::Builder) = 1.001014 \ +Provides: perl(Test2) = 1.302073 \ +Provides: perl(Test2::API) = 1.302073 \ +Provides: perl(Test2::API::Breakage) = 1.302073 \ +Provides: perl(Test2::API::Context) = 1.302073 \ +Provides: perl(Test2::API::Instance) = 1.302073 \ +Provides: perl(Test2::API::Stack) = 1.302073 \ +Provides: perl(Test2::Event) = 1.302073 \ +Provides: perl(Test2::Event::Bail) = 1.302073 \ +Provides: perl(Test2::Event::Diag) = 1.302073 \ +Provides: perl(Test2::Event::Encoding) = 1.302073 \ +Provides: perl(Test2::Event::Exception) = 1.302073 \ +Provides: perl(Test2::Event::Generic) = 1.302073 \ +Provides: perl(Test2::Event::Info) = 1.302073 \ +Provides: perl(Test2::Event::Note) = 1.302073 \ +Provides: perl(Test2::Event::Ok) = 1.302073 \ +Provides: perl(Test2::Event::Plan) = 1.302073 \ +Provides: perl(Test2::Event::Skip) = 1.302073 \ +Provides: perl(Test2::Event::Subtest) = 1.302073 \ +Provides: perl(Test2::Event::TAP::Version) = 1.302073 \ +Provides: perl(Test2::Event::Waiting) = 1.302073 \ +Provides: perl(Test2::Formatter) = 1.302073 \ +Provides: perl(Test2::Formatter::TAP) = 1.302073 \ +Provides: perl(Test2::Hub) = 1.302073 \ +Provides: perl(Test2::Hub::Interceptor) = 1.302073 \ +Provides: perl(Test2::Hub::Interceptor::Terminator) = 1.302073 \ +Provides: perl(Test2::Hub::Subtest) = 1.302073 \ +Provides: perl(Test2::IPC) = 1.302073 \ +Provides: perl(Test2::IPC::Driver) = 1.302073 \ +Provides: perl(Test2::IPC::Driver::Files) = 1.302073 \ +Provides: perl(Test2::Tools::Tiny) = 1.302073 \ +Provides: perl(Test2::Util) = 1.302073 \ +Provides: perl(Test2::Util::ExternalMeta) = 1.302073 \ +Provides: perl(Test2::Util::HashBase) = 0.002 \ +Provides: perl(Test2::Util::Trace) = 1.302073 \ +Provides: perl(Test::Builder) = 1.302073 \ +Provides: perl(Test::Builder::Formatter) = 1.302073 \ Provides: perl(Test::Builder::IO::Scalar) = 2.113 \ -Provides: perl(Test::Builder::Module) = 1.001014 \ -Provides: perl(Test::Builder::Tester) = 1.28 \ -Provides: perl(Test::Builder::Tester::Color) = 1.290001 \ +Provides: perl(Test::Builder::Module) = 1.302073 \ +Provides: perl(Test::Builder::Tester) = 1.302073 \ +Provides: perl(Test::Builder::Tester::Color) = 1.302073 \ Provides: perl(Test::Builder::Tester::Tie) \ -Provides: perl(Test::More) = 1.001014 \ -Provides: perl(Test::Simple) = 1.001014 \ -Provides: perl(Test::Tester) = 0.114 \ -Provides: perl(Test::Tester::Capture) \ -Provides: perl(Test::Tester::CaptureRunner) \ -Provides: perl(Test::Tester::Delegate) \ -Provides: perl(Test::use::ok) = 0.16 \ -Provides: perl(ok) = 0.16 \ +Provides: perl(Test::Builder::TodoDiag) = 1.302073 \ +Provides: perl(Test::More) = 1.302073 \ +Provides: perl(Test::Simple) = 1.302073 \ +Provides: perl(Test::Tester) = 1.302073 \ +Provides: perl(Test::Tester::Capture) = 1.302073 \ +Provides: perl(Test::Tester::CaptureRunner) = 1.302073 \ +Provides: perl(Test::Tester::Delegate) = 1.302073 \ +Provides: perl(Test::use::ok) = 1.302073 \ +Provides: perl(ok) = 1.302073 \ %{nil} %global gendep_perl_Text_Balanced \ Requires: perl(:VERSION) >= 5.5.0 \ @@ -1693,22 +1755,21 @@ Requires: perl(Scalar::Util) >= 1.10 \ Requires: perl(strict) \ Requires: perl(threads::shared) >= 1.21 \ Requires: perl(warnings) \ -Provides: perl(Thread::Queue) = 3.09 \ +Provides: perl(Thread::Queue) = 3.12 \ %{nil} %global gendep_perl_Time_HiRes \ Requires: perl(DynaLoader) \ Requires: perl(Exporter) \ Requires: perl(strict) \ -Provides: perl(Time::HiRes) = 1.9733 \ +Provides: perl(Time::HiRes) = 1.9741 \ %{nil} %global gendep_perl_Time_Local \ Requires: perl(Carp) \ -Requires: perl(Config) \ Requires: perl(Exporter) \ Requires: perl(constant) \ +Requires: perl(parent) \ Requires: perl(strict) \ -Requires: perl(vars) \ -Provides: perl(Time::Local) = 1.2300 \ +Provides: perl(Time::Local) = 1.25 \ %{nil} %global gendep_perl_Time_Piece \ Requires: perl(Carp) \ @@ -1733,15 +1794,15 @@ Requires: perl(base) \ Requires: perl(constant) \ Requires: perl(strict) \ Requires: perl(warnings) \ -Provides: perl(Unicode::Collate) = 1.14 \ -Provides: perl(Unicode::Collate::CJK::Big5) = 1.14 \ -Provides: perl(Unicode::Collate::CJK::GB2312) = 1.14 \ -Provides: perl(Unicode::Collate::CJK::JISX0208) = 1.14 \ -Provides: perl(Unicode::Collate::CJK::Korean) = 1.14 \ -Provides: perl(Unicode::Collate::CJK::Pinyin) = 1.14 \ -Provides: perl(Unicode::Collate::CJK::Stroke) = 1.14 \ -Provides: perl(Unicode::Collate::CJK::Zhuyin) = 1.14 \ -Provides: perl(Unicode::Collate::Locale) = 1.14 \ +Provides: perl(Unicode::Collate) = 1.19 \ +Provides: perl(Unicode::Collate::CJK::Big5) = 1.19 \ +Provides: perl(Unicode::Collate::CJK::GB2312) = 1.19 \ +Provides: perl(Unicode::Collate::CJK::JISX0208) = 1.19 \ +Provides: perl(Unicode::Collate::CJK::Korean) = 1.19 \ +Provides: perl(Unicode::Collate::CJK::Pinyin) = 1.19 \ +Provides: perl(Unicode::Collate::CJK::Stroke) = 1.19 \ +Provides: perl(Unicode::Collate::CJK::Zhuyin) = 1.19 \ +Provides: perl(Unicode::Collate::Locale) = 1.19 \ %{nil} %global gendep_perl_Unicode_Normalize \ Requires: perl(:VERSION) >= 5.6.0 \ @@ -1790,11 +1851,11 @@ Requires: perl(constant) \ Requires: perl(overload) \ Requires: perl(strict) \ Requires: perl(warnings) \ -Provides: perl(Math::BigFloat::Trace) = 0.42 \ -Provides: perl(Math::BigInt::Trace) = 0.42 \ -Provides: perl(bigint) = 0.42 \ -Provides: perl(bignum) = 0.42 \ -Provides: perl(bigrat) = 0.42 \ +Provides: perl(Math::BigFloat::Trace) = 0.47 \ +Provides: perl(Math::BigInt::Trace) = 0.47 \ +Provides: perl(bigint) = 0.47 \ +Provides: perl(bignum) = 0.47 \ +Provides: perl(bigrat) = 0.47 \ %{nil} %global gendep_perl_constant \ Requires: perl(:VERSION) >= 5.8.0 \ @@ -1824,7 +1885,7 @@ Requires: perl(Encode) \ Requires: perl(constant) \ Requires: perl(strict) \ Requires: perl(warnings) \ -Provides: perl(encoding) = 2.17 \ +Provides: perl(encoding) = 2.19 \ %{nil} %global gendep_perl_experimental \ Requires: perl(Carp) \ @@ -1853,24 +1914,24 @@ Requires: perl(Time::Local) \ Requires: perl(constant) \ Requires: perl(strict) \ Requires: perl(warnings) \ -Provides: perl(Net::Cmd) = 3.08 \ -Provides: perl(Net::Config) = 3.08 \ -Provides: perl(Net::Domain) = 3.08 \ -Provides: perl(Net::FTP) = 3.08 \ -Provides: perl(Net::FTP::A) = 3.08 \ -Provides: perl(Net::FTP::E) = 3.08 \ -Provides: perl(Net::FTP::I) = 3.08 \ -Provides: perl(Net::FTP::L) = 3.08 \ +Provides: perl(Net::Cmd) = 3.10 \ +Provides: perl(Net::Config) = 3.10 \ +Provides: perl(Net::Domain) = 3.10 \ +Provides: perl(Net::FTP) = 3.10 \ +Provides: perl(Net::FTP::A) = 3.10 \ +Provides: perl(Net::FTP::E) = 3.10 \ +Provides: perl(Net::FTP::I) = 3.10 \ +Provides: perl(Net::FTP::L) = 3.10 \ Provides: perl(Net::FTP::_SSL_SingleSessionCache) \ -Provides: perl(Net::FTP::dataconn) = 3.08 \ -Provides: perl(Net::NNTP) = 3.08 \ +Provides: perl(Net::FTP::dataconn) = 3.10 \ +Provides: perl(Net::NNTP) = 3.10 \ Provides: perl(Net::NNTP::_SSL) \ -Provides: perl(Net::Netrc) = 3.08 \ -Provides: perl(Net::POP3) = 3.08 \ +Provides: perl(Net::Netrc) = 3.10 \ +Provides: perl(Net::POP3) = 3.10 \ Provides: perl(Net::POP3::_SSL) \ -Provides: perl(Net::SMTP) = 3.08 \ +Provides: perl(Net::SMTP) = 3.10 \ Provides: perl(Net::SMTP::_SSL) \ -Provides: perl(Net::Time) = 3.08 \ +Provides: perl(Net::Time) = 3.10 \ %{nil} %global gendep_perl_libnetcfg \ Requires: perl(ExtUtils::MakeMaker) \ @@ -1885,36 +1946,38 @@ Requires: perl(integer) \ Requires: perl(strict) \ Requires: perl(warnings) \ Provides: perl(:MODULE_COMPAT_5.24.0) \ -Provides: perl(:VERSION) = 5.24.0 \ +Provides: perl(:MODULE_COMPAT_5.24.1) \ +Provides: perl(:MODULE_COMPAT_5.26.0) \ +Provides: perl(:VERSION) = 5.26.0 \ Provides: perl(:WITH_ITHREADS) \ Provides: perl(:WITH_LARGEFILES) \ Provides: perl(:WITH_PERLIO) \ Provides: perl(:WITH_THREADS) \ -Provides: perl(XSLoader) = 0.22 \ +Provides: perl(XSLoader) = 0.27 \ Provides: perl(integer) = 1.01 \ -Provides: perl(re) = 0.32 \ +Provides: perl(re) = 0.34 \ Provides: perl(strict) = 1.11 \ Provides: perl(unicore::Name) \ Provides: perl(utf8) = 1.19 \ Provides: perl(utf8_heavy.pl) \ -Provides: perl(warnings) = 1.36 \ +Provides: perl(warnings) = 1.37 \ %{nil} %global gendep_perl_macros \ %{nil} %global gendep_perl_open \ Requires: perl(:VERSION) >= 5.8.1 \ Requires: perl(warnings) \ -Provides: perl(open) = 1.10 \ +Provides: perl(open) = 1.11 \ %{nil} %global gendep_perl_parent \ Requires: perl(strict) \ Requires: perl(vars) \ -Provides: perl(parent) = 0.234 \ +Provides: perl(parent) = 0.236 \ %{nil} %global gendep_perl_perlfaq \ Requires: perl(strict) \ Requires: perl(warnings) \ -Provides: perl(perlfaq) = 5.021010 \ +Provides: perl(perlfaq) = 5.021011 \ %{nil} %global gendep_perl_podlators \ Requires: perl(:VERSION) >= 5.6.0 \ @@ -1933,12 +1996,12 @@ Requires: perl(strict) \ Requires: perl(subs) \ Requires: perl(vars) \ Requires: perl(warnings) \ -Provides: perl(Pod::Man) = 4.07 \ -Provides: perl(Pod::ParseLink) = 4.07 \ -Provides: perl(Pod::Text) = 4.07 \ -Provides: perl(Pod::Text::Color) = 4.07 \ -Provides: perl(Pod::Text::Overstrike) = 4.07 \ -Provides: perl(Pod::Text::Termcap) = 4.07 \ +Provides: perl(Pod::Man) = 4.09 \ +Provides: perl(Pod::ParseLink) = 4.09 \ +Provides: perl(Pod::Text) = 4.09 \ +Provides: perl(Pod::Text::Color) = 4.09 \ +Provides: perl(Pod::Text::Overstrike) = 4.09 \ +Provides: perl(Pod::Text::Termcap) = 4.09 \ %{nil} %global gendep_perl_tests \ %{nil} @@ -1949,14 +2012,14 @@ Requires: perl(XSLoader) \ Requires: perl(overload) \ Requires: perl(strict) \ Requires: perl(warnings) \ -Provides: perl(threads) = 2.07 \ +Provides: perl(threads) = 2.15 \ %{nil} %global gendep_perl_threads_shared \ Requires: perl(:VERSION) >= 5.8.0 \ Requires: perl(Scalar::Util) \ Requires: perl(strict) \ Requires: perl(warnings) \ -Provides: perl(threads::shared) = 1.51 \ +Provides: perl(threads::shared) = 1.56 \ %{nil} %global gendep_perl_utils \ Requires: perl(:VERSION) >= 5.9.1 \ @@ -1965,7 +2028,6 @@ Requires: perl(Config) \ Requires: perl(File::Basename) \ Requires: perl(File::Path) \ Requires: perl(File::Spec) \ -Requires: perl(File::Temp) \ Requires: perl(Getopt::Std) \ Requires: perl(Text::Tabs) \ Requires: perl(re) \ @@ -1979,6 +2041,6 @@ Requires: perl(strict) \ Requires: perl(vars) \ Requires: perl(version::regex) \ Requires: perl(warnings::register) \ -Provides: perl(version) = 0.9916 \ -Provides: perl(version::regex) = 0.9916 \ +Provides: perl(version) = 0.9917 \ +Provides: perl(version::regex) = 0.9917 \ %{nil} diff --git a/perl-5.16.3-Link-XS-modules-to-libperl.so-with-EU-MM-on-Linux.patch b/perl-5.16.3-Link-XS-modules-to-libperl.so-with-EU-MM-on-Linux.patch index 26159bc..e8ae658 100644 --- a/perl-5.16.3-Link-XS-modules-to-libperl.so-with-EU-MM-on-Linux.patch +++ b/perl-5.16.3-Link-XS-modules-to-libperl.so-with-EU-MM-on-Linux.patch @@ -27,14 +27,14 @@ index a8b172f..a3fbce2 100644 $Is{Solaris} = $^O eq 'solaris'; $Is{SunOS} = $Is{SunOS4} || $Is{Solaris}; @@ -932,7 +933,7 @@ $(INST_DYNAMIC): $(OBJECT) $(MYEXTLIB) $(BOOTSTRAP) $(INST_ARCHAUTODIR)$(DFSEP). + push(@m," \$(RM_F) \$\@\n"); my $libs = '$(LDLOADLIBS)'; - - if (($Is{NetBSD} || $Is{Interix} || $Is{Android}) && $Config{'useshrplib'} eq 'true') { + if (($Is{Linux} || $Is{NetBSD} || $Is{Interix} || $Is{Android}) && $Config{'useshrplib'} eq 'true') { - # Use nothing on static perl platforms, and to the flags needed - # to link against the shared libperl library on shared perl - # platforms. We peek at lddlflags to see if we need -Wl,-R + # Use nothing on static perl platforms, and to the flags needed + # to link against the shared libperl library on shared perl + # platforms. We peek at lddlflags to see if we need -Wl,-R @@ -941,6 +942,11 @@ $(INST_DYNAMIC): $(OBJECT) $(MYEXTLIB) $(BOOTSTRAP) $(INST_ARCHAUTODIR)$(DFSEP). # The Android linker will not recognize symbols from # libperl unless the module explicitly depends on it. diff --git a/perl-5.22.0-Revert-const-the-core-magic-vtables.patch b/perl-5.22.0-Revert-const-the-core-magic-vtables.patch deleted file mode 100644 index a769187..0000000 --- a/perl-5.22.0-Revert-const-the-core-magic-vtables.patch +++ /dev/null @@ -1,44 +0,0 @@ -From 4ccd57ed119eae3847df1ec241daa509f3b86ef3 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= -Date: Thu, 18 Jun 2015 13:19:49 +0200 -Subject: [PATCH] Revert "const the core magic vtables" -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -This reverts commit c910fead7893fe9700031ee59de6b904260b5d69. - -It's necessary for Coro-6.43. This patch will be removed once Coro -will be fixed or in a reasonable time if Coro become unamaintained. - - - - -Signed-off-by: Petr Písař ---- - perl.h | 9 ++++++++- - 1 file changed, 8 insertions(+), 1 deletion(-) - -diff --git a/perl.h b/perl.h -index dcb184b..9bce052 100644 ---- a/perl.h -+++ b/perl.h -@@ -5583,7 +5583,14 @@ EXTCONST runops_proc_t PL_runops_std - EXTCONST runops_proc_t PL_runops_dbg - INIT(Perl_runops_debug); - --#define EXT_MGVTBL EXTCONST MGVTBL -+/* PERL_GLOBAL_STRUCT_PRIVATE wants to keep global data like the -+ * magic vtables const, but this is incompatible with SWIG which -+ * does want to modify the vtables. */ -+#ifdef PERL_GLOBAL_STRUCT_PRIVATE -+# define EXT_MGVTBL EXTCONST MGVTBL -+#else -+# define EXT_MGVTBL EXT MGVTBL -+#endif - - #define PERL_MAGIC_READONLY_ACCEPTABLE 0x40 - #define PERL_MAGIC_VALUE_MAGIC 0x80 --- -2.1.0 - diff --git a/perl-5.22.1-Provide-ExtUtils-MM-methods-as-standalone-ExtUtils-M.patch b/perl-5.22.1-Provide-ExtUtils-MM-methods-as-standalone-ExtUtils-M.patch index 0cfc4c5..e4903ef 100644 --- a/perl-5.22.1-Provide-ExtUtils-MM-methods-as-standalone-ExtUtils-M.patch +++ b/perl-5.22.1-Provide-ExtUtils-MM-methods-as-standalone-ExtUtils-M.patch @@ -24,7 +24,7 @@ index 6af238c..d4f0c56 100644 --- a/MANIFEST +++ b/MANIFEST @@ -1045,6 +1045,7 @@ cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_OS2.pm MakeMaker methods for OS/2 - cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM.pm MakeMaker adaptor class + cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_OS2.pm MakeMaker methods for OS/2 cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_QNX.pm MakeMaker methods for QNX cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm MakeMaker methods for Unix +cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM/Utils.pm Independed MM methods diff --git a/perl-5.24.0-Fix-a-memory-leak-in-strict-regex-posix-classes.patch b/perl-5.24.0-Fix-a-memory-leak-in-strict-regex-posix-classes.patch deleted file mode 100644 index 5420b2e..0000000 --- a/perl-5.24.0-Fix-a-memory-leak-in-strict-regex-posix-classes.patch +++ /dev/null @@ -1,150 +0,0 @@ -From 4039933788b0393590f48aef41e9de5462fcc1e9 Mon Sep 17 00:00:00 2001 -From: Yves Orton -Date: Wed, 8 Jun 2016 18:42:30 +0200 -Subject: [PATCH] Fix a memory leak in strict regex posix classes -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -This is a perl-5.24.0 port of these four upstream patches fixing RT#128313: - -commit ee072c898947f5fee316f1381b29ad692addcf05 -Author: Yves Orton -Date: Wed Jun 8 18:42:30 2016 +0200 - - [perl #128313] Fix leak in perl 5.24 with strict and regex posix char classes - - This patch is a refinement of one written by Dan Collins. - - Any thanks for this patch should go to him. - -commit 7eec73eb790f7c4982edfc28c17c011e8a072490 -Author: Yves Orton -Date: Fri Jun 10 12:20:20 2016 +0200 - - move warning text to RExC_state (via RExC_warn_text) - - This way we reuse the same AV each time, and avoid various refcount bookkeeping issues, all at a relatively modest cost (IMO) - -commit 0bf54b1ecaec8f6d80845d6cb77d62f8c9f4c415 -Author: Yves Orton -Date: Fri Jun 10 13:34:37 2016 +0200 - - fixup, guard av_top_index() for null RExC_warn_text - -commit 222c4b0094b4145d06cb164bedd2a66a3141203b -Author: Dan Collins -Date: Wed Jun 8 16:26:07 2016 -0400 - - [perl #128313] test for memory leak in POSIX classes - -Signed-off-by: Petr Písař ---- - regcomp.c | 21 ++++++++++----------- - t/op/svleak.t | 12 +++++++++++- - 2 files changed, 21 insertions(+), 12 deletions(-) - -diff --git a/regcomp.c b/regcomp.c -index be6cb96..f29892c 100644 ---- a/regcomp.c -+++ b/regcomp.c -@@ -199,6 +199,7 @@ struct RExC_state_t { - scan_frame *frame_head; - scan_frame *frame_last; - U32 frame_count; -+ AV *warn_text; - #ifdef ADD_TO_REGEXEC - char *starttry; /* -Dr: where regtry was called. */ - #define RExC_starttry (pRExC_state->starttry) -@@ -288,6 +289,7 @@ struct RExC_state_t { - #define RExC_frame_last (pRExC_state->frame_last) - #define RExC_frame_count (pRExC_state->frame_count) - #define RExC_strict (pRExC_state->strict) -+#define RExC_warn_text (pRExC_state->warn_text) - - /* Heuristic check on the complexity of the pattern: if TOO_NAUGHTY, we set - * a flag to disable back-off on the fixed/floating substrings - if it's -@@ -6767,6 +6769,7 @@ Perl_re_op_compile(pTHX_ SV ** const patternp, int pat_count, - #endif - } - -+ pRExC_state->warn_text = NULL; - pRExC_state->code_blocks = NULL; - pRExC_state->num_code_blocks = 0; - -@@ -13704,8 +13707,8 @@ S_populate_ANYOF_from_invlist(pTHX_ regnode *node, SV** invlist_ptr) - * routine. q.v. */ - #define ADD_POSIX_WARNING(p, text) STMT_START { \ - if (posix_warnings) { \ -- if (! warn_text) warn_text = newAV(); \ -- av_push(warn_text, Perl_newSVpvf(aTHX_ \ -+ if (! RExC_warn_text ) RExC_warn_text = (AV *) sv_2mortal((SV *) newAV()); \ -+ av_push(RExC_warn_text, Perl_newSVpvf(aTHX_ \ - WARNING_PREFIX \ - text \ - REPORT_LOCATION, \ -@@ -13836,7 +13839,6 @@ S_handle_possible_posix(pTHX_ RExC_state_t *pRExC_state, - bool has_opening_colon = FALSE; - int class_number = OOB_NAMEDCLASS; /* Out-of-bounds until find - valid class */ -- AV* warn_text = NULL; /* any warning messages */ - const char * possible_end = NULL; /* used for a 2nd parse pass */ - const char* name_start; /* ptr to class name first char */ - -@@ -13852,6 +13854,9 @@ S_handle_possible_posix(pTHX_ RExC_state_t *pRExC_state, - - PERL_ARGS_ASSERT_HANDLE_POSSIBLE_POSIX; - -+ if (posix_warnings && RExC_warn_text) -+ av_clear(RExC_warn_text); -+ - if (p >= e) { - return NOT_MEANT_TO_BE_A_POSIX_CLASS; - } -@@ -14469,14 +14474,8 @@ S_handle_possible_posix(pTHX_ RExC_state_t *pRExC_state, - ADD_POSIX_WARNING(p, "there is no terminating ']'"); - } - -- if (warn_text) { -- if (posix_warnings) { -- /* mortalize to avoid a leak with FATAL warnings */ -- *posix_warnings = (AV *) sv_2mortal((SV *) warn_text); -- } -- else { -- SvREFCNT_dec_NN(warn_text); -- } -+ if (posix_warnings && RExC_warn_text && av_top_index(RExC_warn_text) > -1) { -+ *posix_warnings = RExC_warn_text; - } - } - else if (class_number != OOB_NAMEDCLASS) { -diff --git a/t/op/svleak.t b/t/op/svleak.t -index 595bf3e..c18f498 100644 ---- a/t/op/svleak.t -+++ b/t/op/svleak.t -@@ -15,7 +15,7 @@ BEGIN { - - use Config; - --plan tests => 131; -+plan tests => 132; - - # run some code N times. If the number of SVs at the end of loop N is - # greater than (N-1)*delta at the end of loop 1, we've got a leak -@@ -537,3 +537,13 @@ EOF - - ::leak(5, 0, \&f, q{goto shouldn't leak @_}); - } -+ -+# [perl #128313] POSIX warnings shouldn't leak -+{ -+ no warnings 'experimental'; -+ use re 'strict'; -+ my $a = 'aaa'; -+ my $b = 'aa'; -+ sub f { $a =~ /[^.]+$b/; } -+ ::leak(2, 0, \&f, q{use re 'strict' shouldn't leak warning strings}); -+} --- -2.5.5 - diff --git a/perl-5.24.0-PATCH-perl-128734-tr-N-.-failing-for-128-255.patch b/perl-5.24.0-PATCH-perl-128734-tr-N-.-failing-for-128-255.patch deleted file mode 100644 index a3c6bb2..0000000 --- a/perl-5.24.0-PATCH-perl-128734-tr-N-.-failing-for-128-255.patch +++ /dev/null @@ -1,62 +0,0 @@ -From 9b3f53bd7af9574dcc38432cb191b90e9f957362 Mon Sep 17 00:00:00 2001 -From: Karl Williamson -Date: Wed, 27 Jul 2016 12:44:42 -0600 -Subject: [PATCH] PATCH: [perl #128734] tr/\N{...}/ failing for 128-255 -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -The upper latin1 characters when expressed as \N{U+...} were failing. -This was due to trying to convert them to UTF-8 when the result isn't -UTF-8. I added a test for \N{name} as well, though these were not -affected by this regression. - -Signed-off-by: Petr Písař ---- - t/op/tr.t | 11 ++++++++++- - toke.c | 2 +- - 2 files changed, 11 insertions(+), 2 deletions(-) - -diff --git a/t/op/tr.t b/t/op/tr.t -index 6783dad..d40187f 100644 ---- a/t/op/tr.t -+++ b/t/op/tr.t -@@ -9,7 +9,7 @@ BEGIN { - set_up_inc('../lib'); - } - --plan tests => 164; -+plan tests => 166; - - # Test this first before we extend the stack with other operations. - # This caused an asan failure due to a bad write past the end of the stack. -@@ -643,4 +643,13 @@ for ("", nullrocow) { - ok(1, "tr///d on glob does not assert"); - } - -+{ # [perl #128734 -+ my $string = "\x{00e0}"; -+ $string =~ tr/\N{U+00e0}/A/; -+ is($string, "A", 'tr// of \N{U+...} works for upper-Latin1'); -+ $string = "\x{00e1}"; -+ $string =~ tr/\N{LATIN SMALL LETTER A WITH ACUTE}/A/; -+ is($string, "A", 'tr// of \N{name} works for upper-Latin1'); -+} -+ - 1; -diff --git a/toke.c b/toke.c -index 59a0749..52e658f 100644 ---- a/toke.c -+++ b/toke.c -@@ -3540,7 +3540,7 @@ S_scan_const(pTHX_ char *start) - } - - /* Add the (Unicode) code point to the output. */ -- if (OFFUNI_IS_INVARIANT(uv)) { -+ if (! has_utf8 || OFFUNI_IS_INVARIANT(uv)) { - *d++ = (char) LATIN1_TO_NATIVE(uv); - } - else { --- -2.5.5 - diff --git a/perl-5.24.0-Regression-test-for-RT-129196.patch b/perl-5.24.0-Regression-test-for-RT-129196.patch deleted file mode 100644 index 23beb36..0000000 --- a/perl-5.24.0-Regression-test-for-RT-129196.patch +++ /dev/null @@ -1,45 +0,0 @@ -From a51d828a6d402f30f37707c714de218f6b47dbd8 Mon Sep 17 00:00:00 2001 -From: Dan Collins -Date: Sun, 4 Sep 2016 14:43:41 -0400 -Subject: [PATCH] Regression test for RT #129196 -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Ported to 5.24.0: - -commit a6128716d2cc20147851e0a37768376647bd3242 -Author: Dan Collins -Date: Sun Sep 4 14:43:41 2016 -0400 - - Regression test for RT #129196 - -Signed-off-by: Petr Písař ---- - t/op/evalbytes.t | 6 +++++- - 1 file changed, 5 insertions(+), 1 deletion(-) - -diff --git a/t/op/evalbytes.t b/t/op/evalbytes.t -index cca7c04..5e2af76 100644 ---- a/t/op/evalbytes.t -+++ b/t/op/evalbytes.t -@@ -6,7 +6,7 @@ BEGIN { - require './test.pl'; require './charset_tools.pl'; - } - --plan(tests => 8); -+plan(tests => 9); - - { - local $SIG{__WARN__} = sub {}; -@@ -33,3 +33,7 @@ chop($upcode = "use utf8; $U_100" . chr 256); - is evalbytes $upcode, chr 256, 'use utf8 within evalbytes on utf8 string'; - eval { evalbytes chr 256 }; - like $@, qr/Wide character/, 'evalbytes croaks on non-bytes'; -+ -+eval 'evalbytes S'; -+ok 1, '[RT #129196] evalbytes S should not segfault'; -+ --- -2.7.4 - diff --git a/perl-5.24.0-assertion-failure-in-.-or-0-x-0.patch b/perl-5.24.0-assertion-failure-in-.-or-0-x-0.patch deleted file mode 100644 index ee37f0b..0000000 --- a/perl-5.24.0-assertion-failure-in-.-or-0-x-0.patch +++ /dev/null @@ -1,73 +0,0 @@ -From 702cf95bcb627f2b3b44fad409df7f0fd517af60 Mon Sep 17 00:00:00 2001 -From: David Mitchell -Date: Mon, 5 Dec 2016 14:54:44 +0000 -Subject: [PATCH] assertion failure in ... or ((0) x 0)) -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Petr Pisar: Ported to 5.24.0: - -commit 5aa240eab7dbaa91f98c2fee1f04b6c0b5a9b9e3 -Author: David Mitchell -Date: Mon Dec 5 14:54:44 2016 +0000 - - assertion failure in ... or ((0) x 0)) - - [perl #130247] Perl_rpeep(OP *): Assertion `oldop' failed - - the 'x 0' optimising code in rpeep didn't expect the repeat expression - to occur on the op_other side of an op_next chain. - -Signed-off-by: Petr Písař ---- - op.c | 4 ++-- - t/op/repeat.t | 11 ++++++++++- - 2 files changed, 12 insertions(+), 3 deletions(-) - -diff --git a/op.c b/op.c -index d7b900e..018d90c 100644 ---- a/op.c -+++ b/op.c -@@ -13573,10 +13573,10 @@ Perl_rpeep(pTHX_ OP *o) - && kid->op_next->op_type == OP_REPEAT - && kid->op_next->op_private & OPpREPEAT_DOLIST - && (kid->op_next->op_flags & OPf_WANT) == OPf_WANT_LIST -- && SvIOK(kSVOP_sv) && SvIVX(kSVOP_sv) == 0) -+ && SvIOK(kSVOP_sv) && SvIVX(kSVOP_sv) == 0 -+ && oldop) - { - o = kid->op_next; /* repeat */ -- assert(oldop); - oldop->op_next = o; - op_free(cBINOPo->op_first); - op_free(cBINOPo->op_last ); -diff --git a/t/op/repeat.t b/t/op/repeat.t -index bee7dac..c933475 100644 ---- a/t/op/repeat.t -+++ b/t/op/repeat.t -@@ -6,7 +6,7 @@ BEGIN { - } - - require './test.pl'; --plan(tests => 48); -+plan(tests => 49); - - # compile time - -@@ -183,3 +183,12 @@ fresh_perl_like( - { }, - '(1) x ~1', - ); -+ -+# [perl #130247] Perl_rpeep(OP *): Assertion `oldop' failed -+# -+# the 'x 0' optimising code in rpeep didn't expect the repeat expression -+# to occur on the op_other side of an op_next chain. -+# This used to give an assertion failure -+ -+eval q{() = (() or ((0) x 0)); 1}; -+is($@, "", "RT #130247"); --- -2.7.4 - diff --git a/perl-5.24.0-clean-up-gv_fetchmethod_pvn_flags-introduce-name_end.patch b/perl-5.24.0-clean-up-gv_fetchmethod_pvn_flags-introduce-name_end.patch deleted file mode 100644 index aaaa801..0000000 --- a/perl-5.24.0-clean-up-gv_fetchmethod_pvn_flags-introduce-name_end.patch +++ /dev/null @@ -1,94 +0,0 @@ -From af04cb4d2503c5c75d2229e232b8a0bd5c210084 Mon Sep 17 00:00:00 2001 -From: Yves Orton -Date: Tue, 13 Sep 2016 23:06:07 +0200 -Subject: [PATCH] clean up gv_fetchmethod_pvn_flags: introduce name_end -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Ported to 5.24.0: - -commit 65308f87d02a1900e59f0002fa94c855d4d4c5df -Author: Yves Orton -Date: Tue Sep 13 23:06:07 2016 +0200 - - clean up gv_fetchmethod_pvn_flags: introduce name_end - - nend is used for too many things, this replaces various - uses of nend with name_end, which is constant. - - this is a first step to fixing [perl #129267], which shouldnt - change any behavior - -Signed-off-by: Petr Písař ---- - gv.c | 14 ++++++++------ - 1 file changed, 8 insertions(+), 6 deletions(-) - -diff --git a/gv.c b/gv.c -index 28396de..d738bf0 100644 ---- a/gv.c -+++ b/gv.c -@@ -1014,6 +1014,8 @@ Perl_gv_fetchmethod_pv_flags(pTHX_ HV *stash, const char *name, U32 flags) - GV * - Perl_gv_fetchmethod_pvn_flags(pTHX_ HV *stash, const char *name, const STRLEN len, U32 flags) - { -+ const char * const origname = name; -+ const char * const name_end = name + len; - const char *nend; - const char *nsplit = NULL; - GV* gv; -@@ -1034,7 +1036,7 @@ Perl_gv_fetchmethod_pvn_flags(pTHX_ HV *stash, const char *name, const STRLEN le - the error reporting code. */ - } - -- for (nend = name; *nend || nend != (origname + len); nend++) { -+ for (nend = name; *nend || nend != name_end; nend++) { - if (*nend == '\'') { - nsplit = nend; - name = nend + 1; -@@ -1065,13 +1067,13 @@ Perl_gv_fetchmethod_pvn_flags(pTHX_ HV *stash, const char *name, const STRLEN le - ostash = stash; - } - -- gv = gv_fetchmeth_pvn(stash, name, nend - name, 0, flags); -+ gv = gv_fetchmeth_pvn(stash, name, name_end - name, 0, flags); - if (!gv) { - if (strEQ(name,"import") || strEQ(name,"unimport")) - gv = MUTABLE_GV(&PL_sv_yes); - else if (autoload) - gv = gv_autoload_pvn( -- ostash, name, nend - name, GV_AUTOLOAD_ISMETHOD|flags -+ ostash, name, name_end - name, GV_AUTOLOAD_ISMETHOD|flags - ); - if (!gv && do_croak) { - /* Right now this is exclusively for the benefit of S_method_common -@@ -1087,14 +1089,14 @@ Perl_gv_fetchmethod_pvn_flags(pTHX_ HV *stash, const char *name, const STRLEN le - HV_FETCH_ISEXISTS, NULL, 0) - ) { - require_pv("IO/File.pm"); -- gv = gv_fetchmeth_pvn(stash, name, nend - name, 0, flags); -+ gv = gv_fetchmeth_pvn(stash, name, name_end - name, 0, flags); - if (gv) - return gv; - } - Perl_croak(aTHX_ - "Can't locate object method \"%"UTF8f - "\" via package \"%"HEKf"\"", -- UTF8fARG(is_utf8, nend - name, name), -+ UTF8fARG(is_utf8, name_end - name, name), - HEKfARG(HvNAME_HEK(stash))); - } - else { -@@ -1111,7 +1113,7 @@ Perl_gv_fetchmethod_pvn_flags(pTHX_ HV *stash, const char *name, const STRLEN le - "Can't locate object method \"%"UTF8f - "\" via package \"%"SVf"\"" - " (perhaps you forgot to load \"%"SVf"\"?)", -- UTF8fARG(is_utf8, nend - name, name), -+ UTF8fARG(is_utf8, name_end - name, name), - SVfARG(packnamesv), SVfARG(packnamesv)); - } - } --- -2.7.4 - diff --git a/perl-5.24.0-crash-on-explicit-return-from-s-e.patch b/perl-5.24.0-crash-on-explicit-return-from-s-e.patch deleted file mode 100644 index d7fd09d..0000000 --- a/perl-5.24.0-crash-on-explicit-return-from-s-e.patch +++ /dev/null @@ -1,94 +0,0 @@ -From 2c639acf40b4abc2783352f8e20dbfb68389e633 Mon Sep 17 00:00:00 2001 -From: David Mitchell -Date: Mon, 28 Nov 2016 08:03:49 +0000 -Subject: [PATCH] crash on explicit return from s///e -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Petr Pisar: Ported to 5.24.0: - -commit 7332835e5da7b7a793ef814a84e53003be1d0138 -Author: David Mitchell -Date: Mon Nov 28 08:03:49 2016 +0000 - - crash on explicit return from s///e - - RT #130188 - - In - - sub f { - my $x = 'a'; - $x =~ s/./return;/e; - } - - the 'return' triggers popping any contexts above the subroutine context: - in this case, a CXt_SUBST context. In this case, Perl_dounwind() calls - cx_popblock() for the bottom-most popped context, to restore any saved - vars. However, CXt_SUBST is the one context type which *doesn't* use - 'struct block' as part of its context struct union, so you can't - cx_popblock() a CXt_SUBST context. - - This commit makes it skip the cx_popblock() in this case. - - Bug was introduced by me with v5.23.7-235-gfc6e609. - -Signed-off-by: Petr Písař ---- - pp_ctl.c | 6 ++++++ - t/re/subst.t | 17 ++++++++++++++++- - 2 files changed, 22 insertions(+), 1 deletion(-) - -diff --git a/pp_ctl.c b/pp_ctl.c -index 99ff59a..b94c09a 100644 ---- a/pp_ctl.c -+++ b/pp_ctl.c -@@ -1529,6 +1529,12 @@ Perl_dounwind(pTHX_ I32 cxix) - switch (CxTYPE(cx)) { - case CXt_SUBST: - CX_POPSUBST(cx); -+ /* CXt_SUBST is not a block context type, so skip the -+ * cx_popblock(cx) below */ -+ if (cxstack_ix == cxix + 1) { -+ cxstack_ix--; -+ return; -+ } - break; - case CXt_SUB: - cx_popsub(cx); -diff --git a/t/re/subst.t b/t/re/subst.t -index 26a78c7..c039cc4 100644 ---- a/t/re/subst.t -+++ b/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,18 @@ SKIP: { - $s =~ s/..\G//g; - is($s, "\x{123}", "#RT 126260 gofs"); - } -+ -+# [perl #130188] crash on return from substitution in subroutine -+# make sure returning from s///e doesn't SEGV -+{ -+ my $f = sub { -+ my $x = 'a'; -+ $x =~ s/./return;/e; -+ }; -+ my $x = $f->(); -+ pass("RT #130188"); -+} -+ -+ -+ -+ --- -2.7.4 - diff --git a/perl-5.24.0-fix-128109-do-not-move-RExC_open_parens-0-in-reginse.patch b/perl-5.24.0-fix-128109-do-not-move-RExC_open_parens-0-in-reginse.patch deleted file mode 100644 index 4a1a914..0000000 --- a/perl-5.24.0-fix-128109-do-not-move-RExC_open_parens-0-in-reginse.patch +++ /dev/null @@ -1,123 +0,0 @@ -From c6e7032a63f2162405644582af6600dcb5ba66d1 Mon Sep 17 00:00:00 2001 -From: Yves Orton -Date: Tue, 10 May 2016 09:44:31 +0200 -Subject: [PATCH] fix #128109 - do not move RExC_open_parens[0] in reginsert -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Petr Pisar: Two commits ported to 5.24.0: - -commit da7cf1cc7cedc01f35ceb6724e8260c3b0ee0d12 -Author: Yves Orton -Date: Tue May 10 09:44:31 2016 +0200 - - fix #128109 - do not move RExC_open_parens[0] in reginsert - - In d5a00e4af6b155495be31a35728b8fef8e671ebe I merged GOSUB and GOSTART, - part of which involved making RExC_open_parens[0] refer to the start of - the pattern, and RExC_close_parens[0] referring to the end of the pattern. - - This tripped up in reginsert in a subtle way, the start of the pattern - cannot and should not move in reginsert(). Unlike a paren that might - be at the start of the pattern which should move when something is inserted - in front of it, the start is a fixed point and should never move. - - This patches fixes this up, and adds an assert to check that reginsert() - is not called once study_chunk() starts, as reginsert() does not adjust - RExC_recurse. - - This was noticed by hv while debugging [perl #128085], thanks hugo! - -commit ec5bd2262bb4e28f0dc6a0a3edb9b1f1b5befa2f -Author: Dan Collins -Date: Fri Jun 17 19:40:57 2016 -0400 - - Add tests for regex recursion - - d5a00e4af introduced a bug in reginsert that was fixed by da7cf1cc7, - originally documented in [perl #128109]. This patch adds two - regression tests for the testcase reported by Jan Goyvaerts in - [perl #128420]. - -Signed-off-by: Petr Písař ---- - regcomp.c | 13 +++++++++++-- - t/re/re_tests | 2 ++ - 2 files changed, 13 insertions(+), 2 deletions(-) - -diff --git a/regcomp.c b/regcomp.c -index f29892c..7462885 100644 ---- a/regcomp.c -+++ b/regcomp.c -@@ -223,6 +223,7 @@ struct RExC_state_t { - #endif - bool seen_unfolded_sharp_s; - bool strict; -+ bool study_started; - }; - - #define RExC_flags (pRExC_state->flags) -@@ -289,6 +290,7 @@ struct RExC_state_t { - #define RExC_frame_last (pRExC_state->frame_last) - #define RExC_frame_count (pRExC_state->frame_count) - #define RExC_strict (pRExC_state->strict) -+#define RExC_study_started (pRExC_state->study_started) - #define RExC_warn_text (pRExC_state->warn_text) - - /* Heuristic check on the complexity of the pattern: if TOO_NAUGHTY, we set -@@ -4104,6 +4106,7 @@ S_study_chunk(pTHX_ RExC_state_t *pRExC_state, regnode **scanp, - GET_RE_DEBUG_FLAGS_DECL; - - PERL_ARGS_ASSERT_STUDY_CHUNK; -+ RExC_study_started= 1; - - - if ( depth == 0 ) { -@@ -6886,6 +6889,7 @@ Perl_re_op_compile(pTHX_ SV ** const patternp, int pat_count, - RExC_contains_locale = 0; - RExC_contains_i = 0; - RExC_strict = cBOOL(pm_flags & RXf_PMf_STRICT); -+ RExC_study_started = 0; - pRExC_state->runtime_code_qr = NULL; - RExC_frame_head= NULL; - RExC_frame_last= NULL; -@@ -18240,7 +18244,9 @@ S_reginsert(pTHX_ RExC_state_t *pRExC_state, U8 op, regnode *opnd, U32 depth) - RExC_size += size; - return; - } -- -+ assert(!RExC_study_started); /* I believe we should never use reginsert once we have started -+ studying. If this is wrong then we need to adjust RExC_recurse -+ below like we do with RExC_open_parens/RExC_close_parens. */ - src = RExC_emit; - RExC_emit += size; - dst = RExC_emit; -@@ -18251,7 +18257,10 @@ S_reginsert(pTHX_ RExC_state_t *pRExC_state, U8 op, regnode *opnd, U32 depth) - * iow it is 1 more than the number of parens seen in - * the pattern so far. */ - for ( paren=0 ; paren < RExC_npar ; paren++ ) { -- if ( RExC_open_parens[paren] >= opnd ) { -+ /* note, RExC_open_parens[0] is the start of the -+ * regex, it can't move. RExC_close_parens[0] is the end -+ * of the regex, it *can* move. */ -+ if ( paren && RExC_open_parens[paren] >= opnd ) { - /*DEBUG_PARSE_FMT("open"," - %d",size);*/ - RExC_open_parens[paren] += size; - } else { -diff --git a/t/re/re_tests b/t/re/re_tests -index 34ac94a..7e8522d 100644 ---- a/t/re/re_tests -+++ b/t/re/re_tests -@@ -1966,6 +1966,8 @@ ab(?#Comment){2}c abbc y $& abbc - .{1}?? - c - Nested quantifiers - .{1}?+ - c - Nested quantifiers - (?:.||)(?|)000000000@ 000000000@ y $& 000000000@ # [perl #126405] -+aa$|a(?R)a|a aaa y $& aaa # [perl 128420] recursive matches -+(?:\1|a)([bcd])\1(?:(?R)|e)\1 abbaccaddedcb y $& abbaccaddedcb # [perl 128420] recursive match with backreferences - - # Keep these lines at the end of the file - # vim: softtabstop=0 noexpandtab --- -2.5.5 - diff --git a/perl-5.24.0-perl-129130-make-chdir-allocate-the-stack-it-needs.patch b/perl-5.24.0-perl-129130-make-chdir-allocate-the-stack-it-needs.patch deleted file mode 100644 index c3b723a..0000000 --- a/perl-5.24.0-perl-129130-make-chdir-allocate-the-stack-it-needs.patch +++ /dev/null @@ -1,66 +0,0 @@ -From d47812b974b515e952dc093e692bf15f0a9afbc4 Mon Sep 17 00:00:00 2001 -From: Tony Cook -Date: Mon, 5 Sep 2016 15:40:11 +1000 -Subject: [PATCH] (perl #129130) make chdir allocate the stack it needs -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Ported to 5.24.0: - -commit 92c843fb4b4e1a1e0ac7ec0fe198dc77266838da -Author: Tony Cook -Date: Mon Sep 5 15:40:11 2016 +1000 - - (perl #129130) make chdir allocate the stack it needs - - chdir with no argument didn't ensure there was stack space available - for its result. - -Signed-off-by: Petr Písař ---- - pp_sys.c | 1 + - t/op/chdir.t | 8 +++++++- - 2 files changed, 8 insertions(+), 1 deletion(-) - -diff --git a/pp_sys.c b/pp_sys.c -index 3bf2673..d2cf872 100644 ---- a/pp_sys.c -+++ b/pp_sys.c -@@ -3639,6 +3639,7 @@ PP(pp_chdir) - HV * const table = GvHVn(PL_envgv); - SV **svp; - -+ EXTEND(SP, 1); - if ( (svp = hv_fetchs(table, "HOME", FALSE)) - || (svp = hv_fetchs(table, "LOGDIR", FALSE)) - #ifdef VMS -diff --git a/t/op/chdir.t b/t/op/chdir.t -index a5ea76a..685e556 100644 ---- a/t/op/chdir.t -+++ b/t/op/chdir.t -@@ -10,7 +10,7 @@ BEGIN { - # possibilities into @INC. - unshift @INC, qw(t . lib ../lib); - require "test.pl"; -- plan(tests => 47); -+ plan(tests => 48); - } - - use Config; -@@ -161,6 +161,12 @@ sub check_env { - } - } - -+fresh_perl_is(<<'EOP', '', { stderr => 1 }, "check stack handling"); -+for $x (map $_+1, 1 .. 100) { -+ map chdir, 1 .. $x; -+} -+EOP -+ - my %Saved_Env = (); - sub clean_env { - foreach my $env (@magic_envs) { --- -2.7.4 - diff --git a/perl-5.24.0-perl-129164-Crash-with-splice.patch b/perl-5.24.0-perl-129164-Crash-with-splice.patch deleted file mode 100644 index 44dbe0c..0000000 --- a/perl-5.24.0-perl-129164-Crash-with-splice.patch +++ /dev/null @@ -1,79 +0,0 @@ -From 54550573a613ad20f00521880f345644a1db85cc Mon Sep 17 00:00:00 2001 -From: Father Chrysostomos -Date: Sun, 11 Sep 2016 21:29:56 -0700 -Subject: [PATCH] Crash with splice -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Ported to 5.24.0: - -commit 92b69f6501b4d7351e09c8b1ddd386aa7e1c9cd1 -Author: Father Chrysostomos -Date: Sun Sep 11 21:29:56 2016 -0700 - - [perl #129164] Crash with splice - - This fixes #129166 and #129167 as well. - - splice needs to take into account that arrays can hold NULLs and - return &PL_sv_undef in those cases where it would have returned a - NULL element. - -Signed-off-by: Petr Písař ---- - pp.c | 4 ++++ - t/op/array.t | 17 +++++++++++++++++ - 2 files changed, 21 insertions(+) - -diff --git a/pp.c b/pp.c -index 4a2cde0..4153482 100644 ---- a/pp.c -+++ b/pp.c -@@ -5488,6 +5488,8 @@ PP(pp_splice) - for (i = length - 1, dst = &AvARRAY(ary)[offset]; i > 0; i--) - SvREFCNT_dec(*dst++); /* free them now */ - } -+ if (!*MARK) -+ *MARK = &PL_sv_undef; - } - AvFILLp(ary) += diff; - -@@ -5584,6 +5586,8 @@ PP(pp_splice) - while (length-- > 0) - SvREFCNT_dec(tmparyval[length]); - } -+ if (!*MARK) -+ *MARK = &PL_sv_undef; - } - else - *MARK = &PL_sv_undef; -diff --git a/t/op/array.t b/t/op/array.t -index 4f0a772..fb4e8c6 100644 ---- a/t/op/array.t -+++ b/t/op/array.t -@@ -555,4 +555,21 @@ is $#foo, 3, 'assigning to arylen aliased in foreach(scalar $#arylen)'; - is "@a", 'a b c', 'assigning to itself'; - } - -+# [perl #129164], [perl #129166], [perl #129167] -+# splice() with null array entries -+# These used to crash. -+$#a = -1; $#a++; -+() = 0-splice @a; # subtract -+$#a = -1; $#a++; -+() = -splice @a; # negate -+$#a = -1; $#a++; -+() = 0+splice @a; # add -+# And with array expansion, too -+$#a = -1; $#a++; -+() = 0-splice @a, 0, 1, 1, 1; -+$#a = -1; $#a++; -+() = -splice @a, 0, 1, 1, 1; -+$#a = -1; $#a++; -+() = 0+splice @a, 0, 1, 1, 1; -+ - "We're included by lib/Tie/Array/std.t so we need to return something true"; --- -2.7.4 - diff --git a/perl-5.24.0-perl-129350-anchored-floating-substrings-must-be-utf.patch b/perl-5.24.0-perl-129350-anchored-floating-substrings-must-be-utf.patch deleted file mode 100644 index 9880f2d..0000000 --- a/perl-5.24.0-perl-129350-anchored-floating-substrings-must-be-utf.patch +++ /dev/null @@ -1,56 +0,0 @@ -From 62130748594f803da49b6abf3e352e51148a3886 Mon Sep 17 00:00:00 2001 -From: Hugo van der Sanden -Date: Tue, 4 Oct 2016 14:40:11 +0100 -Subject: [PATCH] anchored/floating substrings must be utf8 if target is -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Ported to 5.24.0: - -commit 2814f4b3549f665a6f9203ac9e890ae1e415e0dc -Author: Hugo van der Sanden -Date: Tue Oct 4 14:40:11 2016 +0100 - - [perl #129350] anchored/floating substrings must be utf8 if target is - - If the target is utf8 and either the anchored or floating substrings - are not, we need to create utf8 copies to check against. The state - of the two substrings may not be the same, but we were only testing - whichever we planned to check first. - -Signed-off-by: Petr Písař ---- - regexec.c | 3 ++- - t/re/re_tests | 1 + - 2 files changed, 3 insertions(+), 1 deletion(-) - -diff --git a/regexec.c b/regexec.c -index cdaa95c..38ff44a 100644 ---- a/regexec.c -+++ b/regexec.c -@@ -703,7 +703,8 @@ Perl_re_intuit_start(pTHX_ - reginfo->poscache_maxiter = 0; - - if (utf8_target) { -- if (!prog->check_utf8 && prog->check_substr) -+ if ((!prog->anchored_utf8 && prog->anchored_substr) -+ || (!prog->float_utf8 && prog->float_substr)) - to_utf8_substr(prog); - check = prog->check_utf8; - } else { -diff --git a/t/re/re_tests b/t/re/re_tests -index 7e8522d..2f4d00c 100644 ---- a/t/re/re_tests -+++ b/t/re/re_tests -@@ -1968,6 +1968,7 @@ ab(?#Comment){2}c abbc y $& abbc - (?:.||)(?|)000000000@ 000000000@ y $& 000000000@ # [perl #126405] - aa$|a(?R)a|a aaa y $& aaa # [perl 128420] recursive matches - (?:\1|a)([bcd])\1(?:(?R)|e)\1 abbaccaddedcb y $& abbaccaddedcb # [perl 128420] recursive match with backreferences -+\b\z0*\x{100} .\x{100} n - - # [perl #129350] crashed in intuit_start - - # Keep these lines at the end of the file - # vim: softtabstop=0 noexpandtab --- -2.7.4 - diff --git a/perl-5.24.0-perl-129788-IO-Poll-fix-memory-leak.patch b/perl-5.24.0-perl-129788-IO-Poll-fix-memory-leak.patch deleted file mode 100644 index aa6f20f..0000000 --- a/perl-5.24.0-perl-129788-IO-Poll-fix-memory-leak.patch +++ /dev/null @@ -1,134 +0,0 @@ -From 478d23ef9e7700e20a75907648dd4c53b1b4f544 Mon Sep 17 00:00:00 2001 -From: Tony Cook -Date: Tue, 25 Oct 2016 16:17:18 +1100 -Subject: [PATCH] (perl #129788) IO::Poll: fix memory leak -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Petr Pisar: Ported to 5.24.0: - -commit 6de2dd46140d0d3ab6813e26940d7b74418b0260 -Author: Tony Cook -Date: Tue Oct 25 16:17:18 2016 +1100 - - (perl #129788) IO::Poll: fix memory leak - - Whenever a magical/tied scalar which dies upon read was passed to _poll() - temporary buffer for events was not freed. - - Adapted from a patch by Sergey Aleynikov - -Signed-off-by: Petr Písař ---- - MANIFEST | 1 + - META.json | 1 + - META.yml | 1 + - dist/IO/IO.xs | 3 +-- - dist/IO/t/io_leak.t | 37 +++++++++++++++++++++++++++++++++++++ - 5 files changed, 41 insertions(+), 2 deletions(-) - create mode 100644 dist/IO/t/io_leak.t - -diff --git a/MANIFEST b/MANIFEST -index 2cdf616..3b5f8fb 100644 ---- a/MANIFEST -+++ b/MANIFEST -@@ -3228,6 +3228,7 @@ dist/IO/t/io_dir.t See if directory-related methods from IO work - dist/IO/t/io_dup.t See if dup()-related methods from IO work - dist/IO/t/io_file_export.t Test IO::File exports - dist/IO/t/io_file.t See if binmode()-related methods on IO::File work -+dist/IO/t/io_leak.t See if IO leaks SVs (only run in core) - dist/IO/t/io_linenum.t See if I/O line numbers are tracked correctly - dist/IO/t/io_multihomed.t See if INET sockets work with multi-homed hosts - dist/IO/t/io_pipe.t See if pipe()-related methods from IO work -diff --git a/META.json b/META.json -index 4cb21a9..2809b58 100644 ---- a/META.json -+++ b/META.json -@@ -84,6 +84,7 @@ - "dist/IO/t/io_dup.t", - "dist/IO/t/io_file.t", - "dist/IO/t/io_file_export.t", -+ "dist/IO/t/io_leak.t", - "dist/IO/t/io_linenum.t", - "dist/IO/t/io_multihomed.t", - "dist/IO/t/io_pipe.t", -diff --git a/META.yml b/META.yml -index 13a2bb3..7494d2a 100644 ---- a/META.yml -+++ b/META.yml -@@ -81,6 +81,7 @@ no_index: - - dist/IO/t/io_dup.t - - dist/IO/t/io_file.t - - dist/IO/t/io_file_export.t -+ - dist/IO/t/io_leak.t - - dist/IO/t/io_linenum.t - - dist/IO/t/io_multihomed.t - - dist/IO/t/io_pipe.t -diff --git a/dist/IO/IO.xs b/dist/IO/IO.xs -index fe749a6..15ef9b2 100644 ---- a/dist/IO/IO.xs -+++ b/dist/IO/IO.xs -@@ -318,7 +318,7 @@ PPCODE: - { - #ifdef HAS_POLL - const int nfd = (items - 1) / 2; -- SV *tmpsv = NEWSV(999,nfd * sizeof(struct pollfd)); -+ SV *tmpsv = sv_2mortal(NEWSV(999,nfd * sizeof(struct pollfd))); - /* We should pass _some_ valid pointer even if nfd is zero, but it - * doesn't matter what it is, since we're telling it to not check any fds. - */ -@@ -337,7 +337,6 @@ PPCODE: - sv_setiv(ST(i), fds[j].revents); i++; - } - } -- SvREFCNT_dec(tmpsv); - XSRETURN_IV(ret); - #else - not_here("IO::Poll::poll"); -diff --git a/dist/IO/t/io_leak.t b/dist/IO/t/io_leak.t -new file mode 100644 -index 0000000..08cbe2b ---- /dev/null -+++ b/dist/IO/t/io_leak.t -@@ -0,0 +1,37 @@ -+#!/usr/bin/perl -+ -+use warnings; -+use strict; -+ -+use Test::More; -+ -+eval { require XS::APItest; XS::APItest->import('sv_count'); 1 } -+ or plan skip_all => "No XS::APItest::sv_count() available"; -+ -+plan tests => 1; -+ -+sub leak { -+ my ($n, $delta, $code, $name) = @_; -+ my $sv0 = 0; -+ my $sv1 = 0; -+ for my $i (1..$n) { -+ &$code(); -+ $sv1 = sv_count(); -+ $sv0 = $sv1 if $i == 1; -+ } -+ cmp_ok($sv1-$sv0, '<=', ($n-1)*$delta, $name); -+} -+ -+# [perl #129788] IO::Poll shouldn't leak on errors -+{ -+ package io_poll_leak; -+ use IO::Poll; -+ -+ sub TIESCALAR { bless {} } -+ sub FETCH { die } -+ -+ tie(my $a, __PACKAGE__); -+ sub f {eval { IO::Poll::_poll(0, $a, 1) }} -+ -+ ::leak(5, 0, \&f, q{IO::Poll::_poll shouldn't leak}); -+} --- -2.7.4 - diff --git a/perl-5.24.0-regcomp.c-fix-perl-129950-fix-firstchar-bitmap-under.patch b/perl-5.24.0-regcomp.c-fix-perl-129950-fix-firstchar-bitmap-under.patch deleted file mode 100644 index 82eeea6..0000000 --- a/perl-5.24.0-regcomp.c-fix-perl-129950-fix-firstchar-bitmap-under.patch +++ /dev/null @@ -1,97 +0,0 @@ -From 1b90dad20879f0e7a3eced5da0e0aacda93708ed Mon Sep 17 00:00:00 2001 -From: Yves Orton -Date: Thu, 27 Oct 2016 13:52:24 +0200 -Subject: [PATCH] regcomp.c: fix perl #129950 - fix firstchar bitmap under utf8 - with prefix optimisation -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Ported to 5.24.0: - -commit da42332b10691ba7af7550035ffc7f46c87e4e66 -Author: Yves Orton -Date: Thu Oct 27 13:52:24 2016 +0200 - - regcomp.c: fix perl #129950 - fix firstchar bitmap under utf8 with prefix optimisation - - The trie code contains a number of sub optimisations, one of which - extracts common prefixes from alternations, and another which isa - bitmap of the possible matching first chars. - - The bitmap needs to contain the possible first octets of the string - which the trie can match, and for codepoints which might have a different - first octet under utf8 or non-utf8 need to register BOTH codepoints. - - So for instance in the pattern (?:a|a\x{E4}) we should restructure this - as a(|\x{E4), and the bitmap for the trie should contain both \x{E4} AND - \x{C3} as \x{C3} is the first byte of \x{EF} expressed as utf8. - -Signed-off-by: Petr Písař ---- - regcomp.c | 14 ++++++++++++++ - t/re/pat.t | 9 ++++++++- - 2 files changed, 22 insertions(+), 1 deletion(-) - -diff --git a/regcomp.c b/regcomp.c -index 7462885..bcb8db5 100644 ---- a/regcomp.c -+++ b/regcomp.c -@@ -3272,6 +3272,13 @@ S_make_trie(pTHX_ RExC_state_t *pRExC_state, regnode *startbranch, - TRIE_BITMAP_SET(trie,*ch); - if ( folder ) - TRIE_BITMAP_SET(trie, folder[ *ch ]); -+ if ( !UTF ) { -+ /* store first byte of utf8 representation of -+ variant codepoints */ -+ if (! UVCHR_IS_INVARIANT(*ch)) { -+ TRIE_BITMAP_SET(trie, UTF8_TWO_BYTE_HI(*ch)); -+ } -+ } - DEBUG_OPTIMISE_r( - Perl_re_printf( aTHX_ "%s", (char*)ch) - ); -@@ -3280,6 +3287,13 @@ S_make_trie(pTHX_ RExC_state_t *pRExC_state, regnode *startbranch, - TRIE_BITMAP_SET(trie,*ch); - if ( folder ) - TRIE_BITMAP_SET(trie,folder[ *ch ]); -+ if ( !UTF ) { -+ /* store first byte of utf8 representation of -+ variant codepoints */ -+ if (! UVCHR_IS_INVARIANT(*ch)) { -+ TRIE_BITMAP_SET(trie, UTF8_TWO_BYTE_HI(*ch)); -+ } -+ } - DEBUG_OPTIMISE_r(Perl_re_printf( aTHX_ "%s", ch)); - } - idx = ofs; -diff --git a/t/re/pat.t b/t/re/pat.t -index 295a9f7..4aa77cf 100644 ---- a/t/re/pat.t -+++ b/t/re/pat.t -@@ -23,7 +23,7 @@ BEGIN { - skip_all_without_unicode_tables(); - } - --plan tests => 789; # Update this when adding/deleting tests. -+plan tests => 791; # Update this when adding/deleting tests. - - run_tests() unless caller; - -@@ -1758,6 +1758,13 @@ EOP - fresh_perl_is($code, $expect, {}, "$bug - $test_name" ); - } - } -+ -+ { -+ my $str = "a\xE4"; -+ ok( $str =~ m{^(a|a\x{e4})$}, "fix [perl #129950] - latin1 case" ); -+ utf8::upgrade($str); -+ ok( $str =~ m{^(a|a\x{e4})$}, "fix [perl #129950] - utf8 case" ); -+ } - } # End of sub run_tests - - 1; --- -2.7.4 - diff --git a/perl-5.24.0-rt-129336-perl-i-u-erroneously-interpreted-as-u.patch b/perl-5.24.0-rt-129336-perl-i-u-erroneously-interpreted-as-u.patch deleted file mode 100644 index 7039076..0000000 --- a/perl-5.24.0-rt-129336-perl-i-u-erroneously-interpreted-as-u.patch +++ /dev/null @@ -1,92 +0,0 @@ -From 03fcc0c44bc7972f2c92736daae5b63d601b7c49 Mon Sep 17 00:00:00 2001 -From: Dan Collins -Date: Fri, 23 Sep 2016 01:21:20 -0400 -Subject: [PATCH] [rt #129336] #!perl -i u erroneously interpreted as -u -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Ported to 5.24.0: - -commit f54cfdacff1f3744ef08fc70f1f3bc6c7d862e83 -Author: Dan Collins -Date: Fri Sep 23 01:21:20 2016 -0400 - - [rt #129336] #!perl -i u erroneously interpreted as -u - - Perl_moreswitches processes a single switch, and returns a pointer - to the start of the next switch. It can return either - the a pointer to the next flag itself: - - #!perl -n -p - ^ Can point here - - Or, to the space before the next "arg": - - #!perl -n -p - ^ Can point here - - (Where the next call to Perl_moreswitches will consume " -".) - - In the case of -i[extension], the pointer is by default pointing at - the space after the end of the argument. The current code tries to - do the former, by unconditionally advancing the pointer, and then - advancing it again if it is on a '-'. But that is incorrect: - - #!perl -i p - ^ Will point here, but that isn't a flag - - I could fix this by removing the unconditional s++, and having it - increment by 2 if *(s+1)=='-', but this work isn't actually - necessary - it's better to just leave it pointing at the space after - the argument. - -Signed-off-by: Petr Písař ---- - perl.c | 5 ----- - t/op/lex.t | 9 ++++++++- - 2 files changed, 8 insertions(+), 6 deletions(-) - -diff --git a/perl.c b/perl.c -index 228a0d8..5cc7d0b 100644 ---- a/perl.c -+++ b/perl.c -@@ -3306,11 +3306,6 @@ Perl_moreswitches(pTHX_ const char *s) - - PL_inplace = savepvn(start, s - start); - } -- if (*s) { -- ++s; -- if (*s == '-') /* Additional switches on #! line. */ -- s++; -- } - return s; - case 'I': /* -I handled both here and in parse_body() */ - forbid_setid('I', FALSE); -diff --git a/t/op/lex.t b/t/op/lex.t -index c515449..9ada592 100644 ---- a/t/op/lex.t -+++ b/t/op/lex.t -@@ -7,7 +7,7 @@ use warnings; - - BEGIN { chdir 't' if -d 't'; require './test.pl'; } - --plan(tests => 25); -+plan(tests => 26); - - { - no warnings 'deprecated'; -@@ -209,3 +209,10 @@ fresh_perl_is( - { stderr => 1 }, - 's;@{< -Date: Wed, 30 Nov 2016 08:59:01 +0000 -Subject: [PATCH] split was leaving PL_sv_undef in unused ary slots -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Petr Pisar: Ported to 5.24.0: - -commit 71ca73e5fa9639ac33e9f2e74cd0c32288a5040d -Author: David Mitchell -Date: Wed Nov 30 08:59:01 2016 +0000 - - split was leaving PL_sv_undef in unused ary slots - - This: - - @a = split(/-/,"-"); - $a[1] = undef; - $a[0] = 0; - - was giving - - Modification of a read-only value attempted at foo line 3. - - This is because: - - 1) unused slots in AvARRAY between AvFILL and AvMAX should always be - null; av_clear(), av_extend() etc do this; while av_store(), if storing - to a slot N somewhere between AvFILL and AvMAX, doesn't bother to clear - between (AvFILL+1)..(N-1) on the assumption that everyone else plays - nicely. - - 2) pp_split() when splitting directly to an array, sometimes over-splits - and has to null out the excess elements; - - 3) Since perl 5.19.4, unused AV slots are now marked with NULL rather than - &PL_sv_undef; - - 4) pp_split was still using &PL_sv_undef; - - The fault was with (4), and is easily fixed. - -Signed-off-by: Petr Písař ---- - pp.c | 2 +- - t/op/split.t | 13 ++++++++++++- - 2 files changed, 13 insertions(+), 2 deletions(-) - -diff --git a/pp.c b/pp.c -index 4153482..70345ce 100644 ---- a/pp.c -+++ b/pp.c -@@ -6212,7 +6212,7 @@ PP(pp_split) - while (iters > 0 && (!TOPs || !SvANY(TOPs) || SvCUR(TOPs) == 0)) { - if (TOPs && !make_mortal) - sv_2mortal(TOPs); -- *SP-- = &PL_sv_undef; -+ *SP-- = NULL; - iters--; - } - } -diff --git a/t/op/split.t b/t/op/split.t -index fb73271..b7846a1 100644 ---- a/t/op/split.t -+++ b/t/op/split.t -@@ -7,7 +7,7 @@ BEGIN { - set_up_inc('../lib'); - } - --plan tests => 131; -+plan tests => 133; - - $FS = ':'; - -@@ -523,3 +523,14 @@ is "@a", '1 2 3', 'assignment to split-to-array (pmtarget/package array)'; - } - (@{\@a} = split //, "abc") = 1..10; - is "@a", '1 2 3', 'assignment to split-to-array (stacked)'; -+ -+# splitting directly to an array wasn't filling unused AvARRAY slots with -+# NULL -+ -+{ -+ my @a; -+ @a = split(/-/,"-"); -+ $a[1] = 'b'; -+ ok eval { $a[0] = 'a'; 1; }, "array split filling AvARRAY: assign 0"; -+ is "@a", "a b", "array split filling AvARRAY: result"; -+} --- -2.7.4 - diff --git a/perl-5.24.1-Fix-memory-leak-in-B-RHE-HASH-method.patch b/perl-5.24.1-Fix-memory-leak-in-B-RHE-HASH-method.patch deleted file mode 100644 index 3769416..0000000 --- a/perl-5.24.1-Fix-memory-leak-in-B-RHE-HASH-method.patch +++ /dev/null @@ -1,65 +0,0 @@ -From 3c38abae50c05c6f3c9f7eca561ec08c62fba1ba Mon Sep 17 00:00:00 2001 -From: Sergey Aleynikov -Date: Thu, 5 Jan 2017 01:33:32 +0300 -Subject: [PATCH] Fix memory leak in B::RHE->HASH method. -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Petr Písař: Ported to 5.24.1: - -commit 4b6e9aa6aa2256da1ec7ed08f819cbf5d1463741 -Author: Sergey Aleynikov -Date: Thu Jan 5 01:33:32 2017 +0300 - - Fix memory leak in B::RHE->HASH method. - -Signed-off-by: Petr Písař ---- - ext/B/B.xs | 2 +- - t/op/svleak.t | 12 +++++++++++- - 2 files changed, 12 insertions(+), 2 deletions(-) - -diff --git a/ext/B/B.xs b/ext/B/B.xs -index b4b6a40..e859d7d 100644 ---- a/ext/B/B.xs -+++ b/ext/B/B.xs -@@ -2179,7 +2179,7 @@ SV* - HASH(h) - B::RHE h - CODE: -- RETVAL = newRV( (SV*)cophh_2hv(h, 0) ); -+ RETVAL = newRV_noinc( (SV*)cophh_2hv(h, 0) ); - OUTPUT: - RETVAL - -diff --git a/t/op/svleak.t b/t/op/svleak.t -index c18f498..b0692ff 100644 ---- a/t/op/svleak.t -+++ b/t/op/svleak.t -@@ -15,7 +15,7 @@ BEGIN { - - use Config; - --plan tests => 132; -+plan tests => 133; - - # run some code N times. If the number of SVs at the end of loop N is - # greater than (N-1)*delta at the end of loop 1, we've got a leak -@@ -547,3 +547,13 @@ EOF - sub f { $a =~ /[^.]+$b/; } - ::leak(2, 0, \&f, q{use re 'strict' shouldn't leak warning strings}); - } -+ -+# check that B::RHE->HASH does not leak -+{ -+ package BHINT; -+ sub foo {} -+ require B; -+ my $op = B::svref_2object(\&foo)->ROOT->first; -+ sub lk { { my $d = $op->hints_hash->HASH } } -+ ::leak(3, 0, \&lk, q!B::RHE->HASH shoudln't leak!); -+} --- -2.7.4 - diff --git a/perl-5.24.1-RT-130624-heap-use-after-free-in-4-arg-substr.patch b/perl-5.24.1-RT-130624-heap-use-after-free-in-4-arg-substr.patch deleted file mode 100644 index f018778..0000000 --- a/perl-5.24.1-RT-130624-heap-use-after-free-in-4-arg-substr.patch +++ /dev/null @@ -1,70 +0,0 @@ -From 4e0fb37303b72ed9d38949139c304abdb73e223e Mon Sep 17 00:00:00 2001 -From: Aaron Crane -Date: Tue, 24 Jan 2017 23:39:40 +0000 -Subject: [PATCH] RT#130624: heap-use-after-free in 4-arg substr -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Ported to 5.24.1: - -commit 41b1e858a075694f88057b9514f5fc78c80b5355 -Author: Aaron Crane -Date: Tue Jan 24 23:39:40 2017 +0000 - - RT#130624: heap-use-after-free in 4-arg substr - -Signed-off-by: Petr Písař ---- - pp.c | 4 +++- - t/op/substr.t | 14 +++++++++++++- - 2 files changed, 16 insertions(+), 2 deletions(-) - -diff --git a/pp.c b/pp.c -index 334b353..aa6cff0 100644 ---- a/pp.c -+++ b/pp.c -@@ -3462,8 +3462,10 @@ PP(pp_substr) - tmps = SvPV_force_nomg(sv, curlen); - if (DO_UTF8(repl_sv) && repl_len) { - if (!DO_UTF8(sv)) { -+ /* Upgrade the dest, and recalculate tmps in case the buffer -+ * got reallocated; curlen may also have been changed */ - sv_utf8_upgrade_nomg(sv); -- curlen = SvCUR(sv); -+ tmps = SvPV_nomg(sv, curlen); - } - } - else if (DO_UTF8(sv)) -diff --git a/t/op/substr.t b/t/op/substr.t -index 01c36a9..f9fee48 100644 ---- a/t/op/substr.t -+++ b/t/op/substr.t -@@ -22,7 +22,7 @@ $SIG{__WARN__} = sub { - } - }; - --plan(389); -+plan(391); - - run_tests() unless caller; - -@@ -872,3 +872,15 @@ is($destroyed, 1, 'Timely scalar destruction with lvalue substr'); - - # failed with ASAN - fresh_perl_is('$0 = "/usr/bin/perl"; substr($0, 0, 0, $0)', '', {}, "(perl #129340) substr() with source in target"); -+ -+ -+# [perl #130624] - heap-use-after-free, observable under asan -+{ -+ my $x = "\xE9zzzz"; -+ my $y = "\x{100}"; -+ my $z = substr $x, 0, 1, $y; -+ is $z, "\xE9", "RT#130624: heap-use-after-free in 4-arg substr (ret)"; -+ is $x, "\x{100}zzzz", "RT#130624: heap-use-after-free in 4-arg substr (targ)"; -+} -+ -+ --- -2.7.4 - diff --git a/perl-5.24.1-buffer-overrun-with-format-and-use-bytes.patch b/perl-5.24.1-buffer-overrun-with-format-and-use-bytes.patch deleted file mode 100644 index 8e9d245..0000000 --- a/perl-5.24.1-buffer-overrun-with-format-and-use-bytes.patch +++ /dev/null @@ -1,93 +0,0 @@ -From fd25d49cae6409a4ce901fd4d899a197541604b3 Mon Sep 17 00:00:00 2001 -From: David Mitchell -Date: Sat, 4 Feb 2017 15:10:49 +0000 -Subject: [PATCH] buffer overrun with format and 'use bytes' -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Ported to 5.24.1: - -commit e452bf1c9e9f30813b1f289188a6e8b0894575ba -Author: David Mitchell -Date: Sat Feb 4 15:10:49 2017 +0000 - - buffer overrun with format and 'use bytes' - - RT #130703 - - In the scope of 'use bytes', appending a string to a format where the - format is utf8 and the string is non-utf8 but contains lots of chars - with ords >= 128, the buffer could be overrun. This is due to all the - \x80-type chars going from being stored as 1 bytes to 2 bytes, without - growing PL_formtarget accordingly. - - This commit contains a minimal fix; the next commit will more generally - tidy up the grow code in pp_formline. - -Signed-off-by: Petr Písař ---- - pp_ctl.c | 3 +++ - t/op/write.t | 18 +++++++++++++++++- - 2 files changed, 20 insertions(+), 1 deletion(-) - -diff --git a/pp_ctl.c b/pp_ctl.c -index a1fc2f4..4d5ef2e 100644 ---- a/pp_ctl.c -+++ b/pp_ctl.c -@@ -505,6 +505,8 @@ PP(pp_formline) - SvTAINTED_on(PL_formtarget); - if (DO_UTF8(PL_formtarget)) - targ_is_utf8 = TRUE; -+ /* this is an initial estimate of how much output buffer space -+ * to allocate. It may be exceeded later */ - linemax = (SvCUR(formsv) * (IN_BYTES ? 1 : 3) + 1); - t = SvGROW(PL_formtarget, len + linemax + 1); - /* XXX from now onwards, SvCUR(PL_formtarget) is invalid */ -@@ -766,6 +768,7 @@ PP(pp_formline) - - if (targ_is_utf8 && !item_is_utf8) { - source = tmp = bytes_to_utf8(source, &to_copy); -+ grow = to_copy; - } else { - if (item_is_utf8 && !targ_is_utf8) { - U8 *s; -diff --git a/t/op/write.t b/t/op/write.t -index ab2733f..ae4ddb5 100644 ---- a/t/op/write.t -+++ b/t/op/write.t -@@ -98,7 +98,7 @@ for my $tref ( @NumTests ){ - my $bas_tests = 21; - - # number of tests in section 3 --my $bug_tests = 66 + 3 * 3 * 5 * 2 * 3 + 2 + 66 + 6 + 2 + 3 + 96 + 11 + 3; -+my $bug_tests = 66 + 3 * 3 * 5 * 2 * 3 + 2 + 66 + 6 + 2 + 3 + 96 + 11 + 4; - - # number of tests in section 4 - my $hmb_tests = 37; -@@ -1562,6 +1562,22 @@ ok defined *{$::{CmT}}{FORMAT}, "glob assign"; - formline $format, $orig, 12345; - is $^A, ("x" x 100) . " 12345\n", "\@* doesn't overflow"; - -+ # ...nor this (RT #130703). -+ # Under 'use bytes', the two bytes (c2, 80) making up each \x80 char -+ # each get expanded to two bytes (so four in total per \x80 char); the -+ # buffer growth wasn't accounting for this doubling in size -+ -+ { -+ local $^A = ''; -+ my $format = "X\n\x{100}" . ("\x80" x 200); -+ my $expected = $format; -+ utf8::encode($expected); -+ use bytes; -+ formline($format); -+ is $^A, $expected, "RT #130703"; -+ } -+ -+ - # make sure it can cope with formats > 64k - - $format = 'x' x 65537; --- -2.7.4 - diff --git a/perl-5.24.1-fix-RT-130561-recursion-and-optimising-away-impossib.patch b/perl-5.24.1-fix-RT-130561-recursion-and-optimising-away-impossib.patch deleted file mode 100644 index 2a2e6b2..0000000 --- a/perl-5.24.1-fix-RT-130561-recursion-and-optimising-away-impossib.patch +++ /dev/null @@ -1,93 +0,0 @@ -From fbb9dc823a06b4815ee8fd8632fc475b8034e379 Mon Sep 17 00:00:00 2001 -From: Yves Orton -Date: Fri, 27 Jan 2017 10:18:51 +0100 -Subject: [PATCH] fix RT #130561 - recursion and optimising away impossible - quantifiers are not friends -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Ported to 5.24.1: - -commit 31fc93954d1f379c7a49889d91436ce99818e1f6 -Author: Yves Orton -Date: Fri Jan 27 10:18:51 2017 +0100 - - fix RT #130561 - recursion and optimising away impossible quantifiers are not friends - - Instead of optimising away impossible quantifiers like (foo){1,0} treat them - as unquantified, and guard them with an OPFAIL. Thus /(foo){1,0}/ is treated - the same as /(*FAIL)(foo)/ this is important in patterns like /(foo){1,0}|(?1)/ - where the (?1) needs to be able to recurse into the (foo) even though the - (foo){1,0} can never match. It also resolves various issues (SEGVs) with patterns - like /((?1)){1,0}/. - - This patch would have been easier if S_reginsert() documented that it is - the callers responsibility to properly set up the NEXT_OFF() of the inserted - node (if the node has a NEXT_OFF()) - -Signed-off-by: Petr Písař ---- - regcomp.c | 14 +++----------- - t/re/pat_rt_report.t | 11 ++++++++++- - 2 files changed, 13 insertions(+), 12 deletions(-) - -diff --git a/regcomp.c b/regcomp.c -index bcb8db5..9f343d3 100644 ---- a/regcomp.c -+++ b/regcomp.c -@@ -11497,19 +11497,11 @@ S_regpiece(pTHX_ RExC_state_t *pRExC_state, I32 *flagp, U32 depth) - nextchar(pRExC_state); - if (max < min) { /* If can't match, warn and optimize to fail - unconditionally */ -- if (SIZE_ONLY) { -- -- /* We can't back off the size because we have to reserve -- * enough space for all the things we are about to throw -- * away, but we can shrink it by the amount we are about -- * to re-use here */ -- RExC_size += PREVOPER(RExC_size) - regarglen[(U8)OPFAIL]; -- } -- else { -+ if (PASS2) { - ckWARNreg(RExC_parse, "Quantifier {n,m} with n > m can't match"); -- RExC_emit = orig_emit; - } -- ret = reganode(pRExC_state, OPFAIL, 0); -+ reginsert(pRExC_state, OPFAIL, orig_emit, depth+1); -+ NEXT_OFF(orig_emit)= regarglen[OPFAIL] + NODE_STEP_REGNODE; - return ret; - } - else if (min == max && *RExC_parse == '?') -diff --git a/t/re/pat_rt_report.t b/t/re/pat_rt_report.t -index cb02ad2..2c1dbc4 100644 ---- a/t/re/pat_rt_report.t -+++ b/t/re/pat_rt_report.t -@@ -20,7 +20,7 @@ use warnings; - use 5.010; - use Config; - --plan tests => 2500; # Update this when adding/deleting tests. -+plan tests => 2502; # Update this when adding/deleting tests. - - run_tests() unless caller; - -@@ -1113,6 +1113,15 @@ EOP - my $s = "\x{1ff}" . "f" x 32; - ok($s =~ /\x{1ff}[[:alpha:]]+/gca, "POSIXA pointer wrap"); - } -+ { -+ # rt -+ fresh_perl_is( -+ '"foo"=~/((?1)){8,0}/; print "ok"', -+ "ok", {}, 'RT #130561 - allowing impossible quantifier should not cause SEGVs'); -+ my $s= "foo"; -+ ok($s=~/(foo){1,0}|(?1)/, -+ "RT #130561 - allowing impossible quantifier should not break recursion"); -+ } - } # End of sub run_tests - - 1; --- -2.7.4 - diff --git a/perl-5.24.1-fix-pad-scope-issue-in-re_evals.patch b/perl-5.24.1-fix-pad-scope-issue-in-re_evals.patch deleted file mode 100644 index 17c82b4..0000000 --- a/perl-5.24.1-fix-pad-scope-issue-in-re_evals.patch +++ /dev/null @@ -1,198 +0,0 @@ -From f3704e62341b10824f503aa0c8029670d101a434 Mon Sep 17 00:00:00 2001 -From: David Mitchell -Date: Sat, 11 Feb 2017 11:53:41 +0000 -Subject: [PATCH] fix pad/scope issue in re_evals -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Ported to 5.24.1: -commit 4b9c7caeaecf4e9df0be3a2e296644f763f775d6 -Author: David Mitchell -Date: Sat Feb 11 11:53:41 2017 +0000 - - fix pad/scope issue in re_evals - - RT #129881 heap-buffer-overflow Perl_pad_sv - - In some circumstances involving a pattern which has embedded code blocks - from more than one source, e.g. - - my $r = qr{(?{1;}){2}X}; - "" =~ /$r|(?{1;})/; - - the wrong PL_comppad could be active while doing a LEAVE_SCOPE() or on - exit from the pattern. - - This was mainly due to the big context stack changes in 5.24.0 - in - particular, since POP_MULTICALL() now does CX_LEAVE_SCOPE(cx) *before* - restoring PL_comppad, the (correct) unwinding of any SAVECOMPPAD's was - being followed by Cblk_sub.prevcomppad>, which wasn't - necessarily a sensible value. - - To fix this, record the value of PL_savestack_ix at entry to S_regmatch(), - and set the cx->blk_oldsaveix of the MULTICALL to this value when pushed. - On exit from S_regmatch, we either POP_MULTICALL which will do a - LEAVE_SCOPE(cx->blk_oldsaveix), or in the absense of any EVAL, do the - explicit but equivalent LEAVE_SCOPE(orig_savestack_ix). - - Note that this is a change in behaviour to S_regmatch() - formerly it - wouldn't necessarily clear the savestack completely back the point of - entry - that would get left to do by its caller, S_regtry(), or indirectly - by Perl_regexec_flags(). This shouldn't make any practical difference, but - is tidier and less likely to introduce bugs later. - -Signed-off-by: Petr Písař ---- - regexec.c | 69 +++++++++++++++++++++++++++++++++++++++++++----------- - t/re/pat_re_eval.t | 20 +++++++++++++++- - 2 files changed, 74 insertions(+), 15 deletions(-) - -diff --git a/regexec.c b/regexec.c -index a7bc0c3..5656cdd 100644 ---- a/regexec.c -+++ b/regexec.c -@@ -5233,6 +5233,7 @@ S_regmatch(pTHX_ regmatch_info *reginfo, char *startpos, regnode *prog) - _char_class_number classnum; - bool is_utf8_pat = reginfo->is_utf8_pat; - bool match = FALSE; -+ I32 orig_savestack_ix = PL_savestack_ix; - - /* Solaris Studio 12.3 messes up fetching PL_charclass['\n'] */ - #if (defined(__SUNPRO_C) && (__SUNPRO_C == 0x5120) && defined(__x86_64) && defined(USE_64_BIT_ALL)) -@@ -6646,30 +6647,67 @@ S_regmatch(pTHX_ regmatch_info *reginfo, char *startpos, regnode *prog) - nop = (OP*)rexi->data->data[n]; - } - -- /* normally if we're about to execute code from the same -- * CV that we used previously, we just use the existing -- * CX stack entry. However, its possible that in the -- * meantime we may have backtracked, popped from the save -- * stack, and undone the SAVECOMPPAD(s) associated with -- * PUSH_MULTICALL; in which case PL_comppad no longer -- * points to newcv's pad. */ -+ /* Some notes about MULTICALL and the context and save stacks. -+ * -+ * In something like -+ * /...(?{ my $x)}...(?{ my $z)}...(?{ my $z)}.../ -+ * since codeblocks don't introduce a new scope (so that -+ * local() etc accumulate), at the end of a successful -+ * match there will be a SAVEt_CLEARSV on the savestack -+ * for each of $x, $y, $z. If the three code blocks above -+ * happen to have come from different CVs (e.g. via -+ * embedded qr//s), then we must ensure that during any -+ * savestack unwinding, PL_comppad always points to the -+ * right pad at each moment. We achieve this by -+ * interleaving SAVEt_COMPPAD's on the savestack whenever -+ * there is a change of pad. -+ * In theory whenever we call a code block, we should -+ * push a CXt_SUB context, then pop it on return from -+ * that code block. This causes a bit of an issue in that -+ * normally popping a context also clears the savestack -+ * back to cx->blk_oldsaveix, but here we specifically -+ * don't want to clear the save stack on exit from the -+ * code block. -+ * Also for efficiency we don't want to keep pushing and -+ * popping the single SUB context as we backtrack etc. -+ * So instead, we push a single context the first time -+ * we need, it, then hang onto it until the end of this -+ * function. Whenever we encounter a new code block, we -+ * update the CV etc if that's changed. During the times -+ * in this function where we're not executing a code -+ * block, having the SUB context still there is a bit -+ * naughty - but we hope that no-one notices. -+ * When the SUB context is initially pushed, we fake up -+ * cx->blk_oldsaveix to be as if we'd pushed this context -+ * on first entry to S_regmatch rather than at some random -+ * point during the regexe execution. That way if we -+ * croak, popping the context stack will ensure that -+ * *everything* SAVEd by this function is undone and then -+ * the context popped, rather than e.g., popping the -+ * context (and restoring the original PL_comppad) then -+ * popping more of the savestack and restoiring a bad -+ * PL_comppad. -+ */ -+ -+ /* If this is the first EVAL, push a MULTICALL. On -+ * subsequent calls, if we're executing a different CV, or -+ * if PL_comppad has got messed up from backtracking -+ * through SAVECOMPPADs, then refresh the context. -+ */ - if (newcv != last_pushed_cv || PL_comppad != last_pad) - { - U8 flags = (CXp_SUB_RE | - ((newcv == caller_cv) ? CXp_SUB_RE_FAKE : 0)); -+ SAVECOMPPAD(); - if (last_pushed_cv) { -- /* PUSH/POP_MULTICALL save and restore the -- * caller's PL_comppad; if we call multiple subs -- * using the same CX block, we have to save and -- * unwind the varying PL_comppad's ourselves, -- * especially restoring the right PL_comppad on -- * backtrack - so save it on the save stack */ -- SAVECOMPPAD(); - CHANGE_MULTICALL_FLAGS(newcv, flags); - } - else { - PUSH_MULTICALL_FLAGS(newcv, flags); - } -+ /* see notes above */ -+ CX_CUR()->blk_oldsaveix = orig_savestack_ix; -+ - last_pushed_cv = newcv; - } - else { -@@ -8456,9 +8494,12 @@ NULL - - if (last_pushed_cv) { - dSP; -+ /* see "Some notes about MULTICALL" above */ - POP_MULTICALL; - PERL_UNUSED_VAR(SP); - } -+ else -+ LEAVE_SCOPE(orig_savestack_ix); - - assert(!result || locinput - reginfo->strbeg >= 0); - return result ? locinput - reginfo->strbeg : -1; -diff --git a/t/re/pat_re_eval.t b/t/re/pat_re_eval.t -index e59b059..1a0b228 100644 ---- a/t/re/pat_re_eval.t -+++ b/t/re/pat_re_eval.t -@@ -22,7 +22,7 @@ BEGIN { - } - - --plan tests => 527; # Update this when adding/deleting tests. -+plan tests => 530; # Update this when adding/deleting tests. - - run_tests() unless caller; - -@@ -1232,6 +1232,24 @@ sub run_tests { - 'padtmp swiping does not affect "$a$b" =~ /(??{})/' - } - -+ # RT #129881 -+ # on exit from a pattern with multiple code blocks from different -+ # CVs, PL_comppad wasn't being restored correctly -+ -+ sub { -+ # give first few pad slots known values -+ my ($x1, $x2, $x3, $x4, $x5) = 101..105; -+ # these vars are in a separate pad -+ my $r = qr/((?{my ($y1, $y2) = 201..202; 1;})A){2}X/; -+ # the first alt fails, causing a switch to this anon -+ # sub's pad -+ "AAA" =~ /$r|(?{my ($z1, $z2) = 301..302; 1;})A/; -+ is $x1, 101, "RT #129881: x1"; -+ is $x2, 102, "RT #129881: x2"; -+ is $x3, 103, "RT #129881: x3"; -+ }->(); -+ -+ - } # End of sub run_tests - - 1; --- -2.7.4 - diff --git a/perl-5.24.1-fix-special-case-recreation-of.patch b/perl-5.24.1-fix-special-case-recreation-of.patch deleted file mode 100644 index 4d28a8d..0000000 --- a/perl-5.24.1-fix-special-case-recreation-of.patch +++ /dev/null @@ -1,79 +0,0 @@ -From 59ef97c7af81ab6faba749d88b558a55da41c249 Mon Sep 17 00:00:00 2001 -From: Zefram -Date: Sun, 22 Jan 2017 07:26:34 +0000 -Subject: [PATCH] fix special-case recreation of *:: -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Ported to 5.24.1: - -commit 120921acd4cf27bb932a725a8cf5c957652b22eb -Author: Zefram -Date: Sun Jan 22 07:26:34 2017 +0000 - - fix special-case recreation of *:: - - If *:: is called for then as a special case it is looked up as - $::{"main::"}. If $::{"main::"} has been deleted, then that hash entry - is recreated. But formerly it was only recreated as an undef scalar, - which broke things relying on glob lookup returning a glob. Now in - that special case the recreated hash entry is initialised as a glob, - and populated with the customary recursive reference to the main stash. - Fixes [perl #129869]. - -Signed-off-by: Petr Písař ---- - gv.c | 11 +++++++++-- - t/op/stash.t | 9 ++++++++- - 2 files changed, 17 insertions(+), 3 deletions(-) - -diff --git a/gv.c b/gv.c -index c89a3e7..3fda9b9 100644 ---- a/gv.c -+++ b/gv.c -@@ -1642,8 +1642,15 @@ S_parse_gv_stash_name(pTHX_ HV **stash, GV **gv, const char **name, - name_cursor++; - *name = name_cursor+1; - if (*name == name_end) { -- if (!*gv) -- *gv = MUTABLE_GV(*hv_fetchs(PL_defstash, "main::", TRUE)); -+ if (!*gv) { -+ *gv = MUTABLE_GV(*hv_fetchs(PL_defstash, "main::", TRUE)); -+ if (SvTYPE(*gv) != SVt_PVGV) { -+ gv_init_pvn(*gv, PL_defstash, "main::", 6, -+ GV_ADDMULTI); -+ GvHV(*gv) = -+ MUTABLE_HV(SvREFCNT_inc_simple(PL_defstash)); -+ } -+ } - return TRUE; - } - } -diff --git a/t/op/stash.t b/t/op/stash.t -index 7ac379b..d6fded4 100644 ---- a/t/op/stash.t -+++ b/t/op/stash.t -@@ -7,7 +7,7 @@ BEGIN { - - BEGIN { require "./test.pl"; } - --plan( tests => 54 ); -+plan( tests => 55 ); - - # Used to segfault (bug #15479) - fresh_perl_like( -@@ -355,3 +355,10 @@ is runperl( - ), - "ok\n", - "[perl #128238] non-stashes in stashes"; -+ -+is runperl( -+ prog => '%:: = (); print *{q|::|}, qq|\n|', -+ stderr => 1, -+ ), -+ "*main::main::\n", -+ "[perl #129869] lookup %:: by name after clearing %::"; --- -2.7.4 - diff --git a/perl-5.24.1-perl-129125-copy-form-data-if-it-might-be-freed.patch b/perl-5.24.1-perl-129125-copy-form-data-if-it-might-be-freed.patch deleted file mode 100644 index 176efa9..0000000 --- a/perl-5.24.1-perl-129125-copy-form-data-if-it-might-be-freed.patch +++ /dev/null @@ -1,107 +0,0 @@ -From 0c43d46cd570d2a19edfa54b9c637dea5c0a3514 Mon Sep 17 00:00:00 2001 -From: Tony Cook -Date: Thu, 19 Jan 2017 16:28:03 +1100 -Subject: [PATCH] (perl #129125) copy form data if it might be freed -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Ported to 5.24.1: - -commit 86191aed6f092273950ebdd48f886d4ec0c5e85e -Author: Tony Cook -Date: Thu Jan 19 16:28:03 2017 +1100 - - (perl #129125) copy form data if it might be freed - - If the format SV also appeared as an argument, and the FF_CHOP - operator modified that argument, the magic and hence the compiled - format would be freed, and the next iteration of the processing - the compiled format would read freed memory. - - Unlike my original patch this copies the formsv too, since - that is also stored in the magic, and is needed for presenting - literal text from the format. - -Signed-off-by: Petr Písař ---- - pp_ctl.c | 18 ++++++++++++++++++ - t/op/write.t | 19 ++++++++++++++++++- - 2 files changed, 36 insertions(+), 1 deletion(-) - -diff --git a/pp_ctl.c b/pp_ctl.c -index b94c09a..e859e01 100644 ---- a/pp_ctl.c -+++ b/pp_ctl.c -@@ -490,6 +490,7 @@ PP(pp_formline) - U8 *source; /* source of bytes to append */ - STRLEN to_copy; /* how may bytes to append */ - char trans; /* what chars to translate */ -+ bool copied_form = false; /* have we duplicated the form? */ - - mg = doparseform(tmpForm); - -@@ -687,6 +688,23 @@ PP(pp_formline) - case FF_CHOP: /* (for ^*) chop the current item */ - if (sv != &PL_sv_no) { - const char *s = chophere; -+ if (!copied_form && -+ ((sv == tmpForm || SvSMAGICAL(sv)) -+ || (SvGMAGICAL(tmpForm) && !sv_only_taint_gmagic(tmpForm))) ) { -+ /* sv and tmpForm are either the same SV, or magic might allow modification -+ of tmpForm when sv is modified, so copy */ -+ SV *newformsv = sv_mortalcopy(formsv); -+ U32 *new_compiled; -+ -+ f = SvPV_nolen(newformsv) + (f - SvPV_nolen(formsv)); -+ Newx(new_compiled, mg->mg_len / sizeof(U32), U32); -+ memcpy(new_compiled, mg->mg_ptr, mg->mg_len); -+ SAVEFREEPV(new_compiled); -+ fpc = new_compiled + (fpc - (U32*)mg->mg_ptr); -+ formsv = newformsv; -+ -+ copied_form = true; -+ } - if (chopspace) { - while (isSPACE(*s)) - s++; -diff --git a/t/op/write.t b/t/op/write.t -index 590d658..ab2733f 100644 ---- a/t/op/write.t -+++ b/t/op/write.t -@@ -98,7 +98,7 @@ for my $tref ( @NumTests ){ - my $bas_tests = 21; - - # number of tests in section 3 --my $bug_tests = 66 + 3 * 3 * 5 * 2 * 3 + 2 + 66 + 4 + 2 + 3 + 96 + 11 + 3; -+my $bug_tests = 66 + 3 * 3 * 5 * 2 * 3 + 2 + 66 + 6 + 2 + 3 + 96 + 11 + 3; - - # number of tests in section 4 - my $hmb_tests = 37; -@@ -1637,6 +1637,23 @@ printf ">%s<\n", ref $zamm; - print "$zamm->[0]\n"; - EOP - -+# [perl #129125] - detected by -fsanitize=address or valgrind -+# the compiled format would be freed when the format string was modified -+# by the chop operator -+fresh_perl_is(<<'EOP', "^", { stderr => 1 }, '#129125 - chop on format'); -+my $x = '^@'; -+formline$x=>$x; -+print $^A; -+EOP -+ -+fresh_perl_is(<<'EOP', '<^< xx AA><>', { stderr => 1 }, '#129125 - chop on format, later values'); -+my $x = '^< xx ^<'; -+my $y = 'AA'; -+formline $x => $x, $y; -+print "<$^A><$x><$y>"; -+EOP -+ -+ - # [perl #73690] - - select +(select(RT73690), do { --- -2.7.4 - diff --git a/perl-5.24.1-perl-129274-avoid-treating-the-in-as-a-comment-intro.patch b/perl-5.24.1-perl-129274-avoid-treating-the-in-as-a-comment-intro.patch deleted file mode 100644 index 922b171..0000000 --- a/perl-5.24.1-perl-129274-avoid-treating-the-in-as-a-comment-intro.patch +++ /dev/null @@ -1,70 +0,0 @@ -From 2f221fc2333bd87615c03354b591b390e8b06715 Mon Sep 17 00:00:00 2001 -From: Tony Cook -Date: Tue, 24 Jan 2017 11:14:28 +1100 -Subject: [PATCH] (perl #129274) avoid treating the # in $# as a comment intro -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Petr Písař: Ported to 5.24.1: - -commit 71776ae4fad9a7659deefe0c2376d45b873ffd6a -Author: Tony Cook -Date: Tue Jan 24 11:14:28 2017 +1100 - - (perl #129274) avoid treating the # in $# as a comment intro - -Signed-off-by: Petr Písař ---- - t/op/lex.t | 15 ++++++++++++++- - toke.c | 4 +++- - 2 files changed, 17 insertions(+), 2 deletions(-) - -diff --git a/t/op/lex.t b/t/op/lex.t -index 9ada592..d679d7c 100644 ---- a/t/op/lex.t -+++ b/t/op/lex.t -@@ -7,7 +7,7 @@ use warnings; - - BEGIN { chdir 't' if -d 't'; require './test.pl'; } - --plan(tests => 26); -+plan(tests => 27); - - { - no warnings 'deprecated'; -@@ -216,3 +216,16 @@ fresh_perl_like( - {}, - '[perl #129336] - #!perl -i argument handling' - ); -+ -+# probably only failed under ASAN -+fresh_perl_is( -+ "stat\tt\$#0", -+ <<'EOM', -+$# is no longer supported at - line 1. -+Number found where operator expected at - line 1, near "$#0" -+ (Missing operator before 0?) -+Can't call method "t" on an undefined value at - line 1. -+EOM -+ {}, -+ "[perl #129273] heap use after free or overflow" -+); -diff --git a/toke.c b/toke.c -index 576ce72..630fc59 100644 ---- a/toke.c -+++ b/toke.c -@@ -4090,7 +4090,9 @@ S_intuit_method(pTHX_ char *start, SV *ioname, CV *cv) - if (cv || PL_last_lop_op == OP_PRINT || PL_last_lop_op == OP_SAY - || isUPPER(*PL_tokenbuf)) - return 0; -- s = skipspace(s); -+ /* this could be $# */ -+ if (isSPACE(*s)) -+ s = skipspace(s); - PL_bufptr = start; - PL_expect = XREF; - return *s == '(' ? FUNCMETH : METHOD; --- -2.7.4 - diff --git a/perl-5.24.1-perl-129281-test-for-buffer-overflow-issue.patch b/perl-5.24.1-perl-129281-test-for-buffer-overflow-issue.patch deleted file mode 100644 index 30397b5..0000000 --- a/perl-5.24.1-perl-129281-test-for-buffer-overflow-issue.patch +++ /dev/null @@ -1,49 +0,0 @@ -From 92f8cd4e7b0ff3d09162139e3c99b1d9310bca81 Mon Sep 17 00:00:00 2001 -From: Tony Cook -Date: Mon, 10 Oct 2016 10:46:46 +1100 -Subject: [PATCH] (perl #129281) test for buffer overflow issue -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Ported to 5.24.1: - -commit d2ba660af00f1bf2e7012741615eff7c19f29707 -Author: Tony Cook -Date: Mon Oct 10 10:46:46 2016 +1100 - - (perl #129281) test for buffer overflow issue - -Signed-off-by: Petr Písař ---- - t/re/pat.t | 7 ++++++- - 1 file changed, 6 insertions(+), 1 deletion(-) - -diff --git a/t/re/pat.t b/t/re/pat.t -index 749edd0..7b8e6f7 100644 ---- a/t/re/pat.t -+++ b/t/re/pat.t -@@ -23,7 +23,7 @@ BEGIN { - skip_all_without_unicode_tables(); - } - --plan tests => 792; # Update this when adding/deleting tests. -+plan tests => 793; # Update this when adding/deleting tests. - - run_tests() unless caller; - -@@ -1779,6 +1779,11 @@ EOP - }msx, { stderr => 1 }, "Offsets in debug output are not negative"); - } - } -+ { -+ # [perl #129281] buffer write overflow, detected by ASAN, valgrind -+ local $::TODO = "whilem_c bumped too much"; -+ fresh_perl_is('/0(?0)|^*0(?0)|^*(^*())0|/', '', {}, "don't bump whilem_c too much"); -+ } - } # End of sub run_tests - - 1; --- -2.7.4 - diff --git a/perl-5.24.1-perl-129340-copy-the-source-when-inside-the-dest-in-.patch b/perl-5.24.1-perl-129340-copy-the-source-when-inside-the-dest-in-.patch deleted file mode 100644 index f400675..0000000 --- a/perl-5.24.1-perl-129340-copy-the-source-when-inside-the-dest-in-.patch +++ /dev/null @@ -1,104 +0,0 @@ -From 4fe0e2d067ac5639d94f35f8c7e8ac4e0e3ab336 Mon Sep 17 00:00:00 2001 -From: Tony Cook -Date: Mon, 20 Feb 2017 11:02:21 +1100 -Subject: [PATCH] (perl #129340) copy the source when inside the dest in - sv_insert_flags() -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Ported to 5.24.1: - -commit e7a8a8aac45d42d72d1586227ca51771f193f5dc -Author: Tony Cook -Date: Mon Feb 20 11:02:21 2017 +1100 - - (perl #129340) copy the source when inside the dest in sv_insert_flags() - -Signed-off-by: Petr Písař ---- - embed.fnc | 2 +- - proto.h | 2 +- - sv.c | 12 +++++++++++- - t/op/substr.t | 5 ++++- - 4 files changed, 17 insertions(+), 4 deletions(-) - -diff --git a/embed.fnc b/embed.fnc -index a64ffba..2395efb 100644 ---- a/embed.fnc -+++ b/embed.fnc -@@ -1437,7 +1437,7 @@ Amdb |void |sv_insert |NN SV *const bigstr|const STRLEN offset \ - |const STRLEN len|NN const char *const little \ - |const STRLEN littlelen - Apd |void |sv_insert_flags|NN SV *const bigstr|const STRLEN offset|const STRLEN len \ -- |NN const char *const little|const STRLEN littlelen|const U32 flags -+ |NN const char *little|const STRLEN littlelen|const U32 flags - Apd |int |sv_isa |NULLOK SV* sv|NN const char *const name - Apd |int |sv_isobject |NULLOK SV* sv - Apd |STRLEN |sv_len |NULLOK SV *const sv -diff --git a/proto.h b/proto.h -index fb4ee29..2b2004a 100644 ---- a/proto.h -+++ b/proto.h -@@ -3015,7 +3015,7 @@ PERL_CALLCONV void Perl_sv_inc_nomg(pTHX_ SV *const sv); - /* PERL_CALLCONV void Perl_sv_insert(pTHX_ SV *const bigstr, const STRLEN offset, const STRLEN len, const char *const little, const STRLEN littlelen); */ - #define PERL_ARGS_ASSERT_SV_INSERT \ - assert(bigstr); assert(little) --PERL_CALLCONV void Perl_sv_insert_flags(pTHX_ SV *const bigstr, const STRLEN offset, const STRLEN len, const char *const little, const STRLEN littlelen, const U32 flags); -+PERL_CALLCONV void Perl_sv_insert_flags(pTHX_ SV *const bigstr, const STRLEN offset, const STRLEN len, const char *little, const STRLEN littlelen, const U32 flags); - #define PERL_ARGS_ASSERT_SV_INSERT_FLAGS \ - assert(bigstr); assert(little) - PERL_CALLCONV int Perl_sv_isa(pTHX_ SV* sv, const char *const name); -diff --git a/sv.c b/sv.c -index d1e84f0..697db41 100644 ---- a/sv.c -+++ b/sv.c -@@ -6223,7 +6223,7 @@ C that applies to C. - */ - - void --Perl_sv_insert_flags(pTHX_ SV *const bigstr, const STRLEN offset, const STRLEN len, const char *const little, const STRLEN littlelen, const U32 flags) -+Perl_sv_insert_flags(pTHX_ SV *const bigstr, const STRLEN offset, const STRLEN len, const char *little, const STRLEN littlelen, const U32 flags) - { - char *big; - char *mid; -@@ -6236,6 +6236,16 @@ Perl_sv_insert_flags(pTHX_ SV *const bigstr, const STRLEN offset, const STRLEN l - - SvPV_force_flags(bigstr, curlen, flags); - (void)SvPOK_only_UTF8(bigstr); -+ -+ if (little >= SvPVX(bigstr) && -+ little < SvPVX(bigstr) + (SvLEN(bigstr) ? SvLEN(bigstr) : SvCUR(bigstr))) { -+ /* little is a pointer to within bigstr, since we can reallocate bigstr, -+ or little...little+littlelen might overlap offset...offset+len we make a copy -+ */ -+ little = savepvn(little, littlelen); -+ SAVEFREEPV(little); -+ } -+ - if (offset + len > curlen) { - SvGROW(bigstr, offset+len+1); - Zero(SvPVX(bigstr)+curlen, offset+len-curlen, char); -diff --git a/t/op/substr.t b/t/op/substr.t -index eae2403..01c36a9 100644 ---- a/t/op/substr.t -+++ b/t/op/substr.t -@@ -22,7 +22,7 @@ $SIG{__WARN__} = sub { - } - }; - --plan(388); -+plan(389); - - run_tests() unless caller; - -@@ -869,3 +869,6 @@ is($destroyed, 1, 'Timely scalar destruction with lvalue substr'); - - is($result_3363, "best", "ref-to-substr retains lvalue-ness under recursion [perl #3363]"); - } -+ -+# failed with ASAN -+fresh_perl_is('$0 = "/usr/bin/perl"; substr($0, 0, 0, $0)', '', {}, "(perl #129340) substr() with source in target"); --- -2.7.4 - diff --git a/perl-5.24.1-perl-129342-ensure-range-start-is-set-after-error-in.patch b/perl-5.24.1-perl-129342-ensure-range-start-is-set-after-error-in.patch deleted file mode 100644 index 6543e4f..0000000 --- a/perl-5.24.1-perl-129342-ensure-range-start-is-set-after-error-in.patch +++ /dev/null @@ -1,73 +0,0 @@ -From a26907949ed561dccd661fc8600889eddc6664ea Mon Sep 17 00:00:00 2001 -From: Hugo van der Sanden -Date: Wed, 5 Oct 2016 14:53:27 +0100 -Subject: [PATCH] [perl #129342] ensure range-start is set after error in tr/// -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Ported to 5.24.1: - -t 59143e29a717d67a61b869a6c5bb49574f1ef43f -Author: Tony Cook -Date: Tue Jan 17 11:52:53 2017 +1100 - - (perl #129342) test for buffer overflow - -commit 3dd4eaeb8ac39e08179145b86aedda36584a3509 -Author: Hugo van der Sanden -Date: Wed Oct 5 14:53:27 2016 +0100 - - [perl #129342] ensure range-start is set after error in tr/// - - A parse error due to invalid octal or hex escape in the range of a - transliteration must still ensure some kind of start and end values - are captured, since we don't stop on the first such error. Failure - to do so can cause invalid reads after "Here we have parsed a range". - -Signed-off-by: Petr Písař ---- - t/lib/croak/toke | 7 +++++++ - toke.c | 4 ++-- - 2 files changed, 9 insertions(+), 2 deletions(-) - -diff --git a/t/lib/croak/toke b/t/lib/croak/toke -index 18dfa24..578a6da 100644 ---- a/t/lib/croak/toke -+++ b/t/lib/croak/toke -@@ -302,3 +302,10 @@ Execution of - aborted due to compilation errors. - BEGIN <> - EXPECT - Illegal declaration of subroutine BEGIN at - line 1. -+######## -+# NAME tr/// handling of mis-formatted \o characters -+# may only fail with ASAN -+tr/\o-0//; -+EXPECT -+Missing braces on \o{} at - line 2, within string -+Execution of - aborted due to compilation errors. -diff --git a/toke.c b/toke.c -index 288f372..576ce72 100644 ---- a/toke.c -+++ b/toke.c -@@ -3338,7 +3338,7 @@ S_scan_const(pTHX_ char *start) - UTF); - if (! valid) { - yyerror(error); -- continue; -+ uv = 0; /* drop through to ensure range ends are set */ - } - goto NUM_ESCAPE_INSERT; - } -@@ -3356,7 +3356,7 @@ S_scan_const(pTHX_ char *start) - UTF); - if (! valid) { - yyerror(error); -- continue; -+ uv = 0; /* drop through to ensure range ends are set */ - } - } - --- -2.7.4 - diff --git a/perl-5.24.1-perl-129377-don-t-read-past-start-of-string-for-unma.patch b/perl-5.24.1-perl-129377-don-t-read-past-start-of-string-for-unma.patch deleted file mode 100644 index cbf5a73..0000000 --- a/perl-5.24.1-perl-129377-don-t-read-past-start-of-string-for-unma.patch +++ /dev/null @@ -1,107 +0,0 @@ -From a08fa6fd157fd0d61da7f20f07b939fbc302c2c6 Mon Sep 17 00:00:00 2001 -From: Hugo van der Sanden -Date: Wed, 5 Oct 2016 12:56:05 +0100 -Subject: [PATCH] [perl #129377] don't read past start of string for unmatched - backref -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Ported to 5.24.1: - -commit 2dfc11ec3af312f4fa3eb244077c79dbb5fc2d85 -Author: Hugo van der Sanden -Date: Wed Oct 5 12:56:05 2016 +0100 - - [perl #129377] don't read past start of string for unmatched backref - - We can have (start, end) == (0, -1) for an unmatched backref, we must - check for that. - -Signed-off-by: Petr Písař ---- - regexec.c | 10 ++++++---- - t/re/pat.t | 16 +++++++++++++++- - 2 files changed, 21 insertions(+), 5 deletions(-) - -diff --git a/regexec.c b/regexec.c -index a5d5db4..a7bc0c3 100644 ---- a/regexec.c -+++ b/regexec.c -@@ -5179,6 +5179,7 @@ S_regmatch(pTHX_ regmatch_info *reginfo, char *startpos, regnode *prog) - regnode *next; - U32 n = 0; /* general value; init to avoid compiler warning */ - SSize_t ln = 0; /* len or last; init to avoid compiler warning */ -+ SSize_t endref = 0; /* offset of end of backref when ln is start */ - char *locinput = startpos; - char *pushinput; /* where to continue after a PUSH */ - I32 nextchr; /* is always set to UCHARAT(locinput), or -1 at EOS */ -@@ -6489,10 +6490,11 @@ S_regmatch(pTHX_ regmatch_info *reginfo, char *startpos, regnode *prog) - - do_nref_ref_common: - ln = rex->offs[n].start; -+ endref = rex->offs[n].end; - reginfo->poscache_iter = reginfo->poscache_maxiter; /* Void cache */ -- if (rex->lastparen < n || ln == -1) -+ if (rex->lastparen < n || ln == -1 || endref == -1) - sayNO; /* Do not match unless seen CLOSEn. */ -- if (ln == rex->offs[n].end) -+ if (ln == endref) - break; - - s = reginfo->strbeg + ln; -@@ -6506,7 +6508,7 @@ S_regmatch(pTHX_ regmatch_info *reginfo, char *startpos, regnode *prog) - * not going off the end given by reginfo->strend, and - * returns in upon success, how much of the - * current input was matched */ -- if (! foldEQ_utf8_flags(s, NULL, rex->offs[n].end - ln, utf8_target, -+ if (! foldEQ_utf8_flags(s, NULL, endref - ln, utf8_target, - locinput, &limit, 0, utf8_target, utf8_fold_flags)) - { - sayNO; -@@ -6521,7 +6523,7 @@ S_regmatch(pTHX_ regmatch_info *reginfo, char *startpos, regnode *prog) - (type == REF || - UCHARAT(s) != fold_array[nextchr])) - sayNO; -- ln = rex->offs[n].end - ln; -+ ln = endref - ln; - if (locinput + ln > reginfo->strend) - sayNO; - if (ln > 1 && (type == REF -diff --git a/t/re/pat.t b/t/re/pat.t -index 4aa77cf..749edd0 100644 ---- a/t/re/pat.t -+++ b/t/re/pat.t -@@ -23,7 +23,7 @@ BEGIN { - skip_all_without_unicode_tables(); - } - --plan tests => 791; # Update this when adding/deleting tests. -+plan tests => 792; # Update this when adding/deleting tests. - - run_tests() unless caller; - -@@ -1765,6 +1765,20 @@ EOP - utf8::upgrade($str); - ok( $str =~ m{^(a|a\x{e4})$}, "fix [perl #129950] - utf8 case" ); - } -+ { -+ # [perl #129377] backref to an unmatched capture should not cause -+ # reading before start of string. -+ SKIP: { -+ skip "no re-debug under miniperl" if is_miniperl; -+ my $prog = <<'EOP'; -+use re qw(Debug EXECUTE); -+"x" =~ m{ () y | () \1 }x; -+EOP -+ fresh_perl_like($prog, qr{ -+ \A (?! .* ^ \s+ - ) -+ }msx, { stderr => 1 }, "Offsets in debug output are not negative"); -+ } -+ } - } # End of sub run_tests - - 1; --- -2.7.4 - diff --git a/perl-5.24.1-perl-130262-split-scalar-context-stack-overflow-fix.patch b/perl-5.24.1-perl-130262-split-scalar-context-stack-overflow-fix.patch deleted file mode 100644 index e250a0a..0000000 --- a/perl-5.24.1-perl-130262-split-scalar-context-stack-overflow-fix.patch +++ /dev/null @@ -1,62 +0,0 @@ -From 2bcb4a5888b1c26ee11bc447cc02b42290c707af Mon Sep 17 00:00:00 2001 -From: Tony Cook -Date: Mon, 5 Dec 2016 11:48:14 +1100 -Subject: [PATCH] (perl #130262) split scalar context stack overflow fix -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Ported to 5.14.1: - -commit 02c161ef974f8f1efbb5632f741c1164adb6ca75 -Author: Tony Cook -Date: Mon Dec 5 11:48:14 2016 +1100 - - (perl #130262) split scalar context stack overflow fix - - pp_split didn't ensure there was space for its return value - in scalar context. - -Signed-off-by: Petr Písař ---- - pp.c | 2 +- - t/op/split.t | 6 +++++- - 2 files changed, 6 insertions(+), 2 deletions(-) - -diff --git a/pp.c b/pp.c -index 70345ce..334b353 100644 ---- a/pp.c -+++ b/pp.c -@@ -6259,7 +6259,7 @@ PP(pp_split) - } - - GETTARGET; -- PUSHi(iters); -+ XPUSHi(iters); - RETURN; - } - -diff --git a/t/op/split.t b/t/op/split.t -index b7846a1..3e08841 100644 ---- a/t/op/split.t -+++ b/t/op/split.t -@@ -7,7 +7,7 @@ BEGIN { - set_up_inc('../lib'); - } - --plan tests => 133; -+plan tests => 134; - - $FS = ':'; - -@@ -534,3 +534,7 @@ is "@a", '1 2 3', 'assignment to split-to-array (stacked)'; - ok eval { $a[0] = 'a'; 1; }, "array split filling AvARRAY: assign 0"; - is "@a", "a b", "array split filling AvARRAY: result"; - } -+ -+fresh_perl_is(<<'CODE', '', {}, "scalar split stack overflow"); -+map{int"";split//.0>60for"0000000000000000"}split// for"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" -+CODE --- -2.7.4 - diff --git a/perl-5.24.1-perl-130814-update-pointer-into-PL_linestr-after-loo.patch b/perl-5.24.1-perl-130814-update-pointer-into-PL_linestr-after-loo.patch deleted file mode 100644 index 6a6df7f..0000000 --- a/perl-5.24.1-perl-130814-update-pointer-into-PL_linestr-after-loo.patch +++ /dev/null @@ -1,50 +0,0 @@ -From 9df34f9c4701104a366e768237ca694411136d2a Mon Sep 17 00:00:00 2001 -From: Hugo van der Sanden -Date: Sun, 19 Feb 2017 10:46:09 +0000 -Subject: [PATCH] update pointer into PL_linestr after lookahead -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Ported to: 5.24.1: - -commit 90f2cc9a600117a49f8ee3e30cc681f062350c24 -Author: Hugo van der Sanden -Date: Sun Feb 19 10:46:09 2017 +0000 - - [perl #130814] update pointer into PL_linestr after lookahead - - Looking ahead for the "Missing $ on loop variable" diagnostic can reallocate - PL_linestr, invalidating our pointer. Save the offset so we can update it - in that case. - -Signed-off-by: Petr Písař ---- - toke.c | 4 ++++ - 1 file changed, 4 insertions(+) - -diff --git a/toke.c b/toke.c -index 630fc59..029d2ea 100644 ---- a/toke.c -+++ b/toke.c -@@ -7565,6 +7565,7 @@ Perl_yylex(pTHX) - s = skipspace(s); - if (PL_expect == XSTATE && isIDFIRST_lazy_if(s,UTF)) { - char *p = s; -+ SSize_t s_off = s - SvPVX(PL_linestr); - - if ((PL_bufend - p) >= 3 - && strnEQ(p, "my", 2) && isSPACE(*(p + 2))) -@@ -7582,6 +7583,9 @@ Perl_yylex(pTHX) - } - if (*p != '$') - Perl_croak(aTHX_ "Missing $ on loop variable"); -+ -+ /* The buffer may have been reallocated, update s */ -+ s = SvPVX(PL_linestr) + s_off; - } - OPERATOR(FOR); - --- -2.7.4 - diff --git a/perl-5.24.1-perl-130815-fix-ck_return-null-pointer-deref-on-malf.patch b/perl-5.24.1-perl-130815-fix-ck_return-null-pointer-deref-on-malf.patch deleted file mode 100644 index 37d7af4..0000000 --- a/perl-5.24.1-perl-130815-fix-ck_return-null-pointer-deref-on-malf.patch +++ /dev/null @@ -1,72 +0,0 @@ -From be05b2f7a801ae1721641fd240e0d7d6fc018136 Mon Sep 17 00:00:00 2001 -From: Aaron Crane -Date: Sun, 19 Feb 2017 12:26:54 +0000 -Subject: [PATCH] fix ck_return null-pointer deref on malformed code -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Ported to 5.24.1: - -commit e5c165a0b7551ffb94661aa7f18aabadba257782 -Author: Aaron Crane -Date: Sun Feb 19 12:26:54 2017 +0000 - - [perl #130815] fix ck_return null-pointer deref on malformed code - -commit 9de2a80ffc0eefb4d60e13766baf4bad129e0a92 -Author: David Mitchell -Date: Sun Feb 19 12:36:58 2017 +0000 - - bump test count in t/comp/parser.t - - (the previous commit forgot to) - -Signed-off-by: Petr Písař ---- - op.c | 2 +- - t/comp/parser.t | 8 +++++++- - 2 files changed, 8 insertions(+), 2 deletions(-) - -diff --git a/op.c b/op.c -index 018d90c..9a61ea7 100644 ---- a/op.c -+++ b/op.c -@@ -10695,7 +10695,7 @@ Perl_ck_return(pTHX_ OP *o) - PERL_ARGS_ASSERT_CK_RETURN; - - kid = OpSIBLING(cLISTOPo->op_first); -- if (CvLVALUE(PL_compcv)) { -+ if (PL_compcv && CvLVALUE(PL_compcv)) { - for (; kid; kid = OpSIBLING(kid)) - op_lvalue(kid, OP_LEAVESUBLV); - } -diff --git a/t/comp/parser.t b/t/comp/parser.t -index 50f601c..5016509 100644 ---- a/t/comp/parser.t -+++ b/t/comp/parser.t -@@ -8,7 +8,7 @@ BEGIN { - chdir 't' if -d 't'; - } - --print "1..173\n"; -+print "1..174\n"; - - sub failed { - my ($got, $expected, $name) = @_; -@@ -546,6 +546,12 @@ eval "grep+grep"; - eval 'qq{@{0]}${}},{})'; - is(1, 1, "RT #124207"); - -+# RT #130815: crash in ck_return for malformed code -+{ -+ eval 'm(@{if(0){sub d{]]])}return'; -+ like $@, qr/^syntax error at \(eval \d+\) line 1, near "\{\]"/, -+ 'RT #130815: null pointer deref'; -+} - - # Add new tests HERE (above this line) - --- -2.7.4 - diff --git a/perl-5.24.1-perl-130822-fix-an-AV-leak-in-Perl_reg_named_buff_fe.patch b/perl-5.24.1-perl-130822-fix-an-AV-leak-in-Perl_reg_named_buff_fe.patch deleted file mode 100644 index 0ebda55..0000000 --- a/perl-5.24.1-perl-130822-fix-an-AV-leak-in-Perl_reg_named_buff_fe.patch +++ /dev/null @@ -1,81 +0,0 @@ -From 0cefeca1fd2405ad1b5544a3919e0000377fde5e Mon Sep 17 00:00:00 2001 -From: Tony Cook -Date: Tue, 21 Feb 2017 16:38:36 +1100 -Subject: [PATCH] (perl #130822) fix an AV leak in Perl_reg_named_buff_fetch -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Ported to 5.24.1: - -commit 853eb961c1a3b014b5a9510740abc15ccd4383b6 -Author: Tony Cook -Date: Tue Feb 21 16:38:36 2017 +1100 - - (perl #130822) fix an AV leak in Perl_reg_named_buff_fetch - - Originally noted as a scoping issue by Andy Lester. - -Signed-off-by: Petr Písař ---- - regcomp.c | 5 +---- - t/op/svleak.t | 12 +++++++++++- - 2 files changed, 12 insertions(+), 5 deletions(-) - -diff --git a/regcomp.c b/regcomp.c -index 6329f6c..989c528 100644 ---- a/regcomp.c -+++ b/regcomp.c -@@ -7849,21 +7849,18 @@ SV* - Perl_reg_named_buff_fetch(pTHX_ REGEXP * const r, SV * const namesv, - const U32 flags) - { -- AV *retarray = NULL; - SV *ret; - struct regexp *const rx = ReANY(r); - - PERL_ARGS_ASSERT_REG_NAMED_BUFF_FETCH; - -- if (flags & RXapif_ALL) -- retarray=newAV(); -- - if (rx && RXp_PAREN_NAMES(rx)) { - HE *he_str = hv_fetch_ent( RXp_PAREN_NAMES(rx), namesv, 0, 0 ); - if (he_str) { - IV i; - SV* sv_dat=HeVAL(he_str); - I32 *nums=(I32*)SvPVX(sv_dat); -+ AV * const retarray = (flags & RXapif_ALL) ? newAV() : NULL; - for ( i=0; inparens) >= nums[i] - && rx->offs[nums[i]].start != -1 -diff --git a/t/op/svleak.t b/t/op/svleak.t -index b0692ff..eeea7c1 100644 ---- a/t/op/svleak.t -+++ b/t/op/svleak.t -@@ -15,7 +15,7 @@ BEGIN { - - use Config; - --plan tests => 133; -+plan tests => 134; - - # run some code N times. If the number of SVs at the end of loop N is - # greater than (N-1)*delta at the end of loop 1, we've got a leak -@@ -557,3 +557,13 @@ EOF - sub lk { { my $d = $op->hints_hash->HASH } } - ::leak(3, 0, \&lk, q!B::RHE->HASH shoudln't leak!); - } -+ -+{ -+ # Perl_reg_named_buff_fetch() leaks an AV when called with an RE -+ # with no named captures -+ sub named { -+ "x" =~ /x/; -+ re::regname("foo", 1); -+ } -+ ::leak(2, 0, \&named, "Perl_reg_named_buff_fetch() on no-name RE"); -+} --- -2.7.4 - diff --git a/perl-5.24.1-permit-goto-at-top-level-of-multicalled-sub.patch b/perl-5.24.1-permit-goto-at-top-level-of-multicalled-sub.patch deleted file mode 100644 index b4dde60..0000000 --- a/perl-5.24.1-permit-goto-at-top-level-of-multicalled-sub.patch +++ /dev/null @@ -1,94 +0,0 @@ -From 0a1ddbeaeeea3c690c2408bd4c3a61c05cb9695f Mon Sep 17 00:00:00 2001 -From: Zefram -Date: Mon, 23 Jan 2017 02:25:50 +0000 -Subject: [PATCH] permit goto at top level of multicalled sub -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Petr Písař: Ported to 5.24.1: - -commit 3c157b3cf0631c69ffa5aa2d55b9199bf93b22a9 -Author: Zefram -Date: Mon Jan 23 02:25:50 2017 +0000 - - permit goto at top level of multicalled sub - - A multicalled sub is reckoned to be a pseudo block, out of which it is - not permissible to goto. However, the test for a pseudo block was being - applied too early, preventing not just escape from a multicalled sub but - also a goto at the top level within the sub. This is a bug similar, but - not identical, to [perl #113938]. Now the test is deferred, permitting - goto at the sub's top level but still forbidding goto out of it. - -Signed-off-by: Petr Písař ---- - pp_ctl.c | 11 ++++++----- - t/op/goto.t | 11 ++++++++++- - 2 files changed, 16 insertions(+), 6 deletions(-) - -diff --git a/pp_ctl.c b/pp_ctl.c -index e859e01..a1fc2f4 100644 ---- a/pp_ctl.c -+++ b/pp_ctl.c -@@ -2921,6 +2921,7 @@ PP(pp_goto) - OP *gotoprobe = NULL; - bool leaving_eval = FALSE; - bool in_block = FALSE; -+ bool pseudo_block = FALSE; - PERL_CONTEXT *last_eval_cx = NULL; - - /* find label */ -@@ -2959,11 +2960,9 @@ PP(pp_goto) - gotoprobe = PL_main_root; - break; - case CXt_SUB: -- if (CvDEPTH(cx->blk_sub.cv) && !CxMULTICALL(cx)) { -- gotoprobe = CvROOT(cx->blk_sub.cv); -- break; -- } -- /* FALLTHROUGH */ -+ gotoprobe = CvROOT(cx->blk_sub.cv); -+ pseudo_block = cBOOL(CxMULTICALL(cx)); -+ break; - case CXt_FORMAT: - case CXt_NULL: - DIE(aTHX_ "Can't \"goto\" out of a pseudo block"); -@@ -2992,6 +2991,8 @@ PP(pp_goto) - break; - } - } -+ if (pseudo_block) -+ DIE(aTHX_ "Can't \"goto\" out of a pseudo block"); - PL_lastgotoprobe = gotoprobe; - } - if (!retop) -diff --git a/t/op/goto.t b/t/op/goto.t -index aa2f24f..07bd6fb 100644 ---- a/t/op/goto.t -+++ b/t/op/goto.t -@@ -10,7 +10,7 @@ BEGIN { - - use warnings; - use strict; --plan tests => 98; -+plan tests => 99; - our $TODO; - - my $deprecated = 0; -@@ -774,3 +774,12 @@ sub FETCH { $_[0][0] } - tie my $t, "", sub { "cluck up porridge" }; - is eval { sub { goto $t }->() }//$@, 'cluck up porridge', - 'tied arg returning sub ref'; -+ -+sub revnumcmp ($$) { -+ goto FOO; -+ die; -+ FOO: -+ return $_[1] <=> $_[0]; -+} -+is eval { join(":", sort revnumcmp (9,5,1,3,7)) }, "9:7:5:3:1", -+ "can goto at top level of multicalled sub"; --- -2.7.4 - diff --git a/perl-5.25.0-Fix-precedence-in-hv_ename_delete.patch b/perl-5.25.0-Fix-precedence-in-hv_ename_delete.patch deleted file mode 100644 index 0d1d5b4..0000000 --- a/perl-5.25.0-Fix-precedence-in-hv_ename_delete.patch +++ /dev/null @@ -1,82 +0,0 @@ -From 60a26c797bbff039ea7f861903732e7cceae415a Mon Sep 17 00:00:00 2001 -From: Hugo van der Sanden -Date: Sun, 15 May 2016 13:48:58 -0700 -Subject: [PATCH 1/2] [perl #128086] Fix precedence in hv_ename_delete -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -A stash’s array of names may have null for the first entry, in which -case it is not one of the effective names, and the name count will -be negative. - -The ‘count > 0’ is meant to prevent hv_ename_delete from trying to -read that entry, but a precedence problem introduced in 4643eb699 -stopped it from doing that. - -[This commit message was written by the committer.] - -Signed-off-by: Petr Písař ---- - hv.c | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/hv.c b/hv.c -index 7b5ad95..5523475 100644 ---- a/hv.c -+++ b/hv.c -@@ -2476,9 +2476,10 @@ Perl_hv_ename_delete(pTHX_ HV *hv, const char *name, U32 len, U32 flags) - return; - } - if ( -- count > 0 && (HEK_UTF8(*namep) || (flags & SVf_UTF8)) -+ count > 0 && ((HEK_UTF8(*namep) || (flags & SVf_UTF8)) - ? hek_eq_pvn_flags(aTHX_ *namep, name, (I32)len, flags) - : (HEK_LEN(*namep) == (I32)len && memEQ(HEK_KEY(*namep), name, len)) -+ ) - ) { - aux->xhv_name_count = -count; - } --- -2.5.5 - -From 7f1bd063e5aa5aeb26ed9c39db6864cc0ecd7a73 Mon Sep 17 00:00:00 2001 -From: Father Chrysostomos -Date: Sun, 15 May 2016 13:49:33 -0700 -Subject: [PATCH 2/2] [perl #128086] Test the prev commit -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Signed-off-by: Petr Písař ---- - t/op/stash.t | 9 ++++++++- - 1 file changed, 8 insertions(+), 1 deletion(-) - -diff --git a/t/op/stash.t b/t/op/stash.t -index 151b729..b8e0f34 100644 ---- a/t/op/stash.t -+++ b/t/op/stash.t -@@ -7,7 +7,7 @@ BEGIN { - - BEGIN { require "./test.pl"; } - --plan( tests => 51 ); -+plan( tests => 52 ); - - # Used to segfault (bug #15479) - fresh_perl_like( -@@ -334,3 +334,10 @@ is runperl( - ), - "ok\n", - '[perl #123847] no crash from *foo::=*bar::=*glob_with_hash'; -+ -+is runperl( -+ prog => '%h; *::::::=*h; delete $::{q|::|}; print qq|ok\n|', -+ stderr => 1, -+ ), -+ "ok\n", -+ '[perl #128086] no crash from assigning hash to *:::::: & deleting it'; --- -2.5.5 - diff --git a/perl-5.25.1-perl-128316-preserve-errno-from-failed-system-calls.patch b/perl-5.25.1-perl-128316-preserve-errno-from-failed-system-calls.patch deleted file mode 100644 index df7a173..0000000 --- a/perl-5.25.1-perl-128316-preserve-errno-from-failed-system-calls.patch +++ /dev/null @@ -1,73 +0,0 @@ -From 3f6b66c14467c0f8c7459e32c576618155ca89f3 Mon Sep 17 00:00:00 2001 -From: Tony Cook -Date: Thu, 16 Jun 2016 14:08:18 +1000 -Subject: [PATCH] (perl #128316) preserve errno from failed system calls -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Signed-off-by: Petr Písař ---- - pp_sys.c | 4 ++-- - t/io/socket.t | 22 ++++++++++++++++++++++ - 2 files changed, 24 insertions(+), 2 deletions(-) - -diff --git a/pp_sys.c b/pp_sys.c -index 33cba46..3bf2673 100644 ---- a/pp_sys.c -+++ b/pp_sys.c -@@ -2497,7 +2497,6 @@ PP(pp_socket) - TAINT_PROPER("socket"); - fd = PerlSock_socket(domain, type, protocol); - if (fd < 0) { -- SETERRNO(EBADF,RMS_IFI); - RETPUSHUNDEF; - } - IoIFP(io) = PerlIO_fdopen(fd, "r"SOCKET_OPEN_MODE); /* stdio gets confused about sockets */ -@@ -3531,8 +3530,9 @@ PP(pp_fttext) - } - PL_laststatval = PerlLIO_fstat(fd, &PL_statcache); - if (PL_laststatval < 0) { -+ dSAVE_ERRNO; - (void)PerlIO_close(fp); -- SETERRNO(EBADF,RMS_IFI); -+ RESTORE_ERRNO; - FT_RETURNUNDEF; - } - PerlIO_binmode(aTHX_ fp, '<', O_BINARY, NULL); -diff --git a/t/io/socket.t b/t/io/socket.t -index b51079a..54e4438 100644 ---- a/t/io/socket.t -+++ b/t/io/socket.t -@@ -128,6 +128,28 @@ SKIP: { - } - } - -+SKIP: -+{ -+ eval { require Errno; defined &Errno::EMFILE } -+ or skip "Can't load Errno or EMFILE not defined", 1; -+ my @socks; -+ my $sock_limit = 1000; # don't consume every file in the system -+ # Default limits on various systems I have: -+ # 65536 - Linux -+ # 256 - Solaris -+ # 128 - NetBSD -+ # 256 - Cygwin -+ # 256 - darwin -+ while (@socks < $sock_limit) { -+ socket my $work, PF_INET, SOCK_STREAM, $tcp -+ or last; -+ push @socks, $work; -+ } -+ @socks == $sock_limit -+ and skip "Didn't run out of open handles", 1; -+ is(0+$!, Errno::EMFILE(), "check correct errno for too many files"); -+} -+ - done_testing(); - - my @child_tests; --- -2.5.5 - diff --git a/perl-5.25.10-fix-VMS-test-fail.patch b/perl-5.25.10-fix-VMS-test-fail.patch deleted file mode 100644 index 38cc190..0000000 --- a/perl-5.25.10-fix-VMS-test-fail.patch +++ /dev/null @@ -1,44 +0,0 @@ -From bce4a2abeb8652d19e97d3bf07dd2580a3cc2e6c Mon Sep 17 00:00:00 2001 -From: Hugo van der Sanden -Date: Sat, 25 Feb 2017 10:42:17 +0000 -Subject: [PATCH] fix VMS test fail -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -d7186add added a runperl() test that breaks command line length limits for -VMS. Switch to fresh_perl() instead, so the prog is put in a file for us. - -Signed-off-by: Petr Písař ---- - t/comp/parser_run.t | 12 ++++++------ - 1 file changed, 6 insertions(+), 6 deletions(-) - -diff --git a/t/comp/parser_run.t b/t/comp/parser_run.t -index 2543f49..e74644d 100644 ---- a/t/comp/parser_run.t -+++ b/t/comp/parser_run.t -@@ -14,14 +14,14 @@ plan(1); - - # [perl #130814] can reallocate lineptr while looking ahead for - # "Missing $ on loop variable" diagnostic. --my $result = runperl( -- prog => " foreach m0\n\$" . ("0" x 0x2000), -- stderr => 1, -+my $result = fresh_perl( -+ " foreach m0\n\$" . ("0" x 0x2000), -+ { stderr => 1 }, - ); --is($result, < -Date: Sun, 19 Feb 2017 11:15:38 +0000 -Subject: [PATCH] [perl #130814] Add testcase, and new testfile - t/comp/parser_run.t -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Sometimes it's useful to have test.pl around, but it seems inappropriate -to pollute the existing t/comp/parser.t with that. - -Signed-off-by: Petr Písař ---- - t/comp/parser_run.t | 28 ++++++++++++++++++++++++++++ - 1 file changed, 28 insertions(+) - create mode 100644 t/comp/parser_run.t - -diff --git a/t/comp/parser_run.t b/t/comp/parser_run.t -new file mode 100644 -index 0000000..2543f49 ---- /dev/null -+++ b/t/comp/parser_run.t -@@ -0,0 +1,28 @@ -+#!./perl -+ -+# Parser tests that want test.pl, eg to use runperl() for tests to show -+# reads through invalid pointers. -+# Note that this should still be runnable under miniperl. -+ -+BEGIN { -+ @INC = qw(. ../lib ); -+ chdir 't' if -d 't'; -+} -+ -+require './test.pl'; -+plan(1); -+ -+# [perl #130814] can reallocate lineptr while looking ahead for -+# "Missing $ on loop variable" diagnostic. -+my $result = runperl( -+ prog => " foreach m0\n\$" . ("0" x 0x2000), -+ stderr => 1, -+); -+is($result, < -Date: Thu, 7 Jul 2016 17:03:29 +0100 -Subject: [PATCH] SEGV in "Subroutine redefined" warning -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -RT #128257 - -The following SEGVed: - - sub P::f{} - undef *P::; - *P::f =sub{}; - -due to the code which generates the "Subroutine STASH::NAME redefined" -warning assuming that the GV always has a stash. Make it so that if it -hasn't, the message changes to "Subroutine NAME redefined" rather than -just crashing. - -Signed-off-by: Petr Písař ---- - sv.c | 18 +++++++++++------- - t/lib/warnings/sv | 8 ++++++++ - 2 files changed, 19 insertions(+), 7 deletions(-) - -diff --git a/sv.c b/sv.c -index 1b7a283..0cbe371 100644 ---- a/sv.c -+++ b/sv.c -@@ -4074,14 +4074,18 @@ Perl_gv_setref(pTHX_ SV *const dstr, SV *const sstr) - CvCONST((const CV *)sref) - ? cv_const_sv((const CV *)sref) - : NULL; -+ HV * const stash = GvSTASH((const GV *)dstr); - report_redefined_cv( -- sv_2mortal(Perl_newSVpvf(aTHX_ -- "%"HEKf"::%"HEKf, -- HEKfARG( -- HvNAME_HEK(GvSTASH((const GV *)dstr)) -- ), -- HEKfARG(GvENAME_HEK(MUTABLE_GV(dstr))) -- )), -+ sv_2mortal( -+ stash -+ ? Perl_newSVpvf(aTHX_ -+ "%"HEKf"::%"HEKf, -+ HEKfARG(HvNAME_HEK(stash)), -+ HEKfARG(GvENAME_HEK(MUTABLE_GV(dstr)))) -+ : Perl_newSVpvf(aTHX_ -+ "%"HEKf, -+ HEKfARG(GvENAME_HEK(MUTABLE_GV(dstr)))) -+ ), - cv, - CvCONST((const CV *)sref) ? &new_const_sv : NULL - ); -diff --git a/t/lib/warnings/sv b/t/lib/warnings/sv -index 5ddd4fe..c8e0e62 100644 ---- a/t/lib/warnings/sv -+++ b/t/lib/warnings/sv -@@ -413,3 +413,11 @@ Argument "a_c" isn't numeric in preincrement (++) at - line 5. - Argument "(?^:abc)" isn't numeric in preincrement (++) at - line 6. - Argument "123x" isn't numeric in preincrement (++) at - line 7. - Argument "123e" isn't numeric in preincrement (++) at - line 8. -+######## -+# RT #128257 This used to SEGV -+use warnings; -+sub Foo::f {} -+undef *Foo::; -+*Foo::f =sub {}; -+EXPECT -+Subroutine f redefined at - line 5. --- -2.5.5 - diff --git a/perl-5.25.2-only-treat-stash-entries-with-.-as-sub-stashes.patch b/perl-5.25.2-only-treat-stash-entries-with-.-as-sub-stashes.patch deleted file mode 100644 index 57e96c2..0000000 --- a/perl-5.25.2-only-treat-stash-entries-with-.-as-sub-stashes.patch +++ /dev/null @@ -1,64 +0,0 @@ -From e7acdfe976f01ee0d1ba31b3b1db61454a72d6c9 Mon Sep 17 00:00:00 2001 -From: David Mitchell -Date: Tue, 21 Jun 2016 17:06:52 +0100 -Subject: [PATCH] only treat stash entries with .*:: as sub-stashes -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -RT #128238 - -%: = 0 would cause an assertion failure in Perl_gv_check(), since when -it searched a stash for substashes, it assumed anything ending in ':' was -a substash, whereas substashes end in '::'. So check for a double colon -before recursing. - -Signed-off-by: Petr Písař ---- - gv.c | 5 ++++- - t/op/stash.t | 9 ++++++++- - 2 files changed, 12 insertions(+), 2 deletions(-) - -diff --git a/gv.c b/gv.c -index 4df3bce..2b3bdfa 100644 ---- a/gv.c -+++ b/gv.c -@@ -2423,7 +2423,10 @@ Perl_gv_check(pTHX_ HV *stash) - for (entry = HvARRAY(stash)[i]; entry; entry = HeNEXT(entry)) { - GV *gv; - HV *hv; -- if (HeKEY(entry)[HeKLEN(entry)-1] == ':' && -+ STRLEN keylen = HeKLEN(entry); -+ const char * const key = HeKEY(entry); -+ -+ if (keylen >= 2 && key[keylen-2] == ':' && key[keylen-1] == ':' && - (gv = MUTABLE_GV(HeVAL(entry))) && isGV(gv) && (hv = GvHV(gv))) - { - if (hv != PL_defstash && hv != stash -diff --git a/t/op/stash.t b/t/op/stash.t -index b8e0f34..ec795a9 100644 ---- a/t/op/stash.t -+++ b/t/op/stash.t -@@ -7,7 +7,7 @@ BEGIN { - - BEGIN { require "./test.pl"; } - --plan( tests => 52 ); -+plan( tests => 53 ); - - # Used to segfault (bug #15479) - fresh_perl_like( -@@ -341,3 +341,10 @@ is runperl( - ), - "ok\n", - '[perl #128086] no crash from assigning hash to *:::::: & deleting it'; -+ -+is runperl( -+ prog => 'BEGIN { %: = 0; $^W=1}; print qq|ok\n|', -+ stderr => 1, -+ ), -+ "ok\n", -+ "[perl #128238] don't treat %: as a stash (needs 2 colons)" --- -2.5.5 - diff --git a/perl-5.25.2-perl-128238-Crash-with-non-stash-in-stash.patch b/perl-5.25.2-perl-128238-Crash-with-non-stash-in-stash.patch deleted file mode 100644 index b6f007e..0000000 --- a/perl-5.25.2-perl-128238-Crash-with-non-stash-in-stash.patch +++ /dev/null @@ -1,66 +0,0 @@ -From 9e5cda6b852ca831004628051cf32c1576146452 Mon Sep 17 00:00:00 2001 -From: Father Chrysostomos -Date: Thu, 23 Jun 2016 21:57:09 -0700 -Subject: [PATCH] [perl #128238] Crash with non-stash in stash -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -This is a follow-up to e7acdfe976f. Even if the name of the stash -entry ends with ::, it may not itself contain a real stash (though -this only happens with code that assigns directly to stash entries, -which has undefined behaviour according to perlmod), so skip hashes -that are not stashes. - -Signed-off-by: Petr Písař ---- - gv.c | 4 ++-- - t/op/stash.t | 11 +++++++++-- - 2 files changed, 11 insertions(+), 4 deletions(-) - -diff --git a/gv.c b/gv.c -index 2b3bdfa..dff611e 100644 ---- a/gv.c -+++ b/gv.c -@@ -2411,10 +2411,10 @@ Perl_gv_check(pTHX_ HV *stash) - - PERL_ARGS_ASSERT_GV_CHECK; - -- if (!HvARRAY(stash)) -+ if (!SvOOK(stash)) - return; - -- assert(SvOOK(stash)); -+ assert(HvARRAY(stash)); - - for (i = 0; i <= (I32) HvMAX(stash); i++) { - const HE *entry; -diff --git a/t/op/stash.t b/t/op/stash.t -index 1591dbf..fe42700 100644 ---- a/t/op/stash.t -+++ b/t/op/stash.t -@@ -7,7 +7,7 @@ BEGIN { - - BEGIN { require "./test.pl"; } - --plan( tests => 53 ); -+plan( tests => 54 ); - - # Used to segfault (bug #15479) - fresh_perl_like( -@@ -342,4 +342,11 @@ is runperl( - stderr => 1, - ), - "ok\n", -- "[perl #128238] don't treat %: as a stash (needs 2 colons)" -+ "[perl #128238] don't treat %: as a stash (needs 2 colons)"; -+ -+is runperl( -+ prog => 'BEGIN { $::{q|foo::|}=*ENV; $^W=1}; print qq|ok\n|', -+ stderr => 1, -+ ), -+ "ok\n", -+ "[perl #128238] non-stashes in stashes"; --- -2.5.5 - diff --git a/perl-5.25.2-perl-128508-Fix-line-numbers-with-perl-x.patch b/perl-5.25.2-perl-128508-Fix-line-numbers-with-perl-x.patch deleted file mode 100644 index 9223cf1..0000000 --- a/perl-5.25.2-perl-128508-Fix-line-numbers-with-perl-x.patch +++ /dev/null @@ -1,96 +0,0 @@ -From b3dd0aba3d2bf0b22280303ef6f068e976e31888 Mon Sep 17 00:00:00 2001 -From: Father Chrysostomos -Date: Sat, 2 Jul 2016 00:08:48 -0700 -Subject: [PATCH] [perl #128508] Fix line numbers with perl -x -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -When lex_start is invoked with an SV and a handle pointer, it expects -the SV to contain the beginning of the code to be parsed. The handle -will be read from for subsequent code. - -The -x command line option happens to invoke lex_start with two non- -null pointers like this (a line and a handle), since, to find the -#!perl line, it has to read that first line out of the file handle. - -There is a line of code in lex_start that adds "\n;" to the buffer -goes back to 8990e30710 (perl 5.0 alpha 6) and string eval fails -catastrophically without it. - -As of v5.19.1-485-g2179133 multiple lines are supported in the current -parsing buffer (PL_linestr) when there is a file handle, and as of -v5.19.3-63-gbf1b738 the line number is correctly incremented when the -parser goes past a newline. - -So, for -x, "#!perl\n" turns into "#!perl\n\n" (the final ; is skipped -as of v5.19.3-63-gbf1b738 if there is a handle). That throws line -numbers off by one. - -In the case where we have a string to parse and a file handle, the -extra "\n;" added to the end of the buffer turns out to be completely -unnecessary. So this commit makes it conditional on rsfp. - -The existing tests for -x are quite exotic. I have made no effort to -make them less so. - -Signed-off-by: Petr Písař ---- - t/run/switchx.aux | 7 ++++--- - t/run/switchx.t | 4 ++-- - toke.c | 3 ++- - 3 files changed, 8 insertions(+), 6 deletions(-) - -diff --git a/t/run/switchx.aux b/t/run/switchx.aux -index b59df4a..106b2f7 100644 ---- a/t/run/switchx.aux -+++ b/t/run/switchx.aux -@@ -17,11 +17,12 @@ still not perl - - #!/some/path/that/leads/to/perl -l - --print "1..7"; -+print "1..8"; -+print "ok 1 - Correct line number" if __LINE__ == 4; - if (-f 'run/switchx.aux') { -- print "ok 1 - Test file exists"; -+ print "ok 2 - Test file exists"; - } --print "ok 2 - Test file utilized"; -+print "ok 3 - Test file utilized"; - # other tests are in switchx2.aux - - __END__ -diff --git a/t/run/switchx.t b/t/run/switchx.t -index bcea3d0..4e57d04 100644 ---- a/t/run/switchx.t -+++ b/t/run/switchx.t -@@ -15,9 +15,9 @@ print runperl( switches => ['-x'], - # Test '-xdir' - print runperl( switches => ['-x./run'], - progfile => 'run/switchx2.aux', -- args => [ 3 ] ); -+ args => [ 4 ] ); - --curr_test(5); -+curr_test(6); - - # Test the error message for not found - like(runperl(switches => ['-x'], progfile => 'run/switchx3.aux', stderr => 1), -diff --git a/toke.c b/toke.c -index aebeebb..7e77fae 100644 ---- a/toke.c -+++ b/toke.c -@@ -723,7 +723,8 @@ Perl_lex_start(pTHX_ SV *line, PerlIO *rsfp, U32 flags) - parser->linestr = flags & LEX_START_COPIED - ? SvREFCNT_inc_simple_NN(line) - : newSVpvn_flags(s, len, SvUTF8(line)); -- sv_catpvn(parser->linestr, "\n;", rsfp ? 1 : 2); -+ if (!rsfp) -+ sv_catpvs(parser->linestr, "\n;"); - } else { - parser->linestr = newSVpvn("\n;", rsfp ? 1 : 2); - } --- -2.5.5 - diff --git a/perl-5.25.2-perl-128532-Crash-vivifying-stub-in-deleted-pkg.patch b/perl-5.25.2-perl-128532-Crash-vivifying-stub-in-deleted-pkg.patch deleted file mode 100644 index fc517b9..0000000 --- a/perl-5.25.2-perl-128532-Crash-vivifying-stub-in-deleted-pkg.patch +++ /dev/null @@ -1,60 +0,0 @@ -From 63aab7ecaa6e826f845c405894bd8c4b6f601b39 Mon Sep 17 00:00:00 2001 -From: Father Chrysostomos -Date: Sun, 3 Jul 2016 22:23:34 -0700 -Subject: [PATCH] [perl #128532] Crash vivifying stub in deleted pkg -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -v5.17.0-515-g186a5ba, which added newSTUB, did not take into account -that a GV may have a null GvSTASH pointer, if its stash has been -freed, so this crashes: - -delete $My::{"Foo::"}; \&My::Foo::foo - -Signed-off-by: Petr Písař ---- - op.c | 2 +- - t/op/ref.t | 6 +++++- - 2 files changed, 6 insertions(+), 2 deletions(-) - -diff --git a/op.c b/op.c -index 46e76ac..4735d1b 100644 ---- a/op.c -+++ b/op.c -@@ -9081,7 +9081,7 @@ Perl_newSTUB(pTHX_ GV *gv, bool fake) - assert(!GvCVu(gv)); - GvCV_set(gv, cv); - GvCVGEN(gv) = 0; -- if (!fake && HvENAME_HEK(GvSTASH(gv))) -+ if (!fake && GvSTASH(gv) && HvENAME_HEK(GvSTASH(gv))) - gv_method_changed(gv); - if (SvFAKE(gv)) { - cvgv = gv_fetchsv((SV *)gv, GV_ADDMULTI, SVt_PVCV); -diff --git a/t/op/ref.t b/t/op/ref.t -index 19a44bb..84d9217 100644 ---- a/t/op/ref.t -+++ b/t/op/ref.t -@@ -8,7 +8,7 @@ BEGIN { - - use strict qw(refs subs); - --plan(235); -+plan(236); - - # Test this first before we extend the stack with other operations. - # This caused an asan failure due to a bad write past the end of the stack. -@@ -124,6 +124,10 @@ is (join(':',@{$spring2{"foo"}}), "1:2:3:4"); - is ($called, 1); - } - is ref eval {\&{""}}, "CODE", 'reference to &{""} [perl #94476]'; -+delete $My::{"Foo::"}; -+is ref \&My::Foo::foo, "CODE", -+ 'creating stub with \&deleted_stash::foo [perl #128532]'; -+ - - # Test references to return values of operators (TARGs/PADTMPs) - { --- -2.5.5 - diff --git a/perl-5.25.2-perl-128597-Crash-from-gp_free-ckWARN_d.patch b/perl-5.25.2-perl-128597-Crash-from-gp_free-ckWARN_d.patch deleted file mode 100644 index 70d38e4..0000000 --- a/perl-5.25.2-perl-128597-Crash-from-gp_free-ckWARN_d.patch +++ /dev/null @@ -1,93 +0,0 @@ -From a2637ca0a3fec01b80d7ea5ba62802354fd5e6f3 Mon Sep 17 00:00:00 2001 -From: Father Chrysostomos -Date: Mon, 11 Jul 2016 14:49:17 -0700 -Subject: [PATCH] [perl #128597] Crash from gp_free/ckWARN_d -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -See the explanation in the test added and in the RT ticket. - -The solution is to make the warn macros check that PL_curcop -is non-null. - -Signed-off-by: Petr Písař ---- - regen/warnings.pl | 6 ++++-- - t/op/gv.t | 18 +++++++++++++++++- - warnings.h | 6 ++++-- - 3 files changed, 25 insertions(+), 5 deletions(-) - -diff --git a/regen/warnings.pl b/regen/warnings.pl -index 815c735..94cd7a4 100644 ---- a/regen/warnings.pl -+++ b/regen/warnings.pl -@@ -358,8 +358,10 @@ EOM - - print $warn <<'EOM'; - --#define isLEXWARN_on cBOOL(PL_curcop->cop_warnings != pWARN_STD) --#define isLEXWARN_off cBOOL(PL_curcop->cop_warnings == pWARN_STD) -+#define isLEXWARN_on \ -+ cBOOL(PL_curcop && PL_curcop->cop_warnings != pWARN_STD) -+#define isLEXWARN_off \ -+ cBOOL(!PL_curcop || PL_curcop->cop_warnings == pWARN_STD) - #define isWARN_ONCE (PL_dowarn & (G_WARN_ON|G_WARN_ONCE)) - #define isWARN_on(c,x) (IsSet((U8 *)(c + 1), 2*(x))) - #define isWARNf_on(c,x) (IsSet((U8 *)(c + 1), 2*(x)+1)) -diff --git a/t/op/gv.t b/t/op/gv.t -index d71fd0a..03ae46e 100644 ---- a/t/op/gv.t -+++ b/t/op/gv.t -@@ -12,7 +12,7 @@ BEGIN { - - use warnings; - --plan(tests => 276 ); -+plan(tests => 277 ); - - # type coercion on assignment - $foo = 'foo'; -@@ -1153,6 +1153,22 @@ pass "No crash due to CvGV pointing to glob copy in the stash"; - is($c_125840, 1, 'RT #125840: $c=$d'); - } - -+# [perl #128597] Crash when gp_free calls ckWARN_d -+# I am not sure this test even belongs in this file, as the crash was the -+# result of various features interacting. But a call to ckWARN_d from -+# gv.c:gp_free triggered the crash, so this seems as good a place as any. -+# ‘die’ (or any abnormal scope exit) can cause the current cop to be freed, -+# if the subroutine containing the ‘die’ gets freed as a result. That -+# causes PL_curcop to be set to NULL. If a writable handle gets freed -+# while PL_curcop is NULL, then gp_free will call ckWARN_d while that con- -+# dition still holds, so ckWARN_d needs to know about PL_curcop possibly -+# being NULL. -+SKIP: { -+ skip_if_miniperl("No PerlIO::scalar on miniperl", 1); -+ runperl(prog => 'open my $fh, q|>|, \$buf;' -+ .'my $sub = eval q|sub {exit 0}|; $sub->()'); -+ is ($? & 127, 0,"[perl #128597] No crash when gp_free calls ckWARN_d"); -+} - - __END__ - Perl -diff --git a/warnings.h b/warnings.h -index 337bef3..4d13732 100644 ---- a/warnings.h -+++ b/warnings.h -@@ -115,8 +115,10 @@ - #define WARN_ALLstring "\125\125\125\125\125\125\125\125\125\125\125\125\125\125\125\125\125" - #define WARN_NONEstring "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - --#define isLEXWARN_on cBOOL(PL_curcop->cop_warnings != pWARN_STD) --#define isLEXWARN_off cBOOL(PL_curcop->cop_warnings == pWARN_STD) -+#define isLEXWARN_on \ -+ cBOOL(PL_curcop && PL_curcop->cop_warnings != pWARN_STD) -+#define isLEXWARN_off \ -+ cBOOL(!PL_curcop || PL_curcop->cop_warnings == pWARN_STD) - #define isWARN_ONCE (PL_dowarn & (G_WARN_ON|G_WARN_ONCE)) - #define isWARN_on(c,x) (IsSet((U8 *)(c + 1), 2*(x))) - #define isWARNf_on(c,x) (IsSet((U8 *)(c + 1), 2*(x)+1)) --- -2.5.5 - diff --git a/perl-5.25.2-t-test.pl-Add-fresh_perl-function.patch b/perl-5.25.2-t-test.pl-Add-fresh_perl-function.patch deleted file mode 100644 index 24d7f60..0000000 --- a/perl-5.25.2-t-test.pl-Add-fresh_perl-function.patch +++ /dev/null @@ -1,74 +0,0 @@ -From f6203e997f3012b8aab4cd35fe49f58e4d71fb8c Mon Sep 17 00:00:00 2001 -From: Karl Williamson -Date: Sun, 10 Jul 2016 22:06:12 -0600 -Subject: [PATCH] t/test.pl: Add fresh_perl() function -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -This will be useful for cases where the results don't readily fall into -fresh_perl_is and fresh_perl_like, such as when a bunch of massaging of -the results is needed before it is convenient to test them. -fresh_perl_like() could be used, but in the case of failure there could -be lines and lines of noise output. - -Signed-off-by: Petr Písař ---- - t/test.pl | 25 +++++++++++++++++++++---- - 1 file changed, 21 insertions(+), 4 deletions(-) - -diff --git a/t/test.pl b/t/test.pl -index 41b77f4..20d08e9 100644 ---- a/t/test.pl -+++ b/t/test.pl -@@ -953,11 +953,16 @@ sub register_tempfile { - return $count; - } - --# This is the temporary file for _fresh_perl -+# This is the temporary file for fresh_perl - my $tmpfile = tempfile(); - --sub _fresh_perl { -- my($prog, $action, $expect, $runperl_args, $name) = @_; -+sub fresh_perl { -+ my($prog, $runperl_args) = @_; -+ -+ # Run 'runperl' with the complete perl program contained in '$prog', and -+ # arguments in the hash referred to by '$runperl_args'. The results are -+ # returned, with $? set to the exit code. Unless overridden, stderr is -+ # redirected to stdout. - - # Given the choice of the mis-parsable {} - # (we want an anon hash, but a borked lexer might think that it's a block) -@@ -975,7 +980,8 @@ sub _fresh_perl { - close TEST or die "Cannot close $tmpfile: $!"; - - my $results = runperl(%$runperl_args); -- my $status = $?; -+ my $status = $?; # Not necessary to save this, but it makes it clear to -+ # future maintainers. - - # Clean up the results into something a bit more predictable. - $results =~ s/\n+$//; -@@ -994,6 +1000,17 @@ sub _fresh_perl { - $results =~ s/\n\n/\n/g; - } - -+ $? = $status; -+ return $results; -+} -+ -+ -+sub _fresh_perl { -+ my($prog, $action, $expect, $runperl_args, $name) = @_; -+ -+ my $results = fresh_perl($prog, $runperl_args); -+ my $status = $?; -+ - # Use the first line of the program as a name if none was given - unless( $name ) { - ($first_line, $name) = $prog =~ /^((.{1,50}).*)/; --- -2.7.4 - diff --git a/perl-5.25.2-uninit-warning-from-h-const-coredumped.patch b/perl-5.25.2-uninit-warning-from-h-const-coredumped.patch deleted file mode 100644 index 1433a9f..0000000 --- a/perl-5.25.2-uninit-warning-from-h-const-coredumped.patch +++ /dev/null @@ -1,74 +0,0 @@ -From 55b6481ff87f84626ba01275708297a42a6537b1 Mon Sep 17 00:00:00 2001 -From: David Mitchell -Date: Tue, 21 Jun 2016 15:23:20 +0100 -Subject: [PATCH] uninit warning from $h{\const} coredumped -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -The code that printed the the name and subscript of a hash element -in an "uninitialized variable" warning assumed that a constant -hash subscript would be SvPOK. Something like \1 is a constant, -but is ROK, not POK. SEGVs ensured. - -Signed-off-by: Petr Písař ---- - sv.c | 5 ++++- - t/op/hashwarn.t | 19 ++++++++++++++++++- - 2 files changed, 22 insertions(+), 2 deletions(-) - -diff --git a/sv.c b/sv.c -index 535ee8d..b0fdd15 100644 ---- a/sv.c -+++ b/sv.c -@@ -15683,9 +15683,12 @@ Perl_varname(pTHX_ const GV *const gv, const char gvtype, PADOFFSET targ, - - if (subscript_type == FUV_SUBSCRIPT_HASH) { - SV * const sv = newSV(0); -+ STRLEN len; -+ const char * const pv = SvPV_nomg_const((SV*)keyname, len); -+ - *SvPVX(name) = '$'; - Perl_sv_catpvf(aTHX_ name, "{%s}", -- pv_pretty(sv, SvPVX_const(keyname), SvCUR(keyname), 32, NULL, NULL, -+ pv_pretty(sv, pv, len, 32, NULL, NULL, - PERL_PV_PRETTY_DUMP | PERL_PV_ESCAPE_UNI_DETECT )); - SvREFCNT_dec_NN(sv); - } -diff --git a/t/op/hashwarn.t b/t/op/hashwarn.t -index a6a1de9..6d72244 100644 ---- a/t/op/hashwarn.t -+++ b/t/op/hashwarn.t -@@ -6,7 +6,7 @@ BEGIN { - } - - require './test.pl'; --plan( tests => 16 ); -+plan( tests => 18 ); - - use strict; - use warnings; -@@ -71,3 +71,20 @@ my $fail_not_hr = 'Not a HASH reference at '; - cmp_ok(scalar(@warnings),'==',0,'pseudo-hash 2 count'); - cmp_ok(substr($@,0,length($fail_not_hr)),'eq',$fail_not_hr,'pseudo-hash 2 msg'); - } -+ -+# RT #128189 -+# this used to coredump -+ -+{ -+ @warnings = (); -+ my %h; -+ -+ no warnings; -+ use warnings qw(uninitialized); -+ -+ my $x = "$h{\1}"; -+ is(scalar @warnings, 1, "RT #128189 - 1 warning"); -+ like("@warnings", -+ qr/Use of uninitialized value \$h\{"SCALAR\(0x[\da-f]+\)"\}/, -+ "RT #128189 correct warning"); -+} --- -2.5.5 - diff --git a/perl-5.25.4-clean-up-gv_fetchmethod_pvn_flags-move-origname-init.patch b/perl-5.25.4-clean-up-gv_fetchmethod_pvn_flags-move-origname-init.patch deleted file mode 100644 index 957009d..0000000 --- a/perl-5.25.4-clean-up-gv_fetchmethod_pvn_flags-move-origname-init.patch +++ /dev/null @@ -1,32 +0,0 @@ -From d5ea0ef8623c7d7ba5f42d239787aa71393e2054 Mon Sep 17 00:00:00 2001 -From: Yves Orton -Date: Tue, 13 Sep 2016 23:06:58 +0200 -Subject: [PATCH 2/5] clean up gv_fetchmethod_pvn_flags: move origname init to - function start -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -so it is more obvious that it is a constant copy of the -original name. - -Signed-off-by: Petr Písař ---- - gv.c | 1 - - 1 file changed, 1 deletion(-) - -diff --git a/gv.c b/gv.c -index b0221e0..fe38d44 100644 ---- a/gv.c -+++ b/gv.c -@@ -1014,7 +1014,6 @@ Perl_gv_fetchmethod_pvn_flags(pTHX_ HV *stash, const char *name, const STRLEN le - const char *nsplit = NULL; - GV* gv; - HV* ostash = stash; -- const char * const origname = name; - SV *const error_report = MUTABLE_SV(stash); - const U32 autoload = flags & GV_AUTOLOAD; - const U32 do_croak = flags & GV_CROAK; --- -2.7.4 - diff --git a/perl-5.25.4-clean-up-gv_fetchmethod_pvn_flags-rename-nsplit-to-l.patch b/perl-5.25.4-clean-up-gv_fetchmethod_pvn_flags-rename-nsplit-to-l.patch deleted file mode 100644 index 9938704..0000000 --- a/perl-5.25.4-clean-up-gv_fetchmethod_pvn_flags-rename-nsplit-to-l.patch +++ /dev/null @@ -1,92 +0,0 @@ -From e2cace1e9e89525afbca257742ddb36630b7fbc3 Mon Sep 17 00:00:00 2001 -From: Yves Orton -Date: Tue, 13 Sep 2016 23:10:48 +0200 -Subject: [PATCH 3/5] clean up gv_fetchmethod_pvn_flags: rename nsplit to - last_separator -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -nsplit if set points at the first char of the last separator -in name, so rename it so it is more comprehensible what it means. - -Signed-off-by: Petr Písař ---- - gv.c | 24 ++++++++++++------------ - 1 file changed, 12 insertions(+), 12 deletions(-) - -diff --git a/gv.c b/gv.c -index fe38d44..07709a0 100644 ---- a/gv.c -+++ b/gv.c -@@ -1011,7 +1011,7 @@ Perl_gv_fetchmethod_pvn_flags(pTHX_ HV *stash, const char *name, const STRLEN le - const char * const origname = name; - const char * const name_end = name + len; - const char *nend; -- const char *nsplit = NULL; -+ const char *last_separator = NULL; - GV* gv; - HV* ostash = stash; - SV *const error_report = MUTABLE_SV(stash); -@@ -1024,38 +1024,38 @@ Perl_gv_fetchmethod_pvn_flags(pTHX_ HV *stash, const char *name, const STRLEN le - if (SvTYPE(stash) < SVt_PVHV) - stash = NULL; - else { -- /* The only way stash can become NULL later on is if nsplit is set, -+ /* The only way stash can become NULL later on is if last_separator is set, - which in turn means that there is no need for a SVt_PVHV case - the error reporting code. */ - } - - for (nend = name; *nend || nend != name_end; nend++) { - if (*nend == '\'') { -- nsplit = nend; -+ last_separator = nend; - name = nend + 1; - } - else if (*nend == ':' && *(nend + 1) == ':') { -- nsplit = nend++; -+ last_separator = nend++; - name = nend + 1; - } - } -- if (nsplit) { -- if ((nsplit - origname) == 5 && memEQ(origname, "SUPER", 5)) { -+ if (last_separator) { -+ if ((last_separator - origname) == 5 && memEQ(origname, "SUPER", 5)) { - /* ->SUPER::method should really be looked up in original stash */ - stash = CopSTASH(PL_curcop); - flags |= GV_SUPER; - DEBUG_o( Perl_deb(aTHX_ "Treating %s as %s::%s\n", - origname, HvENAME_get(stash), name) ); - } -- else if ((nsplit - origname) >= 7 && -- strnEQ(nsplit - 7, "::SUPER", 7)) { -+ else if ((last_separator - origname) >= 7 && -+ strnEQ(last_separator - 7, "::SUPER", 7)) { - /* don't autovifify if ->NoSuchStash::SUPER::method */ -- stash = gv_stashpvn(origname, nsplit - origname - 7, is_utf8); -+ stash = gv_stashpvn(origname, last_separator - origname - 7, is_utf8); - if (stash) flags |= GV_SUPER; - } - else { - /* don't autovifify if ->NoSuchStash::method */ -- stash = gv_stashpvn(origname, nsplit - origname, is_utf8); -+ stash = gv_stashpvn(origname, last_separator - origname, is_utf8); - } - ostash = stash; - } -@@ -1098,8 +1098,8 @@ Perl_gv_fetchmethod_pvn_flags(pTHX_ HV *stash, const char *name, const STRLEN le - else { - SV* packnamesv; - -- if (nsplit) { -- packnamesv = newSVpvn_flags(origname, nsplit - origname, -+ if (last_separator) { -+ packnamesv = newSVpvn_flags(origname, last_separator - origname, - SVs_TEMP | is_utf8); - } else { - packnamesv = error_report; --- -2.7.4 - diff --git a/perl-5.25.4-fix-129267-rework-gv_fetchmethod_pvn_flags-separator.patch b/perl-5.25.4-fix-129267-rework-gv_fetchmethod_pvn_flags-separator.patch deleted file mode 100644 index bd36af5..0000000 --- a/perl-5.25.4-fix-129267-rework-gv_fetchmethod_pvn_flags-separator.patch +++ /dev/null @@ -1,81 +0,0 @@ -From cfb736762c1becf344ce6beaa701ff2e1abd5f9c Mon Sep 17 00:00:00 2001 -From: Yves Orton -Date: Tue, 13 Sep 2016 23:14:49 +0200 -Subject: [PATCH 4/5] fix #129267: rework gv_fetchmethod_pvn_flags separator - parsing -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -With previous code we could overrun the end of the name when -the last char in the string was a colon. This reworks the code -so it is more clear what is going on, and so it more similar -to other code that also parses out package separaters in gv.c. - -This is a rework of the reverted patches: -243ca72 rename "nend" name_cursor in Perl_gv_fetchmethod_pvn_flags -b053c93 fix: [perl #129267] Possible string overrun with invalid len in gv.c - -Signed-off-by: Petr Písař ---- - gv.c | 36 ++++++++++++++++++++++++++---------- - 1 file changed, 26 insertions(+), 10 deletions(-) - -diff --git a/gv.c b/gv.c -index 07709a0..3237c53 100644 ---- a/gv.c -+++ b/gv.c -@@ -1010,7 +1010,6 @@ Perl_gv_fetchmethod_pvn_flags(pTHX_ HV *stash, const char *name, const STRLEN le - { - const char * const origname = name; - const char * const name_end = name + len; -- const char *nend; - const char *last_separator = NULL; - GV* gv; - HV* ostash = stash; -@@ -1029,16 +1028,33 @@ Perl_gv_fetchmethod_pvn_flags(pTHX_ HV *stash, const char *name, const STRLEN le - the error reporting code. */ - } - -- for (nend = name; *nend || nend != name_end; nend++) { -- if (*nend == '\'') { -- last_separator = nend; -- name = nend + 1; -- } -- else if (*nend == ':' && *(nend + 1) == ':') { -- last_separator = nend++; -- name = nend + 1; -- } -+ { -+ /* check if the method name is fully qualified or -+ * not, and separate the package name from the actual -+ * method name. -+ * -+ * leaves last_separator pointing to the beginning of the -+ * last package separator (either ' or ::) or 0 -+ * if none was found. -+ * -+ * leaves name pointing at the beginning of the -+ * method name. -+ */ -+ const char *name_cursor = name; -+ const char * const name_em1 = name_end - 1; /* name_end minus 1 */ -+ for (name_cursor = name; name_cursor < name_end ; name_cursor++) { -+ if (*name_cursor == '\'') { -+ last_separator = name_cursor; -+ name = name_cursor + 1; -+ } -+ else if (name_cursor < name_em1 && *name_cursor == ':' && name_cursor[1] == ':') { -+ last_separator = name_cursor++; -+ name = name_cursor + 1; -+ } -+ } - } -+ -+ /* did we find a separator? */ - if (last_separator) { - if ((last_separator - origname) == 5 && memEQ(origname, "SUPER", 5)) { - /* ->SUPER::method should really be looked up in original stash */ --- -2.7.4 - diff --git a/perl-5.25.4-perl-129196-Crash-bad-read-with-evalbytes-S.patch b/perl-5.25.4-perl-129196-Crash-bad-read-with-evalbytes-S.patch deleted file mode 100644 index e224f30..0000000 --- a/perl-5.25.4-perl-129196-Crash-bad-read-with-evalbytes-S.patch +++ /dev/null @@ -1,37 +0,0 @@ -From 9bde56224e82f20e7a65b3469b1ffb6b9f6d4df8 Mon Sep 17 00:00:00 2001 -From: Father Chrysostomos -Date: Sun, 4 Sep 2016 20:24:19 -0700 -Subject: [PATCH] =?UTF-8?q?[perl=20#129196]=20Crash/bad=20read=20with=20?= - =?UTF-8?q?=E2=80=98evalbytes=20S=E2=80=99?= -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -5dc13276 added some code to toke.c that did not take into account -that the opnum (‘f’) argument to UNI* could be a negated op number. -PL_last_lop_op must never be negative, since it is used as an offset -into a struct. - -Tests for the crash will come in the next commit. - -Signed-off-by: Petr Písař ---- - toke.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/toke.c b/toke.c -index 2fe8b69..2350703 100644 ---- a/toke.c -+++ b/toke.c -@@ -241,7 +241,7 @@ static const char* const lex_state_names[] = { - if (have_x) PL_expect = x; \ - PL_bufptr = s; \ - PL_last_uni = PL_oldbufptr; \ -- PL_last_lop_op = f; \ -+ PL_last_lop_op = f < 0 ? -f : f; \ - if (*s == '(') \ - return REPORT( (int)FUNC1 ); \ - s = skipspace(s); \ --- -2.7.4 - diff --git a/perl-5.25.4-perl-129267-Test-for-gv_fetchmethod-buffer-overrun.patch b/perl-5.25.4-perl-129267-Test-for-gv_fetchmethod-buffer-overrun.patch deleted file mode 100644 index 6998f71..0000000 --- a/perl-5.25.4-perl-129267-Test-for-gv_fetchmethod-buffer-overrun.patch +++ /dev/null @@ -1,44 +0,0 @@ -From 1665b718d8fbd58705dbe6376fa51f8c1a02d887 Mon Sep 17 00:00:00 2001 -From: Father Chrysostomos -Date: Tue, 13 Sep 2016 22:38:59 -0700 -Subject: [PATCH 5/5] [perl #129267] Test for gv_fetchmethod buffer overrun -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Signed-off-by: Petr Písař ---- - ext/XS-APItest/APItest.xs | 3 +++ - ext/XS-APItest/t/gv_fetchmethod_flags.t | 5 +++++ - 2 files changed, 8 insertions(+) - -diff --git a/ext/XS-APItest/APItest.xs b/ext/XS-APItest/APItest.xs -index 992b6a5..4602cee 100644 ---- a/ext/XS-APItest/APItest.xs -+++ b/ext/XS-APItest/APItest.xs -@@ -2571,6 +2571,9 @@ gv_fetchmethod_flags_type(stash, methname, type, flags) - gv = gv_fetchmethod_pvn_flags(stash, name, len, flags | SvUTF8(methname)); - break; - } -+ case 4: -+ gv = gv_fetchmethod_pvn_flags(stash, SvPV_nolen(methname), -+ flags, SvUTF8(methname)); - } - XPUSHs( gv ? (SV*)gv : &PL_sv_undef); - -diff --git a/ext/XS-APItest/t/gv_fetchmethod_flags.t b/ext/XS-APItest/t/gv_fetchmethod_flags.t -index 15d1c41..2da3b70 100644 ---- a/ext/XS-APItest/t/gv_fetchmethod_flags.t -+++ b/ext/XS-APItest/t/gv_fetchmethod_flags.t -@@ -49,3 +49,8 @@ is XS::APItest::gv_fetchmethod_flags_type(\%::, "method\0not quite!", 2, 0), "*m - } - } - } -+ -+# [perl #129267] Buffer overrun when argument name ends with colon and -+# there is a colon past the end. This used to segv. -+XS::APItest::gv_fetchmethod_flags_type(\%::, "method:::::", 4, 7); -+ # With type 4, 7 is the length --- -2.7.4 - diff --git a/perl-5.25.4-perl-129287-Make-UTF8-append-null.patch b/perl-5.25.4-perl-129287-Make-UTF8-append-null.patch deleted file mode 100644 index 3709505..0000000 --- a/perl-5.25.4-perl-129287-Make-UTF8-append-null.patch +++ /dev/null @@ -1,64 +0,0 @@ -From b43665fffa48dd179eba1b5616d4ca35b4def876 Mon Sep 17 00:00:00 2001 -From: Father Chrysostomos -Date: Sun, 18 Sep 2016 20:17:08 -0700 -Subject: [PATCH] [perl #129287] Make UTF8 & append null -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -The & and &. operators were not appending a null byte to the string -in utf8 mode. - -(The internal function that they use is the same. I used &. in the -test just because its intent is clearer.) - -Signed-off-by: Petr Písař ---- - doop.c | 1 + - t/op/bop.t | 14 +++++++++++++- - 2 files changed, 14 insertions(+), 1 deletion(-) - -diff --git a/doop.c b/doop.c -index ad9172a..234a425 100644 ---- a/doop.c -+++ b/doop.c -@@ -1093,6 +1093,7 @@ Perl_do_vop(pTHX_ I32 optype, SV *sv, SV *left, SV *right) - if (sv == left || sv == right) - (void)sv_usepvn(sv, dcorig, needlen); - SvCUR_set(sv, dc - dcorig); -+ *SvEND(sv) = 0; - break; - case OP_BIT_XOR: - while (lulen && rulen) { -diff --git a/t/op/bop.t b/t/op/bop.t -index 2afb8d7..1f96e9b 100644 ---- a/t/op/bop.t -+++ b/t/op/bop.t -@@ -19,7 +19,7 @@ BEGIN { - # If you find tests are failing, please try adding names to tests to track - # down where the failure is, and supply your new names as a patch. - # (Just-in-time test naming) --plan tests => 192 + (10*13*2) + 5 + 29; -+plan tests => 192 + (10*13*2) + 5 + 30; - - # numerics - ok ((0xdead & 0xbeef) == 0x9ead); -@@ -664,3 +664,15 @@ is $^A, "123", '~v0 clears vstring magic on retval'; - is(-1 >> $w + 1, -1, "IV -1 right shift $w + 1 == -1"); - } - } -+ -+# [perl #129287] UTF8 & was not providing a trailing null byte. -+# This test is a bit convoluted, as we want to make sure that the string -+# allocated for &’s target contains memory initialised to something other -+# than a null byte. Uninitialised memory does not make for a reliable -+# test. So we do &. on a longer non-utf8 string first. -+for (["aaa","aaa"],[substr ("a\x{100}",0,1), "a"]) { -+ use feature "bitwise"; -+ no warnings "experimental::bitwise", "pack"; -+ $byte = substr unpack("P2", pack "P", $$_[0] &. $$_[1]), -1; -+} -+is $byte, "\0", "utf8 &. appends null byte"; --- -2.7.4 - diff --git a/perl-5.25.4-toke.c-fix-mswin32-builds.patch b/perl-5.25.4-toke.c-fix-mswin32-builds.patch deleted file mode 100644 index 5b066c8..0000000 --- a/perl-5.25.4-toke.c-fix-mswin32-builds.patch +++ /dev/null @@ -1,46 +0,0 @@ -From 0af40c757f083cc12988effb46da5313cd042f00 Mon Sep 17 00:00:00 2001 -From: David Mitchell -Date: Mon, 5 Sep 2016 15:49:28 +0100 -Subject: [PATCH] toke.c: fix mswin32 builds -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -9bde56224 added this as part of macro: - -- PL_last_lop_op = f; \ -+ PL_last_lop_op = f < 0 ? -f : f; \ - -which broke win32 builds due to this - - UNIBRACK(-OP_ENTEREVAL) - -expanding to - - PL_last_lop_op = -345 < 0 ? --345 : -345 - -and the -- being seen as a pre-dec op. - -Diagnosed by Dagfinn Ilmari Mannsåker. - -Signed-off-by: Petr Písař ---- - toke.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/toke.c b/toke.c -index 2350703..a1cdda8 100644 ---- a/toke.c -+++ b/toke.c -@@ -241,7 +241,7 @@ static const char* const lex_state_names[] = { - if (have_x) PL_expect = x; \ - PL_bufptr = s; \ - PL_last_uni = PL_oldbufptr; \ -- PL_last_lop_op = f < 0 ? -f : f; \ -+ PL_last_lop_op = (f) < 0 ? -(f) : (f); \ - if (*s == '(') \ - return REPORT( (int)FUNC1 ); \ - s = skipspace(s); \ --- -2.7.4 - diff --git a/perl-5.25.6-perl-130001-h2xs-avoid-infinite-loop-for-enums.patch b/perl-5.25.6-perl-130001-h2xs-avoid-infinite-loop-for-enums.patch deleted file mode 100644 index 9b4f197..0000000 --- a/perl-5.25.6-perl-130001-h2xs-avoid-infinite-loop-for-enums.patch +++ /dev/null @@ -1,32 +0,0 @@ -From 9ce5bf4c39e28441410672f39b5ee1c4569967f8 Mon Sep 17 00:00:00 2001 -From: Hugo van der Sanden -Date: Fri, 28 Oct 2016 13:27:23 +0100 -Subject: [PATCH] [perl #130001] h2xs: avoid infinite loop for enums -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -'typedef enum x { ... } x' causes h2xs to enter a substitution loop while -trying to write the typemap file. - -Signed-off-by: Petr Písař ---- - utils/h2xs.PL | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/utils/h2xs.PL b/utils/h2xs.PL -index 8fda87b..f9063cb 100644 ---- a/utils/h2xs.PL -+++ b/utils/h2xs.PL -@@ -1034,7 +1034,7 @@ if( ! $opt_X ){ # use XS, unless it was disabled - } - } - { local $" = '|'; -- $typedef_rex = qr(\b(? -Date: Mon, 14 Nov 2016 11:56:15 +0100 -Subject: [PATCH] Fix Storable segfaults. - -Fix a null pointed dereference segfault in storable when the -retrieve_code logic was unable to read the string that contained -the code. - -Also fix several locations where retrieve_other was called with a -null context pointer. This also resulted in a null pointer -dereference. ---- - dist/Storable/Storable.xs | 10 +++++++--- - 1 file changed, 7 insertions(+), 3 deletions(-) - -diff --git a/dist/Storable/Storable.xs b/dist/Storable/Storable.xs -index 053951c..caa489c 100644 ---- a/dist/Storable/Storable.xs -+++ b/dist/Storable/Storable.xs -@@ -5647,6 +5647,10 @@ static SV *retrieve_code(pTHX_ stcxt_t *cxt, const char *cname) - CROAK(("Unexpected type %d in retrieve_code\n", type)); - } - -+ if (!text) { -+ CROAK(("Unable to retrieve code\n")); -+ } -+ - /* - * prepend "sub " to the source - */ -@@ -5767,7 +5771,7 @@ static SV *old_retrieve_array(pTHX_ stcxt_t *cxt, const char *cname) - continue; /* av_extend() already filled us with undef */ - } - if (c != SX_ITEM) -- (void) retrieve_other(aTHX_ (stcxt_t *) 0, 0); /* Will croak out */ -+ (void) retrieve_other(aTHX_ cxt, 0); /* Will croak out */ - TRACEME(("(#%d) item", i)); - sv = retrieve(aTHX_ cxt, 0); /* Retrieve item */ - if (!sv) -@@ -5844,7 +5848,7 @@ static SV *old_retrieve_hash(pTHX_ stcxt_t *cxt, const char *cname) - if (!sv) - return (SV *) 0; - } else -- (void) retrieve_other(aTHX_ (stcxt_t *) 0, 0); /* Will croak out */ -+ (void) retrieve_other(aTHX_ cxt, 0); /* Will croak out */ - - /* - * Get key. -@@ -5855,7 +5859,7 @@ static SV *old_retrieve_hash(pTHX_ stcxt_t *cxt, const char *cname) - - GETMARK(c); - if (c != SX_KEY) -- (void) retrieve_other(aTHX_ (stcxt_t *) 0, 0); /* Will croak out */ -+ (void) retrieve_other(aTHX_ cxt, 0); /* Will croak out */ - RLEN(size); /* Get key size */ - KBUFCHK((STRLEN)size); /* Grow hash key read pool if needed */ - if (size) --- -2.10.2 - diff --git a/perl-5.25.7-Fix-const-correctness-in-hv_func.h.patch b/perl-5.25.7-Fix-const-correctness-in-hv_func.h.patch deleted file mode 100644 index 5f2a428..0000000 --- a/perl-5.25.7-Fix-const-correctness-in-hv_func.h.patch +++ /dev/null @@ -1,124 +0,0 @@ -From 463ddf34c08f2c97199b1bb242da1f17494d4d1a Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= -Date: Thu, 24 Nov 2016 16:34:09 +0100 -Subject: [PATCH] Fix const correctness in hv_func.h -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Building an XS code with -Wcast-qual yielded warnings about discarding -const qualifiers from pointer targets like: - -$ printf '#include "EXTERN.h"\n#include "perl.h"\n' | gcc -Wcast-qual -I/usr/lib64/perl5/CORE -c -x c - -In file included from /usr/lib64/perl5/CORE/hv.h:629:0, - from /usr/lib64/perl5/CORE/perl.h:3740, - from :2: -/usr/lib64/perl5/CORE/hv_func.h: In function ‘S_perl_hash_siphash_2_4’: -/usr/lib64/perl5/CORE/hv_func.h:213:17: warning: cast discards ‘const’ qualifier from pointer target type [-Wcast-qual] - U64TYPE k0 = ((U64TYPE*)seed)[0]; - ^ - -Signed-off-by: Petr Písař ---- - hv_func.h | 22 +++++++++++----------- - 1 file changed, 11 insertions(+), 11 deletions(-) - -diff --git a/hv_func.h b/hv_func.h -index 8866db9..57b1ed1 100644 ---- a/hv_func.h -+++ b/hv_func.h -@@ -118,7 +118,7 @@ - - #if (BYTEORDER == 0x1234 || BYTEORDER == 0x12345678) && U32SIZE == 4 - /* CPU endian matches murmurhash algorithm, so read 32-bit word directly */ -- #define U8TO32_LE(ptr) (*((U32*)(ptr))) -+ #define U8TO32_LE(ptr) (*((const U32*)(ptr))) - #elif BYTEORDER == 0x4321 || BYTEORDER == 0x87654321 - /* TODO: Add additional cases below where a compiler provided bswap32 is available */ - #if defined(__GNUC__) && (__GNUC__>4 || (__GNUC__==4 && __GNUC_MINOR__>=3)) -@@ -210,8 +210,8 @@ S_perl_hash_siphash_2_4(const unsigned char * const seed, const unsigned char *i - U64 v3 = UINT64_C(0x7465646279746573); - - U64 b; -- U64 k0 = ((U64*)seed)[0]; -- U64 k1 = ((U64*)seed)[1]; -+ U64 k0 = ((const U64*)seed)[0]; -+ U64 k1 = ((const U64*)seed)[1]; - U64 m; - const int left = inlen & 7; - const U8 *end = in + inlen - left; -@@ -269,7 +269,7 @@ S_perl_hash_siphash_2_4(const unsigned char * const seed, const unsigned char *i - - PERL_STATIC_INLINE U32 - S_perl_hash_superfast(const unsigned char * const seed, const unsigned char *str, STRLEN len) { -- U32 hash = *((U32*)seed) + (U32)len; -+ U32 hash = *((const U32*)seed) + (U32)len; - U32 tmp; - int rem= len & 3; - len >>= 2; -@@ -373,7 +373,7 @@ S_perl_hash_superfast(const unsigned char * const seed, const unsigned char *str - /* now we create the hash function */ - PERL_STATIC_INLINE U32 - S_perl_hash_murmur3(const unsigned char * const seed, const unsigned char *ptr, STRLEN len) { -- U32 h1 = *((U32*)seed); -+ U32 h1 = *((const U32*)seed); - U32 k1; - U32 carry = 0; - -@@ -467,7 +467,7 @@ S_perl_hash_murmur3(const unsigned char * const seed, const unsigned char *ptr, - PERL_STATIC_INLINE U32 - S_perl_hash_djb2(const unsigned char * const seed, const unsigned char *str, const STRLEN len) { - const unsigned char * const end = (const unsigned char *)str + len; -- U32 hash = *((U32*)seed) + (U32)len; -+ U32 hash = *((const U32*)seed) + (U32)len; - while (str < end) { - hash = ((hash << 5) + hash) + *str++; - } -@@ -477,7 +477,7 @@ S_perl_hash_djb2(const unsigned char * const seed, const unsigned char *str, con - PERL_STATIC_INLINE U32 - S_perl_hash_sdbm(const unsigned char * const seed, const unsigned char *str, const STRLEN len) { - const unsigned char * const end = (const unsigned char *)str + len; -- U32 hash = *((U32*)seed) + (U32)len; -+ U32 hash = *((const U32*)seed) + (U32)len; - while (str < end) { - hash = (hash << 6) + (hash << 16) - hash + *str++; - } -@@ -503,7 +503,7 @@ S_perl_hash_sdbm(const unsigned char * const seed, const unsigned char *str, con - PERL_STATIC_INLINE U32 - S_perl_hash_one_at_a_time(const unsigned char * const seed, const unsigned char *str, const STRLEN len) { - const unsigned char * const end = (const unsigned char *)str + len; -- U32 hash = *((U32*)seed) + (U32)len; -+ U32 hash = *((const U32*)seed) + (U32)len; - while (str < end) { - hash += *str++; - hash += (hash << 10); -@@ -518,7 +518,7 @@ S_perl_hash_one_at_a_time(const unsigned char * const seed, const unsigned char - PERL_STATIC_INLINE U32 - S_perl_hash_one_at_a_time_hard(const unsigned char * const seed, const unsigned char *str, const STRLEN len) { - const unsigned char * const end = (const unsigned char *)str + len; -- U32 hash = *((U32*)seed) + (U32)len; -+ U32 hash = *((const U32*)seed) + (U32)len; - - while (str < end) { - hash += (hash << 10); -@@ -553,7 +553,7 @@ S_perl_hash_one_at_a_time_hard(const unsigned char * const seed, const unsigned - PERL_STATIC_INLINE U32 - S_perl_hash_old_one_at_a_time(const unsigned char * const seed, const unsigned char *str, const STRLEN len) { - const unsigned char * const end = (const unsigned char *)str + len; -- U32 hash = *((U32*)seed); -+ U32 hash = *((const U32*)seed); - while (str < end) { - hash += *str++; - hash += (hash << 10); -@@ -581,7 +581,7 @@ S_perl_hash_murmur_hash_64a (const unsigned char * const seed, const unsigned ch - { - const U64 m = UINT64_C(0xc6a4a7935bd1e995); - const int r = 47; -- U64 h = *((U64*)seed) ^ len; -+ U64 h = *((const U64*)seed) ^ len; - const U64 * data = (const U64 *)str; - const U64 * end = data + (len/8); - const unsigned char * data2; --- -2.7.4 - diff --git a/perl-5.25.7-perl-130307-Correctly-unwind-on-cache-hit.patch b/perl-5.25.7-perl-130307-Correctly-unwind-on-cache-hit.patch deleted file mode 100644 index dc4f81b..0000000 --- a/perl-5.25.7-perl-130307-Correctly-unwind-on-cache-hit.patch +++ /dev/null @@ -1,53 +0,0 @@ -From 95ec90ac7c7c5fb158401eb65721bbeaae1949ab Mon Sep 17 00:00:00 2001 -From: Hugo van der Sanden -Date: Mon, 12 Dec 2016 15:15:06 +0000 -Subject: [PATCH] Correctly unwind on cache hit -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Petr Pisar: Ported to 5.24.0: - -commit d3c48e81594c1d64ba9833495e45d8951b42027c -Author: Hugo van der Sanden -Date: Mon Dec 12 15:15:06 2016 +0000 - - [perl #130307] Correctly unwind on cache hit - - We've already incremented curlyx.count in the WHILEM branch before - we check for a hit in the super-linear cache, so must reverse that - on the sayNO. - -Signed-off-by: Petr Písař ---- - regexec.c | 1 + - t/re/re_tests | 1 + - 2 files changed, 2 insertions(+) - -diff --git a/regexec.c b/regexec.c -index 38ff44a..a5d5db4 100644 ---- a/regexec.c -+++ b/regexec.c -@@ -7322,6 +7322,7 @@ NULL - DEBUG_EXECUTE_r( Perl_re_exec_indentf( aTHX_ "whilem: (cache) already tried at this position...\n", - depth) - ); -+ cur_curlyx->u.curlyx.count--; - sayNO; /* cache records failure */ - } - ST.cache_offset = offset; -diff --git a/t/re/re_tests b/t/re/re_tests -index 2f4d00c..c81f67f 100644 ---- a/t/re/re_tests -+++ b/t/re/re_tests -@@ -1969,6 +1969,7 @@ ab(?#Comment){2}c abbc y $& abbc - aa$|a(?R)a|a aaa y $& aaa # [perl 128420] recursive matches - (?:\1|a)([bcd])\1(?:(?R)|e)\1 abbaccaddedcb y $& abbaccaddedcb # [perl 128420] recursive match with backreferences - \b\z0*\x{100} .\x{100} n - - # [perl #129350] crashed in intuit_start -+(X{2,}[-X]{1,4}){3,}X{2,} XXX-XXX-XXX-- n - - # [perl #130307] - - # Keep these lines at the end of the file - # vim: softtabstop=0 noexpandtab --- -2.7.4 - diff --git a/perl-5.25.8-perl-129149-avoid-a-heap-buffer-overflow-with-pack-W.patch b/perl-5.25.8-perl-129149-avoid-a-heap-buffer-overflow-with-pack-W.patch deleted file mode 100644 index 32bbc4b..0000000 --- a/perl-5.25.8-perl-129149-avoid-a-heap-buffer-overflow-with-pack-W.patch +++ /dev/null @@ -1,58 +0,0 @@ -From bf4a926a29374161655548b149d1cb37300bcc05 Mon Sep 17 00:00:00 2001 -From: Tony Cook -Date: Wed, 7 Sep 2016 16:51:39 +1000 -Subject: [PATCH] (perl #129149) avoid a heap buffer overflow with pack "W"... -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Signed-off-by: Petr Písař ---- - pp_pack.c | 2 +- - t/op/pack.t | 13 ++++++++++++- - 2 files changed, 13 insertions(+), 2 deletions(-) - -diff --git a/pp_pack.c b/pp_pack.c -index ee4c69e..737e019 100644 ---- a/pp_pack.c -+++ b/pp_pack.c -@@ -2587,7 +2587,7 @@ S_pack_rec(pTHX_ SV *cat, tempsym_t* symptr, SV **beglist, SV **endlist ) - if (in_bytes) auv = auv % 0x100; - if (utf8) { - W_utf8: -- if (cur > end) { -+ if (cur >= end) { - *cur = '\0'; - SvCUR_set(cat, cur - start); - -diff --git a/t/op/pack.t b/t/op/pack.t -index 3fc12e4..47d1216 100644 ---- a/t/op/pack.t -+++ b/t/op/pack.t -@@ -12,7 +12,7 @@ my $no_endianness = $] > 5.009 ? '' : - my $no_signedness = $] > 5.009 ? '' : - "Signed/unsigned pack modifiers not available on this perl"; - --plan tests => 14712; -+plan tests => 14713; - - use strict; - use warnings qw(FATAL all); -@@ -2047,3 +2047,14 @@ ok(1, "argument underflow did not crash"); - is(pack("H40", $up_nul), $twenty_nuls, - "check pack H zero fills (utf8 source)"); - } -+ -+{ -+ # [perl #129149] the code below would write one past the end of the output -+ # buffer, only detected by ASAN, not by valgrind -+ $Config{ivsize} >= 8 -+ or skip "[perl #129149] need 64-bit for this test", 1; -+ fresh_perl_is(<<'EOS', "ok\n", { stderr => 1 }, "pack W overflow"); -+print pack("ucW", "0000", 0, 140737488355327) eq "\$,#`P,```\n\0\x{7fffffffffff}" -+ ? "ok\n" : "not ok\n"; -+EOS -+} --- -2.7.4 - diff --git a/perl-5.25.8-perl-129149-fix-the-test-so-skip-has-a-SKIP-to-work-.patch b/perl-5.25.8-perl-129149-fix-the-test-so-skip-has-a-SKIP-to-work-.patch deleted file mode 100644 index 530b65d..0000000 --- a/perl-5.25.8-perl-129149-fix-the-test-so-skip-has-a-SKIP-to-work-.patch +++ /dev/null @@ -1,30 +0,0 @@ -From 30be69c851a7fa7e29d85c9b6e070273df82f3e7 Mon Sep 17 00:00:00 2001 -From: Tony Cook -Date: Tue, 17 Jan 2017 15:36:31 +1100 -Subject: [PATCH] (perl #129149) fix the test so skip has a SKIP: to work with -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Thanks to bulk88 for pointing this out. - -Signed-off-by: Petr Písař ---- - t/op/pack.t | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/t/op/pack.t b/t/op/pack.t -index 47d1216..919e4c5 100644 ---- a/t/op/pack.t -+++ b/t/op/pack.t -@@ -2048,6 +2048,7 @@ ok(1, "argument underflow did not crash"); - "check pack H zero fills (utf8 source)"); - } - -+SKIP: - { - # [perl #129149] the code below would write one past the end of the output - # buffer, only detected by ASAN, not by valgrind --- -2.7.4 - diff --git a/perl-5.25.9-avoid-a-leak-in-list-assign-from-to-magic-values.patch b/perl-5.25.9-avoid-a-leak-in-list-assign-from-to-magic-values.patch deleted file mode 100644 index 1dc2d9c..0000000 --- a/perl-5.25.9-avoid-a-leak-in-list-assign-from-to-magic-values.patch +++ /dev/null @@ -1,83 +0,0 @@ -From 1050723fecc0e27677c39fadbb97cb892dfd27d2 Mon Sep 17 00:00:00 2001 -From: David Mitchell -Date: Wed, 15 Feb 2017 15:58:24 +0000 -Subject: [PATCH] avoid a leak in list assign from/to magic values -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -RT #130766 - -A leak in list assignment was introduced by v5.23.6-89-gbeb08a1 and -extended with v5.23.6-90-g5c1db56. - -Basically the code in S_aassign_copy_common() which does a mark-and-sweep -looking for common vars by temporarily setting SVf_BREAK on LHS SVs then -seeing if that flag was present on RHS vars, very temporarily removed that -flag from the RHS SV while mortal copying it, then set it again. After -those two commits, the "resetting" code could set SVf_BREAK on the RHS SV -even when it hadn't been been present earlier. - -This meant that on exit from S_aassign_copy_common(), some SVs could be -left with SVf_BREAK on. When that SV was freed, the SVf_BREAK flag meant -that the SV head wasn't planted back in the arena (but PL_sv_count was -still decremented). This could lead to slow growth of the SV HEAD arenas. - -The two circumstances that could trigger the leak were: - -1) An SMG var on the LHS and a temporary on the RHS, e.g. - - use Tie::Scalar; - my ($s, $t); - tie $s, 'Tie::StdScalar'; # $s has set magic - while (1) { - ($s, $t) = ($t, map 1, 1, 2); # the map returns temporaries - } - -2) A temporary on the RHS which has GMG, e.g. - - my $s = "abc"; - pos($s) = 1; - local our ($x, $y); - while (1) { - my $pr = \pos($s); # creates a ref to a TEMP with get magic - ($x, $y) = (1, $$pr); - } - -Strictly speaking a TEMP isn't required for either case; just a situation -where there's always a fresh SV on the RHS for each iteration that will -soon get freed and thus leaked. - -This commit doesn't include any tests since I can't think of a way of -testing it. svleak.t relies on PL_sv_count, which in this case doesn't -show the leak. - -Signed-off-by: Petr Písař ---- - pp_hot.c | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/pp_hot.c b/pp_hot.c -index a3ee2a7..7d6db0f 100644 ---- a/pp_hot.c -+++ b/pp_hot.c -@@ -1182,6 +1182,7 @@ S_aassign_copy_common(pTHX_ SV **firstlelem, SV **lastlelem, - assert(svr); - - if (UNLIKELY(SvFLAGS(svr) & (SVf_BREAK|SVs_GMG) || copy_all)) { -+ U32 brk = (SvFLAGS(svr) & SVf_BREAK); - - #ifdef DEBUGGING - if (fake) { -@@ -1217,7 +1218,7 @@ S_aassign_copy_common(pTHX_ SV **firstlelem, SV **lastlelem, - /* ... but restore afterwards in case it's needed again, - * e.g. ($a,$b,$c) = (1,$a,$a) - */ -- SvFLAGS(svr) |= SVf_BREAK; -+ SvFLAGS(svr) |= brk; - } - - if (!lcount) --- -2.7.4 - diff --git a/perl-5.25.9-only-mess-with-NEXT_OFF-when-we-are-in-PASS2.patch b/perl-5.25.9-only-mess-with-NEXT_OFF-when-we-are-in-PASS2.patch deleted file mode 100644 index 1eb9183..0000000 --- a/perl-5.25.9-only-mess-with-NEXT_OFF-when-we-are-in-PASS2.patch +++ /dev/null @@ -1,38 +0,0 @@ -From bb78386f13c18a1a7dae932b9b36e977056b13c7 Mon Sep 17 00:00:00 2001 -From: Yves Orton -Date: Fri, 27 Jan 2017 16:57:40 +0100 -Subject: [PATCH] only mess with NEXT_OFF() when we are in PASS2 -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -In 31fc93954d1f379c7a49889d91436ce99818e1f6 I added code that would modify -NEXT_OFF() when we were not in PASS2, when we should not do so. Strangly this -did not segfault when I tested, but this fix is required. - -Signed-off-by: Petr Písař ---- - regcomp.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/regcomp.c b/regcomp.c -index 322d230..d5ce63f 100644 ---- a/regcomp.c -+++ b/regcomp.c -@@ -11709,11 +11709,11 @@ S_regpiece(pTHX_ RExC_state_t *pRExC_state, I32 *flagp, U32 depth) - nextchar(pRExC_state); - if (max < min) { /* If can't match, warn and optimize to fail - unconditionally */ -+ reginsert(pRExC_state, OPFAIL, orig_emit, depth+1); - if (PASS2) { - ckWARNreg(RExC_parse, "Quantifier {n,m} with n > m can't match"); -+ NEXT_OFF(orig_emit)= regarglen[OPFAIL] + NODE_STEP_REGNODE; - } -- reginsert(pRExC_state, OPFAIL, orig_emit, depth+1); -- NEXT_OFF(orig_emit)= regarglen[OPFAIL] + NODE_STEP_REGNODE; - return ret; - } - else if (min == max && *RExC_parse == '?') --- -2.7.4 - diff --git a/perl-5.25.9-perl-129061-CURLYX-nodes-can-be-studied-more-than-on.patch b/perl-5.25.9-perl-129061-CURLYX-nodes-can-be-studied-more-than-on.patch deleted file mode 100644 index d7b9c6b..0000000 --- a/perl-5.25.9-perl-129061-CURLYX-nodes-can-be-studied-more-than-on.patch +++ /dev/null @@ -1,69 +0,0 @@ -From 42e9b60980bb8e29e76629e14c6aa945194c0647 Mon Sep 17 00:00:00 2001 -From: Hugo van der Sanden -Date: Wed, 5 Oct 2016 02:20:26 +0100 -Subject: [PATCH] [perl #129061] CURLYX nodes can be studied more than once -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -study_chunk() for CURLYX is used to set flags on the linked WHILEM -node to say it is the whilem_c'th of whilem_seen. However it assumes -each CURLYX can be studied only once, which is not the case - there -are various cases such as GOSUB which call study_chunk() recursively -on already-visited parts of the program. - -Storing the wrong index can cause the super-linear cache handling in -regmatch() to read/write the byte after the end of poscache. - -Also reported in [perl #129281]. - -Signed-off-by: Petr Písař ---- - regcomp.c | 12 +++++++++--- - t/re/pat.t | 1 - - 2 files changed, 9 insertions(+), 4 deletions(-) - -diff --git a/regcomp.c b/regcomp.c -index 850a6c1..48c8d8d 100644 ---- a/regcomp.c -+++ b/regcomp.c -@@ -5218,15 +5218,21 @@ S_study_chunk(pTHX_ RExC_state_t *pRExC_state, regnode **scanp, - However, this time it's not a subexpression - we care about, but the expression itself. */ - && (maxcount == REG_INFTY) -- && data && ++data->whilem_c < 16) { -+ && data) { - /* This stays as CURLYX, we can put the count/of pair. */ - /* Find WHILEM (as in regexec.c) */ - regnode *nxt = oscan + NEXT_OFF(oscan); - - if (OP(PREVOPER(nxt)) == NOTHING) /* LONGJMP */ - nxt += ARG(nxt); -- PREVOPER(nxt)->flags = (U8)(data->whilem_c -- | (RExC_whilem_seen << 4)); /* On WHILEM */ -+ nxt = PREVOPER(nxt); -+ if (nxt->flags & 0xf) { -+ /* we've already set whilem count on this node */ -+ } else if (++data->whilem_c < 16) { -+ assert(data->whilem_c <= RExC_whilem_seen); -+ nxt->flags = (U8)(data->whilem_c -+ | (RExC_whilem_seen << 4)); /* On WHILEM */ -+ } - } - if (data && fl & (SF_HAS_PAR|SF_IN_PAR)) - pars++; -diff --git a/t/re/pat.t b/t/re/pat.t -index ecd3af1..16bfc8e 100644 ---- a/t/re/pat.t -+++ b/t/re/pat.t -@@ -1909,7 +1909,6 @@ EOP - } - { - # [perl #129281] buffer write overflow, detected by ASAN, valgrind -- local $::TODO = "whilem_c bumped too much"; - fresh_perl_is('/0(?0)|^*0(?0)|^*(^*())0|/', '', {}, "don't bump whilem_c too much"); - } - } # End of sub run_tests --- -2.7.4 - diff --git a/perl-5.25.9-silence-warnings-from-tests-about-impossible-quantif.patch b/perl-5.25.9-silence-warnings-from-tests-about-impossible-quantif.patch deleted file mode 100644 index 2cfe7ed..0000000 --- a/perl-5.25.9-silence-warnings-from-tests-about-impossible-quantif.patch +++ /dev/null @@ -1,34 +0,0 @@ -From 923e23bad0514e1bd29112650fb78aa4ea69e1b7 Mon Sep 17 00:00:00 2001 -From: Yves Orton -Date: Sat, 28 Jan 2017 15:13:17 +0100 -Subject: [PATCH] silence warnings from tests about impossible quantifiers -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -thanks to Dave M for noticing.... - -Signed-off-by: Petr Písař ---- - t/re/pat_rt_report.t | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/t/re/pat_rt_report.t b/t/re/pat_rt_report.t -index 21aff58..dd740e7 100644 ---- a/t/re/pat_rt_report.t -+++ b/t/re/pat_rt_report.t -@@ -1134,9 +1134,10 @@ EOP - { - # rt - fresh_perl_is( -- '"foo"=~/((?1)){8,0}/; print "ok"', -+ 'no warnings "regexp"; "foo"=~/((?1)){8,0}/; print "ok"', - "ok", {}, 'RT #130561 - allowing impossible quantifier should not cause SEGVs'); - my $s= "foo"; -+ no warnings 'regexp'; - ok($s=~/(foo){1,0}|(?1)/, - "RT #130561 - allowing impossible quantifier should not break recursion"); - } --- -2.7.4 - diff --git a/perl-USE_MM_LD_RUN_PATH.patch b/perl-USE_MM_LD_RUN_PATH.patch index 21a1f72..0978743 100644 --- a/perl-USE_MM_LD_RUN_PATH.patch +++ b/perl-USE_MM_LD_RUN_PATH.patch @@ -20,10 +20,10 @@ diff -up perl-5.14.0/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker.pm.usem perl PERM_DIR PERM_RW PERM_RWX MAGICXS PL_FILES PM PM_FILTER PMLIBDIRS PMLIBPARENTDIRS POLLUTE PREREQ_FATAL PREREQ_PM PREREQ_PRINT PRINT_PREREQ -- SIGN SKIP TEST_REQUIRES TYPEMAPS UNINST VERSION VERSION_FROM XS XSOPT XSPROTOARG -+ SIGN SKIP TEST_REQUIRES TYPEMAPS UNINST USE_MM_LD_RUN_PATH VERSION VERSION_FROM XS XSOPT XSPROTOARG - XS_VERSION clean depend dist dynamic_lib linkext macro realclean - tool_autosplit +- SIGN SKIP TEST_REQUIRES TYPEMAPS UNINST VERSION VERSION_FROM XS ++ SIGN SKIP TEST_REQUIRES TYPEMAPS UNINST USE_MM_LD_RUN_PATH VERSION VERSION_FROM XS + XSBUILD XSMULTI XSOPT XSPROTOARG XS_VERSION + clean depend dist dynamic_lib linkext macro realclean tool_autosplit @@ -422,7 +422,27 @@ sub new { # PRINT_PREREQ is RedHatism. @@ -104,6 +104,6 @@ diff -up perl-5.14.0/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm.usem perl-5 my $ld_run_path_shell = ""; - if ($self->{LD_RUN_PATH} ne "") { + if (($self->{LD_RUN_PATH} ne "") && ($self->{USE_MM_LD_RUN_PATH})) { - $ld_run_path_shell = 'LD_RUN_PATH="$(LD_RUN_PATH)" '; + $ld_run_path_shell = 'LD_RUN_PATH="$(LD_RUN_PATH)" '; } diff --git a/perl.spec b/perl.spec index d0ad095..bc7eb9d 100644 --- a/perl.spec +++ b/perl.spec @@ -1,4 +1,4 @@ -%global perl_version 5.24.1 +%global perl_version 5.26.0 %global perl_epoch 4 %global perl_arch_stem -thread-multi %global perl_archname %{_arch}-%{_os}%{perl_arch_stem} @@ -37,7 +37,7 @@ Name: perl Version: %{perl_version} # release number must be even higher, because dual-lived modules will be broken otherwise -Release: 391%{?dist} +Release: 392%{?dist} Epoch: %{perl_epoch} Summary: Practical Extraction and Report Language Group: Development/Languages @@ -133,209 +133,10 @@ Patch22: perl-5.18.1-Document-Math-BigInt-CalcEmu-requires-Math-BigInt.pa # Make *DBM_File desctructors thread-safe, bug #1107543, RT#61912 Patch26: perl-5.18.2-Destroy-GDBM-NDBM-ODBM-SDBM-_File-objects-only-from-.patch -# Workaround for Coro, bug #1231165, CPAN RT#101063. To remove in the future. -Patch28: perl-5.22.0-Revert-const-the-core-magic-vtables.patch - # Replace ExtUtils::MakeMaker dependency with ExtUtils::MM::Utils. # This allows not to require perl-devel. Bug #1129443 Patch30: perl-5.22.1-Replace-EU-MM-dependnecy-with-EU-MM-Utils-in-IPC-Cmd.patch -# Fix a memory leak when compiling a regular expression with a POSIX class, -# RT#128313, in upstream after 5.25.1 -Patch31: perl-5.24.0-Fix-a-memory-leak-in-strict-regex-posix-classes.patch - -# Do not mangle errno from failed socket calls, RT#128316, -# in upstream after 5.25.1 -Patch32: perl-5.25.1-perl-128316-preserve-errno-from-failed-system-calls.patch - -# Fix compiling regular expressions like /\X*(?0)/, RT#128109, in upstream -# after 5.25.1 -Patch33: perl-5.24.0-fix-128109-do-not-move-RExC_open_parens-0-in-reginse.patch - -# Do not use unitialized memory in $h{\const} warnings, RT#128189, -# in upstream after 5.25.2 -Patch34: perl-5.25.2-uninit-warning-from-h-const-coredumped.patch - -# Fix precedence in hv_ename_delete, RT#128086, in upstream after 5.25.0 -Patch35: perl-5.25.0-Fix-precedence-in-hv_ename_delete.patch - -# Do not treat %: as a stash, RT#128238, in upstream after 5.25.2 -Patch36: perl-5.25.2-only-treat-stash-entries-with-.-as-sub-stashes.patch - -# Do not crash when inserting a non-stash into a stash, RT#128238, -# in upstream after 5.25.2 -Patch37: perl-5.25.2-perl-128238-Crash-with-non-stash-in-stash.patch - -# Fix line numbers with perl -x, RT#128508, in upstream after 5.25.2 -Patch38: perl-5.25.2-perl-128508-Fix-line-numbers-with-perl-x.patch - -# Fix a crash when vivifying a stub in a deleted package, RT#128532, -# in upstream after 5.25.2 -Patch40: perl-5.25.2-perl-128532-Crash-vivifying-stub-in-deleted-pkg.patch - -# Fix a crash in "Subroutine redefined" warning, RT#128257, -# in upstream after 5.25.2 -Patch41: perl-5.25.2-SEGV-in-Subroutine-redefined-warning.patch - -# Fix a crash in lexical scope warnings, RT#128597, in upstream after 5.25.2 -Patch42: perl-5.25.2-perl-128597-Crash-from-gp_free-ckWARN_d.patch - -# Fix handling \N{} in tr for characters in range 128--255, RT#128734, -# in upstream after 5.25.3 -Patch43: perl-5.24.0-PATCH-perl-128734-tr-N-.-failing-for-128-255.patch - -# Fix crash in "evalbytes S", RT#129196, in upstream after 5.25.4 -Patch45: perl-5.25.4-perl-129196-Crash-bad-read-with-evalbytes-S.patch -Patch46: perl-5.24.0-Regression-test-for-RT-129196.patch -Patch47: perl-5.25.4-toke.c-fix-mswin32-builds.patch - -# Fix crash in splice, RT#129164, RT#129166, RT#129167, in upstream after 5.25.4 -Patch48: perl-5.24.0-perl-129164-Crash-with-splice.patch - -# Fix string overrun in Perl_gv_fetchmethod_pvn_flags, RT#129267, -# in upstream after 5.25.4 -Patch49: perl-5.24.0-clean-up-gv_fetchmethod_pvn_flags-introduce-name_end.patch -Patch50: perl-5.25.4-clean-up-gv_fetchmethod_pvn_flags-move-origname-init.patch -Patch51: perl-5.25.4-clean-up-gv_fetchmethod_pvn_flags-rename-nsplit-to-l.patch -Patch52: perl-5.25.4-fix-129267-rework-gv_fetchmethod_pvn_flags-separator.patch -Patch53: perl-5.25.4-perl-129267-Test-for-gv_fetchmethod-buffer-overrun.patch - -# Fix crash when matching UTF-8 string with non-UTF-8 substrings, RT#129350, -# in upstream after 5.25.5 -Patch54: perl-5.24.0-perl-129350-anchored-floating-substrings-must-be-utf.patch - -# Fix parsing perl options in shell bang line, RT#129336, -# in upstream after 5.25.5 -Patch55: perl-5.24.0-rt-129336-perl-i-u-erroneously-interpreted-as-u.patch - -# Fix firstchar bitmap under UTF-8 with prefix optimization, RT#129950, -# in upstream after 5.25.6 -Patch56: perl-5.24.0-regcomp.c-fix-perl-129950-fix-firstchar-bitmap-under.patch - -# Avoid infinite loop in h2xs tool if enum and type have the same name, -# RT#130001, in upstream after 5.25.6 -Patch57: perl-5.25.6-perl-130001-h2xs-avoid-infinite-loop-for-enums.patch - -# Fix stack handling when calling chdir without an argument, RT#129130, -# in upstream after 5.25.6 -Patch58: perl-5.24.0-perl-129130-make-chdir-allocate-the-stack-it-needs.patch - -# Fix crash in Storable when deserializing malformed code reference, RT#68348, -# RT130098 -Patch59: perl-5.25.7-Fix-Storable-segfaults.patch - -# Fix crash on explicit return from regular expression substitution, RT#130188, -# in upstream after 5.25.7 -Patch60: perl-5.24.0-crash-on-explicit-return-from-s-e.patch - -# Fix assigning split() return values to an array, in upstream after 5.25.7 -Patch61: perl-5.24.0-split-was-leaving-PL_sv_undef-in-unused-ary-slots.patch - -# Fix const correctness in hv_func.h, bug #1242980, RT#130169, -# in upstream after 5.25.7 -Patch62: perl-5.25.7-Fix-const-correctness-in-hv_func.h.patch - -# Fix a crash in optimized evaluation of "or ((0) x 0))", RT#130247, -# in upsream after 5.25.7 -Patch63: perl-5.24.0-assertion-failure-in-.-or-0-x-0.patch - -# Fix a memory leak in IO::Poll, RT#129788, in upstream after 5.25.7 -Patch64: perl-5.24.0-perl-129788-IO-Poll-fix-memory-leak.patch - -# Fix regular expression matching, RT#130307, in upstream after 5.25.7 -Patch65: perl-5.25.7-perl-130307-Correctly-unwind-on-cache-hit.patch - -# Fix a buffer overflow in split in scalar context, RT#130262, -# in upstream after 5.25.8 -Patch66: perl-5.24.1-perl-130262-split-scalar-context-stack-overflow-fix.patch - -# Fix a heap overflow with pack "W", RT129149, in upstream after 5.25.8 -Patch67: perl-5.25.8-perl-129149-avoid-a-heap-buffer-overflow-with-pack-W.patch -Patch68: perl-5.25.8-perl-129149-fix-the-test-so-skip-has-a-SKIP-to-work-.patch - -# Fix a use-after-free when processing scalar variables in forms, RT#129125, -# in upstream after 5.25.8 -Patch69: perl-5.24.1-perl-129125-copy-form-data-if-it-might-be-freed.patch - -# Fix a heap overflow if invalid octal or hexadecimal number is used in -# transliteration expression, RT#129342, in upstream after 5.25.8 -Patch70: perl-5.24.1-perl-129342-ensure-range-start-is-set-after-error-in.patch - -# Fix out-of-bound read in case of unmatched regexp backreference, RT#129377, -# in upstream after 5.25.8 -Patch71: perl-5.24.1-perl-129377-don-t-read-past-start-of-string-for-unma.patch - -# Fix UTF-8 string handling in & operator, RT#129287, in upstream after 5.25.4 -Patch72: perl-5.25.4-perl-129287-Make-UTF8-append-null.patch - -# Fix recreation of *::, RT#129869, in upstream after 5.25.9 -Patch73: perl-5.24.1-fix-special-case-recreation-of.patch - -# Fix a memory leak in B::RHE->HASH method, RT#130504, in upstream after 5.25.9 -Patch74: perl-5.24.1-Fix-memory-leak-in-B-RHE-HASH-method.patch - -# Fix parsing goto statements in multicalled subroutine, RT#113938, -# in upstream after 5.25.9 -Patch75: perl-5.24.1-permit-goto-at-top-level-of-multicalled-sub.patch - -# Fix a heap overlow in parsing $#, RT#129274, in upstream after 5.25.9 -Patch76: perl-5.24.1-perl-129274-avoid-treating-the-in-as-a-comment-intro.patch - -# 1/2 Adapt to zlib-1.2.11, bug #1420326, CPAN RT#119762, -# in upstream Compress-Raw-Zlib-2.072 -Patch77: Compress-Raw-Zlib-2.071-Adapt-to-zlib-1.2.11.patch -# 2/2 Fix compiler fatal warnings in Compress-Raw-Zlib, CPAN RT#120272 -Patch78: Compress-Raw-Zlib-2.071-Conform-to-C90.patch - -# Fix a crash when compiling a regexp with impossible quantifiers, RT#130561, -# in upstream after 5.25.9 -Patch79: perl-5.24.1-fix-RT-130561-recursion-and-optimising-away-impossib.patch -Patch80: perl-5.25.9-only-mess-with-NEXT_OFF-when-we-are-in-PASS2.patch -Patch81: perl-5.25.9-silence-warnings-from-tests-about-impossible-quantif.patch - -# Fix a buffer overrun with format and "use bytes", RT#130703, -# in upstream after 5.25.9 -Patch82: perl-5.24.1-buffer-overrun-with-format-and-use-bytes.patch - -# Fix a buffer overflow when studying some regexps repeatedly, -# RT#129281, RT#129061, un upstream after 5.25.9 -Patch83: perl-5.24.1-perl-129281-test-for-buffer-overflow-issue.patch -Patch84: perl-5.25.9-perl-129061-CURLYX-nodes-can-be-studied-more-than-on.patch - -# Fix a heap buffer overflow when evaluating regexps with embedded code blocks -# from more than one source, RT#129881, in upstream after 5.25.9 -Patch85: perl-5.24.1-fix-pad-scope-issue-in-re_evals.patch - -# Fix a memory leak in list assignment from or to magic values, RT#130766, -# in upstream after 5.25.9 -Patch86: perl-5.25.9-avoid-a-leak-in-list-assign-from-to-magic-values.patch - -# Fix a null-pointer dereference on malformed code, RT#130815, -# in upstream after 5.25.9 -Patch87: perl-5.24.1-perl-130815-fix-ck_return-null-pointer-deref-on-malf.patch - -# Fix an use-after-free in substr() that modifies a magic variable, RT#129340, -# in upstream after 5.25.9 -Patch88: perl-5.24.1-perl-129340-copy-the-source-when-inside-the-dest-in-.patch - -# Fix a memory leak leak in Perl_reg_named_buff_fetch(), RT#130822, -# in upstream after 5.25.10 -Patch89: perl-5.24.1-perl-130822-fix-an-AV-leak-in-Perl_reg_named_buff_fe.patch - -# Fix an invalid memory read when parsing a loop variable, RT#130814, -# in upstream after 5.25.10 -Patch90: perl-5.25.10-perl-130814-Add-testcase-and-new-testfile-t-comp-par.patch -# in upstream after 5.25.10 -Patch91: perl-5.24.1-perl-130814-update-pointer-into-PL_linestr-after-loo.patch -# in upstream after 5.25.2 -Patch92: perl-5.25.2-t-test.pl-Add-fresh_perl-function.patch -# in upstream after 5.25.10 -Patch93: perl-5.25.10-fix-VMS-test-fail.patch - -# Fix a heap-use-after-free in four-arguments substr call, RT#130624, -# in upstream after 5.25.10 -Patch94: perl-5.24.1-RT-130624-heap-use-after-free-in-4-arg-substr.patch - # Link XS modules to libperl.so with EU::CBuilder on Linux, bug #960048 Patch200: perl-5.16.3-Link-XS-modules-to-libperl.so-with-EU-CBuilder-on-Li.patch @@ -387,7 +188,7 @@ BuildRequires: rsyslog # compat macro needed for rebuild -%global perl_compat perl(:MODULE_COMPAT_5.24.1) +%global perl_compat perl(:MODULE_COMPAT_5.26.0) # File provides Provides: perl(bytes_heavy.pl) @@ -444,6 +245,7 @@ License: (GPL+ or Artistic) and HSLR and MIT and UCD # Compat provides Provides: %perl_compat Provides: perl(:MODULE_COMPAT_5.24.0) +Provides: perl(:MODULE_COMPAT_5.24.1) # Interpreter version to fulfil required genersted from "require 5.006;" Provides: perl(:VERSION) = %{perl_version} # Threading provides @@ -555,9 +357,9 @@ Requires: perl-libs = %{perl_epoch}:%{perl_version}-%{release} Conflicts: perl < 4:5.22.0-351 %description utils -Several utilities which come with Perl distribution like c2ph, h2ph, perlbug, -perlthanks, pl2pm, pstruct, and splain. Some utilities are provided by more -specific packages like perldoc by perl-Pod-Perldoc. +Several utilities which come with Perl distribution like h2ph, perlbug, +perlthanks, pl2pm, and splain. Some utilities are provided by more specific +packages like perldoc by perl-Pod-Perldoc. %package core @@ -612,9 +414,6 @@ Requires: perl-Module-Load-Conditional, perl-Module-Loaded, Requires: perl-Module-Metadata, perl-Net-Ping, Requires: perl-open, perl-PathTools Requires: perl-Params-Check -# TODO: Merge perl-Parse-CPAN-Meta sub-package into perl-CPAN-Meta after -# upgrading standalone perl-CPAN-Meta to 2.150010, bug #1370681 -Requires: perl(Parse::CPAN::Meta) Requires: perl-perlfaq, Requires: perl-PerlIO-via-QuotedPrint, perl-Perl-OSType Requires: perl-Pod-Checker, perl-Pod-Escapes, perl-Pod-Html, @@ -641,7 +440,7 @@ Summary: A module for Perl manipulation of .tar files Group: Development/Libraries License: GPL+ or Artistic Epoch: 0 -Version: 2.04 +Version: 2.24 BuildArch: noarch Requires: %perl_compat Requires: perl(IO::Zlib) >= 1.01 @@ -719,7 +518,7 @@ Summary: Walk Perl syntax tree, print debug information about op-codes Group: Development/Libraries License: GPL+ or Artistic Epoch: 0 -Version: 1.23 +Version: 1.24 Requires: %perl_compat BuildArch: noarch %if %{defined perl_bootstrap} @@ -736,7 +535,7 @@ Summary: Transparent big number support for Perl Group: Development/Libraries License: GPL+ or Artistic Epoch: 0 -Version: 0.42 +Version: 0.47 Requires: %perl_compat Requires: perl(Carp) # Math::BigInt::Lite is optional @@ -755,8 +554,8 @@ BigFloats in a transparent way. %package Carp Summary: Alternative warn and die for modules Epoch: 0 -# Real version 1.40 -Version: 1.40 +# Real version 1.42 +Version: 1.42 License: GPL+ or Artistic Group: Development/Libraries Requires: %perl_compat @@ -785,7 +584,7 @@ Summary: Low-Level Interface to bzip2 compression library Group: Development/Libraries License: GPL+ or Artistic Epoch: 0 -Version: 2.069 +Version: 2.074 Requires: perl(Exporter), perl(File::Temp) %if %{defined perl_bootstrap} %gendep_perl_Compress_Raw_Bzip2 @@ -800,7 +599,7 @@ Summary: Low-Level Interface to the zlib compression library Group: Development/Libraries License: (GPL+ or Artistic) and zlib Epoch: 0 -Version: 2.069 +Version: 2.074 Requires: %perl_compat %if %{defined perl_bootstrap} %gendep_perl_Compress_Raw_Zlib @@ -817,7 +616,7 @@ Summary: Structured data retrieval of perl -V output Group: Development/Libraries License: GPL+ or Artistic Epoch: 0 -Version: 0.25 +Version: 0.28 Requires: %perl_compat %if %{defined perl_bootstrap} %gendep_perl_Config_Perl_V @@ -871,7 +670,7 @@ Summary: Query, download and build perl modules from CPAN sites Group: Development/Languages License: GPL+ or Artistic Epoch: 0 -Version: 2.11 +Version: 2.18 Requires: make # Prefer Archive::Tar and Compress::Zlib over tar and gzip Requires: perl(Archive::Tar) >= 1.50 @@ -934,10 +733,13 @@ external download clients to fetch distributions from the net. %package CPAN-Meta Summary: Distribution metadata for a CPAN dist Epoch: 0 -Version: 2.150005 +Version: 2.150010 License: GPL+ or Artistic Group: Development/Libraries Requires: %perl_compat +Requires: perl(CPAN::Meta::YAML) >= 0.011 +Requires: perl(Encode) +Requires: perl(JSON::PP) >= 2.27300 %if %{defined perl_bootstrap} %gendep_perl_CPAN_Meta %endif @@ -955,8 +757,8 @@ in CPAN::Meta::Spec. %package CPAN-Meta-Requirements Summary: Set of version requirements for a CPAN dist Epoch: 0 -# Real version 2.132000 -Version: 2.132 +# Real version 2.140 +Version: 2.140 License: GPL+ or Artistic Group: Development/Libraries Requires: %perl_compat @@ -1001,7 +803,7 @@ Summary: Stringify perl data structures, suitable for printing and eval Group: Development/Libraries License: GPL+ or Artistic Epoch: 0 -Version: 2.160 +Version: 2.167 Requires: %perl_compat Requires: perl(Scalar::Util) Requires: perl(XSLoader) @@ -1022,7 +824,7 @@ Summary: Perl5 access to Berkeley DB version 1.x Group: Development/Libraries License: GPL+ or Artistic Epoch: 0 -Version: 1.835 +Version: 1.840 Requires: %perl_compat Requires: perl(Fcntl) Requires: perl(XSLoader) @@ -1043,7 +845,7 @@ Summary: A data debugging tool for the XS programmer Group: Development/Libraries License: GPL+ or Artistic Epoch: 0 -Version: 1.23 +Version: 1.26 Requires: %perl_compat %if %{defined perl_bootstrap} %gendep_perl_Devel_Peek @@ -1062,7 +864,7 @@ Summary: Perl Pollution Portability header generator Group: Development/Libraries License: GPL+ or Artistic Epoch: 0 -Version: 3.32 +Version: 3.35 Requires: %perl_compat %if %{defined perl_bootstrap} %gendep_perl_Devel_PPPort @@ -1083,7 +885,7 @@ Summary: Generate stubs for a SelfLoading module Group: Development/Libraries License: GPL+ or Artistic Epoch: 0 -Version: 1.05 +Version: 1.06 BuildArch: noarch Requires: %perl_compat %if %{defined perl_bootstrap} @@ -1127,7 +929,7 @@ Group: Development/Libraries License: (GPL+ or Artistic) and BSD # Epoch bump for clean upgrade over old standalone package Epoch: 0 -Version: 2.54 +Version: 2.55 Requires: %perl_compat Requires: perl(XSLoader) # Recommended @@ -1150,7 +952,7 @@ Group: Development/Libraries License: GPL+ or Artistic # Epoch bump for clean upgrade over old standalone package Epoch: 1 -Version: 5.95 +Version: 5.96 Requires: %perl_compat Requires: perl(Carp) # Recommended @@ -1172,7 +974,7 @@ Summary: Character encodings in Perl Group: Development/Libraries License: (GPL+ or Artistic) and Artistic 2.0 and UCD Epoch: 4 -Version: 2.80 +Version: 2.88 Requires: %perl_compat %if %{defined perl_bootstrap} %gendep_perl_Encode @@ -1188,7 +990,7 @@ Summary: Write your Perl script in non-ASCII or non-UTF-8 Group: Development/Libraries License: GPL+ or Artistic Epoch: 4 -Version: 2.17 +Version: 2.19 # Keeping this sub-package arch-specific because it installs files into # arch-specific directories. Requires: %perl_compat @@ -1220,7 +1022,7 @@ Summary: Character encodings in Perl Group: Development/Libraries License: (GPL+ or Artistic) and UCD Epoch: 4 -Version: 2.80 +Version: 2.88 Requires: %perl_compat Requires: %{name}-Encode = %{epoch}:%{version}-%{release} Recommends: perl-devel @@ -1260,7 +1062,7 @@ Summary: System errno constants Group: Development/Libraries License: GPL+ or Artistic Epoch: 0 -Version: 1.25 +Version: 1.28 Requires: %perl_compat # Errno.pm bakes in kernel version at build time and compares it against # $Config{osvers} at run time. Match exact interpreter build. Bug #1393421. @@ -1348,8 +1150,8 @@ by the Module::Build project, but may be useful for other purposes as well. Summary: Perl routines to replace common UNIX commands in Makefiles Group: Development/Libraries License: GPL+ or Artistic -Epoch: 0 -Version: 7.10 +Epoch: 1 +Version: 7.24 BuildArch: noarch Requires: %perl_compat Conflicts: perl < 4:5.20.1-312 @@ -1369,7 +1171,7 @@ Summary: Utilities for embedding Perl in C/C++ applications Group: Development/Languages License: GPL+ or Artistic Epoch: 0 -Version: 1.33 +Version: 1.34 Requires: perl-devel Requires: %perl_compat %if %{defined perl_bootstrap} @@ -1405,8 +1207,8 @@ pages, etc. Summary: Create a module Makefile Group: Development/Languages License: GPL+ or Artistic -Epoch: 0 -Version: 7.10 +Epoch: 1 +Version: 7.24 # If an XS module is built, code generated from XS will be compiled and it # includes Perl header files. # TODO: This dependency will be weaken in order to relieve building noarch @@ -1464,7 +1266,7 @@ Summary: Write the C code for perlmain.c Group: Development/Languages License: GPL+ or Artistic Epoch: 0 -Version: 1.05 +Version: 1.06 Requires: perl-devel Requires: %perl_compat %if %{defined perl_bootstrap} @@ -1482,19 +1284,21 @@ reference is used as the filehandle to write to. Otherwise output defaults to STDOUT. %if %{dual_life} || %{rebuild_from_scratch} -%package -n perl-ExtUtils-MM-Utils +%package ExtUtils-MM-Utils Summary: ExtUtils::MM methods without dependency on ExtUtils::MakeMaker Group: Development/Libraries License: GPL+ or Artistic -Epoch: 0 -Version: 7.11 +Epoch: 1 +# Real version 7.11 +# Dual-life ExtUtils-MakeMaker generate it with its version +Version: 7.24 BuildArch: noarch Requires: %perl_compat %if %{defined perl_bootstrap} %gendep_perl_ExtUtils_MM_Utils %endif -%description -n perl-ExtUtils-MM-Utils +%description ExtUtils-MM-Utils This is a collection of ExtUtils::MM subroutines that are used by many other modules but that do not need full-featured ExtUtils::MakeMaker. The issue with ExtUtils::MakeMaker is it pulls in Perl header files and that @@ -1508,7 +1312,7 @@ Group: Development/Libraries License: GPL+ or Artistic # Epoch bump for clean upgrade over old standalone package Epoch: 1 -Version: 3.31 +Version: 3.34 Requires: %perl_compat %if %{defined perl_bootstrap} %gendep_perl_ExtUtils_ParseXS @@ -1528,7 +1332,7 @@ Summary: Generic file fetching mechanism Group: Development/Libraries License: GPL+ or Artistic Epoch: 0 -Version: 0.48 +Version: 0.52 Requires: perl(IPC::Cmd) >= 0.36 Requires: perl(Module::Load::Conditional) >= 0.04 Requires: perl(Params::Check) >= 0.07 @@ -1612,7 +1416,7 @@ Summary: Simplified Perl source filtering Group: Development/Libraries License: GPL+ or Artistic Epoch: 0 -Version: 0.92 +Version: 0.93 BuildArch: noarch Requires: %perl_compat Conflicts: perl < 4:5.20.1-312 @@ -1632,8 +1436,8 @@ Filter::Util::Call; one that is sufficient for most common cases. Summary: Extended processing of command line options Group: Development/Libraries License: GPLv2+ or Artistic -Epoch: 0 -Version: 2.48 +Epoch: 1 +Version: 2.49 Requires: %perl_compat Requires: perl(overload) Requires: perl(Text::ParseWords) @@ -1661,7 +1465,7 @@ Summary: Perl input/output modules Group: Development/Libraries License: GPL+ or Artistic Epoch: 0 -Version: 1.36 +Version: 1.38 Requires: %perl_compat %if %{defined perl_bootstrap} %gendep_perl_IO @@ -1677,7 +1481,7 @@ Summary: IO::Compress wrapper for modules Group: Development/Libraries License: GPL+ or Artistic Epoch: 0 -Version: 2.069 +Version: 2.074 Requires: %perl_compat Obsoletes: perl-Compress-Zlib <= 2.020 Provides: perl(IO::Uncompress::Bunzip2) @@ -1698,7 +1502,7 @@ Summary: Drop-in replacement for IO::Socket::INET supporting both IPv4 an Group: Development/Libraries License: GPL+ or Artistic Epoch: 0 -Version: 0.37 +Version: 0.38 Requires: %perl_compat %if %{defined perl_bootstrap} %gendep_perl_IO_Socket_IP @@ -1739,8 +1543,8 @@ Summary: Finding and running system commands made easy Group: Development/Libraries License: GPL+ or Artistic # Epoch bump for clean upgrade over old standalone package -Epoch: 1 -Version: 0.92 +Epoch: 2 +Version: 0.96 Requires: perl(ExtUtils::MM::Utils) Requires: %perl_compat %if %{defined perl_bootstrap} @@ -1759,7 +1563,7 @@ Summary: Object interface to System V IPC Group: Development/Libraries License: GPL+ or Artistic Epoch: 0 -Version: 2.06 +Version: 2.07 Requires: %perl_compat Requires: perl(DynaLoader) %if %{defined perl_bootstrap} @@ -1778,7 +1582,7 @@ Summary: A small, simple, correct HTTP/1.1 client Group: Development/Libraries License: GPL+ or Artistic Epoch: 0 -Version: 0.056 +Version: 0.070 Requires: perl(bytes) Requires: perl(Carp) Requires: perl(IO::Socket) @@ -1799,8 +1603,8 @@ resumes after EINTR. %if %{dual_life} || %{rebuild_from_scratch} %package JSON-PP Summary: JSON::XS compatible pure-Perl module -Epoch: 0 -Version: 2.27300 +Epoch: 1 +Version: 2.27400 License: GPL+ or Artistic Group: Development/Libraries BuildArch: noarch @@ -1828,7 +1632,7 @@ Summary: Perl clients for various network protocols Group: Development/Libraries License: GPL+ or Artistic Epoch: 0 -Version: 3.08 +Version: 3.10 Requires: %perl_compat Requires: perl(File::Basename) Requires: perl(IO::Socket) >= 1.05 @@ -1899,7 +1703,7 @@ Summary: Framework for localization Group: Development/Libraries License: GPL+ or Artistic Epoch: 0 -Version: 1.26 +Version: 1.28 Requires: %perl_compat %if %{defined perl_bootstrap} %gendep_perl_Locale_Maketext @@ -1939,9 +1743,9 @@ to alleviate the need of creating Language Classes for module authors. Summary: Arbitrary-size integer and float mathematics Group: Development/Libraries License: GPL+ or Artistic -Epoch: 0 -# Real version 1.999715 -Version: 1.9997.15 +Epoch: 1 +# Real version 1.999806 +Version: 1.9998.06 Requires: %perl_compat Requires: perl(Carp) # File::Spec not used on recent perl @@ -1963,7 +1767,8 @@ Group: Development/Libraries License: GPL+ or Artistic Epoch: 0 # Version normalized to dot format -Version: 0.400 +# Real version 0.5005 +Version: 0.500.500 Requires: %perl_compat %if %{defined perl_bootstrap} %gendep_perl_Math_BigInt_FastCalc @@ -1978,8 +1783,8 @@ Summary: Arbitrary big rational numbers Group: Development/Libraries License: GPL+ or Artistic Epoch: 0 -# Real version 0.2608.02 -Version: 0.2608.02 +# Real version 0.2611 +Version: 0.2611 Requires: %perl_compat Requires: perl(Math::BigInt) %if %{defined perl_bootstrap} @@ -2060,7 +1865,7 @@ Summary: What modules are shipped with versions of perl Group: Development/Libraries License: GPL+ or Artistic Epoch: 1 -Version: 5.20170114 +Version: 5.20170530 Requires: %perl_compat Requires: perl(List::Util) Requires: perl(version) >= 0.88 @@ -2079,7 +1884,7 @@ Summary: Tool for listing modules shipped with perl Group: Development/Tools License: GPL+ or Artistic Epoch: 1 -Version: 5.20170114 +Version: 5.20170530 Requires: %perl_compat Requires: perl(feature) Requires: perl(version) >= 0.88 @@ -2124,7 +1929,7 @@ Summary: Looking up module information / loading at runtime Group: Development/Libraries License: GPL+ or Artistic Epoch: 0 -Version: 0.64 +Version: 0.68 Requires: %perl_compat %if %{defined perl_bootstrap} %gendep_perl_Module_Load_Conditional @@ -2162,7 +1967,7 @@ offers you a very simple way to mark modules as loaded and/or unloaded. %package Module-Metadata Summary: Gather package and POD information from perl module files Epoch: 0 -Version: 1.000031 +Version: 1.000033 License: GPL+ or Artistic Group: Development/Libraries BuildArch: noarch @@ -2180,7 +1985,7 @@ Summary: Check a remote host for reachability Group: Development/Libraries License: GPL+ or Artistic Epoch: 0 -Version: 2.43 +Version: 2.55 Requires: %perl_compat # Keep Net::Ping::External optional %if %{defined perl_bootstrap} @@ -2198,7 +2003,7 @@ Summary: Perl pragma to set default PerlIO layers for input and output Group: Development/Libraries License: GPL+ or Artistic Epoch: 0 -Version: 1.10 +Version: 1.11 Requires: %perl_compat Requires: perl(Carp) Requires: perl(Encode) @@ -2220,7 +2025,7 @@ Group: Development/Libraries License: GPL+ or Artistic # Epoch bump for clean upgrade over old standalone package Epoch: 1 -Version: 0.234 +Version: 0.236 Requires: %perl_compat %if %{defined perl_bootstrap} %gendep_perl_parent @@ -2260,35 +2065,12 @@ Params::Check is a generic input parsing/checking mechanism. %endif %if %{dual_life} || %{rebuild_from_scratch} -%package Parse-CPAN-Meta -Summary: Parse META.yml and other similar CPAN metadata files -Group: Development/Libraries -License: GPL+ or Artistic -# Epoch bump for clean upgrade over old standalone package -Epoch: 1 -Version: 1.4417 -Requires: %perl_compat -BuildArch: noarch -Requires: perl(CPAN::Meta::YAML) >= 0.002 -Requires: perl(JSON::PP) >= 2.27103 -%if %{defined perl_bootstrap} -%gendep_perl_Parse_CPAN_Meta -%endif -# FIXME it could be removed now? -Obsoletes: perl-Parse-CPAN-Meta < 1.40 - -%description Parse-CPAN-Meta -Parse::CPAN::Meta is a parser for META.yml files, based on the parser half of -YAML::Tiny. -%endif - -%if %{dual_life} || %{rebuild_from_scratch} %package PathTools Summary: PathTools Perl module (Cwd, File::Spec) Group: Development/Libraries License: (GPL+ or Artistic) and BSD Epoch: 0 -Version: 3.63 +Version: 3.67 Requires: %perl_compat Requires: perl(Carp) %if %{defined perl_bootstrap} @@ -2306,7 +2088,7 @@ Group: Development/Libraries # Code examples are Public Domain License: (GPL+ or Artistic) and Public Domain Epoch: 0 -Version: 5.021010 +Version: 5.021011 Requires: %perl_compat %if %{defined perl_bootstrap} %gendep_perl_perlfaq @@ -2343,7 +2125,7 @@ writing to a handle. %if %{dual_life} || %{rebuild_from_scratch} %package Perl-OSType Summary: Map Perl operating system names to generic types -Version: 1.009 +Version: 1.010 Epoch: 0 License: GPL+ or Artistic Group: Development/Libraries @@ -2367,7 +2149,7 @@ systems are given the type 'Windows' rather than 'Win32'). %package Pod-Checker Summary: Check POD documents for syntax errors Epoch: 4 -Version: 1.60 +Version: 1.73 License: GPL+ or Artistic Group: Development/Libraries Requires: %perl_compat @@ -2404,8 +2186,8 @@ Summary: Convert POD files to HTML Group: Development/Libraries License: GPL+ or Artistic Epoch: 0 -# Real version 1.2201 -Version: 1.22.01 +# Real version 1.2202 +Version: 1.22.02 Requires: %perl_compat %if %{defined perl_bootstrap} %gendep_perl_Pod_Html @@ -2443,7 +2225,7 @@ Summary: Look up Perl documentation in Pod format Group: Development/Libraries License: GPL+ or Artistic Epoch: 0 -Version: 3.25 +Version: 3.28 %if %{with perl_enables_groff} # Pod::Perldoc::ToMan executes roff Requires: groff-base @@ -2480,7 +2262,7 @@ Group: Development/Libraries License: GPL+ or Artistic # Epoch bump for clean upgrade over old standalone package Epoch: 1 -Version: 3.32 +Version: 3.35 Requires: %perl_compat %if %{defined perl_bootstrap} %gendep_perl_Pod_Simple @@ -2499,7 +2281,7 @@ Summary: Print a usage message from embedded pod documentation License: GPL+ or Artistic Group: Development/Libraries Epoch: 4 -Version: 1.68 +Version: 1.69 Requires: %perl_compat # Pod::Usage executes perldoc from perl-Pod-Perldoc by default Requires: perl-Pod-Perldoc @@ -2525,7 +2307,7 @@ Summary: Format POD source into various output formats Group: Development/Libraries License: (GPL+ or Artistic) and MIT Epoch: 0 -Version: 4.07 +Version: 4.09 BuildArch: noarch Requires: %perl_compat Requires: perl(File::Spec) >= 0.8 @@ -2548,8 +2330,8 @@ Summary: A selection of general-utility scalar and list subroutines Group: Development/Libraries License: GPL+ or Artistic Epoch: 3 -# Real version 1.42_02 -Version: 1.42 +# Real version 1.46_02 +Version: 1.46 Requires: %perl_compat %if %{defined perl_bootstrap} %gendep_perl_Scalar_List_Utils @@ -2607,7 +2389,7 @@ Summary: Persistence for Perl data structures Group: Development/Libraries License: GPL+ or Artistic Epoch: 1 -Version: 2.56 +Version: 2.62 Requires: %perl_compat # Carp substitutes missing Log::Agent Requires: perl(Carp) @@ -2632,7 +2414,7 @@ Summary: Perl interface to the UNIX syslog(3) calls Group: Development/Libraries License: GPL+ or Artistic Epoch: 0 -Version: 0.33 +Version: 0.35 Requires: %perl_compat Requires: perl(XSLoader) %if %{defined perl_bootstrap} @@ -2651,8 +2433,9 @@ Summary: Color screen output using ANSI escape sequences Group: Development/Libraries License: GPL+ or Artistic Epoch: 0 -Version: 4.04 +Version: 4.06 Requires: %perl_compat +Requires: perl(Carp) %if %{defined perl_bootstrap} %gendep_perl_Term_ANSIColor %endif @@ -2693,7 +2476,7 @@ Summary: Simple framework for writing test scripts Group: Development/Libraries License: GPL+ or Artistic Epoch: 0 -Version: 1.28 +Version: 1.30 Requires: %perl_compat # Algorithm::Diff 1.15 is optional Requires: perl(File::Temp) @@ -2712,8 +2495,8 @@ such that their output is in the format that Test::Harness expects to see. Summary: Run Perl standard test scripts with statistics Group: Development/Languages License: GPL+ or Artistic -Epoch: 0 -Version: 3.36 +Epoch: 1 +Version: 3.38 Requires: %perl_compat %if %{defined perl_bootstrap} %gendep_perl_Test_Harness @@ -2730,8 +2513,8 @@ Use TAP::Parser, Test::Harness package was whole rewritten. Summary: Basic utilities for writing tests Group: Development/Languages License: (GPL+ or Artistic) and CC0 and Public Domain -Epoch: 0 -Version: 1.001014 +Epoch: 1 +Version: 1.302073 Requires: %perl_compat Requires: perl(Data::Dumper) %if %{defined perl_bootstrap} @@ -2809,7 +2592,7 @@ Summary: Thread-safe queues Group: Development/Libraries License: GPL+ or Artistic Epoch: 0 -Version: 3.09 +Version: 3.12 Requires: %perl_compat Requires: perl(Carp) %if %{defined perl_bootstrap} @@ -2829,7 +2612,7 @@ Summary: High resolution alarm, sleep, gettimeofday, interval timers Group: Development/Libraries License: GPL+ or Artistic Epoch: 0 -Version: 1.9733 +Version: 1.9741 Requires: %perl_compat Requires: perl(Carp) %if %{defined perl_bootstrap} @@ -2849,7 +2632,8 @@ Summary: Efficiently compute time from local and GMT time Group: Development/Libraries License: GPL+ or Artistic Epoch: 0 -Version: 1.2300 +# Real version 1.25 +Version: 1.250 Requires: %perl_compat %if %{defined perl_bootstrap} %gendep_perl_Time_Local @@ -2889,7 +2673,7 @@ Summary: Perl interpreter-based threads Group: Development/Libraries License: GPL+ or Artistic Epoch: 1 -Version: 2.07 +Version: 2.15 Requires: %perl_compat %if %{defined perl_bootstrap} %gendep_perl_threads @@ -2914,7 +2698,7 @@ Summary: Perl extension for sharing data structures between threads Group: Development/Libraries License: GPL+ or Artistic Epoch: 0 -Version: 1.51 +Version: 1.56 Requires: %perl_compat %if %{defined perl_bootstrap} %gendep_perl_threads_shared @@ -2935,7 +2719,7 @@ Summary: Unicode Collation Algorithm Group: Development/Libraries License: (GPL+ or Artistic) and Unicode Epoch: 0 -Version: 1.14 +Version: 1.19 Requires: %perl_compat Requires: perl(Unicode::Normalize) %if %{defined perl_bootstrap} @@ -2974,9 +2758,9 @@ Summary: Perl extension for Version Objects Group: Development/Libraries License: GPL+ or Artistic # Epoch bump for clean upgrade over old standalone package -Epoch: 5 -# real version 0.9916 -Version: 0.99.16 +Epoch: 6 +# real version 0.9917 +Version: 0.99.17 Requires: %perl_compat %if %{defined perl_bootstrap} %gendep_perl_version @@ -3002,72 +2786,7 @@ Perl extension for Version Objects %patch16 -p1 %patch22 -p1 %patch26 -p1 -%patch28 -p1 %patch30 -p1 -%patch31 -p1 -%patch32 -p1 -%patch33 -p1 -%patch34 -p1 -%patch35 -p1 -%patch36 -p1 -%patch37 -p1 -%patch38 -p1 -%patch40 -p1 -%patch41 -p1 -%patch42 -p1 -%patch43 -p1 -%patch45 -p1 -%patch46 -p1 -%patch47 -p1 -%patch48 -p1 -%patch49 -p1 -%patch50 -p1 -%patch51 -p1 -%patch52 -p1 -%patch53 -p1 -%patch54 -p1 -%patch55 -p1 -%patch56 -p1 -%patch57 -p1 -%patch58 -p1 -%patch59 -p1 -%patch60 -p1 -%patch61 -p1 -%patch62 -p1 -%patch63 -p1 -%patch64 -p1 -%patch65 -p1 -%patch66 -p1 -%patch67 -p1 -%patch68 -p1 -%patch69 -p1 -%patch70 -p1 -%patch71 -p1 -%patch72 -p1 -%patch73 -p1 -%patch74 -p1 -%patch75 -p1 -%patch76 -p1 -pushd cpan/Compress-Raw-Zlib -%patch77 -p1 -%patch78 -p1 -popd -%patch79 -p1 -%patch80 -p1 -%patch81 -p1 -%patch82 -p1 -%patch83 -p1 -%patch84 -p1 -%patch85 -p1 -%patch86 -p1 -%patch87 -p1 -%patch88 -p1 -%patch89 -p1 -%patch90 -p1 -%patch91 -p1 -%patch92 -p1 -%patch93 -p1 -%patch94 -p1 %patch200 -p1 %patch201 -p1 @@ -3087,63 +2806,7 @@ perl -x patchlevel.h \ 'Fedora Patch22: Document Math::BigInt::CalcEmu requires Math::BigInt (CPAN RT#85015)' \ 'Fedora Patch26: Make *DBM_File desctructors thread-safe (RT#61912)' \ 'Fedora Patch27: Make PadlistNAMES() lvalue again (CPAN RT#101063)' \ - 'Fedora Patch28: Make magic vtable writable as a work-around for Coro (CPAN RT#101063)' \ 'Fedora Patch30: Replace EU::MakeMaker dependency with EU::MM::Utils in IPC::Cmd (bug #1129443)' \ - 'Fedora Patch31: Fix a memory leak in compiling a POSIX class (RT#128313)' \ - 'Fedora Patch32: Do not mangle errno from failed socket calls (RT#128316)' \ - 'Fedora Patch33: Fix compiling regular expressions like /\X*(?0)/ (RT#128109)' \ - 'Fedora Patch34: Do not use unitialized memory in $h{\const} warnings (RT#128189)' \ - 'Fedora Patch35: Fix precedence in hv_ename_delete (RT#128086)' \ - 'Fedora Patch36: Do not treat %: as a stash (RT#128238)' \ - 'Fedora Patch37: Do not crash when inserting a non-stash into a stash (RT#128238)' \ - 'Fedora Patch38: Fix line numbers with perl -x (RT#128508)' \ - 'Fedora Patch40: Fix a crash when vivifying a stub in a deleted package (RT#128532)' \ - 'Fedora Patch41: Fix a crash in "Subroutine redefined" warning (RT#128257)' \ - 'Fedora Patch42: Fix a crash in lexical scope warnings (RT#128597)' \ - 'Fedora Patch43: Fix handling \N{} in tr for characters in range 128--255 (RT#128734)' \ - 'Fedora Patch45: Fix crash in "evalbytes S" (RT#129196)' \ - 'Fedora Patch46: Fix crash in "evalbytes S" (RT#129196)' \ - 'Fedora Patch47: Fix crash in "evalbytes S" (RT#129196)' \ - 'Fedora Petch48: Fix crash in splice (RT#129164, RT#129166, RT#129167)' \ - 'Fedora Patch49: Fix string overrun in Perl_gv_fetchmethod_pvn_flags (RT#129267)' \ - 'Fedora Patch50: Fix string overrun in Perl_gv_fetchmethod_pvn_flags (RT#129267)' \ - 'Fedora Patch51: Fix string overrun in Perl_gv_fetchmethod_pvn_flags (RT#129267)' \ - 'Fedora Patch52: Fix string overrun in Perl_gv_fetchmethod_pvn_flags (RT#129267)' \ - 'Fedora Patch53: Fix string overrun in Perl_gv_fetchmethod_pvn_flags (RT#129267)' \ - 'Fedora Patch54: Fix crash when matching UTF-8 string with non-UTF-8 substrings (RT#129350)' \ - 'Fedora Patch55: Fix parsing perl options in shell bang line (RT#129336)' \ - 'Fedora Patch56: Fix firstchar bitmap under UTF-8 with prefix optimization (RT#129950)' \ - 'Fedora Patch57: Avoid infinite loop in h2xs tool if enum and type have the same name (RT130001)' \ - 'Fedora Patch58: Fix stack handling when calling chdir without an argument (RT#129130)' \ - 'Fedora Patch59: Fix crash in Storable when deserializing malformed code reference (RT#68348, RT#130098)' \ - 'Fedora Patch60: Fix crash on explicit return from regular expression substitution (RT#130188)' \ - 'Fedora Patch61: Fix assigning split() return values to an array' \ - 'Fedora Patch62: Fix const correctness in hv_func.h (RT#130169)' \ - 'Fedora Patch63: Fix a crash in optimized evaluation of "or ((0) x 0))" (RT#130247)' \ - 'Fedora Patch64: Fix a memory leak in IO::Poll (RT#129788)' \ - 'Fedora Patch65: Fix regular expression matching (RT#130307)' \ - 'Fedora Patch66: Fix a buffer overflow in split in scalar context (RT#130262)' \ - 'Fedora Patch67: Fix a heap overflow with pack "W" (RT129149)' \ - 'Fedora Patch69: Fix a use-after-free when processing scalar variables in forms (RT#129125)' \ - 'Fedora Patch70: Fix a heap overflow if invalid octal or hexadecimal number is used in transliteration expression (RT#129342)' \ - 'Fedora Patch71: Fix out-of-bound read in case of unmatched regexp backreference (RT#129377)' \ - 'Fedora Patch72: Fix UTF-8 string handling in & operator (RT#129287)' \ - 'Fedora Patch73: Fix recreation of *:: (RT#129869)' \ - 'Fedora Patch74: Fix a memory leak in B::RHE->HASH method (RT#130504)' \ - 'Fedora Patch75: Fix parsing goto statements in multicalled subroutine (RT#113938)' \ - 'Fedora Patch76: Fix a heap overlow in parsing $# (RT#129274)' \ - 'Fedora Patch77: Adapt to zlib-1.2.11 (CPAN RT#119762)' \ - 'Fedora Patch78: Fix compiler fatal warnings in Compress-Raw-Zlib (CPAN RT#120272)' \ - 'Fedora Patch79: Fix a crash when compiling a regexp with impossible quantifiers (RT#130561)' \ - 'Fedora Patch82: Fix a buffer overrun with format and "use bytes" (RT#130703)' \ - 'Fedora Patch83: Fix a buffer overflow when studying some regexps repeatedly (RT#129281, RT#129061)' \ - 'Fedora Patch85: Fix a heap buffer overflow when evaluating regexps with embedded code blocks from more than one source, RT#129881' \ - 'Fedora Patch86: Fix a memory leak in list assignment from or to magic values, (RT#130766)' \ - 'Fedora Patch87: Fix a null-pointer dereference on malformed code (RT#130815)' \ - 'Fedora Patch88: Fix an use-after-free in substr() that modifies a magic variable (RT#129340)' \ - 'Fedora Patch89: Fix a memory leak leak in Perl_reg_named_buff_fetch() (RT#130822)' \ - 'Fedora Patch90: Fix an invalid memory read when parsing a loop variable (RT#130814)' \ - 'Fedora Patch94: Fix a heap-use-after-free in four-arguments substr call (RT#130624)' \ 'Fedora Patch200: Link XS modules to libperl.so with EU::CBuilder on Linux' \ 'Fedora Patch201: Link XS modules to libperl.so with EU::MM on Linux' \ %{nil} @@ -3212,8 +2875,6 @@ echo "RPM Build arch: %{_arch}" %global perl_vendorlib %{privlib}/vendor_perl %global perl_vendorarch %{archlib}/vendor_perl -# Disable hardening due to some run-time failures, bug #1238804 -%undefine _hardened_build # ldflags is not used when linking XS modules. # Only ldflags is used when linking miniperl. # Only ccflags and ldflags are used for Configure's compiler checks. @@ -3279,7 +2940,7 @@ echo "RPM Build arch: %{_arch}" -Ud_endservent_r_proto -Ud_setservent_r_proto \ -Dscriptdir='%{_bindir}' \ -Dusesitecustomize \ - -Duse64bitint1 + -Duse64bitint # -Duseshrplib creates libperl.so, -Ubincompat5005 help create DSO -> libperl.so @@ -3482,21 +3143,17 @@ popd %endif # utils -%exclude %{_bindir}/c2ph %exclude %{_bindir}/h2ph %exclude %{_bindir}/perlbug %exclude %{_bindir}/perlthanks %exclude %{_bindir}/pl2pm -%exclude %{_bindir}/pstruct %exclude %{_bindir}/splain %exclude %{privlib}/pod/perlutil.pod -%exclude %{_mandir}/man1/c2ph.* %exclude %{_mandir}/man1/h2ph.* %exclude %{_mandir}/man1/perlbug.* %exclude %{_mandir}/man1/perlthanks.* %exclude %{_mandir}/man1/perlutil.* %exclude %{_mandir}/man1/pl2pm.* -%exclude %{_mandir}/man1/pstruct.* %exclude %{_mandir}/man1/splain.* # Archive-Tar @@ -3573,7 +3230,11 @@ popd %exclude %{privlib}/CPAN/Meta/Prereqs.pm %exclude %{privlib}/CPAN/Meta/Spec.pm %exclude %{privlib}/CPAN/Meta/Validator.pm +%exclude %dir %{privlib}/Parse +%exclude %dir %{privlib}/Parse/CPAN +%exclude %{privlib}/Parse/CPAN/Meta.pm %exclude %{_mandir}/man3/CPAN::Meta* +%exclude %{_mandir}/man3/Parse::CPAN::Meta.3* # CPAN-Meta-Requirements %exclude %dir %{privlib}/CPAN @@ -3587,12 +3248,6 @@ popd %exclude %{privlib}/CPAN/Meta/YAML.pm %exclude %{_mandir}/man3/CPAN::Meta::YAML* -# Parse-CPAN-Meta -%exclude %dir %{privlib}/Parse -%exclude %dir %{privlib}/Parse/CPAN -%exclude %{privlib}/Parse/CPAN/Meta.pm -%exclude %{_mandir}/man3/Parse::CPAN::Meta.3* - # Compress-Raw-Bzip2 %exclude %dir %{archlib}/Compress %exclude %dir %{archlib}/Compress/Raw @@ -4011,10 +3666,12 @@ popd %exclude %dir %exclude %{privlib}/Math/BigInt %exclude %{privlib}/Math/BigInt/Calc.pm %exclude %{privlib}/Math/BigInt/CalcEmu.pm +%exclude %{privlib}/Math/BigInt/Lib.pm %exclude %{_mandir}/man3/Math::BigFloat.* %exclude %{_mandir}/man3/Math::BigInt.* %exclude %{_mandir}/man3/Math::BigInt::Calc.* %exclude %{_mandir}/man3/Math::BigInt::CalcEmu.* +%exclude %{_mandir}/man3/Math::BigInt::Lib.* # Math-BigInt-FastCalc %exclude %{archlib}/Math @@ -4236,6 +3893,7 @@ popd %exclude %{privlib}/Test/Simple* %exclude %{privlib}/Test/Tutorial* %exclude %{privlib}/Test/use +%exclude %{privlib}/Test2* %exclude %{_mandir}/man3/ok* %exclude %{_mandir}/man3/Test::More* %exclude %{_mandir}/man3/Test::Builder* @@ -4243,6 +3901,7 @@ popd %exclude %{_mandir}/man3/Test::Simple* %exclude %{_mandir}/man3/Test::Tutorial* %exclude %{_mandir}/man3/Test::use::* +%exclude %{_mandir}/man3/Test2* # Text-Balanced %exclude %{privlib}/Text/Balanced.pm @@ -4372,22 +4031,18 @@ popd %{perl5_testdir}/ %files utils -%{_bindir}/c2ph %{_bindir}/h2ph %{_bindir}/perlbug %{_bindir}/perlthanks %{_bindir}/pl2pm -%{_bindir}/pstruct %{_bindir}/splain %dir %{privlib}/pod %{privlib}/pod/perlutil.pod -%{_mandir}/man1/c2ph.* %{_mandir}/man1/h2ph.* %{_mandir}/man1/perlbug.* %{_mandir}/man1/perlthanks.* %{_mandir}/man1/perlutil.* %{_mandir}/man1/pl2pm.* -%{_mandir}/man1/pstruct.* %{_mandir}/man1/splain.* %if %{dual_life} || %{rebuild_from_scratch} @@ -4501,7 +4156,11 @@ popd %{privlib}/CPAN/Meta/Prereqs.pm %{privlib}/CPAN/Meta/Spec.pm %{privlib}/CPAN/Meta/Validator.pm +%dir %{privlib}/Parse/ +%dir %{privlib}/Parse/CPAN/ +%{privlib}/Parse/CPAN/Meta.pm %{_mandir}/man3/CPAN::Meta* +%{_mandir}/man3/Parse::CPAN::Meta.3* %exclude %{_mandir}/man3/CPAN::Meta::YAML* %exclude %{_mandir}/man3/CPAN::Meta::Requirements* %endif @@ -5009,10 +4668,12 @@ popd %dir %{privlib}/Math/BigInt %{privlib}/Math/BigInt/Calc.pm %{privlib}/Math/BigInt/CalcEmu.pm +%{privlib}/Math/BigInt/Lib.pm %{_mandir}/man3/Math::BigFloat.* %{_mandir}/man3/Math::BigInt.* %{_mandir}/man3/Math::BigInt::Calc.* %{_mandir}/man3/Math::BigInt::CalcEmu.* +%{_mandir}/man3/Math::BigInt::Lib.* %files Math-BigInt-FastCalc %{archlib}/Math @@ -5105,14 +4766,6 @@ popd %{_mandir}/man3/Params::Check* %endif -%if %{dual_life} || %{rebuild_from_scratch} -%files Parse-CPAN-Meta -%dir %{privlib}/Parse/ -%dir %{privlib}/Parse/CPAN/ -%{privlib}/Parse/CPAN/Meta.pm -%{_mandir}/man3/Parse::CPAN::Meta.3* -%endif - %files open %{privlib}/open.pm %{_mandir}/man3/open.3* @@ -5317,6 +4970,7 @@ popd %{privlib}/Test/Simple* %{privlib}/Test/Tutorial* %{privlib}/Test/use +%{privlib}/Test2* %{_mandir}/man3/ok* %{_mandir}/man3/Test::More* %{_mandir}/man3/Test::Builder* @@ -5324,6 +4978,7 @@ popd %{_mandir}/man3/Test::Simple* %{_mandir}/man3/Test::Tutorial* %{_mandir}/man3/Test::use::* +%{_mandir}/man3/Test2* %endif %if %{dual_life} || %{rebuild_from_scratch} @@ -5434,6 +5089,14 @@ popd # Old changelog entries are preserved in CVS. %changelog +* Thu Jun 01 2017 Jitka Plesnikova - 4:5.26.0-392 +- 5.26.0 bump (see + for release notes) +- Update sub-packages +- Update or remove patches +- Enable hardening (bug #1238804) +- Use 64 bit ints on 32 bit platforms (bug #1268828) + * Fri Mar 31 2017 Petr Pisar - 4:5.24.1-391 - Introduce build-conditions for groff, systemtap, syslog tests, and tcsh diff --git a/sources b/sources index f2668ef..5ae6ae5 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (perl-5.24.1.tar.bz2) = 5a6e5f5fcd65e7add7ba2126d530a8e2a912cb076cfe61bbf7e49b28e4e63aa0d474183a6f8a388c67d03ea6a44f367efb3b3a768e971ef52b769e737eeb048b +SHA512 (perl-5.26.0.tar.bz2) = 1e3849c0fbf3a1903f83f86470d44f55f0f22136a1bdeb829af9c47351b6c817d7d8961a2db4c9172285f5abc087ea105ccfd4c93025acbd73569e628669aab3