5.18.1 bump; Disable macro %%{rebuild_from_scratch}
This commit is contained in:
parent
e242c1c673
commit
26c24d1d6c
|
@ -17,3 +17,4 @@ filter-requires.sh
|
||||||
/perl-5.16.2.tar.gz
|
/perl-5.16.2.tar.gz
|
||||||
/perl-5.16.3.tar.bz2
|
/perl-5.16.3.tar.bz2
|
||||||
/perl-5.18.0.tar.bz2
|
/perl-5.18.0.tar.bz2
|
||||||
|
/perl-5.18.1.tar.bz2
|
||||||
|
|
|
@ -1,109 +0,0 @@
|
||||||
From 4149c7198d9b78d861df289cce40dd865cab57e7 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Tony Cook <tony@develop-help.com>
|
|
||||||
Date: Mon, 3 Jun 2013 22:28:37 +1000
|
|
||||||
Subject: [PATCH] Fix regmatch pointer 32-bit wraparound regression
|
|
||||||
|
|
||||||
Cherry-picked from:
|
|
||||||
|
|
||||||
commit 285a3ca139d04d2ee1894c9a9110294ee8bb0309
|
|
||||||
Merge: aad0429 dfb8f19
|
|
||||||
Author: Tony Cook <tony@develop-help.com>
|
|
||||||
AuthorDate: Mon Jun 3 22:28:37 2013 +1000
|
|
||||||
Commit: Tony Cook <tony@develop-help.com>
|
|
||||||
CommitDate: Mon Jun 3 22:28:37 2013 +1000
|
|
||||||
|
|
||||||
[perl #118175] avoid making pointers outside of objects
|
|
||||||
|
|
||||||
In a couple of cases, when strings were allocated above the 2GB line
|
|
||||||
on 32-bit CPUs, this could cause regexps to act strangely - not matching
|
|
||||||
or crashing perl.
|
|
||||||
|
|
||||||
The final patch in the set prevents pointer creation which the C standard
|
|
||||||
describes as undefined behaviour, but is typically safe (as long as the
|
|
||||||
pointer isn't derefed)
|
|
||||||
|
|
||||||
This regression was introduced into 5.18.0 by commit
|
|
||||||
4063ade8503ac8877a02fc4eae8ebbe242b9110b.
|
|
||||||
---
|
|
||||||
regexec.c | 8 ++++----
|
|
||||||
t/re/pat_rt_report.t | 17 ++++++++++++++++-
|
|
||||||
2 files changed, 20 insertions(+), 5 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/regexec.c b/regexec.c
|
|
||||||
index bc38839..b865b46 100644
|
|
||||||
--- a/regexec.c
|
|
||||||
+++ b/regexec.c
|
|
||||||
@@ -6662,7 +6662,7 @@ S_regrepeat(pTHX_ regexp *prog, char **startposp, const regnode *p,
|
|
||||||
scan = *startposp;
|
|
||||||
if (max == REG_INFTY)
|
|
||||||
max = I32_MAX;
|
|
||||||
- else if (! utf8_target && scan + max < loceol)
|
|
||||||
+ else if (! utf8_target && loceol - scan > max)
|
|
||||||
loceol = scan + max;
|
|
||||||
|
|
||||||
/* Here, for the case of a non-UTF-8 target we have adjusted <loceol> down
|
|
||||||
@@ -6711,7 +6711,7 @@ S_regrepeat(pTHX_ regexp *prog, char **startposp, const regnode *p,
|
|
||||||
scan = loceol;
|
|
||||||
break;
|
|
||||||
case CANY: /* Move <scan> forward <max> bytes, unless goes off end */
|
|
||||||
- if (utf8_target && scan + max < loceol) {
|
|
||||||
+ if (utf8_target && loceol - scan > max) {
|
|
||||||
|
|
||||||
/* <loceol> hadn't been adjusted in the UTF-8 case */
|
|
||||||
scan += max;
|
|
||||||
@@ -6730,7 +6730,7 @@ S_regrepeat(pTHX_ regexp *prog, char **startposp, const regnode *p,
|
|
||||||
* can use UTF8_IS_INVARIANT() even if the pattern isn't UTF-8, as it's
|
|
||||||
* true iff it doesn't matter if the argument is in UTF-8 or not */
|
|
||||||
if (UTF8_IS_INVARIANT(c) || (! utf8_target && ! is_utf8_pat)) {
|
|
||||||
- if (utf8_target && scan + max < loceol) {
|
|
||||||
+ if (utf8_target && loceol - scan > max) {
|
|
||||||
/* We didn't adjust <loceol> because is UTF-8, but ok to do so,
|
|
||||||
* since here, to match at all, 1 char == 1 byte */
|
|
||||||
loceol = scan + max;
|
|
||||||
@@ -6910,7 +6910,7 @@ S_regrepeat(pTHX_ regexp *prog, char **startposp, const regnode *p,
|
|
||||||
/* FALLTHROUGH */
|
|
||||||
|
|
||||||
case POSIXA:
|
|
||||||
- if (utf8_target && scan + max < loceol) {
|
|
||||||
+ if (utf8_target && loceol - scan > max) {
|
|
||||||
|
|
||||||
/* We didn't adjust <loceol> at the beginning of this routine
|
|
||||||
* because is UTF-8, but it is actually ok to do so, since here, to
|
|
||||||
diff --git a/t/re/pat_rt_report.t b/t/re/pat_rt_report.t
|
|
||||||
index 2244fdf..9a9b5f5 100644
|
|
||||||
--- a/t/re/pat_rt_report.t
|
|
||||||
+++ b/t/re/pat_rt_report.t
|
|
||||||
@@ -22,7 +22,7 @@ BEGIN {
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
-plan tests => 2530; # Update this when adding/deleting tests.
|
|
||||||
+plan tests => 2532; # Update this when adding/deleting tests.
|
|
||||||
|
|
||||||
run_tests() unless caller;
|
|
||||||
|
|
||||||
@@ -1158,6 +1158,21 @@ EOP
|
|
||||||
'$_ = "abc"; /b/g; $_ = "hello"; print eval q|$\'|,"\n"',
|
|
||||||
"c\n", {}, '$\' first mentioned after match');
|
|
||||||
}
|
|
||||||
+
|
|
||||||
+ {
|
|
||||||
+ # [perl #118175] threaded perl-5.18.0 fails pat_rt_report_thr.t
|
|
||||||
+ # this tests some related failures
|
|
||||||
+ #
|
|
||||||
+ # The tests in the block *only* fail when run on 32-bit systems
|
|
||||||
+ # with a malloc that allocates above the 2GB line. On the system
|
|
||||||
+ # in the report above that only happened in a thread.
|
|
||||||
+ my $s = "\x{1ff}" . "f" x 32;
|
|
||||||
+ ok($s =~ /\x{1ff}[[:alpha:]]+/gca, "POSIXA pointer wrap");
|
|
||||||
+
|
|
||||||
+ # this one segfaulted under the conditions above
|
|
||||||
+ # of course, CANY is evil, maybe it should crash
|
|
||||||
+ ok($s =~ /.\C+/, "CANY pointer wrap");
|
|
||||||
+ }
|
|
||||||
} # End of sub run_tests
|
|
||||||
|
|
||||||
1;
|
|
||||||
--
|
|
||||||
1.8.1.4
|
|
||||||
|
|
|
@ -37,7 +37,7 @@ index 0e507b2..67cdd24 100644
|
||||||
+ $ENV{PERL_RL} = 'Perl'; # Suppress system Term::ReadLine::Gnu
|
+ $ENV{PERL_RL} = 'Perl'; # Suppress system Term::ReadLine::Gnu
|
||||||
}
|
}
|
||||||
|
|
||||||
plan(113);
|
plan(116);
|
||||||
--
|
--
|
||||||
1.8.1.4
|
1.8.1.4
|
||||||
|
|
||||||
|
|
31
perl.spec
31
perl.spec
|
@ -1,4 +1,4 @@
|
||||||
%global perl_version 5.18.0
|
%global perl_version 5.18.1
|
||||||
%global perl_epoch 4
|
%global perl_epoch 4
|
||||||
%global perl_arch_stem -thread-multi
|
%global perl_arch_stem -thread-multi
|
||||||
%global perl_archname %{_arch}-%{_os}%{perl_arch_stem}
|
%global perl_archname %{_arch}-%{_os}%{perl_arch_stem}
|
||||||
|
@ -8,7 +8,7 @@
|
||||||
%global tapsetdir %{_datadir}/systemtap/tapset
|
%global tapsetdir %{_datadir}/systemtap/tapset
|
||||||
|
|
||||||
%global dual_life 0
|
%global dual_life 0
|
||||||
%global rebuild_from_scratch 1
|
%global rebuild_from_scratch 0
|
||||||
|
|
||||||
# This overrides filters from build root (/etc/rpm/macros.perl)
|
# This overrides filters from build root (/etc/rpm/macros.perl)
|
||||||
# intentionally (unversioned perl(DB) is removed and versioned one is kept)
|
# intentionally (unversioned perl(DB) is removed and versioned one is kept)
|
||||||
|
@ -31,7 +31,7 @@
|
||||||
Name: perl
|
Name: perl
|
||||||
Version: %{perl_version}
|
Version: %{perl_version}
|
||||||
# release number must be even higher, because dual-lived modules will be broken otherwise
|
# release number must be even higher, because dual-lived modules will be broken otherwise
|
||||||
Release: 286%{?dist}
|
Release: 287%{?dist}
|
||||||
Epoch: %{perl_epoch}
|
Epoch: %{perl_epoch}
|
||||||
Summary: Practical Extraction and Report Language
|
Summary: Practical Extraction and Report Language
|
||||||
Group: Development/Languages
|
Group: Development/Languages
|
||||||
|
@ -89,9 +89,6 @@ Patch11: perl-5.16.3-Synchronize-pod2html-usage-output-and-its-POD-text.p
|
||||||
# Fix a test failure in perl5db.t when TERM=vt100, RT#118817
|
# Fix a test failure in perl5db.t when TERM=vt100, RT#118817
|
||||||
Patch12: perl-5.18.0-Disable-ornaments-on-perl5db-AutoTrace-tests.patch
|
Patch12: perl-5.18.0-Disable-ornaments-on-perl5db-AutoTrace-tests.patch
|
||||||
|
|
||||||
# Fix regmatch pointer 32-bit wraparound regression, RT#118175
|
|
||||||
Patch13: perl-5.18.0-Fix-regmatch-pointer-32-bit-wraparound-regression.patch
|
|
||||||
|
|
||||||
# Prevent from loading system Term::ReadLine::Gnu while running tests,
|
# Prevent from loading system Term::ReadLine::Gnu while running tests,
|
||||||
# RT#118821
|
# RT#118821
|
||||||
Patch14: perl-5.18.0-Suppress-system-Term-ReadLine-Gnu.patch
|
Patch14: perl-5.18.0-Suppress-system-Term-ReadLine-Gnu.patch
|
||||||
|
@ -124,10 +121,11 @@ BuildRequires: procps, rsyslog
|
||||||
|
|
||||||
|
|
||||||
# compat macro needed for rebuild
|
# compat macro needed for rebuild
|
||||||
%global perl_compat perl(:MODULE_COMPAT_5.18.0)
|
%global perl_compat perl(:MODULE_COMPAT_5.18.1)
|
||||||
|
|
||||||
# Compat provides
|
# Compat provides
|
||||||
Provides: %perl_compat
|
Provides: %perl_compat
|
||||||
|
Provides: perl(:MODULE_COMPAT_5.18.0)
|
||||||
|
|
||||||
# Threading provides
|
# Threading provides
|
||||||
Provides: perl(:WITH_ITHREADS)
|
Provides: perl(:WITH_ITHREADS)
|
||||||
|
@ -633,7 +631,8 @@ Group: Development/Libraries
|
||||||
License: GPL+ or Artistic
|
License: GPL+ or Artistic
|
||||||
# Epoch bump for clean upgrade over old standalone package
|
# Epoch bump for clean upgrade over old standalone package
|
||||||
Epoch: 1
|
Epoch: 1
|
||||||
Version: 5.84
|
# real version 5.84_01
|
||||||
|
Version: 5.84.1
|
||||||
Requires: %perl_compat
|
Requires: %perl_compat
|
||||||
# Recommended
|
# Recommended
|
||||||
Requires: perl(Digest::base)
|
Requires: perl(Digest::base)
|
||||||
|
@ -664,7 +663,7 @@ of the system. Perl strings are sequences of characters.
|
||||||
Summary: Character encodings in Perl
|
Summary: Character encodings in Perl
|
||||||
Group: Development/Libraries
|
Group: Development/Libraries
|
||||||
License: GPL+ or Artistic
|
License: GPL+ or Artistic
|
||||||
Epoch: 0
|
Epoch: 1
|
||||||
Version: 2.49
|
Version: 2.49
|
||||||
Requires: %perl_compat
|
Requires: %perl_compat
|
||||||
Requires: %{name}-Encode = %{epoch}:%{version}-%{release}
|
Requires: %{name}-Encode = %{epoch}:%{version}-%{release}
|
||||||
|
@ -1165,7 +1164,7 @@ Summary: Perl core modules indexed by perl versions
|
||||||
Group: Development/Languages
|
Group: Development/Languages
|
||||||
License: GPL+ or Artistic
|
License: GPL+ or Artistic
|
||||||
Epoch: 1
|
Epoch: 1
|
||||||
Version: 2.90
|
Version: 2.96
|
||||||
Requires: %perl_compat
|
Requires: %perl_compat
|
||||||
Requires: perl(version)
|
Requires: perl(version)
|
||||||
BuildArch: noarch
|
BuildArch: noarch
|
||||||
|
@ -1882,7 +1881,6 @@ tarball from perl.org.
|
||||||
%patch10 -p1
|
%patch10 -p1
|
||||||
%patch11 -p1
|
%patch11 -p1
|
||||||
%patch12 -p1
|
%patch12 -p1
|
||||||
%patch13 -p1
|
|
||||||
%patch14 -p1
|
%patch14 -p1
|
||||||
%patch15 -p1
|
%patch15 -p1
|
||||||
%patch16 -p1
|
%patch16 -p1
|
||||||
|
@ -1904,7 +1902,6 @@ perl -x patchlevel.h \
|
||||||
'Fedora Patch10: Update h2ph(1) documentation (RT#117647)' \
|
'Fedora Patch10: Update h2ph(1) documentation (RT#117647)' \
|
||||||
'Fedora Patch11: Update pod2html(1) documentation (RT#117623)' \
|
'Fedora Patch11: Update pod2html(1) documentation (RT#117623)' \
|
||||||
'Fedora Patch12: Disable ornaments on perl5db AutoTrace tests (RT#118817)' \
|
'Fedora Patch12: Disable ornaments on perl5db AutoTrace tests (RT#118817)' \
|
||||||
'Fedora Patch13: Fix regmatch pointer 32-bit wraparound regression (RT#118175)' \
|
|
||||||
'Fedora Patch14: Do not use system Term::ReadLine::Gnu in tests (RT#118821)' \
|
'Fedora Patch14: Do not use system Term::ReadLine::Gnu in tests (RT#118821)' \
|
||||||
'Fedora Patch15: Define SONAME for libperl.so' \
|
'Fedora Patch15: Define SONAME for libperl.so' \
|
||||||
'Fedora Patch16: Install libperl.so to -Dshrpdir value' \
|
'Fedora Patch16: Install libperl.so to -Dshrpdir value' \
|
||||||
|
@ -3594,6 +3591,16 @@ sed \
|
||||||
|
|
||||||
# Old changelog entries are preserved in CVS.
|
# Old changelog entries are preserved in CVS.
|
||||||
%changelog
|
%changelog
|
||||||
|
* Tue Aug 13 2013 Jitka Plesnikova <jplesnik@redhat.com> - 4:5.18.1-287
|
||||||
|
- 5.18.1 bump (see <http://search.cpan.org/dist/perl-5.18.1/pod/perldelta.pod>
|
||||||
|
for release notes)
|
||||||
|
- Disable macro %%{rebuild_from_scratch}
|
||||||
|
- Fix regex seqfault 5.18 regression (bug #989921)
|
||||||
|
- Fixed interpolating downgraded variables into upgraded (bug #970913)
|
||||||
|
- SvTRUE returns correct value (bug #967463)
|
||||||
|
- Fixed doc command in perl debugger (bug #967461)
|
||||||
|
- Fixed unaligned access in slab allocator (bug #964950)
|
||||||
|
|
||||||
* Sat Aug 03 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 4:5.18.0-286
|
* Sat Aug 03 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 4:5.18.0-286
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
|
||||||
|
|
||||||
|
|
2
sources
2
sources
|
@ -2,4 +2,4 @@ aceea3db13a159cd5f7e5f2e3ad9534f perl-5.8.0-libdir64.patch
|
||||||
ad5d07285d6e4914384b43c9abc2bdba filter-requires.sh
|
ad5d07285d6e4914384b43c9abc2bdba filter-requires.sh
|
||||||
93b780a770906408a34b1c511e333a12 perl.stp
|
93b780a770906408a34b1c511e333a12 perl.stp
|
||||||
735480c6749c2aa86faa8311fe651142 perl-example.stp
|
735480c6749c2aa86faa8311fe651142 perl-example.stp
|
||||||
a832e928adfd36d162d2a5d3b631265c perl-5.18.0.tar.bz2
|
4ec1a3f3824674552e749ae420c5e68c perl-5.18.1.tar.bz2
|
||||||
|
|
Loading…
Reference in New Issue