Compare commits
9 Commits
Author | SHA1 | Date |
---|---|---|
Petr Písař | 7b3006d8dc | |
Petr Písař | d9e3a0c6fb | |
Petr Písař | fdfc4810ad | |
Petr Písař | 9346c6dd93 | |
Petr Písař | 53b875fa58 | |
Petr Písař | 968acb6fc7 | |
Petr Písař | ebf06dd659 | |
Jitka Plesnikova | 11024b0f9d | |
Petr Písař | feb15b2a52 |
|
@ -25,3 +25,5 @@ perl-5.12.1.tar.gz
|
|||
/perl-5.24.1.tar.bz2
|
||||
/perl-5.26.0.tar.bz2
|
||||
/perl-5.26.1.tar.bz2
|
||||
/perl-5.26.2-RC1.tar.bz2
|
||||
/perl-5.26.2.tar.bz2
|
||||
|
|
557
gendep.macros
557
gendep.macros
|
@ -1,5 +1,34 @@
|
|||
%global gendep_perl \
|
||||
%{nil}
|
||||
%global gendep_perl_Archive_Tar \
|
||||
Requires: perl(:VERSION) >= 5.5.0 \
|
||||
Requires: perl(Archive::Tar) \
|
||||
Requires: perl(Archive::Tar::Constant) \
|
||||
Requires: perl(Archive::Tar::File) \
|
||||
Requires: perl(Carp) \
|
||||
Requires: perl(Config) \
|
||||
Requires: perl(Cwd) \
|
||||
Requires: perl(Data::Dumper) \
|
||||
Requires: perl(Exporter) \
|
||||
Requires: perl(File::Basename) \
|
||||
Requires: perl(File::Find) \
|
||||
Requires: perl(File::Path) \
|
||||
Requires: perl(File::Spec) \
|
||||
Requires: perl(File::Spec::Unix) \
|
||||
Requires: perl(Getopt::Long) \
|
||||
Requires: perl(Getopt::Std) \
|
||||
Requires: perl(IO::File) \
|
||||
Requires: perl(IO::Handle) \
|
||||
Requires: perl(IO::Zlib) \
|
||||
Requires: perl(Pod::Usage) \
|
||||
Requires: perl(constant) \
|
||||
Requires: perl(strict) \
|
||||
Requires: perl(vars) \
|
||||
Requires: perl(warnings) \
|
||||
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 \
|
||||
Requires: perl(Carp) \
|
||||
|
@ -182,6 +211,8 @@ Requires: perl(strict) \
|
|||
Requires: perl(warnings) \
|
||||
Provides: perl(Compress::Raw::Bzip2) = 2.074 \
|
||||
%{nil}
|
||||
%global gendep_perl_Compress_Raw_Bzip2_debuginfo \
|
||||
%{nil}
|
||||
%global gendep_perl_Compress_Raw_Zlib \
|
||||
Requires: perl(:VERSION) >= 5.6.0 \
|
||||
Requires: perl(Carp) \
|
||||
|
@ -192,6 +223,8 @@ Requires: perl(strict) \
|
|||
Requires: perl(warnings) \
|
||||
Provides: perl(Compress::Raw::Zlib) = 2.074 \
|
||||
%{nil}
|
||||
%global gendep_perl_Compress_Raw_Zlib_debuginfo \
|
||||
%{nil}
|
||||
%global gendep_perl_Config_Perl_V \
|
||||
Requires: perl(Config) \
|
||||
Requires: perl(Exporter) \
|
||||
|
@ -213,6 +246,8 @@ Provides: perl(DB_File::BTREEINFO) \
|
|||
Provides: perl(DB_File::HASHINFO) \
|
||||
Provides: perl(DB_File::RECNOINFO) \
|
||||
%{nil}
|
||||
%global gendep_perl_DB_File_debuginfo \
|
||||
%{nil}
|
||||
%global gendep_perl_Data_Dumper \
|
||||
Requires: perl(:VERSION) >= 5.6.0 \
|
||||
Requires: perl(Carp) \
|
||||
|
@ -220,6 +255,8 @@ Requires: perl(Exporter) \
|
|||
Requires: perl(constant) \
|
||||
Provides: perl(Data::Dumper) = 2.167 \
|
||||
%{nil}
|
||||
%global gendep_perl_Data_Dumper_debuginfo \
|
||||
%{nil}
|
||||
%global gendep_perl_Devel_PPPort \
|
||||
Requires: perl(strict) \
|
||||
Requires: perl(vars) \
|
||||
|
@ -230,6 +267,8 @@ Requires: perl(Exporter) \
|
|||
Requires: perl(XSLoader) \
|
||||
Provides: perl(Devel::Peek) = 1.26 \
|
||||
%{nil}
|
||||
%global gendep_perl_Devel_Peek_debuginfo \
|
||||
%{nil}
|
||||
%global gendep_perl_Devel_SelfStubber \
|
||||
Requires: perl(File::Spec) \
|
||||
Requires: perl(SelfLoader) \
|
||||
|
@ -251,6 +290,8 @@ Requires: perl(strict) \
|
|||
Requires: perl(vars) \
|
||||
Provides: perl(Digest::MD5) = 2.55 \
|
||||
%{nil}
|
||||
%global gendep_perl_Digest_MD5_debuginfo \
|
||||
%{nil}
|
||||
%global gendep_perl_Digest_SHA \
|
||||
Requires: perl(:VERSION) >= 5.3.0 \
|
||||
Requires: perl(DynaLoader) \
|
||||
|
@ -263,6 +304,8 @@ Requires: perl(vars) \
|
|||
Requires: perl(warnings) \
|
||||
Provides: perl(Digest::SHA) = 5.96 \
|
||||
%{nil}
|
||||
%global gendep_perl_Digest_SHA_debuginfo \
|
||||
%{nil}
|
||||
%global gendep_perl_Encode \
|
||||
Requires: perl(:VERSION) >= 5.8.0 \
|
||||
Requires: perl(:VERSION) >= 5.8.1 \
|
||||
|
@ -322,6 +365,8 @@ Provides: perl(Encode::Unicode::UTF7) = 2.8 \
|
|||
Provides: perl(Encode::XS) \
|
||||
Provides: perl(Encode::utf8) \
|
||||
%{nil}
|
||||
%global gendep_perl_Encode_debuginfo \
|
||||
%{nil}
|
||||
%global gendep_perl_Encode_devel \
|
||||
Requires: perl(Config) \
|
||||
Requires: perl(File::Find) \
|
||||
|
@ -607,6 +652,8 @@ Requires: perl(Text::Balanced) \
|
|||
Requires: perl(vars) \
|
||||
Provides: perl(Filter::Simple) = 0.93 \
|
||||
%{nil}
|
||||
%global gendep_perl_Filter_debuginfo \
|
||||
%{nil}
|
||||
%global gendep_perl_Getopt_Long \
|
||||
Requires: perl(:VERSION) >= 5.4.0 \
|
||||
Requires: perl(Exporter) \
|
||||
|
@ -626,251 +673,6 @@ Requires: perl(strict) \
|
|||
Requires: perl(warnings) \
|
||||
Provides: perl(HTTP::Tiny) = 0.070 \
|
||||
%{nil}
|
||||
%global gendep_perl_interpreter \
|
||||
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 \
|
||||
Requires: perl(:VERSION) >= 5.7.0 \
|
||||
Requires: perl(:VERSION) >= 5.7.3 \
|
||||
Requires: perl(:VERSION) >= 5.8.0 \
|
||||
Requires: perl(:VERSION) >= 5.9.1 \
|
||||
Requires: perl(:VERSION) >= 5.9.4 \
|
||||
Requires: perl(B) \
|
||||
Requires: perl(B::Concise) \
|
||||
Requires: perl(B::Op_private) \
|
||||
Requires: perl(B::Terse) \
|
||||
Requires: perl(Carp) \
|
||||
Requires: perl(Class::Struct) \
|
||||
Requires: perl(Config) \
|
||||
Requires: perl(Cwd) \
|
||||
Requires: perl(Exporter) \
|
||||
Requires: perl(ExtUtils::Constant::Base) \
|
||||
Requires: perl(ExtUtils::Constant::Utils) \
|
||||
Requires: perl(ExtUtils::Constant::XS) \
|
||||
Requires: perl(Fcntl) \
|
||||
Requires: perl(File::Basename) \
|
||||
Requires: perl(File::Path) \
|
||||
Requires: perl(File::Spec) \
|
||||
Requires: perl(File::Spec::Functions) \
|
||||
Requires: perl(I18N::LangTags) \
|
||||
Requires: perl(IO::File) \
|
||||
Requires: perl(IPC::Open3) \
|
||||
Requires: perl(Opcode) >= 1.01 \
|
||||
Requires: perl(POSIX) \
|
||||
Requires: perl(Scalar::Util) >= 1.10 \
|
||||
Requires: perl(Symbol) \
|
||||
Requires: perl(Text::Tabs) \
|
||||
Requires: perl(Text::Wrap) \
|
||||
Requires: perl(Tie::Handle) \
|
||||
Requires: perl(Tie::Hash) \
|
||||
Requires: perl(Tie::StdHandle) \
|
||||
Requires: perl(Time::tm) \
|
||||
Requires: perl(Unicode::Normalize) \
|
||||
Requires: perl(XSLoader) \
|
||||
Requires: perl(_charnames) \
|
||||
Requires: perl(bytes) \
|
||||
Requires: perl(charnames) \
|
||||
Requires: perl(constant) \
|
||||
Requires: perl(feature) \
|
||||
Requires: perl(if) \
|
||||
Requires: perl(integer) \
|
||||
Requires: perl(overload) \
|
||||
Requires: perl(parent) \
|
||||
Requires: perl(re) \
|
||||
Requires: perl(strict) \
|
||||
Requires: perl(subs) \
|
||||
Requires: perl(threads) \
|
||||
Requires: perl(threads::shared) \
|
||||
Requires: perl(unicore::Name) \
|
||||
Requires: perl(utf8) \
|
||||
Requires: perl(vars) \
|
||||
Requires: perl(warnings) \
|
||||
Requires: perl(warnings::register) \
|
||||
Provides: perl(AnyDBM_File) = 1.01 \
|
||||
Provides: perl(AutoLoader) = 5.74 \
|
||||
Provides: perl(AutoSplit) = 1.06 \
|
||||
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.026000 \
|
||||
Provides: perl(B::Showlex) = 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.026000 \
|
||||
Provides: perl(Config::Extensions) = 0.01 \
|
||||
Provides: perl(DB) = 1.08 \
|
||||
Provides: perl(DBM_Filter) = 0.06 \
|
||||
Provides: perl(DBM_Filter::compress) = 0.03 \
|
||||
Provides: perl(DBM_Filter::encode) = 0.03 \
|
||||
Provides: perl(DBM_Filter::int32) = 0.03 \
|
||||
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.42 \
|
||||
Provides: perl(EVERY::LAST) \
|
||||
Provides: perl(English) = 1.10 \
|
||||
Provides: perl(ExtUtils::Constant) = 0.23 \
|
||||
Provides: perl(ExtUtils::Constant::Base) = 0.05 \
|
||||
Provides: perl(ExtUtils::Constant::ProxySubs) = 0.08 \
|
||||
Provides: perl(ExtUtils::Constant::Utils) = 0.03 \
|
||||
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.32 \
|
||||
Provides: perl(File::DosGlob) = 1.12 \
|
||||
Provides: perl(File::Find) = 1.34 \
|
||||
Provides: perl(File::Glob) = 1.28 \
|
||||
Provides: perl(File::stat) = 1.07 \
|
||||
Provides: perl(FileCache) = 1.09 \
|
||||
Provides: perl(FileHandle) = 2.03 \
|
||||
Provides: perl(FindBin) = 1.51 \
|
||||
Provides: perl(GDBM_File) = 1.15 \
|
||||
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.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.67 \
|
||||
Provides: perl(NEXT::ACTUAL) \
|
||||
Provides: perl(NEXT::ACTUAL::DISTINCT) \
|
||||
Provides: perl(NEXT::ACTUAL::UNSEEN) \
|
||||
Provides: perl(NEXT::DISTINCT) \
|
||||
Provides: perl(NEXT::DISTINCT::ACTUAL) \
|
||||
Provides: perl(NEXT::UNSEEN) \
|
||||
Provides: perl(NEXT::UNSEEN::ACTUAL) \
|
||||
Provides: perl(Net::hostent) = 1.01 \
|
||||
Provides: perl(Net::netent) = 1.00 \
|
||||
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.39 \
|
||||
Provides: perl(POSIX) = 1.76 \
|
||||
Provides: perl(POSIX::SigAction) \
|
||||
Provides: perl(POSIX::SigRt) \
|
||||
Provides: perl(POSIX::SigSet) \
|
||||
Provides: perl(PerlIO) = 1.10 \
|
||||
Provides: perl(PerlIO::encoding) = 0.25 \
|
||||
Provides: perl(PerlIO::mmap) = 0.016 \
|
||||
Provides: perl(PerlIO::scalar) = 0.26 \
|
||||
Provides: perl(PerlIO::via) = 0.16 \
|
||||
Provides: perl(Pod::Functions) = 1.11 \
|
||||
Provides: perl(SDBM_File) = 1.14 \
|
||||
Provides: perl(Safe) = 2.40 \
|
||||
Provides: perl(Search::Dict) = 1.07 \
|
||||
Provides: perl(SelectSaver) = 1.02 \
|
||||
Provides: perl(Symbol) = 1.08 \
|
||||
Provides: perl(Sys::Hostname) = 1.20 \
|
||||
Provides: perl(Term::Complete) = 1.403 \
|
||||
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.13 \
|
||||
Provides: perl(Tie::Array) = 1.06 \
|
||||
Provides: perl(Tie::ExtraHash) \
|
||||
Provides: perl(Tie::File) = 1.02 \
|
||||
Provides: perl(Tie::File::Cache) \
|
||||
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.10 \
|
||||
Provides: perl(Tie::Memoize) = 1.1 \
|
||||
Provides: perl(Tie::RefHash) = 1.39 \
|
||||
Provides: perl(Tie::RefHash::Nestable) \
|
||||
Provides: perl(Tie::Scalar) = 1.04 \
|
||||
Provides: perl(Tie::StdArray) \
|
||||
Provides: perl(Tie::StdHandle) = 4.4 \
|
||||
Provides: perl(Tie::StdHash) \
|
||||
Provides: perl(Tie::StdScalar) \
|
||||
Provides: perl(Tie::SubstrHash) = 1.00 \
|
||||
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.68 \
|
||||
Provides: perl(User::grent) = 1.01 \
|
||||
Provides: perl(User::pwent) = 1.00 \
|
||||
Provides: perl(_charnames) = 1.44 \
|
||||
Provides: perl(arybase) = 0.12 \
|
||||
Provides: perl(attributes) = 0.29 \
|
||||
Provides: perl(autouse) = 1.11 \
|
||||
Provides: perl(base) = 2.25 \
|
||||
Provides: perl(blib) = 1.06 \
|
||||
Provides: perl(bytes) = 1.05 \
|
||||
Provides: perl(bytes_heavy.pl) \
|
||||
Provides: perl(charnames) = 1.44 \
|
||||
Provides: perl(deprecate) = 0.03 \
|
||||
Provides: perl(diagnostics) = 1.36 \
|
||||
Provides: perl(dumpvar.pl) \
|
||||
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.64 \
|
||||
Provides: perl(locale) = 1.09 \
|
||||
Provides: perl(mro) = 1.20 \
|
||||
Provides: perl(ops) = 1.02 \
|
||||
Provides: perl(overload) = 1.28 \
|
||||
Provides: perl(overload::numbers) \
|
||||
Provides: perl(overloading) = 0.02 \
|
||||
Provides: perl(perl5db.pl) \
|
||||
Provides: perl(sigtrap) = 1.08 \
|
||||
Provides: perl(sort) = 2.02 \
|
||||
Provides: perl(subs) = 1.02 \
|
||||
Provides: perl(vars) = 1.03 \
|
||||
Provides: perl(vmsish) = 1.04 \
|
||||
Provides: perl(warnings::register) = 1.04 \
|
||||
%{nil}
|
||||
%global gendep_perl_Archive_Tar \
|
||||
Requires: perl(:VERSION) >= 5.5.0 \
|
||||
Requires: perl(Archive::Tar) \
|
||||
Requires: perl(Archive::Tar::Constant) \
|
||||
Requires: perl(Archive::Tar::File) \
|
||||
Requires: perl(Carp) \
|
||||
Requires: perl(Config) \
|
||||
Requires: perl(Cwd) \
|
||||
Requires: perl(Data::Dumper) \
|
||||
Requires: perl(Exporter) \
|
||||
Requires: perl(File::Basename) \
|
||||
Requires: perl(File::Find) \
|
||||
Requires: perl(File::Path) \
|
||||
Requires: perl(File::Spec) \
|
||||
Requires: perl(File::Spec::Unix) \
|
||||
Requires: perl(Getopt::Long) \
|
||||
Requires: perl(Getopt::Std) \
|
||||
Requires: perl(IO::File) \
|
||||
Requires: perl(IO::Handle) \
|
||||
Requires: perl(IO::Zlib) \
|
||||
Requires: perl(Pod::Usage) \
|
||||
Requires: perl(constant) \
|
||||
Requires: perl(strict) \
|
||||
Requires: perl(vars) \
|
||||
Requires: perl(warnings) \
|
||||
Provides: perl(Archive::Tar) = 2.24 \
|
||||
Provides: perl(Archive::Tar::Constant) = 2.24 \
|
||||
Provides: perl(Archive::Tar::File) = 2.24 \
|
||||
%{nil}
|
||||
%global gendep_perl_IO \
|
||||
Requires: perl(:VERSION) >= 5.6.0 \
|
||||
Requires: perl(Carp) \
|
||||
|
@ -1004,6 +806,8 @@ Requires: perl(strict) \
|
|||
Requires: perl(vars) \
|
||||
Provides: perl(IO::Zlib) = 1.10 \
|
||||
%{nil}
|
||||
%global gendep_perl_IO_debuginfo \
|
||||
%{nil}
|
||||
%global gendep_perl_IPC_Cmd \
|
||||
Requires: perl(Carp) \
|
||||
Requires: perl(Exporter) \
|
||||
|
@ -1034,6 +838,8 @@ Provides: perl(IPC::SharedMem) = 2.07 \
|
|||
Provides: perl(IPC::SharedMem::stat) \
|
||||
Provides: perl(IPC::SysV) = 2.07 \
|
||||
%{nil}
|
||||
%global gendep_perl_IPC_SysV_debuginfo \
|
||||
%{nil}
|
||||
%global gendep_perl_JSON_PP \
|
||||
Requires: perl(:VERSION) >= 5.5.0 \
|
||||
Requires: perl(B) \
|
||||
|
@ -1104,6 +910,8 @@ Requires: perl(vars) \
|
|||
Provides: perl(MIME::Base64) = 3.15 \
|
||||
Provides: perl(MIME::QuotedPrint) = 3.13 \
|
||||
%{nil}
|
||||
%global gendep_perl_MIME_Base64_debuginfo \
|
||||
%{nil}
|
||||
%global gendep_perl_Math_BigInt \
|
||||
Requires: perl(:VERSION) >= 5.6.1 \
|
||||
Requires: perl(Carp) \
|
||||
|
@ -1129,6 +937,8 @@ Requires: perl(strict) \
|
|||
Requires: perl(warnings) \
|
||||
Provides: perl(Math::BigInt::FastCalc) = 0.5005 \
|
||||
%{nil}
|
||||
%global gendep_perl_Math_BigInt_FastCalc_debuginfo \
|
||||
%{nil}
|
||||
%global gendep_perl_Math_BigRat \
|
||||
Requires: perl(:VERSION) >= 5.6.0 \
|
||||
Requires: perl(Carp) \
|
||||
|
@ -1173,9 +983,9 @@ Requires: perl(strict) \
|
|||
Requires: perl(vars) \
|
||||
Requires: perl(version) \
|
||||
Requires: perl(warnings) \
|
||||
Provides: perl(Module::CoreList) = 5.20170530 \
|
||||
Provides: perl(Module::CoreList::TieHashDelta) = 5.20170530 \
|
||||
Provides: perl(Module::CoreList::Utils) = 5.20170530 \
|
||||
Provides: perl(Module::CoreList) = 5.20180414 \
|
||||
Provides: perl(Module::CoreList::TieHashDelta) = 5.20180414 \
|
||||
Provides: perl(Module::CoreList::Utils) = 5.20180414 \
|
||||
%{nil}
|
||||
%global gendep_perl_Module_CoreList_tools \
|
||||
Requires: perl(Getopt::Long) \
|
||||
|
@ -1261,6 +1071,8 @@ 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_PathTools_debuginfo \
|
||||
%{nil}
|
||||
%global gendep_perl_Perl_OSType \
|
||||
Requires: perl(Exporter) \
|
||||
Requires: perl(strict) \
|
||||
|
@ -1459,6 +1271,8 @@ Provides: perl(List::Util::XS) = 1.46 \
|
|||
Provides: perl(Scalar::Util) = 1.46 \
|
||||
Provides: perl(Sub::Util) = 1.46 \
|
||||
%{nil}
|
||||
%global gendep_perl_Scalar_List_Utils_debuginfo \
|
||||
%{nil}
|
||||
%global gendep_perl_SelfLoader \
|
||||
Requires: perl(:VERSION) >= 5.8.0 \
|
||||
Requires: perl(Exporter) \
|
||||
|
@ -1475,12 +1289,16 @@ Requires: perl(strict) \
|
|||
Requires: perl(warnings::register) \
|
||||
Provides: perl(Socket) = 2.020 \
|
||||
%{nil}
|
||||
%global gendep_perl_Socket_debuginfo \
|
||||
%{nil}
|
||||
%global gendep_perl_Storable \
|
||||
Requires: perl(Exporter) \
|
||||
Requires: perl(XSLoader) \
|
||||
Requires: perl(vars) \
|
||||
Provides: perl(Storable) = 2.62 \
|
||||
%{nil}
|
||||
%global gendep_perl_Storable_debuginfo \
|
||||
%{nil}
|
||||
%global gendep_perl_Sys_Syslog \
|
||||
Requires: perl(:VERSION) >= 5.5.0 \
|
||||
Requires: perl(Carp) \
|
||||
|
@ -1496,6 +1314,8 @@ Requires: perl(warnings) \
|
|||
Requires: perl(warnings::register) \
|
||||
Provides: perl(Sys::Syslog) = 0.35 \
|
||||
%{nil}
|
||||
%global gendep_perl_Sys_Syslog_debuginfo \
|
||||
%{nil}
|
||||
%global gendep_perl_Term_ANSIColor \
|
||||
Requires: perl(:VERSION) >= 5.6.0 \
|
||||
Requires: perl(Exporter) \
|
||||
|
@ -1764,6 +1584,8 @@ Requires: perl(Exporter) \
|
|||
Requires: perl(strict) \
|
||||
Provides: perl(Time::HiRes) = 1.9741 \
|
||||
%{nil}
|
||||
%global gendep_perl_Time_HiRes_debuginfo \
|
||||
%{nil}
|
||||
%global gendep_perl_Time_Local \
|
||||
Requires: perl(Carp) \
|
||||
Requires: perl(Exporter) \
|
||||
|
@ -1785,6 +1607,8 @@ Requires: perl(strict) \
|
|||
Provides: perl(Time::Piece) = 1.31 \
|
||||
Provides: perl(Time::Seconds) = 1.31 \
|
||||
%{nil}
|
||||
%global gendep_perl_Time_Piece_debuginfo \
|
||||
%{nil}
|
||||
%global gendep_perl_Unicode_Collate \
|
||||
Requires: perl(:VERSION) >= 5.6.0 \
|
||||
Requires: perl(Carp) \
|
||||
|
@ -1805,6 +1629,8 @@ 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_Collate_debuginfo \
|
||||
%{nil}
|
||||
%global gendep_perl_Unicode_Normalize \
|
||||
Requires: perl(:VERSION) >= 5.6.0 \
|
||||
Requires: perl(Carp) \
|
||||
|
@ -1814,6 +1640,8 @@ Requires: perl(strict) \
|
|||
Requires: perl(warnings) \
|
||||
Provides: perl(Unicode::Normalize) = 1.25 \
|
||||
%{nil}
|
||||
%global gendep_perl_Unicode_Normalize_debuginfo \
|
||||
%{nil}
|
||||
%global gendep_perl_autodie \
|
||||
Requires: perl(:VERSION) >= 5.8.0 \
|
||||
Requires: perl(Carp) \
|
||||
|
@ -1866,6 +1694,8 @@ Provides: perl(constant) = 1.33 \
|
|||
%{nil}
|
||||
%global gendep_perl_debuginfo \
|
||||
%{nil}
|
||||
%global gendep_perl_debugsource \
|
||||
%{nil}
|
||||
%global gendep_perl_devel \
|
||||
Requires: perl(Config) \
|
||||
Requires: perl(ExtUtils::Constant) \
|
||||
|
@ -1894,6 +1724,224 @@ Requires: perl(version) \
|
|||
Requires: perl(warnings) \
|
||||
Provides: perl(experimental) = 0.016 \
|
||||
%{nil}
|
||||
%global gendep_perl_interpreter \
|
||||
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 \
|
||||
Requires: perl(:VERSION) >= 5.7.0 \
|
||||
Requires: perl(:VERSION) >= 5.7.3 \
|
||||
Requires: perl(:VERSION) >= 5.8.0 \
|
||||
Requires: perl(:VERSION) >= 5.9.1 \
|
||||
Requires: perl(:VERSION) >= 5.9.4 \
|
||||
Requires: perl(B) \
|
||||
Requires: perl(B::Concise) \
|
||||
Requires: perl(B::Op_private) \
|
||||
Requires: perl(B::Terse) \
|
||||
Requires: perl(Carp) \
|
||||
Requires: perl(Class::Struct) \
|
||||
Requires: perl(Config) \
|
||||
Requires: perl(Cwd) \
|
||||
Requires: perl(Exporter) \
|
||||
Requires: perl(ExtUtils::Constant::Base) \
|
||||
Requires: perl(ExtUtils::Constant::Utils) \
|
||||
Requires: perl(ExtUtils::Constant::XS) \
|
||||
Requires: perl(Fcntl) \
|
||||
Requires: perl(File::Basename) \
|
||||
Requires: perl(File::Path) \
|
||||
Requires: perl(File::Spec) \
|
||||
Requires: perl(File::Spec::Functions) \
|
||||
Requires: perl(I18N::LangTags) \
|
||||
Requires: perl(IO::File) \
|
||||
Requires: perl(IPC::Open3) \
|
||||
Requires: perl(Opcode) >= 1.01 \
|
||||
Requires: perl(POSIX) \
|
||||
Requires: perl(Scalar::Util) >= 1.10 \
|
||||
Requires: perl(Symbol) \
|
||||
Requires: perl(Text::Tabs) \
|
||||
Requires: perl(Text::Wrap) \
|
||||
Requires: perl(Tie::Handle) \
|
||||
Requires: perl(Tie::Hash) \
|
||||
Requires: perl(Tie::StdHandle) \
|
||||
Requires: perl(Time::tm) \
|
||||
Requires: perl(Unicode::Normalize) \
|
||||
Requires: perl(XSLoader) \
|
||||
Requires: perl(_charnames) \
|
||||
Requires: perl(bytes) \
|
||||
Requires: perl(charnames) \
|
||||
Requires: perl(constant) \
|
||||
Requires: perl(feature) \
|
||||
Requires: perl(if) \
|
||||
Requires: perl(integer) \
|
||||
Requires: perl(overload) \
|
||||
Requires: perl(parent) \
|
||||
Requires: perl(re) \
|
||||
Requires: perl(strict) \
|
||||
Requires: perl(subs) \
|
||||
Requires: perl(threads) \
|
||||
Requires: perl(threads::shared) \
|
||||
Requires: perl(unicore::Name) \
|
||||
Requires: perl(utf8) \
|
||||
Requires: perl(vars) \
|
||||
Requires: perl(warnings) \
|
||||
Requires: perl(warnings::register) \
|
||||
Provides: perl(AnyDBM_File) = 1.01 \
|
||||
Provides: perl(AutoLoader) = 5.74 \
|
||||
Provides: perl(AutoSplit) = 1.06 \
|
||||
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.026002 \
|
||||
Provides: perl(B::Showlex) = 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.026002 \
|
||||
Provides: perl(Config::Extensions) = 0.01 \
|
||||
Provides: perl(DB) = 1.08 \
|
||||
Provides: perl(DBM_Filter) = 0.06 \
|
||||
Provides: perl(DBM_Filter::compress) = 0.03 \
|
||||
Provides: perl(DBM_Filter::encode) = 0.03 \
|
||||
Provides: perl(DBM_Filter::int32) = 0.03 \
|
||||
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.42 \
|
||||
Provides: perl(EVERY::LAST) \
|
||||
Provides: perl(English) = 1.10 \
|
||||
Provides: perl(ExtUtils::Constant) = 0.23 \
|
||||
Provides: perl(ExtUtils::Constant::Base) = 0.05 \
|
||||
Provides: perl(ExtUtils::Constant::ProxySubs) = 0.08 \
|
||||
Provides: perl(ExtUtils::Constant::Utils) = 0.03 \
|
||||
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.32 \
|
||||
Provides: perl(File::DosGlob) = 1.12 \
|
||||
Provides: perl(File::Find) = 1.34 \
|
||||
Provides: perl(File::Glob) = 1.28 \
|
||||
Provides: perl(File::stat) = 1.07 \
|
||||
Provides: perl(FileCache) = 1.09 \
|
||||
Provides: perl(FileHandle) = 2.03 \
|
||||
Provides: perl(FindBin) = 1.51 \
|
||||
Provides: perl(GDBM_File) = 1.15 \
|
||||
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.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.67 \
|
||||
Provides: perl(NEXT::ACTUAL) \
|
||||
Provides: perl(NEXT::ACTUAL::DISTINCT) \
|
||||
Provides: perl(NEXT::ACTUAL::UNSEEN) \
|
||||
Provides: perl(NEXT::DISTINCT) \
|
||||
Provides: perl(NEXT::DISTINCT::ACTUAL) \
|
||||
Provides: perl(NEXT::UNSEEN) \
|
||||
Provides: perl(NEXT::UNSEEN::ACTUAL) \
|
||||
Provides: perl(Net::hostent) = 1.01 \
|
||||
Provides: perl(Net::netent) = 1.00 \
|
||||
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.39 \
|
||||
Provides: perl(POSIX) = 1.76 \
|
||||
Provides: perl(POSIX::SigAction) \
|
||||
Provides: perl(POSIX::SigRt) \
|
||||
Provides: perl(POSIX::SigSet) \
|
||||
Provides: perl(PerlIO) = 1.10 \
|
||||
Provides: perl(PerlIO::encoding) = 0.25 \
|
||||
Provides: perl(PerlIO::mmap) = 0.016 \
|
||||
Provides: perl(PerlIO::scalar) = 0.26 \
|
||||
Provides: perl(PerlIO::via) = 0.17 \
|
||||
Provides: perl(Pod::Functions) = 1.11 \
|
||||
Provides: perl(SDBM_File) = 1.14 \
|
||||
Provides: perl(Safe) = 2.40 \
|
||||
Provides: perl(Search::Dict) = 1.07 \
|
||||
Provides: perl(SelectSaver) = 1.02 \
|
||||
Provides: perl(Symbol) = 1.08 \
|
||||
Provides: perl(Sys::Hostname) = 1.20 \
|
||||
Provides: perl(Term::Complete) = 1.403 \
|
||||
Provides: perl(Term::ReadLine) = 1.17 \
|
||||
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.13 \
|
||||
Provides: perl(Tie::Array) = 1.06 \
|
||||
Provides: perl(Tie::ExtraHash) \
|
||||
Provides: perl(Tie::File) = 1.02 \
|
||||
Provides: perl(Tie::File::Cache) \
|
||||
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.10 \
|
||||
Provides: perl(Tie::Memoize) = 1.1 \
|
||||
Provides: perl(Tie::RefHash) = 1.39 \
|
||||
Provides: perl(Tie::RefHash::Nestable) \
|
||||
Provides: perl(Tie::Scalar) = 1.04 \
|
||||
Provides: perl(Tie::StdArray) \
|
||||
Provides: perl(Tie::StdHandle) = 4.4 \
|
||||
Provides: perl(Tie::StdHash) \
|
||||
Provides: perl(Tie::StdScalar) \
|
||||
Provides: perl(Tie::SubstrHash) = 1.00 \
|
||||
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.69 \
|
||||
Provides: perl(User::grent) = 1.01 \
|
||||
Provides: perl(User::pwent) = 1.00 \
|
||||
Provides: perl(_charnames) = 1.45 \
|
||||
Provides: perl(arybase) = 0.12 \
|
||||
Provides: perl(attributes) = 0.29 \
|
||||
Provides: perl(autouse) = 1.11 \
|
||||
Provides: perl(base) = 2.26 \
|
||||
Provides: perl(blib) = 1.06 \
|
||||
Provides: perl(bytes) = 1.05 \
|
||||
Provides: perl(bytes_heavy.pl) \
|
||||
Provides: perl(charnames) = 1.45 \
|
||||
Provides: perl(deprecate) = 0.03 \
|
||||
Provides: perl(diagnostics) = 1.36 \
|
||||
Provides: perl(dumpvar.pl) \
|
||||
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.64 \
|
||||
Provides: perl(locale) = 1.09 \
|
||||
Provides: perl(mro) = 1.20 \
|
||||
Provides: perl(ops) = 1.02 \
|
||||
Provides: perl(overload) = 1.28 \
|
||||
Provides: perl(overload::numbers) \
|
||||
Provides: perl(overloading) = 0.02 \
|
||||
Provides: perl(perl5db.pl) \
|
||||
Provides: perl(sigtrap) = 1.08 \
|
||||
Provides: perl(sort) = 2.02 \
|
||||
Provides: perl(subs) = 1.02 \
|
||||
Provides: perl(vars) = 1.03 \
|
||||
Provides: perl(vmsish) = 1.04 \
|
||||
Provides: perl(warnings::register) = 1.04 \
|
||||
%{nil}
|
||||
%global gendep_perl_interpreter_debuginfo \
|
||||
%{nil}
|
||||
%global gendep_perl_libnet \
|
||||
Requires: perl(:VERSION) >= 5.8.1 \
|
||||
Requires: perl(Carp) \
|
||||
|
@ -1944,10 +1992,11 @@ Requires: perl(vars) \
|
|||
Requires: perl(integer) \
|
||||
Requires: perl(strict) \
|
||||
Requires: perl(warnings) \
|
||||
Provides: perl(:MODULE_COMPAT_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(:MODULE_COMPAT_5.26.1) \
|
||||
Provides: perl(:MODULE_COMPAT_5.26.2) \
|
||||
Provides: perl(:VERSION) = 5.26.2 \
|
||||
Provides: perl(:WITH_64BIT) \
|
||||
Provides: perl(:WITH_ITHREADS) \
|
||||
Provides: perl(:WITH_LARGEFILES) \
|
||||
Provides: perl(:WITH_PERLIO) \
|
||||
|
@ -1961,6 +2010,8 @@ Provides: perl(utf8) = 1.19 \
|
|||
Provides: perl(utf8_heavy.pl) \
|
||||
Provides: perl(warnings) = 1.37 \
|
||||
%{nil}
|
||||
%global gendep_perl_libs_debuginfo \
|
||||
%{nil}
|
||||
%global gendep_perl_macros \
|
||||
%{nil}
|
||||
%global gendep_perl_open \
|
||||
|
@ -2013,6 +2064,8 @@ Requires: perl(strict) \
|
|||
Requires: perl(warnings) \
|
||||
Provides: perl(threads) = 2.15 \
|
||||
%{nil}
|
||||
%global gendep_perl_threads_debuginfo \
|
||||
%{nil}
|
||||
%global gendep_perl_threads_shared \
|
||||
Requires: perl(:VERSION) >= 5.8.0 \
|
||||
Requires: perl(Scalar::Util) \
|
||||
|
@ -2020,6 +2073,8 @@ Requires: perl(strict) \
|
|||
Requires: perl(warnings) \
|
||||
Provides: perl(threads::shared) = 1.56 \
|
||||
%{nil}
|
||||
%global gendep_perl_threads_shared_debuginfo \
|
||||
%{nil}
|
||||
%global gendep_perl_utils \
|
||||
Requires: perl(:VERSION) >= 5.9.1 \
|
||||
Requires: perl(Carp) \
|
||||
|
|
|
@ -1,69 +0,0 @@
|
|||
From af6344c9702b589162d8672ae24130231698acae Mon Sep 17 00:00:00 2001
|
||||
From: Yves Orton <demerphq@gmail.com>
|
||||
Date: Sun, 10 Sep 2017 10:59:05 +0200
|
||||
Subject: [PATCH] fix #132017 - OPFAIL insert needs to set flags to 0
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
why reginsert doesnt do this stuff I dont know.
|
||||
|
||||
Petr Písař: Ported to 5.26.1.
|
||||
|
||||
Signed-off-by: Petr Písař <ppisar@redhat.com>
|
||||
---
|
||||
regcomp.c | 6 +++++-
|
||||
t/re/pat.t | 5 ++++-
|
||||
2 files changed, 9 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/regcomp.c b/regcomp.c
|
||||
index b2de7f0..1df3df8 100644
|
||||
--- a/regcomp.c
|
||||
+++ b/regcomp.c
|
||||
@@ -11724,6 +11724,7 @@ S_regpiece(pTHX_ RExC_state_t *pRExC_state, I32 *flagp, U32 depth)
|
||||
if (max < min) { /* If can't match, warn and optimize to fail
|
||||
unconditionally */
|
||||
reginsert(pRExC_state, OPFAIL, orig_emit, depth+1);
|
||||
+ orig_emit->flags = 0;
|
||||
if (PASS2) {
|
||||
ckWARNreg(RExC_parse, "Quantifier {n,m} with n > m can't match");
|
||||
NEXT_OFF(orig_emit)= regarglen[OPFAIL] + NODE_STEP_REGNODE;
|
||||
@@ -19343,8 +19344,11 @@ Perl_regprop(pTHX_ const regexp *prog, SV *sv, const regnode *o, const regmatch_
|
||||
|
||||
/* add on the verb argument if there is one */
|
||||
if ( ( k == VERB || OP(o) == ACCEPT || OP(o) == OPFAIL ) && o->flags) {
|
||||
- Perl_sv_catpvf(aTHX_ sv, ":%" SVf,
|
||||
+ if ( ARG(o) )
|
||||
+ Perl_sv_catpvf(aTHX_ sv, ":%" SVf,
|
||||
SVfARG((MUTABLE_SV(progi->data->data[ ARG( o ) ]))));
|
||||
+ else
|
||||
+ sv_catpvs(sv, ":NULL");
|
||||
}
|
||||
#else
|
||||
PERL_UNUSED_CONTEXT;
|
||||
diff --git a/t/re/pat.t b/t/re/pat.t
|
||||
index 2510eab..dda2a5a 100644
|
||||
--- a/t/re/pat.t
|
||||
+++ b/t/re/pat.t
|
||||
@@ -23,7 +23,7 @@ BEGIN {
|
||||
skip_all('no re module') unless defined &DynaLoader::boot_DynaLoader;
|
||||
skip_all_without_unicode_tables();
|
||||
|
||||
-plan tests => 838; # Update this when adding/deleting tests.
|
||||
+plan tests => 839; # Update this when adding/deleting tests.
|
||||
|
||||
run_tests() unless caller;
|
||||
|
||||
@@ -1921,6 +1921,9 @@ EOP
|
||||
pos($text) = 3;
|
||||
ok(scalar($text !~ m{(~*=[a-z]=)}g), "RT #131575");
|
||||
}
|
||||
+ {
|
||||
+ fresh_perl_is('"AA" =~ m/AA{1,0}/','',{},"handle OPFAIL insert properly");
|
||||
+ }
|
||||
|
||||
} # End of sub run_tests
|
||||
|
||||
--
|
||||
2.13.6
|
||||
|
|
@ -0,0 +1,105 @@
|
|||
From dc1f8f6b581a8e4efbb782398ab3e7c3a52b062f Mon Sep 17 00:00:00 2001
|
||||
From: Karl Williamson <khw@cpan.org>
|
||||
Date: Tue, 8 May 2018 12:13:18 -0600
|
||||
Subject: [PATCH] PATCH: [perl #133185] Infinite loop in qr//
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
This loop was inadvertently introduced as part of patches to fix
|
||||
(perl #132227 CVE-2018-6797] heap-buffer-overflow". The commit in 5.27
|
||||
responsible was f8fb8615ddc5a80e3bbd4386a8914497f921b62d.
|
||||
|
||||
To be vulnerable, the pattern must start out as /d (hence no use 5.012
|
||||
or higher), and then there must be something that implicitly forces /u
|
||||
(which the \pp does in the test case added by this patch), and then
|
||||
(?aa), and then the code point \xDF. (German Sharp S). The /i must be
|
||||
in effect by the time the DF is encountered, but it needn't come in the
|
||||
(?aa) which the test does.
|
||||
|
||||
The problem is that the conditional that is testing that we switched
|
||||
away from /d rules is assuming that this happened during the
|
||||
construction of the current EXACTFish node. The comments I wrote
|
||||
indicate this assumption. But this example shows that the switch can
|
||||
come before this node started getting constructed, and so it loops.
|
||||
|
||||
The patch explicitly saves the state at the beginning of this node's
|
||||
construction, and only retries if it changed during that construction.
|
||||
Therefore the next time through, it will see that it hasn't changed
|
||||
since the previous time, and won't loop.
|
||||
|
||||
Petr Písař: Ported to 5.26.2 from:
|
||||
|
||||
commit 0b9cb33b146b3eb55634853f883a880771dd1413
|
||||
Author: Karl Williamson <khw@cpan.org>
|
||||
Date: Tue May 8 12:13:18 2018 -0600
|
||||
|
||||
PATCH: [perl #133185] Infinite loop in qr//
|
||||
|
||||
Signed-off-by: Petr Písař <ppisar@redhat.com>
|
||||
---
|
||||
regcomp.c | 10 +++++++++-
|
||||
t/re/speed.t | 5 ++++-
|
||||
2 files changed, 13 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/regcomp.c b/regcomp.c
|
||||
index 845e660..18fa465 100644
|
||||
--- a/regcomp.c
|
||||
+++ b/regcomp.c
|
||||
@@ -13100,6 +13100,10 @@ S_regatom(pTHX_ RExC_state_t *pRExC_state, I32 *flagp, U32 depth)
|
||||
bool maybe_exactfu = PASS2
|
||||
&& (node_type == EXACTF || node_type == EXACTFL);
|
||||
|
||||
+ /* To see if RExC_uni_semantics changes during parsing of the node.
|
||||
+ * */
|
||||
+ bool uni_semantics_at_node_start;
|
||||
+
|
||||
/* If a folding node contains only code points that don't
|
||||
* participate in folds, it can be changed into an EXACT node,
|
||||
* which allows the optimizer more things to look for */
|
||||
@@ -13147,6 +13151,8 @@ S_regatom(pTHX_ RExC_state_t *pRExC_state, I32 *flagp, U32 depth)
|
||||
|| UTF8_IS_INVARIANT(UCHARAT(RExC_parse))
|
||||
|| UTF8_IS_START(UCHARAT(RExC_parse)));
|
||||
|
||||
+ uni_semantics_at_node_start = RExC_uni_semantics;
|
||||
+
|
||||
/* Here, we have a literal character. Find the maximal string of
|
||||
* them in the input that we can fit into a single EXACTish node.
|
||||
* We quit at the first non-literal or when the node gets full */
|
||||
@@ -13550,7 +13556,9 @@ S_regatom(pTHX_ RExC_state_t *pRExC_state, I32 *flagp, U32 depth)
|
||||
* didn't think it needed to reparse. But this
|
||||
* sharp s now does indicate the need for
|
||||
* reparsing. */
|
||||
- if (RExC_uni_semantics) {
|
||||
+ if ( uni_semantics_at_node_start
|
||||
+ != RExC_uni_semantics)
|
||||
+ {
|
||||
p = oldp;
|
||||
goto loopdone;
|
||||
}
|
||||
diff --git a/t/re/speed.t b/t/re/speed.t
|
||||
index 4a4830f..9a57de1 100644
|
||||
--- a/t/re/speed.t
|
||||
+++ b/t/re/speed.t
|
||||
@@ -24,7 +24,7 @@ BEGIN {
|
||||
skip_all('no re module') unless defined &DynaLoader::boot_DynaLoader;
|
||||
skip_all_without_unicode_tables();
|
||||
|
||||
-plan tests => 58; #** update watchdog timeouts proportionally when adding tests
|
||||
+plan tests => 59; #** update watchdog timeouts proportionally when adding tests
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
@@ -156,6 +156,9 @@ PROG
|
||||
ok( $elapsed <= 1, "should not COW on long string with substr and m//g");
|
||||
}
|
||||
|
||||
+ # [perl #133185] Infinite loop
|
||||
+ like("!\xdf", eval 'qr/\pp(?aai)\xdf/',
|
||||
+ 'Compiling qr/\pp(?aai)\xdf/ doesn\'t loop');
|
||||
|
||||
} # End of sub run_tests
|
||||
|
||||
--
|
||||
2.14.3
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
From 4f08ed80a1ad3deb06ce5d8d20cc2d176dcbced0 Mon Sep 17 00:00:00 2001
|
||||
From 07ebe9c4fb1028d17e61caabe8c15abd0cd48983 Mon Sep 17 00:00:00 2001
|
||||
From: Yves Orton <demerphq@gmail.com>
|
||||
Date: Thu, 29 Jun 2017 11:31:14 +0200
|
||||
Subject: [PATCH] Parse caret vars with subscripts the same as normal vars
|
||||
|
@ -16,6 +16,8 @@ which Sawyer then ruled was a bug.
|
|||
So this patch makes "${^CAPTURE[0]}" (and "${^CAPTURE [0]}" [hi
|
||||
abigial]) work the same as they would if the var was called @foo.
|
||||
|
||||
Petr Písař: Ported to 5.26.2-RC1.
|
||||
|
||||
Signed-off-by: Petr Písař <ppisar@redhat.com>
|
||||
---
|
||||
t/base/lex.t | 28 +++++++++++++++++++++++++++-
|
||||
|
@ -23,14 +25,14 @@ Signed-off-by: Petr Písař <ppisar@redhat.com>
|
|||
2 files changed, 52 insertions(+), 22 deletions(-)
|
||||
|
||||
diff --git a/t/base/lex.t b/t/base/lex.t
|
||||
index e154aca..89d46df 100644
|
||||
index 99fd3bb..ae17bbd 100644
|
||||
--- a/t/base/lex.t
|
||||
+++ b/t/base/lex.t
|
||||
@@ -1,6 +1,6 @@
|
||||
#!./perl
|
||||
|
||||
-print "1..109\n";
|
||||
+print "1..116\n";
|
||||
-print "1..112\n";
|
||||
+print "1..119\n";
|
||||
|
||||
$x = 'x';
|
||||
|
||||
|
@ -68,10 +70,10 @@ index e154aca..89d46df 100644
|
|||
# Now let's make sure that caret variables are all forced into the main package.
|
||||
package Someother;
|
||||
diff --git a/toke.c b/toke.c
|
||||
index 0dcf623..ace92e3 100644
|
||||
index ee9c464..aff785b 100644
|
||||
--- a/toke.c
|
||||
+++ b/toke.c
|
||||
@@ -9352,19 +9352,36 @@ S_scan_ident(pTHX_ char *s, char *dest, STRLEN destlen, I32 ck_uni)
|
||||
@@ -9416,19 +9416,36 @@ S_scan_ident(pTHX_ char *s, char *dest, STRLEN destlen, I32 ck_uni)
|
||||
bool skip;
|
||||
char *s2;
|
||||
/* If we were processing {...} notation then... */
|
||||
|
@ -116,7 +118,7 @@ index 0dcf623..ace92e3 100644
|
|||
if (ckWARN(WARN_AMBIGUOUS) && keyword(dest, d - dest, 0)) {
|
||||
const char * const brack =
|
||||
(const char *)
|
||||
@@ -9383,19 +9400,6 @@ S_scan_ident(pTHX_ char *s, char *dest, STRLEN destlen, I32 ck_uni)
|
||||
@@ -9447,19 +9464,6 @@ S_scan_ident(pTHX_ char *s, char *dest, STRLEN destlen, I32 ck_uni)
|
||||
return s;
|
||||
}
|
||||
}
|
||||
|
@ -137,5 +139,5 @@ index 0dcf623..ace92e3 100644
|
|||
if ( !tmp_copline )
|
||||
tmp_copline = CopLINE(PL_curcop);
|
||||
--
|
||||
2.9.4
|
||||
2.14.3
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
From 9b7d3fdf8458e3581b4fb3a6c557b4db4e1f31e8 Mon Sep 17 00:00:00 2001
|
||||
From edea384e57453b0a62de58445eed1fded18c1cca Mon Sep 17 00:00:00 2001
|
||||
From: Yves Orton <demerphq@gmail.com>
|
||||
Date: Thu, 29 Jun 2017 13:20:49 +0200
|
||||
Subject: [PATCH] add an additional test for whitespace tolerance in caret
|
||||
|
@ -7,20 +7,22 @@ MIME-Version: 1.0
|
|||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Petr Písař: Ported to 5.26.2-RC1.
|
||||
|
||||
Signed-off-by: Petr Písař <ppisar@redhat.com>
|
||||
---
|
||||
t/base/lex.t | 7 +++++--
|
||||
1 file changed, 5 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/t/base/lex.t b/t/base/lex.t
|
||||
index 89d46df..de33e7a 100644
|
||||
index ae17bbd..414aa1f 100644
|
||||
--- a/t/base/lex.t
|
||||
+++ b/t/base/lex.t
|
||||
@@ -1,6 +1,6 @@
|
||||
#!./perl
|
||||
|
||||
-print "1..116\n";
|
||||
+print "1..117\n";
|
||||
-print "1..119\n";
|
||||
+print "1..120\n";
|
||||
|
||||
$x = 'x';
|
||||
|
||||
|
@ -39,5 +41,5 @@ index 89d46df..de33e7a 100644
|
|||
print "not " if "${^TEST}[0]" ne "splat[0]";
|
||||
print "ok $test\n"; $test++;
|
||||
--
|
||||
2.9.4
|
||||
2.14.3
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
From cbe3025c652289aee2f2f4145f882be5b33a27ee Mon Sep 17 00:00:00 2001
|
||||
From 3e6e57e89f298f450cbe14c61609f08fc01bf233 Mon Sep 17 00:00:00 2001
|
||||
From: Zefram <zefram@fysh.org>
|
||||
Date: Sat, 16 Dec 2017 05:33:20 +0000
|
||||
Subject: [PATCH] perform system() arg processing before fork
|
||||
|
@ -14,7 +14,7 @@ $$, and in that case it should also happen in the parent process.
|
|||
Therefore reduce the argument scalars to strings first thing in pp_system.
|
||||
Fixes [perl #121105].
|
||||
|
||||
Petr Písař: Ported to 5.26.1 from
|
||||
Petr Písař: Ported to 5.26.2-RC1 from
|
||||
64def2aeaeb63f92dadc6dfa33486c1d7b311963.
|
||||
|
||||
Signed-off-by: Petr Písař <ppisar@redhat.com>
|
||||
|
@ -53,19 +53,19 @@ index 87961f1..07e552a 100644
|
|||
}
|
||||
PERL_FLUSHALL_FOR_CHILD;
|
||||
diff --git a/t/op/exec.t b/t/op/exec.t
|
||||
index 1155439..45237e9 100644
|
||||
index 237388b..e29de82 100644
|
||||
--- a/t/op/exec.t
|
||||
+++ b/t/op/exec.t
|
||||
@@ -36,7 +36,7 @@ $ENV{LANGUAGE} = 'C'; # Ditto in GNU.
|
||||
my $Is_VMS = $^O eq 'VMS';
|
||||
my $Is_Win32 = $^O eq 'MSWin32';
|
||||
|
||||
-plan(tests => 25);
|
||||
+plan(tests => 28);
|
||||
-plan(tests => 34);
|
||||
+plan(tests => 37);
|
||||
|
||||
my $Perl = which_perl();
|
||||
|
||||
@@ -156,6 +156,19 @@ TODO: {
|
||||
@@ -177,6 +177,19 @@ TODO: {
|
||||
"exec failure doesn't terminate process");
|
||||
}
|
||||
|
||||
|
@ -86,5 +86,5 @@ index 1155439..45237e9 100644
|
|||
exec $Perl, '-le', qq{${quote}print 'ok $test - exec PROG, LIST'${quote}};
|
||||
fail("This should never be reached if the exec() worked");
|
||||
--
|
||||
2.13.6
|
||||
2.14.3
|
||||
|
|
@ -1,299 +0,0 @@
|
|||
From 99b847695211f825df6299aa9da91f9494f741e2 Mon Sep 17 00:00:00 2001
|
||||
From: Tony Cook <tony@develop-help.com>
|
||||
Date: Thu, 1 Jun 2017 15:11:27 +1000
|
||||
Subject: [PATCH] [perl #131221] improve duplication of :via handles
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Previously duplication (as with open ... ">&...") would fail
|
||||
unless the user supplied a GETARG, which wasn't documented, and
|
||||
resulted in an attempt to free and unreferened scalar if supplied.
|
||||
|
||||
Cloning on thread creation was simply broken.
|
||||
|
||||
We now handle GETARG correctly, and provide a useful default if it
|
||||
returns nothing.
|
||||
|
||||
Cloning on thread creation now duplicates the appropriate parts of the
|
||||
parent thread's handle.
|
||||
|
||||
Signed-off-by: Petr Písař <ppisar@redhat.com>
|
||||
---
|
||||
MANIFEST | 1 +
|
||||
ext/PerlIO-via/t/thread.t | 73 +++++++++++++++++++++++++++++++++++++++++++++++
|
||||
ext/PerlIO-via/t/via.t | 56 +++++++++++++++++++++++++++++++++++-
|
||||
ext/PerlIO-via/via.pm | 2 +-
|
||||
ext/PerlIO-via/via.xs | 55 +++++++++++++++++++++++++++++++----
|
||||
5 files changed, 179 insertions(+), 8 deletions(-)
|
||||
create mode 100644 ext/PerlIO-via/t/thread.t
|
||||
|
||||
diff --git a/MANIFEST b/MANIFEST
|
||||
index 8c4950e..d39f992 100644
|
||||
--- a/MANIFEST
|
||||
+++ b/MANIFEST
|
||||
@@ -4056,6 +4056,7 @@ ext/PerlIO-scalar/scalar.xs PerlIO layer for scalars
|
||||
ext/PerlIO-scalar/t/scalar.t See if PerlIO::scalar works
|
||||
ext/PerlIO-scalar/t/scalar_ungetc.t Tests for PerlIO layer for scalars
|
||||
ext/PerlIO-via/hints/aix.pl Hint for PerlIO::via for named architecture
|
||||
+ext/PerlIO-via/t/thread.t See if PerlIO::via works with threads
|
||||
ext/PerlIO-via/t/via.t See if PerlIO::via works
|
||||
ext/PerlIO-via/via.pm PerlIO layer for layers in perl
|
||||
ext/PerlIO-via/via.xs PerlIO layer for layers in perl
|
||||
diff --git a/ext/PerlIO-via/t/thread.t b/ext/PerlIO-via/t/thread.t
|
||||
new file mode 100644
|
||||
index 0000000..e4358f9
|
||||
--- /dev/null
|
||||
+++ b/ext/PerlIO-via/t/thread.t
|
||||
@@ -0,0 +1,73 @@
|
||||
+#!perl
|
||||
+BEGIN {
|
||||
+ unless (find PerlIO::Layer 'perlio') {
|
||||
+ print "1..0 # Skip: not perlio\n";
|
||||
+ exit 0;
|
||||
+ }
|
||||
+ require Config;
|
||||
+ unless ($Config::Config{'usethreads'}) {
|
||||
+ print "1..0 # Skip -- need threads for this test\n";
|
||||
+ exit 0;
|
||||
+ }
|
||||
+ if (($Config::Config{'extensions'} !~ m!\bPerlIO/via\b!) ){
|
||||
+ print "1..0 # Skip -- Perl configured without PerlIO::via module\n";
|
||||
+ exit 0;
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+use strict;
|
||||
+use warnings;
|
||||
+use threads;
|
||||
+
|
||||
+my $tmp = "via$$";
|
||||
+
|
||||
+END {
|
||||
+ 1 while unlink $tmp;
|
||||
+}
|
||||
+
|
||||
+use Test::More tests => 2;
|
||||
+
|
||||
+our $push_count = 0;
|
||||
+
|
||||
+{
|
||||
+ open my $fh, ">:via(Test1)", $tmp
|
||||
+ or die "Cannot open $tmp: $!";
|
||||
+ $fh->autoflush;
|
||||
+
|
||||
+ print $fh "AXAX";
|
||||
+
|
||||
+ # previously this would crash
|
||||
+ threads->create(
|
||||
+ sub {
|
||||
+ print $fh "XZXZ";
|
||||
+ })->join;
|
||||
+
|
||||
+ print $fh "BXBX";
|
||||
+ close $fh;
|
||||
+
|
||||
+ open my $in, "<", $tmp;
|
||||
+ my $line = <$in>;
|
||||
+ close $in;
|
||||
+
|
||||
+ is($line, "AYAYYZYZBYBY", "check thread data delivered");
|
||||
+
|
||||
+ is($push_count, 1, "PUSHED not called for dup on thread creation");
|
||||
+}
|
||||
+
|
||||
+package PerlIO::via::Test1;
|
||||
+
|
||||
+sub PUSHED {
|
||||
+ my ($class) = @_;
|
||||
+ ++$main::push_count;
|
||||
+ bless {}, $class;
|
||||
+}
|
||||
+
|
||||
+sub WRITE {
|
||||
+ my ($self, $data, $fh) = @_;
|
||||
+ $data =~ tr/X/Y/;
|
||||
+ $fh->autoflush;
|
||||
+ print $fh $data;
|
||||
+ return length $data;
|
||||
+}
|
||||
+
|
||||
+
|
||||
diff --git a/ext/PerlIO-via/t/via.t b/ext/PerlIO-via/t/via.t
|
||||
index 6787e11..80577df 100644
|
||||
--- a/ext/PerlIO-via/t/via.t
|
||||
+++ b/ext/PerlIO-via/t/via.t
|
||||
@@ -17,7 +17,7 @@ use warnings;
|
||||
|
||||
my $tmp = "via$$";
|
||||
|
||||
-use Test::More tests => 18;
|
||||
+use Test::More tests => 26;
|
||||
|
||||
my $fh;
|
||||
my $a = join("", map { chr } 0..255) x 10;
|
||||
@@ -84,6 +84,60 @@ is( $obj, 'Foo', 'search for package Foo' );
|
||||
open $fh, '<:via(Bar)', "bar";
|
||||
is( $obj, 'PerlIO::via::Bar', 'search for package PerlIO::via::Bar' );
|
||||
|
||||
+{
|
||||
+ # [perl #131221]
|
||||
+ ok(open(my $fh1, ">", $tmp), "open $tmp");
|
||||
+ ok(binmode($fh1, ":via(XXX)"), "binmode :via(XXX) onto it");
|
||||
+ ok(open(my $fh2, ">&", $fh1), "dup it");
|
||||
+ close $fh1;
|
||||
+ close $fh2;
|
||||
+
|
||||
+ # make sure the old workaround still works
|
||||
+ ok(open($fh1, ">", $tmp), "open $tmp");
|
||||
+ ok(binmode($fh1, ":via(YYY)"), "binmode :via(YYY) onto it");
|
||||
+ ok(open($fh2, ">&", $fh1), "dup it");
|
||||
+ print $fh2 "XZXZ";
|
||||
+ close $fh1;
|
||||
+ close $fh2;
|
||||
+
|
||||
+ ok(open($fh1, "<", $tmp), "open $tmp for check");
|
||||
+ { local $/; $b = <$fh1> }
|
||||
+ close $fh1;
|
||||
+ is($b, "XZXZ", "check result is from non-filtering class");
|
||||
+
|
||||
+ package PerlIO::via::XXX;
|
||||
+
|
||||
+ sub PUSHED {
|
||||
+ my $class = shift;
|
||||
+ bless {}, $class;
|
||||
+ }
|
||||
+
|
||||
+ sub WRITE {
|
||||
+ my ($self, $buffer, $handle) = @_;
|
||||
+
|
||||
+ print $handle $buffer;
|
||||
+ return length($buffer);
|
||||
+ }
|
||||
+ package PerlIO::via::YYY;
|
||||
+
|
||||
+ sub PUSHED {
|
||||
+ my $class = shift;
|
||||
+ bless {}, $class;
|
||||
+ }
|
||||
+
|
||||
+ sub WRITE {
|
||||
+ my ($self, $buffer, $handle) = @_;
|
||||
+
|
||||
+ $buffer =~ tr/X/Y/;
|
||||
+ print $handle $buffer;
|
||||
+ return length($buffer);
|
||||
+ }
|
||||
+
|
||||
+ sub GETARG {
|
||||
+ "XXX";
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
END {
|
||||
1 while unlink $tmp;
|
||||
}
|
||||
diff --git a/ext/PerlIO-via/via.pm b/ext/PerlIO-via/via.pm
|
||||
index e477dcc..30083fe 100644
|
||||
--- a/ext/PerlIO-via/via.pm
|
||||
+++ b/ext/PerlIO-via/via.pm
|
||||
@@ -1,5 +1,5 @@
|
||||
package PerlIO::via;
|
||||
-our $VERSION = '0.16';
|
||||
+our $VERSION = '0.17';
|
||||
require XSLoader;
|
||||
XSLoader::load();
|
||||
1;
|
||||
diff --git a/ext/PerlIO-via/via.xs b/ext/PerlIO-via/via.xs
|
||||
index 8a7f1fc..61953c8 100644
|
||||
--- a/ext/PerlIO-via/via.xs
|
||||
+++ b/ext/PerlIO-via/via.xs
|
||||
@@ -38,6 +38,8 @@ typedef struct
|
||||
CV *UTF8;
|
||||
} PerlIOVia;
|
||||
|
||||
+static const MGVTBL PerlIOVia_tag = { 0, 0, 0, 0, 0, 0, 0, 0 };
|
||||
+
|
||||
#define MYMethod(x) #x,&s->x
|
||||
|
||||
static CV *
|
||||
@@ -131,8 +133,14 @@ PerlIOVia_pushed(pTHX_ PerlIO * f, const char *mode, SV * arg,
|
||||
PerlIO_funcs * tab)
|
||||
{
|
||||
IV code = PerlIOBase_pushed(aTHX_ f, mode, Nullsv, tab);
|
||||
+
|
||||
+ if (SvTYPE(arg) >= SVt_PVMG
|
||||
+ && mg_findext(arg, PERL_MAGIC_ext, &PerlIOVia_tag)) {
|
||||
+ return code;
|
||||
+ }
|
||||
+
|
||||
if (code == 0) {
|
||||
- PerlIOVia *s = PerlIOSelf(f, PerlIOVia);
|
||||
+ PerlIOVia *s = PerlIOSelf(f, PerlIOVia);
|
||||
if (!arg) {
|
||||
if (ckWARN(WARN_LAYER))
|
||||
Perl_warner(aTHX_ packWARN(WARN_LAYER),
|
||||
@@ -583,20 +591,55 @@ static SV *
|
||||
PerlIOVia_getarg(pTHX_ PerlIO * f, CLONE_PARAMS * param, int flags)
|
||||
{
|
||||
PerlIOVia *s = PerlIOSelf(f, PerlIOVia);
|
||||
- PERL_UNUSED_ARG(param);
|
||||
+ SV *arg;
|
||||
PERL_UNUSED_ARG(flags);
|
||||
- return PerlIOVia_method(aTHX_ f, MYMethod(GETARG), G_SCALAR, Nullsv);
|
||||
+
|
||||
+ /* During cloning, return an undef token object so that _pushed() knows
|
||||
+ * that it should not call methods and wait for _dup() to actually dup the
|
||||
+ * object. */
|
||||
+ if (param) {
|
||||
+ SV *sv = newSV(0);
|
||||
+ sv_magicext(sv, NULL, PERL_MAGIC_ext, &PerlIOVia_tag, 0, 0);
|
||||
+ return sv;
|
||||
+ }
|
||||
+
|
||||
+ arg = PerlIOVia_method(aTHX_ f, MYMethod(GETARG), G_SCALAR, Nullsv);
|
||||
+ if (arg) {
|
||||
+ /* arg is a temp, and PerlIOBase_dup() will explicitly free it */
|
||||
+ SvREFCNT_inc(arg);
|
||||
+ }
|
||||
+ else {
|
||||
+ arg = newSVpvn(HvNAME(s->stash), HvNAMELEN(s->stash));
|
||||
+ }
|
||||
+
|
||||
+ return arg;
|
||||
}
|
||||
|
||||
static PerlIO *
|
||||
PerlIOVia_dup(pTHX_ PerlIO * f, PerlIO * o, CLONE_PARAMS * param,
|
||||
int flags)
|
||||
{
|
||||
- if ((f = PerlIOBase_dup(aTHX_ f, o, param, flags))) {
|
||||
- /* Most of the fields will lazily set themselves up as needed
|
||||
- stash and obj have been set up by the implied push
|
||||
+ if ((f = PerlIOBase_dup(aTHX_ f, o, param, flags)) && param) {
|
||||
+ /* For a non-interpreter dup stash and obj have been set up
|
||||
+ by the implied push.
|
||||
+
|
||||
+ But if this is a clone for a new interpreter we need to
|
||||
+ translate the objects to their dups.
|
||||
*/
|
||||
+
|
||||
+ PerlIOVia *fs = PerlIOSelf(f, PerlIOVia);
|
||||
+ PerlIOVia *os = PerlIOSelf(o, PerlIOVia);
|
||||
+
|
||||
+ fs->obj = sv_dup_inc(os->obj, param);
|
||||
+ fs->stash = (HV*)sv_dup((SV*)os->stash, param);
|
||||
+ fs->var = sv_dup_inc(os->var, param);
|
||||
+ fs->cnt = os->cnt;
|
||||
+
|
||||
+ /* fh, io, cached CVs left as NULL, PerlIOVia_method()
|
||||
+ will reinitialize them if needed */
|
||||
}
|
||||
+ /* for a non-threaded dup fs->obj and stash should be set by _pushed() */
|
||||
+
|
||||
return f;
|
||||
}
|
||||
|
||||
--
|
||||
2.9.4
|
||||
|
|
@ -1,71 +0,0 @@
|
|||
From 7b3443d31f11c15859593e5b710c301795a6de01 Mon Sep 17 00:00:00 2001
|
||||
From: Tony Cook <tony@develop-help.com>
|
||||
Date: Thu, 8 Jun 2017 11:06:39 +1000
|
||||
Subject: [PATCH] [perl #131221] sv_dup/sv_dup_inc are only available under
|
||||
threads
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Signed-off-by: Petr Písař <ppisar@redhat.com>
|
||||
---
|
||||
ext/PerlIO-via/via.xs | 42 +++++++++++++++++++++++-------------------
|
||||
1 file changed, 23 insertions(+), 19 deletions(-)
|
||||
|
||||
diff --git a/ext/PerlIO-via/via.xs b/ext/PerlIO-via/via.xs
|
||||
index 61953c8..d91c685 100644
|
||||
--- a/ext/PerlIO-via/via.xs
|
||||
+++ b/ext/PerlIO-via/via.xs
|
||||
@@ -619,26 +619,30 @@ static PerlIO *
|
||||
PerlIOVia_dup(pTHX_ PerlIO * f, PerlIO * o, CLONE_PARAMS * param,
|
||||
int flags)
|
||||
{
|
||||
- if ((f = PerlIOBase_dup(aTHX_ f, o, param, flags)) && param) {
|
||||
- /* For a non-interpreter dup stash and obj have been set up
|
||||
- by the implied push.
|
||||
-
|
||||
- But if this is a clone for a new interpreter we need to
|
||||
- translate the objects to their dups.
|
||||
- */
|
||||
-
|
||||
- PerlIOVia *fs = PerlIOSelf(f, PerlIOVia);
|
||||
- PerlIOVia *os = PerlIOSelf(o, PerlIOVia);
|
||||
-
|
||||
- fs->obj = sv_dup_inc(os->obj, param);
|
||||
- fs->stash = (HV*)sv_dup((SV*)os->stash, param);
|
||||
- fs->var = sv_dup_inc(os->var, param);
|
||||
- fs->cnt = os->cnt;
|
||||
-
|
||||
- /* fh, io, cached CVs left as NULL, PerlIOVia_method()
|
||||
- will reinitialize them if needed */
|
||||
+ if ((f = PerlIOBase_dup(aTHX_ f, o, param, flags))) {
|
||||
+#ifdef USE_ITHREADS
|
||||
+ if (param) {
|
||||
+ /* For a non-interpreter dup stash and obj have been set up
|
||||
+ by the implied push.
|
||||
+
|
||||
+ But if this is a clone for a new interpreter we need to
|
||||
+ translate the objects to their dups.
|
||||
+ */
|
||||
+
|
||||
+ PerlIOVia *fs = PerlIOSelf(f, PerlIOVia);
|
||||
+ PerlIOVia *os = PerlIOSelf(o, PerlIOVia);
|
||||
+
|
||||
+ fs->obj = sv_dup_inc(os->obj, param);
|
||||
+ fs->stash = (HV*)sv_dup((SV*)os->stash, param);
|
||||
+ fs->var = sv_dup_inc(os->var, param);
|
||||
+ fs->cnt = os->cnt;
|
||||
+
|
||||
+ /* fh, io, cached CVs left as NULL, PerlIOVia_method()
|
||||
+ will reinitialize them if needed */
|
||||
+ }
|
||||
+#endif
|
||||
+ /* for a non-threaded dup fs->obj and stash should be set by _pushed() */
|
||||
}
|
||||
- /* for a non-threaded dup fs->obj and stash should be set by _pushed() */
|
||||
|
||||
return f;
|
||||
}
|
||||
--
|
||||
2.9.4
|
||||
|
|
@ -0,0 +1,57 @@
|
|||
From 8121278aa8fe72e9e8aca8651c7f1d4fa204ac1d Mon Sep 17 00:00:00 2001
|
||||
From: Karl Williamson <khw@cpan.org>
|
||||
Date: Mon, 2 Apr 2018 21:54:59 -0600
|
||||
Subject: [PATCH] PATCH: [perl #132167] Parse error in regex_sets
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
When popping the stack, the code inappropriately also subtracted one
|
||||
from the result. This is probably left over from an earlier change in
|
||||
the implementation. The top of the stack contained the correct value;
|
||||
subtracting was a mistake.
|
||||
|
||||
Signed-off-by: Petr Písař <ppisar@redhat.com>
|
||||
---
|
||||
regcomp.c | 2 +-
|
||||
t/re/regex_sets.t | 11 +++++++++++
|
||||
2 files changed, 12 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/regcomp.c b/regcomp.c
|
||||
index 018d5646fc..39ab260efa 100644
|
||||
--- a/regcomp.c
|
||||
+++ b/regcomp.c
|
||||
@@ -15689,7 +15689,7 @@ redo_curchar:
|
||||
* fence. Get rid of it */
|
||||
fence_ptr = av_pop(fence_stack);
|
||||
assert(fence_ptr);
|
||||
- fence = SvIV(fence_ptr) - 1;
|
||||
+ fence = SvIV(fence_ptr);
|
||||
SvREFCNT_dec_NN(fence_ptr);
|
||||
fence_ptr = NULL;
|
||||
|
||||
diff --git a/t/re/regex_sets.t b/t/re/regex_sets.t
|
||||
index e9644bd4e6..e70df81254 100644
|
||||
--- a/t/re/regex_sets.t
|
||||
+++ b/t/re/regex_sets.t
|
||||
@@ -204,6 +204,17 @@ for my $char ("٠", "٥", "٩") {
|
||||
like("a", qr/$pat/, "/$pat/ compiles and matches 'a'");
|
||||
}
|
||||
|
||||
+{ # [perl #132167]
|
||||
+ fresh_perl_is('no warnings "experimental::regex_sets";
|
||||
+ print "c" =~ qr/(?[ ( \p{Uppercase} ) + (\p{Lowercase} - ([a] + [b])) ])/;',
|
||||
+ 1, {},
|
||||
+ 'qr/(?[ ( \p{Uppercase} ) + (\p{Lowercase} - ([a] + [b])) ]) compiles and properly matches');
|
||||
+ fresh_perl_is('no warnings "experimental::regex_sets";
|
||||
+ print "b" =~ qr/(?[ ( \p{Uppercase} ) + (\p{Lowercase} - ([a] + [b])) ])/;',
|
||||
+ "", {},
|
||||
+ 'qr/(?[ ( \p{Uppercase} ) + (\p{Lowercase} - ([a] + [b])) ]) compiles and properly matches');
|
||||
+}
|
||||
+
|
||||
done_testing();
|
||||
|
||||
1;
|
||||
--
|
||||
2.14.3
|
||||
|
|
@ -0,0 +1,71 @@
|
|||
From 62e6b70574842d7f2c547d33c85c50228522f685 Mon Sep 17 00:00:00 2001
|
||||
From: Marc-Philip <marc-philip.werner@sap.com>
|
||||
Date: Sun, 8 Apr 2018 12:15:29 -0600
|
||||
Subject: [PATCH] PATCH: [perl #133074] 5.26.1: some coverity fixes
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
we have some coverity code scans here. They have found this
|
||||
uninilialized variable in pp.c and the integer overrun in toke.c.
|
||||
Though it might be possible that these are false positives (no
|
||||
reasonable control path gets there), it's good to mute the scan here to
|
||||
see the real problems easier.
|
||||
|
||||
Signed-off-by: Petr Písař <ppisar@redhat.com>
|
||||
---
|
||||
pp.c | 1 +
|
||||
toke.c | 8 ++++----
|
||||
2 files changed, 5 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/pp.c b/pp.c
|
||||
index 5524131658..d777ae4309 100644
|
||||
--- a/pp.c
|
||||
+++ b/pp.c
|
||||
@@ -3727,6 +3727,7 @@ PP(pp_ucfirst)
|
||||
if (! slen) { /* If empty */
|
||||
need = 1; /* still need a trailing NUL */
|
||||
ulen = 0;
|
||||
+ *tmpbuf = '\0';
|
||||
}
|
||||
else if (DO_UTF8(source)) { /* Is the source utf8? */
|
||||
doing_utf8 = TRUE;
|
||||
diff --git a/toke.c b/toke.c
|
||||
index 3405dc6c89..fc87252bb1 100644
|
||||
--- a/toke.c
|
||||
+++ b/toke.c
|
||||
@@ -9052,7 +9052,7 @@ S_pending_ident(pTHX)
|
||||
HEK * const stashname = HvNAME_HEK(stash);
|
||||
SV * const sym = newSVhek(stashname);
|
||||
sv_catpvs(sym, "::");
|
||||
- sv_catpvn_flags(sym, PL_tokenbuf+1, tokenbuf_len - 1, (UTF ? SV_CATUTF8 : SV_CATBYTES ));
|
||||
+ sv_catpvn_flags(sym, PL_tokenbuf+1, tokenbuf_len > 0 ? tokenbuf_len - 1 : 0, (UTF ? SV_CATUTF8 : SV_CATBYTES ));
|
||||
pl_yylval.opval = newSVOP(OP_CONST, 0, sym);
|
||||
pl_yylval.opval->op_private = OPpCONST_ENTERED;
|
||||
if (pit != '&')
|
||||
@@ -9080,7 +9080,7 @@ S_pending_ident(pTHX)
|
||||
&& PL_lex_state != LEX_NORMAL
|
||||
&& !PL_lex_brackets)
|
||||
{
|
||||
- GV *const gv = gv_fetchpvn_flags(PL_tokenbuf + 1, tokenbuf_len - 1,
|
||||
+ GV *const gv = gv_fetchpvn_flags(PL_tokenbuf + 1, tokenbuf_len > 0 ? tokenbuf_len - 1 : 0,
|
||||
( UTF ? SVf_UTF8 : 0 ) | GV_ADDMG,
|
||||
SVt_PVAV);
|
||||
if ((!gv || ((PL_tokenbuf[0] == '@') ? !GvAV(gv) : !GvHV(gv)))
|
||||
@@ -9097,11 +9097,11 @@ S_pending_ident(pTHX)
|
||||
/* build ops for a bareword */
|
||||
pl_yylval.opval = newSVOP(OP_CONST, 0,
|
||||
newSVpvn_flags(PL_tokenbuf + 1,
|
||||
- tokenbuf_len - 1,
|
||||
+ tokenbuf_len > 0 ? tokenbuf_len - 1 : 0,
|
||||
UTF ? SVf_UTF8 : 0 ));
|
||||
pl_yylval.opval->op_private = OPpCONST_ENTERED;
|
||||
if (pit != '&')
|
||||
- gv_fetchpvn_flags(PL_tokenbuf+1, tokenbuf_len - 1,
|
||||
+ gv_fetchpvn_flags(PL_tokenbuf+1, tokenbuf_len > 0 ? tokenbuf_len - 1 : 0,
|
||||
(PL_in_eval ? GV_ADDMULTI : GV_ADD)
|
||||
| ( UTF ? SVf_UTF8 : 0 ),
|
||||
((PL_tokenbuf[0] == '$') ? SVt_PV
|
||||
--
|
||||
2.14.3
|
||||
|
|
@ -1,80 +0,0 @@
|
|||
From 36000cd1c47863d8412b285701db7232dd450239 Mon Sep 17 00:00:00 2001
|
||||
From: Tony Cook <tony@develop-help.com>
|
||||
Date: Wed, 26 Jul 2017 12:04:18 +1000
|
||||
Subject: [PATCH] (perl #131793) sanely handle PL_linestart > PL_bufptr
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
In the test case, scan_ident() ends up fetching another line
|
||||
(updating PL_linestart), and since in this case we don't
|
||||
successfully parse ${identifier} s (and PL_bufptr) end up being
|
||||
before PL_linestart.
|
||||
|
||||
Signed-off-by: Petr Písař <ppisar@redhat.com>
|
||||
---
|
||||
t/comp/parser_run.t | 9 ++++++++-
|
||||
toke.c | 19 +++++++++++++++----
|
||||
2 files changed, 23 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/t/comp/parser_run.t b/t/comp/parser_run.t
|
||||
index e74644d3fb..0fca5b2800 100644
|
||||
--- a/t/comp/parser_run.t
|
||||
+++ b/t/comp/parser_run.t
|
||||
@@ -10,7 +10,7 @@ BEGIN {
|
||||
}
|
||||
|
||||
require './test.pl';
|
||||
-plan(1);
|
||||
+plan(2);
|
||||
|
||||
# [perl #130814] can reallocate lineptr while looking ahead for
|
||||
# "Missing $ on loop variable" diagnostic.
|
||||
@@ -24,5 +24,12 @@ syntax error at - line 3, near "foreach m0
|
||||
Identifier too long at - line 3.
|
||||
EXPECT
|
||||
|
||||
+fresh_perl_is(<<EOS, <<'EXPECT', {}, "linestart before bufptr");
|
||||
+\${ \xD5eeeeeeeeeeee
|
||||
+'x
|
||||
+EOS
|
||||
+Unrecognized character \xD5; marked by <-- HERE after ${ <-- HERE near column 4 at - line 1.
|
||||
+EXPECT
|
||||
+
|
||||
__END__
|
||||
# ex: set ts=8 sts=4 sw=4 et:
|
||||
diff --git a/toke.c b/toke.c
|
||||
index 6de7d09ea4..3899b729af 100644
|
||||
--- a/toke.c
|
||||
+++ b/toke.c
|
||||
@@ -5158,12 +5158,23 @@ Perl_yylex(pTHX)
|
||||
else {
|
||||
c = Perl_form(aTHX_ "\\x%02X", (unsigned char)*s);
|
||||
}
|
||||
- len = UTF ? Perl_utf8_length(aTHX_ (U8 *) PL_linestart, (U8 *) s) : (STRLEN) (s - PL_linestart);
|
||||
- if (len > UNRECOGNIZED_PRECEDE_COUNT) {
|
||||
- d = UTF ? (char *) utf8_hop_back((U8 *) s, -UNRECOGNIZED_PRECEDE_COUNT, (U8 *)PL_linestart) : s - UNRECOGNIZED_PRECEDE_COUNT;
|
||||
- } else {
|
||||
+
|
||||
+ if (s >= PL_linestart) {
|
||||
d = PL_linestart;
|
||||
}
|
||||
+ else {
|
||||
+ /* somehow (probably due to a parse failure), PL_linestart has advanced
|
||||
+ * pass PL_bufptr, get a reasonable beginning of line
|
||||
+ */
|
||||
+ d = s;
|
||||
+ while (d > SvPVX(PL_linestr) && d[-1] && d[-1] != '\n')
|
||||
+ --d;
|
||||
+ }
|
||||
+ len = UTF ? Perl_utf8_length(aTHX_ (U8 *) d, (U8 *) s) : (STRLEN) (s - d);
|
||||
+ if (len > UNRECOGNIZED_PRECEDE_COUNT) {
|
||||
+ d = UTF ? (char *) utf8_hop_back((U8 *) s, -UNRECOGNIZED_PRECEDE_COUNT, (U8 *)d) : s - UNRECOGNIZED_PRECEDE_COUNT;
|
||||
+ }
|
||||
+
|
||||
Perl_croak(aTHX_ "Unrecognized character %s; marked by <-- HERE after %" UTF8f "<-- HERE near column %d", c,
|
||||
UTF8fARG(UTF, (s - d), d),
|
||||
(int) len + 1);
|
||||
--
|
||||
2.13.6
|
||||
|
|
@ -1,152 +0,0 @@
|
|||
From d8b61909479178ddb668ad385988877d26f202f2 Mon Sep 17 00:00:00 2001
|
||||
From: James E Keenan <jkeenan@cpan.org>
|
||||
Date: Thu, 31 Aug 2017 22:57:06 -0400
|
||||
Subject: [PATCH] Term::ReadLine generates empty &STDERR files
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Revert to 2-arg open in one case.
|
||||
|
||||
If /dev/tty is inaccessible, redirecting file handles to STDERR:
|
||||
|
||||
open (my $fh, ">&STDERR))
|
||||
|
||||
... cannot be done as a 3 arg open or it'll actually try to write to that
|
||||
file.
|
||||
|
||||
Bump $Term::ReadLine::VERSION.
|
||||
Add unit test for RT #132008
|
||||
|
||||
For: RT #132008
|
||||
(cherry picked from commit e4dc68d725b19f46c6fca9423e6e7a0eaeff47f4)
|
||||
Signed-off-by: Nicolas R <atoomic@cpan.org>
|
||||
|
||||
xx
|
||||
|
||||
Signed-off-by: Petr Písař <ppisar@redhat.com>
|
||||
---
|
||||
MANIFEST | 1 +
|
||||
dist/Term-ReadLine/lib/Term/ReadLine.pm | 17 +++++++++-----
|
||||
dist/Term-ReadLine/t/ReadLine-STDERR.t | 41 +++++++++++++++++++++++++++++++++
|
||||
3 files changed, 53 insertions(+), 6 deletions(-)
|
||||
create mode 100644 dist/Term-ReadLine/t/ReadLine-STDERR.t
|
||||
|
||||
diff --git a/MANIFEST b/MANIFEST
|
||||
index ad24a2d28b..180fd4f543 100644
|
||||
--- a/MANIFEST
|
||||
+++ b/MANIFEST
|
||||
@@ -3669,6 +3669,7 @@ dist/Term-ReadLine/lib/Term/ReadLine.pm Stub readline library
|
||||
dist/Term-ReadLine/t/AE.t See if Term::ReadLine works
|
||||
dist/Term-ReadLine/t/AETk.t See if Term::ReadLine works
|
||||
dist/Term-ReadLine/t/ReadLine.t See if Term::ReadLine works
|
||||
+dist/Term-ReadLine/t/ReadLine-STDERR.t See if Term::ReadLine works
|
||||
dist/Term-ReadLine/t/Tk.t See if Term::ReadLine works
|
||||
dist/Test/lib/Test.pm A simple framework for writing test scripts
|
||||
dist/Test/t/05_about_verbose.t See if Test works
|
||||
diff --git a/dist/Term-ReadLine/lib/Term/ReadLine.pm b/dist/Term-ReadLine/lib/Term/ReadLine.pm
|
||||
index 88d5a75877..e00fb376cd 100644
|
||||
--- a/dist/Term-ReadLine/lib/Term/ReadLine.pm
|
||||
+++ b/dist/Term-ReadLine/lib/Term/ReadLine.pm
|
||||
@@ -229,12 +229,17 @@ sub readline {
|
||||
}
|
||||
sub addhistory {}
|
||||
|
||||
+# used for testing purpose
|
||||
+sub devtty { return '/dev/tty' }
|
||||
+
|
||||
sub findConsole {
|
||||
my $console;
|
||||
my $consoleOUT;
|
||||
|
||||
- if ($^O ne 'MSWin32' and -e "/dev/tty") {
|
||||
- $console = "/dev/tty";
|
||||
+ my $devtty = devtty();
|
||||
+
|
||||
+ if ($^O ne 'MSWin32' and -e $devtty) {
|
||||
+ $console = $devtty;
|
||||
} elsif ($^O eq 'MSWin32' or $^O eq 'msys' or -e "con") {
|
||||
$console = 'CONIN$';
|
||||
$consoleOUT = 'CONOUT$';
|
||||
@@ -248,7 +253,7 @@ sub findConsole {
|
||||
|
||||
$consoleOUT = $console unless defined $consoleOUT;
|
||||
$console = "&STDIN" unless defined $console;
|
||||
- if ($console eq "/dev/tty" && !open(my $fh, "<", $console)) {
|
||||
+ if ($console eq $devtty && !open(my $fh, "<", $console)) {
|
||||
$console = "&STDIN";
|
||||
undef($consoleOUT);
|
||||
}
|
||||
@@ -266,11 +271,11 @@ sub new {
|
||||
if (@_==2) {
|
||||
my($console, $consoleOUT) = $_[0]->findConsole;
|
||||
|
||||
-
|
||||
# the Windows CONIN$ needs GENERIC_WRITE mode to allow
|
||||
# a SetConsoleMode() if we end up using Term::ReadKey
|
||||
open FIN, (( $^O eq 'MSWin32' && $console eq 'CONIN$' ) ? '+<' : '<' ), $console;
|
||||
- open FOUT,'>', $consoleOUT;
|
||||
+ # RT #132008: Still need 2-arg open here
|
||||
+ open FOUT,">$consoleOUT";
|
||||
|
||||
#OUT->autoflush(1); # Conflicts with debugger?
|
||||
my $sel = select(FOUT);
|
||||
@@ -319,7 +324,7 @@ sub Features { \%features }
|
||||
|
||||
package Term::ReadLine; # So late to allow the above code be defined?
|
||||
|
||||
-our $VERSION = '1.16';
|
||||
+our $VERSION = '1.17';
|
||||
|
||||
my ($which) = exists $ENV{PERL_RL} ? split /\s+/, $ENV{PERL_RL} : undef;
|
||||
if ($which) {
|
||||
diff --git a/dist/Term-ReadLine/t/ReadLine-STDERR.t b/dist/Term-ReadLine/t/ReadLine-STDERR.t
|
||||
new file mode 100644
|
||||
index 0000000000..f7aa2df925
|
||||
--- /dev/null
|
||||
+++ b/dist/Term-ReadLine/t/ReadLine-STDERR.t
|
||||
@@ -0,0 +1,41 @@
|
||||
+#!./perl -w
|
||||
+use strict;
|
||||
+
|
||||
+use Test::More;
|
||||
+
|
||||
+## unit test for RT 132008 - https://rt.perl.org/Ticket/Display.html?id=132008
|
||||
+
|
||||
+if ( $^O eq 'MSWin32' || !-e q{/dev/tty} ) {
|
||||
+ plan skip_all => "Test not tested on windows or when /dev/tty do not exists";
|
||||
+}
|
||||
+else {
|
||||
+ plan tests => 9;
|
||||
+}
|
||||
+
|
||||
+if ( -e q[&STDERR] ) {
|
||||
+ note q[Removing existing file &STDERR];
|
||||
+ unlink q[&STDERR] or die q{Cannot remove existing file &STDERR [probably created from a previous run]};
|
||||
+}
|
||||
+
|
||||
+use_ok('Term::ReadLine');
|
||||
+can_ok( 'Term::ReadLine::Stub', qw{new devtty findConsole} );
|
||||
+
|
||||
+is( Term::ReadLine->devtty(), q{/dev/tty} );
|
||||
+my @out = Term::ReadLine::Stub::findConsole();
|
||||
+is_deeply \@out, [ q{/dev/tty}, q{/dev/tty} ], "findConsole is using /dev/tty";
|
||||
+
|
||||
+{
|
||||
+ no warnings 'redefine';
|
||||
+ my $donotexist = q[/this/should/not/exist/hopefully];
|
||||
+
|
||||
+ ok !-e $donotexist, "File $donotexist does not exist";
|
||||
+ local *Term::ReadLine::Stub::devtty = sub { $donotexist };
|
||||
+ is( Term::ReadLine->devtty(), $donotexist, "devtty mocked" );
|
||||
+
|
||||
+ my @out = Term::ReadLine::Stub::findConsole();
|
||||
+ is_deeply \@out, [ q{&STDIN}, q{&STDERR} ], "findConsole is using /dev/tty" or diag explain \@out;
|
||||
+
|
||||
+ ok !-e q[&STDERR], 'file &STDERR do not exist before Term::ReadLine call';
|
||||
+ my $tr = Term::ReadLine->new('whatever');
|
||||
+ ok !-e q[&STDERR], 'file &STDERR was not created by mistake';
|
||||
+}
|
||||
--
|
||||
2.13.6
|
||||
|
|
@ -1,73 +0,0 @@
|
|||
From 1d217c696857b2bf41d87a7e927c43d20cc556e5 Mon Sep 17 00:00:00 2001
|
||||
From: Tony Cook <tony@develop-help.com>
|
||||
Date: Tue, 19 Sep 2017 17:40:52 +1000
|
||||
Subject: [PATCH] (perl #132008) make sure the test behaves without a tty
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
The test is intended to test how Term::ReadLine behaves without a tty
|
||||
and mocks up an invalid tty.
|
||||
|
||||
Unfortunately some of the checks it does fail if the test starts without
|
||||
a tty.
|
||||
|
||||
Modified the test to handle the lack of a tty.
|
||||
|
||||
Signed-off-by: Petr Písař <ppisar@redhat.com>
|
||||
---
|
||||
dist/Term-ReadLine/t/ReadLine-STDERR.t | 22 +++++++++++++++-------
|
||||
1 file changed, 15 insertions(+), 7 deletions(-)
|
||||
|
||||
diff --git a/dist/Term-ReadLine/t/ReadLine-STDERR.t b/dist/Term-ReadLine/t/ReadLine-STDERR.t
|
||||
index f7aa2df925..2bdf799f42 100644
|
||||
--- a/dist/Term-ReadLine/t/ReadLine-STDERR.t
|
||||
+++ b/dist/Term-ReadLine/t/ReadLine-STDERR.t
|
||||
@@ -6,7 +6,7 @@ use Test::More;
|
||||
## unit test for RT 132008 - https://rt.perl.org/Ticket/Display.html?id=132008
|
||||
|
||||
if ( $^O eq 'MSWin32' || !-e q{/dev/tty} ) {
|
||||
- plan skip_all => "Test not tested on windows or when /dev/tty do not exists";
|
||||
+ plan skip_all => "Not tested on windows or when /dev/tty does not exist";
|
||||
}
|
||||
else {
|
||||
plan tests => 9;
|
||||
@@ -19,21 +19,29 @@ if ( -e q[&STDERR] ) {
|
||||
|
||||
use_ok('Term::ReadLine');
|
||||
can_ok( 'Term::ReadLine::Stub', qw{new devtty findConsole} );
|
||||
-
|
||||
-is( Term::ReadLine->devtty(), q{/dev/tty} );
|
||||
-my @out = Term::ReadLine::Stub::findConsole();
|
||||
-is_deeply \@out, [ q{/dev/tty}, q{/dev/tty} ], "findConsole is using /dev/tty";
|
||||
+is( Term::ReadLine->devtty(), q{/dev/tty}, "check sub devtty" );
|
||||
+SKIP:
|
||||
+{
|
||||
+ open my $tty, "<", Term::ReadLine->devtty()
|
||||
+ or skip "Cannot open tty", 1;
|
||||
+ -t $tty
|
||||
+ or skip "No tty found, so findConsole() won't return /dev/tty", 1;
|
||||
+ my @out = Term::ReadLine::Stub::findConsole();
|
||||
+ is_deeply \@out, [ q{/dev/tty}, q{/dev/tty} ], "findConsole is using /dev/tty";
|
||||
+}
|
||||
|
||||
{
|
||||
no warnings 'redefine';
|
||||
my $donotexist = q[/this/should/not/exist/hopefully];
|
||||
|
||||
ok !-e $donotexist, "File $donotexist does not exist";
|
||||
- local *Term::ReadLine::Stub::devtty = sub { $donotexist };
|
||||
+ # double mention to prevent warning
|
||||
+ local *Term::ReadLine::Stub::devtty =
|
||||
+ *Term::ReadLine::Stub::devtty = sub { $donotexist };
|
||||
is( Term::ReadLine->devtty(), $donotexist, "devtty mocked" );
|
||||
|
||||
my @out = Term::ReadLine::Stub::findConsole();
|
||||
- is_deeply \@out, [ q{&STDIN}, q{&STDERR} ], "findConsole is using /dev/tty" or diag explain \@out;
|
||||
+ is_deeply \@out, [ q{&STDIN}, q{&STDERR} ], "findConsole isn't using /dev/tty" or diag explain \@out;
|
||||
|
||||
ok !-e q[&STDERR], 'file &STDERR do not exist before Term::ReadLine call';
|
||||
my $tr = Term::ReadLine->new('whatever');
|
||||
--
|
||||
2.13.6
|
||||
|
|
@ -1,92 +0,0 @@
|
|||
From 57bd660029d94312ca4eb88993889d981f41b484 Mon Sep 17 00:00:00 2001
|
||||
From: Tony Cook <tony@develop-help.com>
|
||||
Date: Thu, 24 Aug 2017 15:52:33 +1000
|
||||
Subject: [PATCH] (perl #131954) don't initialize mark before a possible move
|
||||
of the stack
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Signed-off-by: Petr Písař <ppisar@redhat.com>
|
||||
---
|
||||
pp.c | 4 +++-
|
||||
t/op/list.t | 42 +++++++++++++++++++++++++++++++++++++++++-
|
||||
2 files changed, 44 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/pp.c b/pp.c
|
||||
index ae6d9c94d1..4b1ccbba80 100644
|
||||
--- a/pp.c
|
||||
+++ b/pp.c
|
||||
@@ -5104,9 +5104,11 @@ PP(pp_list)
|
||||
{
|
||||
I32 markidx = POPMARK;
|
||||
if (GIMME_V != G_ARRAY) {
|
||||
- SV **mark = PL_stack_base + markidx;
|
||||
+ /* don't initialize mark here, EXTEND() may move the stack */
|
||||
+ SV **mark;
|
||||
dSP;
|
||||
EXTEND(SP, 1); /* in case no arguments, as in @empty */
|
||||
+ mark = PL_stack_base + markidx;
|
||||
if (++MARK <= SP)
|
||||
*MARK = *SP; /* unwanted list, return last item */
|
||||
else
|
||||
diff --git a/t/op/list.t b/t/op/list.t
|
||||
index 3f9487b96f..2acb03a321 100644
|
||||
--- a/t/op/list.t
|
||||
+++ b/t/op/list.t
|
||||
@@ -6,7 +6,7 @@ BEGIN {
|
||||
set_up_inc(qw(. ../lib));
|
||||
}
|
||||
|
||||
-plan( tests => 71 );
|
||||
+plan( tests => 72 );
|
||||
|
||||
@foo = (1, 2, 3, 4);
|
||||
cmp_ok($foo[0], '==', 1, 'first elem');
|
||||
@@ -228,3 +228,43 @@ ok(($0[()[()]],1), "[perl #126193] list slice with zero indexes");
|
||||
@x;
|
||||
pass('no panic'); # panics only under DEBUGGING
|
||||
}
|
||||
+
|
||||
+fresh_perl_is(<<'EOS', "", {}, "[perl #131954] heap use after free in pp_list");
|
||||
+#!./perl
|
||||
+BEGIN {
|
||||
+my $bar = "bar";
|
||||
+
|
||||
+sub test_no_error {
|
||||
+ eval $_[0];
|
||||
+}
|
||||
+
|
||||
+test_no_error($_) for split /\n/,
|
||||
+q[ x
|
||||
+ definfoo, $bar;
|
||||
+ x
|
||||
+ x
|
||||
+ x
|
||||
+ grep((not $bar, $bar, $bar), $bar);
|
||||
+ x
|
||||
+ x
|
||||
+ x
|
||||
+ x
|
||||
+ x
|
||||
+ x
|
||||
+ x
|
||||
+ x
|
||||
+ x
|
||||
+ x
|
||||
+ x
|
||||
+ x
|
||||
+ x
|
||||
+ x
|
||||
+ x
|
||||
+ x
|
||||
+ x
|
||||
+ x
|
||||
+ x
|
||||
+ x
|
||||
+ ];
|
||||
+}
|
||||
+EOS
|
||||
--
|
||||
2.13.6
|
||||
|
|
@ -0,0 +1,127 @@
|
|||
From fed9fe5b48ccdffef9065a03c12c237cc7418de6 Mon Sep 17 00:00:00 2001
|
||||
From: Zefram <zefram@fysh.org>
|
||||
Date: Fri, 16 Feb 2018 17:20:34 +0000
|
||||
Subject: [PATCH] don't clobber file bytes in :encoding layer
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
The PerlIO::encoding layer, when used on input, was creating an SvLEN==0
|
||||
scalar pointing into the byte buffer, to pass to the ->decode method
|
||||
of the encoding object. Since the method mutates this scalar, for some
|
||||
encodings this led to mutating the byte buffer, and depending on where
|
||||
it came from that might be something visible elsewhere that should not
|
||||
be mutated. Remove the code for the SvLEN==0 scalar, instead always
|
||||
using the alternate code that would copy the bytes into a separate buffer
|
||||
owned by the scalar. Fixes [perl #132833].
|
||||
|
||||
Signed-off-by: Petr Písař <ppisar@redhat.com>
|
||||
---
|
||||
ext/PerlIO-encoding/encoding.pm | 2 +-
|
||||
ext/PerlIO-encoding/encoding.xs | 43 ++++++++++------------------------------
|
||||
ext/PerlIO-encoding/t/encoding.t | 12 ++++++++++-
|
||||
3 files changed, 22 insertions(+), 35 deletions(-)
|
||||
|
||||
diff --git a/ext/PerlIO-encoding/encoding.pm b/ext/PerlIO-encoding/encoding.pm
|
||||
index 08d2df4713..3d740b181a 100644
|
||||
--- a/ext/PerlIO-encoding/encoding.pm
|
||||
+++ b/ext/PerlIO-encoding/encoding.pm
|
||||
@@ -1,7 +1,7 @@
|
||||
package PerlIO::encoding;
|
||||
|
||||
use strict;
|
||||
-our $VERSION = '0.25';
|
||||
+our $VERSION = '0.26';
|
||||
our $DEBUG = 0;
|
||||
$DEBUG and warn __PACKAGE__, " called by ", join(", ", caller), "\n";
|
||||
|
||||
diff --git a/ext/PerlIO-encoding/encoding.xs b/ext/PerlIO-encoding/encoding.xs
|
||||
index bb4754f3d9..941d786266 100644
|
||||
--- a/ext/PerlIO-encoding/encoding.xs
|
||||
+++ b/ext/PerlIO-encoding/encoding.xs
|
||||
@@ -307,42 +307,19 @@ PerlIOEncode_fill(pTHX_ PerlIO * f)
|
||||
goto end_of_file;
|
||||
}
|
||||
}
|
||||
- if (SvCUR(e->dataSV)) {
|
||||
- /* something left over from last time - create a normal
|
||||
- SV with new data appended
|
||||
- */
|
||||
- if (use + SvCUR(e->dataSV) > e->base.bufsiz) {
|
||||
- if (e->flags & NEEDS_LINES) {
|
||||
- /* Have to grow buffer */
|
||||
- e->base.bufsiz = use + SvCUR(e->dataSV);
|
||||
- PerlIOEncode_get_base(aTHX_ f);
|
||||
- }
|
||||
- else {
|
||||
- use = e->base.bufsiz - SvCUR(e->dataSV);
|
||||
- }
|
||||
- }
|
||||
- sv_catpvn(e->dataSV,(char*)ptr,use);
|
||||
- }
|
||||
- else {
|
||||
- /* Create a "dummy" SV to represent the available data from layer below */
|
||||
- if (SvLEN(e->dataSV) && SvPVX_const(e->dataSV)) {
|
||||
- Safefree(SvPVX_mutable(e->dataSV));
|
||||
- }
|
||||
- if (use > (SSize_t)e->base.bufsiz) {
|
||||
- if (e->flags & NEEDS_LINES) {
|
||||
- /* Have to grow buffer */
|
||||
- e->base.bufsiz = use;
|
||||
- PerlIOEncode_get_base(aTHX_ f);
|
||||
- }
|
||||
- else {
|
||||
- use = e->base.bufsiz;
|
||||
+ if (!SvCUR(e->dataSV))
|
||||
+ SvPVCLEAR(e->dataSV);
|
||||
+ if (use + SvCUR(e->dataSV) > e->base.bufsiz) {
|
||||
+ if (e->flags & NEEDS_LINES) {
|
||||
+ /* Have to grow buffer */
|
||||
+ e->base.bufsiz = use + SvCUR(e->dataSV);
|
||||
+ PerlIOEncode_get_base(aTHX_ f);
|
||||
}
|
||||
+ else {
|
||||
+ use = e->base.bufsiz - SvCUR(e->dataSV);
|
||||
}
|
||||
- SvPV_set(e->dataSV, (char *) ptr);
|
||||
- SvLEN_set(e->dataSV, 0); /* Hands off sv.c - it isn't yours */
|
||||
- SvCUR_set(e->dataSV,use);
|
||||
- SvPOK_only(e->dataSV);
|
||||
}
|
||||
+ sv_catpvn(e->dataSV,(char*)ptr,use);
|
||||
SvUTF8_off(e->dataSV);
|
||||
PUSHMARK(sp);
|
||||
XPUSHs(e->enc);
|
||||
diff --git a/ext/PerlIO-encoding/t/encoding.t b/ext/PerlIO-encoding/t/encoding.t
|
||||
index 088f89ee20..41cefcb137 100644
|
||||
--- a/ext/PerlIO-encoding/t/encoding.t
|
||||
+++ b/ext/PerlIO-encoding/t/encoding.t
|
||||
@@ -16,7 +16,7 @@ BEGIN {
|
||||
require "../../t/charset_tools.pl";
|
||||
}
|
||||
|
||||
-use Test::More tests => 24;
|
||||
+use Test::More tests => 27;
|
||||
|
||||
my $grk = "grk$$";
|
||||
my $utf = "utf$$";
|
||||
@@ -231,6 +231,16 @@ is $x, "To hymn him who heard her herd herd\n",
|
||||
|
||||
} # SKIP
|
||||
|
||||
+# decoding shouldn't mutate the original bytes [perl #132833]
|
||||
+{
|
||||
+ my $b = "a\0b\0\n\0";
|
||||
+ open my $fh, "<:encoding(UTF16-LE)", \$b or die;
|
||||
+ is scalar(<$fh>), "ab\n";
|
||||
+ is $b, "a\0b\0\n\0";
|
||||
+ close $fh or die;
|
||||
+ is $b, "a\0b\0\n\0";
|
||||
+}
|
||||
+
|
||||
END {
|
||||
1 while unlink($grk, $utf, $fail1, $fail2, $russki, $threebyte);
|
||||
}
|
||||
--
|
||||
2.14.3
|
||||
|
|
@ -0,0 +1,68 @@
|
|||
From 823ba440369100de3f2693420a3887a645a57d28 Mon Sep 17 00:00:00 2001
|
||||
From: David Mitchell <davem@iabyn.com>
|
||||
Date: Wed, 7 Mar 2018 09:27:26 +0000
|
||||
Subject: [PATCH] fix line numbers in multi-line s///
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
my commit v5.25.6-230-g6432a58, "Eliminate SVrepl_EVAL and SvEVALED()",
|
||||
introduced a regression: __LINE__ no longer took account of multiple
|
||||
lines in the s///.
|
||||
|
||||
Now fixed.
|
||||
|
||||
Spotted by Abigail.
|
||||
|
||||
Signed-off-by: Petr Písař <ppisar@redhat.com>
|
||||
---
|
||||
t/re/subst.t | 12 +++++++++++-
|
||||
toke.c | 2 +-
|
||||
2 files changed, 12 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/t/re/subst.t b/t/re/subst.t
|
||||
index b9b9939b11..dd62e95ee6 100644
|
||||
--- a/t/re/subst.t
|
||||
+++ b/t/re/subst.t
|
||||
@@ -11,7 +11,7 @@ BEGIN {
|
||||
require './loc_tools.pl';
|
||||
}
|
||||
|
||||
-plan(tests => 275);
|
||||
+plan(tests => 276);
|
||||
|
||||
$_ = 'david';
|
||||
$a = s/david/rules/r;
|
||||
@@ -1163,6 +1163,16 @@ __EOF__
|
||||
pass("RT #130188");
|
||||
}
|
||||
|
||||
+# RT #131930
|
||||
+# a multi-line s/// wasn't resetting the cop_line correctly
|
||||
+{
|
||||
+ my $l0 = __LINE__;
|
||||
+ my $s = "a";
|
||||
+ $s =~ s[a]
|
||||
+ [b];
|
||||
+ my $lines = __LINE__ - $l0;
|
||||
+ is $lines, 4, "RT #131930";
|
||||
+}
|
||||
|
||||
|
||||
|
||||
diff --git a/toke.c b/toke.c
|
||||
index 9dbad98408..0ef33415c0 100644
|
||||
--- a/toke.c
|
||||
+++ b/toke.c
|
||||
@@ -9884,7 +9884,7 @@ S_scan_subst(pTHX_ char *start)
|
||||
* the NVX field indicates how many src code lines the replacement
|
||||
* spreads over */
|
||||
sv_upgrade(PL_parser->lex_sub_repl, SVt_PVNV);
|
||||
- ((XPVNV*)SvANY(PL_parser->lex_sub_repl))->xnv_u.xnv_lines = 0;
|
||||
+ ((XPVNV*)SvANY(PL_parser->lex_sub_repl))->xnv_u.xnv_lines = linediff;
|
||||
((XPVIV*)SvANY(PL_parser->lex_sub_repl))->xiv_u.xivu_eval_seen =
|
||||
cBOOL(es);
|
||||
}
|
||||
--
|
||||
2.14.3
|
||||
|
105
perl.spec
105
perl.spec
|
@ -1,4 +1,4 @@
|
|||
%global perl_version 5.26.1
|
||||
%global perl_version 5.26.2
|
||||
%global perl_epoch 4
|
||||
%global perl_arch_stem -thread-multi
|
||||
%global perl_archname %{_arch}-%{_os}%{perl_arch_stem}
|
||||
|
@ -55,7 +55,7 @@ Name: perl
|
|||
# cpan/Unicode-Collate/Collate/allkeys.txt: Unicode
|
||||
# lib/unicore: UCD
|
||||
# ext/SDBM_File/sdbm.{c,h}: Public domain
|
||||
# regexec.c, regcomp.c: HSLR
|
||||
# regexec.c, regcomp.c: HSRL
|
||||
# cpan/Locale-Maketext-Simple/lib/Locale/Maketext/Simple.pm: MIT (with
|
||||
# exception for Perl)
|
||||
# time64.c: MIT
|
||||
|
@ -81,7 +81,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: 409%{?dist}
|
||||
Release: 412%{?dist}
|
||||
Summary: Practical Extraction and Report Language
|
||||
Url: http://www.perl.org/
|
||||
Source0: http://www.cpan.org/src/5.0/perl-%{perl_version}.tar.bz2
|
||||
|
@ -146,11 +146,6 @@ Patch30: perl-5.22.1-Replace-EU-MM-dependnecy-with-EU-MM-Utils-in-IPC-Cmd
|
|||
# in upstream after 5.27.0
|
||||
Patch31: perl-5.27.0-perl-131211-fixup-File-Glob-degenerate-matching.patch
|
||||
|
||||
# Fix cloning :via handles on thread creation, RT#131221,
|
||||
# in upstream after 5.27.0
|
||||
Patch34: perl-5.27.0-perl-131221-improve-duplication-of-via-handles.patch
|
||||
Patch35: perl-5.27.0-perl-131221-sv_dup-sv_dup_inc-are-only-available-und.patch
|
||||
|
||||
# Fix glob UTF-8 flag on a glob reassignment, RT#131263,
|
||||
# in upstream after 5.27.0
|
||||
Patch36: perl-5.26.0-perl-131263-clear-the-UTF8-flag-on-a-glob-if-it-isn-.patch
|
||||
|
@ -170,8 +165,8 @@ Patch46: perl-5.26.0-t-op-hash.t-fixup-intermittently-failing-test.patch
|
|||
|
||||
# Parse caret variables with subscripts as normal variables inside ${...}
|
||||
# escaping, RT#131664, in upstream after 5.27.1
|
||||
Patch47: perl-5.27.1-Parse-caret-vars-with-subscripts-the-same-as-normal-.patch
|
||||
Patch48: perl-5.27.1-add-an-additional-test-for-whitespace-tolerance-in-c.patch
|
||||
Patch47: perl-5.26.2-RC1-Parse-caret-vars-with-subscripts-the-same-as-normal-.patch
|
||||
Patch48: perl-5.26.2-RC1-add-an-additional-test-for-whitespace-tolerance-in-c.patch
|
||||
|
||||
# Do not display too many bytes when reporting malformed UTF-8 character,
|
||||
# in upstream after 5.27.1
|
||||
|
@ -199,19 +194,9 @@ Patch56: perl-5.27.2-EU-Constant-avoid-uninit-warning.patch
|
|||
# Fix unreliable Time-HiRes tests, CPAN RT#122819, in Time-HiRes-1.9746
|
||||
Patch58: perl-5.26.0-Time-HiRes-Fix-unreliable-t-usleep.t-and-t-utime.t.patch
|
||||
|
||||
# Fix an overflow in the lexer when reading a new line, RT#131793,
|
||||
# in upstream after 5.27.2
|
||||
Patch59: perl-5.27.2-perl-131793-sanely-handle-PL_linestart-PL_bufptr.patch
|
||||
|
||||
# Fix Term::ReadLine not to create spurious &STDERR files, RT#132008,
|
||||
# in upstream after 5.27.3
|
||||
Patch60: perl-5.27.3-Term-ReadLine-generates-empty-STDERR-files.patch
|
||||
Patch61: perl-5.27.3-perl-132008-try-to-prevent-the-similar-mistakes-in-t.patch
|
||||
Patch62: perl-5.27.3-perl-132008-make-sure-the-test-behaves-without-a-tty.patch
|
||||
|
||||
# Fix a crash when a match for inversely repeated group fails, RT#132017,
|
||||
# in upstream after 5.27.3
|
||||
Patch63: perl-5.26.1-fix-132017-OPFAIL-insert-needs-to-set-flags-to-0.patch
|
||||
|
||||
# Fix an overflow when parsing a character range with no preceding character,
|
||||
# RT#132245, in upstream after 5.27.5
|
||||
|
@ -249,7 +234,7 @@ Patch72: perl-5.27.5-fix-tainting-of-s-with-overloaded-replacement.patch
|
|||
|
||||
# Expand system() arguments before a fork, RT#121105,
|
||||
# in upstream after 5.27.6
|
||||
Patch73: perl-5.26.1-perform-system-arg-processing-before-fork.patch
|
||||
Patch73: perl-5.26.2-RC1-perform-system-arg-processing-before-fork.patch
|
||||
# in upstream after 5.27.7
|
||||
Patch74: perl-5.27.7-preserve-numericness-of-system-args-on-Win32.patch
|
||||
Patch75: perl-5.27.7-Reenable-numeric-first-argument-of-system-on-VMS.patch
|
||||
|
@ -260,7 +245,7 @@ Patch76: perl-5.26.1-perl-131746-avoid-undefined-behaviour-in-Copy-etc.pa
|
|||
Patch77: perl-5.27.3-avoid-the-address-of-.-will-always-evaluate-as-.-war.patch
|
||||
|
||||
# Conditionalize a fix for an old and long fixed bug
|
||||
# in libcrypt / glibc, rhbz#1536752
|
||||
# in libcrypt / glibc, rhbz#1536752, RT#133184, in upstream after 5.27.11
|
||||
Patch78: perl-5.26.1-guard_old_libcrypt_fix.patch
|
||||
|
||||
# Link XS modules to pthread library to fix linking with -z defs,
|
||||
|
@ -271,9 +256,24 @@ Patch79: perl-5.27.8-hints-linux-Add-lphtread-to-lddlflags.patch
|
|||
# in upstream after 5.27.7
|
||||
Patch80: perl-5.26.1-fix-parsing-of-braced-subscript-after-parens.patch
|
||||
|
||||
# Fix a heap use after free when moving a stack, RT#131954,
|
||||
# in upstream after 5.27.7
|
||||
Patch81: perl-5.27.7-perl-131954-don-t-initialize-mark-before-a-possible-.patch
|
||||
# Do not clobber file bytes in :encoding layer, RT#132833,
|
||||
# in upstream after 5.27.8
|
||||
Patch81: perl-5.27.8-don-t-clobber-file-bytes-in-encoding-layer.patch
|
||||
|
||||
# Fix line numbers in multi-line s///, RT#131930, in upstream after 5.27.9
|
||||
Patch82: perl-5.27.9-fix-line-numbers-in-multi-line-s.patch
|
||||
|
||||
# Fix parsing extended bracketed character classes, RT#132167,
|
||||
# in upstream after 5.27.10
|
||||
Patch83: perl-5.27.10-PATCH-perl-132167-Parse-error-in-regex_sets.patch
|
||||
|
||||
# Fix a possibly unitialized memory read in the Perl parser, RT#133074,
|
||||
# in upstream after 5.27.10
|
||||
Patch84: perl-5.27.10-PATCH-perl-133074-5.26.1-some-coverity-fixes.patch
|
||||
|
||||
# Fix an infinite loop in the regular expression compiler, RT#133185,
|
||||
# in upstream after 5.27.11
|
||||
Patch85: perl-5.26.2-PATCH-perl-133185-Infinite-loop-in-qr.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
|
||||
|
@ -324,7 +324,7 @@ BuildRequires: rsyslog
|
|||
|
||||
|
||||
# compat macro needed for rebuild
|
||||
%global perl_compat perl(:MODULE_COMPAT_5.26.1)
|
||||
%global perl_compat perl(:MODULE_COMPAT_5.26.2)
|
||||
|
||||
Requires: %perl_compat
|
||||
Requires: perl-interpreter%{?_isa} = %{perl_epoch}:%{perl_version}-%{release}
|
||||
|
@ -472,9 +472,10 @@ Perl utils like "splain" or "perlbug" can be found in perl-utils package.
|
|||
|
||||
%package libs
|
||||
Summary: The libraries for the perl run-time
|
||||
License: (GPL+ or Artistic) and HSLR and MIT and UCD
|
||||
License: (GPL+ or Artistic) and HSRL and MIT and UCD
|
||||
# Compat provides
|
||||
Provides: %perl_compat
|
||||
Provides: perl(:MODULE_COMPAT_5.26.1)
|
||||
Provides: perl(:MODULE_COMPAT_5.26.0)
|
||||
# Interpreter version to fulfil required genersted from "require 5.006;"
|
||||
Provides: perl(:VERSION) = %{perl_version}
|
||||
|
@ -522,6 +523,11 @@ Requires: perl(ExtUtils::ParseXS)
|
|||
Requires: %perl_compat
|
||||
# Match library and header files when downgrading releases
|
||||
Requires: perl-libs%{?_isa} = %{perl_epoch}:%{perl_version}-%{release}
|
||||
# Compiler and linker options stored into perl and used when building XS
|
||||
# modules refer to hardering profiles like
|
||||
# /usr/lib/rpm/redhat/redhat-hardened-cc1 that are delivered by
|
||||
# redhat-rpm-config. Bug #1557667.
|
||||
Requires: redhat-rpm-config
|
||||
%if %{defined perl_bootstrap}
|
||||
%gendep_perl_devel
|
||||
%endif
|
||||
|
@ -1952,7 +1958,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.20170922
|
||||
Version: 5.20180414
|
||||
Requires: %perl_compat
|
||||
Requires: perl(List::Util)
|
||||
Requires: perl(version) >= 0.88
|
||||
|
@ -1970,7 +1976,7 @@ are shipped with each version of perl.
|
|||
Summary: Tool for listing modules shipped with perl
|
||||
License: GPL+ or Artistic
|
||||
Epoch: 1
|
||||
Version: 5.20170922
|
||||
Version: 5.20180414
|
||||
Requires: %perl_compat
|
||||
Requires: perl(feature)
|
||||
Requires: perl(version) >= 0.88
|
||||
|
@ -2832,8 +2838,6 @@ Perl extension for Version Objects
|
|||
%patch26 -p1
|
||||
%patch30 -p1
|
||||
%patch31 -p1
|
||||
%patch34 -p1
|
||||
%patch35 -p1
|
||||
%patch36 -p1
|
||||
%patch38 -p1
|
||||
%patch43 -p1
|
||||
|
@ -2848,11 +2852,7 @@ Perl extension for Version Objects
|
|||
%patch55 -p1
|
||||
%patch56 -p1
|
||||
%patch58 -p1
|
||||
%patch59 -p1
|
||||
%patch60 -p1
|
||||
%patch61 -p1
|
||||
%patch62 -p1
|
||||
%patch63 -p1
|
||||
%patch64 -p1
|
||||
%patch65 -p1
|
||||
%patch66 -p1
|
||||
|
@ -2871,6 +2871,10 @@ Perl extension for Version Objects
|
|||
%patch79 -p1
|
||||
%patch80 -p1
|
||||
%patch81 -p1
|
||||
%patch82 -p1
|
||||
%patch83 -p1
|
||||
%patch84 -p1
|
||||
%patch85 -p1
|
||||
%patch200 -p1
|
||||
%patch201 -p1
|
||||
|
||||
|
@ -2892,7 +2896,6 @@ perl -x patchlevel.h \
|
|||
'Fedora Patch27: Make PadlistNAMES() lvalue again (CPAN RT#101063)' \
|
||||
'Fedora Patch30: Replace EU::MakeMaker dependency with EU::MM::Utils in IPC::Cmd (bug #1129443)' \
|
||||
'Fedora Patch31: Make File::Glob more resistant against degenerative matching (RT#131211)' \
|
||||
'Fedora Patch34: Fix cloning :via handles on thread creation (RT#131221)' \
|
||||
'Fedora Patch36: Fix glob UTF-8 flag on a glob reassignment (RT#131263)' \
|
||||
'Fedora Patch38: Fix handling backslashes in PATH environment variable when executing "perl -S" (RT#129183)' \
|
||||
'Fedora Patch45: Fix File::Glob rt131211.t test random failures' \
|
||||
|
@ -2905,9 +2908,7 @@ perl -x patchlevel.h \
|
|||
'Fedora Patch55: Fix compiler warnings in code generated by ExtUtils::Constant (CPAN RT#63832)' \
|
||||
'Fedora Patch56: Fix compiler warnings in code generated by ExtUtils::Constant (CPAN RT#101487)' \
|
||||
'Fedora Patch58: Fix unreliable Time-HiRes tests (CPAN RT#122819)' \
|
||||
'Fedora Patch59: Fix an overflow in the lexer when reading a new line (RT#131793)' \
|
||||
'Fedora Patch60: Fix Term::ReadLine not to create spurious &STDERR files (RT#132008)' \
|
||||
'Fedora Patch63: Fix a crash when a match for inversely repeated group fails (RT#132017)' \
|
||||
'Fedora Patch61: Fix Term::ReadLine not to create spurious &STDERR files (RT#132008)' \
|
||||
'Fedora Patch64: Fix an overflow when parsing a character range with no preceding character (RT#132245)' \
|
||||
'Fedora Patch65: Fix walking symbol table for ISA in Carp' \
|
||||
'Fedora Patch66: Fix handling file names with null bytes in stat and lstat functions (RT#131895)' \
|
||||
|
@ -2919,10 +2920,14 @@ perl -x patchlevel.h \
|
|||
'Fedora Patch72: Fix tainting of s/// with overloaded replacement (RT#115266)' \
|
||||
'Fedora Patch73: Expand system() arguments before a fork (RT#121105)' \
|
||||
'Fedora Patch76: Avoid undefined behavior when copying memory in Glob and pp_caller (RT#131746)' \
|
||||
'Fedora Patch78: Fix compatibility with libxcrypt (bug #1536752)' \
|
||||
'Fedora Patch78: Fix compatibility with libxcrypt (RT#133184)' \
|
||||
'Fedora Patch79: Link XS modules to pthread library to fix linking with -z defs' \
|
||||
'Fedora Patch80: Fix parsing braced subscript after parentheses (RT#8045)' \
|
||||
'Fedora Patch81: Fix a heap use after free when moving a stack (RT#131954)' \
|
||||
'Fedora Patch81: Do not clobber file bytes in :encoding layer (RT#132833)' \
|
||||
'Fedora Patch82: Fix line numbers in multi-line s/// (RT#131930)' \
|
||||
'Fedora Patch83: Fix parsing extended bracketed character classes (RT#132167)' \
|
||||
'Fedora Patch84: Fix a possibly unitialized memory read in the Perl parser (RT#133074)' \
|
||||
'Fedora Patch85: Fix an infinite loop in the regular expression compiler (RT#133185)' \
|
||||
'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}
|
||||
|
@ -5210,6 +5215,24 @@ popd
|
|||
|
||||
# Old changelog entries are preserved in CVS.
|
||||
%changelog
|
||||
* Fri May 25 2018 Petr Pisar <ppisar@redhat.com> - 4:5.26.2-412
|
||||
- perl-devel requires redhat-rpm-config because of hardened compiler profiles
|
||||
(bug #1557667)
|
||||
- Do not clobber file bytes in :encoding layer (RT#132833)
|
||||
- Fix line numbers in multi-line s/// (RT#131930)
|
||||
- Fix parsing extended bracketed character classes (RT#132167)
|
||||
- Fix a possibly unitialized memory read in the Perl parser (RT#133074)
|
||||
- Fix an infinite loop in the regular expression compiler (RT#133185)
|
||||
|
||||
* Fri May 18 2018 Jitka Plesnikova <jplesnik@redhat.com> - 4:5.26.2-411
|
||||
- Correct license tags of perl-libs (bug #1579524)
|
||||
|
||||
* Mon Apr 16 2018 Petr Pisar <ppisar@redhat.com> - 4:5.26.2-410
|
||||
- 5.26.2 bump
|
||||
- Fix CVE-2018-6913 (heap buffer overflow in pp_pack.c) (bug #1567776)
|
||||
- Fix CVE-2018-6798 (heap read overflow in regexec.c) (bug #1567777)
|
||||
- Fix CVE-2018-6797 (heap write overflow in regcomp.c) (bug #1567778)
|
||||
|
||||
* Thu Mar 1 2018 Florian Weimer <fweimer@redhat.com> - 4:5.26.1-409
|
||||
- Rebuild to pick up new build flags from redhat-rpm-config
|
||||
|
||||
|
|
2
sources
2
sources
|
@ -1 +1 @@
|
|||
SHA512 (perl-5.26.1.tar.bz2) = 821a4b78a22d24d6f79b56f68ed4a36db24bddc4dbe36c9d2622cd15d7abf6548186c037dea3d3745c1781af83339d0b54297f8094aa538046c0e57a953b5547
|
||||
SHA512 (perl-5.26.2.tar.bz2) = ee9e8e56dc053b29294bd867f8651e37124a68f46a1aeffd5042e55abeacd55e19acd346dd7e7b39db202f65288cfcd7668b63e85ceeaae511462e0bbf5f733a
|
||||
|
|
Loading…
Reference in New Issue