diff --git a/.gitignore b/.gitignore index f354a4e..ad81a9f 100644 --- a/.gitignore +++ b/.gitignore @@ -29,3 +29,4 @@ perl-5.12.1.tar.gz /perl-5.26.2.tar.bz2 /perl-5.28.0.tar.xz /perl-5.28.1.tar.xz +/perl-5.28.2.tar.xz diff --git a/perl-5.16.3-create_libperl_soname.patch b/perl-5.16.3-create_libperl_soname.patch index 8bf53dc..0cfd59d 100644 --- a/perl-5.16.3-create_libperl_soname.patch +++ b/perl-5.16.3-create_libperl_soname.patch @@ -14,15 +14,20 @@ diff --git a/Makefile.SH b/Makefile.SH index d1da0a0..7733a32 100755 --- a/Makefile.SH +++ b/Makefile.SH -@@ -68,7 +68,7 @@ true) - ${api_revision}.${api_version}.${api_subversion} \ - -current_version \ - ${revision}.${patchlevel}.${subversion} \ -- -install_name \$(shrpdir)/\$@" -+ -install_name \$(shrpdir)/libperl.${revision}.${patchlevel}.dylib" +@@ -70,11 +70,11 @@ true) + ${revision}.${patchlevel}.${subversion}" + case "$osvers" in + 1[5-9]*|[2-9]*) +- shrpldflags="$shrpldflags -install_name `pwd`/\$@ -Xlinker -headerpad_max_install_names" ++ shrpldflags="$shrpldflags -install_name `pwd`/libperl.${revision}.${patchlevel}.dylib -Xlinker -headerpad_max_install_names" + exeldflags="-Xlinker -headerpad_max_install_names" + ;; + *) +- shrpldflags="$shrpldflags -install_name \$(shrpdir)/\$@" ++ shrpldflags="$shrpldflags -install_name \$(shrpdir)/libperl.${revision}.${patchlevel}.dylib" + ;; + esac ;; - cygwin*) - shrpldflags="$shrpldflags -Wl,--out-implib=libperl.dll.a -Wl,--image-base,0x52000000" @@ -76,13 +76,15 @@ true) ;; sunos*) diff --git a/perl-5.28.1-PATCH-perl-133547-script-run-broken.patch b/perl-5.28.1-PATCH-perl-133547-script-run-broken.patch deleted file mode 100644 index e81e2af..0000000 --- a/perl-5.28.1-PATCH-perl-133547-script-run-broken.patch +++ /dev/null @@ -1,184 +0,0 @@ -From a824afe95b6272148dce1f8bf4bcd20a667412e6 Mon Sep 17 00:00:00 2001 -From: Karl Williamson -Date: Sun, 30 Sep 2018 10:38:02 -0600 -Subject: [PATCH] PATCH: [perl #133547]: script run broken -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -All scripts can have the ASCII digits for their numbers. Scripts with -their own digits can alternatively use those. Only one of these two -sets can be used in a script run. The decision as to which set to use -must be deferred until the first digit is encountered, as otherwise we -don't know which set will be used. Prior to this commit, the decision -was being made prematurely in some cases. As a result of this change, -the non-ASCII-digits in the Common script need to be special-cased, and -different criteria are used to decide if we need to look up whether a -character is a digit or not. - -Petr Písař: Ported to 5.28.1 from -393e5a4585b92e635cfc4eee34da8f86f3bfd2af. - -Signed-off-by: Petr Písař ---- - regexec.c | 111 +++++++++++++++++++++++----------------------- - t/re/script_run.t | 5 +++ - 2 files changed, 61 insertions(+), 55 deletions(-) - -diff --git a/regexec.c b/regexec.c -index 899d979..201d9aa 100644 ---- a/regexec.c -+++ b/regexec.c -@@ -10323,6 +10323,10 @@ Perl_isSCRIPT_RUN(pTHX_ const U8 * s, const U8 * send, const bool utf8_target) - - /* Look at each character in the sequence */ - while (s < send) { -+ /* If the current character being examined is a digit, this is the code -+ * point of the zero for its sequence of 10 */ -+ UV zero_of_char; -+ - UV cp; - - /* The code allows all scripts to use the ASCII digits. This is -@@ -10434,16 +10438,6 @@ Perl_isSCRIPT_RUN(pTHX_ const U8 * s, const U8 * send, const bool utf8_target) - script_of_run = script_of_char; - } - -- /* All decimal digits must be from the same sequence of 10. Above, we -- * handled any ASCII digits without descending to here. We also -- * handled the case where we already knew what digit sequence is the -- * one to use, and the character is in that sequence. Now that we know -- * the script, we can use script_zeros[] to directly find which -- * sequence the script uses, except in a few cases it returns 0 */ -- if (UNLIKELY(zero_of_run == 0) && script_of_char >= 0) { -- zero_of_run = script_zeros[script_of_char]; -- } -- - /* Now we can see if the script of the character is the same as that of - * the run */ - if (LIKELY(script_of_char == script_of_run)) { -@@ -10601,55 +10595,62 @@ Perl_isSCRIPT_RUN(pTHX_ const U8 * s, const U8 * send, const bool utf8_target) - /* Here, the script of the character is compatible with that of the - * run. That means that in most cases, it continues the script run. - * Either it and the run match exactly, or one or both can be in any of -- * several scripts, and the intersection is not empty. But if the -- * character is a decimal digit, we need further handling. If we -- * haven't seen a digit before, it would establish what set of 10 all -- * must come from; and if we have established a set, we need to check -- * that this is in it. -- * -- * But there are cases we can rule out without having to look up if -- * this is a digit: -- * a. All instances of [0-9] have been dealt with earlier. -- * b. The next digit encoded by Unicode is 1600 code points further -- * on, so if the code point in this loop iteration is less than -- * that, it isn't a digit. -- * c. Most scripts that have digits have a single set of 10. If -- * we've encountered a digit in such a script, 'zero_of_run' is -- * set to the code point (call it z) whose numeric value is 0. -- * If the code point in this loop iteration is in the range -- * z..z+9, it is in the script's set of 10, and we've actually -- * handled it earlier in this function and won't reach this -- * point. But, code points in that script that aren't in that -- * range can't be digits, so we don't have to look any such up. -- * We can tell if this script is such a one by looking at -- * 'script_zeros[]' for it. It is non-zero iff it has a single -- * set of digits. This rule doesn't apply if we haven't narrowed -- * down the possible scripts to a single one yet. Nor if the -- * zero of the run is '0', as that also hasn't narrowed things -- * down completely */ -- if ( cp >= FIRST_NON_ASCII_DECIMAL_DIGIT -- && ( intersection -- || script_of_char < 0 /* Also implies an intersection */ -- || zero_of_run == '0' -- || script_zeros[script_of_char] == 0)) -+ * several scripts, and the intersection is not empty. However, if the -+ * character is a decimal digit, it could still mean failure if it is -+ * from the wrong sequence of 10. So, we need to look at if it's a -+ * digit. We've already handled the 10 decimal digits, and the next -+ * lowest one is this one: */ -+ if (cp < FIRST_NON_ASCII_DECIMAL_DIGIT) { -+ continue; /* Not a digit; this character is part of the run */ -+ } -+ -+ /* If we have a definitive '0' for the script of this character, we -+ * know that for this to be a digit, it must be in the range of +0..+9 -+ * of that zero. */ -+ if ( script_of_char >= 0 -+ && (zero_of_char = script_zeros[script_of_char])) - { -- SSize_t zero_of_char_index; -- zero_of_char_index = _invlist_search(decimals_invlist, cp); -- if ( LIKELY(zero_of_char_index >= 0) -- && ELEMENT_RANGE_MATCHES_INVLIST(zero_of_char_index)) -+ if ( cp < zero_of_char -+ || cp > zero_of_char + 9) - { -- UV zero_of_char = decimals_array[zero_of_char_index]; -- if (zero_of_run) { -- if (zero_of_run != zero_of_char) { -- retval = FALSE; -- break; -- } -- } -- else { -- zero_of_run = zero_of_char; -- } -+ continue; /* Not a digit; this character is part of the run -+ */ -+ } -+ -+ } -+ else { /* Need to look up if this character is a digit or not */ -+ SSize_t index_of_zero_of_char; -+ index_of_zero_of_char = _invlist_search(decimals_invlist, cp); -+ if ( UNLIKELY(index_of_zero_of_char < 0) -+ || ! ELEMENT_RANGE_MATCHES_INVLIST(index_of_zero_of_char)) -+ { -+ continue; /* Not a digit; this character is part of the run. -+ */ -+ } -+ -+ zero_of_char = decimals_array[index_of_zero_of_char]; -+ } -+ -+ /* Here, the character is a decimal digit, and the zero of its sequence -+ * of 10 is in 'zero_of_char'. If we already have a zero for this run, -+ * they better be the same. */ -+ if (zero_of_run) { -+ if (zero_of_run != zero_of_char) { -+ retval = FALSE; -+ break; - } - } -+ else if (script_of_char == SCX_Common && script_of_run != SCX_Common) { -+ -+ /* Here, the script run isn't Common, but the current digit is in -+ * Common, and isn't '0'-'9' (those were handled earlier). Only -+ * '0'-'9' are acceptable in non-Common scripts. */ -+ retval = FALSE; -+ break; -+ } -+ else { /* Otherwise we now have a zero for this run */ -+ zero_of_run = zero_of_char; -+ } - } /* end of looping through CLOSESR text */ - - Safefree(intersection); -diff --git a/t/re/script_run.t b/t/re/script_run.t -index 10c7103..f8809e3 100644 ---- a/t/re/script_run.t -+++ b/t/re/script_run.t -@@ -97,4 +97,9 @@ foreach my $type ('script_run', 'sr', 'atomic_script_run', 'asr') { - like("abc", qr/(*asr:a[bc]*c)/, "Outer asr works on a run"); - unlike("abc", qr/(*asr:a(*asr:[bc]*)c)/, "Nested asr works to exclude some things"); - -+ like("\x{0980}12\x{0993}", qr/^(*sr:.{4})/, -+ "Script with own zero works with ASCII digits"); # perl #133547 -+ like("\x{3041}12\x{3041}", qr/^(*sr:.{4})/, -+ "Script without own zero works with ASCII digits"); -+ - done_testing(); --- -2.17.2 - diff --git a/perl-5.28.1-perl-133524-report-line-number-for-Prototype-not-ter.patch b/perl-5.28.1-perl-133524-report-line-number-for-Prototype-not-ter.patch index daa949e..92f2a78 100644 --- a/perl-5.28.1-perl-133524-report-line-number-for-Prototype-not-ter.patch +++ b/perl-5.28.1-perl-133524-report-line-number-for-Prototype-not-ter.patch @@ -22,9 +22,9 @@ diff --git a/t/lib/croak/toke b/t/lib/croak/toke index 1d45a3f..5ec90b9 100644 --- a/t/lib/croak/toke +++ b/t/lib/croak/toke -@@ -480,3 +480,9 @@ Bareword found where operator expected at - line 2, near "2p0" - (Missing operator before p0?) - syntax error at - line 2, near "2p0" +@@ -489,3 +489,9 @@ =cut + EXPECT + syntax error at - line 4, next token ??? Execution of - aborted due to compilation errors. +######## +# NAME check Prototype not terminated includes line number (133524) diff --git a/perl-5.28.1-regexec.c-Rename-variable.patch b/perl-5.28.1-regexec.c-Rename-variable.patch deleted file mode 100644 index a7f5685..0000000 --- a/perl-5.28.1-regexec.c-Rename-variable.patch +++ /dev/null @@ -1,54 +0,0 @@ -From 152f5a590ad349922cc90e3e867a599eced7fada Mon Sep 17 00:00:00 2001 -From: Karl Williamson -Date: Sun, 30 Sep 2018 10:33:22 -0600 -Subject: [PATCH] regexec.c: Rename variable -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -The new name is clearer as to its meaning, more so after the next -commit. - -Petr Písař: Ported to 5.28.1 from -81ec018c6daca2b4c8c87eb335a371b4c90753f3. - -Signed-off-by: Petr Písař ---- - regexec.c | 14 +++++++------- - 1 file changed, 7 insertions(+), 7 deletions(-) - -diff --git a/regexec.c b/regexec.c -index d1a3937..899d979 100644 ---- a/regexec.c -+++ b/regexec.c -@@ -10633,20 +10633,20 @@ Perl_isSCRIPT_RUN(pTHX_ const U8 * s, const U8 * send, const bool utf8_target) - || zero_of_run == '0' - || script_zeros[script_of_char] == 0)) - { -- SSize_t range_zero_index; -- range_zero_index = _invlist_search(decimals_invlist, cp); -- if ( LIKELY(range_zero_index >= 0) -- && ELEMENT_RANGE_MATCHES_INVLIST(range_zero_index)) -+ SSize_t zero_of_char_index; -+ zero_of_char_index = _invlist_search(decimals_invlist, cp); -+ if ( LIKELY(zero_of_char_index >= 0) -+ && ELEMENT_RANGE_MATCHES_INVLIST(zero_of_char_index)) - { -- UV range_zero = decimals_array[range_zero_index]; -+ UV zero_of_char = decimals_array[zero_of_char_index]; - if (zero_of_run) { -- if (zero_of_run != range_zero) { -+ if (zero_of_run != zero_of_char) { - retval = FALSE; - break; - } - } - else { -- zero_of_run = range_zero; -+ zero_of_run = zero_of_char; - } - } - } --- -2.17.2 - diff --git a/perl-5.29.2-perl-132655-nul-terminate-result-of-unpack-u-of-inva.patch b/perl-5.29.2-perl-132655-nul-terminate-result-of-unpack-u-of-inva.patch deleted file mode 100644 index 5087d6c..0000000 --- a/perl-5.29.2-perl-132655-nul-terminate-result-of-unpack-u-of-inva.patch +++ /dev/null @@ -1,61 +0,0 @@ -From 12cad9bd99725bba72029e2651b2b7f0cab2e0b0 Mon Sep 17 00:00:00 2001 -From: Tony Cook -Date: Mon, 20 Aug 2018 16:31:45 +1000 -Subject: [PATCH] (perl #132655) nul terminate result of unpack "u" of invalid - data -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -In the given test case, Perl_atof2() would run off the end of the PV, -producing an error from ASAN. - -Signed-off-by: Petr Písař ---- - pp_pack.c | 5 ++++- - t/op/pack.t | 9 ++++++++- - 2 files changed, 12 insertions(+), 2 deletions(-) - -diff --git a/pp_pack.c b/pp_pack.c -index 5e9cc64301..f8be9d48ae 100644 ---- a/pp_pack.c -+++ b/pp_pack.c -@@ -1727,7 +1727,10 @@ S_unpack_rec(pTHX_ tempsym_t* symptr, const char *s, const char *strbeg, const c - if (!checksum) { - const STRLEN l = (STRLEN) (strend - s) * 3 / 4; - sv = sv_2mortal(newSV(l)); -- if (l) SvPOK_on(sv); -+ if (l) { -+ SvPOK_on(sv); -+ *SvEND(sv) = '\0'; -+ } - } - - /* Note that all legal uuencoded strings are ASCII printables, so -diff --git a/t/op/pack.t b/t/op/pack.t -index cf0e286509..bb9f865091 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 => 14717; -+plan tests => 14718; - - use strict; - use warnings qw(FATAL all); -@@ -2081,3 +2081,10 @@ SKIP: - fresh_perl_like('pack "c10f1073741824"', qr/Out of memory during pack/, { stderr => 1 }, - "integer overflow calculating allocation (multiply)"); - } -+ -+{ -+ # [perl #132655] heap-buffer-overflow READ of size 11 -+ # only expect failure under ASAN (and maybe valgrind) -+ fresh_perl_is('0.0 + unpack("u", "ab")', "", { stderr => 1 }, -+ "ensure unpack u of invalid data nul terminates result"); -+} --- -2.17.1 - diff --git a/perl-5.29.3-RT-133573-X-fallback-when-platform-specific-techniqu.patch b/perl-5.29.3-RT-133573-X-fallback-when-platform-specific-techniqu.patch deleted file mode 100644 index 4c775bb..0000000 --- a/perl-5.29.3-RT-133573-X-fallback-when-platform-specific-techniqu.patch +++ /dev/null @@ -1,77 +0,0 @@ -From 03b94aa47e981af3c7b0118bfb11facda2b95251 Mon Sep 17 00:00:00 2001 -From: Aaron Crane -Date: Tue, 9 Oct 2018 14:41:10 +0100 -Subject: [PATCH] RT#133573: $^X fallback when platform-specific technique - fails -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Signed-off-by: Petr Písař ---- - caretx.c | 28 ++++++++++++++++------------ - 1 file changed, 16 insertions(+), 12 deletions(-) - -diff --git a/caretx.c b/caretx.c -index d758f730de..247708de8c 100644 ---- a/caretx.c -+++ b/caretx.c -@@ -56,7 +56,19 @@ Perl_set_caret_X(pTHX) { - SV *const caret_x = GvSV(tmpgv); - #if defined(OS2) - sv_setpv(caret_x, os2_execname(aTHX)); --#elif defined(USE_KERN_PROC_PATHNAME) -+ return; -+#elif defined(WIN32) -+ char *ansi; -+ WCHAR widename[MAX_PATH]; -+ GetModuleFileNameW(NULL, widename, sizeof(widename)/sizeof(WCHAR)); -+ ansi = win32_ansipath(widename); -+ sv_setpv(caret_x, ansi); -+ win32_free(ansi); -+ return; -+#else -+ /* We can try a platform-specific one if possible; if it fails, or we -+ * aren't running on a suitable platform, we'll fall back to argv[0]. */ -+# ifdef USE_KERN_PROC_PATHNAME - size_t size = 0; - int mib[4]; - mib[0] = CTL_KERN; -@@ -76,7 +88,7 @@ Perl_set_caret_X(pTHX) { - return; - } - } --#elif defined(USE_NSGETEXECUTABLEPATH) -+# elif defined(USE_NSGETEXECUTABLEPATH) - char buf[1]; - uint32_t size = sizeof(buf); - -@@ -95,7 +107,7 @@ Perl_set_caret_X(pTHX) { - return; - } - } --#elif defined(HAS_PROCSELFEXE) -+# elif defined(HAS_PROCSELFEXE) - char buf[MAXPATHLEN]; - SSize_t len = readlink(PROCSELFEXE_PATH, buf, sizeof(buf) - 1); - /* NOTE: if the length returned by readlink() is sizeof(buf) - 1, -@@ -125,15 +137,7 @@ Perl_set_caret_X(pTHX) { - sv_setpvn(caret_x, buf, len); - return; - } --#elif defined(WIN32) -- char *ansi; -- WCHAR widename[MAX_PATH]; -- GetModuleFileNameW(NULL, widename, sizeof(widename)/sizeof(WCHAR)); -- ansi = win32_ansipath(widename); -- sv_setpv(caret_x, ansi); -- win32_free(ansi); -- return; --#else -+# endif - /* Fallback to this: */ - sv_setpv(caret_x, PL_origargv[0]); - #endif --- -2.17.2 - diff --git a/perl-5.29.5-Always-mark-pipe-in-pipe-open-as-inherit-on-exec-2.patch b/perl-5.29.5-Always-mark-pipe-in-pipe-open-as-inherit-on-exec-2.patch deleted file mode 100644 index e0d6989..0000000 --- a/perl-5.29.5-Always-mark-pipe-in-pipe-open-as-inherit-on-exec-2.patch +++ /dev/null @@ -1,35 +0,0 @@ -From 30c869b87739b56280daca3cd44b0588144747b7 Mon Sep 17 00:00:00 2001 -From: Leon Timmermans -Date: Sun, 16 Dec 2018 01:05:06 +0100 -Subject: [PATCH] Always mark pipe in list pipe-open as inherit-on-exec -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -This is the my_popen_list counterpart of -c6fe5b981b942ddabb23ed4b7602067e906e6d88 - -Signed-off-by: Petr Písař ---- - util.c | 4 +++- - 1 file changed, 3 insertions(+), 1 deletion(-) - -diff --git a/util.c b/util.c -index 99bf4ae2b0..8c9909e10c 100644 ---- a/util.c -+++ b/util.c -@@ -2330,8 +2330,10 @@ Perl_my_popen_list(pTHX_ const char *mode, int n, SV **args) - if (p[THAT] != (*mode == 'r')) /* if dup2() didn't close it */ - PerlLIO_close(p[THAT]); /* close parent's end of _the_ pipe */ - } -- else -+ else { -+ setfd_cloexec_or_inhexec_by_sysfdness(p[THIS]); - PerlLIO_close(p[THAT]); /* close parent's end of _the_ pipe */ -+ } - #if !defined(HAS_FCNTL) || !defined(F_SETFD) - /* No automatic close - do it by hand */ - # ifndef NOFILE --- -2.17.2 - diff --git a/perl-5.29.5-Always-mark-pipe-in-pipe-open-as-inherit-on-exec.patch b/perl-5.29.5-Always-mark-pipe-in-pipe-open-as-inherit-on-exec.patch deleted file mode 100644 index 2f9593f..0000000 --- a/perl-5.29.5-Always-mark-pipe-in-pipe-open-as-inherit-on-exec.patch +++ /dev/null @@ -1,43 +0,0 @@ -From c6fe5b981b942ddabb23ed4b7602067e906e6d88 Mon Sep 17 00:00:00 2001 -From: Leon Timmermans -Date: Sat, 15 Dec 2018 19:08:41 +0100 -Subject: [PATCH] Always mark pipe in pipe-open as inherit-on-exec -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Since 2cdf406a a lot of file descriptors are opened close-on-exec, -including the pipe that is passed to the child process in a pipe-open. -This is usually fine because a dup2 follows to rename that handle to -stdin/stdout that will set the inherit-on-exec. However, if the pipe -descriptor already has the right value, for example because stdin was -closed, then no dup2 happens and hence it's still marked as -close-on-exec right when we want to perform an exec. - -This patch explicitly marks such a handle as inherit-on-exec, to ensure -it will be open for the child process. - -Signed-off-by: Petr Písař ---- - util.c | 4 +++- - 1 file changed, 3 insertions(+), 1 deletion(-) - -diff --git a/util.c b/util.c -index a9bf9b8609..99bf4ae2b0 100644 ---- a/util.c -+++ b/util.c -@@ -2469,8 +2469,10 @@ Perl_my_popen(pTHX_ const char *cmd, const char *mode) - if (p[THAT] != (*mode == 'r')) /* if dup2() didn't close it */ - PerlLIO_close(p[THAT]); - } -- else -+ else { -+ setfd_cloexec_or_inhexec_by_sysfdness(p[THIS]); - PerlLIO_close(p[THAT]); -+ } - #ifndef OS2 - if (doexec) { - #if !defined(HAS_FCNTL) || !defined(F_SETFD) --- -2.17.2 - diff --git a/perl-5.29.5-perl-133659-make-an-in-place-edit-successful-if-the-.patch b/perl-5.29.5-perl-133659-make-an-in-place-edit-successful-if-the-.patch deleted file mode 100644 index 85b5cf8..0000000 --- a/perl-5.29.5-perl-133659-make-an-in-place-edit-successful-if-the-.patch +++ /dev/null @@ -1,135 +0,0 @@ -From 85d2f7cacba4b0088ae0c67cc6d4c9b7495355c0 Mon Sep 17 00:00:00 2001 -From: Tony Cook -Date: Wed, 21 Nov 2018 10:05:27 +1100 -Subject: [PATCH 3/3] (perl #133659) make an in-place edit successful if the - exit status is zero -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -during global destruction. - -This means that code like: - - perl -i -ne '...; last' - -will replace the input file with the in-place edit output of the file, -but: - - perl -i -ne '...; die' - -or - - perl -i -ne '...; exit 1' - -won't. - -Signed-off-by: Petr Písař ---- - doio.c | 45 +++++++++++++++++++++++++-------------------- - t/io/inplace.t | 2 +- - t/run/switches.t | 4 ++-- - 3 files changed, 28 insertions(+), 23 deletions(-) - -diff --git a/doio.c b/doio.c -index 77421de1d1..9fe222e082 100644 ---- a/doio.c -+++ b/doio.c -@@ -1173,34 +1173,39 @@ S_argvout_free(pTHX_ SV *io, MAGIC *mg) { - dir = INT2PTR(DIR *, SvIV(*dir_psv)); - #endif - if (IoIFP(io)) { -- SV **pid_psv; -- PerlIO *iop = IoIFP(io); -+ if (PL_phase == PERL_PHASE_DESTRUCT && PL_statusvalue == 0) { -+ (void)argvout_final(mg, (IO*)io, FALSE); -+ } -+ else { -+ SV **pid_psv; -+ PerlIO *iop = IoIFP(io); - -- assert(SvTYPE(mg->mg_obj) == SVt_PVAV); -+ assert(SvTYPE(mg->mg_obj) == SVt_PVAV); - -- pid_psv = av_fetch((AV*)mg->mg_obj, ARGVMG_ORIG_PID, FALSE); -+ pid_psv = av_fetch((AV*)mg->mg_obj, ARGVMG_ORIG_PID, FALSE); - -- assert(pid_psv && *pid_psv); -+ assert(pid_psv && *pid_psv); - -- if (SvIV(*pid_psv) == (IV)PerlProc_getpid()) { -- /* if we get here the file hasn't been closed explicitly by the -- user and hadn't been closed implicitly by nextargv(), so -- abandon the edit */ -- SV **temp_psv = av_fetch((AV*)mg->mg_obj, ARGVMG_TEMP_NAME, FALSE); -- const char *temp_pv = SvPVX(*temp_psv); -+ if (SvIV(*pid_psv) == (IV)PerlProc_getpid()) { -+ /* if we get here the file hasn't been closed explicitly by the -+ user and hadn't been closed implicitly by nextargv(), so -+ abandon the edit */ -+ SV **temp_psv = av_fetch((AV*)mg->mg_obj, ARGVMG_TEMP_NAME, FALSE); -+ const char *temp_pv = SvPVX(*temp_psv); - -- assert(temp_psv && *temp_psv && SvPOK(*temp_psv)); -- (void)PerlIO_close(iop); -- IoIFP(io) = IoOFP(io) = NULL; -+ assert(temp_psv && *temp_psv && SvPOK(*temp_psv)); -+ (void)PerlIO_close(iop); -+ IoIFP(io) = IoOFP(io) = NULL; - #ifdef ARGV_USE_ATFUNCTIONS -- if (dir) { -- if (unlinkat(my_dirfd(dir), temp_pv, 0) < 0 && -- NotSupported(errno)) -- (void)UNLINK(temp_pv); -- } -+ if (dir) { -+ if (unlinkat(my_dirfd(dir), temp_pv, 0) < 0 && -+ NotSupported(errno)) -+ (void)UNLINK(temp_pv); -+ } - #else -- (void)UNLINK(temp_pv); -+ (void)UNLINK(temp_pv); - #endif -+ } - } - } - #ifdef ARGV_USE_ATFUNCTIONS -diff --git a/t/io/inplace.t b/t/io/inplace.t -index ac50f1ab77..0403cd9250 100644 ---- a/t/io/inplace.t -+++ b/t/io/inplace.t -@@ -96,7 +96,7 @@ SKIP: - my @tests = - ( # opts, code, result, name, $TODO - [ "-n", "die", "bar\n", "die shouldn't touch file" ], -- [ "-n", "last", "", "last should update file", "not implemented yet" ], -+ [ "-n", "last", "", "last should update file" ], - ); - our $file = tempfile() ; - -diff --git a/t/run/switches.t b/t/run/switches.t -index 7ccef1e063..594cad6e7f 100644 ---- a/t/run/switches.t -+++ b/t/run/switches.t -@@ -429,7 +429,7 @@ __EOF__ - - # exit or die should leave original content in file - for my $inplace (qw/-i -i.bak/) { -- for my $prog (qw/die exit/) { -+ for my $prog ("die", "exit 1") { - open my $fh, ">", $work or die "$0: failed to open '$work': $!"; - print $fh $yada; - close $fh or die "Failed to close: $!"; -@@ -443,7 +443,7 @@ __EOF__ - my $data = do { local $/; <$in> }; - close $in; - is ($data, $yada, "check original content still in file"); -- unlink $work; -+ unlink $work, "$work.bak"; - } - } - --- -2.17.2 - diff --git a/perl-5.29.5-perl-133659-move-argvout-cleanup-to-a-new-function.patch b/perl-5.29.5-perl-133659-move-argvout-cleanup-to-a-new-function.patch deleted file mode 100644 index fc8e669..0000000 --- a/perl-5.29.5-perl-133659-move-argvout-cleanup-to-a-new-function.patch +++ /dev/null @@ -1,139 +0,0 @@ -From 404395d24bc87890c7d978622296b9925a347aa0 Mon Sep 17 00:00:00 2001 -From: Tony Cook -Date: Tue, 20 Nov 2018 15:30:20 +1100 -Subject: [PATCH 1/3] (perl #133659) move argvout cleanup to a new function -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Signed-off-by: Petr Písař ---- - doio.c | 62 ++++++++++++++++++++++++++++++++++--------------------- - embed.fnc | 1 + - embed.h | 1 + - proto.h | 3 +++ - 4 files changed, 43 insertions(+), 24 deletions(-) - -diff --git a/doio.c b/doio.c -index 8d9131cc85..77421de1d1 100644 ---- a/doio.c -+++ b/doio.c -@@ -1526,31 +1526,14 @@ S_dir_unchanged(pTHX_ const char *orig_pv, MAGIC *mg) { - #define dir_unchanged(orig_psv, mg) \ - S_dir_unchanged(aTHX_ (orig_psv), (mg)) - --/* explicit renamed to avoid C++ conflict -- kja */ --bool --Perl_do_close(pTHX_ GV *gv, bool not_implicit) --{ -+STATIC bool -+S_argvout_final(pTHX_ MAGIC *mg, IO *io, bool not_implicit) { - bool retval; -- IO *io; -- MAGIC *mg; - -- if (!gv) -- gv = PL_argvgv; -- if (!gv || !isGV_with_GP(gv)) { -- if (not_implicit) -- SETERRNO(EBADF,SS_IVCHAN); -- return FALSE; -- } -- io = GvIO(gv); -- if (!io) { /* never opened */ -- if (not_implicit) { -- report_evil_fh(gv); -- SETERRNO(EBADF,SS_IVCHAN); -- } -- return FALSE; -- } -- if ((mg = mg_findext((SV*)io, PERL_MAGIC_uvar, &argvout_vtbl)) -- && mg->mg_obj) { -+ /* ensure args are checked before we start using them */ -+ PERL_ARGS_ASSERT_ARGVOUT_FINAL; -+ -+ { - /* handle to an in-place edit work file */ - SV **back_psv = av_fetch((AV*)mg->mg_obj, ARGVMG_BACKUP_NAME, FALSE); - SV **temp_psv = av_fetch((AV*)mg->mg_obj, ARGVMG_TEMP_NAME, FALSE); -@@ -1717,7 +1700,38 @@ Perl_do_close(pTHX_ GV *gv, bool not_implicit) - SvPVX(*temp_psv), Strerror(errno)); - } - } -- freext: -+ freext: -+ ; -+ } -+ return retval; -+} -+ -+/* explicit renamed to avoid C++ conflict -- kja */ -+bool -+Perl_do_close(pTHX_ GV *gv, bool not_implicit) -+{ -+ bool retval; -+ IO *io; -+ MAGIC *mg; -+ -+ if (!gv) -+ gv = PL_argvgv; -+ if (!gv || !isGV_with_GP(gv)) { -+ if (not_implicit) -+ SETERRNO(EBADF,SS_IVCHAN); -+ return FALSE; -+ } -+ io = GvIO(gv); -+ if (!io) { /* never opened */ -+ if (not_implicit) { -+ report_evil_fh(gv); -+ SETERRNO(EBADF,SS_IVCHAN); -+ } -+ return FALSE; -+ } -+ if ((mg = mg_findext((SV*)io, PERL_MAGIC_uvar, &argvout_vtbl)) -+ && mg->mg_obj) { -+ retval = argvout_final(mg, io, not_implicit); - mg_freeext((SV*)io, PERL_MAGIC_uvar, &argvout_vtbl); - } - else { -diff --git a/embed.fnc b/embed.fnc -index 2ed2cc32b9..408917e0a7 100644 ---- a/embed.fnc -+++ b/embed.fnc -@@ -440,6 +440,7 @@ p |bool|do_exec3 |NN const char *incmd|int fd|int do_report - #endif - #if defined(PERL_IN_DOIO_C) - s |void |exec_failed |NN const char *cmd|int fd|int do_report -+s |bool |argvout_final |NN MAGIC *mg|NN IO *io|bool not_implicit - #endif - #if defined(HAS_MSG) || defined(HAS_SEM) || defined(HAS_SHM) - : Defined in doio.c, used only in pp_sys.c -diff --git a/embed.h b/embed.h -index 4cc97126bd..ffa5b1d581 100644 ---- a/embed.h -+++ b/embed.h -@@ -1755,6 +1755,7 @@ - #define deb_stack_n(a,b,c,d,e) S_deb_stack_n(aTHX_ a,b,c,d,e) - # endif - # if defined(PERL_IN_DOIO_C) -+#define argvout_final(a,b,c) S_argvout_final(aTHX_ a,b,c) - #define exec_failed(a,b,c) S_exec_failed(aTHX_ a,b,c) - #define ingroup(a,b) S_ingroup(aTHX_ a,b) - #define openn_cleanup(a,b,c,d,e,f,g,h,i,j,k,l,m) S_openn_cleanup(aTHX_ a,b,c,d,e,f,g,h,i,j,k,l,m) -diff --git a/proto.h b/proto.h -index e57df2f206..061a9d72a0 100644 ---- a/proto.h -+++ b/proto.h -@@ -4752,6 +4752,9 @@ STATIC void S_deb_stack_n(pTHX_ SV** stack_base, I32 stack_min, I32 stack_max, I - assert(stack_base) - #endif - #if defined(PERL_IN_DOIO_C) -+STATIC bool S_argvout_final(pTHX_ MAGIC *mg, IO *io, bool not_implicit); -+#define PERL_ARGS_ASSERT_ARGVOUT_FINAL \ -+ assert(mg); assert(io) - STATIC void S_exec_failed(pTHX_ const char *cmd, int fd, int do_report); - #define PERL_ARGS_ASSERT_EXEC_FAILED \ - assert(cmd) --- -2.17.2 - diff --git a/perl-5.29.5-perl-133659-tests-for-global-destruction-handling-of.patch b/perl-5.29.5-perl-133659-tests-for-global-destruction-handling-of.patch deleted file mode 100644 index 13c7787..0000000 --- a/perl-5.29.5-perl-133659-tests-for-global-destruction-handling-of.patch +++ /dev/null @@ -1,60 +0,0 @@ -From 640e129d0fc499d24a759cacae9240a32c66fa51 Mon Sep 17 00:00:00 2001 -From: Tony Cook -Date: Tue, 20 Nov 2018 16:43:43 +1100 -Subject: [PATCH 2/3] (perl #133659) tests for global destruction handling of - inplace editing -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Signed-off-by: Petr Písař ---- - t/io/inplace.t | 28 +++++++++++++++++++++++++++- - 1 file changed, 27 insertions(+), 1 deletion(-) - -diff --git a/t/io/inplace.t b/t/io/inplace.t -index 98159e06bf..ac50f1ab77 100644 ---- a/t/io/inplace.t -+++ b/t/io/inplace.t -@@ -5,7 +5,7 @@ require './test.pl'; - - $^I = $^O eq 'VMS' ? '_bak' : '.bak'; - --plan( tests => 6 ); -+plan( tests => 8 ); - - my @tfiles = (tempfile(), tempfile(), tempfile()); - my @tfiles_bak = map "$_$^I", @tfiles; -@@ -91,3 +91,29 @@ SKIP: - - END { unlink_all(@ifiles); } - } -+ -+{ -+ my @tests = -+ ( # opts, code, result, name, $TODO -+ [ "-n", "die", "bar\n", "die shouldn't touch file" ], -+ [ "-n", "last", "", "last should update file", "not implemented yet" ], -+ ); -+ our $file = tempfile() ; -+ -+ for my $test (@tests) { -+ (my ($opts, $code, $result, $name), our $TODO) = @$test; -+ open my $fh, ">", $file or die; -+ print $fh "bar\n"; -+ close $fh; -+ -+ runperl( prog => $code, -+ switches => [ grep length, "-i", $opts ], -+ args => [ $file ], -+ stderr => 1, # discarded -+ ); -+ open $fh, "<", $file or die; -+ my $data = do { local $/; <$fh>; }; -+ close $fh; -+ is($data, $result, $name); -+ } -+} --- -2.17.2 - diff --git a/perl-5.29.6-perl-132158-abort-compilation-if-we-see-an-error-com.patch b/perl-5.29.6-perl-132158-abort-compilation-if-we-see-an-error-com.patch deleted file mode 100644 index bea61bc..0000000 --- a/perl-5.29.6-perl-132158-abort-compilation-if-we-see-an-error-com.patch +++ /dev/null @@ -1,62 +0,0 @@ -From 817480137a8b1165315f21d14b8968862101c3a2 Mon Sep 17 00:00:00 2001 -From: Tony Cook -Date: Tue, 28 Aug 2018 14:11:10 +1000 -Subject: [PATCH] (perl #132158) abort compilation if we see an error compiling - a form -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Signed-off-by: Petr Písař ---- - t/lib/croak/toke | 9 +++++++++ - toke.c | 9 +++++++++ - 2 files changed, 18 insertions(+) - -diff --git a/t/lib/croak/toke b/t/lib/croak/toke -index 59c377ba6b..21851229fe 100644 ---- a/t/lib/croak/toke -+++ b/t/lib/croak/toke -@@ -493,3 +493,12 @@ sub t1 {} - sub t2 (} - EXPECT - Prototype not terminated at - line 2. -+######## -+# NAME [perl #132158] format with syntax errors -+format= -+@ -+=h -+=cut -+EXPECT -+syntax error at - line 4, next token ??? -+Execution of - aborted due to compilation errors. -diff --git a/toke.c b/toke.c -index 844de04a23..666424ba02 100644 ---- a/toke.c -+++ b/toke.c -@@ -5099,6 +5099,14 @@ Perl_yylex(pTHX) - - return yylex(); - case LEX_FORMLINE: -+ if (PL_parser->sub_error_count != PL_error_count) { -+ /* There was an error parsing a formline, which tends to -+ mess up the parser. -+ Unlike interpolated sub-parsing, we can't treat any of -+ these as recoverable, so no need to check sub_no_recover. -+ */ -+ yyquit(); -+ } - assert(PL_lex_formbrack); - s = scan_formline(PL_bufptr); - if (!PL_lex_formbrack) -@@ -6518,6 +6526,7 @@ Perl_yylex(pTHX) - SAVEI32(PL_lex_formbrack); - PL_parser->form_lex_state = PL_lex_state; - PL_lex_formbrack = PL_lex_brackets + 1; -+ PL_parser->sub_error_count = PL_error_count; - goto leftbracket; - } - } --- -2.17.2 - diff --git a/perl-5.29.7-perl-131562-correct-large-line-numbers-copying-eval-.patch b/perl-5.29.7-perl-131562-correct-large-line-numbers-copying-eval-.patch deleted file mode 100644 index f69fe65..0000000 --- a/perl-5.29.7-perl-131562-correct-large-line-numbers-copying-eval-.patch +++ /dev/null @@ -1,49 +0,0 @@ -From 515c395bcca24c55c85b5aeea239e5e836c36059 Mon Sep 17 00:00:00 2001 -From: Tony Cook -Date: Wed, 23 Aug 2017 14:18:26 +1000 -Subject: [PATCH] (perl #131562) correct large line numbers copying eval lines - on #line -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Previously this used I32 for line numbers, which takes half the range -of line_t and folds it into negative numbers, leading to trying to store -the lines at negative indexes. - -The while loop was also modified to stop storing if/when the line number -no longer fits into cop_line, or no longer fits into SSize_t (as a -positive number) since the index parameter to av_store() is a SSize_t. - -Signed-off-by: Petr Písař ---- - toke.c | 10 +++++----- - 1 file changed, 5 insertions(+), 5 deletions(-) - -diff --git a/toke.c b/toke.c -index de4ab2e652..5a3fe78472 100644 ---- a/toke.c -+++ b/toke.c -@@ -1829,14 +1829,14 @@ S_incline(pTHX_ const char *s, const char *end) - } - else if (GvAV(cfgv)) { - AV * const av = GvAV(cfgv); -- const I32 start = CopLINE(PL_curcop)+1; -- I32 items = AvFILLp(av) - start; -+ const line_t start = CopLINE(PL_curcop)+1; -+ SSize_t items = AvFILLp(av) - start; - if (items > 0) { - AV * const av2 = GvAVn(gv2); - SV **svp = AvARRAY(av) + start; -- I32 l = (I32)line_num+1; -- while (items--) -- av_store(av2, l++, SvREFCNT_inc(*svp++)); -+ Size_t l = line_num+1; -+ while (items-- && l < SSize_t_MAX && l == (line_t)l) -+ av_store(av2, (SSize_t)l++, SvREFCNT_inc(*svp++)); - } - } - } --- -2.20.1 - diff --git a/perl-5.29.8-perl-133778-adjust-MARK-if-we-extend-the-stack-in-pp.patch b/perl-5.29.8-perl-133778-adjust-MARK-if-we-extend-the-stack-in-pp.patch deleted file mode 100644 index 5309c9b..0000000 --- a/perl-5.29.8-perl-133778-adjust-MARK-if-we-extend-the-stack-in-pp.patch +++ /dev/null @@ -1,133 +0,0 @@ -From d81b77352f66acde60db1b056b8eb3321b7b55fe Mon Sep 17 00:00:00 2001 -From: Tony Cook -Date: Wed, 6 Feb 2019 10:37:58 +1100 -Subject: [PATCH] (perl #133778) adjust MARK if we extend the stack in - pp_repeat -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -for a list repeat in scalar/void context - -Signed-off-by: Petr Písař ---- - pp.c | 3 +- - t/op/repeat.t | 84 ++++++++++++++++++++++++++++++++++++++++++++++++++- - 2 files changed, 85 insertions(+), 2 deletions(-) - -diff --git a/pp.c b/pp.c -index 5965f1adc0..77dddcb8b3 100644 ---- a/pp.c -+++ b/pp.c -@@ -1694,7 +1694,8 @@ PP(pp_repeat) - else { - dTOPss; - ASSUME(MARK + 1 == SP); -- XPUSHs(sv); -+ MEXTEND(SP, 1); -+ PUSHs(sv); - MARK[1] = &PL_sv_undef; - } - SP = MARK + 2; -diff --git a/t/op/repeat.t b/t/op/repeat.t -index 978916689b..fa7ce06904 100644 ---- a/t/op/repeat.t -+++ b/t/op/repeat.t -@@ -6,7 +6,7 @@ BEGIN { - set_up_inc( '../lib' ); - } - --plan(tests => 49); -+plan(tests => 50); - - # compile time - -@@ -192,3 +192,85 @@ fresh_perl_like( - - eval q{() = (() or ((0) x 0)); 1}; - is($@, "", "RT #130247"); -+ -+# yes, the newlines matter -+fresh_perl_is(<<'PERL', "", { stderr => 1 }, "(perl #133778) MARK mishandling"); -+map{s[][];eval;0}__END__ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+()x0 -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+0 -+PERL --- -2.20.1 - diff --git a/perl.spec b/perl.spec index fa4a061..ab6fbd3 100644 --- a/perl.spec +++ b/perl.spec @@ -1,4 +1,4 @@ -%global perl_version 5.28.1 +%global perl_version 5.28.2 %global perl_epoch 4 %global perl_arch_stem -thread-multi %global perl_archname %{_arch}-%{_os}%{perl_arch_stem} @@ -83,7 +83,7 @@ License: GPL+ or Artistic Epoch: %{perl_epoch} Version: %{perl_version} # release number must be even higher, because dual-lived modules will be broken otherwise -Release: 435%{?dist} +Release: 436%{?dist} Summary: Practical Extraction and Report Language Url: https://www.perl.org/ Source0: https://www.cpan.org/src/5.0/perl-%{perl_version}.tar.xz @@ -186,17 +186,9 @@ Patch27: perl-5.29.2-multiconcat-mutator-not-seen-in-lex.patch # in upstream after 5.29.2 Patch28: perl-5.29.2-perl-132683-don-t-try-to-convert-PL_sv_placeholder-i.patch -# Fix upack "u" of invalid data, RT#132655, in upstream after 5.29.2 -Patch29: perl-5.29.2-perl-132655-nul-terminate-result-of-unpack-u-of-inva.patch - # Pass the correct CFLAGS to dtrace Patch30: perl-5.28.0-Pass-CFLAGS-to-dtrace.patch -# Fix script run matching to allow ASCII digits in scripts that use their own in -# addition, RT#133547, in upstream after 5.29.3 -Patch31: perl-5.28.1-regexec.c-Rename-variable.patch -Patch32: perl-5.28.1-PATCH-perl-133547-script-run-broken.patch - # Fix PathTools tests to cope with ESTALE error, RT#133534, # in upstream after 5.29.3 Patch33: perl-5.29.3-Accept-also-ESTALE-fix-for-RT-133534.patch @@ -204,12 +196,6 @@ Patch33: perl-5.29.3-Accept-also-ESTALE-fix-for-RT-133534.patch # Fix an undefined behaviour in S_hv_delete_common(), in upstream after 5.29.5 Patch34: perl-5.29.5-S_hv_delete_common-avoid-undefined-behaviour.patch -# Fix in-place edit to replace files on a successful perl exit status, -# bug #1650041, RT#133659, in upstream after 5.29.5 -Patch35: perl-5.29.5-perl-133659-move-argvout-cleanup-to-a-new-function.patch -Patch36: perl-5.29.5-perl-133659-tests-for-global-destruction-handling-of.patch -Patch37: perl-5.29.5-perl-133659-make-an-in-place-edit-successful-if-the-.patch - # Fix compiling regular expressions that contain both compile- and run-time # compiled code blocks, RT#133687, in upstream after 5.29.5 Patch38: perl-5.29.5-handle-code-mixed-compile-and-runtime.patch @@ -219,11 +205,6 @@ Patch39: perl-5.28.1-ext-GDBM_File-t-fatal.t-handle-non-fatality.patch Patch40: perl-5.29.5-Correct-spelling-error-in-skip-message.patch Patch41: perl-5.29.5-Avoid-Use-of-uninitialized-value-res-in-numeric-eq-w.patch -# Do not close an IPC pipe that already has a desired descriptor, RT#133726, -# in upstream after 5.29.5 -Patch42: perl-5.29.5-Always-mark-pipe-in-pipe-open-as-inherit-on-exec.patch -Patch43: perl-5.29.5-Always-mark-pipe-in-pipe-open-as-inherit-on-exec-2.patch - # Fix reporting a line number for non-terminated prototypes, RT#133524, # in upstream after 5.29.6 Patch44: perl-5.28.1-perl-133524-report-line-number-for-Prototype-not-ter.patch @@ -232,9 +213,6 @@ Patch44: perl-5.28.1-perl-133524-report-line-number-for-Prototype-not-ter Patch45: perl-5.29.6-perl-133721-TODO-test-for-eof-with-no-LAST_FH.patch Patch46: perl-5.29.6-First-eof-should-return-true.patch -# Fix a crash when compiling a malformed form, RT#132158, in upstream after 5.29.6 -Patch47: perl-5.29.6-perl-132158-abort-compilation-if-we-see-an-error-com.patch - # Prevent long jumps from clobbering local variables, RT#133575, # in upstream after 5.29.6 Patch49: perl-5.29.6-perl-133575-prevent-set-longjmp-clobbering-locals-in.patch @@ -243,23 +221,12 @@ Patch49: perl-5.29.6-perl-133575-prevent-set-longjmp-clobbering-locals-in # ligatures, RT#133756, in upstream after 5.29.6 Patch50: perl-5.29.6-PATCH-perl-133756-Failure-to-match-properly.patch -# Fix the interpreter path if procfs is not mounted, RT#133573, -# in upstream after 5.29.3 -Patch51: perl-5.29.3-RT-133573-X-fallback-when-platform-specific-techniqu.patch - -# Fix a crash when parsing #line directives with large numbers in eval, RT#131562, -# in upstream after 5.29.7 -Patch52: perl-5.29.7-perl-131562-correct-large-line-numbers-copying-eval-.patch - # Fix setting magic when changing $^R, RT#133782, in upstream after 5.29.7 Patch53: perl-5.28.1-perl-133782-set-magic-when-changing-R.patch # Fix a race when loading XS modules, in upstream after 5.29.7 Patch54: perl-5.29.7-Perl_my_cxt_init-fix-potential-race-condition.patch -# Fix extending a stack in Perl parser, RT#133778, in upstream after 5.29.8 -Patch55: perl-5.29.8-perl-133778-adjust-MARK-if-we-extend-the-stack-in-pp.patch - # Fix a leak when compiling a typed hash dereference, in upstream after 5.29.8 Patch56: perl-5.28.1-fix-leak-when-compiling-typed-hash-deref.patch Patch57: perl-5.29.8-fix-blead-on-non-threaded-builds.patch @@ -362,7 +329,7 @@ BuildRequires: rsyslog # compat macro needed for rebuild -%global perl_compat perl(:MODULE_COMPAT_5.28.1) +%global perl_compat perl(:MODULE_COMPAT_5.28.2) Requires: %perl_compat Requires: perl-interpreter%{?_isa} = %{perl_epoch}:%{perl_version}-%{release} @@ -514,6 +481,7 @@ Summary: The libraries for the perl run-time License: (GPL+ or Artistic) and HSRL and MIT and UCD # Compat provides Provides: %perl_compat +Provides: perl(:MODULE_COMPAT_5.28.1) Provides: perl(:MODULE_COMPAT_5.28.0) # Interpreter version to fulfil required genersted from "require 5.006;" Provides: perl(:VERSION) = %{perl_version} @@ -2005,7 +1973,7 @@ encoder/decoder. These encoding methods are specified in RFC 2045 - MIME Summary: What modules are shipped with versions of perl License: GPL+ or Artistic Epoch: 1 -Version: 5.20180622 +Version: 5.20190419 Requires: %perl_compat Requires: perl(List::Util) Requires: perl(version) >= 0.88 @@ -2023,7 +1991,7 @@ are shipped with each version of perl. Summary: Tool for listing modules shipped with perl License: GPL+ or Artistic Epoch: 1 -Version: 5.20180622 +Version: 5.20190419 Requires: %perl_compat Requires: perl(feature) Requires: perl(version) >= 0.88 @@ -2894,32 +2862,20 @@ Perl extension for Version Objects %patch26 -p1 %patch27 -p1 %patch28 -p1 -%patch29 -p1 %patch30 -p1 -%patch31 -p1 -%patch32 -p1 %patch33 -p1 %patch34 -p1 -%patch35 -p1 -%patch36 -p1 -%patch37 -p1 %patch38 -p1 %patch39 -p1 %patch40 -p1 %patch41 -p1 -%patch42 -p1 -%patch43 -p1 %patch44 -p1 %patch45 -p1 %patch46 -p1 -%patch47 -p1 %patch49 -p1 %patch50 -p1 -%patch51 -p1 -%patch52 -p1 %patch53 -p1 %patch54 -p1 -%patch55 -p1 %patch56 -p1 %patch57 -p1 %patch58 -p1 @@ -2966,23 +2922,16 @@ perl -x patchlevel.h \ 'Fedora Patch27: Fix an assignment to a lexical variable in multiconcatenation expressions (RT#133441)' \ 'Fedora Patch28: Fix a spurious warning about uninitialized value in warn (RT#132683)' \ 'Fedora Patch30: Pass the correct CFLAGS to dtrace' \ - 'Fedora Patch31: Fix script run matching to allow ASCII digits in scripts that use their own in addition (RT#133547)' \ 'Fedora Patch33: Fix PathTools tests to cope with ESTALE error (RT#133534)' \ 'Fedora Patch34: Fix an undefined behaviour in S_hv_delete_common()' \ - 'Fedora Patch35: Fix in-place edit to replace files on a successful perl exit status (bug #1650041)' \ 'Fedora Patch38: Fix compiling regular expressions that contain both compile- and run-time compiled code blocks (RT#133687)' \ 'Fedora Patch39: Adjust tests to gdbm-1.15 (RT#133295)' \ - 'Fedora Patch42: Do not close an IPC pipe that already has a desired descriptor (RT#133726)' \ 'Fedora Patch44: Fix reporting a line number for non-terminated prototypes (RT#133524)' \ 'Fedora Patch45: Fix first eof() return value (RT#133721)' \ - 'Fedora Patch47: Fix a crash when compiling a malformed form (RT#132158)' \ 'Fedora Patch49: Prevent long jumps from clobbering local variables (RT#133575)' \ 'Fedora Patch50: Fix a mismatch with a case-insesitive regular expression on a text with ligatures (RT#133756)' \ - 'Fedora Patch51: Fix the interpreter path if procfs is not mounted (RT#133573)' \ - 'Fedora Patch52: Fix a crash when parsing #line directives with large numbers in eval (RT#131562)' \ 'Fedora Patch53: Fix setting magic when changing $^R (RT#133782)' \ 'Fedora Patch54: Fix a race when loading XS modules' \ - 'Fedora Patch55: Fix extending a stack in Perl parser (RT#133778)' \ 'Fedora Patch56: Fix a leak when compiling a typed hash dereference' \ 'Fedora Patch58: Fix a buffer overread when handling a scope error in qr/\(?{/ (RT#133879)' \ 'Fedora Patch59: Fix a buffer overread when parsing a regular expression with an unknown character name (RT#133880)' \ @@ -5284,6 +5233,10 @@ popd # Old changelog entries are preserved in CVS. %changelog +* Tue Apr 23 2019 Jitka Plesnikova - 4:5.28.2-436 +- 5.28.2 bump (see + for release notes) + * Fri Apr 05 2019 Petr Pisar - 4:5.28.1-435 - Fix a leak when compiling a typed hash dereference - Fix a buffer overread when handling a scope error in qr/\(?{/ (RT#133879) diff --git a/sources b/sources index 94ad58f..05f6caa 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (perl-5.28.1.tar.xz) = 6d18e9684c3a15bea2ccd28f116d1829c3acd5547551ee3539f0060c0d1a75246dfe570dfb9d5f00625a994a0afb0cbd6a5a5f9a407fef75a421e7dbc6491b43 +SHA512 (perl-5.28.2.tar.xz) = 0f2e4f7cb5d8cf6e00054b3842907e29b6c85902d97fb881d5bea65edbc875fef4e15e064561fac7c8db4939586576dd76a225026c7cca9624261c887b1fdb08