diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..5b96920
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+SOURCES/perl-5.26.3.tar.bz2
diff --git a/.perl.metadata b/.perl.metadata
new file mode 100644
index 0000000..d4acfc7
--- /dev/null
+++ b/.perl.metadata
@@ -0,0 +1 @@
+4c61872bab631427cbb5b519ef8809d3a4c7f921 SOURCES/perl-5.26.3.tar.bz2
diff --git a/SOURCES/Pod-Html-license-clarification b/SOURCES/Pod-Html-license-clarification
new file mode 100644
index 0000000..bd567f1
--- /dev/null
+++ b/SOURCES/Pod-Html-license-clarification
@@ -0,0 +1,41 @@
+Date: Sun, 15 Mar 2015 21:22:10 -0600
+Subject: Re: Pod::Html license
+From: Tom Christiansen <tchrist53147@gmail.com>
+To: Petr Šabata <contyk@redhat.com>
+Cc: Tom Christiansen <tchrist@perl.com>, marcgreen@cpan.org,
+ jplesnik@redhat.com
+MIME-Version: 1.0
+Content-Transfer-Encoding: 8bit
+Content-Type: text/plain; charset=utf-8
+
+Yes, it was supposed to be licensed just like the rest of Perl.
+
+Sent from my Sprint phone
+
+Petr Šabata <contyk@redhat.com> wrote:
+
+>Marc, Tom,
+>
+>I'm reviewing licensing of our perl package in Fedora and 
+>noticed Pod::HTML and its pod2html script are licensed under
+>the Artistic license (only).
+>
+>This is an issue for us as this license isn't considered free by
+>FSF [0].  Unless the license of this core component changes, we
+>will have to drop it from the tarball and remove support for it
+>from all the modules we ship that use it, such as Module::Build
+>or Module::Install.
+>
+>What I've seen in the past is authors originally claiming their
+>module was released under Artistic while what they actually meant
+>was the common `the same as perl itself', i.e. `GPL+/Aristic' [1],
+>an FSF free license.  Is it possible this is also the case
+>of Pod::Html?
+>
+>Thanks,
+>Petr
+>
+>(also CC'ing Jitka, the primary package maintainer in Fedora)
+>
+>[0] https://www.gnu.org/licenses/license-list.html#ArtisticLicense
+>[1] https://www.gnu.org/licenses/license-list.html#PerlLicense
diff --git a/SOURCES/gendep.macros b/SOURCES/gendep.macros
new file mode 100644
index 0000000..4b7f07b
--- /dev/null
+++ b/SOURCES/gendep.macros
@@ -0,0 +1,2100 @@
+%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) \
+Requires: perl(strict) \
+Requires: perl(vars) \
+Requires: perl(warnings) \
+Provides: perl(Attribute::Handlers) = 0.99 \
+%{nil}
+%global gendep_perl_B_Debug \
+Requires: perl(:VERSION) >= 5.6.0 \
+Requires: perl(B) \
+Requires: perl(Config) \
+Requires: perl(strict) \
+Provides: perl(B::Debug) = 1.24 \
+%{nil}
+%global gendep_perl_CPAN \
+Requires: perl(:VERSION) >= 5.6.0 \
+Requires: perl(App::Cpan) \
+Requires: perl(CPAN) >= 1.80 \
+Requires: perl(CPAN::Author) \
+Requires: perl(CPAN::Bundle) \
+Requires: perl(CPAN::CacheMgr) \
+Requires: perl(CPAN::Complete) \
+Requires: perl(CPAN::Debug) \
+Requires: perl(CPAN::DeferredCode) \
+Requires: perl(CPAN::Distribution) \
+Requires: perl(CPAN::Distroprefs) \
+Requires: perl(CPAN::Distrostatus) \
+Requires: perl(CPAN::Exception::RecursiveDependency) \
+Requires: perl(CPAN::Exception::yaml_not_installed) \
+Requires: perl(CPAN::Exception::yaml_process_error) \
+Requires: perl(CPAN::FTP) \
+Requires: perl(CPAN::FTP::netrc) \
+Requires: perl(CPAN::HTTP::Credentials) \
+Requires: perl(CPAN::HandleConfig) \
+Requires: perl(CPAN::Index) >= 1.93 \
+Requires: perl(CPAN::InfoObj) \
+Requires: perl(CPAN::LWP::UserAgent) \
+Requires: perl(CPAN::Mirrors) \
+Requires: perl(CPAN::Module) \
+Requires: perl(CPAN::Prompt) \
+Requires: perl(CPAN::Queue) \
+Requires: perl(CPAN::Shell) \
+Requires: perl(CPAN::Tarzip) \
+Requires: perl(CPAN::URL) \
+Requires: perl(CPAN::Version) \
+Requires: perl(Carp) \
+Requires: perl(Config) \
+Requires: perl(Cwd) \
+Requires: perl(DirHandle) \
+Requires: perl(Exporter) \
+Requires: perl(ExtUtils::MakeMaker) \
+Requires: perl(Fcntl) \
+Requires: perl(File::Basename) \
+Requires: perl(File::Copy) \
+Requires: perl(File::Find) \
+Requires: perl(File::Path) \
+Requires: perl(File::Spec) \
+Requires: perl(File::Spec::Functions) \
+Requires: perl(FileHandle) \
+Requires: perl(Getopt::Std) \
+Requires: perl(HTTP::Tiny) >= 0.005 \
+Requires: perl(Net::Ping) \
+Requires: perl(Safe) \
+Requires: perl(Sys::Hostname) \
+Requires: perl(Text::ParseWords) \
+Requires: perl(Text::Wrap) \
+Requires: perl(autouse) \
+Requires: perl(constant) \
+Requires: perl(if) \
+Requires: perl(overload) \
+Requires: perl(strict) \
+Requires: perl(vars) \
+Requires: perl(warnings) \
+Provides: perl(App::Cpan) = 1.66 \
+Provides: perl(CPAN) = 2.18 \
+Provides: perl(CPAN::Author) = 5.5002 \
+Provides: perl(CPAN::Bundle) = 5.5003 \
+Provides: perl(CPAN::CacheMgr) = 5.5002 \
+Provides: perl(CPAN::Complete) = 5.5001 \
+Provides: perl(CPAN::Debug) = 5.5001 \
+Provides: perl(CPAN::DeferredCode) = 5.50 \
+Provides: perl(CPAN::Distribution) = 2.18 \
+Provides: perl(CPAN::Distroprefs) = 6.0001 \
+Provides: perl(CPAN::Distroprefs::Iterator) \
+Provides: perl(CPAN::Distroprefs::Pref) \
+Provides: perl(CPAN::Distroprefs::Result) \
+Provides: perl(CPAN::Distroprefs::Result::Error) \
+Provides: perl(CPAN::Distroprefs::Result::Fatal) \
+Provides: perl(CPAN::Distroprefs::Result::Success) \
+Provides: perl(CPAN::Distroprefs::Result::Warning) \
+Provides: perl(CPAN::Distrostatus) = 5.5 \
+Provides: perl(CPAN::Eval) \
+Provides: perl(CPAN::Exception::RecursiveDependency) = 5.5001 \
+Provides: perl(CPAN::Exception::RecursiveDependency::na) \
+Provides: perl(CPAN::Exception::blocked_urllist) = 1.001 \
+Provides: perl(CPAN::Exception::yaml_not_installed) = 5.5 \
+Provides: perl(CPAN::Exception::yaml_process_error) = 5.5 \
+Provides: perl(CPAN::FTP) = 5.5008 \
+Provides: perl(CPAN::FTP::netrc) = 1.01 \
+Provides: perl(CPAN::FirstTime) = 5.5310 \
+Provides: perl(CPAN::HTTP::Client) = 1.9601 \
+Provides: perl(CPAN::HTTP::Credentials) = 1.9601 \
+Provides: perl(CPAN::HandleConfig) = 5.5008 \
+Provides: perl(CPAN::Index) = 2.12 \
+Provides: perl(CPAN::InfoObj) = 5.5 \
+Provides: perl(CPAN::Kwalify) = 5.50 \
+Provides: perl(CPAN::LWP::UserAgent) = 1.9601 \
+Provides: perl(CPAN::Mirrored::By) \
+Provides: perl(CPAN::Mirrors) = 2.12 \
+Provides: perl(CPAN::Module) = 5.5003 \
+Provides: perl(CPAN::Nox) = 5.5001 \
+Provides: perl(CPAN::Plugin) = 0.96 \
+Provides: perl(CPAN::Plugin::Specfile) = 0.01 \
+Provides: perl(CPAN::Prompt) = 5.5 \
+Provides: perl(CPAN::Queue) = 5.5002 \
+Provides: perl(CPAN::Queue::Item) \
+Provides: perl(CPAN::Shell) = 5.5006 \
+Provides: perl(CPAN::Tarzip) = 5.5012 \
+Provides: perl(CPAN::URL) = 5.5 \
+Provides: perl(CPAN::Version) = 5.5003 \
+%{nil}
+%global gendep_perl_CPAN_Meta \
+Requires: perl(:VERSION) >= 5.6.0 \
+Requires: perl(:VERSION) >= 5.8.1 \
+Requires: perl(CPAN::Meta::Converter) >= 2.141170 \
+Requires: perl(CPAN::Meta::Feature) \
+Requires: perl(CPAN::Meta::Prereqs) \
+Requires: perl(CPAN::Meta::Requirements) >= 2.121 \
+Requires: perl(CPAN::Meta::Validator) \
+Requires: perl(Carp) \
+Requires: perl(Exporter) \
+Requires: perl(Parse::CPAN::Meta) >= 1.4400 \
+Requires: perl(Parse::CPAN::Meta) >= 1.4414 \
+Requires: perl(Scalar::Util) \
+Requires: perl(strict) \
+Requires: perl(warnings) \
+Provides: perl(CPAN::Meta) = 2.150010 \
+Provides: perl(CPAN::Meta::Converter) = 2.150010 \
+Provides: perl(CPAN::Meta::Feature) = 2.150010 \
+Provides: perl(CPAN::Meta::History) = 2.150010 \
+Provides: perl(CPAN::Meta::Merge) = 2.150010 \
+Provides: perl(CPAN::Meta::Prereqs) = 2.150010 \
+Provides: perl(CPAN::Meta::Spec) = 2.150010 \
+Provides: perl(CPAN::Meta::Validator) = 2.150010 \
+Provides: perl(Parse::CPAN::Meta) = 2.150010 \
+%{nil}
+%global gendep_perl_CPAN_Meta_Requirements \
+Requires: perl(:VERSION) >= 5.6.0 \
+Requires: perl(Carp) \
+Requires: perl(strict) \
+Requires: perl(warnings) \
+Provides: perl(CPAN::Meta::Requirements) = 2.140000 \
+%{nil}
+%global gendep_perl_CPAN_Meta_YAML \
+Requires: perl(:VERSION) >= 5.8.1 \
+Requires: perl(B) \
+Requires: perl(Exporter) \
+Requires: perl(Scalar::Util) \
+Requires: perl(strict) \
+Requires: perl(warnings) \
+Provides: perl(CPAN::Meta::YAML) = 0.018 \
+%{nil}
+%global gendep_perl_Carp \
+Requires: perl(Carp) \
+Requires: perl(Exporter) \
+Requires: perl(strict) \
+Requires: perl(warnings) \
+Provides: perl(Carp) = 1.42 \
+Provides: perl(Carp::Heavy) = 1.42 \
+Provides: perl(Carp::Heavy) = 1.42 \
+%{nil}
+%global gendep_perl_Compress_Raw_Bzip2 \
+Requires: perl(:VERSION) >= 5.6.0 \
+Requires: perl(Carp) \
+Requires: perl(Exporter) \
+Requires: perl(bytes) \
+Requires: perl(constant) \
+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) \
+Requires: perl(Exporter) \
+Requires: perl(bytes) \
+Requires: perl(constant) \
+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) \
+Requires: perl(strict) \
+Requires: perl(vars) \
+Requires: perl(warnings) \
+Provides: perl(Config::Perl::V) = 0.28 \
+%{nil}
+%global gendep_perl_DB_File \
+Requires: perl(:VERSION) >= 5.8.3 \
+Requires: perl(Carp) \
+Requires: perl(Exporter) \
+Requires: perl(File::Spec) \
+Requires: perl(Tie::Hash) \
+Requires: perl(strict) \
+Requires: perl(warnings) \
+Provides: perl(DB_File) = 1.840 \
+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) \
+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) \
+Provides: perl(Devel::PPPort) = 3.35 \
+%{nil}
+%global gendep_perl_Devel_Peek \
+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) \
+Provides: perl(Devel::SelfStubber) = 1.06 \
+%{nil}
+%global gendep_perl_Digest \
+Requires: perl(Carp) \
+Requires: perl(Digest) \
+Requires: perl(Exporter) \
+Requires: perl(strict) \
+Requires: perl(vars) \
+Provides: perl(Digest) = 1.17 \
+Provides: perl(Digest::base) = 1.16 \
+Provides: perl(Digest::file) = 1.16 \
+%{nil}
+%global gendep_perl_Digest_MD5 \
+Requires: perl(Exporter) \
+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) \
+Requires: perl(Exporter) \
+Requires: perl(Fcntl) \
+Requires: perl(Getopt::Long) \
+Requires: perl(integer) \
+Requires: perl(strict) \
+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 \
+Requires: perl(Carp) \
+Requires: perl(Encode) \
+Requires: perl(Encode::Alias) \
+Requires: perl(Encode::CJKConstants) \
+Requires: perl(Encode::CN::HZ) \
+Requires: perl(Encode::Config) \
+Requires: perl(Encode::Encoding) \
+Requires: perl(Encode::Guess) \
+Requires: perl(Encode::JP::JIS7) \
+Requires: perl(Encode::KR::2022_KR) \
+Requires: perl(Encode::MIME::Header) \
+Requires: perl(Encode::Unicode) \
+Requires: perl(Exporter) >= 5.57 \
+Requires: perl(File::Basename) \
+Requires: perl(Getopt::Long) \
+Requires: perl(Getopt::Std) \
+Requires: perl(MIME::Base64) \
+Requires: perl(XSLoader) \
+Requires: perl(bytes) \
+Requires: perl(constant) \
+Requires: perl(overload) \
+Requires: perl(parent) \
+Requires: perl(re) \
+Requires: perl(strict) \
+Requires: perl(utf8) \
+Requires: perl(vars) \
+Requires: perl(warnings) \
+Provides: perl(Encode) = 2.88 \
+Provides: perl(Encode::Alias) = 2.21 \
+Provides: perl(Encode::Byte) = 2.4 \
+Provides: perl(Encode::CJKConstants) = 2.2 \
+Provides: perl(Encode::CN) = 2.3 \
+Provides: perl(Encode::CN::HZ) = 2.8 \
+Provides: perl(Encode::Config) = 2.5 \
+Provides: perl(Encode::EBCDIC) = 2.2 \
+Provides: perl(Encode::Encoder) = 2.3 \
+Provides: perl(Encode::Encoding) = 2.7 \
+Provides: perl(Encode::GSM0338) = 2.5 \
+Provides: perl(Encode::Guess) = 2.6 \
+Provides: perl(Encode::Internal) \
+Provides: perl(Encode::JP) = 2.4 \
+Provides: perl(Encode::JP::H2Z) = 2.2 \
+Provides: perl(Encode::JP::JIS7) = 2.5 \
+Provides: perl(Encode::KR) = 2.3 \
+Provides: perl(Encode::KR::2022_KR) = 2.3 \
+Provides: perl(Encode::MIME::Header) = 2.24 \
+Provides: perl(Encode::MIME::Header::ISO_2022_JP) = 1.7 \
+Provides: perl(Encode::MIME::Name) = 1.2 \
+Provides: perl(Encode::Symbol) = 2.2 \
+Provides: perl(Encode::TW) = 2.3 \
+Provides: perl(Encode::UTF_EBCDIC) \
+Provides: perl(Encode::Unicode) = 2.15 \
+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) \
+Requires: perl(Getopt::Std) \
+Requires: perl(constant) \
+Requires: perl(strict) \
+Requires: perl(vars) \
+Requires: perl(warnings) \
+%{nil}
+%global gendep_perl_Env \
+Requires: perl(Config) \
+Requires: perl(Tie::Array) \
+Provides: perl(Env) = 1.04 \
+Provides: perl(Env::Array) \
+Provides: perl(Env::Array::VMS) \
+%{nil}
+%global gendep_perl_Errno \
+Requires: perl(Config) \
+Requires: perl(Exporter) \
+Requires: perl(strict) \
+Provides: perl(Errno) = 1.28 \
+%{nil}
+%global gendep_perl_Exporter \
+Requires: perl(:VERSION) >= 5.6.0 \
+Requires: perl(Exporter) \
+Requires: perl(strict) \
+Provides: perl(Exporter) = 5.72 \
+Provides: perl(Exporter::Heavy) \
+%{nil}
+%global gendep_perl_ExtUtils_CBuilder \
+Requires: perl(Config) \
+Requires: perl(Cwd) \
+Requires: perl(ExtUtils::CBuilder::Base) \
+Requires: perl(ExtUtils::CBuilder::Platform::Unix) \
+Requires: perl(File::Basename) \
+Requires: perl(File::Path) \
+Requires: perl(File::Spec) \
+Requires: perl(File::Spec::Functions) \
+Requires: perl(File::Temp) \
+Requires: perl(IO::File) \
+Requires: perl(IPC::Cmd) \
+Requires: perl(Perl::OSType) \
+Requires: perl(Text::ParseWords) \
+Requires: perl(strict) \
+Requires: perl(vars) \
+Requires: perl(warnings) \
+Provides: perl(ExtUtils::CBuilder) = 0.280225 \
+Provides: perl(ExtUtils::CBuilder::Base) = 0.280225 \
+Provides: perl(ExtUtils::CBuilder::Platform::Unix) = 0.280225 \
+Provides: perl(ExtUtils::CBuilder::Platform::VMS) = 0.280225 \
+Provides: perl(ExtUtils::CBuilder::Platform::Windows) = 0.280225 \
+Provides: perl(ExtUtils::CBuilder::Platform::Windows::BCC) = 0.280225 \
+Provides: perl(ExtUtils::CBuilder::Platform::Windows::GCC) = 0.280225 \
+Provides: perl(ExtUtils::CBuilder::Platform::Windows::MSVC) = 0.280225 \
+Provides: perl(ExtUtils::CBuilder::Platform::aix) = 0.280225 \
+Provides: perl(ExtUtils::CBuilder::Platform::android) = 0.280225 \
+Provides: perl(ExtUtils::CBuilder::Platform::cygwin) = 0.280225 \
+Provides: perl(ExtUtils::CBuilder::Platform::darwin) = 0.280225 \
+Provides: perl(ExtUtils::CBuilder::Platform::dec_osf) = 0.280225 \
+Provides: perl(ExtUtils::CBuilder::Platform::linux) = 0.280206 \
+Provides: perl(ExtUtils::CBuilder::Platform::os2) = 0.280225 \
+%{nil}
+%global gendep_perl_ExtUtils_Command \
+Requires: perl(:VERSION) >= 5.5.30 \
+Requires: perl(Exporter) \
+Requires: perl(strict) \
+Requires: perl(vars) \
+Provides: perl(ExtUtils::Command) = 7.24 \
+%{nil}
+%global gendep_perl_ExtUtils_Embed \
+Requires: perl(Config) \
+Requires: perl(Exporter) \
+Requires: perl(File::Spec) \
+Requires: perl(strict) \
+Requires: perl(vars) \
+Provides: perl(ExtUtils::Embed) = 1.34 \
+%{nil}
+%global gendep_perl_ExtUtils_Install \
+Requires: perl(:VERSION) >= 5.5.30 \
+Requires: perl(AutoSplit) \
+Requires: perl(Carp) \
+Requires: perl(Config) \
+Requires: perl(Cwd) \
+Requires: perl(Exporter) \
+Requires: perl(ExtUtils::MakeMaker) \
+Requires: perl(ExtUtils::Packlist) \
+Requires: perl(File::Basename) \
+Requires: perl(File::Compare) \
+Requires: perl(File::Copy) \
+Requires: perl(File::Find) \
+Requires: perl(File::Path) \
+Requires: perl(File::Spec) \
+Requires: perl(strict) \
+Requires: perl(vars) \
+Provides: perl(ExtUtils::Install) = 2.04 \
+Provides: perl(ExtUtils::Install::Warn) \
+Provides: perl(ExtUtils::Installed) = 2.04 \
+Provides: perl(ExtUtils::Packlist) = 2.04 \
+%{nil}
+%global gendep_perl_ExtUtils_MM_Utils \
+Requires: perl(:VERSION) >= 5.6.0 \
+Requires: perl(strict) \
+Requires: perl(vars) \
+Provides: perl(ExtUtils::MM::Utils) = 7.11 \
+%{nil}
+%global gendep_perl_ExtUtils_MakeMaker \
+Requires: perl(:VERSION) >= 5.6.0 \
+Requires: perl(:VERSION) >= 5.6.1 \
+Requires: perl(Carp) \
+Requires: perl(Config) \
+Requires: perl(Cwd) \
+Requires: perl(Encode) \
+Requires: perl(Encode::Alias) \
+Requires: perl(Exporter) \
+Requires: perl(ExtUtils::Installed) \
+Requires: perl(ExtUtils::Liblist) \
+Requires: perl(ExtUtils::Liblist::Kid) \
+Requires: perl(ExtUtils::MM) \
+Requires: perl(ExtUtils::MM_Any) \
+Requires: perl(ExtUtils::MM_Unix) \
+Requires: perl(ExtUtils::MM_Win32) \
+Requires: perl(ExtUtils::MY) \
+Requires: perl(ExtUtils::MakeMaker) \
+Requires: perl(ExtUtils::MakeMaker::Config) \
+Requires: perl(ExtUtils::MakeMaker::version) \
+Requires: perl(ExtUtils::Packlist) \
+Requires: perl(File::Basename) \
+Requires: perl(File::Path) \
+Requires: perl(File::Spec) \
+Requires: perl(IO::File) \
+Requires: perl(base) \
+Requires: perl(lib) \
+Requires: perl(strict) \
+Requires: perl(vars) \
+Requires: perl(warnings) \
+Provides: perl(ExtUtils::Command::MM) = 7.24 \
+Provides: perl(ExtUtils::Liblist) = 7.24 \
+Provides: perl(ExtUtils::Liblist::Kid) = 7.24 \
+Provides: perl(ExtUtils::MM) = 7.24 \
+Provides: perl(ExtUtils::MM_AIX) = 7.24 \
+Provides: perl(ExtUtils::MM_Any) = 7.24 \
+Provides: perl(ExtUtils::MM_BeOS) = 7.24 \
+Provides: perl(ExtUtils::MM_Cygwin) = 7.24 \
+Provides: perl(ExtUtils::MM_DOS) = 7.24 \
+Provides: perl(ExtUtils::MM_Darwin) = 7.24 \
+Provides: perl(ExtUtils::MM_MacOS) = 7.24 \
+Provides: perl(ExtUtils::MM_NW5) = 7.24 \
+Provides: perl(ExtUtils::MM_OS2) = 7.24 \
+Provides: perl(ExtUtils::MM_QNX) = 7.24 \
+Provides: perl(ExtUtils::MM_UWIN) = 7.24 \
+Provides: perl(ExtUtils::MM_Unix) = 7.24 \
+Provides: perl(ExtUtils::MM_VMS) = 7.24 \
+Provides: perl(ExtUtils::MM_VOS) = 7.24 \
+Provides: perl(ExtUtils::MM_Win32) = 7.24 \
+Provides: perl(ExtUtils::MM_Win95) = 7.24 \
+Provides: perl(ExtUtils::MY) = 7.24 \
+Provides: perl(ExtUtils::MakeMaker) = 7.24 \
+Provides: perl(ExtUtils::MakeMaker::Config) = 7.24 \
+Provides: perl(ExtUtils::MakeMaker::Locale) = 7.24 \
+Provides: perl(ExtUtils::MakeMaker::version) = 7.24 \
+Provides: perl(ExtUtils::Mkbootstrap) = 7.24 \
+Provides: perl(ExtUtils::Mksymlists) = 7.24 \
+Provides: perl(ExtUtils::testlib) = 7.24 \
+Provides: perl(MM) \
+Provides: perl(MY) \
+%{nil}
+%global gendep_perl_ExtUtils_Manifest \
+Requires: perl(Carp) \
+Requires: perl(Config) \
+Requires: perl(Exporter) \
+Requires: perl(File::Basename) \
+Requires: perl(File::Copy) \
+Requires: perl(File::Find) \
+Requires: perl(File::Spec) >= 0.8 \
+Requires: perl(strict) \
+Requires: perl(warnings) \
+Provides: perl(ExtUtils::Manifest) = 1.70 \
+%{nil}
+%global gendep_perl_ExtUtils_Miniperl \
+Requires: perl(Exporter) \
+Requires: perl(ExtUtils::Embed) >= 1.31 \
+Requires: perl(strict) \
+Requires: perl(vars) \
+Provides: perl(ExtUtils::Miniperl) = 1.06 \
+%{nil}
+%global gendep_perl_ExtUtils_ParseXS \
+Requires: perl(:VERSION) >= 5.6.0 \
+Requires: perl(:VERSION) >= 5.6.1 \
+Requires: perl(Config) \
+Requires: perl(Cwd) \
+Requires: perl(Exporter) \
+Requires: perl(ExtUtils::ParseXS) \
+Requires: perl(ExtUtils::ParseXS::Constants) \
+Requires: perl(ExtUtils::ParseXS::CountLines) \
+Requires: perl(ExtUtils::ParseXS::Eval) \
+Requires: perl(ExtUtils::ParseXS::Utilities) \
+Requires: perl(ExtUtils::Typemaps) \
+Requires: perl(ExtUtils::Typemaps::InputMap) \
+Requires: perl(ExtUtils::Typemaps::OutputMap) \
+Requires: perl(ExtUtils::Typemaps::Type) \
+Requires: perl(File::Basename) \
+Requires: perl(File::Spec) \
+Requires: perl(Getopt::Long) \
+Requires: perl(Symbol) \
+Requires: perl(re) \
+Requires: perl(strict) \
+Requires: perl(warnings) \
+Provides: perl(ExtUtils::ParseXS) = 3.34 \
+Provides: perl(ExtUtils::ParseXS::Constants) = 3.34 \
+Provides: perl(ExtUtils::ParseXS::CountLines) = 3.34 \
+Provides: perl(ExtUtils::ParseXS::Eval) = 3.34 \
+Provides: perl(ExtUtils::ParseXS::Utilities) = 3.34 \
+Provides: perl(ExtUtils::Typemaps) = 3.34 \
+Provides: perl(ExtUtils::Typemaps::Cmd) = 3.34 \
+Provides: perl(ExtUtils::Typemaps::InputMap) = 3.34 \
+Provides: perl(ExtUtils::Typemaps::OutputMap) = 3.34 \
+Provides: perl(ExtUtils::Typemaps::Type) = 3.34 \
+%{nil}
+%global gendep_perl_File_Fetch \
+Requires: perl(Carp) \
+Requires: perl(Cwd) \
+Requires: perl(File::Basename) \
+Requires: perl(File::Copy) \
+Requires: perl(File::Path) \
+Requires: perl(File::Spec) \
+Requires: perl(File::Spec::Unix) \
+Requires: perl(File::Temp) \
+Requires: perl(FileHandle) \
+Requires: perl(IPC::Cmd) \
+Requires: perl(Locale::Maketext::Simple) \
+Requires: perl(Module::Load::Conditional) \
+Requires: perl(Params::Check) \
+Requires: perl(constant) \
+Requires: perl(strict) \
+Requires: perl(vars) \
+Provides: perl(File::Fetch) = 0.52 \
+%{nil}
+%global gendep_perl_File_Path \
+Requires: perl(:VERSION) >= 5.5.0 \
+Requires: perl(Cwd) \
+Requires: perl(Exporter) \
+Requires: perl(File::Basename) \
+Requires: perl(File::Spec) \
+Requires: perl(strict) \
+Requires: perl(vars) \
+Provides: perl(File::Path) = 2.12 \
+%{nil}
+%global gendep_perl_File_Temp \
+Requires: perl(:VERSION) >= 5.6.0 \
+Requires: perl(Carp) \
+Requires: perl(Cwd) \
+Requires: perl(Errno) \
+Requires: perl(Exporter) >= 5.57 \
+Requires: perl(Fcntl) >= 1.03 \
+Requires: perl(File::Path) >= 2.06 \
+Requires: perl(File::Spec) >= 0.8 \
+Requires: perl(IO::Handle) \
+Requires: perl(IO::Seekable) \
+Requires: perl(Scalar::Util) \
+Requires: perl(Symbol) \
+Requires: perl(constant) \
+Requires: perl(overload) \
+Requires: perl(parent) >= 0.221 \
+Requires: perl(strict) \
+Requires: perl(vars) \
+Provides: perl(File::Temp) = 0.2304 \
+Provides: perl(File::Temp::Dir) \
+%{nil}
+%global gendep_perl_Filter \
+Requires: perl(:VERSION) >= 5.5.0 \
+Requires: perl(Carp) \
+Requires: perl(DynaLoader) \
+Requires: perl(Exporter) \
+Requires: perl(strict) \
+Requires: perl(vars) \
+Requires: perl(warnings) \
+Provides: perl(Filter::Util::Call) = 1.55 \
+%{nil}
+%global gendep_perl_Filter_Simple \
+Requires: perl(Carp) \
+Requires: perl(Filter::Util::Call) \
+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) \
+Requires: perl(constant) \
+Requires: perl(overload) \
+Requires: perl(strict) \
+Requires: perl(vars) \
+Provides: perl(Getopt::Long) = 2.49 \
+Provides: perl(Getopt::Long::CallBack) \
+Provides: perl(Getopt::Long::Parser) \
+%{nil}
+%global gendep_perl_HTTP_Tiny \
+Requires: perl(Errno) \
+Requires: perl(IO::Socket) \
+Requires: perl(Socket) \
+Requires: perl(strict) \
+Requires: perl(warnings) \
+Provides: perl(HTTP::Tiny) = 0.070 \
+%{nil}
+%global gendep_perl_IO \
+Requires: perl(:VERSION) >= 5.6.0 \
+Requires: perl(Carp) \
+Requires: perl(Errno) \
+Requires: perl(Exporter) \
+Requires: perl(Fcntl) \
+Requires: perl(File::Spec) \
+Requires: perl(File::stat) \
+Requires: perl(IO) \
+Requires: perl(IO::File) \
+Requires: perl(IO::Handle) \
+Requires: perl(IO::Seekable) \
+Requires: perl(IO::Socket) \
+Requires: perl(IO::Socket::INET) \
+Requires: perl(IO::Socket::UNIX) \
+Requires: perl(SelectSaver) \
+Requires: perl(Socket) >= 1.3 \
+Requires: perl(Symbol) \
+Requires: perl(Tie::Hash) \
+Requires: perl(XSLoader) \
+Requires: perl(strict) \
+Requires: perl(vars) \
+Requires: perl(warnings) \
+Requires: perl(warnings::register) \
+Provides: perl(IO) = 1.38 \
+Provides: perl(IO::Dir) = 1.10 \
+Provides: perl(IO::File) = 1.16 \
+Provides: perl(IO::Handle) = 1.36 \
+Provides: perl(IO::Pipe) = 1.15 \
+Provides: perl(IO::Pipe::End) \
+Provides: perl(IO::Poll) = 0.10 \
+Provides: perl(IO::Seekable) = 1.10 \
+Provides: perl(IO::Select) = 1.22 \
+Provides: perl(IO::Socket) = 1.38 \
+Provides: perl(IO::Socket::INET) = 1.35 \
+Provides: perl(IO::Socket::UNIX) = 1.26 \
+%{nil}
+%global gendep_perl_IO_Compress \
+Requires: perl(:VERSION) >= 5.6.0 \
+Requires: perl(Carp) \
+Requires: perl(Compress::Raw::Bzip2) >= 2.074 \
+Requires: perl(Compress::Raw::Zlib) >= 2.074 \
+Requires: perl(Config) \
+Requires: perl(Encode) \
+Requires: perl(Exporter) \
+Requires: perl(Fcntl) \
+Requires: perl(File::GlobMapper) \
+Requires: perl(File::Spec) \
+Requires: perl(IO::Compress::Adapter::Bzip2) >= 2.074 \
+Requires: perl(IO::Compress::Adapter::Deflate) >= 2.074 \
+Requires: perl(IO::Compress::Adapter::Identity) >= 2.074 \
+Requires: perl(IO::Compress::Base) >= 2.074 \
+Requires: perl(IO::Compress::Base::Common) >= 2.074 \
+Requires: perl(IO::Compress::Gzip) >= 2.074 \
+Requires: perl(IO::Compress::Gzip::Constants) >= 2.074 \
+Requires: perl(IO::Compress::RawDeflate) >= 2.074 \
+Requires: perl(IO::Compress::Zip::Constants) >= 2.074 \
+Requires: perl(IO::Compress::Zlib::Constants) >= 2.074 \
+Requires: perl(IO::Compress::Zlib::Extra) >= 2.074 \
+Requires: perl(IO::File) \
+Requires: perl(IO::Handle) \
+Requires: perl(IO::Uncompress::Adapter::Bunzip2) >= 2.074 \
+Requires: perl(IO::Uncompress::Adapter::Identity) >= 2.074 \
+Requires: perl(IO::Uncompress::Adapter::Inflate) >= 2.074 \
+Requires: perl(IO::Uncompress::Base) >= 2.074 \
+Requires: perl(IO::Uncompress::Gunzip) >= 2.074 \
+Requires: perl(IO::Uncompress::Inflate) >= 2.074 \
+Requires: perl(IO::Uncompress::RawInflate) >= 2.074 \
+Requires: perl(IO::Uncompress::Unzip) >= 2.074 \
+Requires: perl(List::Util) \
+Requires: perl(POSIX) \
+Requires: perl(Scalar::Util) \
+Requires: perl(Symbol) \
+Requires: perl(bytes) \
+Requires: perl(constant) \
+Requires: perl(strict) \
+Requires: perl(utf8) \
+Requires: perl(warnings) \
+Provides: perl(Compress::Zlib) = 2.074 \
+Provides: perl(File::GlobMapper) = 1.000 \
+Provides: perl(IO::Compress::Adapter::Bzip2) = 2.074 \
+Provides: perl(IO::Compress::Adapter::Deflate) = 2.074 \
+Provides: perl(IO::Compress::Adapter::Identity) = 2.074 \
+Provides: perl(IO::Compress::Base) = 2.074 \
+Provides: perl(IO::Compress::Base::Common) = 2.074 \
+Provides: perl(IO::Compress::Bzip2) = 2.074 \
+Provides: perl(IO::Compress::Deflate) = 2.074 \
+Provides: perl(IO::Compress::Gzip) = 2.074 \
+Provides: perl(IO::Compress::Gzip::Constants) = 2.074 \
+Provides: perl(IO::Compress::RawDeflate) = 2.074 \
+Provides: perl(IO::Compress::Zip) = 2.074 \
+Provides: perl(IO::Compress::Zip::Constants) = 2.074 \
+Provides: perl(IO::Compress::Zlib::Constants) = 2.074 \
+Provides: perl(IO::Compress::Zlib::Extra) = 2.074 \
+Provides: perl(IO::Uncompress::Adapter::Bunzip2) = 2.074 \
+Provides: perl(IO::Uncompress::Adapter::Identity) = 2.074 \
+Provides: perl(IO::Uncompress::Adapter::Inflate) = 2.074 \
+Provides: perl(IO::Uncompress::AnyInflate) = 2.074 \
+Provides: perl(IO::Uncompress::AnyUncompress) = 2.074 \
+Provides: perl(IO::Uncompress::Base) = 2.074 \
+Provides: perl(IO::Uncompress::Bunzip2) \
+Provides: perl(IO::Uncompress::Bunzip2) = 2.074 \
+Provides: perl(IO::Uncompress::Gunzip) = 2.074 \
+Provides: perl(IO::Uncompress::Inflate) = 2.074 \
+Provides: perl(IO::Uncompress::RawInflate) = 2.074 \
+Provides: perl(IO::Uncompress::Unzip) = 2.074 \
+Provides: perl(U64) \
+Provides: perl(Zlib::OldDeflate) \
+Provides: perl(Zlib::OldInflate) \
+%{nil}
+%global gendep_perl_IO_Socket_IP \
+Requires: perl(Carp) \
+Requires: perl(Errno) \
+Requires: perl(IO::Socket) \
+Requires: perl(IO::Socket::IP) \
+Requires: perl(POSIX) \
+Requires: perl(Socket) >= 1.97 \
+Requires: perl(base) \
+Requires: perl(constant) \
+Requires: perl(strict) \
+Requires: perl(warnings) \
+Provides: perl(IO::Socket::IP) = 0.38 \
+%{nil}
+%global gendep_perl_IO_Zlib \
+Requires: perl(:VERSION) >= 5.6.0 \
+Requires: perl(Carp) \
+Requires: perl(Fcntl) \
+Requires: perl(Symbol) \
+Requires: perl(Tie::Handle) \
+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) \
+Requires: perl(File::Spec) \
+Requires: perl(Locale::Maketext::Simple) \
+Requires: perl(Module::Load::Conditional) \
+Requires: perl(Params::Check) \
+Requires: perl(Symbol) \
+Requires: perl(Text::ParseWords) \
+Requires: perl(constant) \
+Requires: perl(strict) \
+Requires: perl(vars) \
+Provides: perl(IPC::Cmd) = 0.96 \
+%{nil}
+%global gendep_perl_IPC_SysV \
+Requires: perl(Carp) \
+Requires: perl(Class::Struct) \
+Requires: perl(Config) \
+Requires: perl(Exporter) \
+Requires: perl(IPC::SysV) \
+Requires: perl(strict) \
+Requires: perl(vars) \
+Provides: perl(IPC::Msg) = 2.07 \
+Provides: perl(IPC::Msg::stat) \
+Provides: perl(IPC::Semaphore) = 2.07 \
+Provides: perl(IPC::Semaphore::stat) \
+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) \
+Requires: perl(Carp) \
+Requires: perl(Exporter) \
+Requires: perl(Getopt::Long) \
+Requires: perl(JSON::PP) \
+Requires: perl(base) \
+Requires: perl(bytes) \
+Requires: perl(constant) \
+Requires: perl(overload) \
+Requires: perl(strict) \
+Provides: perl(JSON::PP) = 2.27400 \
+Provides: perl(JSON::PP::Boolean) \
+Provides: perl(JSON::PP::IncrParser) = 1.01 \
+%{nil}
+%global gendep_perl_Locale_Codes \
+Requires: perl(:VERSION) >= 5.2.0 \
+Requires: perl(:VERSION) >= 5.6.0 \
+Requires: perl(Carp) \
+Requires: perl(Exporter) \
+Requires: perl(Locale::Codes) \
+Requires: perl(Locale::Codes::Constants) \
+Requires: perl(constant) \
+Requires: perl(strict) \
+Requires: perl(utf8) \
+Requires: perl(warnings) \
+Provides: perl(Locale::Codes) = 3.25 \
+Provides: perl(Locale::Codes) = 3.42 \
+Provides: perl(Locale::Codes::Constants) = 3.42 \
+Provides: perl(Locale::Codes::Country) = 3.42 \
+Provides: perl(Locale::Codes::Currency) = 3.42 \
+Provides: perl(Locale::Codes::LangExt) = 3.42 \
+Provides: perl(Locale::Codes::LangFam) = 3.42 \
+Provides: perl(Locale::Codes::LangVar) = 3.42 \
+Provides: perl(Locale::Codes::Language) = 3.42 \
+Provides: perl(Locale::Codes::Script) = 3.42 \
+Provides: perl(Locale::Country) = 3.42 \
+Provides: perl(Locale::Currency) = 3.42 \
+Provides: perl(Locale::Language) = 3.42 \
+Provides: perl(Locale::Script) = 3.42 \
+%{nil}
+%global gendep_perl_Locale_Maketext \
+Requires: perl(Carp) \
+Requires: perl(I18N::LangTags) \
+Requires: perl(I18N::LangTags::Detect) \
+Requires: perl(Locale::Maketext) \
+Requires: perl(integer) \
+Requires: perl(strict) \
+Requires: perl(vars) \
+Provides: perl(Locale::Maketext) = 1.28 \
+Provides: perl(Locale::Maketext::Guts) = 1.20 \
+Provides: perl(Locale::Maketext::GutsLoader) = 1.20 \
+%{nil}
+%global gendep_perl_Locale_Maketext_Simple \
+Requires: perl(:VERSION) >= 5.5.0 \
+Requires: perl(Locale::Maketext) \
+Requires: perl(base) \
+Requires: perl(strict) \
+Provides: perl(Locale::Maketext::Simple) = 0.21 \
+%{nil}
+%global gendep_perl_MIME_Base64 \
+Requires: perl(Exporter) \
+Requires: perl(MIME::Base64) \
+Requires: perl(XSLoader) \
+Requires: perl(strict) \
+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) \
+Requires: perl(Exporter) \
+Requires: perl(Math::BigInt) \
+Requires: perl(Math::BigInt::Lib) \
+Requires: perl(constant) \
+Requires: perl(integer) \
+Requires: perl(overload) \
+Requires: perl(strict) \
+Requires: perl(warnings) \
+Provides: perl(Math::BigFloat) = 1.999806 \
+Provides: perl(Math::BigInt) = 1.999806 \
+Provides: perl(Math::BigInt::Calc) = 1.999806 \
+Provides: perl(Math::BigInt::CalcEmu) = 1.999806 \
+Provides: perl(Math::BigInt::Lib) = 1.999806 \
+%{nil}
+%global gendep_perl_Math_BigInt_FastCalc \
+Requires: perl(:VERSION) >= 5.6.0 \
+Requires: perl(Math::BigInt::Calc) \
+Requires: perl(XSLoader) \
+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) \
+Requires: perl(Math::BigFloat) \
+Requires: perl(overload) \
+Requires: perl(strict) \
+Requires: perl(warnings) \
+Provides: perl(Math::BigRat) = 0.2611 \
+%{nil}
+%global gendep_perl_Math_Complex \
+Requires: perl(Config) \
+Requires: perl(Exporter) \
+Requires: perl(Math::Complex) >= 1.59 \
+Requires: perl(Scalar::Util) \
+Requires: perl(overload) \
+Requires: perl(strict) \
+Requires: perl(warnings) \
+Provides: perl(Math::Complex) = 1.59 \
+Provides: perl(Math::Trig) = 1.23 \
+%{nil}
+%global gendep_perl_Memoize \
+Requires: perl(Carp) \
+Requires: perl(Config) \
+Requires: perl(Exporter) \
+Requires: perl(NDBM_File) \
+Requires: perl(SDBM_File) \
+Requires: perl(Storable) \
+Requires: perl(strict) \
+Requires: perl(vars) \
+Provides: perl(Memoize) = 1.03 \
+Provides: perl(Memoize::AnyDBM_File) = 1.03 \
+Provides: perl(Memoize::Expire) = 1.03 \
+Provides: perl(Memoize::ExpireFile) = 1.03 \
+Provides: perl(Memoize::ExpireTest) = 1.03 \
+Provides: perl(Memoize::NDBM_File) = 1.03 \
+Provides: perl(Memoize::SDBM_File) = 1.03 \
+Provides: perl(Memoize::Storable) = 1.03 \
+%{nil}
+%global gendep_perl_Module_CoreList \
+Requires: perl(Module::CoreList) \
+Requires: perl(strict) \
+Requires: perl(vars) \
+Requires: perl(version) \
+Requires: perl(warnings) \
+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) \
+Requires: perl(List::Util) \
+Requires: perl(Module::CoreList) \
+Requires: perl(Pod::Usage) \
+Requires: perl(strict) \
+Requires: perl(warnings) \
+%{nil}
+%global gendep_perl_Module_Load \
+Requires: perl(File::Spec) \
+Requires: perl(strict) \
+Requires: perl(warnings) \
+Provides: perl(Module::Load) = 0.32 \
+%{nil}
+%global gendep_perl_Module_Load_Conditional \
+Requires: perl(Carp) \
+Requires: perl(Exporter) \
+Requires: perl(File::Spec) \
+Requires: perl(FileHandle) \
+Requires: perl(Locale::Maketext::Simple) \
+Requires: perl(Module::Load) \
+Requires: perl(Module::Metadata) \
+Requires: perl(Params::Check) \
+Requires: perl(constant) \
+Requires: perl(strict) \
+Requires: perl(vars) \
+Requires: perl(version) \
+Provides: perl(Module::Load::Conditional) = 0.68 \
+%{nil}
+%global gendep_perl_Module_Loaded \
+Requires: perl(Carp) \
+Requires: perl(strict) \
+Requires: perl(vars) \
+Provides: perl(Module::Loaded) = 0.08 \
+%{nil}
+%global gendep_perl_Module_Metadata \
+Requires: perl(Carp) \
+Requires: perl(File::Find) \
+Requires: perl(File::Spec) \
+Requires: perl(strict) \
+Requires: perl(version) >= 0.87 \
+Requires: perl(warnings) \
+Provides: perl(Module::Metadata) = 1.000033 \
+%{nil}
+%global gendep_perl_Net_Ping \
+Requires: perl(:VERSION) >= 5.2.0 \
+Requires: perl(Carp) \
+Requires: perl(Exporter) \
+Requires: perl(Fcntl) \
+Requires: perl(FileHandle) \
+Requires: perl(POSIX) \
+Requires: perl(Socket) \
+Requires: perl(Time::HiRes) \
+Requires: perl(constant) \
+Requires: perl(strict) \
+Requires: perl(vars) \
+Provides: perl(Net::Ping) = 2.55 \
+%{nil}
+%global gendep_perl_Params_Check \
+Requires: perl(Carp) \
+Requires: perl(Exporter) \
+Requires: perl(Locale::Maketext::Simple) \
+Requires: perl(strict) \
+Requires: perl(vars) \
+Provides: perl(Params::Check) = 0.38 \
+%{nil}
+%global gendep_perl_PathTools \
+Requires: perl(Exporter) \
+Requires: perl(File::Spec) \
+Requires: perl(File::Spec::Unix) \
+Requires: perl(constant) \
+Requires: perl(strict) \
+Requires: perl(vars) \
+Provides: perl(Cwd) = 3.67 \
+Provides: perl(File::Spec) = 3.67 \
+Provides: perl(File::Spec::AmigaOS) = 3.67 \
+Provides: perl(File::Spec::Cygwin) = 3.67 \
+Provides: perl(File::Spec::Epoc) = 3.67 \
+Provides: perl(File::Spec::Functions) = 3.67 \
+Provides: perl(File::Spec::Mac) = 3.67 \
+Provides: perl(File::Spec::OS2) = 3.67 \
+Provides: perl(File::Spec::Unix) = 3.67 \
+Provides: perl(File::Spec::Win32) = 3.67 \
+%{nil}
+%global gendep_perl_PathTools_debuginfo \
+%{nil}
+%global gendep_perl_Perl_OSType \
+Requires: perl(Exporter) \
+Requires: perl(strict) \
+Requires: perl(warnings) \
+Provides: perl(Perl::OSType) = 1.010 \
+%{nil}
+%global gendep_perl_PerlIO_via_QuotedPrint \
+Requires: perl(MIME::QuotedPrint) \
+Requires: perl(strict) \
+Provides: perl(PerlIO::via::QuotedPrint) = 0.08 \
+%{nil}
+%global gendep_perl_Pod_Checker \
+Requires: perl(Carp) \
+Requires: perl(Exporter) \
+Requires: perl(Getopt::Long) \
+Requires: perl(Pod::Checker) \
+Requires: perl(Pod::Simple::Methody) \
+Requires: perl(Pod::Usage) \
+Requires: perl(base) \
+Requires: perl(strict) \
+Requires: perl(warnings) \
+Provides: perl(Pod::Checker) = 1.73 \
+%{nil}
+%global gendep_perl_Pod_Escapes \
+Requires: perl(:VERSION) >= 5.6.0 \
+Requires: perl(Exporter) \
+Requires: perl(strict) \
+Requires: perl(vars) \
+Requires: perl(warnings) \
+Provides: perl(Pod::Escapes) = 1.07 \
+%{nil}
+%global gendep_perl_Pod_Html \
+Requires: perl(Carp) \
+Requires: perl(Config) \
+Requires: perl(Cwd) \
+Requires: perl(Exporter) \
+Requires: perl(File::Basename) \
+Requires: perl(File::Spec) \
+Requires: perl(File::Spec::Unix) \
+Requires: perl(Getopt::Long) \
+Requires: perl(Pod::Html) \
+Requires: perl(Pod::Simple::Search) \
+Requires: perl(Pod::Simple::XHTML) \
+Requires: perl(locale) \
+Requires: perl(parent) \
+Requires: perl(strict) \
+Requires: perl(vars) \
+Requires: perl(warnings) \
+Provides: perl(Pod::Html) = 1.2202 \
+Provides: perl(Pod::Simple::XHTML::LocalPodLinks) \
+%{nil}
+%global gendep_perl_Pod_Parser \
+Requires: perl(:VERSION) >= 5.5.0 \
+Requires: perl(Carp) \
+Requires: perl(Cwd) \
+Requires: perl(Exporter) \
+Requires: perl(File::Find) \
+Requires: perl(File::Spec) \
+Requires: perl(Getopt::Long) \
+Requires: perl(Pod::InputObjects) \
+Requires: perl(Pod::Parser) >= 1.04 \
+Requires: perl(Pod::Select) \
+Requires: perl(Pod::Usage) \
+Requires: perl(strict) \
+Requires: perl(vars) \
+Provides: perl(Pod::Cache) \
+Provides: perl(Pod::Cache::Item) \
+Provides: perl(Pod::Find) = 1.63 \
+Provides: perl(Pod::Hyperlink) \
+Provides: perl(Pod::InputObjects) = 1.63 \
+Provides: perl(Pod::InputSource) \
+Provides: perl(Pod::InteriorSequence) \
+Provides: perl(Pod::List) \
+Provides: perl(Pod::Paragraph) \
+Provides: perl(Pod::ParseTree) \
+Provides: perl(Pod::ParseUtils) = 1.63 \
+Provides: perl(Pod::Parser) = 1.63 \
+Provides: perl(Pod::PlainText) = 2.07 \
+Provides: perl(Pod::Select) = 1.63 \
+%{nil}
+%global gendep_perl_Pod_Perldoc \
+Requires: perl(:VERSION) >= 5.0.0 \
+Requires: perl(:VERSION) >= 5.6.0 \
+Requires: perl(Carp) \
+Requires: perl(Config) \
+Requires: perl(Encode) \
+Requires: perl(Fcntl) \
+Requires: perl(File::Basename) \
+Requires: perl(File::Spec::Functions) \
+Requires: perl(IO::Select) \
+Requires: perl(Pod::Man) >= 2.18 \
+Requires: perl(Pod::Perldoc) \
+Requires: perl(Pod::Perldoc::BaseTo) \
+Requires: perl(Pod::Perldoc::GetOptsOO) \
+Requires: perl(Pod::Simple::RTF) \
+Requires: perl(Pod::Simple::XMLOutStream) \
+Requires: perl(Pod::Text) \
+Requires: perl(Pod::Text::Color) \
+Requires: perl(Pod::Text::Termcap) \
+Requires: perl(parent) \
+Requires: perl(strict) \
+Requires: perl(vars) \
+Requires: perl(warnings) \
+Provides: perl(Pod::Perldoc) = 3.28 \
+Provides: perl(Pod::Perldoc::BaseTo) = 3.28 \
+Provides: perl(Pod::Perldoc::GetOptsOO) = 3.28 \
+Provides: perl(Pod::Perldoc::ToANSI) = 3.28 \
+Provides: perl(Pod::Perldoc::ToChecker) = 3.28 \
+Provides: perl(Pod::Perldoc::ToMan) = 3.28 \
+Provides: perl(Pod::Perldoc::ToNroff) = 3.28 \
+Provides: perl(Pod::Perldoc::ToPod) = 3.28 \
+Provides: perl(Pod::Perldoc::ToRtf) = 3.28 \
+Provides: perl(Pod::Perldoc::ToTerm) = 3.28 \
+Provides: perl(Pod::Perldoc::ToText) = 3.28 \
+Provides: perl(Pod::Perldoc::ToTk) = 3.28 \
+Provides: perl(Pod::Perldoc::ToXml) = 3.28 \
+%{nil}
+%global gendep_perl_Pod_Simple \
+Requires: perl(:VERSION) >= 5.0.0 \
+Requires: perl(:VERSION) >= 5.5.0 \
+Requires: perl(:VERSION) >= 5.8.0 \
+Requires: perl(Carp) \
+Requires: perl(Config) \
+Requires: perl(Cwd) \
+Requires: perl(Encode) \
+Requires: perl(File::Basename) \
+Requires: perl(File::Spec) \
+Requires: perl(Getopt::Long) \
+Requires: perl(Pod::Escapes) >= 1.04 \
+Requires: perl(Pod::Simple) \
+Requires: perl(Pod::Simple::BlackBox) \
+Requires: perl(Pod::Simple::HTML) \
+Requires: perl(Pod::Simple::LinkSection) \
+Requires: perl(Pod::Simple::Methody) \
+Requires: perl(Pod::Simple::PullParser) \
+Requires: perl(Pod::Simple::PullParserEndToken) \
+Requires: perl(Pod::Simple::PullParserStartToken) \
+Requires: perl(Pod::Simple::PullParserTextToken) \
+Requires: perl(Pod::Simple::PullParserToken) \
+Requires: perl(Pod::Simple::Search) \
+Requires: perl(Symbol) \
+Requires: perl(Text::Wrap) >= 98.112902 \
+Requires: perl(integer) \
+Requires: perl(overload) \
+Requires: perl(strict) \
+Requires: perl(vars) \
+Provides: perl(Pod::Simple) = 3.35 \
+Provides: perl(Pod::Simple::BlackBox) = 3.35 \
+Provides: perl(Pod::Simple::Checker) = 3.35 \
+Provides: perl(Pod::Simple::Debug) = 3.35 \
+Provides: perl(Pod::Simple::DumpAsText) = 3.35 \
+Provides: perl(Pod::Simple::DumpAsXML) = 3.35 \
+Provides: perl(Pod::Simple::HTML) = 3.35 \
+Provides: perl(Pod::Simple::HTMLBatch) = 3.35 \
+Provides: perl(Pod::Simple::HTMLLegacy) = 5.01 \
+Provides: perl(Pod::Simple::LinkSection) = 3.35 \
+Provides: perl(Pod::Simple::Methody) = 3.35 \
+Provides: perl(Pod::Simple::Progress) = 3.35 \
+Provides: perl(Pod::Simple::PullParser) = 3.35 \
+Provides: perl(Pod::Simple::PullParserEndToken) = 3.35 \
+Provides: perl(Pod::Simple::PullParserStartToken) = 3.35 \
+Provides: perl(Pod::Simple::PullParserTextToken) = 3.35 \
+Provides: perl(Pod::Simple::PullParserToken) = 3.35 \
+Provides: perl(Pod::Simple::RTF) = 3.35 \
+Provides: perl(Pod::Simple::Search) = 3.35 \
+Provides: perl(Pod::Simple::SimpleTree) = 3.35 \
+Provides: perl(Pod::Simple::Text) = 3.35 \
+Provides: perl(Pod::Simple::TextContent) = 3.35 \
+Provides: perl(Pod::Simple::TiedOutFH) = 3.35 \
+Provides: perl(Pod::Simple::Transcode) = 3.35 \
+Provides: perl(Pod::Simple::TranscodeDumb) = 3.35 \
+Provides: perl(Pod::Simple::TranscodeSmart) = 3.35 \
+Provides: perl(Pod::Simple::XHTML) = 3.35 \
+Provides: perl(Pod::Simple::XMLOutStream) = 3.35 \
+%{nil}
+%global gendep_perl_Pod_Usage \
+Requires: perl(:VERSION) >= 5.6.0 \
+Requires: perl(Carp) \
+Requires: perl(Config) \
+Requires: perl(Exporter) \
+Requires: perl(File::Spec) \
+Requires: perl(Getopt::Long) \
+Requires: perl(Pod::Usage) \
+Requires: perl(strict) \
+Requires: perl(vars) \
+Provides: perl(Pod::Usage) = 1.69 \
+%{nil}
+%global gendep_perl_Scalar_List_Utils \
+Requires: perl(Exporter) \
+Requires: perl(List::Util) \
+Requires: perl(XSLoader) \
+Requires: perl(strict) \
+Requires: perl(warnings) \
+Provides: perl(List::Util) = 1.46 \
+Provides: perl(List::Util::XS) = 1.46 \
+Provides: perl(Scalar::Util) = 1.46 \
+Provides: perl(Sub::Util) = 1.46 \
+%{nil}
+%global gendep_perl_Scalar_List_Utils_debuginfo \
+%{nil}
+%global gendep_perl_SelfLoader \
+Requires: perl(:VERSION) >= 5.8.0 \
+Requires: perl(Exporter) \
+Requires: perl(IO::Handle) \
+Requires: perl(strict) \
+Requires: perl(vars) \
+Provides: perl(SelfLoader) = 1.23 \
+%{nil}
+%global gendep_perl_Socket \
+Requires: perl(Carp) \
+Requires: perl(Exporter) \
+Requires: perl(XSLoader) \
+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) \
+Requires: perl(Config) \
+Requires: perl(Exporter) \
+Requires: perl(File::Basename) \
+Requires: perl(POSIX) \
+Requires: perl(Socket) \
+Requires: perl(constant) \
+Requires: perl(strict) \
+Requires: perl(vars) \
+Requires: perl(warnings) \
+Requires: perl(warnings::register) \
+Provides: perl(Sys::Syslog) = 0.35 \
+%{nil}
+%global gendep_perl_Sys_Syslog_debuginfo \
+%{nil}
+%global gendep_perl_Term_ANSIColor \
+Requires: perl(:VERSION) >= 5.6.0 \
+Requires: perl(Exporter) \
+Requires: perl(strict) \
+Requires: perl(warnings) \
+Provides: perl(Term::ANSIColor) = 4.06 \
+%{nil}
+%global gendep_perl_Term_Cap \
+Requires: perl(strict) \
+Requires: perl(vars) \
+Provides: perl(Term::Cap) = 1.17 \
+%{nil}
+%global gendep_perl_Test \
+Requires: perl(:VERSION) >= 5.4.0 \
+Requires: perl(Carp) \
+Requires: perl(Exporter) \
+Requires: perl(strict) \
+Requires: perl(vars) \
+Provides: perl(Test) = 1.30 \
+%{nil}
+%global gendep_perl_Test_Harness \
+Requires: perl(:VERSION) >= 5.6.0 \
+Requires: perl(App::Prove) \
+Requires: perl(App::Prove::State) \
+Requires: perl(App::Prove::State::Result) \
+Requires: perl(App::Prove::State::Result::Test) \
+Requires: perl(Benchmark) \
+Requires: perl(Carp) \
+Requires: perl(Config) \
+Requires: perl(Exporter) \
+Requires: perl(File::Basename) \
+Requires: perl(File::Find) \
+Requires: perl(File::Path) \
+Requires: perl(File::Spec) \
+Requires: perl(Getopt::Long) \
+Requires: perl(IO::Handle) \
+Requires: perl(IO::Select) \
+Requires: perl(POSIX) \
+Requires: perl(TAP::Base) \
+Requires: perl(TAP::Formatter::Base) \
+Requires: perl(TAP::Formatter::Console::Session) \
+Requires: perl(TAP::Formatter::File::Session) \
+Requires: perl(TAP::Formatter::Session) \
+Requires: perl(TAP::Harness) \
+Requires: perl(TAP::Harness::Env) \
+Requires: perl(TAP::Object) \
+Requires: perl(TAP::Parser::Aggregator) \
+Requires: perl(TAP::Parser::Grammar) \
+Requires: perl(TAP::Parser::Iterator) \
+Requires: perl(TAP::Parser::Iterator::Array) \
+Requires: perl(TAP::Parser::Iterator::Process) \
+Requires: perl(TAP::Parser::Iterator::Stream) \
+Requires: perl(TAP::Parser::IteratorFactory) \
+Requires: perl(TAP::Parser::Result) \
+Requires: perl(TAP::Parser::Result::Bailout) \
+Requires: perl(TAP::Parser::Result::Comment) \
+Requires: perl(TAP::Parser::Result::Plan) \
+Requires: perl(TAP::Parser::Result::Pragma) \
+Requires: perl(TAP::Parser::Result::Test) \
+Requires: perl(TAP::Parser::Result::Unknown) \
+Requires: perl(TAP::Parser::Result::Version) \
+Requires: perl(TAP::Parser::Result::YAML) \
+Requires: perl(TAP::Parser::ResultFactory) \
+Requires: perl(TAP::Parser::Scheduler::Job) \
+Requires: perl(TAP::Parser::Scheduler::Spinner) \
+Requires: perl(TAP::Parser::Source) \
+Requires: perl(TAP::Parser::SourceHandler) \
+Requires: perl(TAP::Parser::SourceHandler::Executable) \
+Requires: perl(TAP::Parser::SourceHandler::File) \
+Requires: perl(TAP::Parser::SourceHandler::Handle) \
+Requires: perl(TAP::Parser::SourceHandler::Perl) \
+Requires: perl(TAP::Parser::SourceHandler::RawTAP) \
+Requires: perl(TAP::Parser::YAMLish::Reader) \
+Requires: perl(TAP::Parser::YAMLish::Writer) \
+Requires: perl(Text::ParseWords) \
+Requires: perl(base) \
+Requires: perl(constant) \
+Requires: perl(strict) \
+Requires: perl(warnings) \
+Provides: perl(App::Prove) = 3.38 \
+Provides: perl(App::Prove::State) = 3.38 \
+Provides: perl(App::Prove::State::Result) = 3.38 \
+Provides: perl(App::Prove::State::Result::Test) = 3.38 \
+Provides: perl(TAP::Base) = 3.38 \
+Provides: perl(TAP::Formatter::Base) = 3.38 \
+Provides: perl(TAP::Formatter::Color) = 3.38 \
+Provides: perl(TAP::Formatter::Console) = 3.38 \
+Provides: perl(TAP::Formatter::Console::ParallelSession) = 3.38 \
+Provides: perl(TAP::Formatter::Console::Session) = 3.38 \
+Provides: perl(TAP::Formatter::File) = 3.38 \
+Provides: perl(TAP::Formatter::File::Session) = 3.38 \
+Provides: perl(TAP::Formatter::Session) = 3.38 \
+Provides: perl(TAP::Harness) = 3.38 \
+Provides: perl(TAP::Harness::Env) = 3.38 \
+Provides: perl(TAP::Object) = 3.38 \
+Provides: perl(TAP::Parser) = 3.38 \
+Provides: perl(TAP::Parser::Aggregator) = 3.38 \
+Provides: perl(TAP::Parser::Grammar) = 3.38 \
+Provides: perl(TAP::Parser::Iterator) = 3.38 \
+Provides: perl(TAP::Parser::Iterator::Array) = 3.38 \
+Provides: perl(TAP::Parser::Iterator::Process) = 3.38 \
+Provides: perl(TAP::Parser::Iterator::Stream) = 3.38 \
+Provides: perl(TAP::Parser::IteratorFactory) = 3.38 \
+Provides: perl(TAP::Parser::Multiplexer) = 3.38 \
+Provides: perl(TAP::Parser::Result) = 3.38 \
+Provides: perl(TAP::Parser::Result::Bailout) = 3.38 \
+Provides: perl(TAP::Parser::Result::Comment) = 3.38 \
+Provides: perl(TAP::Parser::Result::Plan) = 3.38 \
+Provides: perl(TAP::Parser::Result::Pragma) = 3.38 \
+Provides: perl(TAP::Parser::Result::Test) = 3.38 \
+Provides: perl(TAP::Parser::Result::Unknown) = 3.38 \
+Provides: perl(TAP::Parser::Result::Version) = 3.38 \
+Provides: perl(TAP::Parser::Result::YAML) = 3.38 \
+Provides: perl(TAP::Parser::ResultFactory) = 3.38 \
+Provides: perl(TAP::Parser::Scheduler) = 3.38 \
+Provides: perl(TAP::Parser::Scheduler::Job) = 3.38 \
+Provides: perl(TAP::Parser::Scheduler::Spinner) = 3.38 \
+Provides: perl(TAP::Parser::Source) = 3.38 \
+Provides: perl(TAP::Parser::SourceHandler) = 3.38 \
+Provides: perl(TAP::Parser::SourceHandler::Executable) = 3.38 \
+Provides: perl(TAP::Parser::SourceHandler::File) = 3.38 \
+Provides: perl(TAP::Parser::SourceHandler::Handle) = 3.38 \
+Provides: perl(TAP::Parser::SourceHandler::Perl) = 3.38 \
+Provides: perl(TAP::Parser::SourceHandler::RawTAP) = 3.38 \
+Provides: perl(TAP::Parser::YAMLish::Reader) = 3.38 \
+Provides: perl(TAP::Parser::YAMLish::Writer) = 3.38 \
+Provides: perl(Test::Harness) = 3.38 \
+%{nil}
+%global gendep_perl_Test_Simple \
+Requires: perl(:VERSION) >= 5.5.0 \
+Requires: perl(:VERSION) >= 5.6.0 \
+Requires: perl(Carp) \
+Requires: perl(Config) \
+Requires: perl(Exporter) \
+Requires: perl(File::Spec) \
+Requires: perl(File::Temp) \
+Requires: perl(IO::Handle) \
+Requires: perl(POSIX) \
+Requires: perl(PerlIO) \
+Requires: perl(Scalar::Util) \
+Requires: perl(Storable) \
+Requires: perl(Symbol) \
+Requires: perl(Test2::API) \
+Requires: perl(Test2::API::Context) \
+Requires: perl(Test2::API::Instance) \
+Requires: perl(Test2::API::Stack) \
+Requires: perl(Test2::Event::Bail) \
+Requires: perl(Test2::Event::Diag) \
+Requires: perl(Test2::Event::Exception) \
+Requires: perl(Test2::Event::Note) \
+Requires: perl(Test2::Event::Ok) \
+Requires: perl(Test2::Event::Plan) \
+Requires: perl(Test2::Event::Skip) \
+Requires: perl(Test2::Event::Subtest) \
+Requires: perl(Test2::Event::Waiting) \
+Requires: perl(Test2::Hub) \
+Requires: perl(Test2::Hub::Interceptor) \
+Requires: perl(Test2::Hub::Interceptor::Terminator) \
+Requires: perl(Test2::Hub::Subtest) \
+Requires: perl(Test2::Util) \
+Requires: perl(Test2::Util::ExternalMeta) \
+Requires: perl(Test2::Util::HashBase) \
+Requires: perl(Test2::Util::Trace) \
+Requires: perl(Test::Builder) \
+Requires: perl(Test::Builder::Formatter) \
+Requires: perl(Test::Builder::Module) \
+Requires: perl(Test::Builder::Tester) \
+Requires: perl(Test::Builder::TodoDiag) \
+Requires: perl(Test::More) \
+Requires: perl(Test::Tester::Capture) \
+Requires: perl(Test::Tester::CaptureRunner) \
+Requires: perl(Test::Tester::Delegate) \
+Requires: perl(strict) \
+Requires: perl(vars) \
+Requires: perl(warnings) \
+Provides: perl(Test2) = 1.302073 \
+Provides: perl(Test2::API) = 1.302073 \
+Provides: perl(Test2::API::Breakage) = 1.302073 \
+Provides: perl(Test2::API::Context) = 1.302073 \
+Provides: perl(Test2::API::Instance) = 1.302073 \
+Provides: perl(Test2::API::Stack) = 1.302073 \
+Provides: perl(Test2::Event) = 1.302073 \
+Provides: perl(Test2::Event::Bail) = 1.302073 \
+Provides: perl(Test2::Event::Diag) = 1.302073 \
+Provides: perl(Test2::Event::Encoding) = 1.302073 \
+Provides: perl(Test2::Event::Exception) = 1.302073 \
+Provides: perl(Test2::Event::Generic) = 1.302073 \
+Provides: perl(Test2::Event::Info) = 1.302073 \
+Provides: perl(Test2::Event::Note) = 1.302073 \
+Provides: perl(Test2::Event::Ok) = 1.302073 \
+Provides: perl(Test2::Event::Plan) = 1.302073 \
+Provides: perl(Test2::Event::Skip) = 1.302073 \
+Provides: perl(Test2::Event::Subtest) = 1.302073 \
+Provides: perl(Test2::Event::TAP::Version) = 1.302073 \
+Provides: perl(Test2::Event::Waiting) = 1.302073 \
+Provides: perl(Test2::Formatter) = 1.302073 \
+Provides: perl(Test2::Formatter::TAP) = 1.302073 \
+Provides: perl(Test2::Hub) = 1.302073 \
+Provides: perl(Test2::Hub::Interceptor) = 1.302073 \
+Provides: perl(Test2::Hub::Interceptor::Terminator) = 1.302073 \
+Provides: perl(Test2::Hub::Subtest) = 1.302073 \
+Provides: perl(Test2::IPC) = 1.302073 \
+Provides: perl(Test2::IPC::Driver) = 1.302073 \
+Provides: perl(Test2::IPC::Driver::Files) = 1.302073 \
+Provides: perl(Test2::Tools::Tiny) = 1.302073 \
+Provides: perl(Test2::Util) = 1.302073 \
+Provides: perl(Test2::Util::ExternalMeta) = 1.302073 \
+Provides: perl(Test2::Util::HashBase) = 0.002 \
+Provides: perl(Test2::Util::Trace) = 1.302073 \
+Provides: perl(Test::Builder) = 1.302073 \
+Provides: perl(Test::Builder::Formatter) = 1.302073 \
+Provides: perl(Test::Builder::IO::Scalar) = 2.113 \
+Provides: perl(Test::Builder::Module) = 1.302073 \
+Provides: perl(Test::Builder::Tester) = 1.302073 \
+Provides: perl(Test::Builder::Tester::Color) = 1.302073 \
+Provides: perl(Test::Builder::Tester::Tie) \
+Provides: perl(Test::Builder::TodoDiag) = 1.302073 \
+Provides: perl(Test::More) = 1.302073 \
+Provides: perl(Test::Simple) = 1.302073 \
+Provides: perl(Test::Tester) = 1.302073 \
+Provides: perl(Test::Tester::Capture) = 1.302073 \
+Provides: perl(Test::Tester::CaptureRunner) = 1.302073 \
+Provides: perl(Test::Tester::Delegate) = 1.302073 \
+Provides: perl(Test::use::ok) = 1.302073 \
+Provides: perl(ok) = 1.302073 \
+%{nil}
+%global gendep_perl_Text_Balanced \
+Requires: perl(:VERSION) >= 5.5.0 \
+Requires: perl(Carp) \
+Requires: perl(Exporter) \
+Requires: perl(SelfLoader) \
+Requires: perl(overload) \
+Requires: perl(strict) \
+Requires: perl(vars) \
+Provides: perl(Text::Balanced) = 2.03 \
+Provides: perl(Text::Balanced::ErrorMsg) \
+Provides: perl(Text::Balanced::Extractor) \
+%{nil}
+%global gendep_perl_Text_ParseWords \
+Requires: perl(:VERSION) >= 5.6.0 \
+Requires: perl(Exporter) \
+Requires: perl(strict) \
+Provides: perl(Text::ParseWords) = 3.30 \
+%{nil}
+%global gendep_perl_Text_Tabs_Wrap \
+Requires: perl(:VERSION) >= 5.10.0 \
+Requires: perl(Exporter) \
+Requires: perl(Text::Tabs) \
+Requires: perl(re) \
+Requires: perl(strict) \
+Requires: perl(vars) \
+Requires: perl(warnings::register) \
+Provides: perl(Text::Tabs) = 2013.0523 \
+Provides: perl(Text::Wrap) = 2013.0523 \
+%{nil}
+%global gendep_perl_Thread_Queue \
+Requires: perl(Scalar::Util) >= 1.10 \
+Requires: perl(strict) \
+Requires: perl(threads::shared) >= 1.21 \
+Requires: perl(warnings) \
+Provides: perl(Thread::Queue) = 3.12 \
+%{nil}
+%global gendep_perl_Time_HiRes \
+Requires: perl(DynaLoader) \
+Requires: perl(Exporter) \
+Requires: perl(strict) \
+Provides: perl(Time::HiRes) = 1.9741 \
+%{nil}
+%global gendep_perl_Time_HiRes_debuginfo \
+%{nil}
+%global gendep_perl_Time_Local \
+Requires: perl(Carp) \
+Requires: perl(Exporter) \
+Requires: perl(constant) \
+Requires: perl(parent) \
+Requires: perl(strict) \
+Provides: perl(Time::Local) = 1.25 \
+%{nil}
+%global gendep_perl_Time_Piece \
+Requires: perl(Carp) \
+Requires: perl(DynaLoader) \
+Requires: perl(Exporter) >= 5.57 \
+Requires: perl(Time::Local) \
+Requires: perl(Time::Seconds) \
+Requires: perl(constant) \
+Requires: perl(integer) \
+Requires: perl(overload) \
+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) \
+Requires: perl(DynaLoader) \
+Requires: perl(File::Spec) \
+Requires: perl(Unicode::Collate) \
+Requires: perl(base) \
+Requires: perl(constant) \
+Requires: perl(strict) \
+Requires: perl(warnings) \
+Provides: perl(Unicode::Collate) = 1.19 \
+Provides: perl(Unicode::Collate::CJK::Big5) = 1.19 \
+Provides: perl(Unicode::Collate::CJK::GB2312) = 1.19 \
+Provides: perl(Unicode::Collate::CJK::JISX0208) = 1.19 \
+Provides: perl(Unicode::Collate::CJK::Korean) = 1.19 \
+Provides: perl(Unicode::Collate::CJK::Pinyin) = 1.19 \
+Provides: perl(Unicode::Collate::CJK::Stroke) = 1.19 \
+Provides: perl(Unicode::Collate::CJK::Zhuyin) = 1.19 \
+Provides: perl(Unicode::Collate::Locale) = 1.19 \
+%{nil}
+%global gendep_perl_Unicode_Collate_debuginfo \
+%{nil}
+%global gendep_perl_Unicode_Normalize \
+Requires: perl(:VERSION) >= 5.6.0 \
+Requires: perl(Carp) \
+Requires: perl(DynaLoader) \
+Requires: perl(Exporter) \
+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) \
+Requires: perl(Config) \
+Requires: perl(Exporter) >= 5.57 \
+Requires: perl(Fatal) \
+Requires: perl(Scalar::Util) \
+Requires: perl(Tie::RefHash) \
+Requires: perl(autodie::Scope::Guard) \
+Requires: perl(autodie::Scope::GuardStack) \
+Requires: perl(autodie::Util) \
+Requires: perl(autodie::exception) \
+Requires: perl(constant) \
+Requires: perl(lib) \
+Requires: perl(overload) \
+Requires: perl(parent) \
+Requires: perl(strict) \
+Requires: perl(warnings) \
+Provides: perl(Fatal) = 2.29 \
+Provides: perl(autodie) = 2.29 \
+Provides: perl(autodie::Scope::Guard) = 2.29 \
+Provides: perl(autodie::Scope::GuardStack) = 2.29 \
+Provides: perl(autodie::Util) = 2.29 \
+Provides: perl(autodie::exception) = 2.29 \
+Provides: perl(autodie::exception::system) = 2.29 \
+Provides: perl(autodie::hints) = 2.29 \
+Provides: perl(autodie::skip) = 2.29 \
+%{nil}
+%global gendep_perl_bignum \
+Requires: perl(:VERSION) >= 5.6.0 \
+Requires: perl(Exporter) \
+Requires: perl(Math::BigFloat) \
+Requires: perl(Math::BigInt) \
+Requires: perl(bigint) \
+Requires: perl(constant) \
+Requires: perl(overload) \
+Requires: perl(strict) \
+Requires: perl(warnings) \
+Provides: perl(Math::BigFloat::Trace) = 0.47 \
+Provides: perl(Math::BigInt::Trace) = 0.47 \
+Provides: perl(bigint) = 0.47 \
+Provides: perl(bignum) = 0.47 \
+Provides: perl(bigrat) = 0.47 \
+%{nil}
+%global gendep_perl_constant \
+Requires: perl(:VERSION) >= 5.8.0 \
+Requires: perl(strict) \
+Requires: perl(warnings::register) \
+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) \
+Requires: perl(ExtUtils::Installed) \
+Requires: perl(File::Compare) \
+Requires: perl(File::Path) \
+Requires: perl(File::Spec) \
+Requires: perl(Getopt::Long) \
+Requires: perl(Text::Wrap) \
+Requires: perl(strict) \
+Requires: perl(vars) \
+Requires: perl(warnings) \
+%{nil}
+%global gendep_perl_encoding \
+Requires: perl(Encode) \
+Requires: perl(constant) \
+Requires: perl(strict) \
+Requires: perl(warnings) \
+Provides: perl(encoding) = 2.19 \
+%{nil}
+%global gendep_perl_experimental \
+Requires: perl(Carp) \
+Requires: perl(feature) \
+Requires: perl(strict) \
+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) \
+Requires: perl(Errno) \
+Requires: perl(Exporter) \
+Requires: perl(Fcntl) \
+Requires: perl(FileHandle) \
+Requires: perl(IO::Select) \
+Requires: perl(IO::Socket) \
+Requires: perl(Net::Cmd) \
+Requires: perl(Net::Config) \
+Requires: perl(Net::FTP::I) \
+Requires: perl(Net::FTP::dataconn) \
+Requires: perl(Socket) \
+Requires: perl(Symbol) \
+Requires: perl(Time::Local) \
+Requires: perl(constant) \
+Requires: perl(strict) \
+Requires: perl(warnings) \
+Provides: perl(Net::Cmd) = 3.10 \
+Provides: perl(Net::Config) = 3.10 \
+Provides: perl(Net::Domain) = 3.10 \
+Provides: perl(Net::FTP) = 3.10 \
+Provides: perl(Net::FTP::A) = 3.10 \
+Provides: perl(Net::FTP::E) = 3.10 \
+Provides: perl(Net::FTP::I) = 3.10 \
+Provides: perl(Net::FTP::L) = 3.10 \
+Provides: perl(Net::FTP::_SSL_SingleSessionCache) \
+Provides: perl(Net::FTP::dataconn) = 3.10 \
+Provides: perl(Net::NNTP) = 3.10 \
+Provides: perl(Net::NNTP::_SSL) \
+Provides: perl(Net::Netrc) = 3.10 \
+Provides: perl(Net::POP3) = 3.10 \
+Provides: perl(Net::POP3::_SSL) \
+Provides: perl(Net::SMTP) = 3.10 \
+Provides: perl(Net::SMTP::_SSL) \
+Provides: perl(Net::Time) = 3.10 \
+%{nil}
+%global gendep_perl_libnetcfg \
+Requires: perl(ExtUtils::MakeMaker) \
+Requires: perl(File::Spec) \
+Requires: perl(Getopt::Std) \
+Requires: perl(IO::File) \
+Requires: perl(strict) \
+Requires: perl(vars) \
+%{nil}
+%global gendep_perl_libs \
+Requires: perl(integer) \
+Requires: perl(strict) \
+Requires: perl(warnings) \
+Provides: perl(:MODULE_COMPAT_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) \
+Provides: perl(:WITH_THREADS) \
+Provides: perl(XSLoader) = 0.27 \
+Provides: perl(integer) = 1.01 \
+Provides: perl(re) = 0.34 \
+Provides: perl(strict) = 1.11 \
+Provides: perl(unicore::Name) \
+Provides: perl(utf8) = 1.19 \
+Provides: perl(utf8_heavy.pl) \
+Provides: perl(warnings) = 1.37 \
+%{nil}
+%global gendep_perl_libs_debuginfo \
+%{nil}
+%global gendep_perl_macros \
+%{nil}
+%global gendep_perl_open \
+Requires: perl(:VERSION) >= 5.8.1 \
+Requires: perl(warnings) \
+Provides: perl(open) = 1.11 \
+%{nil}
+%global gendep_perl_parent \
+Requires: perl(strict) \
+Requires: perl(vars) \
+Provides: perl(parent) = 0.236 \
+%{nil}
+%global gendep_perl_perlfaq \
+Requires: perl(strict) \
+Requires: perl(warnings) \
+Provides: perl(perlfaq) = 5.021011 \
+%{nil}
+%global gendep_perl_podlators \
+Requires: perl(:VERSION) >= 5.6.0 \
+Requires: perl(Carp) \
+Requires: perl(Encode) \
+Requires: perl(Exporter) \
+Requires: perl(Getopt::Long) \
+Requires: perl(POSIX) \
+Requires: perl(Pod::Man) \
+Requires: perl(Pod::Simple) \
+Requires: perl(Pod::Text) \
+Requires: perl(Pod::Usage) \
+Requires: perl(Term::ANSIColor) \
+Requires: perl(Term::Cap) \
+Requires: perl(strict) \
+Requires: perl(subs) \
+Requires: perl(vars) \
+Requires: perl(warnings) \
+Provides: perl(Pod::Man) = 4.09 \
+Provides: perl(Pod::ParseLink) = 4.09 \
+Provides: perl(Pod::Text) = 4.09 \
+Provides: perl(Pod::Text::Color) = 4.09 \
+Provides: perl(Pod::Text::Overstrike) = 4.09 \
+Provides: perl(Pod::Text::Termcap) = 4.09 \
+%{nil}
+%global gendep_perl_tests \
+%{nil}
+%global gendep_perl_threads \
+Requires: perl(:VERSION) >= 5.8.0 \
+Requires: perl(Config) \
+Requires: perl(XSLoader) \
+Requires: perl(overload) \
+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) \
+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) \
+Requires: perl(Config) \
+Requires: perl(File::Basename) \
+Requires: perl(File::Path) \
+Requires: perl(File::Spec) \
+Requires: perl(Getopt::Std) \
+Requires: perl(Text::Tabs) \
+Requires: perl(re) \
+Requires: perl(strict) \
+Requires: perl(vars) \
+Requires: perl(warnings) \
+%{nil}
+%global gendep_perl_version \
+Requires: perl(:VERSION) >= 5.6.2 \
+Requires: perl(strict) \
+Requires: perl(vars) \
+Requires: perl(version::regex) \
+Requires: perl(warnings::register) \
+Provides: perl(version) = 0.9917 \
+Provides: perl(version::regex) = 0.9917 \
+%{nil}
diff --git a/SOURCES/macros.perl b/SOURCES/macros.perl
new file mode 100644
index 0000000..9c1fd0c
--- /dev/null
+++ b/SOURCES/macros.perl
@@ -0,0 +1,151 @@
+# Sensible Perl-specific RPM build macros.
+#
+# Note that these depend on the generic filtering system being in place in
+# rpm core; but won't cause a build to fail if they're not present.
+#
+# Chris Weyl <cweyl@alumni.drew.edu> 2009
+# Marcela Mašláňová <mmaslano@redhat.com> 2011
+
+# This macro unsets several common vars used to control how Makefile.PL (et
+# al) build and install packages.  We also set a couple to help some of the
+# common systems be less interactive.  This was blatantly stolen from
+# cpanminus, and helps building rpms locally when one makes extensive use of
+# local::lib, etc.
+#
+# Usage, in %build, before "%{__perl} Makefile.PL ..."
+#
+#   %{?perl_ext_env_unset}
+
+%perl_ext_env_unset %{expand:
+unset PERL_MM_OPT MODULEBUILDRC PERL5INC
+export PERL_AUTOINSTALL="--defaultdeps"
+export PERL_MM_USE_DEFAULT=1
+}
+
+#############################################################################
+# Filtering macro incantations
+
+# keep track of what "revision" of the filtering we're at.  Each time we
+# change the filter we should increment this.
+
+%perl_default_filter_revision 3
+
+# By default, for perl packages we want to filter all files in _docdir from 
+# req/prov scanning.
+# Filtering out any provides caused by private libs in vendorarch/archlib
+# (vendor/core) is done by rpmbuild since Fedora 20
+# <https://fedorahosted.org/fpc/ticket/353>.
+#
+# Note that this must be invoked in the spec file, preferably as 
+# "%{?perl_default_filter}", before any %description block.
+
+%perl_default_filter %{expand: \
+%global __provides_exclude_from %{?__provides_exclude_from:%__provides_exclude_from|}^%{_docdir}
+%global __requires_exclude_from %{?__requires_exclude_from:%__requires_exclude_from|}^%{_docdir}
+%global __provides_exclude %{?__provides_exclude:%__provides_exclude|}^perl\\\\(VMS|^perl\\\\(Win32|^perl\\\\(DB\\\\)|^perl\\\\(UNIVERSAL\\\\)
+%global __requires_exclude %{?__requires_exclude:%__requires_exclude|}^perl\\\\(VMS|^perl\\\\(Win32
+}
+
+#############################################################################
+# Macros to assist with generating a "-tests" subpackage in a semi-automatic
+# manner.
+#
+# The following macros are still in a highly experimental stage and users
+# should be aware that the interface and behaviour may change. 
+#
+# PLEASE, PLEASE CONDITIONALIZE THESE MACROS IF YOU USE THEM.
+#
+# See http://gist.github.com/284409
+
+# These macros should be invoked as above, right before the first %description
+# section, and conditionalized.  e.g., for the common case where all our tests
+# are located under t/, the correct usage is:
+#
+#   %{?perl_default_subpackage_tests}
+#
+# If custom files/directories need to be specified, this can be done as such:
+#
+#   %{?perl_subpackage_tests:%perl_subpackage_tests t/ one/ three.sql}
+#
+# etc, etc.
+
+%perl_version   %(eval "`%{__perl} -V:version`"; echo $version)
+%perl_testdir   %{_libexecdir}/perl5-tests
+%cpan_dist_name %(eval echo %{name} | %{__sed} -e 's/^perl-//')
+
+# easily mark something as required by -tests and BR to the main package
+%tests_req() %{expand:\
+BuildRequires: %*\
+%%tests_subpackage_requires %*\
+}
+
+# fixup (and create if needed) the shbang lines in tests, so they work and
+# rpmlint doesn't (correctly) have a fit
+%fix_shbang_line() \
+TMPHEAD=`mktemp`\
+TMPBODY=`mktemp`\
+for file in %* ; do \
+    head -1 $file > $TMPHEAD\
+    tail -n +2 $file > $TMPBODY\
+    %{__perl} -pi -e '$f = /^#!/ ? "" : "#!%{__perl}$/"; $_="$f$_"' $TMPHEAD\
+    cat $TMPHEAD $TMPBODY > $file\
+done\
+%{__perl} -MExtUtils::MakeMaker -e "ExtUtils::MM_Unix->fixin(qw{%*})"\
+%{__rm} $TMPHEAD $TMPBODY\
+%{nil}
+
+# additional -tests subpackage requires, if any
+%tests_subpackage_requires() %{expand: \
+%global __tests_spkg_req %{?__tests_spkg_req} %* \
+}
+
+# additional -tests subpackage provides, if any
+%tests_subpackage_provides() %{expand: \
+%global __tests_spkg_prov %{?__tests_spkg_prov} %* \
+}
+
+#
+# Runs after the body of %check completes.
+#
+
+%__perl_check_pre %{expand: \
+%{?__spec_check_pre} \
+pushd %{buildsubdir} \
+%define perl_br_testdir %{buildroot}%{perl_testdir}/%{cpan_dist_name} \
+%{__mkdir_p} %{perl_br_testdir} \
+%{__tar} -cf - %{__perl_test_dirs} | ( cd %{perl_br_testdir} && %{__tar} -xf - ) \
+find . -maxdepth 1 -type f -name '*META*' -exec %{__cp} -vp {} %{perl_br_testdir} ';' \
+find %{perl_br_testdir} -type f -exec %{__chmod} -c -x {} ';' \
+T_FILES=`find %{perl_br_testdir} -type f -name '*.t'` \
+%fix_shbang_line $T_FILES \
+%{__chmod} +x $T_FILES \
+%{_fixperms} %{perl_br_testdir} \
+popd \
+}
+
+#
+# The actual invoked macro
+#
+
+%perl_subpackage_tests() %{expand: \
+%global __perl_package 1\
+%global __perl_test_dirs %* \
+%global __spec_check_pre %{expand:%{__perl_check_pre}} \
+%package tests\
+Summary: Test suite for package %{name}\
+Group: Development/Debug\
+Requires: %{name} = %{?epoch:%{epoch}:}%{version}-%{release}\
+Requires: /usr/bin/prove \
+%{?__tests_spkg_req:Requires: %__tests_spkg_req}\
+%{?__tests_spkg_prov:Provides: %__tests_spkg_prov}\
+AutoReqProv: 0 \
+%description tests\
+This package provides the test suite for package %{name}.\
+%files tests\
+%defattr(-,root,root,-)\
+%{perl_testdir}\
+}
+
+# shortcut sugar
+%perl_default_subpackage_tests %perl_subpackage_tests t/
+
diff --git a/SOURCES/perl-5.10.0-libresolv.patch b/SOURCES/perl-5.10.0-libresolv.patch
new file mode 100644
index 0000000..a844a28
--- /dev/null
+++ b/SOURCES/perl-5.10.0-libresolv.patch
@@ -0,0 +1,12 @@
+diff -up perl-5.10.0/Configure.didi perl-5.10.0/Configure
+--- perl-5.10.0/Configure.didi	2007-12-18 11:47:07.000000000 +0100
++++ perl-5.10.0/Configure	2008-07-21 10:51:16.000000000 +0200
+@@ -1479,7 +1479,7 @@ archname=''
+ usereentrant='undef'
+ : List of libraries we want.
+ : If anyone needs extra -lxxx, put those in a hint file.
+-libswanted="cl pthread socket bind inet nsl ndbm gdbm dbm db malloc dl ld"
++libswanted="cl pthread socket resolv inet nsl ndbm gdbm dbm db malloc dl ld"
+ libswanted="$libswanted sun m crypt sec util c cposix posix ucb bsd BSD"
+ : We probably want to search /usr/shlib before most other libraries.
+ : This is only used by the lib/ExtUtils/MakeMaker.pm routine extliblist.
diff --git a/SOURCES/perl-5.10.0-x86_64-io-test-failure.patch b/SOURCES/perl-5.10.0-x86_64-io-test-failure.patch
new file mode 100644
index 0000000..08adda8
--- /dev/null
+++ b/SOURCES/perl-5.10.0-x86_64-io-test-failure.patch
@@ -0,0 +1,12 @@
+diff -up perl-5.10.0/t/io/fs.t.BAD perl-5.10.0/t/io/fs.t
+--- perl-5.10.0/t/io/fs.t.BAD	2008-01-30 13:36:43.000000000 -0500
++++ perl-5.10.0/t/io/fs.t	2008-01-30 13:41:27.000000000 -0500
+@@ -227,7 +227,7 @@ isnt($atime, 500000000, 'atime');
+ isnt($mtime, 500000000 + $delta, 'mtime');
+ 
+ SKIP: {
+-    skip "no futimes", 6 unless ($Config{d_futimes} || "") eq "define";
++    skip "no futimes", 6;
+     open(my $fh, "<", 'b');
+     $foo = (utime 500000000,500000000 + $delta, $fh);
+     is($foo, 1, "futime");
diff --git a/SOURCES/perl-5.14.1-offtest.patch b/SOURCES/perl-5.14.1-offtest.patch
new file mode 100644
index 0000000..45294c8
--- /dev/null
+++ b/SOURCES/perl-5.14.1-offtest.patch
@@ -0,0 +1,17 @@
+diff -up perl-5.14.1/cpan/File-Temp/t/fork.t.off perl-5.14.1/cpan/File-Temp/t/fork.t
+--- perl-5.14.1/cpan/File-Temp/t/fork.t.off	2011-04-13 13:36:34.000000000 +0200
++++ perl-5.14.1/cpan/File-Temp/t/fork.t	2011-06-20 10:29:31.536282611 +0200
+@@ -12,12 +12,8 @@ BEGIN {
+      $Config::Config{useithreads} and
+      $Config::Config{ccflags} =~ /-DPERL_IMPLICIT_SYS/
+     );
+-  if ( $can_fork ) {
+-    print "1..8\n";
+-  } else {
+-    print "1..0 # Skip No fork available\n";
++    print "1..0 # Skip Koji doesn't work with Perl fork tests\n";
+     exit;
+-  }
+ }
+ 
+ use File::Temp;
diff --git a/SOURCES/perl-5.16.3-Link-XS-modules-to-libperl.so-with-EU-CBuilder-on-Li.patch b/SOURCES/perl-5.16.3-Link-XS-modules-to-libperl.so-with-EU-CBuilder-on-Li.patch
new file mode 100644
index 0000000..d87aca7
--- /dev/null
+++ b/SOURCES/perl-5.16.3-Link-XS-modules-to-libperl.so-with-EU-CBuilder-on-Li.patch
@@ -0,0 +1,65 @@
+From b598ba3f2d4b8347c6621cff022b8e2329b79ea5 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= <ppisar@redhat.com>
+Date: Wed, 3 Jul 2013 11:01:02 +0200
+Subject: [PATCH] Link XS modules to libperl.so with EU::CBuilder on Linux
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+<https://bugzilla.redhat.com/show_bug.cgi?id=960048>
+<http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=327585#50>
+
+Signed-off-by: Petr Písař <ppisar@redhat.com>
+---
+ MANIFEST                                           |  1 +
+ .../lib/ExtUtils/CBuilder/Platform/linux.pm        | 26 ++++++++++++++++++++++
+ 2 files changed, 27 insertions(+)
+ create mode 100644 dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder/Platform/linux.pm
+
+diff --git a/MANIFEST b/MANIFEST
+index 397252a..d7c519b 100644
+--- a/MANIFEST
++++ b/MANIFEST
+@@ -3093,6 +3093,7 @@ dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder/Platform/aix.pm	CBuilder methods fo
+ dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder/Platform/cygwin.pm	CBuilder methods for cygwin
+ dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder/Platform/darwin.pm	CBuilder methods for darwin
+ dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder/Platform/dec_osf.pm	CBuilder methods for OSF
++dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder/Platform/linux.pm	CBuilder methods for Linux
+ dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder/Platform/os2.pm	CBuilder methods for OS/2
+ dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder/Platform/Unix.pm	CBuilder methods for Unix
+ dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder/Platform/VMS.pm	CBuilder methods for VMS
+diff --git a/dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder/Platform/linux.pm b/dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder/Platform/linux.pm
+new file mode 100644
+index 0000000..e3251c4
+--- /dev/null
++++ b/dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder/Platform/linux.pm
+@@ -0,0 +1,26 @@
++package ExtUtils::CBuilder::Platform::linux;
++
++use strict;
++use ExtUtils::CBuilder::Platform::Unix;
++use File::Spec;
++
++use vars qw($VERSION @ISA);
++$VERSION = '0.280206';
++@ISA = qw(ExtUtils::CBuilder::Platform::Unix);
++
++sub link {
++  my ($self, %args) = @_;
++  my $cf = $self->{config};
++
++  # Link XS modules to libperl.so explicitly because multiple
++  # dlopen(, RTLD_LOCAL) hides libperl symbols from XS module.
++  local $cf->{lddlflags} = $cf->{lddlflags};
++  if ($ENV{PERL_CORE}) {
++    $cf->{lddlflags} .= ' -L' . $self->perl_inc();
++  }
++  $cf->{lddlflags} .= ' -lperl';
++
++  return $self->SUPER::link(%args);
++}
++
++1;
+-- 
+1.8.1.4
+
diff --git a/SOURCES/perl-5.16.3-Link-XS-modules-to-libperl.so-with-EU-MM-on-Linux.patch b/SOURCES/perl-5.16.3-Link-XS-modules-to-libperl.so-with-EU-MM-on-Linux.patch
new file mode 100644
index 0000000..e8ae658
--- /dev/null
+++ b/SOURCES/perl-5.16.3-Link-XS-modules-to-libperl.so-with-EU-MM-on-Linux.patch
@@ -0,0 +1,52 @@
+From fc1f8ac36c34c35bad84fb7b99a26ab83c9ba075 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= <ppisar@redhat.com>
+Date: Wed, 3 Jul 2013 12:59:09 +0200
+Subject: [PATCH] Link XS modules to libperl.so with EU::MM on Linux
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+<https://bugzilla.redhat.com/show_bug.cgi?id=960048>
+<http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=327585#50>
+
+Signed-off-by: Petr Písař <ppisar@redhat.com>
+---
+ cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm | 8 +++++++-
+ 1 file changed, 7 insertions(+), 1 deletion(-)
+
+diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm
+index a8b172f..a3fbce2 100644
+--- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm
++++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm
+@@ -31,6 +31,7 @@ BEGIN {
+     $Is{IRIX}    = $^O eq 'irix';
+     $Is{NetBSD}  = $^O eq 'netbsd';
+     $Is{Interix} = $^O eq 'interix';
++    $Is{Linux}   = $^O eq 'linux';
+     $Is{SunOS4}  = $^O eq 'sunos';
+     $Is{Solaris} = $^O eq 'solaris';
+     $Is{SunOS}   = $Is{SunOS4} || $Is{Solaris};
+@@ -932,7 +933,7 @@ $(INST_DYNAMIC): $(OBJECT) $(MYEXTLIB) $(BOOTSTRAP) $(INST_ARCHAUTODIR)$(DFSEP).
+     push(@m,"	\$(RM_F) \$\@\n");
+ 
+     my $libs = '$(LDLOADLIBS)';
+-    if (($Is{NetBSD} || $Is{Interix} || $Is{Android}) && $Config{'useshrplib'} eq 'true') {
++    if (($Is{Linux} || $Is{NetBSD} || $Is{Interix} || $Is{Android}) && $Config{'useshrplib'} eq 'true') {
+         # Use nothing on static perl platforms, and to the flags needed
+         # to link against the shared libperl library on shared perl
+         # platforms.  We peek at lddlflags to see if we need -Wl,-R
+@@ -941,6 +942,11 @@ $(INST_DYNAMIC): $(OBJECT) $(MYEXTLIB) $(BOOTSTRAP) $(INST_ARCHAUTODIR)$(DFSEP).
+             # The Android linker will not recognize symbols from
+             # libperl unless the module explicitly depends on it.
+             $libs .= ' "-L$(PERL_INC)" -lperl';
++        } else {
++            if ($ENV{PERL_CORE}) {
++                $libs .= ' "-L$(PERL_INC)"';
++            }
++            $libs .= ' -lperl';
+         }
+     }
+ 
+-- 
+1.8.1.4
+
diff --git a/SOURCES/perl-5.16.3-create_libperl_soname.patch b/SOURCES/perl-5.16.3-create_libperl_soname.patch
new file mode 100644
index 0000000..fabadf4
--- /dev/null
+++ b/SOURCES/perl-5.16.3-create_libperl_soname.patch
@@ -0,0 +1,52 @@
+From fa2f0dd5a7767223df10149d3f16d7ed7013e16f Mon Sep 17 00:00:00 2001
+From: Torsten Veller <tove@gentoo.org>
+Date: Sat, 14 Apr 2012 13:49:18 +0200
+Subject: Set libperl soname
+
+Bug-Gentoo: https://bugs.gentoo.org/286840
+
+Patch-Name: gentoo/create_libperl_soname.diff
+---
+ Makefile.SH | 9 +++++++--
+ 1 file changed, 7 insertions(+), 2 deletions(-)
+
+diff --git a/Makefile.SH b/Makefile.SH
+index d1da0a0..7733a32 100755
+--- a/Makefile.SH
++++ b/Makefile.SH
+@@ -58,7 +58,7 @@ true)
+ 				${api_revision}.${api_version}.${api_subversion} \
+ 			     -current_version \
+ 				${revision}.${patchlevel}.${subversion} \
+-			     -install_name \$(shrpdir)/\$@"
++			     -install_name \$(shrpdir)/libperl.${revision}.${patchlevel}.dylib"
+ 		;;
+ 	cygwin*)
+ 		shrpldflags="$shrpldflags -Wl,--out-implib=libperl.dll.a -Wl,--image-base,0x52000000"
+@@ -66,13 +66,15 @@ true)
+ 		;;
+ 	sunos*)
+ 		linklibperl="-lperl"
++		shrpldflags="$shrpldflags -Wl,-soname -Wl,libperl.so.${revision}.${patchlevel}"
+ 		;;
+ 	netbsd*|freebsd[234]*|openbsd*|dragonfly*|bitrig*)
+ 		linklibperl="-L. -lperl"
++		shrpldflags="$shrpldflags -Wl,-soname -Wl,libperl.so.${revision}.${patchlevel}"
+ 		;;
+ 	interix*)
+ 		linklibperl="-L. -lperl"
+-		shrpldflags="$shrpldflags -Wl,--image-base,0x57000000"
++		shrpldflags="$shrpldflags -Wl,--image-base,0x57000000 -Wl,-soname -Wl,libperl.so.${revision}.${patchlevel}"
+ 		;;
+ 	aix*)
+ 		case "$cc" in
+@@ -110,6 +112,9 @@ true)
+ 	    linklibperl='libperl.x'
+ 	    DPERL_EXTERNAL_GLOB=''
+ 	    ;;
++	linux*)
++		shrpldflags="$shrpldflags -Wl,-soname -Wl,libperl.so.${revision}.${patchlevel}"
++	    ;;
+ 	esac
+ 	case "$ldlibpthname" in
+ 	'') ;;
diff --git a/SOURCES/perl-5.18.1-Document-Math-BigInt-CalcEmu-requires-Math-BigInt.patch b/SOURCES/perl-5.18.1-Document-Math-BigInt-CalcEmu-requires-Math-BigInt.patch
new file mode 100644
index 0000000..bed0adc
--- /dev/null
+++ b/SOURCES/perl-5.18.1-Document-Math-BigInt-CalcEmu-requires-Math-BigInt.patch
@@ -0,0 +1,30 @@
+From 862c89c81d26dae0dcef138e19df8b45615e69c9 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= <ppisar@redhat.com>
+Date: Mon, 2 Dec 2013 10:10:56 +0100
+Subject: [PATCH] Document Math::BigInt::CalcEmu requires Math::BigInt
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+<https://rt.cpan.org/Public/Bug/Display.html?id=85015>
+
+Signed-off-by: Petr Písař <ppisar@redhat.com>
+---
+ dist/Math-BigInt/lib/Math/BigInt/CalcEmu.pm | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/dist/Math-BigInt/lib/Math/BigInt/CalcEmu.pm b/dist/Math-BigInt/lib/Math/BigInt/CalcEmu.pm
+index c82e153..0c0b496 100644
+--- a/cpan/Math-BigInt/lib/Math/BigInt/CalcEmu.pm
++++ b/cpan/Math-BigInt/lib/Math/BigInt/CalcEmu.pm
+@@ -290,6 +290,7 @@ Math::BigInt::CalcEmu - Emulate low-level math with BigInt code
+ 
+ =head1 SYNOPSIS
+ 
++	use Math::BigInt;
+ 	use Math::BigInt::CalcEmu;
+ 
+ =head1 DESCRIPTION
+-- 
+1.8.3.1
+
diff --git a/SOURCES/perl-5.18.2-Destroy-GDBM-NDBM-ODBM-SDBM-_File-objects-only-from-.patch b/SOURCES/perl-5.18.2-Destroy-GDBM-NDBM-ODBM-SDBM-_File-objects-only-from-.patch
new file mode 100644
index 0000000..9b503c6
--- /dev/null
+++ b/SOURCES/perl-5.18.2-Destroy-GDBM-NDBM-ODBM-SDBM-_File-objects-only-from-.patch
@@ -0,0 +1,233 @@
+From f793042f2bac2ace9a5c0030b47b41c4db561a5b Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= <ppisar@redhat.com>
+Date: Fri, 6 Jun 2014 14:31:59 +0200
+Subject: [PATCH] Destroy {GDBM,NDBM,ODBM,SDBM}_File objects only from original
+ thread context
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+This patch fixes a crash when destroing a hash tied to a *_File
+database after spawning a thread:
+
+use Fcntl;
+use SDBM_File;
+use threads;
+tie(my %dbtest, 'SDBM_File', "test.db", O_RDWR|O_CREAT, 0666);
+threads->new(sub {})->join;
+
+This crashed or paniced depending on how perl was configured.
+
+Closes RT#61912.
+
+Signed-off-by: Petr Písař <ppisar@redhat.com>
+---
+ ext/GDBM_File/GDBM_File.xs | 16 ++++++++++------
+ ext/NDBM_File/NDBM_File.xs | 16 ++++++++++------
+ ext/ODBM_File/ODBM_File.xs | 18 +++++++++++-------
+ ext/SDBM_File/SDBM_File.xs |  4 +++-
+ t/lib/dbmt_common.pl       | 35 +++++++++++++++++++++++++++++++++++
+ 5 files changed, 69 insertions(+), 20 deletions(-)
+
+diff --git a/ext/GDBM_File/GDBM_File.xs b/ext/GDBM_File/GDBM_File.xs
+index 33e08e2..7160f54 100644
+--- a/ext/GDBM_File/GDBM_File.xs
++++ b/ext/GDBM_File/GDBM_File.xs
+@@ -13,6 +13,7 @@
+ #define store_value 3
+ 
+ typedef struct {
++	tTHX    owner;
+ 	GDBM_FILE 	dbp ;
+ 	SV *    filter[4];
+ 	int     filtering ;
+@@ -89,6 +90,7 @@ gdbm_TIEHASH(dbtype, name, read_write, mode)
+ 	    if ((dbp =  gdbm_open(name, GDBM_BLOCKSIZE, read_write, mode,
+ 	       	     	          (FATALFUNC) croak_string))) {
+ 	        RETVAL = (GDBM_File)safecalloc(1, sizeof(GDBM_File_type)) ;
++		RETVAL->owner = aTHX;
+ 		RETVAL->dbp = dbp ;
+ 	    }
+ 	    
+@@ -109,12 +111,14 @@ gdbm_DESTROY(db)
+ 	PREINIT:
+ 	int i = store_value;
+ 	CODE:
+-	gdbm_close(db);
+-	do {
+-	    if (db->filter[i])
+-		SvREFCNT_dec(db->filter[i]);
+-	} while (i-- > 0);
+-	safefree(db);
++	if (db && db->owner == aTHX) {
++	    gdbm_close(db);
++	    do {
++		if (db->filter[i])
++		    SvREFCNT_dec(db->filter[i]);
++	    } while (i-- > 0);
++	    safefree(db);
++	}
+ 
+ #define gdbm_FETCH(db,key)			gdbm_fetch(db->dbp,key)
+ datum_value
+diff --git a/ext/NDBM_File/NDBM_File.xs b/ext/NDBM_File/NDBM_File.xs
+index 52e60fc..af223e5 100644
+--- a/ext/NDBM_File/NDBM_File.xs
++++ b/ext/NDBM_File/NDBM_File.xs
+@@ -33,6 +33,7 @@ END_EXTERN_C
+ #define store_value 3
+ 
+ typedef struct {
++	tTHX    owner;
+ 	DBM * 	dbp ;
+ 	SV *    filter[4];
+ 	int     filtering ;
+@@ -71,6 +72,7 @@ ndbm_TIEHASH(dbtype, filename, flags, mode)
+ 	    RETVAL = NULL ;
+ 	    if ((dbp =  dbm_open(filename, flags, mode))) {
+ 	        RETVAL = (NDBM_File)safecalloc(1, sizeof(NDBM_File_type));
++		RETVAL->owner = aTHX;
+ 		RETVAL->dbp = dbp ;
+ 	    }
+ 	    
+@@ -84,12 +86,14 @@ ndbm_DESTROY(db)
+ 	PREINIT:
+ 	int i = store_value;
+ 	CODE:
+-	dbm_close(db->dbp);
+-	do {
+-	    if (db->filter[i])
+-		SvREFCNT_dec(db->filter[i]);
+-	} while (i-- > 0);
+-	safefree(db);
++	if (db && db->owner == aTHX) {
++	    dbm_close(db->dbp);
++	    do {
++		if (db->filter[i])
++		    SvREFCNT_dec(db->filter[i]);
++	    } while (i-- > 0);
++	    safefree(db);
++	}
+ 
+ #define ndbm_FETCH(db,key)			dbm_fetch(db->dbp,key)
+ datum_value
+diff --git a/ext/ODBM_File/ODBM_File.xs b/ext/ODBM_File/ODBM_File.xs
+index d1ece7f..f7e00a0 100644
+--- a/ext/ODBM_File/ODBM_File.xs
++++ b/ext/ODBM_File/ODBM_File.xs
+@@ -45,6 +45,7 @@ datum	nextkey(datum key);
+ #define store_value 3
+ 
+ typedef struct {
++	tTHX    owner;
+ 	void * 	dbp ;
+ 	SV *    filter[4];
+ 	int     filtering ;
+@@ -112,6 +113,7 @@ odbm_TIEHASH(dbtype, filename, flags, mode)
+ 	    }
+ 	    dbp = (void*)(dbminit(filename) >= 0 ? &dbmrefcnt : 0);
+ 	    RETVAL = (ODBM_File)safecalloc(1, sizeof(ODBM_File_type));
++	    RETVAL->owner = aTHX;
+ 	    RETVAL->dbp = dbp ;
+ 	}
+ 	OUTPUT:
+@@ -124,13 +126,15 @@ DESTROY(db)
+ 	dMY_CXT;
+ 	int i = store_value;
+ 	CODE:
+-	dbmrefcnt--;
+-	dbmclose();
+-	do {
+-	    if (db->filter[i])
+-		SvREFCNT_dec(db->filter[i]);
+-	} while (i-- > 0);
+-	safefree(db);
++	if (db && db->owner == aTHX) {
++	    dbmrefcnt--;
++	    dbmclose();
++	    do {
++		if (db->filter[i])
++		    SvREFCNT_dec(db->filter[i]);
++	    } while (i-- > 0);
++	    safefree(db);
++	}
+ 
+ datum_value
+ odbm_FETCH(db, key)
+diff --git a/ext/SDBM_File/SDBM_File.xs b/ext/SDBM_File/SDBM_File.xs
+index 291e41b..0bdae9a 100644
+--- a/ext/SDBM_File/SDBM_File.xs
++++ b/ext/SDBM_File/SDBM_File.xs
+@@ -10,6 +10,7 @@
+ #define store_value 3
+ 
+ typedef struct {
++	tTHX    owner;
+ 	DBM * 	dbp ;
+ 	SV *    filter[4];
+ 	int     filtering ;
+@@ -49,6 +50,7 @@ sdbm_TIEHASH(dbtype, filename, flags, mode)
+ 	    }
+ 	    if (dbp) {
+ 	        RETVAL = (SDBM_File)safecalloc(1, sizeof(SDBM_File_type));
++		RETVAL->owner = aTHX;
+ 		RETVAL->dbp = dbp ;
+ 	    }
+ 	    
+@@ -60,7 +62,7 @@ void
+ sdbm_DESTROY(db)
+ 	SDBM_File	db
+ 	CODE:
+-	if (db) {
++	if (db && db->owner == aTHX) {
+ 	    int i = store_value;
+ 	    sdbm_close(db->dbp);
+ 	    do {
+diff --git a/t/lib/dbmt_common.pl b/t/lib/dbmt_common.pl
+index 5d4098c..a0a4d52 100644
+--- a/t/lib/dbmt_common.pl
++++ b/t/lib/dbmt_common.pl
+@@ -511,5 +511,40 @@ unlink <Op_dbmx*>, $Dfile;
+    unlink <Op1_dbmx*>;
+ }
+ 
++{
++   # Check DBM back-ends do not destroy objects from then-spawned threads.
++   # RT#61912.
++   SKIP: {
++      my $threads_count = 2;
++      skip 'Threads are disabled', 3 + 2 * $threads_count
++        unless $Config{usethreads};
++      use_ok('threads');
++
++      my %h;
++      unlink <Op1_dbmx*>;
++
++      my $db = tie %h, $DBM_Class, 'Op1_dbmx', $create, 0640;
++      isa_ok($db, $DBM_Class);
++
++      for (1 .. 2) {
++         ok(threads->create(
++            sub {
++               $SIG{'__WARN__'} = sub { fail(shift) }; # debugging perl panics
++                        # report it by spurious TAP line
++               1;
++            }), "Thread $_ created");
++      }
++      for (threads->list) {
++         is($_->join, 1, "A thread exited successfully");
++      }
++
++      pass("Tied object survived exiting threads");
++
++      undef $db;
++      untie %h;
++      unlink <Op1_dbmx*>;
++   }
++}
++
+ done_testing();
+ 1;
+-- 
+1.9.3
+
diff --git a/SOURCES/perl-5.22.0-Install-libperl.so-to-shrpdir-on-Linux.patch b/SOURCES/perl-5.22.0-Install-libperl.so-to-shrpdir-on-Linux.patch
new file mode 100644
index 0000000..6d43814
--- /dev/null
+++ b/SOURCES/perl-5.22.0-Install-libperl.so-to-shrpdir-on-Linux.patch
@@ -0,0 +1,61 @@
+From 9644657c4 10326749fd321d9c24944ec25afad2f Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= <ppisar@redhat.com>
+Date: Thu, 20 Jun 2013 15:22:53 +0200
+Subject: [PATCH] Install libperl.so to shrpdir on Linux
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Signed-off-by: Petr Písař <ppisar@redhat.com>
+---
+ Configure   | 7 ++++---
+ Makefile.SH | 2 +-
+ 2 files changed, 5 insertions(+), 4 deletions(-)
+
+diff --git a/Configure b/Configure
+index 2f30261..825496e 100755
+--- a/Configure
++++ b/Configure
+@@ -8249,7 +8249,9 @@ esac
+ 
+ # Detect old use of shrpdir via undocumented Configure -Dshrpdir
+ case "$shrpdir" in
+-'') ;;
++'') 
++shrpdir=$archlibexp/CORE
++;;
+ *)	$cat >&4 <<EOM
+ WARNING:  Use of the shrpdir variable for the installation location of
+ the shared $libperl is not supported.  It was never documented and
+@@ -8279,7 +8281,6 @@ esac
+ # Add $xxx to ccdlflags.
+ # If we can't figure out a command-line option, use $shrpenv to
+ # set env LD_RUN_PATH.  The main perl makefile uses this.
+-shrpdir=$archlibexp/CORE
+ xxx=''
+ tmp_shrpenv=''
+ if "$useshrplib"; then
+@@ -8294,7 +8295,7 @@ if "$useshrplib"; then
+ 		xxx="-Wl,-R$shrpdir"
+ 		;;
+ 	bsdos|linux|irix*|dec_osf|gnu*|haiku)
+-		xxx="-Wl,-rpath,$shrpdir"
++		# We want standard path
+ 		;;
+ 	hpux*)
+ 		# hpux doesn't like the default, either.
+diff --git a/Makefile.SH b/Makefile.SH
+index 7733a32..a481183 100755
+--- a/Makefile.SH
++++ b/Makefile.SH
+@@ -266,7 +266,7 @@ ranlib = $ranlib
+ # installman commandline.
+ bin = $installbin
+ scriptdir = $scriptdir
+-shrpdir = $archlibexp/CORE
++shrpdir = $shrpdir
+ privlib = $installprivlib
+ man1dir = $man1dir
+ man1ext = $man1ext
+-- 
+1.8.1.4
diff --git a/SOURCES/perl-5.22.1-Provide-ExtUtils-MM-methods-as-standalone-ExtUtils-M.patch b/SOURCES/perl-5.22.1-Provide-ExtUtils-MM-methods-as-standalone-ExtUtils-M.patch
new file mode 100644
index 0000000..e4903ef
--- /dev/null
+++ b/SOURCES/perl-5.22.1-Provide-ExtUtils-MM-methods-as-standalone-ExtUtils-M.patch
@@ -0,0 +1,110 @@
+From 9575301256f67116eccdbb99b38fc804ba3dcf53 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= <ppisar@redhat.com>
+Date: Mon, 18 Apr 2016 16:24:03 +0200
+Subject: [PATCH] Provide ExtUtils::MM methods as standalone
+ ExtUtils::MM::Utils
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+If you cannot afford depending on ExtUtils::MakeMaker, you can
+depend on ExtUtils::MM::Utils instead.
+
+<https://bugzilla.redhat.com/show_bug.cgi?id=1129443>
+
+Signed-off-by: Petr Písař <ppisar@redhat.com>
+---
+ MANIFEST                                         |  1 +
+ cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM/Utils.pm | 68 ++++++++++++++++++++++++
+ 2 files changed, 69 insertions(+)
+ create mode 100644 cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM/Utils.pm
+
+diff --git a/MANIFEST b/MANIFEST
+index 6af238c..d4f0c56 100644
+--- a/MANIFEST
++++ b/MANIFEST
+@@ -1045,6 +1045,7 @@ cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_OS2.pm			MakeMaker methods for OS/2
+ cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_OS2.pm			MakeMaker methods for OS/2
+ cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_QNX.pm			MakeMaker methods for QNX
+ cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm			MakeMaker methods for Unix
++cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM/Utils.pm		Independed MM methods
+ cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_UWIN.pm			MakeMaker methods for U/WIN
+ cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_VMS.pm			MakeMaker methods for VMS
+ cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_VOS.pm			MakeMaker methods for VOS
+diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM/Utils.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM/Utils.pm
+new file mode 100644
+index 0000000..6bbc0d8
+--- /dev/null
++++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM/Utils.pm
+@@ -0,0 +1,68 @@
++package ExtUtils::MM::Utils;
++
++require 5.006;
++
++use strict;
++use vars qw($VERSION);
++$VERSION = '7.11_06';
++$VERSION = eval $VERSION;  ## no critic [BuiltinFunctions::ProhibitStringyEval]
++
++=head1 NAME
++
++ExtUtils::MM::Utils - ExtUtils::MM methods without dependency on ExtUtils::MakeMaker
++
++=head1 SYNOPSIS
++
++    require ExtUtils::MM::Utils;
++    MM->maybe_command($file);
++
++=head1 DESCRIPTION
++
++This is a collection of L<ExtUtils::MM> subroutines that are used by many
++other modules but that do not need full-featured L<ExtUtils::MakeMaker>. The
++issue with L<ExtUtils::MakeMaker> is it pulls in Perl header files and that is
++an overkill for small subroutines.
++
++An example is the L<IPC::Cmd> that caused installing GCC just because of
++three-line I<maybe_command()> from L<ExtUtils::MM_Unix>.
++
++The intentions is to use L<ExtUtils::MM::Utils> instead of
++L<ExtUtils::MakeMaker> for these trivial methods. You can still call them via
++L<MM> class name.
++
++=head1 METHODS
++
++=over 4
++
++=item maybe_command
++
++Returns true, if the argument is likely to be a command.
++
++=cut
++
++if (!exists $INC{'ExtUtils/MM.pm'}) {
++    *MM::maybe_command = *ExtUtils::MM::maybe_command = \&maybe_command;
++}
++
++sub maybe_command {
++    my($self,$file) = @_;
++    return $file if -x $file && ! -d $file;
++    return;
++}
++
++1;
++
++=back
++
++=head1 BUGS
++
++These methods are copied from L<ExtUtils::MM_Unix>. Other operating systems
++are not supported yet. The reason is this
++L<a hack for Linux
++distributions|https://bugzilla.redhat.com/show_bug.cgi?id=1129443>.
++
++=head1 SEE ALSO
++
++L<ExtUtils::MakeMaker>, L<ExtUtils::MM>
++
++=cut
+-- 
+2.5.5
+
diff --git a/SOURCES/perl-5.22.1-Replace-EU-MM-dependnecy-with-EU-MM-Utils-in-IPC-Cmd.patch b/SOURCES/perl-5.22.1-Replace-EU-MM-dependnecy-with-EU-MM-Utils-in-IPC-Cmd.patch
new file mode 100644
index 0000000..572d37e
--- /dev/null
+++ b/SOURCES/perl-5.22.1-Replace-EU-MM-dependnecy-with-EU-MM-Utils-in-IPC-Cmd.patch
@@ -0,0 +1,34 @@
+From 216ddd39adb0043930acad70ff242c30a1b0c6cf Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= <ppisar@redhat.com>
+Date: Mon, 18 Apr 2016 16:39:32 +0200
+Subject: [PATCH] Replace EU::MM dependnecy with EU::MM::Utils in IPC::Cmd
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+This allows to free from a run-time dependency on fat
+ExtUtils::MakeMaker.
+
+<https://bugzilla.redhat.com/show_bug.cgi?id=1129443>
+
+Signed-off-by: Petr Písař <ppisar@redhat.com>
+---
+ cpan/IPC-Cmd/lib/IPC/Cmd.pm | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/cpan/IPC-Cmd/lib/IPC/Cmd.pm b/cpan/IPC-Cmd/lib/IPC/Cmd.pm
+index 6a82bdf..b6cd7ef 100644
+--- a/cpan/IPC-Cmd/lib/IPC/Cmd.pm
++++ b/cpan/IPC-Cmd/lib/IPC/Cmd.pm
+@@ -230,7 +230,7 @@ sub can_run {
+     }
+ 
+     require File::Spec;
+-    require ExtUtils::MakeMaker;
++    require ExtUtils::MM::Utils;
+ 
+     my @possibles;
+ 
+-- 
+2.5.5
+
diff --git a/SOURCES/perl-5.26.0-Time-HiRes-Fix-unreliable-t-usleep.t-and-t-utime.t.patch b/SOURCES/perl-5.26.0-Time-HiRes-Fix-unreliable-t-usleep.t-and-t-utime.t.patch
new file mode 100644
index 0000000..206aeea
--- /dev/null
+++ b/SOURCES/perl-5.26.0-Time-HiRes-Fix-unreliable-t-usleep.t-and-t-utime.t.patch
@@ -0,0 +1,73 @@
+From 8985b12868f07d9ef501580d600e49fe8f230eb4 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= <ppisar@redhat.com>
+Date: Tue, 22 Aug 2017 09:49:42 +0200
+Subject: [PATCH] Time-HiRes: Fix unreliable t/usleep.t and t/utime.t
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Ported from Time-HiRes-1.9746.
+
+The tests randomly failed on loaded machines because a CPU scheduler
+could add unpredictable delays.
+
+CPAN RT#122819
+
+Signed-off-by: Petr Písař <ppisar@redhat.com>
+---
+ dist/Time-HiRes/t/usleep.t | 4 ++--
+ dist/Time-HiRes/t/utime.t  | 9 +++++----
+ 2 files changed, 7 insertions(+), 6 deletions(-)
+
+diff --git a/dist/Time-HiRes/t/usleep.t b/dist/Time-HiRes/t/usleep.t
+index 9322458..bb66cbe 100644
+--- a/dist/Time-HiRes/t/usleep.t
++++ b/dist/Time-HiRes/t/usleep.t
+@@ -32,7 +32,7 @@ SKIP: {
+     Time::HiRes::usleep(500_000);
+     my $f2 = Time::HiRes::time();
+     my $d = $f2 - $f;
+-    ok $d > 0.4 && $d < 0.9 or print("# slept $d secs $f to $f2\n");
++    ok $d > 0.49 or print("# slept $d secs $f to $f2\n");
+ }
+ 
+ SKIP: {
+@@ -40,7 +40,7 @@ SKIP: {
+     my $r = [ Time::HiRes::gettimeofday() ];
+     Time::HiRes::sleep( 0.5 );
+     my $f = Time::HiRes::tv_interval $r;
+-    ok $f > 0.4 && $f < 0.9 or print("# slept $f instead of 0.5 secs.\n");
++    ok $f > 0.49 or print("# slept $f instead of 0.5 secs.\n");
+ }
+ 
+ SKIP: {
+diff --git a/dist/Time-HiRes/t/utime.t b/dist/Time-HiRes/t/utime.t
+index 22fd48e..c5c7e55 100644
+--- a/dist/Time-HiRes/t/utime.t
++++ b/dist/Time-HiRes/t/utime.t
+@@ -106,17 +106,18 @@ print "# utime undef sets time to now\n";
+ 	my ($fh2, $filename2) = tempfile( "Time-HiRes-utime-XXXXXXXXX", UNLINK => 1 );
+ 
+ 	my $now = Time::HiRes::time;
++	 sleep(1);
+ 	is Time::HiRes::utime(undef, undef, $filename1, $fh2), 2, "Two files changed";
+ 
+ 	{
+ 		my ($got_atime, $got_mtime) = ( Time::HiRes::stat($fh1) )[8, 9];
+-		cmp_ok abs( $got_atime - $now), '<', 0.1, "File 1 atime set correctly";
+-		cmp_ok abs( $got_mtime - $now), '<', 0.1, "File 1 mtime set correctly";
++		cmp_ok $got_atime, '>=', $now, "File 1 atime set correctly";
++		cmp_ok $got_mtime, '>=', $now, "File 1 mtime set correctly";
+ 	}
+ 	{
+ 		my ($got_atime, $got_mtime) = ( Time::HiRes::stat($filename2) )[8, 9];
+-		cmp_ok abs( $got_atime - $now), '<', 0.1, "File 2 atime set correctly";
+-		cmp_ok abs( $got_mtime - $now), '<', 0.1, "File 2 mtime set correctly";
++		cmp_ok $got_atime, '>=', $now, "File 2 atime set correctly";
++		cmp_ok $got_mtime, '>=', $now, "File 2 mtime set correctly";
+ 	}
+ };
+ 
+-- 
+2.9.5
+
diff --git a/SOURCES/perl-5.26.0-perl-131263-clear-the-UTF8-flag-on-a-glob-if-it-isn-.patch b/SOURCES/perl-5.26.0-perl-131263-clear-the-UTF8-flag-on-a-glob-if-it-isn-.patch
new file mode 100644
index 0000000..0ba657a
--- /dev/null
+++ b/SOURCES/perl-5.26.0-perl-131263-clear-the-UTF8-flag-on-a-glob-if-it-isn-.patch
@@ -0,0 +1,72 @@
+From 7b3e03bd309fcc48a135123a60678ae2596b1c38 Mon Sep 17 00:00:00 2001
+From: Tony Cook <tony@develop-help.com>
+Date: Wed, 7 Jun 2017 15:00:26 +1000
+Subject: [PATCH] clear the UTF8 flag on a glob if it isn't UTF8
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Ported to 5.26.0:
+
+commit 1097da16b21fe0a2257dba9937e55c0cca18f7e1
+Author: Tony Cook <tony@develop-help.com>
+Date:   Wed Jun 7 15:00:26 2017 +1000
+
+    [perl #131263] clear the UTF8 flag on a glob if it isn't UTF8
+
+    Previously sv_2pv_flags() would set the UTF8 flag on a glob if it
+    had a UTF8 name, but wouldn't clear tha flag if it didn't.
+
+    This meant a name change, eg. if assigned another glob, from a UTF8
+    name to a non-UTF8 name would leave the flag set.
+
+Signed-off-by: Petr Písař <ppisar@redhat.com>
+---
+ sv.c      |  2 ++
+ t/op/gv.t | 10 +++++++++-
+ 2 files changed, 11 insertions(+), 1 deletion(-)
+
+diff --git a/sv.c b/sv.c
+index 9f3e28e..ae3dc95 100644
+--- a/sv.c
++++ b/sv.c
+@@ -3179,6 +3179,8 @@ Perl_sv_2pv_flags(pTHX_ SV *const sv, STRLEN *const lp, const I32 flags)
+ 	assert(SvPOK(buffer));
+ 	if (SvUTF8(buffer))
+ 	    SvUTF8_on(sv);
++        else
++            SvUTF8_off(sv);
+ 	if (lp)
+ 	    *lp = SvCUR(buffer);
+ 	return SvPVX(buffer);
+diff --git a/t/op/gv.t b/t/op/gv.t
+index 4fe6b00..670ccf6 100644
+--- a/t/op/gv.t
++++ b/t/op/gv.t
+@@ -12,7 +12,7 @@ BEGIN {
+ 
+ use warnings;
+ 
+-plan(tests => 280);
++plan(tests => 282);
+ 
+ # type coercion on assignment
+ $foo = 'foo';
+@@ -1170,6 +1170,14 @@ SKIP: {
+     is ($? & 127, 0,"[perl #128597] No crash when gp_free calls ckWARN_d");
+ }
+ 
++{
++    # [perl #131263]
++    *sym = "\N{U+0080}";
++    ok(*sym eq "*main::\N{U+0080}", "utf8 flag properly set");
++    *sym = "\xC3\x80";
++    ok(*sym eq "*main::\xC3\x80", "utf8 flag properly cleared");
++}
++
+ # test gv_try_downgrade()
+ # If a GV can be stored in a stash in a compact, non-GV form, then
+ # whenever ops are freed which reference the GV, an attempt is made to
+-- 
+2.9.4
+
diff --git a/SOURCES/perl-5.26.0-perl-131588-be-a-little-more-careful-in-arybase-_tie.patch b/SOURCES/perl-5.26.0-perl-131588-be-a-little-more-careful-in-arybase-_tie.patch
new file mode 100644
index 0000000..3749874
--- /dev/null
+++ b/SOURCES/perl-5.26.0-perl-131588-be-a-little-more-careful-in-arybase-_tie.patch
@@ -0,0 +1,61 @@
+From cb2fda94b02c5b7e8d16582410034f5a3dae526f Mon Sep 17 00:00:00 2001
+From: Tony Cook <tony@develop-help.com>
+Date: Tue, 25 Jul 2017 16:21:22 +1000
+Subject: [PATCH] (perl #131588) be a little more careful in arybase::_tie_it()
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Original patch by John Leitch <john@autosectools.com>
+Petr Pisar: Ported to 5.26.0.
+
+Signed-off-by: Petr Písař <ppisar@redhat.com>
+---
+ ext/arybase/arybase.xs  | 10 ++++++----
+ ext/arybase/t/arybase.t |  4 +++-
+ 2 files changed, 9 insertions(+), 5 deletions(-)
+
+diff --git a/ext/arybase/arybase.xs b/ext/arybase/arybase.xs
+index 880bbe3..216442a 100644
+--- a/ext/arybase/arybase.xs
++++ b/ext/arybase/arybase.xs
+@@ -438,10 +438,12 @@ _tie_it(SV *sv)
+     INIT:
+ 	GV * const gv = (GV *)sv;
+     CODE:
+-	if (GvSV(gv))
+-	    /* This is *our* scalar now!  */
+-	    sv_unmagic(GvSV(gv), PERL_MAGIC_sv);
+-	tie(aTHX_ GvSVn(gv), NULL, GvSTASH(CvGV(cv)));
++	if (isGV(gv)) {
++	    if (GvSV(gv))
++	        /* This is *our* scalar now!  */
++	        sv_unmagic(GvSV(gv), PERL_MAGIC_sv);
++	    tie(aTHX_ GvSVn(gv), NULL, GvSTASH(CvGV(cv)));
++	}
+ 
+ void
+ FETCH(...)
+diff --git a/ext/arybase/t/arybase.t b/ext/arybase/t/arybase.t
+index f3d3287..41e90df 100644
+--- a/ext/arybase/t/arybase.t
++++ b/ext/arybase/t/arybase.t
+@@ -4,7 +4,7 @@
+ # plus miscellaneous bug fix tests
+ 
+ no warnings 'deprecated';
+-use Test::More tests => 7;
++use Test::More tests => 8;
+ 
+ sub outside_base_scope { return "${'['}" }
+ 
+@@ -34,4 +34,6 @@ is $@, "That use of \$[ is unsupported at $f line $l.\n",
+ 
+ sub foo { my $x; $x = wait } # compilation of this routine used to crash
+ 
++ok eval { arybase::_tie_it(1); 1 }, "don't crash on bad call to _tie_it()";
++
+ 1;
+-- 
+2.9.4
+
diff --git a/SOURCES/perl-5.26.0-t-op-hash.t-fixup-intermittently-failing-test.patch b/SOURCES/perl-5.26.0-t-op-hash.t-fixup-intermittently-failing-test.patch
new file mode 100644
index 0000000..9463079
--- /dev/null
+++ b/SOURCES/perl-5.26.0-t-op-hash.t-fixup-intermittently-failing-test.patch
@@ -0,0 +1,37 @@
+From 37268580c0cfbf190ff9aa7859a604713cb366ee Mon Sep 17 00:00:00 2001
+From: Yves Orton <demerphq@gmail.com>
+Date: Tue, 27 Jun 2017 16:36:57 +0200
+Subject: [PATCH] t/op/hash.t: fixup intermittently failing test
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Port to 5.26.0:
+
+commit b2ac59d1d0fda74d6612701d8316fe8dfb6a1b90
+Author: Yves Orton <demerphq@gmail.com>
+Date:   Tue Jun 27 16:36:57 2017 +0200
+
+    t/op/hash.t: fixup intermittently failing test
+
+Signed-off-by: Petr Písař <ppisar@redhat.com>
+---
+ t/op/hash.t | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/t/op/hash.t b/t/op/hash.t
+index a0e79c7..b941c57 100644
+--- a/t/op/hash.t
++++ b/t/op/hash.t
+@@ -206,7 +206,7 @@ sub torture_hash {
+     my $keys = pop @groups;
+     ++$h->{$_} foreach @$keys;
+     my (undef, $total) = validate_hash("$desc " . keys %$h, $h);
+-    is($total, $total0, "bucket count is constant when rebuilding");
++    ok($total == $total0 || $total == ($total0*2), "bucket count is expected size when rebuilding");
+     is(scalar %$h, pop @groups, "scalar keys is identical when rebuilding");
+     ++$h1->{$_} foreach @$keys;
+     validate_hash("$desc copy " . keys %$h1, $h1);
+-- 
+2.9.4
+
diff --git a/SOURCES/perl-5.26.1-Fix-deparsing-of-transliterations-with-unprintable-c.patch b/SOURCES/perl-5.26.1-Fix-deparsing-of-transliterations-with-unprintable-c.patch
new file mode 100644
index 0000000..f8c700e
--- /dev/null
+++ b/SOURCES/perl-5.26.1-Fix-deparsing-of-transliterations-with-unprintable-c.patch
@@ -0,0 +1,48 @@
+From abd17348111a99642da217c45d836f2df5713594 Mon Sep 17 00:00:00 2001
+From: John Lightsey <lightsey@debian.org>
+Date: Tue, 31 Oct 2017 18:12:26 -0500
+Subject: [PATCH] Fix deparsing of transliterations with unprintable
+ characters.
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+RT #132405
+
+Signed-off-by: Nicolas R <atoomic@cpan.org>
+Petr Písař: Port to 5.26.1.
+Signed-off-by: Petr Písař <ppisar@redhat.com>
+---
+ lib/B/Deparse.pm | 2 +-
+ lib/B/Deparse.t  | 5 +++++
+ 2 files changed, 6 insertions(+), 1 deletion(-)
+
+diff --git a/lib/B/Deparse.pm b/lib/B/Deparse.pm
+index 3166415..cc74552 100644
+--- a/lib/B/Deparse.pm
++++ b/lib/B/Deparse.pm
+@@ -5200,7 +5200,7 @@ sub pchr { # ASCII
+     } elsif ($n == ord "\r") {
+ 	return '\\r';
+     } elsif ($n >= ord("\cA") and $n <= ord("\cZ")) {
+-	return '\\c' . unctrl{chr $n};
++	return '\\c' . $unctrl{chr $n};
+     } else {
+ #	return '\x' . sprintf("%02x", $n);
+ 	return '\\' . sprintf("%03o", $n);
+diff --git a/lib/B/Deparse.t b/lib/B/Deparse.t
+index 7eeb4f8..eae9c49 100644
+--- a/lib/B/Deparse.t
++++ b/lib/B/Deparse.t
+@@ -2610,3 +2610,8 @@ sub ($a, $=) {
+     $a;
+ }
+ ;
++####
++# tr with unprintable characters
++my $str;
++$str = 'foo';
++$str =~ tr/\cA//;
+-- 
+2.13.6
+
diff --git a/SOURCES/perl-5.26.1-fix-do-dir-returning-no.patch b/SOURCES/perl-5.26.1-fix-do-dir-returning-no.patch
new file mode 100644
index 0000000..aa44d7d
--- /dev/null
+++ b/SOURCES/perl-5.26.1-fix-do-dir-returning-no.patch
@@ -0,0 +1,111 @@
+From 3dfcac940930a8aa6779f5debea6ea6357372419 Mon Sep 17 00:00:00 2001
+From: Daniel Dragan <bulk88@hotmail.com>
+Date: Sun, 16 Aug 2015 04:30:23 -0400
+Subject: [PATCH] fix do dir returning no $!
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+do()ing a directory was returning false/empty string in $!, which isn't
+an error, yet documentation says $! should have the error code in it.
+Fix this by returning EISDIR for dirs, and EINVAL for block devices.
+[perl #125774]
+
+Remove "errno = 0" and comment added in b2da7ead68, since now there is no
+scenario where errno is uninitialized, since the dir and block device
+failure branches now set errno, where previously they didn't.
+
+Petr Písař: Ported to 5.26.1.
+
+Signed-off-by: Petr Písař <ppisar@redhat.com>
+---
+ pp_ctl.c  | 25 +++++++++++++++++--------
+ t/op/do.t | 14 +++++++++++++-
+ 2 files changed, 30 insertions(+), 9 deletions(-)
+
+diff --git a/pp_ctl.c b/pp_ctl.c
+index e24d7b6..f136f91 100644
+--- a/pp_ctl.c
++++ b/pp_ctl.c
+@@ -3534,15 +3534,22 @@ S_check_type_and_open(pTHX_ SV *name)
+        errno EACCES, so only do a stat to separate a dir from a real EACCES
+        caused by user perms */
+ #ifndef WIN32
+-    /* we use the value of errno later to see how stat() or open() failed.
+-     * We don't want it set if the stat succeeded but we still failed,
+-     * such as if the name exists, but is a directory */
+-    errno = 0;
+-
+     st_rc = PerlLIO_stat(p, &st);
+ 
+-    if (st_rc < 0 || S_ISDIR(st.st_mode) || S_ISBLK(st.st_mode)) {
++    if (st_rc < 0)
+ 	return NULL;
++    else {
++	int eno;
++	if(S_ISBLK(st.st_mode)) {
++	    eno = EINVAL;
++	    goto not_file;
++	}
++	else if(S_ISDIR(st.st_mode)) {
++	    eno = EISDIR;
++	    not_file:
++	    errno = eno;
++	    return NULL;
++	}
+     }
+ #endif
+ 
+@@ -3554,8 +3561,10 @@ S_check_type_and_open(pTHX_ SV *name)
+ 	int eno;
+ 	st_rc = PerlLIO_stat(p, &st);
+ 	if (st_rc >= 0) {
+-	    if(S_ISDIR(st.st_mode) || S_ISBLK(st.st_mode))
+-		eno = 0;
++	    if(S_ISDIR(st.st_mode))
++		eno = EISDIR;
++	    else if(S_ISBLK(st.st_mode))
++		eno = EINVAL;
+ 	    else
+ 		eno = EACCES;
+ 	    errno = eno;
+diff --git a/t/op/do.t b/t/op/do.t
+index 78d8800..1c54f0b 100644
+--- a/t/op/do.t
++++ b/t/op/do.t
+@@ -7,6 +7,7 @@ BEGIN {
+ }
+ use strict;
+ no warnings 'void';
++use Errno qw(ENOENT EISDIR);
+ 
+ my $called;
+ my $result = do{ ++$called; 'value';};
+@@ -247,7 +248,7 @@ SKIP: {
+     my $saved_errno = $!;
+     ok(!$rv,          "do returns false on io errror");
+     ok(!$saved_error, "\$\@ not set on io error");
+-    ok($saved_errno,  "\$! set on io error");
++    ok($saved_errno == ENOENT, "\$! is ENOENT for nonexistent file");
+ }
+ 
+ # do subname should not be do "subname"
+@@ -305,4 +306,15 @@ SKIP: {
+ }
+ 
+ 
++# do file $!s must be correct
++{
++    local @INC = ('.'); #want EISDIR not ENOENT
++    my $rv = do 'op'; # /t/op dir
++    my $saved_error = $@;
++    my $saved_errno = $!+0;
++    ok(!$rv,                    "do dir returns false");
++    ok(!$saved_error,           "\$\@ is false on do dir");
++    ok($saved_errno == EISDIR,  "\$! is EISDIR on do dir");
++}
++
+ done_testing();
+-- 
+2.13.6
+
diff --git a/SOURCES/perl-5.26.1-fix-parsing-of-braced-subscript-after-parens.patch b/SOURCES/perl-5.26.1-fix-parsing-of-braced-subscript-after-parens.patch
new file mode 100644
index 0000000..55f0bcd
--- /dev/null
+++ b/SOURCES/perl-5.26.1-fix-parsing-of-braced-subscript-after-parens.patch
@@ -0,0 +1,1075 @@
+From 52ef21e43af97a7ed71a9bb7621a3c058196cfc2 Mon Sep 17 00:00:00 2001
+From: Zefram <zefram@fysh.org>
+Date: Tue, 16 Jan 2018 08:04:08 +0000
+Subject: [PATCH] fix parsing of braced subscript after parens
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Where an arrow is omitted between subscripts, if a parenthesised
+subscript is followed by a braced one, PL_expect was getting set to
+XBLOCK due to code intended for "foreach (...) {...}".  This broke
+bareword autoquotation, and the parsing of operators following the
+braced subscript.  Alter PL_expect from XBLOCK to XOPERATOR following
+a parenthesised subscript.  Fixes [perl #8045].
+
+Petr Písař: Ported to 5.26.1.
+
+Signed-off-by: Petr Písař <ppisar@redhat.com>
+---
+ perly.act           | 250 +++++++++++++++++++++++++++-------------------------
+ perly.h             |  10 ++-
+ perly.tab           |  30 +++----
+ perly.y             |  20 ++++-
+ t/op/postfixderef.t |  25 +++++-
+ 5 files changed, 192 insertions(+), 143 deletions(-)
+
+diff --git a/perly.act b/perly.act
+index 73c44e5..4f74883 100644
+--- a/perly.act
++++ b/perly.act
+@@ -1194,65 +1194,77 @@ case 2:
+   case 141:
+ #line 931 "perly.y" /* yacc.c:1646  */
+     { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
+-				   newCVREF(0, scalar((ps[-3].val.opval)))); }
++				   newCVREF(0, scalar((ps[-3].val.opval))));
++			  if (parser->expect == XBLOCK)
++			      parser->expect = XOPERATOR;
++			}
+ 
+     break;
+ 
+   case 142:
+-#line 934 "perly.y" /* yacc.c:1646  */
++#line 937 "perly.y" /* yacc.c:1646  */
+     { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
+ 				   op_append_elem(OP_LIST, (ps[-1].val.opval),
+-				       newCVREF(0, scalar((ps[-4].val.opval))))); }
++				       newCVREF(0, scalar((ps[-4].val.opval)))));
++			  if (parser->expect == XBLOCK)
++			      parser->expect = XOPERATOR;
++			}
+ 
+     break;
+ 
+   case 143:
+-#line 939 "perly.y" /* yacc.c:1646  */
++#line 945 "perly.y" /* yacc.c:1646  */
+     { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
+ 				   op_append_elem(OP_LIST, (ps[-1].val.opval),
+-					       newCVREF(0, scalar((ps[-3].val.opval))))); }
++					       newCVREF(0, scalar((ps[-3].val.opval)))));
++			  if (parser->expect == XBLOCK)
++			      parser->expect = XOPERATOR;
++			}
+ 
+     break;
+ 
+   case 144:
+-#line 943 "perly.y" /* yacc.c:1646  */
++#line 952 "perly.y" /* yacc.c:1646  */
+     { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
+-				   newCVREF(0, scalar((ps[-2].val.opval)))); }
++				   newCVREF(0, scalar((ps[-2].val.opval))));
++			  if (parser->expect == XBLOCK)
++			      parser->expect = XOPERATOR;
++			}
+ 
+     break;
+ 
+   case 145:
+-#line 946 "perly.y" /* yacc.c:1646  */
++#line 958 "perly.y" /* yacc.c:1646  */
+     { (yyval.opval) = newSLICEOP(0, (ps[-1].val.opval), (ps[-4].val.opval)); }
+ 
+     break;
+ 
+   case 146:
+-#line 948 "perly.y" /* yacc.c:1646  */
++#line 960 "perly.y" /* yacc.c:1646  */
+     { (yyval.opval) = newSLICEOP(0, (ps[-1].val.opval), (ps[-3].val.opval)); }
+ 
+     break;
+ 
+   case 147:
+-#line 950 "perly.y" /* yacc.c:1646  */
++#line 962 "perly.y" /* yacc.c:1646  */
+     { (yyval.opval) = newSLICEOP(0, (ps[-1].val.opval), NULL); }
+ 
+     break;
+ 
+   case 148:
+-#line 955 "perly.y" /* yacc.c:1646  */
++#line 967 "perly.y" /* yacc.c:1646  */
+     { (yyval.opval) = newASSIGNOP(OPf_STACKED, (ps[-2].val.opval), (ps[-1].val.ival), (ps[0].val.opval)); }
+ 
+     break;
+ 
+   case 149:
+-#line 957 "perly.y" /* yacc.c:1646  */
++#line 969 "perly.y" /* yacc.c:1646  */
+     { (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); }
+ 
+     break;
+ 
+   case 150:
+-#line 959 "perly.y" /* yacc.c:1646  */
++#line 971 "perly.y" /* yacc.c:1646  */
+     {   if ((ps[-1].val.ival) != OP_REPEAT)
+ 				scalar((ps[-2].val.opval));
+ 			    (yyval.opval) = newBINOP((ps[-1].val.ival), 0, (ps[-2].val.opval), scalar((ps[0].val.opval)));
+@@ -1261,111 +1273,111 @@ case 2:
+     break;
+ 
+   case 151:
+-#line 964 "perly.y" /* yacc.c:1646  */
++#line 976 "perly.y" /* yacc.c:1646  */
+     { (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); }
+ 
+     break;
+ 
+   case 152:
+-#line 966 "perly.y" /* yacc.c:1646  */
++#line 978 "perly.y" /* yacc.c:1646  */
+     { (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); }
+ 
+     break;
+ 
+   case 153:
+-#line 968 "perly.y" /* yacc.c:1646  */
++#line 980 "perly.y" /* yacc.c:1646  */
+     { (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); }
+ 
+     break;
+ 
+   case 154:
+-#line 970 "perly.y" /* yacc.c:1646  */
++#line 982 "perly.y" /* yacc.c:1646  */
+     { (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); }
+ 
+     break;
+ 
+   case 155:
+-#line 972 "perly.y" /* yacc.c:1646  */
++#line 984 "perly.y" /* yacc.c:1646  */
+     { (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); }
+ 
+     break;
+ 
+   case 156:
+-#line 974 "perly.y" /* yacc.c:1646  */
++#line 986 "perly.y" /* yacc.c:1646  */
+     { (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); }
+ 
+     break;
+ 
+   case 157:
+-#line 976 "perly.y" /* yacc.c:1646  */
++#line 988 "perly.y" /* yacc.c:1646  */
+     { (yyval.opval) = newRANGE((ps[-1].val.ival), scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); }
+ 
+     break;
+ 
+   case 158:
+-#line 978 "perly.y" /* yacc.c:1646  */
++#line 990 "perly.y" /* yacc.c:1646  */
+     { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[-2].val.opval), (ps[0].val.opval)); }
+ 
+     break;
+ 
+   case 159:
+-#line 980 "perly.y" /* yacc.c:1646  */
++#line 992 "perly.y" /* yacc.c:1646  */
+     { (yyval.opval) = newLOGOP(OP_OR, 0, (ps[-2].val.opval), (ps[0].val.opval)); }
+ 
+     break;
+ 
+   case 160:
+-#line 982 "perly.y" /* yacc.c:1646  */
++#line 994 "perly.y" /* yacc.c:1646  */
+     { (yyval.opval) = newLOGOP(OP_DOR, 0, (ps[-2].val.opval), (ps[0].val.opval)); }
+ 
+     break;
+ 
+   case 161:
+-#line 984 "perly.y" /* yacc.c:1646  */
++#line 996 "perly.y" /* yacc.c:1646  */
+     { (yyval.opval) = bind_match((ps[-1].val.ival), (ps[-2].val.opval), (ps[0].val.opval)); }
+ 
+     break;
+ 
+   case 162:
+-#line 989 "perly.y" /* yacc.c:1646  */
++#line 1001 "perly.y" /* yacc.c:1646  */
+     { (yyval.opval) = newUNOP(OP_NEGATE, 0, scalar((ps[0].val.opval))); }
+ 
+     break;
+ 
+   case 163:
+-#line 991 "perly.y" /* yacc.c:1646  */
++#line 1003 "perly.y" /* yacc.c:1646  */
+     { (yyval.opval) = (ps[0].val.opval); }
+ 
+     break;
+ 
+   case 164:
+-#line 994 "perly.y" /* yacc.c:1646  */
++#line 1006 "perly.y" /* yacc.c:1646  */
+     { (yyval.opval) = newUNOP(OP_NOT, 0, scalar((ps[0].val.opval))); }
+ 
+     break;
+ 
+   case 165:
+-#line 996 "perly.y" /* yacc.c:1646  */
++#line 1008 "perly.y" /* yacc.c:1646  */
+     { (yyval.opval) = newUNOP((ps[-1].val.ival), 0, scalar((ps[0].val.opval))); }
+ 
+     break;
+ 
+   case 166:
+-#line 998 "perly.y" /* yacc.c:1646  */
++#line 1010 "perly.y" /* yacc.c:1646  */
+     { (yyval.opval) = newUNOP(OP_POSTINC, 0,
+ 					op_lvalue(scalar((ps[-1].val.opval)), OP_POSTINC)); }
+ 
+     break;
+ 
+   case 167:
+-#line 1001 "perly.y" /* yacc.c:1646  */
++#line 1013 "perly.y" /* yacc.c:1646  */
+     { (yyval.opval) = newUNOP(OP_POSTDEC, 0,
+ 					op_lvalue(scalar((ps[-1].val.opval)), OP_POSTDEC));}
+ 
+     break;
+ 
+   case 168:
+-#line 1004 "perly.y" /* yacc.c:1646  */
++#line 1016 "perly.y" /* yacc.c:1646  */
+     { (yyval.opval) = op_convert_list(OP_JOIN, 0,
+ 				       op_append_elem(
+ 					OP_LIST,
+@@ -1380,52 +1392,52 @@ case 2:
+     break;
+ 
+   case 169:
+-#line 1015 "perly.y" /* yacc.c:1646  */
++#line 1027 "perly.y" /* yacc.c:1646  */
+     { (yyval.opval) = newUNOP(OP_PREINC, 0,
+ 					op_lvalue(scalar((ps[0].val.opval)), OP_PREINC)); }
+ 
+     break;
+ 
+   case 170:
+-#line 1018 "perly.y" /* yacc.c:1646  */
++#line 1030 "perly.y" /* yacc.c:1646  */
+     { (yyval.opval) = newUNOP(OP_PREDEC, 0,
+ 					op_lvalue(scalar((ps[0].val.opval)), OP_PREDEC)); }
+ 
+     break;
+ 
+   case 171:
+-#line 1025 "perly.y" /* yacc.c:1646  */
++#line 1037 "perly.y" /* yacc.c:1646  */
+     { (yyval.opval) = newANONLIST((ps[-1].val.opval)); }
+ 
+     break;
+ 
+   case 172:
+-#line 1027 "perly.y" /* yacc.c:1646  */
++#line 1039 "perly.y" /* yacc.c:1646  */
+     { (yyval.opval) = newANONLIST(NULL);}
+ 
+     break;
+ 
+   case 173:
+-#line 1029 "perly.y" /* yacc.c:1646  */
++#line 1041 "perly.y" /* yacc.c:1646  */
+     { (yyval.opval) = newANONHASH((ps[-2].val.opval)); }
+ 
+     break;
+ 
+   case 174:
+-#line 1031 "perly.y" /* yacc.c:1646  */
++#line 1043 "perly.y" /* yacc.c:1646  */
+     { (yyval.opval) = newANONHASH(NULL); }
+ 
+     break;
+ 
+   case 175:
+-#line 1033 "perly.y" /* yacc.c:1646  */
++#line 1045 "perly.y" /* yacc.c:1646  */
+     { SvREFCNT_inc_simple_void(PL_compcv);
+ 			  (yyval.opval) = newANONATTRSUB((ps[-3].val.ival), (ps[-2].val.opval), (ps[-1].val.opval), (ps[0].val.opval)); }
+ 
+     break;
+ 
+   case 176:
+-#line 1036 "perly.y" /* yacc.c:1646  */
++#line 1048 "perly.y" /* yacc.c:1646  */
+     {
+ 			  OP *body;
+ 			  if (parser->copline > (line_t)(ps[-2].val.ival))
+@@ -1439,103 +1451,103 @@ case 2:
+     break;
+ 
+   case 177:
+-#line 1050 "perly.y" /* yacc.c:1646  */
++#line 1062 "perly.y" /* yacc.c:1646  */
+     { (yyval.opval) = dofile((ps[0].val.opval), (ps[-1].val.ival));}
+ 
+     break;
+ 
+   case 178:
+-#line 1052 "perly.y" /* yacc.c:1646  */
++#line 1064 "perly.y" /* yacc.c:1646  */
+     { (yyval.opval) = newUNOP(OP_NULL, OPf_SPECIAL, op_scope((ps[0].val.opval)));}
+ 
+     break;
+ 
+   case 183:
+-#line 1060 "perly.y" /* yacc.c:1646  */
++#line 1072 "perly.y" /* yacc.c:1646  */
+     { (yyval.opval) = newCONDOP(0, (ps[-4].val.opval), (ps[-2].val.opval), (ps[0].val.opval)); }
+ 
+     break;
+ 
+   case 184:
+-#line 1062 "perly.y" /* yacc.c:1646  */
++#line 1074 "perly.y" /* yacc.c:1646  */
+     { (yyval.opval) = newUNOP(OP_REFGEN, 0, (ps[0].val.opval)); }
+ 
+     break;
+ 
+   case 185:
+-#line 1064 "perly.y" /* yacc.c:1646  */
++#line 1076 "perly.y" /* yacc.c:1646  */
+     { (yyval.opval) = newUNOP(OP_REFGEN, 0, localize((ps[0].val.opval),1)); }
+ 
+     break;
+ 
+   case 186:
+-#line 1066 "perly.y" /* yacc.c:1646  */
++#line 1078 "perly.y" /* yacc.c:1646  */
+     { (yyval.opval) = (ps[0].val.opval); }
+ 
+     break;
+ 
+   case 187:
+-#line 1068 "perly.y" /* yacc.c:1646  */
++#line 1080 "perly.y" /* yacc.c:1646  */
+     { (yyval.opval) = localize((ps[0].val.opval),0); }
+ 
+     break;
+ 
+   case 188:
+-#line 1070 "perly.y" /* yacc.c:1646  */
++#line 1082 "perly.y" /* yacc.c:1646  */
+     { (yyval.opval) = sawparens((ps[-1].val.opval)); }
+ 
+     break;
+ 
+   case 189:
+-#line 1072 "perly.y" /* yacc.c:1646  */
++#line 1084 "perly.y" /* yacc.c:1646  */
+     { (yyval.opval) = (ps[0].val.opval); }
+ 
+     break;
+ 
+   case 190:
+-#line 1074 "perly.y" /* yacc.c:1646  */
++#line 1086 "perly.y" /* yacc.c:1646  */
+     { (yyval.opval) = sawparens(newNULLLIST()); }
+ 
+     break;
+ 
+   case 191:
+-#line 1076 "perly.y" /* yacc.c:1646  */
++#line 1088 "perly.y" /* yacc.c:1646  */
+     { (yyval.opval) = (ps[0].val.opval); }
+ 
+     break;
+ 
+   case 192:
+-#line 1078 "perly.y" /* yacc.c:1646  */
++#line 1090 "perly.y" /* yacc.c:1646  */
+     { (yyval.opval) = (ps[0].val.opval); }
+ 
+     break;
+ 
+   case 193:
+-#line 1080 "perly.y" /* yacc.c:1646  */
++#line 1092 "perly.y" /* yacc.c:1646  */
+     { (yyval.opval) = (ps[0].val.opval); }
+ 
+     break;
+ 
+   case 194:
+-#line 1082 "perly.y" /* yacc.c:1646  */
++#line 1094 "perly.y" /* yacc.c:1646  */
+     { (yyval.opval) = (ps[0].val.opval); }
+ 
+     break;
+ 
+   case 195:
+-#line 1084 "perly.y" /* yacc.c:1646  */
++#line 1096 "perly.y" /* yacc.c:1646  */
+     { (yyval.opval) = newUNOP(OP_AV2ARYLEN, 0, ref((ps[0].val.opval), OP_AV2ARYLEN));}
+ 
+     break;
+ 
+   case 196:
+-#line 1086 "perly.y" /* yacc.c:1646  */
++#line 1098 "perly.y" /* yacc.c:1646  */
+     { (yyval.opval) = (ps[0].val.opval); }
+ 
+     break;
+ 
+   case 197:
+-#line 1088 "perly.y" /* yacc.c:1646  */
++#line 1100 "perly.y" /* yacc.c:1646  */
+     { (yyval.opval) = op_prepend_elem(OP_ASLICE,
+ 				newOP(OP_PUSHMARK, 0),
+ 				    newLISTOP(OP_ASLICE, 0,
+@@ -1549,7 +1561,7 @@ case 2:
+     break;
+ 
+   case 198:
+-#line 1098 "perly.y" /* yacc.c:1646  */
++#line 1110 "perly.y" /* yacc.c:1646  */
+     { (yyval.opval) = op_prepend_elem(OP_KVASLICE,
+ 				newOP(OP_PUSHMARK, 0),
+ 				    newLISTOP(OP_KVASLICE, 0,
+@@ -1563,7 +1575,7 @@ case 2:
+     break;
+ 
+   case 199:
+-#line 1108 "perly.y" /* yacc.c:1646  */
++#line 1120 "perly.y" /* yacc.c:1646  */
+     { (yyval.opval) = op_prepend_elem(OP_HSLICE,
+ 				newOP(OP_PUSHMARK, 0),
+ 				    newLISTOP(OP_HSLICE, 0,
+@@ -1577,7 +1589,7 @@ case 2:
+     break;
+ 
+   case 200:
+-#line 1118 "perly.y" /* yacc.c:1646  */
++#line 1130 "perly.y" /* yacc.c:1646  */
+     { (yyval.opval) = op_prepend_elem(OP_KVHSLICE,
+ 				newOP(OP_PUSHMARK, 0),
+ 				    newLISTOP(OP_KVHSLICE, 0,
+@@ -1591,26 +1603,26 @@ case 2:
+     break;
+ 
+   case 201:
+-#line 1128 "perly.y" /* yacc.c:1646  */
++#line 1140 "perly.y" /* yacc.c:1646  */
+     { (yyval.opval) = (ps[0].val.opval); }
+ 
+     break;
+ 
+   case 202:
+-#line 1130 "perly.y" /* yacc.c:1646  */
++#line 1142 "perly.y" /* yacc.c:1646  */
+     { (yyval.opval) = newUNOP(OP_ENTERSUB, 0, scalar((ps[0].val.opval))); }
+ 
+     break;
+ 
+   case 203:
+-#line 1132 "perly.y" /* yacc.c:1646  */
++#line 1144 "perly.y" /* yacc.c:1646  */
+     { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[-2].val.opval)));
+ 			}
+ 
+     break;
+ 
+   case 204:
+-#line 1135 "perly.y" /* yacc.c:1646  */
++#line 1147 "perly.y" /* yacc.c:1646  */
+     {
+ 			  (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
+ 				op_append_elem(OP_LIST, (ps[-1].val.opval), scalar((ps[-3].val.opval))));
+@@ -1619,7 +1631,7 @@ case 2:
+     break;
+ 
+   case 205:
+-#line 1140 "perly.y" /* yacc.c:1646  */
++#line 1152 "perly.y" /* yacc.c:1646  */
+     { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
+ 			    op_append_elem(OP_LIST, (ps[0].val.opval), scalar((ps[-1].val.opval))));
+ 			}
+@@ -1627,130 +1639,130 @@ case 2:
+     break;
+ 
+   case 206:
+-#line 1144 "perly.y" /* yacc.c:1646  */
++#line 1156 "perly.y" /* yacc.c:1646  */
+     { (yyval.opval) = newSVREF((ps[-3].val.opval)); }
+ 
+     break;
+ 
+   case 207:
+-#line 1146 "perly.y" /* yacc.c:1646  */
++#line 1158 "perly.y" /* yacc.c:1646  */
+     { (yyval.opval) = newAVREF((ps[-3].val.opval)); }
+ 
+     break;
+ 
+   case 208:
+-#line 1148 "perly.y" /* yacc.c:1646  */
++#line 1160 "perly.y" /* yacc.c:1646  */
+     { (yyval.opval) = newHVREF((ps[-3].val.opval)); }
+ 
+     break;
+ 
+   case 209:
+-#line 1150 "perly.y" /* yacc.c:1646  */
++#line 1162 "perly.y" /* yacc.c:1646  */
+     { (yyval.opval) = newUNOP(OP_ENTERSUB, 0,
+ 				       scalar(newCVREF((ps[-1].val.ival),(ps[-3].val.opval)))); }
+ 
+     break;
+ 
+   case 210:
+-#line 1153 "perly.y" /* yacc.c:1646  */
++#line 1165 "perly.y" /* yacc.c:1646  */
+     { (yyval.opval) = newGVREF(0,(ps[-3].val.opval)); }
+ 
+     break;
+ 
+   case 211:
+-#line 1155 "perly.y" /* yacc.c:1646  */
++#line 1167 "perly.y" /* yacc.c:1646  */
+     { (yyval.opval) = newOP((ps[0].val.ival), OPf_SPECIAL);
+ 			    PL_hints |= HINT_BLOCK_SCOPE; }
+ 
+     break;
+ 
+   case 212:
+-#line 1158 "perly.y" /* yacc.c:1646  */
++#line 1170 "perly.y" /* yacc.c:1646  */
+     { (yyval.opval) = newLOOPEX((ps[-1].val.ival),(ps[0].val.opval)); }
+ 
+     break;
+ 
+   case 213:
+-#line 1160 "perly.y" /* yacc.c:1646  */
++#line 1172 "perly.y" /* yacc.c:1646  */
+     { (yyval.opval) = newUNOP(OP_NOT, 0, scalar((ps[0].val.opval))); }
+ 
+     break;
+ 
+   case 214:
+-#line 1162 "perly.y" /* yacc.c:1646  */
++#line 1174 "perly.y" /* yacc.c:1646  */
+     { (yyval.opval) = newOP((ps[0].val.ival), 0); }
+ 
+     break;
+ 
+   case 215:
+-#line 1164 "perly.y" /* yacc.c:1646  */
++#line 1176 "perly.y" /* yacc.c:1646  */
+     { (yyval.opval) = newUNOP((ps[-1].val.ival), 0, (ps[0].val.opval)); }
+ 
+     break;
+ 
+   case 216:
+-#line 1166 "perly.y" /* yacc.c:1646  */
++#line 1178 "perly.y" /* yacc.c:1646  */
+     { (yyval.opval) = newUNOP((ps[-1].val.ival), 0, (ps[0].val.opval)); }
+ 
+     break;
+ 
+   case 217:
+-#line 1168 "perly.y" /* yacc.c:1646  */
++#line 1180 "perly.y" /* yacc.c:1646  */
+     { (yyval.opval) = newOP(OP_REQUIRE, (ps[0].val.ival) ? OPf_SPECIAL : 0); }
+ 
+     break;
+ 
+   case 218:
+-#line 1170 "perly.y" /* yacc.c:1646  */
++#line 1182 "perly.y" /* yacc.c:1646  */
+     { (yyval.opval) = newUNOP(OP_REQUIRE, (ps[-1].val.ival) ? OPf_SPECIAL : 0, (ps[0].val.opval)); }
+ 
+     break;
+ 
+   case 219:
+-#line 1172 "perly.y" /* yacc.c:1646  */
++#line 1184 "perly.y" /* yacc.c:1646  */
+     { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[0].val.opval))); }
+ 
+     break;
+ 
+   case 220:
+-#line 1174 "perly.y" /* yacc.c:1646  */
++#line 1186 "perly.y" /* yacc.c:1646  */
+     { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
+ 			    op_append_elem(OP_LIST, (ps[0].val.opval), scalar((ps[-1].val.opval)))); }
+ 
+     break;
+ 
+   case 221:
+-#line 1177 "perly.y" /* yacc.c:1646  */
++#line 1189 "perly.y" /* yacc.c:1646  */
+     { (yyval.opval) = newOP((ps[0].val.ival), 0); }
+ 
+     break;
+ 
+   case 222:
+-#line 1179 "perly.y" /* yacc.c:1646  */
++#line 1191 "perly.y" /* yacc.c:1646  */
+     { (yyval.opval) = newOP((ps[-2].val.ival), 0);}
+ 
+     break;
+ 
+   case 223:
+-#line 1181 "perly.y" /* yacc.c:1646  */
++#line 1193 "perly.y" /* yacc.c:1646  */
+     { (yyval.opval) = (ps[0].val.opval); }
+ 
+     break;
+ 
+   case 224:
+-#line 1183 "perly.y" /* yacc.c:1646  */
++#line 1195 "perly.y" /* yacc.c:1646  */
+     { (yyval.opval) = (ps[-2].val.opval); }
+ 
+     break;
+ 
+   case 225:
+-#line 1185 "perly.y" /* yacc.c:1646  */
++#line 1197 "perly.y" /* yacc.c:1646  */
+     { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[0].val.opval))); }
+ 
+     break;
+ 
+   case 226:
+-#line 1187 "perly.y" /* yacc.c:1646  */
++#line 1199 "perly.y" /* yacc.c:1646  */
+     { (yyval.opval) = ((ps[-2].val.ival) == OP_NOT)
+                           ? newUNOP((ps[-2].val.ival), 0, newSVOP(OP_CONST, 0, newSViv(0)))
+                           : newOP((ps[-2].val.ival), OPf_SPECIAL); }
+@@ -1758,13 +1770,13 @@ case 2:
+     break;
+ 
+   case 227:
+-#line 1191 "perly.y" /* yacc.c:1646  */
++#line 1203 "perly.y" /* yacc.c:1646  */
+     { (yyval.opval) = newUNOP((ps[-3].val.ival), 0, (ps[-1].val.opval)); }
+ 
+     break;
+ 
+   case 228:
+-#line 1193 "perly.y" /* yacc.c:1646  */
++#line 1205 "perly.y" /* yacc.c:1646  */
+     {
+ 			    if (   (ps[0].val.opval)->op_type != OP_TRANS
+ 			        && (ps[0].val.opval)->op_type != OP_TRANSR
+@@ -1779,13 +1791,13 @@ case 2:
+     break;
+ 
+   case 229:
+-#line 1204 "perly.y" /* yacc.c:1646  */
++#line 1216 "perly.y" /* yacc.c:1646  */
+     { (yyval.opval) = pmruntime((ps[-5].val.opval), (ps[-2].val.opval), (ps[-1].val.opval), 1, (ps[-4].val.ival)); }
+ 
+     break;
+ 
+   case 232:
+-#line 1208 "perly.y" /* yacc.c:1646  */
++#line 1220 "perly.y" /* yacc.c:1646  */
+     {
+ 			  (yyval.opval) = newLISTOP(OP_DIE, 0, newOP(OP_PUSHMARK, 0),
+ 				newSVOP(OP_CONST, 0, newSVpvs("Unimplemented")));
+@@ -1794,109 +1806,109 @@ case 2:
+     break;
+ 
+   case 234:
+-#line 1217 "perly.y" /* yacc.c:1646  */
++#line 1229 "perly.y" /* yacc.c:1646  */
+     { (yyval.opval) = my_attrs((ps[-1].val.opval),(ps[0].val.opval)); }
+ 
+     break;
+ 
+   case 235:
+-#line 1219 "perly.y" /* yacc.c:1646  */
++#line 1231 "perly.y" /* yacc.c:1646  */
+     { (yyval.opval) = localize((ps[0].val.opval),1); }
+ 
+     break;
+ 
+   case 236:
+-#line 1221 "perly.y" /* yacc.c:1646  */
++#line 1233 "perly.y" /* yacc.c:1646  */
+     { (yyval.opval) = newUNOP(OP_REFGEN, 0, my_attrs((ps[-1].val.opval),(ps[0].val.opval))); }
+ 
+     break;
+ 
+   case 237:
+-#line 1226 "perly.y" /* yacc.c:1646  */
++#line 1238 "perly.y" /* yacc.c:1646  */
+     { (yyval.opval) = sawparens((ps[-1].val.opval)); }
+ 
+     break;
+ 
+   case 238:
+-#line 1228 "perly.y" /* yacc.c:1646  */
++#line 1240 "perly.y" /* yacc.c:1646  */
+     { (yyval.opval) = sawparens(newNULLLIST()); }
+ 
+     break;
+ 
+   case 239:
+-#line 1231 "perly.y" /* yacc.c:1646  */
++#line 1243 "perly.y" /* yacc.c:1646  */
+     { (yyval.opval) = (ps[0].val.opval); }
+ 
+     break;
+ 
+   case 240:
+-#line 1233 "perly.y" /* yacc.c:1646  */
++#line 1245 "perly.y" /* yacc.c:1646  */
+     { (yyval.opval) = (ps[0].val.opval); }
+ 
+     break;
+ 
+   case 241:
+-#line 1235 "perly.y" /* yacc.c:1646  */
++#line 1247 "perly.y" /* yacc.c:1646  */
+     { (yyval.opval) = (ps[0].val.opval); }
+ 
+     break;
+ 
+   case 242:
+-#line 1240 "perly.y" /* yacc.c:1646  */
++#line 1252 "perly.y" /* yacc.c:1646  */
+     { (yyval.opval) = NULL; }
+ 
+     break;
+ 
+   case 243:
+-#line 1242 "perly.y" /* yacc.c:1646  */
++#line 1254 "perly.y" /* yacc.c:1646  */
+     { (yyval.opval) = (ps[0].val.opval); }
+ 
+     break;
+ 
+   case 244:
+-#line 1246 "perly.y" /* yacc.c:1646  */
++#line 1258 "perly.y" /* yacc.c:1646  */
+     { (yyval.opval) = NULL; }
+ 
+     break;
+ 
+   case 245:
+-#line 1248 "perly.y" /* yacc.c:1646  */
++#line 1260 "perly.y" /* yacc.c:1646  */
+     { (yyval.opval) = (ps[0].val.opval); }
+ 
+     break;
+ 
+   case 246:
+-#line 1252 "perly.y" /* yacc.c:1646  */
++#line 1264 "perly.y" /* yacc.c:1646  */
+     { (yyval.opval) = NULL; }
+ 
+     break;
+ 
+   case 247:
+-#line 1254 "perly.y" /* yacc.c:1646  */
++#line 1266 "perly.y" /* yacc.c:1646  */
+     { (yyval.opval) = (ps[0].val.opval); }
+ 
+     break;
+ 
+   case 248:
+-#line 1260 "perly.y" /* yacc.c:1646  */
++#line 1272 "perly.y" /* yacc.c:1646  */
+     { parser->in_my = 0; (yyval.opval) = my((ps[0].val.opval)); }
+ 
+     break;
+ 
+   case 256:
+-#line 1277 "perly.y" /* yacc.c:1646  */
++#line 1289 "perly.y" /* yacc.c:1646  */
+     { (yyval.opval) = newCVREF((ps[-1].val.ival),(ps[0].val.opval)); }
+ 
+     break;
+ 
+   case 257:
+-#line 1281 "perly.y" /* yacc.c:1646  */
++#line 1293 "perly.y" /* yacc.c:1646  */
+     { (yyval.opval) = newSVREF((ps[0].val.opval)); }
+ 
+     break;
+ 
+   case 258:
+-#line 1285 "perly.y" /* yacc.c:1646  */
++#line 1297 "perly.y" /* yacc.c:1646  */
+     { (yyval.opval) = newAVREF((ps[0].val.opval));
+ 			  if ((yyval.opval)) (yyval.opval)->op_private |= (ps[-1].val.ival);
+ 			}
+@@ -1904,7 +1916,7 @@ case 2:
+     break;
+ 
+   case 259:
+-#line 1291 "perly.y" /* yacc.c:1646  */
++#line 1303 "perly.y" /* yacc.c:1646  */
+     { (yyval.opval) = newHVREF((ps[0].val.opval));
+ 			  if ((yyval.opval)) (yyval.opval)->op_private |= (ps[-1].val.ival);
+ 			}
+@@ -1912,61 +1924,61 @@ case 2:
+     break;
+ 
+   case 260:
+-#line 1297 "perly.y" /* yacc.c:1646  */
++#line 1309 "perly.y" /* yacc.c:1646  */
+     { (yyval.opval) = newAVREF((ps[0].val.opval)); }
+ 
+     break;
+ 
+   case 261:
+-#line 1299 "perly.y" /* yacc.c:1646  */
++#line 1311 "perly.y" /* yacc.c:1646  */
+     { (yyval.opval) = newAVREF((ps[-3].val.opval)); }
+ 
+     break;
+ 
+   case 262:
+-#line 1303 "perly.y" /* yacc.c:1646  */
++#line 1315 "perly.y" /* yacc.c:1646  */
+     { (yyval.opval) = newGVREF(0,(ps[0].val.opval)); }
+ 
+     break;
+ 
+   case 264:
+-#line 1308 "perly.y" /* yacc.c:1646  */
++#line 1320 "perly.y" /* yacc.c:1646  */
+     { (yyval.opval) = newAVREF((ps[-2].val.opval)); }
+ 
+     break;
+ 
+   case 266:
+-#line 1313 "perly.y" /* yacc.c:1646  */
++#line 1325 "perly.y" /* yacc.c:1646  */
+     { (yyval.opval) = newHVREF((ps[-2].val.opval)); }
+ 
+     break;
+ 
+   case 268:
+-#line 1318 "perly.y" /* yacc.c:1646  */
++#line 1330 "perly.y" /* yacc.c:1646  */
+     { (yyval.opval) = newGVREF(0,(ps[-2].val.opval)); }
+ 
+     break;
+ 
+   case 269:
+-#line 1323 "perly.y" /* yacc.c:1646  */
++#line 1335 "perly.y" /* yacc.c:1646  */
+     { (yyval.opval) = scalar((ps[0].val.opval)); }
+ 
+     break;
+ 
+   case 270:
+-#line 1325 "perly.y" /* yacc.c:1646  */
++#line 1337 "perly.y" /* yacc.c:1646  */
+     { (yyval.opval) = scalar((ps[0].val.opval)); }
+ 
+     break;
+ 
+   case 271:
+-#line 1327 "perly.y" /* yacc.c:1646  */
++#line 1339 "perly.y" /* yacc.c:1646  */
+     { (yyval.opval) = op_scope((ps[0].val.opval)); }
+ 
+     break;
+ 
+   case 272:
+-#line 1330 "perly.y" /* yacc.c:1646  */
++#line 1342 "perly.y" /* yacc.c:1646  */
+     { (yyval.opval) = (ps[0].val.opval); }
+ 
+     break;
+@@ -1977,6 +1989,6 @@ case 2:
+     
+ 
+ /* Generated from:
+- * a8b5527eacb1205d15c8c01acb4a8f99b494e5b453ddd68a2a2e7fca4be3302a perly.y
++ * c44aaa81abd3fc5c53b5aee014f9e6e11ef70a4c8470b767618f5938627ef0e7 perly.y
+  * 153cba5d215c1a083a0459c43f4d55c45fd0a7093c197d7247a456dcde21ea53 regen_perly.pl
+  * ex: set ro: */
+diff --git a/perly.h b/perly.h
+index a7e9a43..256d797 100644
+--- a/perly.h
++++ b/perly.h
+@@ -7,11 +7,11 @@
+ #define PERL_BISON_VERSION  30000
+ 
+ #ifdef PERL_CORE
+-/* A Bison parser, made by GNU Bison 3.0.2.  */
++/* A Bison parser, made by GNU Bison 3.0.4.  */
+ 
+ /* Bison interface for Yacc-like parsers in C
+ 
+-   Copyright (C) 1984, 1989-1990, 2000-2013 Free Software Foundation, Inc.
++   Copyright (C) 1984, 1989-1990, 2000-2015 Free Software Foundation, Inc.
+ 
+    This program is free software: you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+@@ -160,7 +160,7 @@ S_is_opval_token(int type) {
+ #endif /* PERL_IN_TOKE_C */
+ #endif /* PERL_CORE */
+ #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
+-typedef union YYSTYPE YYSTYPE;
++
+ union YYSTYPE
+ {
+ 
+@@ -171,6 +171,8 @@ union YYSTYPE
+     GV *gvval;
+ 
+ };
++
++typedef union YYSTYPE YYSTYPE;
+ # define YYSTYPE_IS_TRIVIAL 1
+ # define YYSTYPE_IS_DECLARED 1
+ #endif
+@@ -181,6 +183,6 @@ int yyparse (void);
+ 
+ 
+ /* Generated from:
+- * a8b5527eacb1205d15c8c01acb4a8f99b494e5b453ddd68a2a2e7fca4be3302a perly.y
++ * c44aaa81abd3fc5c53b5aee014f9e6e11ef70a4c8470b767618f5938627ef0e7 perly.y
+  * 153cba5d215c1a083a0459c43f4d55c45fd0a7093c197d7247a456dcde21ea53 regen_perly.pl
+  * ex: set ro: */
+diff --git a/perly.tab b/perly.tab
+index e4065de..fe19874 100644
+--- a/perly.tab
++++ b/perly.tab
+@@ -83,20 +83,20 @@ static const yytype_uint16 yyrline[] =
+      769,   774,   773,   825,   826,   830,   832,   834,   836,   840,
+      842,   847,   851,   855,   859,   865,   870,   876,   882,   884,
+      887,   886,   897,   898,   902,   906,   909,   914,   919,   922,
+-     926,   930,   933,   938,   942,   945,   947,   949,   954,   956,
+-     958,   963,   965,   967,   969,   971,   973,   975,   977,   979,
+-     981,   983,   988,   990,   993,   995,   997,  1000,  1003,  1014,
+-    1017,  1024,  1026,  1028,  1030,  1032,  1035,  1049,  1051,  1055,
+-    1056,  1057,  1058,  1059,  1061,  1063,  1065,  1067,  1069,  1071,
+-    1073,  1075,  1077,  1079,  1081,  1083,  1085,  1087,  1097,  1107,
+-    1117,  1127,  1129,  1131,  1134,  1139,  1143,  1145,  1147,  1149,
+-    1152,  1154,  1157,  1159,  1161,  1163,  1165,  1167,  1169,  1171,
+-    1173,  1176,  1178,  1180,  1182,  1184,  1186,  1190,  1193,  1192,
+-    1205,  1206,  1207,  1212,  1216,  1218,  1220,  1225,  1227,  1230,
+-    1232,  1234,  1239,  1241,  1246,  1247,  1252,  1253,  1259,  1263,
+-    1264,  1265,  1268,  1269,  1272,  1273,  1276,  1280,  1284,  1290,
+-    1296,  1298,  1302,  1306,  1307,  1311,  1312,  1316,  1317,  1322,
+-    1324,  1326,  1329
++     926,   930,   936,   944,   951,   957,   959,   961,   966,   968,
++     970,   975,   977,   979,   981,   983,   985,   987,   989,   991,
++     993,   995,  1000,  1002,  1005,  1007,  1009,  1012,  1015,  1026,
++    1029,  1036,  1038,  1040,  1042,  1044,  1047,  1061,  1063,  1067,
++    1068,  1069,  1070,  1071,  1073,  1075,  1077,  1079,  1081,  1083,
++    1085,  1087,  1089,  1091,  1093,  1095,  1097,  1099,  1109,  1119,
++    1129,  1139,  1141,  1143,  1146,  1151,  1155,  1157,  1159,  1161,
++    1164,  1166,  1169,  1171,  1173,  1175,  1177,  1179,  1181,  1183,
++    1185,  1188,  1190,  1192,  1194,  1196,  1198,  1202,  1205,  1204,
++    1217,  1218,  1219,  1224,  1228,  1230,  1232,  1237,  1239,  1242,
++    1244,  1246,  1251,  1253,  1258,  1259,  1264,  1265,  1271,  1275,
++    1276,  1277,  1280,  1281,  1284,  1285,  1288,  1292,  1296,  1302,
++    1308,  1310,  1314,  1318,  1319,  1323,  1324,  1328,  1329,  1334,
++    1336,  1338,  1341
+ };
+ #endif
+ 
+@@ -1109,6 +1109,6 @@ static const toketypes yy_type_tab[] =
+ };
+ 
+ /* Generated from:
+- * a8b5527eacb1205d15c8c01acb4a8f99b494e5b453ddd68a2a2e7fca4be3302a perly.y
++ * c44aaa81abd3fc5c53b5aee014f9e6e11ef70a4c8470b767618f5938627ef0e7 perly.y
+  * 153cba5d215c1a083a0459c43f4d55c45fd0a7093c197d7247a456dcde21ea53 regen_perly.pl
+  * ex: set ro: */
+diff --git a/perly.y b/perly.y
+index 7d57dea..14d48d6 100644
+--- a/perly.y
++++ b/perly.y
+@@ -929,19 +929,31 @@ subscripted:    gelem '{' expr ';' '}'        /* *main::{something} */
+ 					jmaybe($3)); }
+ 	|	term ARROW '(' ')'          /* $subref->() */
+ 			{ $$ = newUNOP(OP_ENTERSUB, OPf_STACKED,
+-				   newCVREF(0, scalar($1))); }
++				   newCVREF(0, scalar($1)));
++			  if (parser->expect == XBLOCK)
++			      parser->expect = XOPERATOR;
++			}
+ 	|	term ARROW '(' expr ')'     /* $subref->(@args) */
+ 			{ $$ = newUNOP(OP_ENTERSUB, OPf_STACKED,
+ 				   op_append_elem(OP_LIST, $4,
+-				       newCVREF(0, scalar($1)))); }
++				       newCVREF(0, scalar($1))));
++			  if (parser->expect == XBLOCK)
++			      parser->expect = XOPERATOR;
++			}
+ 
+ 	|	subscripted '(' expr ')'   /* $foo->{bar}->(@args) */
+ 			{ $$ = newUNOP(OP_ENTERSUB, OPf_STACKED,
+ 				   op_append_elem(OP_LIST, $3,
+-					       newCVREF(0, scalar($1)))); }
++					       newCVREF(0, scalar($1))));
++			  if (parser->expect == XBLOCK)
++			      parser->expect = XOPERATOR;
++			}
+ 	|	subscripted '(' ')'        /* $foo->{bar}->() */
+ 			{ $$ = newUNOP(OP_ENTERSUB, OPf_STACKED,
+-				   newCVREF(0, scalar($1))); }
++				   newCVREF(0, scalar($1)));
++			  if (parser->expect == XBLOCK)
++			      parser->expect = XOPERATOR;
++			}
+ 	|	'(' expr ')' '[' expr ']'            /* list slice */
+ 			{ $$ = newSLICEOP(0, $5, $2); }
+ 	|	QWLIST '[' expr ']'            /* list literal slice */
+diff --git a/t/op/postfixderef.t b/t/op/postfixderef.t
+index ba69f06..c2983cf 100644
+--- a/t/op/postfixderef.t
++++ b/t/op/postfixderef.t
+@@ -16,7 +16,7 @@ BEGIN {
+ 
+ use strict qw(refs subs);
+ 
+-plan(116);
++plan(130);
+ 
+ {
+     no strict 'refs';
+@@ -365,3 +365,26 @@ is "$_->@{foo}", "foo->7 8 9", '->@{ does not interpolate without feature';
+     is "foo$ref->$*bar", "foo plus overload plus bar",
+        '"foo $s->$* bar" does concat overloading';
+ }
++
++# parsing of {} subscript as subscript rather than block
++{
++    sub ppp { "qqq" }
++    my $h = { ppp => "pp", qqq => "qq", rrr => 7 };
++    is ${$h}{ppp}, "pp";
++    is ${$h}{"rrr"} - 2, 5;
++    my $ar = [$h];
++    is $ar->[0]->{ppp}, "pp";
++    is $ar->[0]->{"rrr"} - 2, 5;
++    is $ar->[0]{ppp}, "pp";
++    is $ar->[0]{"rrr"} - 2, 5;
++    my $hr = {h=>$h};
++    is $hr->{"h"}->{ppp}, "pp";
++    is $hr->{"h"}->{"rrr"} - 2, 5;
++    is $hr->{"h"}{ppp}, "pp";
++    is $hr->{"h"}{"rrr"} - 2, 5;
++    my $cr = sub { $h };
++    is $cr->()->{ppp}, "pp";
++    is $cr->()->{"rrr"} - 2, 5;
++    is $cr->(){ppp}, "pp";
++    is $cr->(){"rrr"} - 2, 5;
++}
+-- 
+2.13.6
+
diff --git a/SOURCES/perl-5.26.1-guard_old_libcrypt_fix.patch b/SOURCES/perl-5.26.1-guard_old_libcrypt_fix.patch
new file mode 100644
index 0000000..2d34cfe
--- /dev/null
+++ b/SOURCES/perl-5.26.1-guard_old_libcrypt_fix.patch
@@ -0,0 +1,24 @@
+commit 13e70b397dcb0d1bf4a869b670f041c1d7b730d0
+Author: Björn Esser <besser82@fedoraproject.org>
+Date:   Sat Jan 20 20:22:53 2018 +0100
+
+    pp: Guard fix for really old bug in glibc libcrypt
+
+diff --git a/pp.c b/pp.c
+index d50ad7ddbf..6510c7b15c 100644
+--- a/pp.c
++++ b/pp.c
+@@ -3650,8 +3650,12 @@ PP(pp_crypt)
+ #if defined(__GLIBC__) || defined(__EMX__)
+ 	if (PL_reentrant_buffer->_crypt_struct_buffer) {
+ 	    PL_reentrant_buffer->_crypt_struct_buffer->initialized = 0;
+-	    /* work around glibc-2.2.5 bug */
++#if (defined(__GLIBC__) && __GLIBC__ == 2) && \
++    (defined(__GLIBC_MINOR__) && __GLIBC_MINOR__ >= 2 && __GLIBC_MINOR__ < 4)
++	    /* work around glibc-2.2.5 bug, has been fixed at some
++	     * time in glibc-2.3.X */
+ 	    PL_reentrant_buffer->_crypt_struct_buffer->current_saltbits = 0;
++#endif
+ 	}
+ #endif
+     }
diff --git a/SOURCES/perl-5.26.1-perl-131746-avoid-undefined-behaviour-in-Copy-etc.patch b/SOURCES/perl-5.26.1-perl-131746-avoid-undefined-behaviour-in-Copy-etc.patch
new file mode 100644
index 0000000..d6471a8
--- /dev/null
+++ b/SOURCES/perl-5.26.1-perl-131746-avoid-undefined-behaviour-in-Copy-etc.patch
@@ -0,0 +1,107 @@
+From 7a962424149cc60f3a187d0213a12689dd5e806b Mon Sep 17 00:00:00 2001
+From: Tony Cook <tony@develop-help.com>
+Date: Mon, 14 Aug 2017 11:52:39 +1000
+Subject: [PATCH] (perl #131746) avoid undefined behaviour in Copy() etc
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+These functions depend on C library functions which have undefined
+behaviour when passed NULL pointers, even when passed a zero 'n' value.
+
+Some compilers use this information, ie. assume the pointers are
+non-NULL when optimizing any following code, so we do need to
+prevent such unguarded calls.
+
+My initial thought was to add conditionals to each macro to skip the
+call to the library function when n is zero, but this adds a cost to
+every use of these macros, even when the n value is always true.
+
+So instead I added asserts() which will give us a much more visible
+indicator of such broken code and revealed the pp_caller and Glob.xs
+issues also patched here.
+
+Petr Písař: Ported to 5.26.1 from
+f14cf3632059d421de83cf901c7e849adc1fcd03.
+
+Signed-off-by: Petr Písař <ppisar@redhat.com>
+---
+ ext/File-Glob/Glob.xs |  2 +-
+ handy.h               | 14 +++++++-------
+ pp_ctl.c              |  3 ++-
+ pp_hot.c              |  3 ++-
+ 4 files changed, 12 insertions(+), 10 deletions(-)
+
+diff --git a/ext/File-Glob/Glob.xs b/ext/File-Glob/Glob.xs
+index e0a3681..9779d54 100644
+--- a/ext/File-Glob/Glob.xs
++++ b/ext/File-Glob/Glob.xs
+@@ -121,7 +121,7 @@ iterate(pTHX_ bool(*globber)(pTHX_ AV *entries, const char *pat, STRLEN len, boo
+ 
+     /* chuck it all out, quick or slow */
+     if (gimme == G_ARRAY) {
+-	if (!on_stack) {
++	if (!on_stack && AvFILLp(entries) + 1) {
+ 	    EXTEND(SP, AvFILLp(entries)+1);
+ 	    Copy(AvARRAY(entries), SP+1, AvFILLp(entries)+1, SV *);
+ 	    SP += AvFILLp(entries)+1;
+diff --git a/handy.h b/handy.h
+index 80f9cf4..88b5b55 100644
+--- a/handy.h
++++ b/handy.h
+@@ -2409,17 +2409,17 @@ void Perl_mem_log_del_sv(const SV *sv, const char *filename, const int linenumbe
+ #define Safefree(d)	safefree(MEM_LOG_FREE((Malloc_t)(d)))
+ #endif
+ 
+-#define Move(s,d,n,t)	(MEM_WRAP_CHECK_(n,t) (void)memmove((char*)(d),(const char*)(s), (n) * sizeof(t)))
+-#define Copy(s,d,n,t)	(MEM_WRAP_CHECK_(n,t) (void)memcpy((char*)(d),(const char*)(s), (n) * sizeof(t)))
+-#define Zero(d,n,t)	(MEM_WRAP_CHECK_(n,t) (void)memzero((char*)(d), (n) * sizeof(t)))
++#define Move(s,d,n,t)	(MEM_WRAP_CHECK_(n,t) assert(d), assert(s), (void)memmove((char*)(d),(const char*)(s), (n) * sizeof(t)))
++#define Copy(s,d,n,t)	(MEM_WRAP_CHECK_(n,t) assert(d), assert(s), (void)memcpy((char*)(d),(const char*)(s), (n) * sizeof(t)))
++#define Zero(d,n,t)	(MEM_WRAP_CHECK_(n,t) assert(d), (void)memzero((char*)(d), (n) * sizeof(t)))
+ 
+-#define MoveD(s,d,n,t)	(MEM_WRAP_CHECK_(n,t) memmove((char*)(d),(const char*)(s), (n) * sizeof(t)))
+-#define CopyD(s,d,n,t)	(MEM_WRAP_CHECK_(n,t) memcpy((char*)(d),(const char*)(s), (n) * sizeof(t)))
++#define MoveD(s,d,n,t)	(MEM_WRAP_CHECK_(n,t) assert(d), assert(s), memmove((char*)(d),(const char*)(s), (n) * sizeof(t)))
++#define CopyD(s,d,n,t)	(MEM_WRAP_CHECK_(n,t) assert(d), assert(s), memcpy((char*)(d),(const char*)(s), (n) * sizeof(t)))
+ #ifdef HAS_MEMSET
+-#define ZeroD(d,n,t)	(MEM_WRAP_CHECK_(n,t) memzero((char*)(d), (n) * sizeof(t)))
++#define ZeroD(d,n,t)	(MEM_WRAP_CHECK_(n,t) assert(d), memzero((char*)(d), (n) * sizeof(t)))
+ #else
+ /* Using bzero(), which returns void.  */
+-#define ZeroD(d,n,t)	(MEM_WRAP_CHECK_(n,t) memzero((char*)(d), (n) * sizeof(t)),d)
++#define ZeroD(d,n,t)	(MEM_WRAP_CHECK_(n,t) assert(d), memzero((char*)(d), (n) * sizeof(t)),d)
+ #endif
+ 
+ #define PoisonWith(d,n,t,b)	(MEM_WRAP_CHECK_(n,t) (void)memset((char*)(d), (U8)(b), (n) * sizeof(t)))
+diff --git a/pp_ctl.c b/pp_ctl.c
+index 15c193b..f1c57bc 100644
+--- a/pp_ctl.c
++++ b/pp_ctl.c
+@@ -1971,7 +1971,8 @@ PP(pp_caller)
+ 
+ 	if (AvMAX(PL_dbargs) < AvFILLp(ary) + off)
+ 	    av_extend(PL_dbargs, AvFILLp(ary) + off);
+-	Copy(AvALLOC(ary), AvARRAY(PL_dbargs), AvFILLp(ary) + 1 + off, SV*);
++        if (AvFILLp(ary) + 1 + off)
++            Copy(AvALLOC(ary), AvARRAY(PL_dbargs), AvFILLp(ary) + 1 + off, SV*);
+ 	AvFILLp(PL_dbargs) = AvFILLp(ary) + off;
+     }
+     mPUSHi(CopHINTS_get(cx->blk_oldcop));
+diff --git a/pp_hot.c b/pp_hot.c
+index 5899413..66b79ea 100644
+--- a/pp_hot.c
++++ b/pp_hot.c
+@@ -4138,7 +4138,8 @@ PP(pp_entersub)
+                 AvARRAY(av) = ary;
+             }
+ 
+-	    Copy(MARK+1,AvARRAY(av),items,SV*);
++            if (items)
++                Copy(MARK+1,AvARRAY(av),items,SV*);
+ 	    AvFILLp(av) = items - 1;
+ 	}
+ 	if (UNLIKELY((cx->blk_u16 & OPpENTERSUB_LVAL_MASK) == OPpLVAL_INTRO &&
+-- 
+2.13.6
+
diff --git a/SOURCES/perl-5.26.1-perl-131895-fail-stat-on-names-with-0-embedded.patch b/SOURCES/perl-5.26.1-perl-131895-fail-stat-on-names-with-0-embedded.patch
new file mode 100644
index 0000000..d9aba47
--- /dev/null
+++ b/SOURCES/perl-5.26.1-perl-131895-fail-stat-on-names-with-0-embedded.patch
@@ -0,0 +1,223 @@
+From 4ac7295514f35016a79dbcc07500f6c9ca4729b7 Mon Sep 17 00:00:00 2001
+From: Tony Cook <tony@develop-help.com>
+Date: Thu, 2 Nov 2017 20:18:56 +0000
+Subject: [PATCH] (perl #131895) fail stat on names with \0 embedded
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Also lstat() and the file test ops.
+
+Petr Písař: Port to 5.26.1.
+
+Signed-off-by: Petr Písař <ppisar@redhat.com>
+---
+ doio.c                | 21 ++++++++++++++++-----
+ pp_sys.c              | 29 +++++++++++++++++++++++------
+ t/lib/warnings/pp_sys | 14 ++++++++++++++
+ t/op/filetest.t       | 10 +++++++++-
+ t/op/stat.t           | 12 +++++++++++-
+ 5 files changed, 73 insertions(+), 13 deletions(-)
+
+diff --git a/doio.c b/doio.c
+index becb19b..70d7747 100644
+--- a/doio.c
++++ b/doio.c
+@@ -1466,7 +1466,7 @@ Perl_my_stat_flags(pTHX_ const U32 flags)
+ 	return PL_laststatval;
+     else {
+ 	SV* const sv = TOPs;
+-	const char *s;
++	const char *s, *d;
+ 	STRLEN len;
+ 	if ((gv = MAYBE_DEREF_GV_flags(sv,flags))) {
+ 	    goto do_fstat;
+@@ -1480,9 +1480,14 @@ Perl_my_stat_flags(pTHX_ const U32 flags)
+ 	s = SvPV_flags_const(sv, len, flags);
+ 	PL_statgv = NULL;
+ 	sv_setpvn(PL_statname, s, len);
+-	s = SvPVX_const(PL_statname);		/* s now NUL-terminated */
++	d = SvPVX_const(PL_statname);		/* s now NUL-terminated */
+ 	PL_laststype = OP_STAT;
+-	PL_laststatval = PerlLIO_stat(s, &PL_statcache);
++        if (!IS_SAFE_PATHNAME(s, len, OP_NAME(PL_op))) {
++            PL_laststatval = -1;
++        }
++        else {
++            PL_laststatval = PerlLIO_stat(d, &PL_statcache);
++        }
+ 	if (PL_laststatval < 0 && ckWARN(WARN_NEWLINE) && should_warn_nl(s)) {
+             GCC_DIAG_IGNORE(-Wformat-nonliteral); /* PL_warn_nl is constant */
+ 	    Perl_warner(aTHX_ packWARN(WARN_NEWLINE), PL_warn_nl, "stat");
+@@ -1499,6 +1504,7 @@ Perl_my_lstat_flags(pTHX_ const U32 flags)
+     static const char* const no_prev_lstat = "The stat preceding -l _ wasn't an lstat";
+     dSP;
+     const char *file;
++    STRLEN len;
+     SV* const sv = TOPs;
+     bool isio = FALSE;
+     if (PL_op->op_flags & OPf_REF) {
+@@ -1542,9 +1548,14 @@ Perl_my_lstat_flags(pTHX_ const U32 flags)
+                               HEKfARG(GvENAME_HEK((const GV *)
+                                           (SvROK(sv) ? SvRV(sv) : sv))));
+     }
+-    file = SvPV_flags_const_nolen(sv, flags);
++    file = SvPV_flags_const(sv, len, flags);
+     sv_setpv(PL_statname,file);
+-    PL_laststatval = PerlLIO_lstat(file,&PL_statcache);
++    if (!IS_SAFE_PATHNAME(file, len, OP_NAME(PL_op))) {
++        PL_laststatval = -1;
++    }
++    else {
++        PL_laststatval = PerlLIO_lstat(file,&PL_statcache);
++    }
+     if (PL_laststatval < 0 && ckWARN(WARN_NEWLINE) && should_warn_nl(file)) {
+         GCC_DIAG_IGNORE(-Wformat-nonliteral); /* PL_warn_nl is constant */
+         Perl_warner(aTHX_ packWARN(WARN_NEWLINE), PL_warn_nl, "lstat");
+diff --git a/pp_sys.c b/pp_sys.c
+index 0b60584..1b81fda 100644
+--- a/pp_sys.c
++++ b/pp_sys.c
+@@ -2963,19 +2963,24 @@ PP(pp_stat)
+     }
+     else {
+         const char *file;
++        const char *temp;
++        STRLEN len;
+ 	if (SvROK(sv) && SvTYPE(SvRV(sv)) == SVt_PVIO) { 
+             io = MUTABLE_IO(SvRV(sv));
+             if (PL_op->op_type == OP_LSTAT)
+                 goto do_fstat_warning_check;
+             goto do_fstat_have_io; 
+         }
+-        
+ 	SvTAINTED_off(PL_statname); /* previous tainting irrelevant */
+-	sv_setpv(PL_statname, SvPV_nomg_const_nolen(sv));
++        temp = SvPV_nomg_const(sv, len);
++	sv_setpv(PL_statname, temp);
+ 	PL_statgv = NULL;
+ 	PL_laststype = PL_op->op_type;
+         file = SvPV_nolen_const(PL_statname);
+-	if (PL_op->op_type == OP_LSTAT)
++        if (!IS_SAFE_PATHNAME(temp, len, OP_NAME(PL_op))) {
++            PL_laststatval = -1;
++        }
++	else if (PL_op->op_type == OP_LSTAT)
+ 	    PL_laststatval = PerlLIO_lstat(file, &PL_statcache);
+ 	else
+ 	    PL_laststatval = PerlLIO_stat(file, &PL_statcache);
+@@ -3211,8 +3216,12 @@ PP(pp_ftrread)
+ 
+     if (use_access) {
+ #if defined(HAS_ACCESS) || defined (PERL_EFF_ACCESS)
+-	const char *name = SvPV_nolen(*PL_stack_sp);
+-	if (effective) {
++        STRLEN len;
++	const char *name = SvPV(*PL_stack_sp, len);
++        if (!IS_SAFE_PATHNAME(name, len, OP_NAME(PL_op))) {
++            result = -1;
++        }
++	else if (effective) {
+ #  ifdef PERL_EFF_ACCESS
+ 	    result = PERL_EFF_ACCESS(name, access_mode);
+ #  else
+@@ -3537,10 +3546,18 @@ PP(pp_fttext)
+     }
+     else {
+         const char *file;
++        const char *temp;
++        STRLEN temp_len;
+         int fd; 
+ 
+         assert(sv);
+-	sv_setpv(PL_statname, SvPV_nomg_const_nolen(sv));
++        temp = SvPV_nomg_const(sv, temp_len);
++	sv_setpv(PL_statname, temp);
++        if (!IS_SAFE_PATHNAME(temp, temp_len, OP_NAME(PL_op))) {
++            PL_laststatval = -1;
++            PL_laststype = OP_STAT;
++            FT_RETURNUNDEF;
++        }
+       really_filename:
+         file = SvPVX_const(PL_statname);
+ 	PL_statgv = NULL;
+diff --git a/t/lib/warnings/pp_sys b/t/lib/warnings/pp_sys
+index 9c544e0..c599aa3 100644
+--- a/t/lib/warnings/pp_sys
++++ b/t/lib/warnings/pp_sys
+@@ -972,3 +972,17 @@ close $fh;
+ unlink $file;
+ EXPECT
+ syswrite() is deprecated on :utf8 handles. This will be a fatal error in Perl 5.30 at - line 5.
++########
++# NAME stat on name with \0
++use warnings;
++my @x = stat("./\0-");
++my @y = lstat("./\0-");
++-T ".\0-";
++-x ".\0-";
++-l ".\0-";
++EXPECT
++Invalid \0 character in pathname for stat: ./\0- at - line 2.
++Invalid \0 character in pathname for lstat: ./\0- at - line 3.
++Invalid \0 character in pathname for fttext: .\0- at - line 4.
++Invalid \0 character in pathname for fteexec: .\0- at - line 5.
++Invalid \0 character in pathname for ftlink: .\0- at - line 6.
+diff --git a/t/op/filetest.t b/t/op/filetest.t
+index 8883381..bd1d08c 100644
+--- a/t/op/filetest.t
++++ b/t/op/filetest.t
+@@ -9,7 +9,7 @@ BEGIN {
+     set_up_inc(qw '../lib ../cpan/Perl-OSType/lib');
+ }
+ 
+-plan(tests => 53 + 27*14);
++plan(tests => 57 + 27*14);
+ 
+ if ($^O =~ /MSWin32|cygwin|msys/ && !is_miniperl) {
+   require Win32; # for IsAdminUser()
+@@ -393,3 +393,11 @@ SKIP: {
+     is $failed_stat2, $failed_stat1,
+ 	'failed -r($gv_with_io_but_no_fp) with and w/out fatal warnings';
+ } 
++
++{
++    # [perl #131895] stat() doesn't fail on filenames containing \0 / NUL
++    ok(!-T "TEST\0-", '-T on name with \0');
++    ok(!-B "TEST\0-", '-B on name with \0');
++    ok(!-f "TEST\0-", '-f on name with \0');
++    ok(!-r "TEST\0-", '-r on name with \0');
++}
+diff --git a/t/op/stat.t b/t/op/stat.t
+index 323c498..dbbe6ec 100644
+--- a/t/op/stat.t
++++ b/t/op/stat.t
+@@ -25,7 +25,7 @@ if ($^O eq 'MSWin32') {
+     ${^WIN32_SLOPPY_STAT} = 0;
+ }
+ 
+-plan tests => 118;
++plan tests => 120;
+ 
+ my $Perl = which_perl();
+ 
+@@ -653,6 +653,16 @@ SKIP:
+       'stat on an array of valid paths should return ENOENT';
+ }
+ 
++# [perl #131895] stat() doesn't fail on filenames containing \0 / NUL
++ok !stat("TEST\0-"), 'stat on filename with \0';
++SKIP: {
++    my $link = "TEST.symlink.$$";
++    my $can_symlink = eval { symlink "TEST", $link };
++    skip "cannot symlink", 1 unless $can_symlink;
++    ok !lstat("$link\0-"), 'lstat on filename with \0';
++    unlink $link;
++}
++
+ END {
+     chmod 0666, $tmpfile;
+     unlink_all $tmpfile;
+-- 
+2.13.6
+
diff --git a/SOURCES/perl-5.26.1-perl-132245-don-t-try-to-process-a-char-range-with-n.patch b/SOURCES/perl-5.26.1-perl-132245-don-t-try-to-process-a-char-range-with-n.patch
new file mode 100644
index 0000000..2bde428
--- /dev/null
+++ b/SOURCES/perl-5.26.1-perl-132245-don-t-try-to-process-a-char-range-with-n.patch
@@ -0,0 +1,54 @@
+From dc5c68130b7c8b727e9e792506183c255fc2bc70 Mon Sep 17 00:00:00 2001
+From: Tony Cook <tony@develop-help.com>
+Date: Thu, 19 Oct 2017 10:46:04 +1100
+Subject: [PATCH] (perl #132245) don't try to process a char range with no
+ preceding char
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+A range like \N{}-0 eventually results in compilation failing, but
+before that, get_and_check_backslash_N_name() attempts to treat
+the memory before the empty output of \N{} as a character.
+
+Petr Písař: Ported to 5.26.1.
+
+Signed-off-by: Petr Písař <ppisar@redhat.com>
+---
+ t/lib/warnings/toke | 5 +++++
+ toke.c              | 6 +++---
+ 2 files changed, 8 insertions(+), 3 deletions(-)
+
+diff --git a/t/lib/warnings/toke b/t/lib/warnings/toke
+index fc51d9f..398ee22 100644
+--- a/t/lib/warnings/toke
++++ b/t/lib/warnings/toke
+@@ -1651,3 +1651,8 @@ Execution of - aborted due to compilation errors.
+ use utf8;
+ qw∘foo ∞ ♥ bar∘
+ EXPECT
++########
++# NAME tr/// range with empty \N{} at the start
++tr//\N{}-0/;
++EXPECT
++Unknown charname '' is deprecated. Its use will be fatal in Perl 5.28 at - line 1.
+diff --git a/toke.c b/toke.c
+index 6f84d2d..6ee7a68 100644
+--- a/toke.c
++++ b/toke.c
+@@ -2958,9 +2958,9 @@ S_scan_const(pTHX_ char *start)
+ 
+                 /* Here, we don't think we're in a range.  If the new character
+                  * is not a hyphen; or if it is a hyphen, but it's too close to
+-                 * either edge to indicate a range, then it's a regular
+-                 * character. */
+-                if (*s != '-' || s >= send - 1 || s == start) {
++                 * either edge to indicate a range, or if we haven't output any
++                 * characters yet then it's a regular character. */
++                if (*s != '-' || s >= send - 1 || s == start || d == SvPVX(sv)) {
+ 
+                     /* A regular character.  Process like any other, but first
+                      * clear any flags */
+-- 
+2.13.6
+
diff --git a/SOURCES/perl-5.26.1-set-when-statting-a-closed-filehandle.patch b/SOURCES/perl-5.26.1-set-when-statting-a-closed-filehandle.patch
new file mode 100644
index 0000000..832aee8
--- /dev/null
+++ b/SOURCES/perl-5.26.1-set-when-statting-a-closed-filehandle.patch
@@ -0,0 +1,211 @@
+From 8c7182b26a43f14cd8afbfbe4448cbbd691c3609 Mon Sep 17 00:00:00 2001
+From: Zefram <zefram@fysh.org>
+Date: Wed, 15 Nov 2017 08:11:37 +0000
+Subject: [PATCH] set $! when statting a closed filehandle
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+When a stat fails because it's on a closed or otherwise invalid
+filehandle, $! was often not being set, depending on the operation
+and the nature of the invalidity.  Consistently set it to EBADF.
+Fixes [perl #108288].
+
+Petr Písař: Ported to 5.26.1.
+
+Signed-off-by: Petr Písař <ppisar@redhat.com>
+---
+ MANIFEST           |  1 +
+ doio.c             | 10 +++++++++-
+ pp_sys.c           | 22 ++++++++++++---------
+ t/op/stat_errors.t | 57 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 4 files changed, 80 insertions(+), 10 deletions(-)
+ create mode 100644 t/op/stat_errors.t
+
+diff --git a/MANIFEST b/MANIFEST
+index fcbf5cc..996759e 100644
+--- a/MANIFEST
++++ b/MANIFEST
+@@ -5670,6 +5670,7 @@ t/op/srand.t			See if srand works
+ t/op/sselect.t			See if 4 argument select works
+ t/op/stash.t			See if %:: stashes work
+ t/op/stat.t			See if stat works
++t/op/stat_errors.t		See if stat and file tests handle threshold errors
+ t/op/state.t			See if state variables work
+ t/op/study.t			See if study works
+ t/op/studytied.t		See if study works with tied scalars
+diff --git a/doio.c b/doio.c
+index 70d7747..71dc6e4 100644
+--- a/doio.c
++++ b/doio.c
+@@ -1437,8 +1437,11 @@ Perl_my_stat_flags(pTHX_ const U32 flags)
+     if (PL_op->op_flags & OPf_REF) {
+ 	gv = cGVOP_gv;
+       do_fstat:
+-        if (gv == PL_defgv)
++        if (gv == PL_defgv) {
++	    if (PL_laststatval < 0)
++		SETERRNO(EBADF,RMS_IFI);
+             return PL_laststatval;
++	}
+ 	io = GvIO(gv);
+         do_fstat_have_io:
+         PL_laststype = OP_STAT;
+@@ -1449,6 +1452,7 @@ Perl_my_stat_flags(pTHX_ const U32 flags)
+                 int fd = PerlIO_fileno(IoIFP(io));
+                 if (fd < 0) {
+                     /* E.g. PerlIO::scalar has no real fd. */
++		    SETERRNO(EBADF,RMS_IFI);
+                     return (PL_laststatval = -1);
+                 } else {
+                     return (PL_laststatval = PerlLIO_fstat(fd, &PL_statcache));
+@@ -1459,6 +1463,7 @@ Perl_my_stat_flags(pTHX_ const U32 flags)
+         }
+ 	PL_laststatval = -1;
+ 	report_evil_fh(gv);
++	SETERRNO(EBADF,RMS_IFI);
+ 	return -1;
+     }
+     else if ((PL_op->op_private & (OPpFT_STACKED|OPpFT_AFTER_t))
+@@ -1511,6 +1516,8 @@ Perl_my_lstat_flags(pTHX_ const U32 flags)
+ 	if (cGVOP_gv == PL_defgv) {
+ 	    if (PL_laststype != OP_LSTAT)
+ 		Perl_croak(aTHX_ "%s", no_prev_lstat);
++	    if (PL_laststatval < 0)
++		SETERRNO(EBADF,RMS_IFI);
+ 	    return PL_laststatval;
+ 	}
+ 	PL_laststatval = -1;
+@@ -1520,6 +1527,7 @@ Perl_my_lstat_flags(pTHX_ const U32 flags)
+ 		              "Use of -l on filehandle %" HEKf,
+ 			      HEKfARG(GvENAME_HEK(cGVOP_gv)));
+ 	}
++	SETERRNO(EBADF,RMS_IFI);
+ 	return -1;
+     }
+     if ((PL_op->op_private & (OPpFT_STACKED|OPpFT_AFTER_t))
+diff --git a/pp_sys.c b/pp_sys.c
+index fefbea3..87961f1 100644
+--- a/pp_sys.c
++++ b/pp_sys.c
+@@ -2925,10 +2925,11 @@ PP(pp_stat)
+ 		Perl_croak(aTHX_ "The stat preceding lstat() wasn't an lstat");
+ 	}
+ 
+-	if (gv != PL_defgv) {
+-	    bool havefp;
++	if (gv == PL_defgv) {
++	    if (PL_laststatval < 0)
++		SETERRNO(EBADF,RMS_IFI);
++	} else {
+           do_fstat_have_io:
+-	    havefp = FALSE;
+ 	    PL_laststype = OP_STAT;
+ 	    PL_statgv = gv ? gv : (GV *)io;
+             SvPVCLEAR(PL_statname);
+@@ -2939,22 +2940,25 @@ PP(pp_stat)
+                     if (IoIFP(io)) {
+                         int fd = PerlIO_fileno(IoIFP(io));
+                         if (fd < 0) {
++			    report_evil_fh(gv);
+                             PL_laststatval = -1;
+                             SETERRNO(EBADF,RMS_IFI);
+                         } else {
+                             PL_laststatval = PerlLIO_fstat(fd, &PL_statcache);
+-                            havefp = TRUE;
+                         }
+                     } else if (IoDIRP(io)) {
+                         PL_laststatval =
+                             PerlLIO_fstat(my_dirfd(IoDIRP(io)), &PL_statcache);
+-                        havefp = TRUE;
+                     } else {
++			report_evil_fh(gv);
+                         PL_laststatval = -1;
++			SETERRNO(EBADF,RMS_IFI);
+                     }
+-            }
+-	    else PL_laststatval = -1;
+-	    if (PL_laststatval < 0 && !havefp) report_evil_fh(gv);
++            } else {
++		report_evil_fh(gv);
++		PL_laststatval = -1;
++		SETERRNO(EBADF,RMS_IFI);
++	    }
+         }
+ 
+ 	if (PL_laststatval < 0) {
+@@ -3451,7 +3455,7 @@ PP(pp_fttty)
+     else if (name && isDIGIT(*name) && grok_atoUV(name, &uv, NULL) && uv <= PERL_INT_MAX)
+         fd = (int)uv;
+     else
+-	FT_RETURNUNDEF;
++	fd = -1;
+     if (fd < 0) {
+         SETERRNO(EBADF,RMS_IFI);
+ 	FT_RETURNUNDEF;
+diff --git a/t/op/stat_errors.t b/t/op/stat_errors.t
+new file mode 100644
+index 0000000..e043c61
+--- /dev/null
++++ b/t/op/stat_errors.t
+@@ -0,0 +1,57 @@
++#!./perl
++
++BEGIN {
++    chdir 't' if -d 't';
++    require './test.pl';
++    set_up_inc('../lib');
++}
++
++plan(tests => 2*11*29);
++
++use Errno qw(EBADF ENOENT);
++
++open(SCALARFILE, "<", \"wibble") or die $!;
++open(CLOSEDFILE, "<", "./test.pl") or die $!;
++close(CLOSEDFILE) or die $!;
++opendir(CLOSEDDIR, "../lib") or die $!;
++closedir(CLOSEDDIR) or die $!;
++
++foreach my $op (
++    qw(stat lstat),
++    (map { "-$_" } qw(r w x o R W X O e z s f d l p S b c t u g k T B M A C)),
++) {
++    foreach my $arg (
++	(map { ($_, "\\*$_") }
++	    qw(NEVEROPENED SCALARFILE CLOSEDFILE CLOSEDDIR _)),
++	"\"tmpnotexist\"",
++    ) {
++	my $argdesc = $arg;
++	if ($arg eq "_") {
++	    my @z = lstat "tmpnotexist";
++	    $argdesc .= " with prior stat fail";
++	}
++	SKIP: {
++	    if ($op eq "-l" && $arg =~ /\A\\/) {
++		# The op weirdly stringifies the globref and uses it as
++		# a filename, rather than treating it as a file handle.
++		# That might be a bug, but while that behaviour exists it
++		# needs to be exempted from these tests.
++		skip "-l on globref", 2;
++	    }
++	    if ($op eq "-t" && $arg eq "\"tmpnotexist\"") {
++		# The op doesn't operate on filenames.
++		skip "-t on filename", 2;
++	    }
++	    $! = 0;
++	    my $res = eval "$op $arg";
++	    my $err = $!;
++	    is $res, $op =~ /\A-/ ? undef : !!0, "result of $op $arg";
++	    is 0+$err,
++		$arg eq "\"tmpnotexist\"" ||
++		    ($op =~ /\A-[TB]\z/ && $arg =~ /_\z/) ? ENOENT : EBADF,
++		"error from $op $arg";
++	}
++    }
++}
++
++1;
+-- 
+2.13.6
+
diff --git a/SOURCES/perl-5.26.2-PATCH-perl-133185-Infinite-loop-in-qr.patch b/SOURCES/perl-5.26.2-PATCH-perl-133185-Infinite-loop-in-qr.patch
new file mode 100644
index 0000000..427553e
--- /dev/null
+++ b/SOURCES/perl-5.26.2-PATCH-perl-133185-Infinite-loop-in-qr.patch
@@ -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
+
diff --git a/SOURCES/perl-5.26.2-Pass-CFLAGS-to-dtrace.patch b/SOURCES/perl-5.26.2-Pass-CFLAGS-to-dtrace.patch
new file mode 100644
index 0000000..0de6136
--- /dev/null
+++ b/SOURCES/perl-5.26.2-Pass-CFLAGS-to-dtrace.patch
@@ -0,0 +1,63 @@
+Subject: [PATCH] Pass CFLAGS to dtrace
+
+Signed-off-by: Petr Písař <ppisar@redhat.com>
+---
+ Makefile.SH | 8 +++++---
+ cflags.SH   | 5 ++++-
+ 2 files changed, 9 insertions(+), 4 deletions(-)
+
+diff --git a/Makefile.SH b/Makefile.SH
+index 5fc6d1c..e89ad70 100755
+--- a/Makefile.SH
++++ b/Makefile.SH
+@@ -457,6 +457,8 @@ CCCMD    = sh $(shellflags) cflags "optimize='$(OPTIMIZE)'" $@
+ 
+ CCCMDSRC = sh $(shellflags) cflags "optimize='$(OPTIMIZE)'" $<
+ 
++DTRACEFLAGS = sh $(shellflags) cflags "optimize='$(OPTIMIZE)'" $@
++
+ CONFIGPM_FROM_CONFIG_SH = lib/Config.pm lib/Config_heavy.pl
+ CONFIGPM = $(CONFIGPM_FROM_CONFIG_SH) lib/Config_git.pl
+ 
+@@ -890,19 +892,19 @@ $(DTRACE_MINI_O): perldtrace.d $(miniperl_objs_nodt)
+ 	-rm -rf mpdtrace
+ 	mkdir mpdtrace
+ 	cp $(miniperl_objs_nodt) mpdtrace/
+-	$(DTRACE) -G -s perldtrace.d -o $(DTRACE_MINI_O) $(miniperl_dtrace_objs)
++	CFLAGS="`$(DTRACEFLAGS)`" $(DTRACE) -G -s perldtrace.d -o $(DTRACE_MINI_O) $(miniperl_dtrace_objs)
+ 
+ $(DTRACE_PERLLIB_O): perldtrace.d $(perllib_objs_nodt)
+ 	-rm -rf libpdtrace
+ 	mkdir libpdtrace
+ 	cp $(perllib_objs_nodt) libpdtrace/
+-	$(DTRACE) -G -s perldtrace.d -o $(DTRACE_PERLLIB_O) $(perllib_dtrace_objs)
++	CFLAGS="`$(DTRACEFLAGS)`" $(DTRACE) -G -s perldtrace.d -o $(DTRACE_PERLLIB_O) $(perllib_dtrace_objs)
+ 
+ $(DTRACE_MAIN_O): perldtrace.d perlmain$(OBJ_EXT)
+ 	-rm -rf maindtrace
+ 	mkdir maindtrace
+ 	cp perlmain$(OBJ_EXT) maindtrace/
+-	$(DTRACE) -G -s perldtrace.d -o $(DTRACE_MAIN_O) $(perlmain_dtrace_objs) ||	      \
++	CFLAGS="`$(DTRACEFLAGS)`" $(DTRACE) -G -s perldtrace.d -o $(DTRACE_MAIN_O) $(perlmain_dtrace_objs) ||	      \
+ 	  ( $(ECHO) "No probes in perlmain$(OBJ_EXT), generating a dummy $(DTRACE_MAIN_O)" && \
+ 	    $(ECHO) >dtrace_main.c &&							      \
+ 	    `$(CCCMD)` $(PLDLFLAGS) dtrace_main.c &&					      \
+diff --git a/cflags.SH b/cflags.SH
+index 3af1e97..b845127 100755
+--- a/cflags.SH
++++ b/cflags.SH
+@@ -516,7 +516,10 @@ for file do
+     esac
+ 
+     # Can we perhaps use $ansi2knr here
+-    echo "$cc -c -DPERL_CORE $ccflags $stdflags $optimize $warn $extra"
++    case "$file" in
++    dtrace_*) echo "$ccflags $stdflags $optimize $warn $extra";;
++    *) echo "$cc -c -DPERL_CORE $ccflags $stdflags $optimize $warn $extra";;
++    esac
+ 
+     . $TOP/config.sh
+ 
+-- 
+2.17.1
+
diff --git a/SOURCES/perl-5.26.2-RC1-Parse-caret-vars-with-subscripts-the-same-as-normal-.patch b/SOURCES/perl-5.26.2-RC1-Parse-caret-vars-with-subscripts-the-same-as-normal-.patch
new file mode 100644
index 0000000..a7caf64
--- /dev/null
+++ b/SOURCES/perl-5.26.2-RC1-Parse-caret-vars-with-subscripts-the-same-as-normal-.patch
@@ -0,0 +1,143 @@
+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
+ inside of ${..} escaping
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+This behavior is discussed in perl #131664, which complains that
+"${^CAPTURE}[0]" does not work as expected. Abigail explains the
+behavior is by design and Eirik Berg Hanssen expands on that explanation
+pointing out that what /should/ work, "${^CAPTURE[0]}" does not,
+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 +++++++++++++++++++++++++++-
+ toke.c       | 46 +++++++++++++++++++++++++---------------------
+ 2 files changed, 52 insertions(+), 22 deletions(-)
+
+diff --git a/t/base/lex.t b/t/base/lex.t
+index 99fd3bb..ae17bbd 100644
+--- a/t/base/lex.t
++++ b/t/base/lex.t
+@@ -1,6 +1,6 @@
+ #!./perl
+ 
+-print "1..112\n";
++print "1..119\n";
+ 
+ $x = 'x';
+ 
+@@ -154,6 +154,32 @@ my $test = 31;
+   print "not " unless index ($@, 'Can\'t use global $^XYZ in "my"') > -1;
+   print "ok $test\n"; $test++;
+ #  print "($@)\n" if $@;
++#
++  ${^TEST}= "splat";
++  @{^TEST}= ("foo", "bar");
++  %{^TEST}= ("foo" => "FOO", "bar" => "BAR" );
++
++  print "not " if "${^TEST}" ne "splat";
++  print "ok $test\n"; $test++;
++
++  print "not " if "${^TEST}[0]" ne "splat[0]";
++  print "ok $test\n"; $test++;
++
++  print "not " if "${^TEST[0]}" ne "foo";
++  print "ok $test\n"; $test++;
++
++  print "not " if "${ ^TEST [1] }" ne "bar";
++  print "ok $test\n"; $test++;
++
++  print "not " if "${^TEST}{foo}" ne "splat{foo}";
++  print "ok $test\n"; $test++;
++
++  print "not " if "${^TEST{foo}}" ne "FOO";
++  print "ok $test\n"; $test++;
++
++  print "not " if "${ ^TEST {bar} }" ne "BAR";
++  print "ok $test\n"; $test++;
++
+ 
+ # 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 ee9c464..aff785b 100644
+--- a/toke.c
++++ b/toke.c
+@@ -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...  */
+-        if (isIDFIRST_lazy_if_safe(d, e, is_utf8)) {
+-            /* if it starts as a valid identifier, assume that it is one.
+-               (the later check for } being at the expected point will trap
+-               cases where this doesn't pan out.)  */
+-            d += is_utf8 ? UTF8SKIP(d) : 1;
+-            parse_ident(&s, &d, e, 1, is_utf8, TRUE);
+-	    *d = '\0';
++        if (isIDFIRST_lazy_if_safe(d, e, is_utf8)
++            || (!isPRINT(*d) /* isCNTRL(d), plus all non-ASCII */
++                 && isWORDCHAR(*s))
++        ) {
++            /* note we have to check for a normal identifier first,
++             * as it handles utf8 symbols, and only after that has
++             * been ruled out can we look at the caret words */
++            if (isIDFIRST_lazy_if_safe(d, e, is_utf8) ) {
++                /* if it starts as a valid identifier, assume that it is one.
++                   (the later check for } being at the expected point will trap
++                   cases where this doesn't pan out.)  */
++                d += is_utf8 ? UTF8SKIP(d) : 1;
++                parse_ident(&s, &d, e, 1, is_utf8, TRUE);
++                *d = '\0';
++            }
++            else { /* caret word: ${^Foo} ${^CAPTURE[0]} */
++                d++;
++                while (isWORDCHAR(*s) && d < e) {
++                    *d++ = *s++;
++                }
++                if (d >= e)
++                    Perl_croak(aTHX_ "%s", ident_too_long);
++                *d = '\0';
++            }
+             tmp_copline = CopLINE(PL_curcop);
+             if (s < PL_bufend && isSPACE(*s)) {
+                 s = skipspace(s);
+             }
+ 	    if ((*s == '[' || (*s == '{' && strNE(dest, "sub")))) {
+-                /* ${foo[0]} and ${foo{bar}} notation.  */
++                /* ${foo[0]} and ${foo{bar}} and ${^CAPTURE[0]} notation.  */
+ 		if (ckWARN(WARN_AMBIGUOUS) && keyword(dest, d - dest, 0)) {
+ 		    const char * const brack =
+ 			(const char *)
+@@ -9447,19 +9464,6 @@ S_scan_ident(pTHX_ char *s, char *dest, STRLEN destlen, I32 ck_uni)
+ 		return s;
+ 	    }
+ 	}
+-	/* Handle extended ${^Foo} variables
+-	 * 1999-02-27 mjd-perl-patch@plover.com */
+-	else if (! isPRINT(*d) /* isCNTRL(d), plus all non-ASCII */
+-		 && isWORDCHAR(*s))
+-	{
+-	    d++;
+-	    while (isWORDCHAR(*s) && d < e) {
+-		*d++ = *s++;
+-	    }
+-	    if (d >= e)
+-		Perl_croak(aTHX_ "%s", ident_too_long);
+-	    *d = '\0';
+-	}
+ 
+         if ( !tmp_copline )
+             tmp_copline = CopLINE(PL_curcop);
+-- 
+2.14.3
+
diff --git a/SOURCES/perl-5.26.2-RC1-add-an-additional-test-for-whitespace-tolerance-in-c.patch b/SOURCES/perl-5.26.2-RC1-add-an-additional-test-for-whitespace-tolerance-in-c.patch
new file mode 100644
index 0000000..3f7d885
--- /dev/null
+++ b/SOURCES/perl-5.26.2-RC1-add-an-additional-test-for-whitespace-tolerance-in-c.patch
@@ -0,0 +1,45 @@
+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
+ word-vars
+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 ae17bbd..414aa1f 100644
+--- a/t/base/lex.t
++++ b/t/base/lex.t
+@@ -1,6 +1,6 @@
+ #!./perl
+ 
+-print "1..119\n";
++print "1..120\n";
+ 
+ $x = 'x';
+ 
+@@ -158,9 +158,12 @@ my $test = 31;
+   ${^TEST}= "splat";
+   @{^TEST}= ("foo", "bar");
+   %{^TEST}= ("foo" => "FOO", "bar" => "BAR" );
+-
++  
+   print "not " if "${^TEST}" ne "splat";
+   print "ok $test\n"; $test++;
++  
++  print "not " if "${ ^TEST }" ne "splat";
++  print "ok $test\n"; $test++;
+ 
+   print "not " if "${^TEST}[0]" ne "splat[0]";
+   print "ok $test\n"; $test++;
+-- 
+2.14.3
+
diff --git a/SOURCES/perl-5.26.2-RC1-perform-system-arg-processing-before-fork.patch b/SOURCES/perl-5.26.2-RC1-perform-system-arg-processing-before-fork.patch
new file mode 100644
index 0000000..d331679
--- /dev/null
+++ b/SOURCES/perl-5.26.2-RC1-perform-system-arg-processing-before-fork.patch
@@ -0,0 +1,90 @@
+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
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+A lot of things can happen when stringifying an argument list: side
+effects, warnings, exceptions.  In the case of system(), these effects
+should happen in the context of the parent process.  The stringification
+can also depend on which process it happens in, as in the case of
+$$, 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.2-RC1 from
+64def2aeaeb63f92dadc6dfa33486c1d7b311963.
+
+Signed-off-by: Petr Písař <ppisar@redhat.com>
+---
+ pp_sys.c    | 16 ++++++++++------
+ t/op/exec.t | 15 ++++++++++++++-
+ 2 files changed, 24 insertions(+), 7 deletions(-)
+
+diff --git a/pp_sys.c b/pp_sys.c
+index 87961f1..07e552a 100644
+--- a/pp_sys.c
++++ b/pp_sys.c
+@@ -4375,14 +4375,18 @@ PP(pp_system)
+     int result;
+ # endif
+ 
++    while (++MARK <= SP) {
++	SV *origsv = *MARK;
++	STRLEN len;
++	char *pv;
++	pv = SvPV(origsv, len);
++	*MARK = newSVpvn_flags(pv, len,
++		    (SvFLAGS(origsv) & SVf_UTF8) | SVs_TEMP);
++    }
++    MARK = ORIGMARK;
++
+     if (TAINTING_get) {
+ 	TAINT_ENV();
+-	while (++MARK <= SP) {
+-	    (void)SvPV_nolen_const(*MARK);      /* stringify for taint check */
+-	    if (TAINT_get)
+-		break;
+-	}
+-	MARK = ORIGMARK;
+ 	TAINT_PROPER("system");
+     }
+     PERL_FLUSHALL_FOR_CHILD;
+diff --git a/t/op/exec.t b/t/op/exec.t
+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 => 34);
++plan(tests => 37);
+ 
+ my $Perl = which_perl();
+ 
+@@ -177,6 +177,19 @@ TODO: {
+         "exec failure doesn't terminate process");
+ }
+ 
++package CountRead {
++    sub TIESCALAR { bless({ n => 0 }, $_[0]) }
++    sub FETCH { ++$_[0]->{n} }
++}
++my $cr;
++tie $cr, "CountRead";
++is system($^X, "-e", "exit(\$ARGV[0] eq '1' ? 0 : 1)", $cr), 0,
++    "system args have magic processed exactly once";
++is tied($cr)->{n}, 1, "system args have magic processed before fork";
++
++is system($^X, "-e", "exit(\$ARGV[0] eq \$ARGV[1] ? 0 : 1)", "$$", $$), 0,
++    "system args have magic processed before fork";
++
+ my $test = curr_test();
+ exec $Perl, '-le', qq{${quote}print 'ok $test - exec PROG, LIST'${quote}};
+ fail("This should never be reached if the exec() worked");
+-- 
+2.14.3
+
diff --git a/SOURCES/perl-5.26.2-perl.h-Add-parens-around-macro-arguments.patch b/SOURCES/perl-5.26.2-perl.h-Add-parens-around-macro-arguments.patch
new file mode 100644
index 0000000..06d7be8
--- /dev/null
+++ b/SOURCES/perl-5.26.2-perl.h-Add-parens-around-macro-arguments.patch
@@ -0,0 +1,35 @@
+From 7714b11d11da2bfd0dc11638e9dd6836b6a32e90 Mon Sep 17 00:00:00 2001
+From: Karl Williamson <khw@cpan.org>
+Date: Mon, 11 Jun 2018 13:26:24 -0600
+Subject: [PATCH] perl.h: Add parens around macro arguments
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Arguments used within macros need to be parenthesized in case they are
+called with an expression.  This commit changes
+_CHECK_AND_OUTPUT_WIDE_LOCALE_UTF8_MSG() to do that.
+
+Petr Písař: Ported to 5.26.2 from upstream ff58ca57f844 commit.
+
+Signed-off-by: Petr Písař <ppisar@redhat.com>
+---
+ perl.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/perl.h b/perl.h
+index 1c613bc..d278c2a 100644
+--- a/perl.h
++++ b/perl.h
+@@ -5980,7 +5980,7 @@ typedef struct am_table_short AMTS;
+ #  define _CHECK_AND_OUTPUT_WIDE_LOCALE_UTF8_MSG(s, send)                   \
+ 	STMT_START { /* Check if to warn before doing the conversion work */\
+             if (! PL_in_utf8_CTYPE_locale && ckWARN(WARN_LOCALE)) {         \
+-                UV cp = utf8_to_uvchr_buf((U8 *) s, (U8 *) send, NULL);     \
++                UV cp = utf8_to_uvchr_buf((U8 *) (s), (U8 *) (send), NULL); \
+                 Perl_warner(aTHX_ packWARN(WARN_LOCALE),                    \
+                     "Wide character (U+%" UVXf ") in %s",                   \
+                     (cp == 0)                                               \
+-- 
+2.14.4
+
diff --git a/SOURCES/perl-5.27.0-perl-129183-don-t-treat-as-an-escape-in-PATH-for-S.patch b/SOURCES/perl-5.27.0-perl-129183-don-t-treat-as-an-escape-in-PATH-for-S.patch
new file mode 100644
index 0000000..8889451
--- /dev/null
+++ b/SOURCES/perl-5.27.0-perl-129183-don-t-treat-as-an-escape-in-PATH-for-S.patch
@@ -0,0 +1,32 @@
+From e80af1fd276d83858d27742ea887415e3263960b Mon Sep 17 00:00:00 2001
+From: Tony Cook <tony@develop-help.com>
+Date: Wed, 12 Oct 2016 10:42:47 +1100
+Subject: [PATCH] (perl 129183) don't treat \ as an escape in PATH for -S
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Signed-off-by: Petr Písař <ppisar@redhat.com>
+---
+ util.c | 5 ++---
+ 1 file changed, 2 insertions(+), 3 deletions(-)
+
+diff --git a/util.c b/util.c
+index 5bb0dfc..6bc2fe5 100644
+--- a/util.c
++++ b/util.c
+@@ -3352,9 +3352,8 @@ Perl_find_script(pTHX_ const char *scriptname, bool dosearch,
+ 	    if (len < sizeof tmpbuf)
+ 		tmpbuf[len] = '\0';
+ #  else
+-	    s = delimcpy(tmpbuf, tmpbuf + sizeof tmpbuf, s, bufend,
+-			':',
+-			&len);
++	    s = delimcpy_no_escape(tmpbuf, tmpbuf + sizeof tmpbuf, s, bufend,
++                                   ':', &len);
+ #  endif
+ 	    if (s < bufend)
+ 		s++;
+-- 
+2.9.4
+
diff --git a/SOURCES/perl-5.27.0-perl-131211-fixup-File-Glob-degenerate-matching.patch b/SOURCES/perl-5.27.0-perl-131211-fixup-File-Glob-degenerate-matching.patch
new file mode 100644
index 0000000..c52d790
--- /dev/null
+++ b/SOURCES/perl-5.27.0-perl-131211-fixup-File-Glob-degenerate-matching.patch
@@ -0,0 +1,258 @@
+From 0db967b2e6a4093a6a5f649190159767e5d005e0 Mon Sep 17 00:00:00 2001
+From: Yves Orton <demerphq@gmail.com>
+Date: Tue, 25 Apr 2017 15:17:06 +0200
+Subject: [PATCH] [perl #131211] fixup File::Glob degenerate matching
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+The old code would go quadratic with recursion and backtracking
+when doing patterns like "a*a*a*a*a*a*a*x" on a file like
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa".
+
+This patch changes the code to not recurse, and to not backtrack,
+as per this article from Russ Cox: https://research.swtch.com/glob
+
+It also adds a micro-optimisation for M_ONE and M_SET under the new code.
+
+Thanks to Avar and Russ Cox for helping with this patch, along with
+Jilles Tjoelker and the rest of the FreeBSD community.
+
+Signed-off-by: Petr Písař <ppisar@redhat.com>
+---
+ MANIFEST                   |  1 +
+ ext/File-Glob/bsd_glob.c   | 64 +++++++++++++++++++++++--------
+ ext/File-Glob/t/rt131211.t | 94 ++++++++++++++++++++++++++++++++++++++++++++++
+ 3 files changed, 144 insertions(+), 15 deletions(-)
+ create mode 100644 ext/File-Glob/t/rt131211.t
+
+diff --git a/MANIFEST b/MANIFEST
+index b7b6e74..af0da6c 100644
+--- a/MANIFEST
++++ b/MANIFEST
+@@ -3948,6 +3948,7 @@ ext/File-Glob/t/basic.t		See if File::Glob works
+ ext/File-Glob/t/case.t		See if File::Glob works
+ ext/File-Glob/t/global.t	See if File::Glob works
+ ext/File-Glob/t/rt114984.t	See if File::Glob works
++ext/File-Glob/t/rt131211.t	See if File::Glob works
+ ext/File-Glob/t/taint.t		See if File::Glob works
+ ext/File-Glob/t/threads.t	See if File::Glob + threads works
+ ext/File-Glob/TODO		File::Glob extension todo list
+diff --git a/ext/File-Glob/bsd_glob.c b/ext/File-Glob/bsd_glob.c
+index 821ef20..e96fb73 100644
+--- a/ext/File-Glob/bsd_glob.c
++++ b/ext/File-Glob/bsd_glob.c
+@@ -563,8 +563,12 @@ glob0(const Char *pattern, glob_t *pglob)
+ 			break;
+ 		case BG_STAR:
+ 			pglob->gl_flags |= GLOB_MAGCHAR;
+-			/* collapse adjacent stars to one,
+-			 * to avoid exponential behavior
++                        /* Collapse adjacent stars to one.
++                         * This is required to ensure that a pattern like
++                         * "a**" matches a name like "a", as without this
++                         * check when the first star matched everything it would
++                         * cause the second star to return a match fail.
++                         * As long ** is folded here this does not happen.
+ 			 */
+ 			if (bufnext == patbuf || bufnext[-1] != M_ALL)
+ 				*bufnext++ = M_ALL;
+@@ -909,35 +913,56 @@ globextend(const Char *path, glob_t *pglob, size_t *limitp)
+ 
+ 
+ /*
+- * pattern matching function for filenames.  Each occurrence of the *
+- * pattern causes a recursion level.
++ * pattern matching function for filenames using state machine to avoid
++ * recursion. We maintain a "nextp" and "nextn" to allow us to backtrack
++ * without additional callframes, and to do cleanly prune the backtracking
++ * state when multiple '*' (start) matches are included in the patter.
++ *
++ * Thanks to Russ Cox for the improved state machine logic to avoid quadratic
++ * matching on failure.
++ *
++ * https://research.swtch.com/glob
++ *
++ * An example would be a pattern
++ *  ("a*" x 100) . "y"
++ * against a file name like
++ *  ("a" x 100) . "x"
++ *
+  */
+ static int
+ match(Char *name, Char *pat, Char *patend, int nocase)
+ {
+ 	int ok, negate_range;
+ 	Char c, k;
++	Char *nextp = NULL;
++	Char *nextn = NULL;
+ 
++    loop:
+ 	while (pat < patend) {
+ 		c = *pat++;
+ 		switch (c & M_MASK) {
+ 		case M_ALL:
+ 			if (pat == patend)
+ 				return(1);
+-			do
+-			    if (match(name, pat, patend, nocase))
+-				    return(1);
+-			while (*name++ != BG_EOS)
+-				;
+-			return(0);
++	                if (*name == BG_EOS)
++	                        return 0;
++			nextn = name + 1;
++	                nextp = pat - 1;
++			break;
+ 		case M_ONE:
++                        /* since * matches leftmost-shortest first   *
++                         * if we encounter the EOS then backtracking *
++                         * will not help, so we can exit early here. */
+ 			if (*name++ == BG_EOS)
+-				return(0);
++                                return 0;
+ 			break;
+ 		case M_SET:
+ 			ok = 0;
++                        /* since * matches leftmost-shortest first   *
++                         * if we encounter the EOS then backtracking *
++                         * will not help, so we can exit early here. */
+ 			if ((k = *name++) == BG_EOS)
+-				return(0);
++                                return 0;
+ 			if ((negate_range = ((*pat & M_MASK) == M_NOT)) != BG_EOS)
+ 				++pat;
+ 			while (((c = *pat++) & M_MASK) != M_END)
+@@ -953,16 +978,25 @@ match(Char *name, Char *pat, Char *patend, int nocase)
+ 				} else if (nocase ? (tolower(c) == tolower(k)) : (c == k))
+ 					ok = 1;
+ 			if (ok == negate_range)
+-				return(0);
++				goto fail;
+ 			break;
+ 		default:
+ 			k = *name++;
+ 			if (nocase ? (tolower(k) != tolower(c)) : (k != c))
+-				return(0);
++				goto fail;
+ 			break;
+ 		}
+ 	}
+-	return(*name == BG_EOS);
++	if (*name == BG_EOS)
++		return 1;
++
++    fail:
++	if (nextn) {
++		pat = nextp;
++		name = nextn;
++		goto loop;
++	}
++	return 0;
+ }
+ 
+ /* Free allocated data belonging to a glob_t structure. */
+diff --git a/ext/File-Glob/t/rt131211.t b/ext/File-Glob/t/rt131211.t
+new file mode 100644
+index 0000000..c1bcbe0
+--- /dev/null
++++ b/ext/File-Glob/t/rt131211.t
+@@ -0,0 +1,94 @@
++use strict;
++use warnings;
++use v5.16.0;
++use File::Temp 'tempdir';
++use File::Spec::Functions;
++use Test::More;
++use Time::HiRes qw(time);
++
++plan tests => 13;
++
++my $path = tempdir uc cleanup => 1;
++my @files= (
++    "x".("a" x 50)."b", # 0
++    "abbbbbbbbbbbbc",   # 1
++    "abbbbbbbbbbbbd",   # 2
++    "aaabaaaabaaaabc",  # 3
++    "pq",               # 4
++    "r",                # 5
++    "rttiiiiiii",       # 6
++    "wewewewewewe",     # 7
++    "weeeweeeweee",     # 8
++    "weewweewweew",     # 9
++    "wewewewewewewewewewewewewewewewewq", # 10
++    "wtttttttetttttttwr", # 11
++);
++
++
++foreach (@files) {
++    open(my $f, ">", catfile $path, $_);
++}
++
++my $elapsed_fail= 0;
++my $elapsed_match= 0;
++my @got_files;
++my @no_files;
++my $count = 0;
++
++while (++$count < 10) {
++    $elapsed_match -= time;
++    @got_files= glob catfile $path, "x".("a*" x $count) . "b";
++    $elapsed_match += time;
++
++    $elapsed_fail -= time;
++    @no_files= glob catfile $path, "x".("a*" x $count) . "c";
++    $elapsed_fail += time;
++    last if $elapsed_fail > $elapsed_match * 100;
++}
++
++is $count,10,
++    "tried all the patterns without bailing out";
++
++cmp_ok $elapsed_fail/$elapsed_match,"<",2,
++    "time to fail less than twice the time to match";
++is "@got_files", catfile($path, $files[0]),
++    "only got the expected file for xa*..b";
++is "@no_files", "", "shouldnt have files for xa*..c";
++
++
++@got_files= glob catfile $path, "a*b*b*b*bc";
++is "@got_files", catfile($path, $files[1]),
++    "only got the expected file for a*b*b*b*bc";
++
++@got_files= sort glob catfile $path, "a*b*b*bc";
++is "@got_files", catfile($path, $files[3])." ".catfile($path,$files[1]),
++    "got the expected two files for a*b*b*bc";
++
++@got_files= sort glob catfile $path, "p*";
++is "@got_files", catfile($path, $files[4]),
++    "p* matches pq";
++
++@got_files= sort glob catfile $path, "r*???????";
++is "@got_files", catfile($path, $files[6]),
++    "r*??????? works as expected";
++
++@got_files= sort glob catfile $path, "w*e*w??e";
++is "@got_files", join(" ", sort map { catfile($path, $files[$_]) } (7,8)),
++    "w*e*w??e works as expected";
++
++@got_files= sort glob catfile $path, "w*e*we??";
++is "@got_files", join(" ", sort map { catfile($path, $files[$_]) } (7,8,9,10)),
++    "w*e*we?? works as expected";
++
++@got_files= sort glob catfile $path, "w**e**w";
++is "@got_files", join(" ", sort map { catfile($path, $files[$_]) } (9)),
++    "w**e**w works as expected";
++
++@got_files= sort glob catfile $path, "*wee*";
++is "@got_files", join(" ", sort map { catfile($path, $files[$_]) } (8,9)),
++    "*wee* works as expected";
++
++@got_files= sort glob catfile $path, "we*";
++is "@got_files", join(" ", sort map { catfile($path, $files[$_]) } (7,8,9,10)),
++    "we* works as expected";
++
+-- 
+2.9.4
+
diff --git a/SOURCES/perl-5.27.1-File-Glob-tweak-rt131211.t-to-be-less-sensitive-on-w.patch b/SOURCES/perl-5.27.1-File-Glob-tweak-rt131211.t-to-be-less-sensitive-on-w.patch
new file mode 100644
index 0000000..6407a06
--- /dev/null
+++ b/SOURCES/perl-5.27.1-File-Glob-tweak-rt131211.t-to-be-less-sensitive-on-w.patch
@@ -0,0 +1,45 @@
+From b4d257e2d408f0f1c6686dcdc112f3ebfec68f44 Mon Sep 17 00:00:00 2001
+From: Yves Orton <demerphq@gmail.com>
+Date: Tue, 27 Jun 2017 10:22:23 +0200
+Subject: [PATCH] File::Glob - tweak rt131211.t to be less sensitive on wonky
+ boxes
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+make the test less senstive and avoid divide by zero errors,
+also we skip the test if either elapsed_match or elapsed_fail is
+true, as we can not rely on the timings then. For the operations
+we are doing we should get a non-zero timing from Time::HiRes.
+
+This should mean that running this test on boxes with heavy
+load, etc, will no longer result in false positives.
+
+Signed-off-by: Petr Písař <ppisar@redhat.com>
+---
+ ext/File-Glob/t/rt131211.t | 9 +++++++--
+ 1 file changed, 7 insertions(+), 2 deletions(-)
+
+diff --git a/ext/File-Glob/t/rt131211.t b/ext/File-Glob/t/rt131211.t
+index c1bcbe0..b29cd04 100644
+--- a/ext/File-Glob/t/rt131211.t
++++ b/ext/File-Glob/t/rt131211.t
+@@ -49,8 +49,13 @@ while (++$count < 10) {
+ is $count,10,
+     "tried all the patterns without bailing out";
+ 
+-cmp_ok $elapsed_fail/$elapsed_match,"<",2,
+-    "time to fail less than twice the time to match";
++SKIP: {
++    skip "unstable timing", 1 unless $elapsed_match && $elapsed_fail;
++    ok $elapsed_fail <= 10 * $elapsed_match,
++        "time to fail less than 10x the time to match"
++        or diag("elapsed_match=$elapsed_match elapsed_fail=$elapsed_fail");
++}
++
+ is "@got_files", catfile($path, $files[0]),
+     "only got the expected file for xa*..b";
+ is "@no_files", "", "shouldnt have files for xa*..c";
+-- 
+2.9.4
+
diff --git a/SOURCES/perl-5.27.1-RT-130907-Fix-the-Unicode-Bug-in-split.patch b/SOURCES/perl-5.27.1-RT-130907-Fix-the-Unicode-Bug-in-split.patch
new file mode 100644
index 0000000..d1543f0
--- /dev/null
+++ b/SOURCES/perl-5.27.1-RT-130907-Fix-the-Unicode-Bug-in-split.patch
@@ -0,0 +1,226 @@
+From 5aca16e032861ea3dfcc96ad417ea87e2b1552e5 Mon Sep 17 00:00:00 2001
+From: Aaron Crane <arc@cpan.org>
+Date: Sat, 4 Mar 2017 12:50:58 +0000
+Subject: [PATCH] RT #130907: Fix the Unicode Bug in split " "
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Ported to 5.26.0:
+
+commit 20ae58f7a9bbf84d043d6e90f5988b6e3ca4ee3d
+Author: Aaron Crane <arc@cpan.org>
+Date:   Sat Mar 4 12:50:58 2017 +0000
+
+    RT #130907: Fix the Unicode Bug in split " "
+
+Signed-off-by: Petr Písař <ppisar@redhat.com>
+---
+ lib/feature.pm       |  5 +++--
+ pod/perldelta.pod    |  9 +++++++++
+ pod/perlfunc.pod     |  8 ++++++++
+ pod/perlunicode.pod  | 11 +++++++++++
+ pod/perluniintro.pod |  5 +++--
+ pp.c                 | 13 +++++++++++++
+ regen/feature.pl     |  5 +++--
+ t/op/split.t         | 20 +++++++++++++++++++-
+ 8 files changed, 69 insertions(+), 7 deletions(-)
+
+diff --git a/lib/feature.pm b/lib/feature.pm
+index ed13273..93e020b 100644
+--- a/lib/feature.pm
++++ b/lib/feature.pm
+@@ -175,8 +175,9 @@ C<use feature 'unicode_strings'> subpragma is B<strongly> recommended.
+ 
+ This feature is available starting with Perl 5.12; was almost fully
+ implemented in Perl 5.14; and extended in Perl 5.16 to cover C<quotemeta>;
+-and extended further in Perl 5.26 to cover L<the range
+-operator|perlop/Range Operators>.
++was extended further in Perl 5.26 to cover L<the range
++operator|perlop/Range Operators>; and was extended again in Perl 5.28 to
++cover L<special-cased whitespace splitting|perlfunc/split>.
+ 
+ =head2 The 'unicode_eval' and 'evalbytes' features
+ 
+#diff --git a/pod/perldelta.pod b/pod/perldelta.pod
+#index 06dcd1d..d31335f 100644
+#--- a/pod/perldelta.pod
+#+++ b/pod/perldelta.pod
+#@@ -3206,6 +3206,15 @@ calls.
+# Parsing bad POSIX charclasses no longer leaks memory.
+# L<[perl #128313]|https://rt.perl.org/Public/Bug/Display.html?id=128313>
+# 
+#+=item *
+#+
+#+C<split ' '> now correctly handles the argument being split when in the
+#+scope of the L<< C<unicode_strings>|feature/"The 'unicode_strings' feature"
+#+>> feature. Previously, when a string using the single-byte internal
+#+representation contained characters that are whitespace by Unicode rules but
+#+not by ASCII rules, it treated those characters as part of fields rather
+#+than as field separators.  [perl #130907]
+#+
+# =back
+# 
+# =head1 Known Problems
+diff --git a/pod/perlfunc.pod b/pod/perlfunc.pod
+index b8dca6e..9abadf4 100644
+--- a/pod/perlfunc.pod
++++ b/pod/perlfunc.pod
+@@ -7616,6 +7616,14 @@ special case was restricted to the use of a plain S<C<" ">> as the
+ pattern argument to split; in Perl 5.18.0 and later this special case is
+ triggered by any expression which evaluates to the simple string S<C<" ">>.
+ 
++As of Perl 5.28, this special-cased whitespace splitting works as expected in
++the scope of L<< S<C<"use feature 'unicode_strings">>|feature/The
++'unicode_strings' feature >>. In previous versions, and outside the scope of
++that feature, it exhibits L<perlunicode/The "Unicode Bug">: characters that are
++whitespace according to Unicode rules but not according to ASCII rules can be
++treated as part of fields rather than as field separators, depending on the
++string's internal encoding.
++
+ If omitted, PATTERN defaults to a single space, S<C<" ">>, triggering
+ the previously described I<awk> emulation.
+ 
+diff --git a/pod/perlunicode.pod b/pod/perlunicode.pod
+index 9c13c35..2e84e95 100644
+--- a/pod/perlunicode.pod
++++ b/pod/perlunicode.pod
+@@ -1835,6 +1835,17 @@ outside its scope, it could produce strings whose length in characters
+ exceeded that of the right-hand side, where the right-hand side took up more
+ bytes than the correct range endpoint.
+ 
++=item *
++
++In L<< C<split>'s special-case whitespace splitting|perlfunc/split >>.
++
++Starting in Perl 5.28.0, the C<split> function with a pattern specified as
++a string containing a single space handles whitespace characters consistently
++within the scope of of C<unicode_strings>. Prior to that, or outside its scope,
++characters that are whitespace according to Unicode rules but not according to
++ASCII rules were treated as field contents rather than field separators when
++they appear in byte-encoded strings.
++
+ =back
+ 
+ You can see from the above that the effect of C<unicode_strings>
+diff --git a/pod/perluniintro.pod b/pod/perluniintro.pod
+index d35de34..595ec46 100644
+--- a/pod/perluniintro.pod
++++ b/pod/perluniintro.pod
+@@ -151,11 +151,12 @@ serious Unicode work.  The maintenance release 5.6.1 fixed many of the
+ problems of the initial Unicode implementation, but for example
+ regular expressions still do not work with Unicode in 5.6.1.
+ Perl v5.14.0 is the first release where Unicode support is
+-(almost) seamlessly integrable without some gotchas. (There are two
++(almost) seamlessly integrable without some gotchas. (There are a few
+ exceptions. Firstly, some differences in L<quotemeta|perlfunc/quotemeta>
+ were fixed starting in Perl 5.16.0. Secondly, some differences in
+ L<the range operator|perlop/Range Operators> were fixed starting in
+-Perl 5.26.0.)
++Perl 5.26.0. Thirdly, some differences in L<split|perlfunc/split> were fixed
++started in Perl 5.28.0.)
+ 
+ To enable this
+ seamless support, you should C<use feature 'unicode_strings'> (which is
+diff --git a/pp.c b/pp.c
+index cc4cb59..d9dd005 100644
+--- a/pp.c
++++ b/pp.c
+@@ -5740,6 +5740,7 @@ PP(pp_split)
+     STRLEN len;
+     const char *s = SvPV_const(sv, len);
+     const bool do_utf8 = DO_UTF8(sv);
++    const bool in_uni_8_bit = IN_UNI_8_BIT;
+     const char *strend = s + len;
+     PMOP *pm = cPMOPx(PL_op);
+     REGEXP *rx;
+@@ -5826,6 +5827,10 @@ PP(pp_split)
+ 	    while (s < strend && isSPACE_LC(*s))
+ 		s++;
+ 	}
++        else if (in_uni_8_bit) {
++            while (s < strend && isSPACE_L1(*s))
++                s++;
++        }
+ 	else {
+ 	    while (s < strend && isSPACE(*s))
+ 		s++;
+@@ -5857,6 +5862,10 @@ PP(pp_split)
+             {
+ 	        while (m < strend && !isSPACE_LC(*m))
+ 		    ++m;
++            }
++            else if (in_uni_8_bit) {
++                while (m < strend && !isSPACE_L1(*m))
++                    ++m;
+             } else {
+                 while (m < strend && !isSPACE(*m))
+                     ++m;
+@@ -5891,6 +5900,10 @@ PP(pp_split)
+             {
+ 	        while (s < strend && isSPACE_LC(*s))
+ 		    ++s;
++            }
++            else if (in_uni_8_bit) {
++                while (s < strend && isSPACE_L1(*s))
++                    ++s;
+             } else {
+                 while (s < strend && isSPACE(*s))
+                     ++s;
+diff --git a/regen/feature.pl b/regen/feature.pl
+index 579120e..8a4ce63 100755
+--- a/regen/feature.pl
++++ b/regen/feature.pl
+@@ -485,8 +485,9 @@ C<use feature 'unicode_strings'> subpragma is B<strongly> recommended.
+ 
+ This feature is available starting with Perl 5.12; was almost fully
+ implemented in Perl 5.14; and extended in Perl 5.16 to cover C<quotemeta>;
+-and extended further in Perl 5.26 to cover L<the range
+-operator|perlop/Range Operators>.
++was extended further in Perl 5.26 to cover L<the range
++operator|perlop/Range Operators>; and was extended again in Perl 5.28 to
++cover L<special-cased whitespace splitting|perlfunc/split>.
+ 
+ =head2 The 'unicode_eval' and 'evalbytes' features
+ 
+diff --git a/t/op/split.t b/t/op/split.t
+index d60bcaf..038c5d7 100644
+--- a/t/op/split.t
++++ b/t/op/split.t
+@@ -7,7 +7,7 @@ BEGIN {
+     set_up_inc('../lib');
+ }
+ 
+-plan tests => 163;
++plan tests => 172;
+ 
+ $FS = ':';
+ 
+@@ -480,6 +480,24 @@ is($cnt, scalar(@ary));
+         qq{split(\$cond ? qr/ / : " ", "$exp") behaves as expected over repeated similar patterns};
+ }
+ 
++SKIP: {
++    # RT #130907: unicode_strings feature doesn't work with split ' '
++
++    my ($sp) = grep /\s/u, map chr, reverse 128 .. 255 # prefer \xA0 over \x85
++        or skip 'no unicode whitespace found in high-8-bit range', 9;
++
++    for (["$sp$sp. /", "leading unicode whitespace"],
++         [".$sp$sp/",  "unicode whitespace separator"],
++         [". /$sp$sp", "trailing unicode whitespace"]) {
++        my ($str, $desc) = @$_;
++        use feature "unicode_strings";
++        my @got = split " ", $str;
++        is @got, 2, "whitespace split: $desc: field count";
++        is $got[0], '.', "whitespace split: $desc: field 0";
++        is $got[1], '/', "whitespace split: $desc: field 1";
++    }
++}
++
+ {
+     # 'RT #116086: split "\x20" does not work as documented';
+     my @results;
+-- 
+2.9.4
+
diff --git a/SOURCES/perl-5.27.1-perl-131679-Fix-our-sub-foo-bar-message.patch b/SOURCES/perl-5.27.1-perl-131679-Fix-our-sub-foo-bar-message.patch
new file mode 100644
index 0000000..e9b9bf4
--- /dev/null
+++ b/SOURCES/perl-5.27.1-perl-131679-Fix-our-sub-foo-bar-message.patch
@@ -0,0 +1,51 @@
+From b9a58d500dd75ba783abac92a56e57d41227f62b Mon Sep 17 00:00:00 2001
+From: Father Chrysostomos <sprout@cpan.org>
+Date: Sun, 2 Jul 2017 11:35:20 -0700
+Subject: [PATCH] =?UTF-8?q?[perl=20#131679]=20Fix=20=E2=80=98our=20sub=20f?=
+ =?UTF-8?q?oo::bar=E2=80=99=20message?=
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+It should say subroutine, not variable.
+
+Signed-off-by: Petr Písař <ppisar@redhat.com>
+---
+ t/lib/croak/toke | 6 ++++++
+ toke.c           | 3 ++-
+ 2 files changed, 8 insertions(+), 1 deletion(-)
+
+diff --git a/t/lib/croak/toke b/t/lib/croak/toke
+index 7aa15ef..2603224 100644
+--- a/t/lib/croak/toke
++++ b/t/lib/croak/toke
+@@ -133,6 +133,12 @@ state sub;
+ EXPECT
+ Missing name in "state sub" at - line 2.
+ ########
++# NAME our sub pack::foo
++our sub foo::bar;
++EXPECT
++No package name allowed for subroutine &foo::bar in "our" at - line 1, near "our sub foo::bar"
++Execution of - aborted due to compilation errors.
++########
+ # NAME my sub pack::foo
+ use feature 'lexical_subs', 'state';
+ my sub foo::bar;
+diff --git a/toke.c b/toke.c
+index ace92e3..6aa5f26 100644
+--- a/toke.c
++++ b/toke.c
+@@ -8848,7 +8848,8 @@ S_pending_ident(pTHX)
+         if (PL_in_my == KEY_our) {	/* "our" is merely analogous to "my" */
+             if (has_colon)
+                 yyerror_pv(Perl_form(aTHX_ "No package name allowed for "
+-                                  "variable %s in \"our\"",
++                                  "%se %s in \"our\"",
++                                  *PL_tokenbuf=='&' ?"subroutin":"variabl",
+                                   PL_tokenbuf), UTF ? SVf_UTF8 : 0);
+             tmp = allocmy(PL_tokenbuf, tokenbuf_len, UTF ? SVf_UTF8 : 0);
+         }
+-- 
+2.9.4
+
diff --git a/SOURCES/perl-5.27.1-t-lib-warnings-utf8-Fix-test.patch b/SOURCES/perl-5.27.1-t-lib-warnings-utf8-Fix-test.patch
new file mode 100644
index 0000000..d134a07
--- /dev/null
+++ b/SOURCES/perl-5.27.1-t-lib-warnings-utf8-Fix-test.patch
@@ -0,0 +1,30 @@
+From 97e57bec1f0ba4f0c3b1dc18ee146632010e3373 Mon Sep 17 00:00:00 2001
+From: Karl Williamson <khw@cpan.org>
+Date: Sat, 15 Jul 2017 19:36:25 -0600
+Subject: [PATCH] t/lib/warnings/utf8: Fix test
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+There is some randomness to this test added to fix [perl #131646].
+Change what passes to be a pattern that matches the correct template
+
+Signed-off-by: Petr Písař <ppisar@redhat.com>
+---
+ t/lib/warnings/utf8 | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/t/lib/warnings/utf8 b/t/lib/warnings/utf8
+index 9066308..dfc58c1 100644
+--- a/t/lib/warnings/utf8
++++ b/t/lib/warnings/utf8
+@@ -781,4 +781,5 @@ no warnings;
+ use warnings 'utf8';
+ for(uc 0..t){0~~pack"UXc",exp}
+ EXPECT
+-Malformed UTF-8 character: \xc2\x00 (unexpected non-continuation byte 0x00, immediately after start byte 0xc2; need 2 bytes, got 1)  in smart match at - line 9.
++OPTIONS regex
++Malformed UTF-8 character: \\x([[:xdigit:]]{2})\\x([[:xdigit:]]{2}) \(unexpected non-continuation byte 0x\2, immediately after start byte 0x\1; need 2 bytes, got 1\)  in smart match at - line 9.
+-- 
+2.9.4
+
diff --git a/SOURCES/perl-5.27.1-utf8n_to_uvchr-Don-t-display-too-many-bytes-in-msg.patch b/SOURCES/perl-5.27.1-utf8n_to_uvchr-Don-t-display-too-many-bytes-in-msg.patch
new file mode 100644
index 0000000..1b7bd8b
--- /dev/null
+++ b/SOURCES/perl-5.27.1-utf8n_to_uvchr-Don-t-display-too-many-bytes-in-msg.patch
@@ -0,0 +1,43 @@
+From 05b9033b464ce8dd2c9b33238f9aa14755d7a91a Mon Sep 17 00:00:00 2001
+From: Karl Williamson <khw@cpan.org>
+Date: Sat, 17 Jun 2017 17:56:10 -0600
+Subject: [PATCH] utf8n_to_uvchr(): Don't display too many bytes in msg
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+When raising a message about malformed UTF-8, we shouldn't display bytes
+from the next character, unless those bytes were expected to have been
+part of the current one.  Tests for this will be added in future commits
+in ext/XS-APItest/t/utf8_warn_base.pl
+
+Signed-off-by: Petr Písař <ppisar@redhat.com>
+---
+ utf8.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/utf8.c b/utf8.c
+index ee5405f..e55a6f1 100644
+--- a/utf8.c
++++ b/utf8.c
+@@ -1428,7 +1428,7 @@ Perl_utf8n_to_uvchr_error(pTHX_ const U8 *s,
+                         if (pack_warn) {
+                             message = Perl_form(aTHX_ "%s: %s (overflows)",
+                                             malformed_text,
+-                                            _byte_dump_string(s0, send - s0, 0));
++                                            _byte_dump_string(s0, curlen, 0));
+                         }
+                     }
+                 }
+@@ -1554,7 +1554,7 @@ Perl_utf8n_to_uvchr_error(pTHX_ const U8 *s,
+                                 "%s: %s (overlong; instead use %s to represent"
+                                 " U+%0*" UVXf ")",
+                                 malformed_text,
+-                                _byte_dump_string(s0, send - s0, 0),
++                                _byte_dump_string(s0, curlen, 0),
+                                 _byte_dump_string(tmpbuf, e - tmpbuf, 0),
+                                 ((uv < 256) ? 2 : 4), /* Field width of 2 for
+                                                          small code points */
+-- 
+2.9.4
+
diff --git a/SOURCES/perl-5.27.10-PATCH-perl-132167-Parse-error-in-regex_sets.patch b/SOURCES/perl-5.27.10-PATCH-perl-132167-Parse-error-in-regex_sets.patch
new file mode 100644
index 0000000..893acd9
--- /dev/null
+++ b/SOURCES/perl-5.27.10-PATCH-perl-132167-Parse-error-in-regex_sets.patch
@@ -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
+
diff --git a/SOURCES/perl-5.27.10-PATCH-perl-133074-5.26.1-some-coverity-fixes.patch b/SOURCES/perl-5.27.10-PATCH-perl-133074-5.26.1-some-coverity-fixes.patch
new file mode 100644
index 0000000..bcdd357
--- /dev/null
+++ b/SOURCES/perl-5.27.10-PATCH-perl-133074-5.26.1-some-coverity-fixes.patch
@@ -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
+
diff --git a/SOURCES/perl-5.27.2-Avoid-compiler-warnings-due-to-mismatched-types-in-p.patch b/SOURCES/perl-5.27.2-Avoid-compiler-warnings-due-to-mismatched-types-in-p.patch
new file mode 100644
index 0000000..d5593b6
--- /dev/null
+++ b/SOURCES/perl-5.27.2-Avoid-compiler-warnings-due-to-mismatched-types-in-p.patch
@@ -0,0 +1,45 @@
+From 357c35e6f18e65f372e7a1b22ee39a3c7c9e5810 Mon Sep 17 00:00:00 2001
+From: Robin Barker <RMBarker@cpan.org>
+Date: Mon, 17 Dec 2012 18:20:14 +0100
+Subject: [PATCH] Avoid compiler warnings due to mismatched types in *printf
+ format strings.
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+gcc (and probably others) was warning about a mismatch for between `int`
+(implied by the format %d) and the actual type passed, `line_t`. Avoid this
+by explicitly casting to UV, and using UVuf.
+
+CPAN #63832
+
+Signed-off-by: Petr Písař <ppisar@redhat.com>
+---
+ cpan/ExtUtils-Constant/lib/ExtUtils/Constant/ProxySubs.pm | 7 ++++---
+ 1 file changed, 4 insertions(+), 3 deletions(-)
+
+diff --git a/cpan/ExtUtils-Constant/lib/ExtUtils/Constant/ProxySubs.pm b/cpan/ExtUtils-Constant/lib/ExtUtils/Constant/ProxySubs.pm
+index 545d322..c7e6d05 100644
+--- a/cpan/ExtUtils-Constant/lib/ExtUtils/Constant/ProxySubs.pm
++++ b/cpan/ExtUtils-Constant/lib/ExtUtils/Constant/ProxySubs.pm
+@@ -629,13 +629,14 @@ EOA
+ 	if ((C_ARRAY_LENGTH(values_for_notfound) > 1)
+ 	    ? hv_exists_ent(${c_subname}_missing, sv, 0) : 0) {
+ 	    sv = newSVpvf("Your vendor has not defined $package_sprintf_safe macro %" SVf
+-			  ", used at %" COP_FILE_F " line %d\\n", sv,
+-			  COP_FILE(cop), CopLINE(cop));
++			  ", used at %" COP_FILE_F " line %" UVuf "\\n", 
++			  sv, COP_FILE(cop), (UV)CopLINE(cop));
+ 	} else
+ #endif
+ 	{
+ 	    sv = newSVpvf("%"SVf" is not a valid $package_sprintf_safe macro at %"
+-			  COP_FILE_F " line %d\\n", sv, COP_FILE(cop), CopLINE(cop));
++			  COP_FILE_F " line %" UVuf "\\n",
++			  sv, COP_FILE(cop), (UV)CopLINE(cop));
+ 	}
+ 	croak_sv(sv_2mortal(sv));
+ EOC
+-- 
+2.9.4
+
diff --git a/SOURCES/perl-5.27.2-EU-Constant-avoid-uninit-warning.patch b/SOURCES/perl-5.27.2-EU-Constant-avoid-uninit-warning.patch
new file mode 100644
index 0000000..e330518
--- /dev/null
+++ b/SOURCES/perl-5.27.2-EU-Constant-avoid-uninit-warning.patch
@@ -0,0 +1,69 @@
+From 389f3ef2fdfbba2c2816e7334a69a5f540c0a33d Mon Sep 17 00:00:00 2001
+From: David Mitchell <davem@iabyn.com>
+Date: Mon, 15 Dec 2014 16:14:13 +0000
+Subject: [PATCH] EU::Constant: avoid 'uninit' warning
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+The code generated by ExtUtils::Constant can look something like:
+
+static int
+constant (..., IV *iv_return) {
+   switch (...) {
+     case ...:
+       *iv_return = ...;
+       return PERL_constant_ISIV;
+     ...
+  }
+}
+
+{
+    int type;
+    IV iv;
+    type = constant(..., &iv);
+    switch (type) {
+        case PERL_constant_ISIV:
+            PUSHi(iv);
+    ...
+    }
+}
+
+and the compiler isn't clever enough to realise that the value of iv
+is only used in the code path where its been set.
+
+So initialise it to zero to shut gcc up. Ditto nv and pv.
+
+Signed-off-by: Petr Písař <ppisar@redhat.com>
+---
+ cpan/ExtUtils-Constant/lib/ExtUtils/Constant.pm | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/cpan/ExtUtils-Constant/lib/ExtUtils/Constant.pm b/cpan/ExtUtils-Constant/lib/ExtUtils/Constant.pm
+index 0dc9258..cf0e1ca 100644
+--- a/cpan/ExtUtils-Constant/lib/ExtUtils/Constant.pm
++++ b/cpan/ExtUtils-Constant/lib/ExtUtils/Constant.pm
+@@ -198,17 +198,17 @@ $XS_subname(sv)
+ EOT
+ 
+   if ($params->{IV}) {
+-    $xs .= "	IV		iv;\n";
++    $xs .= "	IV		iv = 0; /* avoid uninit var warning */\n";
+   } else {
+     $xs .= "	/* IV\t\tiv;\tUncomment this if you need to return IVs */\n";
+   }
+   if ($params->{NV}) {
+-    $xs .= "	NV		nv;\n";
++    $xs .= "	NV		nv = 0.0; /* avoid uninit var warning */\n";
+   } else {
+     $xs .= "	/* NV\t\tnv;\tUncomment this if you need to return NVs */\n";
+   }
+   if ($params->{PV}) {
+-    $xs .= "	const char	*pv;\n";
++    $xs .= "	const char	*pv = NULL; /* avoid uninit var warning */\n";
+   } else {
+     $xs .=
+       "	/* const char\t*pv;\tUncomment this if you need to return PVs */\n";
+-- 
+2.9.4
+
diff --git a/SOURCES/perl-5.27.3-avoid-the-address-of-.-will-always-evaluate-as-.-war.patch b/SOURCES/perl-5.27.3-avoid-the-address-of-.-will-always-evaluate-as-.-war.patch
new file mode 100644
index 0000000..7f2a9f4
--- /dev/null
+++ b/SOURCES/perl-5.27.3-avoid-the-address-of-.-will-always-evaluate-as-.-war.patch
@@ -0,0 +1,60 @@
+From 45908e4d120d33a558a8b052036c56cd0c90b898 Mon Sep 17 00:00:00 2001
+From: Yves Orton <demerphq@gmail.com>
+Date: Wed, 13 Sep 2017 13:30:25 +0200
+Subject: [PATCH] avoid  'the address of ... will always evaluate as ...' warns
+ in mem macros
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+In f14cf363205 we added asserts to our memory macros (Copy(), Zero() etc)
+to ensure that the target is non-null. These asserts throw warnings like
+
+    perl.c: In function ‘Perl_eval_sv’:
+    perl.c:2976:264: warning: the address of ‘myop’ will always evaluate
+    as ‘true’ [-Waddress]
+         Zero(&myop, 1, UNOP);
+
+which is annoying. This patch changes how these asserts are coded so
+we avoid the warning. Thanks to Zefram for the fix.
+
+Signed-off-by: Petr Písař <ppisar@redhat.com>
+---
+ handy.h | 17 ++++++++++-------
+ 1 file changed, 10 insertions(+), 7 deletions(-)
+
+diff --git a/handy.h b/handy.h
+index 31afaae65e..85e8f70721 100644
+--- a/handy.h
++++ b/handy.h
+@@ -2409,17 +2409,20 @@ void Perl_mem_log_del_sv(const SV *sv, const char *filename, const int linenumbe
+ #define Safefree(d)	safefree(MEM_LOG_FREE((Malloc_t)(d)))
+ #endif
+ 
+-#define Move(s,d,n,t)	(MEM_WRAP_CHECK_(n,t) assert(d), assert(s), (void)memmove((char*)(d),(const char*)(s), (n) * sizeof(t)))
+-#define Copy(s,d,n,t)	(MEM_WRAP_CHECK_(n,t) assert(d), assert(s), (void)memcpy((char*)(d),(const char*)(s), (n) * sizeof(t)))
+-#define Zero(d,n,t)	(MEM_WRAP_CHECK_(n,t) assert(d), (void)memzero((char*)(d), (n) * sizeof(t)))
++#define perl_assert_ptr(p) assert( ((void*)(p)) != 0 )
+ 
+-#define MoveD(s,d,n,t)	(MEM_WRAP_CHECK_(n,t) assert(d), assert(s), memmove((char*)(d),(const char*)(s), (n) * sizeof(t)))
+-#define CopyD(s,d,n,t)	(MEM_WRAP_CHECK_(n,t) assert(d), assert(s), memcpy((char*)(d),(const char*)(s), (n) * sizeof(t)))
++
++#define Move(s,d,n,t)	(MEM_WRAP_CHECK_(n,t) perl_assert_ptr(d), perl_assert_ptr(s), (void)memmove((char*)(d),(const char*)(s), (n) * sizeof(t)))
++#define Copy(s,d,n,t)	(MEM_WRAP_CHECK_(n,t) perl_assert_ptr(d), perl_assert_ptr(s), (void)memcpy((char*)(d),(const char*)(s), (n) * sizeof(t)))
++#define Zero(d,n,t)	(MEM_WRAP_CHECK_(n,t) perl_assert_ptr(d), (void)memzero((char*)(d), (n) * sizeof(t)))
++
++#define MoveD(s,d,n,t)	(MEM_WRAP_CHECK_(n,t) perl_assert_ptr(d), perl_assert_ptr(s), memmove((char*)(d),(const char*)(s), (n) * sizeof(t)))
++#define CopyD(s,d,n,t)	(MEM_WRAP_CHECK_(n,t) perl_assert_ptr(d), perl_assert_ptr(s), memcpy((char*)(d),(const char*)(s), (n) * sizeof(t)))
+ #ifdef HAS_MEMSET
+-#define ZeroD(d,n,t)	(MEM_WRAP_CHECK_(n,t) assert(d), memzero((char*)(d), (n) * sizeof(t)))
++#define ZeroD(d,n,t)	(MEM_WRAP_CHECK_(n,t) perl_assert_ptr(d), memzero((char*)(d), (n) * sizeof(t)))
+ #else
+ /* Using bzero(), which returns void.  */
+-#define ZeroD(d,n,t)	(MEM_WRAP_CHECK_(n,t) assert(d), memzero((char*)(d), (n) * sizeof(t)),d)
++#define ZeroD(d,n,t)	(MEM_WRAP_CHECK_(n,t) perl_assert_ptr(d), memzero((char*)(d), (n) * sizeof(t)),d)
+ #endif
+ 
+ #define PoisonWith(d,n,t,b)	(MEM_WRAP_CHECK_(n,t) (void)memset((char*)(d), (U8)(b), (n) * sizeof(t)))
+-- 
+2.13.6
+
diff --git a/SOURCES/perl-5.27.3-perl-132008-try-to-prevent-the-similar-mistakes-in-t.patch b/SOURCES/perl-5.27.3-perl-132008-try-to-prevent-the-similar-mistakes-in-t.patch
new file mode 100644
index 0000000..f999dfa
--- /dev/null
+++ b/SOURCES/perl-5.27.3-perl-132008-try-to-prevent-the-similar-mistakes-in-t.patch
@@ -0,0 +1,30 @@
+From 4369267db9ca4982c1a9bd1ef680bc4350decc3a Mon Sep 17 00:00:00 2001
+From: Tony Cook <tony@develop-help.com>
+Date: Mon, 18 Sep 2017 15:07:21 +1000
+Subject: [PATCH] (perl #132008) try to prevent the similar mistakes in the
+ future
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Signed-off-by: Petr Písař <ppisar@redhat.com>
+---
+ dist/Term-ReadLine/lib/Term/ReadLine.pm | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/dist/Term-ReadLine/lib/Term/ReadLine.pm b/dist/Term-ReadLine/lib/Term/ReadLine.pm
+index e00fb376cd..78c1ebf5b6 100644
+--- a/dist/Term-ReadLine/lib/Term/ReadLine.pm
++++ b/dist/Term-ReadLine/lib/Term/ReadLine.pm
+@@ -75,6 +75,8 @@ history. Returns the old value.
+ returns an array with two strings that give most appropriate names for
+ files for input and output using conventions C<"E<lt>$in">, C<"E<gt>out">.
+ 
++The strings returned may not be useful for 3-argument open().
++
+ =item Attribs
+ 
+ returns a reference to a hash which describes internal configuration
+-- 
+2.13.6
+
diff --git a/SOURCES/perl-5.27.5-Avoid-a-segfault-when-untying-an-object.patch b/SOURCES/perl-5.27.5-Avoid-a-segfault-when-untying-an-object.patch
new file mode 100644
index 0000000..ba8cdfa
--- /dev/null
+++ b/SOURCES/perl-5.27.5-Avoid-a-segfault-when-untying-an-object.patch
@@ -0,0 +1,32 @@
+From e7e69c85c7e8e0cb75b831e606ad4f26f18b11ff Mon Sep 17 00:00:00 2001
+From: Nicolas R <atoomic@cpan.org>
+Date: Mon, 31 Oct 2016 11:53:17 -0600
+Subject: [PATCH] Avoid a segfault when untying an object
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Check if the tied object has a stash set
+before calling UNTIE method.
+
+Signed-off-by: Petr Písař <ppisar@redhat.com>
+---
+ pp_sys.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/pp_sys.c b/pp_sys.c
+index 672e7de08e..6d4dd86b7f 100644
+--- a/pp_sys.c
++++ b/pp_sys.c
+@@ -1017,7 +1017,7 @@ PP(pp_untie)
+ 
+     if ((mg = SvTIED_mg(sv, how))) {
+ 	SV * const obj = SvRV(SvTIED_obj(sv, mg));
+-        if (obj) {
++        if (obj && SvSTASH(obj)) {
+ 	    GV * const gv = gv_fetchmethod_autoload(SvSTASH(obj), "UNTIE", FALSE);
+ 	    CV *cv;
+ 	    if (gv && isGV(gv) && (cv = GvCV(gv))) {
+-- 
+2.13.6
+
diff --git a/SOURCES/perl-5.27.5-Carp-Don-t-choke-on-ISA-constant.patch b/SOURCES/perl-5.27.5-Carp-Don-t-choke-on-ISA-constant.patch
new file mode 100644
index 0000000..399c245
--- /dev/null
+++ b/SOURCES/perl-5.27.5-Carp-Don-t-choke-on-ISA-constant.patch
@@ -0,0 +1,73 @@
+From b3937e202aaf10c2f8996e2993c880bb38a7a268 Mon Sep 17 00:00:00 2001
+From: Father Chrysostomos <sprout@cpan.org>
+Date: Wed, 1 Nov 2017 13:11:27 -0700
+Subject: [PATCH] =?UTF-8?q?Carp:=20Don=E2=80=99t=20choke=20on=20ISA=20cons?=
+ =?UTF-8?q?tant?=
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+This broke some time between 1.29 (perl 5.18) and 1.3301 (perl 5.20):
+
+$ perl5.20.1 -e 'package Foo { use constant ISA => 42; Bar::f() } package Bar { use Carp; sub f { carp "tun syn" } }'
+Not a GLOB reference at /usr/local/lib/perl5/5.20.1/Carp.pm line 560.
+
+and still persisted in bleadperl (Carp 1.43) until this commit.
+
+The code that goes poking through the symbol table needs to take into
+account that not all stash elements are globs.
+
+Signed-off-by: Petr Písař <ppisar@redhat.com>
+---
+ dist/Carp/lib/Carp.pm |  3 ++-
+ dist/Carp/t/Carp.t    | 13 ++++++++++++-
+ 2 files changed, 14 insertions(+), 2 deletions(-)
+
+diff --git a/dist/Carp/lib/Carp.pm b/dist/Carp/lib/Carp.pm
+index 6127b26f54..ef11a0c046 100644
+--- a/dist/Carp/lib/Carp.pm
++++ b/dist/Carp/lib/Carp.pm
+@@ -593,7 +593,8 @@ sub trusts_directly {
+     for my $var (qw/ CARP_NOT ISA /) {
+         # Don't try using the variable until we know it exists,
+         # to avoid polluting the caller's namespace.
+-        if ( $stash->{$var} && *{$stash->{$var}}{ARRAY} && @{$stash->{$var}} ) {
++        if ( $stash->{$var} && ref \$stash->{$var} eq 'GLOB'
++          && *{$stash->{$var}}{ARRAY} && @{$stash->{$var}} ) {
+            return @{$stash->{$var}}
+         }
+     }
+diff --git a/dist/Carp/t/Carp.t b/dist/Carp/t/Carp.t
+index 65daed7c6c..b1e399d143 100644
+--- a/dist/Carp/t/Carp.t
++++ b/dist/Carp/t/Carp.t
+@@ -3,7 +3,7 @@ no warnings "once";
+ use Config;
+ 
+ use IPC::Open3 1.0103 qw(open3);
+-use Test::More tests => 67;
++use Test::More tests => 68;
+ 
+ sub runperl {
+     my(%args) = @_;
+@@ -488,6 +488,17 @@ SKIP:
+     );
+ }
+ 
++{
++    package Mpar;
++    sub f { Carp::croak "tun syn" }
++
++    package Phou;
++    $Phou::{ISA} = \42;
++    eval { Mpar::f };
++}
++like $@, qr/tun syn/, 'Carp can handle non-glob ISA stash elems';
++
++
+ # New tests go here
+ 
+ # line 1 "XA"
+-- 
+2.13.6
+
diff --git a/SOURCES/perl-5.27.5-fix-tainting-of-s-with-overloaded-replacement.patch b/SOURCES/perl-5.27.5-fix-tainting-of-s-with-overloaded-replacement.patch
new file mode 100644
index 0000000..3b853ae
--- /dev/null
+++ b/SOURCES/perl-5.27.5-fix-tainting-of-s-with-overloaded-replacement.patch
@@ -0,0 +1,593 @@
+From 3f8a98327dfdb171bd6e447fec23721b0e74c7a6 Mon Sep 17 00:00:00 2001
+From: Zefram <zefram@fysh.org>
+Date: Sun, 19 Nov 2017 09:15:53 +0000
+Subject: [PATCH] fix tainting of s/// with overloaded replacement
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+The substitution code was trying to track the taintedness of the
+replacement string itself, but it didn't account for the replacement
+being an untainted object with overloading that returns a tainted
+stringification.  It looked at the taintedness of the object value, not
+realising that taint could arise during the string concatenation per se.
+Change the taint checks to look at the actual TAINT_get flag after string
+concatenation.  This may falsely ascribe to the replacement taint that
+actually came from somewhere else, but the end result is the same anyway:
+there's no visible behaviour that distinguishes taint specifically from
+the replacement.  Also remove a related taint check that seems to be
+not needed at all.  Fixes [perl #115266].
+
+Petr Písař: Ported to 5.26.1.
+
+Signed-off-by: Petr Písař <ppisar@redhat.com>
+---
+ pp_ctl.c     |   4 +-
+ pp_hot.c     |   4 +-
+ t/op/taint.t | 428 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++--
+ 3 files changed, 422 insertions(+), 14 deletions(-)
+
+diff --git a/pp_ctl.c b/pp_ctl.c
+index f136f91..15c193b 100644
+--- a/pp_ctl.c
++++ b/pp_ctl.c
+@@ -219,9 +219,9 @@ PP(pp_substcont)
+ 	SvGETMAGIC(TOPs); /* possibly clear taint on $1 etc: #67962 */
+ 
+     	/* See "how taint works" above pp_subst() */
+-	if (SvTAINTED(TOPs))
+-	    cx->sb_rxtainted |= SUBST_TAINT_REPL;
+ 	sv_catsv_nomg(dstr, POPs);
++	if (UNLIKELY(TAINT_get))
++	    cx->sb_rxtainted |= SUBST_TAINT_REPL;
+ 	if (CxONCE(cx) || s < orig ||
+                 !CALLREGEXEC(rx, s, cx->sb_strend, orig,
+ 			     (s == m), cx->sb_targ, NULL,
+diff --git a/pp_hot.c b/pp_hot.c
+index f445fd9..5899413 100644
+--- a/pp_hot.c
++++ b/pp_hot.c
+@@ -3250,7 +3250,7 @@ PP(pp_subst)
+ 	    doutf8 = DO_UTF8(dstr);
+ 	}
+ 
+-	if (SvTAINTED(dstr))
++	if (UNLIKELY(TAINT_get))
+ 	    rxtainted |= SUBST_TAINT_REPL;
+     }
+     else {
+@@ -3421,8 +3421,6 @@ PP(pp_subst)
+ 	    }
+ 	    else {
+ 		sv_catsv(dstr, repl);
+-		if (UNLIKELY(SvTAINTED(repl)))
+-		    rxtainted |= SUBST_TAINT_REPL;
+ 	    }
+ 	    if (once)
+ 		break;
+diff --git a/t/op/taint.t b/t/op/taint.t
+index c13eaf6..be5eaa8 100644
+--- a/t/op/taint.t
++++ b/t/op/taint.t
+@@ -17,7 +17,7 @@ BEGIN {
+ use strict;
+ use Config;
+ 
+-plan tests => 828;
++plan tests => 1040;
+ 
+ $| = 1;
+ 
+@@ -83,6 +83,8 @@ EndOfCleanup
+ # Sources of taint:
+ #   The empty tainted value, for tainting strings
+ my $TAINT = substr($^X, 0, 0);
++#   A tainted non-empty string
++my $TAINTXYZ = "xyz".$TAINT;
+ #   A tainted zero, useful for tainting numbers
+ my $TAINT0;
+ {
+@@ -565,7 +567,7 @@ my $TEST = 'TEST';
+         is($one, 'abcd',   "$desc: \$1 value");
+     }
+ 
+-    $desc = "substitution with replacement tainted";
++    $desc = "substitution with partial replacement tainted";
+ 
+     $s = 'abcd';
+     $res = $s =~ s/(.+)/xyz$TAINT/;
+@@ -577,7 +579,7 @@ my $TEST = 'TEST';
+     is($res, 1,        "$desc: res value");
+     is($one, 'abcd',   "$desc: \$1 value");
+ 
+-    $desc = "substitution /g with replacement tainted";
++    $desc = "substitution /g with partial replacement tainted";
+ 
+     $s = 'abcd';
+     $res = $s =~ s/(.)/x$TAINT/g;
+@@ -589,7 +591,7 @@ my $TEST = 'TEST';
+     is($res, 4,        "$desc: res value");
+     is($one, 'd',      "$desc: \$1 value");
+ 
+-    $desc = "substitution /ge with replacement tainted";
++    $desc = "substitution /ge with partial replacement tainted";
+ 
+     $s = 'abc';
+     {
+@@ -618,7 +620,7 @@ my $TEST = 'TEST';
+     is($res, 3,        "$desc: res value");
+     is($one, 'c',      "$desc: \$1 value");
+ 
+-    $desc = "substitution /r with replacement tainted";
++    $desc = "substitution /r with partial replacement tainted";
+ 
+     $s = 'abcd';
+     $res = $s =~ s/(.+)/xyz$TAINT/r;
+@@ -630,6 +632,71 @@ my $TEST = 'TEST';
+     is($res, 'xyz',    "$desc: res value");
+     is($one, 'abcd',   "$desc: \$1 value");
+ 
++    $desc = "substitution with whole replacement tainted";
++
++    $s = 'abcd';
++    $res = $s =~ s/(.+)/$TAINTXYZ/;
++    $one = $1;
++    is_tainted($s,     "$desc: s tainted");
++    isnt_tainted($res, "$desc: res not tainted");
++    isnt_tainted($one, "$desc: \$1 not tainted");
++    is($s,  'xyz',     "$desc: s value");
++    is($res, 1,        "$desc: res value");
++    is($one, 'abcd',   "$desc: \$1 value");
++
++    $desc = "substitution /g with whole replacement tainted";
++
++    $s = 'abcd';
++    $res = $s =~ s/(.)/$TAINTXYZ/g;
++    $one = $1;
++    is_tainted($s,     "$desc: s tainted");
++    isnt_tainted($res, "$desc: res not tainted");
++    isnt_tainted($one, "$desc: \$1 not tainted");
++    is($s,  'xyz' x 4, "$desc: s value");
++    is($res, 4,        "$desc: res value");
++    is($one, 'd',      "$desc: \$1 value");
++
++    $desc = "substitution /ge with whole replacement tainted";
++
++    $s = 'abc';
++    {
++	my $i = 0;
++	my $j;
++	$res = $s =~ s{(.)}{
++		    $j = $i; # make sure code not tainted
++		    $one = $1;
++		    isnt_tainted($j, "$desc: code not tainted within /e");
++		    $i++;
++		    if ($i == 1) {
++			isnt_tainted($s,   "$desc: s not tainted loop 1");
++		    }
++		    else {
++			is_tainted($s,     "$desc: s tainted loop $i");
++		    }
++		    isnt_tainted($one, "$desc: \$1 not tainted within /e");
++		    $TAINTXYZ;
++		}ge;
++	$one = $1;
++    }
++    is_tainted($s,     "$desc: s tainted");
++    isnt_tainted($res, "$desc: res tainted");
++    isnt_tainted($one, "$desc: \$1 not tainted");
++    is($s,  'xyz' x 3, "$desc: s value");
++    is($res, 3,        "$desc: res value");
++    is($one, 'c',      "$desc: \$1 value");
++
++    $desc = "substitution /r with whole replacement tainted";
++
++    $s = 'abcd';
++    $res = $s =~ s/(.+)/$TAINTXYZ/r;
++    $one = $1;
++    isnt_tainted($s,   "$desc: s not tainted");
++    is_tainted($res,   "$desc: res tainted");
++    isnt_tainted($one, "$desc: \$1 not tainted");
++    is($s,   'abcd',   "$desc: s value");
++    is($res, 'xyz',    "$desc: res value");
++    is($one, 'abcd',   "$desc: \$1 value");
++
+     {
+ 	# now do them all again with "use re 'taint"
+ 
+@@ -955,7 +1022,7 @@ my $TEST = 'TEST';
+         is($one, 'abcd',   "$desc: \$1 value");
+     }
+ 
+-	$desc = "use re 'taint': substitution with replacement tainted";
++	$desc = "use re 'taint': substitution with partial replacement tainted";
+ 
+ 	$s = 'abcd';
+ 	$res = $s =~ s/(.+)/xyz$TAINT/;
+@@ -967,7 +1034,7 @@ my $TEST = 'TEST';
+ 	is($res, 1,        "$desc: res value");
+ 	is($one, 'abcd',   "$desc: \$1 value");
+ 
+-	$desc = "use re 'taint': substitution /g with replacement tainted";
++	$desc = "use re 'taint': substitution /g with partial replacement tainted";
+ 
+ 	$s = 'abcd';
+ 	$res = $s =~ s/(.)/x$TAINT/g;
+@@ -979,7 +1046,7 @@ my $TEST = 'TEST';
+ 	is($res, 4,        "$desc: res value");
+ 	is($one, 'd',      "$desc: \$1 value");
+ 
+-	$desc = "use re 'taint': substitution /ge with replacement tainted";
++	$desc = "use re 'taint': substitution /ge with partial replacement tainted";
+ 
+ 	$s = 'abc';
+ 	{
+@@ -1008,7 +1075,7 @@ my $TEST = 'TEST';
+ 	is($res, 3,        "$desc: res value");
+ 	is($one, 'c',      "$desc: \$1 value");
+ 
+-	$desc = "use re 'taint': substitution /r with replacement tainted";
++	$desc = "use re 'taint': substitution /r with partial replacement tainted";
+ 
+ 	$s = 'abcd';
+ 	$res = $s =~ s/(.+)/xyz$TAINT/r;
+@@ -1020,6 +1087,71 @@ my $TEST = 'TEST';
+ 	is($res, 'xyz',    "$desc: res value");
+ 	is($one, 'abcd',   "$desc: \$1 value");
+ 
++	$desc = "use re 'taint': substitution with whole replacement tainted";
++
++	$s = 'abcd';
++	$res = $s =~ s/(.+)/$TAINTXYZ/;
++	$one = $1;
++	is_tainted($s,     "$desc: s tainted");
++	isnt_tainted($res, "$desc: res not tainted");
++	isnt_tainted($one, "$desc: \$1 not tainted");
++	is($s,  'xyz',     "$desc: s value");
++	is($res, 1,        "$desc: res value");
++	is($one, 'abcd',   "$desc: \$1 value");
++
++	$desc = "use re 'taint': substitution /g with whole replacement tainted";
++
++	$s = 'abcd';
++	$res = $s =~ s/(.)/$TAINTXYZ/g;
++	$one = $1;
++	is_tainted($s,     "$desc: s tainted");
++	isnt_tainted($res, "$desc: res not tainted");
++	isnt_tainted($one, "$desc: \$1 not tainted");
++	is($s,  'xyz' x 4, "$desc: s value");
++	is($res, 4,        "$desc: res value");
++	is($one, 'd',      "$desc: \$1 value");
++
++	$desc = "use re 'taint': substitution /ge with whole replacement tainted";
++
++	$s = 'abc';
++	{
++	    my $i = 0;
++	    my $j;
++	    $res = $s =~ s{(.)}{
++			$j = $i; # make sure code not tainted
++			$one = $1;
++			isnt_tainted($j, "$desc: code not tainted within /e");
++			$i++;
++			if ($i == 1) {
++			    isnt_tainted($s,   "$desc: s not tainted loop 1");
++			}
++			else {
++			    is_tainted($s,     "$desc: s tainted loop $i");
++			}
++			    isnt_tainted($one, "$desc: \$1 not tainted");
++			$TAINTXYZ;
++		    }ge;
++	    $one = $1;
++	}
++	is_tainted($s,     "$desc: s tainted");
++	isnt_tainted($res, "$desc: res tainted");
++	isnt_tainted($one, "$desc: \$1 not tainted");
++	is($s,  'xyz' x 3, "$desc: s value");
++	is($res, 3,        "$desc: res value");
++	is($one, 'c',      "$desc: \$1 value");
++
++	$desc = "use re 'taint': substitution /r with whole replacement tainted";
++
++	$s = 'abcd';
++	$res = $s =~ s/(.+)/$TAINTXYZ/r;
++	$one = $1;
++	isnt_tainted($s,   "$desc: s not tainted");
++	is_tainted($res,   "$desc: res tainted");
++	isnt_tainted($one, "$desc: \$1 not tainted");
++	is($s,   'abcd',   "$desc: s value");
++	is($res, 'xyz',    "$desc: res value");
++	is($one, 'abcd',   "$desc: \$1 value");
++
+         # [perl #121854] match taintedness became sticky
+         # when one match has a taintess result, subseqent matches
+         # using the same pattern shouldn't necessarily be tainted
+@@ -2448,6 +2580,284 @@ is eval { eval $::x.1 }, 1, 'reset does not taint undef';
+     isnt_tainted $b, "list assign post tainted expression b";
+ }
+ 
++# taint passing through overloading
++package OvTaint {
++    sub new { bless({ t => $_[1] }, $_[0]) }
++    use overload '""' => sub { $_[0]->{t} ? "hi".$TAINT : "hello" };
++}
++my $ovclean = OvTaint->new(0);
++my $ovtaint = OvTaint->new(1);
++isnt_tainted("$ovclean", "overload preserves cleanliness");
++is_tainted("$ovtaint", "overload preserves taint");
++
++# substitutions with overloaded replacement
++{
++    my ($desc, $s, $res, $one);
++
++    $desc = "substitution with partial replacement overloaded and clean";
++    $s = 'abcd';
++    $res = $s =~ s/(.+)/xyz$ovclean/;
++    $one = $1;
++    isnt_tainted($s,   "$desc: s not tainted");
++    isnt_tainted($res, "$desc: res not tainted");
++    isnt_tainted($one, "$desc: \$1 not tainted");
++    is($s, 'xyzhello', "$desc: s value");
++    is($res, 1,        "$desc: res value");
++    is($one, 'abcd',   "$desc: \$1 value");
++
++    $desc = "substitution with partial replacement overloaded and tainted";
++    $s = 'abcd';
++    $res = $s =~ s/(.+)/xyz$ovtaint/;
++    $one = $1;
++    is_tainted($s,     "$desc: s tainted");
++    isnt_tainted($res, "$desc: res not tainted");
++    isnt_tainted($one, "$desc: \$1 not tainted");
++    is($s, 'xyzhi',    "$desc: s value");
++    is($res, 1,        "$desc: res value");
++    is($one, 'abcd',   "$desc: \$1 value");
++
++    $desc = "substitution with whole replacement overloaded and clean";
++    $s = 'abcd';
++    $res = $s =~ s/(.+)/$ovclean/;
++    $one = $1;
++    isnt_tainted($s,   "$desc: s not tainted");
++    isnt_tainted($res, "$desc: res not tainted");
++    isnt_tainted($one, "$desc: \$1 not tainted");
++    is($s, 'hello',    "$desc: s value");
++    is($res, 1,        "$desc: res value");
++    is($one, 'abcd',   "$desc: \$1 value");
++
++    $desc = "substitution with whole replacement overloaded and tainted";
++    $s = 'abcd';
++    $res = $s =~ s/(.+)/$ovtaint/;
++    $one = $1;
++    is_tainted($s,     "$desc: s tainted");
++    isnt_tainted($res, "$desc: res not tainted");
++    isnt_tainted($one, "$desc: \$1 not tainted");
++    is($s, 'hi',       "$desc: s value");
++    is($res, 1,        "$desc: res value");
++    is($one, 'abcd',   "$desc: \$1 value");
++
++    $desc = "substitution /e with partial replacement overloaded and clean";
++    $s = 'abcd';
++    $res = $s =~ s/(.+)/"xyz".$ovclean/e;
++    $one = $1;
++    isnt_tainted($s,   "$desc: s not tainted");
++    isnt_tainted($res, "$desc: res not tainted");
++    isnt_tainted($one, "$desc: \$1 not tainted");
++    is($s, 'xyzhello', "$desc: s value");
++    is($res, 1,        "$desc: res value");
++    is($one, 'abcd',   "$desc: \$1 value");
++
++    $desc = "substitution /e with partial replacement overloaded and tainted";
++    $s = 'abcd';
++    $res = $s =~ s/(.+)/"xyz".$ovtaint/e;
++    $one = $1;
++    is_tainted($s,     "$desc: s tainted");
++    isnt_tainted($res, "$desc: res not tainted");
++    isnt_tainted($one, "$desc: \$1 not tainted");
++    is($s, 'xyzhi',    "$desc: s value");
++    is($res, 1,        "$desc: res value");
++    is($one, 'abcd',   "$desc: \$1 value");
++
++    $desc = "substitution /e with whole replacement overloaded and clean";
++    $s = 'abcd';
++    $res = $s =~ s/(.+)/$ovclean/e;
++    $one = $1;
++    isnt_tainted($s,   "$desc: s not tainted");
++    isnt_tainted($res, "$desc: res not tainted");
++    isnt_tainted($one, "$desc: \$1 not tainted");
++    is($s, 'hello',    "$desc: s value");
++    is($res, 1,        "$desc: res value");
++    is($one, 'abcd',   "$desc: \$1 value");
++
++    $desc = "substitution /e with whole replacement overloaded and tainted";
++    $s = 'abcd';
++    $res = $s =~ s/(.+)/$ovtaint/e;
++    $one = $1;
++    is_tainted($s,     "$desc: s tainted");
++    isnt_tainted($res, "$desc: res not tainted");
++    isnt_tainted($one, "$desc: \$1 not tainted");
++    is($s, 'hi',       "$desc: s value");
++    is($res, 1,        "$desc: res value");
++    is($one, 'abcd',   "$desc: \$1 value");
++
++    $desc = "substitution /e with extra code and partial replacement overloaded and clean";
++    $s = 'abcd';
++    $res = $s =~ s/(.+)/(my $z++), "xyz".$ovclean/e;
++    $one = $1;
++    isnt_tainted($s,   "$desc: s not tainted");
++    isnt_tainted($res, "$desc: res not tainted");
++    isnt_tainted($one, "$desc: \$1 not tainted");
++    is($s, 'xyzhello', "$desc: s value");
++    is($res, 1,        "$desc: res value");
++    is($one, 'abcd',   "$desc: \$1 value");
++
++    $desc = "substitution /e with extra code and partial replacement overloaded and tainted";
++    $s = 'abcd';
++    $res = $s =~ s/(.+)/(my $z++), "xyz".$ovtaint/e;
++    $one = $1;
++    is_tainted($s,     "$desc: s tainted");
++    isnt_tainted($res, "$desc: res not tainted");
++    isnt_tainted($one, "$desc: \$1 not tainted");
++    is($s, 'xyzhi',    "$desc: s value");
++    is($res, 1,        "$desc: res value");
++    is($one, 'abcd',   "$desc: \$1 value");
++
++    $desc = "substitution /e with extra code and whole replacement overloaded and clean";
++    $s = 'abcd';
++    $res = $s =~ s/(.+)/(my $z++), $ovclean/e;
++    $one = $1;
++    isnt_tainted($s,   "$desc: s not tainted");
++    isnt_tainted($res, "$desc: res not tainted");
++    isnt_tainted($one, "$desc: \$1 not tainted");
++    is($s, 'hello',    "$desc: s value");
++    is($res, 1,        "$desc: res value");
++    is($one, 'abcd',   "$desc: \$1 value");
++
++    $desc = "substitution /e with extra code and whole replacement overloaded and tainted";
++    $s = 'abcd';
++    $res = $s =~ s/(.+)/(my $z++), $ovtaint/e;
++    $one = $1;
++    is_tainted($s,     "$desc: s tainted");
++    isnt_tainted($res, "$desc: res not tainted");
++    isnt_tainted($one, "$desc: \$1 not tainted");
++    is($s, 'hi',       "$desc: s value");
++    is($res, 1,        "$desc: res value");
++    is($one, 'abcd',   "$desc: \$1 value");
++
++    $desc = "substitution /r with partial replacement overloaded and clean";
++    $s = 'abcd';
++    $res = $s =~ s/(.+)/xyz$ovclean/r;
++    $one = $1;
++    isnt_tainted($s,   "$desc: s not tainted");
++    isnt_tainted($res, "$desc: res not tainted");
++    isnt_tainted($one, "$desc: \$1 not tainted");
++    is($s, 'abcd',     "$desc: s value");
++    is($res, 'xyzhello', "$desc: res value");
++    is($one, 'abcd',   "$desc: \$1 value");
++
++    $desc = "substitution /r with partial replacement overloaded and tainted";
++    $s = 'abcd';
++    $res = $s =~ s/(.+)/xyz$ovtaint/r;
++    $one = $1;
++    isnt_tainted($s,   "$desc: s not tainted");
++    is_tainted($res,   "$desc: res tainted");
++    isnt_tainted($one, "$desc: \$1 not tainted");
++    is($s, 'abcd',     "$desc: s value");
++    is($res, 'xyzhi',  "$desc: res value");
++    is($one, 'abcd',   "$desc: \$1 value");
++
++    $desc = "substitution /r with whole replacement overloaded and clean";
++    $s = 'abcd';
++    $res = $s =~ s/(.+)/$ovclean/r;
++    $one = $1;
++    isnt_tainted($s,   "$desc: s not tainted");
++    isnt_tainted($res, "$desc: res not tainted");
++    isnt_tainted($one, "$desc: \$1 not tainted");
++    is($s, 'abcd',     "$desc: s value");
++    is($res, 'hello',  "$desc: res value");
++    is($one, 'abcd',   "$desc: \$1 value");
++
++    $desc = "substitution /r with whole replacement overloaded and tainted";
++    $s = 'abcd';
++    $res = $s =~ s/(.+)/$ovtaint/r;
++    $one = $1;
++    isnt_tainted($s,   "$desc: s not tainted");
++    is_tainted($res,   "$desc: res tainted");
++    isnt_tainted($one, "$desc: \$1 not tainted");
++    is($s, 'abcd',     "$desc: s value");
++    is($res, 'hi',     "$desc: res value");
++    is($one, 'abcd',   "$desc: \$1 value");
++
++    $desc = "substitution /g with partial replacement overloaded and clean";
++    $s = 'abcd';
++    $res = $s =~ s/(.)/x$ovclean/g;
++    $one = $1;
++    isnt_tainted($s,   "$desc: s not tainted");
++    isnt_tainted($res, "$desc: res not tainted");
++    isnt_tainted($one, "$desc: \$1 not tainted");
++    is($s, 'xhello' x 4, "$desc: s value");
++    is($res, 4,        "$desc: res value");
++    is($one, 'd',      "$desc: \$1 value");
++
++    $desc = "substitution /g with partial replacement overloaded and tainted";
++    $s = 'abcd';
++    $res = $s =~ s/(.)/x$ovtaint/g;
++    $one = $1;
++    is_tainted($s,     "$desc: s tainted");
++    isnt_tainted($res, "$desc: res not tainted");
++    isnt_tainted($one, "$desc: \$1 not tainted");
++    is($s, 'xhi' x 4,  "$desc: s value");
++    is($res, 4,        "$desc: res value");
++    is($one, 'd',      "$desc: \$1 value");
++
++    $desc = "substitution /g with whole replacement overloaded and clean";
++    $s = 'abcd';
++    $res = $s =~ s/(.)/$ovclean/g;
++    $one = $1;
++    isnt_tainted($s,   "$desc: s not tainted");
++    isnt_tainted($res, "$desc: res not tainted");
++    isnt_tainted($one, "$desc: \$1 not tainted");
++    is($s, 'hello' x 4, "$desc: s value");
++    is($res, 4,        "$desc: res value");
++    is($one, 'd',      "$desc: \$1 value");
++
++    $desc = "substitution /g with whole replacement overloaded and tainted";
++    $s = 'abcd';
++    $res = $s =~ s/(.)/$ovtaint/g;
++    $one = $1;
++    is_tainted($s,     "$desc: s tainted");
++    isnt_tainted($res, "$desc: res not tainted");
++    isnt_tainted($one, "$desc: \$1 not tainted");
++    is($s, 'hi' x 4,   "$desc: s value");
++    is($res, 4,        "$desc: res value");
++    is($one, 'd',      "$desc: \$1 value");
++
++    $desc = "substitution /ge with partial replacement overloaded and clean";
++    $s = 'abcd';
++    $res = $s =~ s/(.)/"x".$ovclean/ge;
++    $one = $1;
++    isnt_tainted($s,   "$desc: s not tainted");
++    isnt_tainted($res, "$desc: res not tainted");
++    isnt_tainted($one, "$desc: \$1 not tainted");
++    is($s, 'xhello' x 4, "$desc: s value");
++    is($res, 4,        "$desc: res value");
++    is($one, 'd',      "$desc: \$1 value");
++
++    $desc = "substitution /ge with partial replacement overloaded and tainted";
++    $s = 'abcd';
++    $res = $s =~ s/(.)/"x".$ovtaint/ge;
++    $one = $1;
++    is_tainted($s,     "$desc: s tainted");
++    isnt_tainted($res, "$desc: res not tainted");
++    isnt_tainted($one, "$desc: \$1 not tainted");
++    is($s, 'xhi' x 4,  "$desc: s value");
++    is($res, 4,        "$desc: res value");
++    is($one, 'd',      "$desc: \$1 value");
++
++    $desc = "substitution /ge with whole replacement overloaded and clean";
++    $s = 'abcd';
++    $res = $s =~ s/(.)/$ovclean/ge;
++    $one = $1;
++    isnt_tainted($s,   "$desc: s not tainted");
++    isnt_tainted($res, "$desc: res not tainted");
++    isnt_tainted($one, "$desc: \$1 not tainted");
++    is($s, 'hello' x 4, "$desc: s value");
++    is($res, 4,        "$desc: res value");
++    is($one, 'd',      "$desc: \$1 value");
++
++    $desc = "substitution /ge with whole replacement overloaded and tainted";
++    $s = 'abcd';
++    $res = $s =~ s/(.)/$ovtaint/ge;
++    $one = $1;
++    is_tainted($s,     "$desc: s tainted");
++    isnt_tainted($res, "$desc: res not tainted");
++    isnt_tainted($one, "$desc: \$1 not tainted");
++    is($s, 'hi' x 4,   "$desc: s value");
++    is($res, 4,        "$desc: res value");
++    is($one, 'd',      "$desc: \$1 value");
++}
+ 
+ # This may bomb out with the alarm signal so keep it last
+ SKIP: {
+-- 
+2.13.6
+
diff --git a/SOURCES/perl-5.27.5-perl-132442-Fix-stack-with-do-my-sub-l-1.patch b/SOURCES/perl-5.27.5-perl-132442-Fix-stack-with-do-my-sub-l-1.patch
new file mode 100644
index 0000000..9d33d9c
--- /dev/null
+++ b/SOURCES/perl-5.27.5-perl-132442-Fix-stack-with-do-my-sub-l-1.patch
@@ -0,0 +1,105 @@
+From 695d6585affc8f13711f013329fb4810ab89d833 Mon Sep 17 00:00:00 2001
+From: Father Chrysostomos <sprout@cpan.org>
+Date: Tue, 14 Nov 2017 18:55:55 -0800
+Subject: [PATCH] [perl #132442] Fix stack with do {my sub l; 1}
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+A block in perl usually compiles to a leave op with an enter inside
+it, followed by the statements:
+
+   leave
+     enter
+     nextstate
+     ... expr ...
+     nextstate
+     ... expr ...
+
+If a block contains only one statement, and that statement is suffic-
+iently innocuous, then the enter/leave pair to create the scope at run
+time get skipped, and instead we have a simple scope op which is not
+even executed:
+
+   scope
+     ex-nextstate
+     ... expr ...
+
+The nextstate in this case also gets nulled.
+
+In the case of do { my sub l; 1 } we were getting a variation of the
+latter, that looked like this:
+
+   scope
+     introcv
+     clonecv
+     nextstate
+     ... expr ...
+
+The problem here is that nextstate resets the stack, even though a new
+scope has not been pushed, so we end up with all existing stack items
+from the *outer* scope getting clobbered.
+
+One can have fun with this and erase everything pushed on to the stack
+so far in a given statement:
+
+$ ./perl -le 'print join "-", 1..10, do {my sub l; ","}, 11..20'
+11,12,13,14,15,16,17,18,19,20
+
+Here I replaced the first argument to join() from within the do{}
+block, after having cleared the stack.
+
+Why was the op tree was getting muddled up like this?  The ‘my sub’
+declaration does not immediately add any ops to the op tree; those ops
+get added when the current scope finishing compiling, since those ops
+must be inserted at the beginning of the block.
+
+I have not fully looked into the order that things happen, and why the
+nextstate op does not get nulled; but it did not matter, because of
+the simple fix: Treat lexical sub declarations as ‘not innocuous’ by
+setting the HINT_BLOCK_SCOPE flag when a lexical sub is declared.
+Thus, we end up with an enter/leave pair, which creates a
+proper scope.
+
+Signed-off-by: Petr Písař <ppisar@redhat.com>
+---
+ op.c          | 2 ++
+ t/op/lexsub.t | 5 ++++-
+ 2 files changed, 6 insertions(+), 1 deletion(-)
+
+diff --git a/op.c b/op.c
+index 8fa5aad876..c617ad2a00 100644
+--- a/op.c
++++ b/op.c
+@@ -9243,6 +9243,8 @@ Perl_newMYSUB(pTHX_ I32 floor, OP *o, OP *proto, OP *attrs, OP *block)
+ 
+     PERL_ARGS_ASSERT_NEWMYSUB;
+ 
++    PL_hints |= HINT_BLOCK_SCOPE;
++
+     /* Find the pad slot for storing the new sub.
+        We cannot use PL_comppad, as it is the pad owned by the new sub.  We
+        need to look in CvOUTSIDE and find the pad belonging to the enclos-
+diff --git a/t/op/lexsub.t b/t/op/lexsub.t
+index 3fa17acdda..f085cd97e8 100644
+--- a/t/op/lexsub.t
++++ b/t/op/lexsub.t
+@@ -7,7 +7,7 @@ BEGIN {
+     *bar::is = *is;
+     *bar::like = *like;
+ }
+-plan 149;
++plan 150;
+ 
+ # -------------------- our -------------------- #
+ 
+@@ -957,3 +957,6 @@ like runperl(
+ {
+   my sub h; sub{my $x; sub{h}}
+ }
++
++is join("-", qw(aa bb), do { my sub lleexx; 123 }, qw(cc dd)),
++  "aa-bb-123-cc-dd", 'do { my sub...} in a list [perl #132442]';
+-- 
+2.13.6
+
diff --git a/SOURCES/perl-5.27.7-Reenable-numeric-first-argument-of-system-on-VMS.patch b/SOURCES/perl-5.27.7-Reenable-numeric-first-argument-of-system-on-VMS.patch
new file mode 100644
index 0000000..74cb681
--- /dev/null
+++ b/SOURCES/perl-5.27.7-Reenable-numeric-first-argument-of-system-on-VMS.patch
@@ -0,0 +1,34 @@
+From 8e7c2faafb74d3b07e8a5818608dfe065e361604 Mon Sep 17 00:00:00 2001
+From: "Craig A. Berry" <craigberry@mac.com>
+Date: Mon, 1 Jan 2018 10:10:33 -0600
+Subject: [PATCH] Reenable numeric first argument of system() on VMS.
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+This was broken in 64def2aeaeb63f92dadc6dfa334, and fixed for Win32
+only in 8fe3452cc6ac7af8c08.  But VMS also uses a numeric first
+argument to system() as a flag indicating spawn without waiting for
+completion.
+
+Signed-off-by: Petr Písař <ppisar@redhat.com>
+---
+ pp_sys.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/pp_sys.c b/pp_sys.c
+index 0c9147bc4e..5154b9baa8 100644
+--- a/pp_sys.c
++++ b/pp_sys.c
+@@ -4375,7 +4375,7 @@ PP(pp_system)
+ 	STRLEN len;
+ 	char *pv;
+ 	SvGETMAGIC(origsv);
+-#ifdef WIN32
++#if defined(WIN32) || defined(__VMS)
+ 	/*
+ 	 * Because of a nasty platform-specific variation on the meaning
+ 	 * of arguments to this op, we must preserve numeric arguments
+-- 
+2.13.6
+
diff --git a/SOURCES/perl-5.27.7-preserve-numericness-of-system-args-on-Win32.patch b/SOURCES/perl-5.27.7-preserve-numericness-of-system-args-on-Win32.patch
new file mode 100644
index 0000000..ab61f96
--- /dev/null
+++ b/SOURCES/perl-5.27.7-preserve-numericness-of-system-args-on-Win32.patch
@@ -0,0 +1,73 @@
+From 8fe3452cc6ac7af8c08c2044cd3757018a9c8887 Mon Sep 17 00:00:00 2001
+From: Zefram <zefram@fysh.org>
+Date: Fri, 22 Dec 2017 05:32:41 +0000
+Subject: [PATCH] preserve numericness of system() args on Win32
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+On Windows there's a nasty variation in the meaning of arguments
+to Perl's system(), in which a numeric first argument isn't used as
+part of the command to run, but instead selects between two different
+operations to perform with the command (whether to wait for the command
+to complete or not).  Therefore the reduction of argument scalars to
+their operative values in the parent process, which was added in commit
+64def2aeaeb63f92dadc6dfa33486c1d7b311963, needs to preserve numericness
+of arguments on Windows.  Fixes [perl #132633].
+
+Signed-off-by: Petr Písař <ppisar@redhat.com>
+---
+ pp_sys.c | 35 +++++++++++++++++++++++++++++++----
+ 1 file changed, 31 insertions(+), 4 deletions(-)
+
+diff --git a/pp_sys.c b/pp_sys.c
+index beb60da4c6..0649794104 100644
+--- a/pp_sys.c
++++ b/pp_sys.c
+@@ -4393,12 +4393,39 @@ PP(pp_system)
+ # endif
+ 
+     while (++MARK <= SP) {
+-	SV *origsv = *MARK;
++	SV *origsv = *MARK, *copysv;
+ 	STRLEN len;
+ 	char *pv;
+-	pv = SvPV(origsv, len);
+-	*MARK = newSVpvn_flags(pv, len,
+-		    (SvFLAGS(origsv) & SVf_UTF8) | SVs_TEMP);
++	SvGETMAGIC(origsv);
++#ifdef WIN32
++	/*
++	 * Because of a nasty platform-specific variation on the meaning
++	 * of arguments to this op, we must preserve numeric arguments
++	 * as numeric, not just retain the string value.
++	 */
++	if (SvNIOK(origsv) || SvNIOKp(origsv)) {
++	    copysv = newSV_type(SVt_PVNV);
++	    sv_2mortal(copysv);
++	    if (SvPOK(origsv) || SvPOKp(origsv)) {
++		pv = SvPV_nomg(origsv, len);
++		sv_setpvn(copysv, pv, len);
++		SvPOK_off(copysv);
++	    }
++	    if (SvIOK(origsv) || SvIOKp(origsv))
++		SvIV_set(copysv, SvIVX(origsv));
++	    if (SvNOK(origsv) || SvNOKp(origsv))
++		SvNV_set(copysv, SvNVX(origsv));
++	    SvFLAGS(copysv) |= SvFLAGS(origsv) &
++		(SVf_IOK|SVf_NOK|SVf_POK|SVp_IOK|SVp_NOK|SVp_POK|
++		    SVf_UTF8|SVf_IVisUV);
++	} else
++#endif
++	{
++	    pv = SvPV_nomg(origsv, len);
++	    copysv = newSVpvn_flags(pv, len,
++			(SvFLAGS(origsv) & SVf_UTF8) | SVs_TEMP);
++	}
++	*MARK = copysv;
+     }
+     MARK = ORIGMARK;
+ 
+-- 
+2.13.6
+
diff --git a/SOURCES/perl-5.27.8-don-t-clobber-file-bytes-in-encoding-layer.patch b/SOURCES/perl-5.27.8-don-t-clobber-file-bytes-in-encoding-layer.patch
new file mode 100644
index 0000000..ca9ef63
--- /dev/null
+++ b/SOURCES/perl-5.27.8-don-t-clobber-file-bytes-in-encoding-layer.patch
@@ -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
+
diff --git a/SOURCES/perl-5.27.8-hints-linux-Add-lphtread-to-lddlflags.patch b/SOURCES/perl-5.27.8-hints-linux-Add-lphtread-to-lddlflags.patch
new file mode 100644
index 0000000..f68569f
--- /dev/null
+++ b/SOURCES/perl-5.27.8-hints-linux-Add-lphtread-to-lddlflags.patch
@@ -0,0 +1,61 @@
+From f6bc8fb3d26892ba1a84ba2df76beedd51998dd2 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= <ppisar@redhat.com>
+Date: Mon, 29 Jan 2018 16:34:17 +0100
+Subject: [PATCH] hints/linux: Add -lphtread to lddlflags
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Passing -z defs to linker flags causes perl to fail to build if threads are
+enabled:
+
+gcc  -shared -Wl,-z,relro -Wl,-z,defs -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -L/usr/local/lib -fstack-protector-strong Bzip2.o  -o ../../lib/auto/Compress/Raw/Bzip2/Bzip2.so  \
+   -L/usr/lib64 -lbz2 "-L../.." -lperl   \
+
+Bzip2.o: In function `deRef':
+/builddir/build/BUILD/perl-5.26.1/cpan/Compress-Raw-Bzip2/Bzip2.xs:256: undefined reference to `pthread_getspecific'
+
+The reason is Bzip2.xs calls dTHX macro included from thread.h via perl.h that
+expands to pthread_getspecific() function call that is defined in pthread
+library. But the pthread library is not explicitly linked to Bzip.so (see the
+gcc command). This is exactly what -z defs linker flag enforces.
+
+Underlinking ELFs can be dangerous because in case of versioned
+symbols it can cause run-time binding to an improper version symbol or
+even to an symbold from different library.
+
+This patch fixes hints for Linux by adding -lpthreads to lddlflags. It
+also adds -shared there because Configure.sh adds it only hints return
+lddlflags empty.
+
+<https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/message/3RHZEHLRUHJFF2XGHI5RB6YPDNLDR4HG/>
+
+Signed-off-by: Petr Písař <ppisar@redhat.com>
+---
+ hints/linux.sh | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/hints/linux.sh b/hints/linux.sh
+index 3f38ea07f1..9ec3bc02ef 100644
+--- a/hints/linux.sh
++++ b/hints/linux.sh
+@@ -353,12 +353,16 @@ if [ -f /etc/synoinfo.conf -a -d /usr/syno ]; then
+     echo "$libswanted" >&4
+ fi
+ 
++# Flags needed to produce shared libraries.
++lddlflags='-shared'
++
+ # This script UU/usethreads.cbu will get 'called-back' by Configure
+ # after it has prompted the user for whether to use threads.
+ cat > UU/usethreads.cbu <<'EOCBU'
+ case "$usethreads" in
+ $define|true|[yY]*)
+         ccflags="-D_REENTRANT -D_GNU_SOURCE $ccflags"
++        lddlflags="-lpthread $lddlflags"
+         if echo $libswanted | grep -v pthread >/dev/null
+         then
+             set `echo X "$libswanted "| sed -e 's/ c / pthread c /'`
+-- 
+2.13.6
+
diff --git a/SOURCES/perl-5.27.9-fix-line-numbers-in-multi-line-s.patch b/SOURCES/perl-5.27.9-fix-line-numbers-in-multi-line-s.patch
new file mode 100644
index 0000000..80be1f8
--- /dev/null
+++ b/SOURCES/perl-5.27.9-fix-line-numbers-in-multi-line-s.patch
@@ -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
+
diff --git a/SOURCES/perl-5.28.2-Only-pass-2-digit-years-to-tests-when-testing-2-digi.patch b/SOURCES/perl-5.28.2-Only-pass-2-digit-years-to-tests-when-testing-2-digi.patch
new file mode 100644
index 0000000..4fb8553
--- /dev/null
+++ b/SOURCES/perl-5.28.2-Only-pass-2-digit-years-to-tests-when-testing-2-digi.patch
@@ -0,0 +1,113 @@
+From 381d51822fccaa333cbd0ab9fca8b69f650c05f9 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= <ppisar@redhat.com>
+Date: Fri, 14 Feb 2020 14:10:10 +0100
+Subject: [PATCH] Only pass 2-digit years to tests when testing 2-digit year
+ handling
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+This will start breaking in 2020 if done without working around the whole
+breakpoint thing. See https://rt.cpan.org/Ticket/Display.html?id=124787.
+
+Ported from Time-Local 63265fd81c7f6177bf28dfe0d1ada9cb897de566 commit
+by Dave Rolsky <autarch@urth.org> to perl 5.28.2.
+
+Signed-off-by: Petr Písař <ppisar@redhat.com>
+---
+ cpan/Time-Local/t/Local.t | 40 +++++++++++++++++++++++++++++----------
+ 1 file changed, 30 insertions(+), 10 deletions(-)
+
+diff --git a/cpan/Time-Local/t/Local.t b/cpan/Time-Local/t/Local.t
+index 6341396..701d22d 100644
+--- a/cpan/Time-Local/t/Local.t
++++ b/cpan/Time-Local/t/Local.t
+@@ -85,19 +85,17 @@ my $epoch_is_64
+ 
+ for ( @time, @neg_time ) {
+     my ( $year, $mon, $mday, $hour, $min, $sec ) = @$_;
+-    $year -= 1900;
+     $mon--;
+ 
+ SKIP: {
+         skip '1970 test on VOS fails.', 12
+-            if $^O eq 'vos' && $year == 70;
++            if $^O eq 'vos' && $year == 1970;
+         skip 'this platform does not support negative epochs.', 12
+-            if $year < 70 && !$neg_epoch_ok;
++            if $year < 1970 && !$neg_epoch_ok;
+ 
+         # Test timelocal()
+         {
+-            my $year_in = $year < 70 ? $year + 1900 : $year;
+-            my $time = timelocal( $sec, $min, $hour, $mday, $mon, $year_in );
++            my $time = timelocal( $sec, $min, $hour, $mday, $mon, $year );
+ 
+             my ( $s, $m, $h, $D, $M, $Y ) = localtime($time);
+ 
+@@ -106,13 +104,12 @@ SKIP: {
+             is( $h, $hour,     "timelocal hour for @$_" );
+             is( $D, $mday,     "timelocal day for @$_" );
+             is( $M, $mon,      "timelocal month for @$_" );
+-            is( $Y, $year,     "timelocal year for @$_" );
++            is( $Y, $year - 1900,     "timelocal year for @$_" );
+         }
+ 
+         # Test timegm()
+         {
+-            my $year_in = $year < 70 ? $year + 1900 : $year;
+-            my $time = timegm( $sec, $min, $hour, $mday, $mon, $year_in );
++            my $time = timegm( $sec, $min, $hour, $mday, $mon, $year );
+ 
+             my ( $s, $m, $h, $D, $M, $Y ) = gmtime($time);
+ 
+@@ -121,14 +118,13 @@ SKIP: {
+             is( $h, $hour,     "timegm hour for @$_" );
+             is( $D, $mday,     "timegm day for @$_" );
+             is( $M, $mon,      "timegm month for @$_" );
+-            is( $Y, $year,     "timegm year for @$_" );
++            is( $Y, $year - 1900,     "timegm year for @$_" );
+         }
+     }
+ }
+ 
+ for (@bad_time) {
+     my ( $year, $mon, $mday, $hour, $min, $sec ) = @$_;
+-    $year -= 1900;
+     $mon--;
+ 
+     eval { timegm( $sec, $min, $hour, $mday, $mon, $year ) };
+@@ -229,6 +225,30 @@ SKIP:
+     );
+ }
+ 
++# 2-digit years
++{
++	my $current_year = ( localtime() )[5];
++	my $pre_break    = ( $current_year + 49 ) - 100;
++	my $break        = ( $current_year + 50 ) - 100;
++	my $post_break   = ( $current_year + 51 ) - 100;
++
++	is(
++		( ( localtime( timelocal( 0, 0, 0, 1, 1, $pre_break ) ) )[5] ),
++		$pre_break + 100,
++		"year $pre_break is treated as next century",
++	);
++	is(
++		( ( localtime( timelocal( 0, 0, 0, 1, 1, $break ) ) )[5] ),
++		$break + 100,
++		"year $break is treated as next century",
++	);
++	is(
++		( ( localtime( timelocal( 0, 0, 0, 1, 1, $post_break ) ) )[5] ),
++		$post_break,
++		"year $post_break is treated as current century",
++	);
++}
++
+ SKIP:
+ {
+     skip 'These tests only run for the package maintainer.', 8
+-- 
+2.21.1
+
diff --git a/SOURCES/perl-5.29.0-Remove-ext-GDBM_File-t-fatal.t.patch b/SOURCES/perl-5.29.0-Remove-ext-GDBM_File-t-fatal.t.patch
new file mode 100644
index 0000000..bc4ac01
--- /dev/null
+++ b/SOURCES/perl-5.29.0-Remove-ext-GDBM_File-t-fatal.t.patch
@@ -0,0 +1,94 @@
+From 892e8b006aa99ac2c880cdc2a81fd16f06c1a0f3 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= <ppisar@redhat.com>
+Date: Mon, 9 Jul 2018 16:18:36 +0200
+Subject: [PATCH] Remove ext/GDBM_File/t/fatal.t
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+gdbm-1.15 defaults to a memory-mapped I/O and does not report any I/O
+errors on store and close operations. Thus ext/GDBM_File/t/fatal.t
+test that expects these fatal error reports fails. Because there is
+no other way to provoke a fatal error in gdbm-1.15 this patch
+removes the test. Future gdbm version promisses reporting a regular
+error on closing a database.
+
+RT#133295
+
+Signed-off-by: Petr Písař <ppisar@redhat.com>
+---
+ MANIFEST                |  1 -
+ ext/GDBM_File/t/fatal.t | 49 -------------------------------------------------
+ 2 files changed, 50 deletions(-)
+ delete mode 100644 ext/GDBM_File/t/fatal.t
+
+diff --git a/MANIFEST b/MANIFEST
+index 95fa539095..b07fed1f54 100644
+--- a/MANIFEST
++++ b/MANIFEST
+@@ -4100,7 +4100,6 @@ ext/GDBM_File/GDBM_File.pm	GDBM extension Perl module
+ ext/GDBM_File/GDBM_File.xs	GDBM extension external subroutines
+ ext/GDBM_File/hints/sco.pl	Hint for GDBM_File for named architecture
+ ext/GDBM_File/Makefile.PL	GDBM extension makefile writer
+-ext/GDBM_File/t/fatal.t		Test the fatal_func argument to gdbm_open
+ ext/GDBM_File/t/gdbm.t		See if GDBM_File works
+ ext/GDBM_File/typemap		GDBM extension interface types
+ ext/Hash-Util/Changes		Change history of Hash::Util
+diff --git a/ext/GDBM_File/t/fatal.t b/ext/GDBM_File/t/fatal.t
+deleted file mode 100644
+index 0e426d4dbc..0000000000
+--- a/ext/GDBM_File/t/fatal.t
++++ /dev/null
+@@ -1,49 +0,0 @@
+-#!./perl -w
+-use strict;
+-
+-use Test::More;
+-use Config;
+-
+-BEGIN {
+-    plan(skip_all => "GDBM_File was not built")
+-	unless $Config{extensions} =~ /\bGDBM_File\b/;
+-
+-    # https://rt.perl.org/Public/Bug/Display.html?id=117967
+-    plan(skip_all => "GDBM_File is flaky in $^O")
+-        if $^O =~ /darwin/;
+-
+-    plan(tests => 8);
+-    use_ok('GDBM_File');
+-}
+-
+-unlink <Op_dbmx*>;
+-
+-open my $fh, '<', $^X or die "Can't open $^X: $!";
+-my $fileno = fileno $fh;
+-isnt($fileno, undef, "Can find next available file descriptor");
+-close $fh or die $!;
+-
+-is((open $fh, "<&=$fileno"), undef,
+-   "Check that we cannot open fileno $fileno. \$! is $!");
+-
+-umask(0);
+-my %h;
+-isa_ok(tie(%h, 'GDBM_File', 'Op_dbmx', GDBM_WRCREAT, 0640), 'GDBM_File');
+-
+-isnt((open $fh, "<&=$fileno"), undef, "dup fileno $fileno")
+-    or diag("\$! = $!");
+-isnt(close $fh, undef,
+-     "close fileno $fileno, out from underneath the GDBM_File");
+-is(eval {
+-    $h{Perl} = 'Rules';
+-    untie %h;
+-    1;
+-}, undef, 'Trapped error when attempting to write to knobbled GDBM_File');
+-
+-# Observed "File write error" and "lseek error" from two different systems.
+-# So there might be more variants. Important part was that we trapped the error
+-# via croak.
+-like($@, qr/ at .*\bfatal\.t line \d+\.\n\z/,
+-     'expected error message from GDBM_File');
+-
+-unlink <Op_dbmx*>;
+-- 
+2.14.4
+
diff --git a/SOURCES/perl-5.29.0-regexec.c-Call-macro-with-correct-args.patch b/SOURCES/perl-5.29.0-regexec.c-Call-macro-with-correct-args.patch
new file mode 100644
index 0000000..cdecb18
--- /dev/null
+++ b/SOURCES/perl-5.29.0-regexec.c-Call-macro-with-correct-args.patch
@@ -0,0 +1,32 @@
+From e1a2878a55b1a7f11f19b384c4ea5235c29866b2 Mon Sep 17 00:00:00 2001
+From: Karl Williamson <khw@cpan.org>
+Date: Mon, 11 Jun 2018 13:28:53 -0600
+Subject: [PATCH] regexec.c: Call macro with correct args.
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+The second argument to this macro is a pointer to the end, as opposed to
+a length.
+
+Signed-off-by: Petr Písař <ppisar@redhat.com>
+---
+ regexec.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/regexec.c b/regexec.c
+index 7ed8f4fabc..ba52ae97c7 100644
+--- a/regexec.c
++++ b/regexec.c
+@@ -1808,7 +1808,7 @@ STMT_START {
+     case trie_flu8:                                                                 \
+         _CHECK_AND_WARN_PROBLEMATIC_LOCALE;                                         \
+         if (UTF8_IS_ABOVE_LATIN1(*uc)) {                                            \
+-            _CHECK_AND_OUTPUT_WIDE_LOCALE_UTF8_MSG(uc, uc_end - uc);                \
++            _CHECK_AND_OUTPUT_WIDE_LOCALE_UTF8_MSG(uc, uc_end);                     \
+         }                                                                           \
+         goto do_trie_utf8_fold;                                                     \
+     case trie_utf8_exactfa_fold:                                                    \
+-- 
+2.14.4
+
diff --git a/SOURCES/perl-5.8.0-libdir64.patch b/SOURCES/perl-5.8.0-libdir64.patch
new file mode 100644
index 0000000..0ab67a0
--- /dev/null
+++ b/SOURCES/perl-5.8.0-libdir64.patch
@@ -0,0 +1,46 @@
+--- perl-5.8.0/Configure.orig	2002-09-09 11:31:19.000000000 -0400
++++ perl-5.8.0/Configure	2002-09-09 11:40:37.000000000 -0400
+@@ -6458,8 +6458,8 @@
+ : Reproduce behavior of 5.005 and earlier, maybe drop that in 5.7.
+ case "$installstyle" in
+ '')	case "$prefix" in
+-		*perl*) dflt='lib';;
+-		*) dflt='lib/perl5' ;;
++		*perl*) dflt='lib64';;
++		*) dflt='lib64/perl5' ;;
+ 	esac
+ 	;;
+ *)	dflt="$installstyle" ;;
+@@ -6475,8 +6475,8 @@
+ : /opt/perl/lib/perl5... would be redundant.
+ : The default "style" setting is made in installstyle.U
+ case "$installstyle" in
+-*lib/perl5*) set dflt privlib lib/$package/$version ;;
+-*)	 set dflt privlib lib/$version ;;
++*lib64/perl5*) set dflt privlib lib64/$package/$version ;;
++*)	 set dflt privlib lib64/$version ;;
+ esac
+ eval $prefixit
+ $cat <<EOM
+@@ -6934,8 +6934,8 @@
+ prog=`echo $package | $sed 's/-*[0-9.]*$//'`
+ case "$sitelib" in
+ '') case "$installstyle" in
+-	*lib/perl5*) dflt=$siteprefix/lib/$package/site_$prog/$version ;;
+-	*)	 dflt=$siteprefix/lib/site_$prog/$version ;;
++	*lib64/perl5*) dflt=$siteprefix/lib64/$package/site_$prog/$version ;;
++	*)	 dflt=$siteprefix/lib64/site_$prog/$version ;;
+ 	esac
+ 	;;
+ *)	dflt="$sitelib"
+@@ -7061,8 +7061,8 @@
+ 	'')
+ 		prog=`echo $package | $sed 's/-*[0-9.]*$//'`
+ 		case "$installstyle" in
+-		*lib/perl5*) dflt=$vendorprefix/lib/$package/vendor_$prog/$version ;;
+-		*)	     dflt=$vendorprefix/lib/vendor_$prog/$version ;;
++		*lib64/perl5*) dflt=$vendorprefix/lib64/$package/vendor_$prog/$version ;;
++		*)	     dflt=$vendorprefix/lib64/vendor_$prog/$version ;;
+ 		esac
+ 		;;
+ 	*)	dflt="$vendorlib"
diff --git a/SOURCES/perl-USE_MM_LD_RUN_PATH.patch b/SOURCES/perl-USE_MM_LD_RUN_PATH.patch
new file mode 100644
index 0000000..0978743
--- /dev/null
+++ b/SOURCES/perl-USE_MM_LD_RUN_PATH.patch
@@ -0,0 +1,109 @@
+diff -up perl-5.14.0/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Liblist.pm.usem perl-5.14.0/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Liblist.pm
+--- perl-5.14.0/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Liblist.pm.usem	2011-05-08 05:10:08.000000000 +0200
++++ perl-5.14.0/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Liblist.pm	2011-05-17 11:14:22.169115984 +0200
+@@ -88,6 +88,11 @@ libraries.  LD_RUN_PATH is a colon separ
+ in LDLOADLIBS. It is passed as an environment variable to the process
+ that links the shared library.
+ 
++Fedora extension: This generation of LD_RUN_PATH is disabled by default.
++To use the generated LD_RUN_PATH for all links, set the USE_MM_LD_RUN_PATH
++MakeMaker object attribute / argument, (or set the $USE_MM_LD_RUN_PATH
++environment variable).
++
+ =head2 BSLOADLIBS
+ 
+ List of those libraries that are needed but can be linked in
+diff -up perl-5.14.0/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker.pm.usem perl-5.14.0/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker.pm
+--- perl-5.14.0/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker.pm.usem	2011-05-08 05:10:08.000000000 +0200
++++ perl-5.14.0/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker.pm	2011-05-17 13:39:26.912586030 +0200
+@@ -278,7 +278,7 @@ sub full_setup {
+     PERM_DIR PERM_RW PERM_RWX MAGICXS
+     PL_FILES PM PM_FILTER PMLIBDIRS PMLIBPARENTDIRS POLLUTE
+     PREREQ_FATAL PREREQ_PM PREREQ_PRINT PRINT_PREREQ
+-    SIGN SKIP TEST_REQUIRES TYPEMAPS UNINST VERSION VERSION_FROM XS
++    SIGN SKIP TEST_REQUIRES TYPEMAPS UNINST USE_MM_LD_RUN_PATH VERSION VERSION_FROM XS
+     XSBUILD XSMULTI XSOPT XSPROTOARG XS_VERSION
+     clean depend dist dynamic_lib linkext macro realclean tool_autosplit
+ 
+@@ -422,7 +422,27 @@ sub new {
+     # PRINT_PREREQ is RedHatism.
+     if ("@ARGV" =~ /\bPRINT_PREREQ\b/) {
+         $self->_PRINT_PREREQ;
+-   }
++    }
++
++    # USE_MM_LD_RUN_PATH - another RedHatism to disable automatic RPATH generation
++    if ( ( ! $self->{USE_MM_LD_RUN_PATH} )
++       &&( ("@ARGV" =~ /\bUSE_MM_LD_RUN_PATH(=([01]))?\b/)
++        ||( exists( $ENV{USE_MM_LD_RUN_PATH} )
++           &&( $ENV{USE_MM_LD_RUN_PATH} =~ /([01])?$/ )
++           )
++        )
++       )
++    {
++       my $v = $1;
++       if( $v )
++       {
++           $v = ($v=~/=([01])$/)[0];
++       }else
++       {
++           $v = 1;
++       };
++       $self->{USE_MM_LD_RUN_PATH}=$v;
++    };
+ 
+     print "MakeMaker (v$VERSION)\n" if $Verbose;
+     if (-f "MANIFEST" && ! -f "Makefile" && ! $UNDER_CORE){
+@@ -2352,6 +2372,40 @@ precedence.  A typemap in the current di
+ precedence, even if it isn't listed in TYPEMAPS.  The default system
+ typemap has lowest precedence.
+ 
++=item USE_MM_LD_RUN_PATH
++
++boolean
++The Fedora perl MakeMaker distribution differs from the standard
++upstream release in that it disables use of the MakeMaker generated
++LD_RUN_PATH by default, UNLESS this attribute is specified , or the
++USE_MM_LD_RUN_PATH environment variable is set during the MakeMaker run.
++
++The upstream MakeMaker will set the ld(1) environment variable LD_RUN_PATH
++to the concatenation of every -L ld(1) option directory in which a -l ld(1)
++option library is found, which is used as the ld(1) -rpath option if none
++is specified. This means that, if your application builds shared libraries
++and your MakeMaker application links to them, that the absolute paths of the
++libraries in the build tree will be inserted into the RPATH header of all
++MakeMaker generated binaries, and that such binaries will be unable to link
++to these libraries if they do not still reside in the build tree directories
++(unlikely) or in the system library directories (/lib or /usr/lib), regardless
++of any LD_LIBRARY_PATH setting. So if you specified -L../mylib -lmylib , and
++ your 'libmylib.so' gets installed into /some_directory_other_than_usr_lib,
++ your MakeMaker application will be unable to link to it, even if LD_LIBRARY_PATH
++is set to include /some_directory_other_than_usr_lib, because RPATH overrides
++LD_LIBRARY_PATH.
++
++So for Fedora MakeMaker builds LD_RUN_PATH is NOT generated by default for
++every link. You can still use explicit -rpath ld options or the LD_RUN_PATH
++environment variable during the build to generate an RPATH for the binaries.
++
++You can set the USE_MM_LD_RUN_PATH attribute to 1 on the MakeMaker command
++line or in the WriteMakefile arguments to enable generation of LD_RUN_PATH
++for every link command.
++
++USE_MM_LD_RUN_PATH will default to 1 (LD_RUN_PATH will be used) IF the
++$USE_MM_LD_RUN_PATH environment variable is set during a MakeMaker run.
++
+ =item VENDORPREFIX
+ 
+ Like PERLPREFIX, but only for the vendor install locations.
+diff -up perl-5.14.0/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm.usem perl-5.14.0/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm
+--- perl-5.14.0/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm.usem	2011-05-08 05:10:08.000000000 +0200
++++ perl-5.14.0/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm	2011-05-17 11:14:22.172115972 +0200
+@@ -944,7 +944,7 @@ $(INST_DYNAMIC): $(OBJECT) $(MYEXTLIB) $
+     }
+ 
+     my $ld_run_path_shell = "";
+-    if ($self->{LD_RUN_PATH} ne "") {
++    if (($self->{LD_RUN_PATH} ne "") && ($self->{USE_MM_LD_RUN_PATH})) {
+         $ld_run_path_shell = 'LD_RUN_PATH="$(LD_RUN_PATH)" ';
+     }
+ 
diff --git a/SOURCES/perl-example.stp b/SOURCES/perl-example.stp
new file mode 100644
index 0000000..040f8e3
--- /dev/null
+++ b/SOURCES/perl-example.stp
@@ -0,0 +1,21 @@
+/*
+    Example of the perl systemtap tapset shows a nested view of perl subroutine
+    calls and returns across the whole system.
+
+    To run:
+        stap perl-example.stp (for all perl processes)
+    For specific perl process:
+        stap perl-example.stp -c COMMAND
+*/
+
+probe perl.sub.call
+{
+    printf("%s => sub: %s, filename: %s, line: %d, package: %s\n",
+        thread_indent(1), sub, filename, lineno, package)
+}
+
+probe perl.sub.return
+{
+    printf("%s <= sub: %s, filename: %s, line: %d, package: %s\n",
+        thread_indent(-1), sub, filename, lineno, package)
+}
diff --git a/SOURCES/perl-perlbug-tag.patch b/SOURCES/perl-perlbug-tag.patch
new file mode 100644
index 0000000..0f96ab3
--- /dev/null
+++ b/SOURCES/perl-perlbug-tag.patch
@@ -0,0 +1,21 @@
+diff -up perl-5.16.0-RC2/utils/perlbug.PL.fedora perl-5.16.0-RC2/utils/perlbug.PL
+--- perl-5.16.0-RC2/utils/perlbug.PL.fedora	2012-05-16 16:15:51.000000000 +0200
++++ perl-5.16.0-RC2/utils/perlbug.PL	2012-05-16 16:18:36.018894464 +0200
+@@ -271,17 +271,6 @@ sub Init {
+     $ok = '';
+     if ($opt{o}) {
+ 	if ($opt{o} eq 'k' or $opt{o} eq 'kay') {
+-	    my $age = time - $patchlevel_date;
+-	    if ($opt{o} eq 'k' and $age > 60 * 24 * 60 * 60 ) {
+-		my $date = localtime $patchlevel_date;
+-		print <<"EOF";
+-"perlbug -ok" and "perlbug -nok" do not report on Perl versions which
+-are more than 60 days old.  This Perl version was constructed on
+-$date.  If you really want to report this, use
+-"perlbug -okay" or "perlbug -nokay".
+-EOF
+-		exit();
+-	    }
+ 	    # force these options
+ 	    unless ($opt{n}) {
+ 		$opt{S} = 1; # don't prompt for send
diff --git a/SOURCES/perl.stp b/SOURCES/perl.stp
new file mode 100644
index 0000000..dbc51a8
--- /dev/null
+++ b/SOURCES/perl.stp
@@ -0,0 +1,71 @@
+/*
+   This probe will fire when the perl script enters a subroutine.
+ */
+
+probe perl.sub.call = process("LIBRARY_PATH").mark("sub__entry")
+{
+
+  sub = user_string($arg1)
+  filename = user_string($arg2)
+  lineno = $arg3
+  package = user_string($arg4)
+
+}
+
+/*
+   This probe will fire when the return from a subroutine has been
+   hit.
+ */
+
+probe perl.sub.return = process("LIBRARY_PATH").mark("sub__return")
+{
+
+  sub = user_string($arg1)
+  filename = user_string($arg2)
+  lineno = $arg3
+  package = user_string($arg4)
+
+}
+
+/*
+   This probe will fire when the Perl interperter changes state.
+ */
+
+probe perl.phase.change = process("LIBRARY_PATH").mark("phase__change")
+{
+  newphase = user_string($arg1)
+  oldphase = user_string($arg2)
+
+}
+
+
+/*
+   Fires when Perl has successfully loaded an individual file.
+ */
+
+probe perl.loaded.file = process("LIBRARY_PATH").mark("loaded__file")
+{
+  filename = user_string($arg1)
+
+}
+
+
+/*
+   Fires when Perl is about to load an individual file.
+ */
+
+probe perl.loading.file = process("LIBRARY_PATH").mark("loading__file")
+{
+  filename = user_string($arg1)
+
+}
+
+
+/*
+   Traces the execution of each opcode in the Perl runloop.
+ */
+
+probe perl.op.entry = process("LIBRARY_PATH").mark("op__entry")
+{
+  opname = user_string($arg1)
+}
diff --git a/SPECS/perl.spec b/SPECS/perl.spec
new file mode 100644
index 0000000..8d43883
--- /dev/null
+++ b/SPECS/perl.spec
@@ -0,0 +1,6860 @@
+%global perl_version    5.26.3
+%global perl_epoch      4
+%global perl_arch_stem -thread-multi
+%global perl_archname %{_arch}-%{_os}%{perl_arch_stem}
+
+%global multilib_64_archs aarch64 %{power64} s390x sparc64 x86_64 
+%global parallel_tests 1
+%global tapsetdir   %{_datadir}/systemtap/tapset
+
+%global dual_life 0
+%global rebuild_from_scratch %{defined perl_bootstrap}
+
+# This overrides filters from build root (/usr/lib/rpm/macros.d/macros.perl)
+# intentionally (unversioned perl(DB) is removed and versioned one is kept).
+# Filter provides from *.pl files, bug #924938
+%global __provides_exclude_from .*%{_docdir}|.*%{perl_archlib}/.*\\.pl$|.*%{perl_privlib}/.*\\.pl$
+%global __requires_exclude_from %{_docdir}
+%global __provides_exclude perl\\((VMS|Win32|BSD::|DB\\)$)
+%global __requires_exclude perl\\((VMS|BSD::|Win32|Tk|Mac::|Your::Module::Here)
+# same as we provide in /usr/lib/rpm/macros.d/macros.perl
+%global perl5_testdir   %{_libexecdir}/perl5-tests
+
+# Optional features
+# We can bootstrap without gdbm
+%bcond_without gdbm
+# Support for groff, bug #135101
+%bcond_without perl_enables_groff
+# Run syslog tests
+%bcond_with perl_enables_syslog_test
+# SystemTap support
+%bcond_without perl_enables_systemtap
+# <> operator uses File::Glob nowadays. CSH is not needed.
+%bcond_with perl_enables_tcsh
+# We can skip %%check phase
+%bcond_without test
+
+Name:           perl
+# These are all found licenses. They are distributed among various
+# subpackages.
+# dist/Tie-File/lib/Tie/File.pm:        GPLv2+ or Artistic
+# cpan/Getopt-Long/lib/Getopt/Long.pm:  GPLv2+ or Artistic
+# cpan/Compress-Raw-Zlib/Zlib.xs:       (GPL+ or Artistic) and zlib
+# cpan/Digest-MD5/MD5.xs:               (GPL+ or Artistic) and BSD
+# cpan/Time-Piece/Piece.xs:             (GPL+ or Artistic) and BSD
+# dist/PathTools/Cwd.xs:                (GPL+ or Artistic) and BSD
+# util.c:                               (GPL+ or Artistic) and BSD
+# cpan/perlfaq/lib/perlfaq4.pod:        (GPL+ or Artistic) and Public Domain
+# cpan/Test-Simple/lib/Test/Tutorial.pod:   (GPL+ or Artistic) and
+#                                           Public Domain
+# cpan/MIME-Base64/Base64.xs:           (GPL+ or Artistic) and MIT
+# cpan/Test-Simple/lib/ok.pm:           CC0
+# cpan/Text-Tabs/lib/Text/Wrap.pm:      TTWL
+# cpan/Encode/bin/encguess:             Artistic 2.0
+# cpan/libnet/lib/Net/libnetFAQ.pod:    Artistic    (CPAN RT#117888)
+# cpan/Unicode-Collate/Collate/allkeys.txt:     Unicode
+# lib/unicore:                          UCD
+# ext/SDBM_File/sdbm.{c,h}:             Public domain
+# regexec.c, regcomp.c:                 HSRL
+# cpan/Locale-Maketext-Simple/lib/Locale/Maketext/Simple.pm:    MIT (with
+#                                       exception for Perl)
+# time64.c:                             MIT
+# pod/perlpodstyle.pod:                 MIT
+# pod/perlunicook.pod:                  (GPL+ or Artistic) and Public Domain
+# pod/perlgpl.pod:                      GPL text
+# pod/perlartistic.pod:                 Artistic text
+# ext/File-Glob/bsd_glob.{c,h}:         BSD
+# Other files:                          GPL+ or Artistic
+## Not is a binary package
+# cpan/podlators/t/style/minimum-version.t          MIT
+# cpan/Term-ANSIColor/t/lib/Test/RRA/Config.pm:     MIT
+## Unbundled
+# cpan/Compress-Raw-Bzip2/bzip2-src:    BSD
+# cpan/Compress-Raw-Zlib/zlib-src:      zlib
+## perl sub-package notice
+# perluniprops.pod is generated from lib/unicore sources:   UCD
+#
+# This sub-subpackage doesn't contain any copyrightable material.
+# Nevertheless, it needs a License tag, so we'll use the generic
+# "perl" license.
+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:        417%{?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
+Source3:        macros.perl
+#Systemtap tapset and example that make use of systemtap-sdt-devel
+# build requirement. Written by lberk; Not yet upstream.
+Source4:        perl.stp
+Source5:        perl-example.stp
+# Tom Christiansen confirms Pod::Html uses the same license as perl
+Source6:        Pod-Html-license-clarification
+
+# Pregenerated dependencies for bootstrap.
+# If your RPM tool fails on including the source file, then you forgot to
+# define _sourcedir macro to point to the directory with the sources.
+Source7:        gendep.macros
+%if %{defined perl_bootstrap}
+%include %{SOURCE7}
+%endif
+
+# Removes date check, Fedora/RHEL specific
+Patch1:         perl-perlbug-tag.patch
+
+# Fedora/RHEL only (64bit only)
+Patch3:         perl-5.8.0-libdir64.patch
+
+# Fedora/RHEL specific (use libresolv instead of libbind), bug #151127
+Patch4:         perl-5.10.0-libresolv.patch
+
+# FIXME: May need the "Fedora" references removed before upstreaming
+# patches ExtUtils-MakeMaker
+Patch5:         perl-USE_MM_LD_RUN_PATH.patch
+
+# Provide maybe_command independently, bug #1129443
+Patch6:         perl-5.22.1-Provide-ExtUtils-MM-methods-as-standalone-ExtUtils-M.patch
+
+# The Fedora builders started randomly failing this futime test
+# only on x86_64, so we just don't run it. Works fine on normal
+# systems.
+Patch7:         perl-5.10.0-x86_64-io-test-failure.patch
+
+# switch off test, which is failing only on koji (fork)
+Patch8:         perl-5.14.1-offtest.patch
+
+# Define SONAME for libperl.so
+Patch15:        perl-5.16.3-create_libperl_soname.patch
+
+# Install libperl.so to -Dshrpdir value
+Patch16:        perl-5.22.0-Install-libperl.so-to-shrpdir-on-Linux.patch
+
+# Document Math::BigInt::CalcEmu requires Math::BigInt, rhbz#959096,
+# CPAN RT#85015
+Patch22:        perl-5.18.1-Document-Math-BigInt-CalcEmu-requires-Math-BigInt.patch 
+
+# Make *DBM_File desctructors thread-safe, bug #1107543, RT#61912
+Patch26:        perl-5.18.2-Destroy-GDBM-NDBM-ODBM-SDBM-_File-objects-only-from-.patch
+
+# Replace ExtUtils::MakeMaker dependency with ExtUtils::MM::Utils.
+# This allows not to require perl-devel. Bug #1129443
+Patch30:        perl-5.22.1-Replace-EU-MM-dependnecy-with-EU-MM-Utils-in-IPC-Cmd.patch
+
+# Make File::Glob more resistant against degenerative matching, RT#131211,
+# in upstream after 5.27.0
+Patch31:        perl-5.27.0-perl-131211-fixup-File-Glob-degenerate-matching.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
+
+# Fix handling backslashes in PATH environment variable when executing
+# "perl -S", RT#129183, in upstream after 5.27.0
+Patch38:        perl-5.27.0-perl-129183-don-t-treat-as-an-escape-in-PATH-for-S.patch
+
+# Fix reporting malformed UTF-8 character, RT#131646, in upstream after 5.27.1
+Patch43:        perl-5.27.1-t-lib-warnings-utf8-Fix-test.patch
+
+# Fix File::Glob rt131211.t test random failures, in upstream after 5.27.1
+Patch45:        perl-5.27.1-File-Glob-tweak-rt131211.t-to-be-less-sensitive-on-w.patch
+
+# Fix t/op/hash.t test random failures, in upstream after 5.27.1
+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.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
+Patch49:        perl-5.27.1-utf8n_to_uvchr-Don-t-display-too-many-bytes-in-msg.patch
+
+# Fix error message for "our sub foo::bar", RT#131679, in upstream after 5.27.1
+Patch51:        perl-5.27.1-perl-131679-Fix-our-sub-foo-bar-message.patch
+
+# Fix executing arybase::_tie_it() in Safe compartement, RT#131588,
+# not yet accepted by upstream
+Patch52:        perl-5.26.0-perl-131588-be-a-little-more-careful-in-arybase-_tie.patch
+
+# Fix splitting non-ASCII strings if unicode_strings feature is enabled,
+# RT#130907 in upstream after 5.27.1
+Patch54:        perl-5.27.1-RT-130907-Fix-the-Unicode-Bug-in-split.patch
+
+# Fix compiler warnings in code generated by ExtUtils::Constant, CPAN RT#63832,
+# in upstream after 5.27.2
+Patch55:        perl-5.27.2-Avoid-compiler-warnings-due-to-mismatched-types-in-p.patch
+
+# Fix compiler warnings in code generated by ExtUtils::Constant, CPAN RT#101487,
+# in upstream after 5.27.2
+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 Term::ReadLine not to create spurious &STDERR files, RT#132008,
+# in upstream after 5.27.3
+Patch61:        perl-5.27.3-perl-132008-try-to-prevent-the-similar-mistakes-in-t.patch
+
+# Fix an overflow when parsing a character range with no preceding character,
+# RT#132245, in upstream after 5.27.5
+Patch64:        perl-5.26.1-perl-132245-don-t-try-to-process-a-char-range-with-n.patch
+
+# Fix walking symbol table for ISA in Carp, in upstream after 5.27.5
+Patch65:        perl-5.27.5-Carp-Don-t-choke-on-ISA-constant.patch
+
+# Fix handling file names with null bytes in stat and lstat functions,
+# RT#131895, in upstream after 5.27.5
+Patch66:        perl-5.26.1-perl-131895-fail-stat-on-names-with-0-embedded.patch
+
+# Fix a crash when untying an object witout a stash, in upstream after 5.27.5
+Patch67:        perl-5.27.5-Avoid-a-segfault-when-untying-an-object.patch
+
+# Fix deparsing of transliterations with unprintable characters, RT#132405,
+# in upstream after 5.27.5
+Patch68:        perl-5.26.1-Fix-deparsing-of-transliterations-with-unprintable-c.patch
+
+# Fix error reporting on do() on a directory, RT#125774,
+# in upstream after 5.27.5
+Patch69:        perl-5.26.1-fix-do-dir-returning-no.patch
+
+# Fix stack manipulation when a lexical subroutine is defined in a do block in
+# a member of an iteration list, RT#132442, in upstream after 5.27.5
+Patch70:        perl-5.27.5-perl-132442-Fix-stack-with-do-my-sub-l-1.patch
+
+# Fix setting $! when statting a closed filehandle, RT#108288,
+# in upstream after 5.27.5
+Patch71:        perl-5.26.1-set-when-statting-a-closed-filehandle.patch
+
+# Fix tainting of s/// with overloaded replacement, RT#115266,
+# in upstream after 5.27.5
+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.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
+
+# Avoid undefined behavior when copying memory in Glob and pp_caller,
+# RT#131746, in upstream after 5.27.3
+Patch76:        perl-5.26.1-perl-131746-avoid-undefined-behaviour-in-Copy-etc.patch
+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, 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,
+# <https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/message/3RHZEHLRUHJFF2XGHI5RB6YPDNLDR4HG/>
+Patch79:        perl-5.27.8-hints-linux-Add-lphtread-to-lddlflags.patch
+
+# Fix parsing braced subscript after parentheses, RT#8045,
+# in upstream after 5.27.7
+Patch80:        perl-5.26.1-fix-parsing-of-braced-subscript-after-parens.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
+
+# Adjust tests to gdbm-1.15, RT#133295
+Patch86:        perl-5.29.0-Remove-ext-GDBM_File-t-fatal.t.patch
+
+# Fix printing a warning about a wide character when matching a regular
+# expression while ISO-8859-1 locale is in effect, in upstream after 5.29.0
+Patch88:        perl-5.29.0-regexec.c-Call-macro-with-correct-args.patch
+
+# Fix invoking a check for wide characters while ISO-8859-1 locale is in effect,
+# in upstream after 5.29.0
+Patch89:        perl-5.26.2-perl.h-Add-parens-around-macro-arguments.patch
+
+# Pass the correct CFLAGS to dtrace
+Patch90:        perl-5.26.2-Pass-CFLAGS-to-dtrace.patch
+
+# Fix Time-Local tests to pass after year 2019, bug #1807120, CPAN RT#124787,
+# GH#17410, in Time-Local-1.26
+Patch91:        perl-5.28.2-Only-pass-2-digit-years-to-tests-when-testing-2-digi.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
+
+# Link XS modules to libperl.so with EU::MM on Linux, bug #960048
+Patch201:       perl-5.16.3-Link-XS-modules-to-libperl.so-with-EU-MM-on-Linux.patch
+
+# Update some of the bundled modules
+# see http://fedoraproject.org/wiki/Perl/perl.spec for instructions
+
+BuildRequires:  bash
+BuildRequires:  bzip2-devel
+BuildRequires:  coreutils
+BuildRequires:  findutils
+BuildRequires:  gcc
+%if %{with gdbm}
+BuildRequires:  gdbm-devel
+%endif
+# glibc-common for iconv
+BuildRequires:  glibc-common
+%if %{with perl_enables_groff}
+# Build-require groff tools for populating %%Config correctly, bug #135101
+BuildRequires:  groff-base
+%endif
+BuildRequires:  libdb-devel
+BuildRequires:  make
+%if !%{defined perl_bootstrap}
+BuildRequires:  perl-interpreter
+BuildRequires:  perl-generators
+%endif
+BuildRequires:  sed
+%if %{with perl_enables_systemtap}
+BuildRequires:  systemtap-sdt-devel
+%endif
+BuildRequires:  tar
+%if %{with perl_enables_tcsh}
+BuildRequires:  tcsh
+%endif
+BuildRequires:  zlib-devel
+
+# For tests
+%if %{with test}
+BuildRequires:  procps
+%if %{with perl_enables_syslog_test}
+BuildRequires:  rsyslog
+%endif
+%endif
+
+
+# compat macro needed for rebuild
+%global perl_compat perl(:MODULE_COMPAT_5.26.3)
+
+Requires:       %perl_compat
+Requires:       perl-interpreter%{?_isa} = %{perl_epoch}:%{perl_version}-%{release}
+Requires:       perl-libs%{?_isa} = %{perl_epoch}:%{perl_version}-%{release}
+Requires:       perl-devel%{?_isa} = %{perl_epoch}:%{perl_version}-%{release}
+Requires:       perl-macros
+Requires:       perl-utils
+%if %{defined perl_bootstrap}
+%gendep_perl
+%endif
+
+Requires:       perl-Archive-Tar, perl-Attribute-Handlers, perl-autodie,
+Requires:       perl-B-Debug, perl-bignum
+Requires:       perl-Compress-Raw-Bzip2,
+Requires:       perl-Carp, perl-Compress-Raw-Zlib, perl-Config-Perl-V,
+Requires:       perl-constant,
+Requires:       perl-CPAN, perl-CPAN-Meta, perl-CPAN-Meta-Requirements,
+Requires:       perl-CPAN-Meta-YAML
+Requires:       perl-Data-Dumper, perl-DB_File,
+Requires:       perl-Devel-Peek, perl-Devel-PPPort, perl-Devel-SelfStubber,
+Requires:       perl-Digest, perl-Digest-MD5,
+Requires:       perl-Digest-SHA,
+Requires:       perl-Encode, perl-Encode-devel, perl-encoding
+Requires:       perl-Env, perl-Errno, perl-Exporter, perl-experimental
+Requires:       perl-ExtUtils-CBuilder, perl-ExtUtils-Command,
+Requires:       perl-ExtUtils-Embed,
+Requires:       perl-ExtUtils-Install, perl-ExtUtils-MakeMaker
+Requires:       perl-ExtUtils-Manifest, perl-ExtUtils-Miniperl
+Requires:       perl-ExtUtils-ParseXS, perl-File-Fetch
+Requires:       perl-File-Path, perl-File-Temp, perl-Filter,
+Requires:       perl-Filter-Simple, perl-Getopt-Long
+Requires:       perl-HTTP-Tiny,
+Requires:       perl-IO, perl-IO-Compress, perl-IO-Socket-IP
+Requires:       perl-IO-Zlib, perl-IPC-Cmd, perl-IPC-SysV, perl-JSON-PP
+Requires:       perl-libnet, perl-libnetcfg,
+Requires:       perl-Locale-Codes, perl-Locale-Maketext,
+Requires:       perl-Locale-Maketext-Simple
+Requires:       perl-Math-BigInt, perl-Math-BigInt-FastCalc, perl-Math-BigRat,
+Requires:       perl-Math-Complex, perl-Memoize,
+Requires:       perl-MIME-Base64,
+Requires:       perl-Module-CoreList,
+Requires:       perl-Module-CoreList-tools, perl-Module-Load
+Requires:       perl-Module-Load-Conditional, perl-Module-Loaded,
+Requires:       perl-Module-Metadata, perl-Net-Ping,
+Requires:       perl-open, perl-PathTools
+Requires:       perl-Params-Check
+Requires:       perl-perlfaq,
+Requires:       perl-PerlIO-via-QuotedPrint, perl-Perl-OSType
+Requires:       perl-Pod-Checker, perl-Pod-Escapes, perl-Pod-Html,
+Requires:       perl-Pod-Parser, perl-Pod-Perldoc, perl-Pod-Usage
+Requires:       perl-podlators, perl-Pod-Simple, perl-Scalar-List-Utils
+Requires:       perl-SelfLoader, perl-Socket, perl-Storable, perl-Sys-Syslog,
+Requires:       perl-Term-ANSIColor, perl-Term-Cap,
+Requires:       perl-Test, perl-Test-Harness, perl-Test-Simple
+Requires:       perl-Text-Balanced, perl-Text-ParseWords, perl-Text-Tabs+Wrap,
+Requires:       perl-Thread-Queue
+Requires:       perl-Time-HiRes
+Requires:       perl-Time-Local, perl-Time-Piece
+Requires:       perl-Unicode-Collate, perl-Unicode-Normalize,
+Requires:       perl-version, perl-threads, perl-threads-shared, perl-parent
+
+# Full EVR is for compatibility with systems that swapped perl and perl-core
+# <https://fedoraproject.org/wiki/Changes/perl_Package_to_Install_Core_Modules>,
+# bug #1464903.
+Provides:       perl-core = %{perl_version}-%{release}
+Provides:       perl-core%{?_isa} = %{perl_version}-%{release}
+# perl was renamed to perl-interpreter and perl-core renamed to perl
+Obsoletes:      perl-core < 5.26.0-395
+
+
+%description
+Perl is a high-level programming language with roots in C, sed, awk and shell
+scripting. Perl is good at handling processes and files, and is especially
+good at handling text. Perl's hallmarks are practicality and efficiency.
+While it is used to do a lot of different things, Perl's most common
+applications are system administration utilities and web programming.
+
+This is a metapackage with all the Perl bits and core modules that can be
+found in the upstream tarball from perl.org.
+
+If you need only a specific feature, you can install a specific package
+instead. E.g. to handle Perl scripts with %{_bindir}/perl interpreter,
+install perl-interpreter package. See perl-interpreter description for more
+details on the Perl decomposition into packages.
+
+
+%package interpreter
+Summary:        Standalone executable Perl interpreter
+License:        (GPL+ or Artistic) and (GPLv2+ or Artistic) and BSD and Public Domain and UCD
+# perl-interpreter denotes a package with the perl executable.
+# Full EVR is for compatibility with systems that swapped perl and perl-core
+# <https://fedoraproject.org/wiki/Changes/perl_Package_to_Install_Core_Modules>,
+# bug #1464903.
+Version:        %{perl_version}
+Epoch:          %{perl_epoch}
+
+Requires:       perl-libs%{?_isa} = %{perl_epoch}:%{perl_version}-%{release}
+# Require this till perl-interpreter sub-package provides any modules
+Requires:       %perl_compat
+%if %{defined perl_bootstrap}
+%gendep_perl_interpreter
+%endif
+
+# We need this to break the dependency loop, and ensure that perl-libs 
+# gets installed before perl-interpreter.
+Requires(post): perl-libs
+# Same as perl-libs. We need macros in basic buildroot, where Perl is only
+# because of git.
+Requires(post): perl-macros
+
+# File provides
+Provides:       perl(bytes_heavy.pl)
+Provides:       perl(dumpvar.pl)
+Provides:       perl(perl5db.pl)
+
+# suidperl isn't created by upstream since 5.12.0
+Obsoletes:      perl-suidperl <= 4:5.12.2
+# perl was renamed to perl-interpreter and perl-core renamed to perl
+# <https://fedoraproject.org/wiki/Changes/perl_Package_to_Install_Core_Modules>,
+# bug #1464903.
+Obsoletes:      perl < 4:5.26.0-395
+
+
+%description interpreter
+This is a Perl interpreter as a standalone executable %{_bindir}/perl
+required for handling Perl scripts. It does not provide all the other Perl
+modules or tools.
+
+Install this package if you want to program in Perl or enable your system to
+handle Perl scripts with %{_bindir}/perl interpreter.
+
+If your script requires some Perl modules, you can install them with
+"perl(MODULE)" where "MODULE" is a name of required module. E.g. install
+"perl(Test::More)" to make Test::More Perl module available.
+
+If you need all the Perl modules that come with upstream Perl sources, so
+called core modules, install perl package.
+
+If you only need perl run-time as a shared library, i.e. Perl interpreter
+embedded into another application, the only essential package is perl-libs.
+
+Perl header files can be found in perl-devel package.
+
+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 HSRL and MIT and UCD
+# Compat provides
+Provides:       %perl_compat
+Provides:       perl(:MODULE_COMPAT_5.26.2)
+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}
+# Integeres are 64-bit on all platforms
+Provides:       perl(:WITH_64BIT)
+# Threading provides
+Provides:       perl(:WITH_ITHREADS)
+Provides:       perl(:WITH_THREADS)
+# Largefile provides
+Provides:       perl(:WITH_LARGEFILES)
+# PerlIO provides
+Provides:       perl(:WITH_PERLIO)
+# Loaded by charnames, unicore/Name.pm does not declare unicore::Name module
+Provides:       perl(unicore::Name)
+# Keep utf8 modules in perl-libs because a sole regular expression like /\pN/
+# causes loading utf8 and unicore/Heave.pl and unicore/lib files.
+Provides:       perl(utf8_heavy.pl)
+# utf8 and utf8_heavy.pl require Carp, re, strict, warnings, XSLoader
+Requires:       perl(Carp)
+# Encode is loaded in BOOT section of PerlIO::encoding
+Requires:       perl(Encode)
+Requires:       perl(Exporter)
+# Term::Cap is optional
+Requires:       perl(XSLoader)
+%if %{defined perl_bootstrap}
+%gendep_perl_libs
+%endif
+
+# Remove private redefinitions
+# XSLoader redefines DynaLoader name space for compatibility, but does not
+# load the DynaLoader.pm (though the DynaLoader.xs is compiled into libperl).
+%global __provides_exclude %{?__provides_exclude:%__provides_exclude|}^perl\\((charnames|DynaLoader)\\)$
+
+%description libs
+The is a perl run-time (interpreter as a shared library and include
+directories).
+
+
+%package devel
+Summary:        Header #files for use in perl development
+# l1_char_class_tab.h is generated from lib/unicore sources:    UCD
+License:        (GPL+ or Artistic) and UCD
+%if %{with perl_enables_systemtap}
+Requires:       systemtap-sdt-devel
+%endif
+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
+
+%description devel
+This package contains header files and development modules.
+Most perl packages will need to install perl-devel to build.
+
+
+%package macros
+Summary:        Macros for rpmbuild
+License:        GPL+ or Artistic
+Requires:       %perl_compat
+%if %{defined perl_bootstrap}
+%gendep_perl_macros
+%endif
+
+%description macros
+RPM macros that are handy when building binary RPM packages.
+
+
+%package tests
+Summary:        The Perl test suite
+License:        GPL+ or Artistic
+# right?
+AutoReqProv:    0
+Requires:       %perl_compat
+# FIXME - note this will need to change when doing the core/minimal swizzle
+Requires:       perl
+%if %{defined perl_bootstrap}
+%gendep_perl_tests
+%endif
+
+%description tests
+This package contains the test suite included with Perl %{perl_version}.
+
+Install this if you want to test your Perl installation (binary and core
+modules).
+
+
+%package utils
+Summary:        Utilities packaged with the Perl distribution
+License:        GPL+ or Artistic
+Epoch:          0
+Version:        %{perl_version}
+BuildArch:      noarch
+# Match library exactly for splain messages
+Requires:       perl-libs = %{perl_epoch}:%{perl_version}-%{release}
+# Keep /usr/sbin/sendmail and Module::CoreList optional for the perlbug tool
+%if %{defined perl_bootstrap}
+%gendep_perl_utils
+%endif
+Conflicts:      perl < 4:5.22.0-351
+
+%description utils
+Several utilities which come with Perl distribution like h2ph, perlbug,
+perlthanks, pl2pm, and splain. Some utilities are provided by more specific
+packages like perldoc by perl-Pod-Perldoc.
+
+
+%if %{dual_life} || %{rebuild_from_scratch}
+%package Archive-Tar
+Summary:        A module for Perl manipulation of .tar files
+License:        GPL+ or Artistic
+Epoch:          0
+Version:        2.24
+BuildArch:      noarch
+Requires:       %perl_compat
+Requires:       perl(IO::Zlib) >= 1.01
+# Optional run-time:
+Requires:       perl(IO::Compress::Bzip2) >= 2.015
+# IO::String not used if perl supports useperlio which is true
+# Use Compress::Zlib's version for IO::Uncompress::Bunzip2
+Requires:       perl(IO::Uncompress::Bunzip2) >= 2.015
+%if !%{defined perl_bootstrap}
+Requires:       perl(Text::Diff)
+%endif
+%if %{defined perl_bootstrap}
+%gendep_perl_Archive_Tar
+%endif
+
+%description Archive-Tar
+Archive::Tar provides an object oriented mechanism for handling tar files.  It
+provides class methods for quick and easy files handling while also allowing
+for the creation of tar file objects for custom manipulation.  If you have the
+IO::Zlib module installed, Archive::Tar will also support compressed or
+gzipped tar files.
+%endif
+
+%package Attribute-Handlers
+Summary:        Simpler definition of attribute handlers
+License:        GPL+ or Artistic
+Epoch:          0
+Version:        0.99
+BuildArch:      noarch
+Requires:       %perl_compat
+%if %{defined perl_bootstrap}
+%gendep_perl_Attribute_Handlers
+%endif
+Conflicts:      perl < 4:5.22.0-351
+
+%description Attribute-Handlers
+This Perl module, when inherited by a package, allows that package's class to
+define attribute handler subroutines for specific attributes. Variables and
+subroutines subsequently defined in that package, or in packages derived from
+that package may be given attributes with the same names as the attribute
+handler subroutines, which will then be called in one of the compilation
+phases (i.e. in a "BEGIN", "CHECK", "INIT", or "END" block).
+
+%if %{dual_life} || %{rebuild_from_scratch}
+%package autodie
+Summary:        Replace functions with ones that succeed or die
+License:        GPL+ or Artistic
+Epoch:          0
+Version:        2.29
+Requires:       %perl_compat
+BuildArch:      noarch
+Requires:       perl(B)
+Requires:       perl(Fcntl)
+Requires:       perl(overload)
+Requires:       perl(POSIX)
+%if %{defined perl_bootstrap}
+%gendep_perl_autodie
+%endif
+Conflicts:      perl < 4:5.16.2-259
+
+%description autodie
+The "autodie" and "Fatal" pragma provides a convenient way to replace
+functions that normally return false on failure with equivalents that throw an
+exception on failure.
+
+However "Fatal" has been obsoleted by the new autodie pragma. Please use
+autodie in preference to "Fatal".
+%endif
+
+%if %{dual_life} || %{rebuild_from_scratch}
+%package B-Debug
+Summary:        Walk Perl syntax tree, print debug information about op-codes
+License:        GPL+ or Artistic
+Epoch:          0
+Version:        1.24
+Requires:       %perl_compat
+BuildArch:      noarch
+%if %{defined perl_bootstrap}
+%gendep_perl_B_Debug
+%endif
+Conflicts:      perl < 4:5.20.1-310
+
+%description B-Debug
+Walk Perl syntax tree and print debug information about op-codes. See
+B::Concise and B::Terse for other details.
+
+%package bignum
+Summary:        Transparent big number support for Perl
+License:        GPL+ or Artistic
+Epoch:          0
+Version:        0.47
+Requires:       %perl_compat
+Requires:       perl(Carp)
+# Math::BigInt::Lite is optional
+Requires:       perl(Math::BigRat)
+Requires:       perl(warnings)
+BuildArch:      noarch
+%if %{defined perl_bootstrap}
+%gendep_perl_bignum
+%endif
+Conflicts:      perl < 4:5.22.0-348
+
+%description bignum
+This package attempts to make it easier to write scripts that use BigInts and
+BigFloats in a transparent way.
+
+%package Carp
+Summary:        Alternative warn and die for modules
+Epoch:          0
+# Real version 1.42
+Version:        1.42
+License:        GPL+ or Artistic
+Requires:       %perl_compat
+Provides:       perl(Carp::Heavy) = %{version}
+%if %{defined perl_bootstrap}
+%gendep_perl_Carp
+%endif
+BuildArch:      noarch
+
+# Do not export unversioned module
+%global __provides_exclude %{?__provides_exclude:%__provides_exclude|}^perl\\(Carp\\)\\s*$
+
+%description Carp
+The Carp routines are useful in your own modules because they act like
+die() or warn(), but with a message which is more likely to be useful to a
+user of your module. In the case of cluck, confess, and longmess that
+context is a summary of every call in the call-stack. For a shorter message
+you can use carp or croak which report the error as being from where your
+module was called. There is no guarantee that that is where the error was,
+but it is a good educated guess.
+%endif
+
+%if %{dual_life} || %{rebuild_from_scratch}
+%package Compress-Raw-Bzip2
+Summary:        Low-Level Interface to bzip2 compression library
+License:        GPL+ or Artistic
+Epoch:          0
+Version:        2.074
+Requires:       perl(Exporter), perl(File::Temp)
+%if %{defined perl_bootstrap}
+%gendep_perl_Compress_Raw_Bzip2
+%endif
+
+%description Compress-Raw-Bzip2
+This module provides a Perl interface to the bzip2 compression library.
+It is used by IO::Compress::Bzip2.
+
+%package Compress-Raw-Zlib
+Summary:        Low-Level Interface to the zlib compression library
+License:        (GPL+ or Artistic) and zlib
+Epoch:          0
+Version:        2.074
+Requires:       %perl_compat
+%if %{defined perl_bootstrap}
+%gendep_perl_Compress_Raw_Zlib
+%endif
+
+%description Compress-Raw-Zlib
+This module provides a Perl interface to the zlib compression library.
+It is used by IO::Compress::Zlib.
+%endif
+
+%if %{dual_life} || %{rebuild_from_scratch}
+%package Config-Perl-V
+Summary:        Structured data retrieval of perl -V output
+License:        GPL+ or Artistic
+Epoch:          0
+Version:        0.28
+Requires:       %perl_compat
+%if %{defined perl_bootstrap}
+%gendep_perl_Config_Perl_V
+%endif
+BuildArch:      noarch
+Conflicts:      perl < 4:5.22.0-347
+
+%description Config-Perl-V
+The command "perl -V" will return you an excerpt from the %%Config::Config
+hash combined with the output of "perl -V" that is not stored inside the hash,
+but only available to the perl binary itself. This package provides Perl
+module that will return you the output of "perl -V" in a structure.
+%endif
+
+%if %{dual_life} || %{rebuild_from_scratch}
+%package constant
+Summary:        Perl pragma to declare constants
+License:        GPL+ or Artistic
+Epoch:          0
+Version:        1.33
+Requires:       %perl_compat
+Requires:       perl(Carp)
+%if %{defined perl_bootstrap}
+%gendep_perl_constant
+%endif
+BuildArch:      noarch
+Conflicts:      perl < 4:5.16.3-264
+
+%description constant
+This pragma allows you to declare constants at compile-time:
+
+use constant PI => 4 * atan2(1, 1);
+
+When you declare a constant such as "PI" using the method shown above,
+each machine your script runs upon can have as many digits of accuracy
+as it can use. Also, your program will be easier to read, more likely
+to be maintained (and maintained correctly), and far less likely to
+send a space probe to the wrong planet because nobody noticed the one
+equation in which you wrote 3.14195.
+
+When a constant is used in an expression, Perl replaces it with its
+value at compile time, and may then optimize the expression further.
+In particular, any code in an "if (CONSTANT)" block will be optimized
+away if the constant is false.
+%endif
+
+%if %{dual_life} || %{rebuild_from_scratch}
+%package CPAN
+Summary:        Query, download and build perl modules from CPAN sites
+License:        GPL+ or Artistic
+Epoch:          0
+Version:        2.18
+Requires:       make
+# Prefer Archive::Tar and Compress::Zlib over tar and gzip
+Requires:       perl(Archive::Tar) >= 1.50
+Requires:       perl(base)
+Requires:       perl(Data::Dumper)
+%if !%{defined perl_bootstrap}
+Requires:       perl(Devel::Size)
+%endif
+Requires:       perl(ExtUtils::Manifest)
+%if !%{defined perl_bootstrap}
+Requires:       perl(File::HomeDir) >= 0.65
+%endif
+Requires:       perl(File::Temp) >= 0.16
+Requires:       perl(lib)
+Requires:       perl(Net::Config)
+Requires:       perl(Net::FTP)
+Requires:       perl(POSIX)
+Requires:       perl(Term::ReadLine)
+%if !%{defined perl_bootstrap}
+Requires:       perl(URI)
+Requires:       perl(URI::Escape)
+%endif
+Requires:       perl(User::pwent)
+# Optional but higly recommended:
+%if !%{defined perl_bootstrap}
+Requires:       perl(Archive::Zip)
+Requires:       perl(Compress::Bzip2)
+Requires:       perl(CPAN::Meta) >= 2.110350
+%endif
+Requires:       perl(Compress::Zlib)
+Requires:       perl(Digest::MD5)
+# CPAN encourages Digest::SHA strongly because of integrity checks
+Requires:       perl(Digest::SHA)
+Requires:       perl(Dumpvalue)
+Requires:       perl(ExtUtils::CBuilder)
+%if ! %{defined perl_bootstrap}
+# Avoid circular deps local::lib -> Module::Install -> CPAN when bootstraping
+# local::lib recommended by CPAN::FirstTime default choice, bug #1122498
+Requires:       perl(local::lib)
+%endif
+Requires:       perl(Module::Build)
+%if ! %{defined perl_bootstrap}
+Requires:       perl(Text::Glob)
+%endif
+Requires:       %perl_compat
+Provides:       cpan = %{version}
+%if %{defined perl_bootstrap}
+%gendep_perl_CPAN
+%endif
+BuildArch:      noarch
+
+%description CPAN
+The CPAN module automates or at least simplifies the make and install of
+perl modules and extensions. It includes some primitive searching
+capabilities and knows how to use LWP, HTTP::Tiny, Net::FTP and certain
+external download clients to fetch distributions from the net.
+%endif
+
+%if %{dual_life} || %{rebuild_from_scratch}
+%package CPAN-Meta
+Summary:        Distribution metadata for a CPAN dist
+Epoch:          0
+Version:        2.150010
+License:        GPL+ or Artistic
+Requires:       %perl_compat
+Requires:       perl(CPAN::Meta::YAML) >= 0.011
+Requires:       perl(Encode)
+Requires:       perl(JSON::PP) >= 2.27300
+%if %{defined perl_bootstrap}
+%gendep_perl_CPAN_Meta
+%endif
+BuildArch:      noarch
+
+%description CPAN-Meta
+Software distributions released to the CPAN include a META.json or, for
+older distributions, META.yml, which describes the distribution, its
+contents, and the requirements for building and installing the
+distribution. The data structure stored in the META.json file is described
+in CPAN::Meta::Spec.
+%endif
+
+%if %{dual_life} || %{rebuild_from_scratch}
+%package CPAN-Meta-Requirements
+Summary:        Set of version requirements for a CPAN dist
+Epoch:          0
+# Real version 2.140
+Version:        2.140
+License:        GPL+ or Artistic
+Requires:       %perl_compat
+BuildArch:      noarch
+# CPAN-Meta-Requirements used to have six decimal places
+%global __provides_exclude %{?__provides_exclude:%__provides_exclude|}^perl\\(CPAN::Meta::Requirements\\)
+Provides:       perl(CPAN::Meta::Requirements) = %{version}000
+%if %{defined perl_bootstrap}
+%gendep_perl_CPAN_Meta_Requirements
+%endif
+
+%description CPAN-Meta-Requirements
+A CPAN::Meta::Requirements object models a set of version constraints like
+those specified in the META.yml or META.json files in CPAN distributions.
+It can be built up by adding more and more constraints, and it will reduce
+them to the simplest representation.
+%endif
+
+%if %{dual_life} || %{rebuild_from_scratch}
+%package CPAN-Meta-YAML
+Version:        0.018
+Epoch:          0
+Summary:        Read and write a subset of YAML for CPAN Meta files
+License:        GPL+ or Artistic
+BuildArch:      noarch
+Requires:       %perl_compat
+%if %{defined perl_bootstrap}
+%gendep_perl_CPAN_Meta_YAML
+%endif
+
+%description CPAN-Meta-YAML
+This module implements a subset of the YAML specification for use in reading
+and writing CPAN metadata files like META.yml and MYMETA.yml. It should not be
+used for any other general YAML parsing or generation task.
+%endif
+
+
+%if %{dual_life} || %{rebuild_from_scratch}
+%package Data-Dumper
+Summary:        Stringify perl data structures, suitable for printing and eval
+License:        GPL+ or Artistic
+Epoch:          0
+Version:        2.167
+Requires:       %perl_compat
+Requires:       perl(Scalar::Util)
+Requires:       perl(XSLoader)
+%if %{defined perl_bootstrap}
+%gendep_perl_Data_Dumper
+%endif
+
+%description Data-Dumper
+Given a list of scalars or reference variables, writes out their contents
+in perl syntax. The references can also be objects. The content of each
+variable is output in a single Perl statement. Handles self-referential
+structures correctly.
+%endif
+
+%if %{dual_life} || %{rebuild_from_scratch}
+%package DB_File
+Summary:        Perl5 access to Berkeley DB version 1.x
+License:        GPL+ or Artistic
+Epoch:          0
+Version:        1.840
+Requires:       %perl_compat
+Requires:       perl(Fcntl)
+Requires:       perl(XSLoader)
+%if %{defined perl_bootstrap}
+%gendep_perl_DB_File
+%endif
+Conflicts:      perl < 4:5.16.3-264
+
+%description DB_File
+DB_File is a module which allows Perl programs to make use of the facilities
+provided by Berkeley DB version 1.x (if you have a newer version of DB, you
+will be limited to functionality provided by interface of version 1.x). The
+interface defined here mirrors the Berkeley DB interface closely.
+%endif
+
+%package Devel-Peek
+Summary:        A data debugging tool for the XS programmer
+License:        GPL+ or Artistic
+Epoch:          0
+Version:        1.26
+Requires:       %perl_compat
+%if %{defined perl_bootstrap}
+%gendep_perl_Devel_Peek
+%endif
+Conflicts:      perl < 4:5.22.0-351
+
+%description Devel-Peek
+Devel::Peek contains functions which allows raw Perl data types to be
+manipulated from a Perl script. This is used by those who do XS programming to
+check that the data they are sending from C to Perl looks as they think it
+should look.
+
+%if %{dual_life} || %{rebuild_from_scratch}
+%package Devel-PPPort
+Summary:        Perl Pollution Portability header generator
+License:        GPL+ or Artistic
+Epoch:          0
+Version:        3.35
+Requires:       %perl_compat
+%if %{defined perl_bootstrap}
+%gendep_perl_Devel_PPPort
+%endif
+Conflicts:      perl < 4:5.20.1-310
+
+%description Devel-PPPort
+Perl's API has changed over time, gaining new features, new functions,
+increasing its flexibility, and reducing the impact on the C name space
+environment (reduced pollution). The header file written by this module,
+typically ppport.h, attempts to bring some of the newer Perl API features
+to older versions of Perl, so that you can worry less about keeping track
+of old releases, but users can still reap the benefit.
+%endif
+
+%package Devel-SelfStubber
+Summary:        Generate stubs for a SelfLoading module
+License:        GPL+ or Artistic
+Epoch:          0
+Version:        1.06
+BuildArch:      noarch
+Requires:       %perl_compat
+%if %{defined perl_bootstrap}
+%gendep_perl_Devel_SelfStubber
+%endif
+Conflicts:      perl < 4:5.22.0-351
+
+%description Devel-SelfStubber
+Devel::SelfStubber prints the stubs you need to put in the module before the
+__DATA__ token (or you can get it to print the entire module with stubs
+correctly placed). The stubs ensure that if a method is called, it will get
+loaded. They are needed specifically for inherited autoloaded methods.
+
+%if %{dual_life} || %{rebuild_from_scratch}
+%package Digest
+Summary:        Modules that calculate message digests
+License:        GPL+ or Artistic
+# Epoch bump for clean upgrade over old standalone package
+Epoch:          0
+Version:        1.17
+BuildArch:      noarch
+Requires:       %perl_compat
+Requires:       perl(MIME::Base64)
+%if %{defined perl_bootstrap}
+%gendep_perl_Digest
+%endif
+
+%description Digest
+The Digest:: modules calculate digests, also called "fingerprints" or
+"hashes", of some data, called a message. The digest is (usually)
+some small/fixed size string. The actual size of the digest depend of
+the algorithm used. The message is simply a sequence of arbitrary
+bytes or bits.
+%endif
+
+%if %{dual_life} || %{rebuild_from_scratch}
+%package Digest-MD5
+Summary:        Perl interface to the MD5 Algorithm
+License:        (GPL+ or Artistic) and BSD
+# Epoch bump for clean upgrade over old standalone package
+Epoch:          0
+Version:        2.55
+Requires:       %perl_compat
+Requires:       perl(XSLoader)
+# Recommended
+Requires:       perl(Digest::base) >= 1.00
+%if %{defined perl_bootstrap}
+%gendep_perl_Digest_MD5
+%endif
+
+%description Digest-MD5
+The Digest::MD5 module allows you to use the RSA Data Security Inc. MD5
+Message Digest algorithm from within Perl programs. The algorithm takes as
+input a message of arbitrary length and produces as output a 128-bit
+"fingerprint" or "message digest" of the input.
+%endif
+
+%if %{dual_life} || %{rebuild_from_scratch}
+%package Digest-SHA
+Summary:        Perl extension for SHA-1/224/256/384/512
+License:        GPL+ or Artistic
+# Epoch bump for clean upgrade over old standalone package
+Epoch:          1
+Version:        5.96
+Requires:       %perl_compat
+Requires:       perl(Carp)
+# Recommended
+Requires:       perl(Digest::base)
+%if %{defined perl_bootstrap}
+%gendep_perl_Digest_SHA
+%endif
+
+%description Digest-SHA
+Digest::SHA is a complete implementation of the NIST Secure Hash
+Standard.  It gives Perl programmers a convenient way to calculate
+SHA-1, SHA-224, SHA-256, SHA-384, and SHA-512 message digests.  The
+module can handle all types of input, including partial-byte data.
+%endif
+
+%if %{dual_life} || %{rebuild_from_scratch}
+%package Encode
+Summary:        Character encodings in Perl
+License:        (GPL+ or Artistic) and Artistic 2.0 and UCD
+Epoch:          4
+Version:        2.88
+Requires:       %perl_compat
+%if %{defined perl_bootstrap}
+%gendep_perl_Encode
+%endif
+Conflicts:      perl < 4:5.16.2-256
+
+%description Encode
+The Encode module provides the interface between Perl strings and the rest
+of the system. Perl strings are sequences of characters.
+
+%package encoding
+Summary:        Write your Perl script in non-ASCII or non-UTF-8
+License:        GPL+ or Artistic
+Epoch:          4
+Version:        2.19
+# Keeping this sub-package arch-specific because it installs files into
+# arch-specific directories.
+Requires:       %perl_compat
+Requires:       perl(Carp)
+# Config not needed on perl ≥ 5.008
+# Consider Filter::Util::Call as mandatory, bug #1165183, CPAN RT#100427
+Requires:       perl(Filter::Util::Call)
+# I18N::Langinfo is optional
+# PerlIO::encoding is optional
+Requires:       perl(utf8)
+%if %{defined perl_bootstrap}
+%gendep_perl_encoding
+%endif
+Conflicts:      perl-Encode < 2:2.60-314
+
+%description encoding
+With the encoding pragma, you can write your Perl script in any encoding you
+like (so long as the Encode module supports it) and still enjoy Unicode
+support.
+
+However, this encoding module is deprecated under perl 5.18. It uses
+a mechanism provided by perl that is deprecated under 5.18 and higher, and may
+be removed in a future version.
+
+The easiest and the best alternative is to write your script in UTF-8.
+
+%package Encode-devel
+Summary:        Character encodings in Perl
+License:        (GPL+ or Artistic) and UCD
+Epoch:          4
+Version:        2.88
+Requires:       %perl_compat
+Requires:       %{name}-Encode = %{epoch}:%{version}-%{release}
+Recommends:     perl-devel
+%if %{defined perl_bootstrap}
+%gendep_perl_Encode_devel
+%endif
+BuildArch:      noarch
+
+%description Encode-devel
+enc2xs builds a Perl extension for use by Encode from either Unicode Character
+Mapping files (.ucm) or Tcl Encoding Files (.enc). You can use enc2xs to add
+your own encoding to perl. No knowledge of XS is necessary.
+%endif
+
+%if %{dual_life} || %{rebuild_from_scratch}
+%package Env
+Summary:        Perl module that imports environment variables as scalars or arrays
+License:        GPL+ or Artistic
+Epoch:          0
+Version:        1.04
+Requires:       %perl_compat
+%if %{defined perl_bootstrap}
+%gendep_perl_Env
+%endif
+BuildArch:      noarch
+Conflicts:      perl < 4:5.16.2-265
+
+%description Env
+Perl maintains environment variables in a special hash named %%ENV. For when
+this access method is inconvenient, the Perl module Env allows environment
+variables to be treated as scalar or array variables.
+%endif
+
+%package Errno
+Summary:        System errno constants
+License:        GPL+ or Artistic
+Epoch:          0
+Version:        1.28
+Requires:       %perl_compat
+# Errno.pm bakes in kernel version at build time and compares it against
+# $Config{osvers} at run time. Match exact interpreter build. Bug #1393421.
+Requires:       perl-libs%{?_isa} = %{perl_epoch}:%{perl_version}-%{release}
+Requires:       perl(Carp)
+%if %{defined perl_bootstrap}
+%gendep_perl_Errno
+%endif
+Conflicts:      perl < 4:5.22.0-351
+
+%description Errno
+"Errno" defines and conditionally exports all the error constants defined in
+your system "errno.h" include file. It has a single export tag, ":POSIX",
+which will export all POSIX defined error numbers.
+
+%if %{dual_life} || %{rebuild_from_scratch}
+%package experimental
+Summary:        Experimental features made easy
+License:        GPL+ or Artistic
+Epoch:          0
+Version:        0.016
+Requires:       %perl_compat
+%if %{defined perl_bootstrap}
+%gendep_perl_experimental
+%endif
+BuildArch:      noarch
+Conflicts:      perl < 4:5.20.0-303
+
+%description experimental
+This pragma provides an easy and convenient way to enable or disable
+experimental features.
+%endif
+
+%if %{dual_life} || %{rebuild_from_scratch}
+%package Exporter
+Summary:        Implements default import method for modules
+License:        GPL+ or Artistic
+Epoch:          0
+Version:        5.72
+Requires:       %perl_compat
+Requires:       perl(Carp) >= 1.05
+%if %{defined perl_bootstrap}
+%gendep_perl_Exporter
+%endif
+BuildArch:      noarch
+Conflicts:      perl < 4:5.16.2-265
+
+%description Exporter
+The Exporter module implements an import method which allows a module to
+export functions and variables to its users' name spaces. Many modules use
+Exporter rather than implementing their own import method because Exporter
+provides a highly flexible interface, with an implementation optimized for
+the common case.
+%endif
+
+%if %{dual_life} || %{rebuild_from_scratch}
+%package ExtUtils-CBuilder
+Summary:        Compile and link C code for Perl modules
+License:        GPL+ or Artistic
+# Epoch bump for clean upgrade over old standalone package
+Epoch:          1
+Version:        0.280225
+BuildArch:      noarch
+Requires:       perl-devel
+Requires:       %perl_compat
+Requires:       perl(DynaLoader)
+Requires:       perl(ExtUtils::Mksymlists)
+Requires:       perl(File::Spec) >= 3.13
+Requires:       perl(Perl::OSType) >= 1
+%if %{defined perl_bootstrap}
+%gendep_perl_ExtUtils_CBuilder
+%endif
+
+%description ExtUtils-CBuilder
+This module can build the C portions of Perl modules by invoking the
+appropriate compilers and linkers in a cross-platform manner. It was motivated
+by the Module::Build project, but may be useful for other purposes as well.
+%endif
+
+%if %{dual_life} || %{rebuild_from_scratch}
+%package ExtUtils-Command
+Summary:        Perl routines to replace common UNIX commands in Makefiles
+License:        GPL+ or Artistic
+Epoch:          1
+Version:        7.24
+BuildArch:      noarch
+Requires:       %perl_compat
+Conflicts:      perl < 4:5.20.1-312
+Requires:       perl(File::Find)
+%if %{defined perl_bootstrap}
+%gendep_perl_ExtUtils_Command
+%endif
+
+%description ExtUtils-Command
+This Perl module is used to replace common UNIX commands. In all cases the
+functions work with @ARGV rather than taking arguments. This makes them
+easier to deal with in Makefiles.
+%endif
+
+%package ExtUtils-Embed
+Summary:        Utilities for embedding Perl in C/C++ applications
+License:        GPL+ or Artistic
+Epoch:          0
+Version:        1.34
+Requires:       perl-devel
+Requires:       %perl_compat
+%if %{defined perl_bootstrap}
+%gendep_perl_ExtUtils_Embed
+%endif
+BuildArch:      noarch
+
+%description ExtUtils-Embed
+Utilities for embedding Perl in C/C++ applications.
+
+
+%if %{dual_life} || %{rebuild_from_scratch}
+%package ExtUtils-Install
+Summary:        Install files from here to there
+License:        GPL+ or Artistic
+Epoch:          0
+Version:        2.04
+BuildArch:      noarch
+Requires:       %perl_compat
+Requires:       perl(Data::Dumper)
+%if %{defined perl_bootstrap}
+%gendep_perl_ExtUtils_Install
+%endif
+
+%description ExtUtils-Install
+Handles the installing and uninstalling of perl modules, scripts, man
+pages, etc.
+%endif
+
+%if %{dual_life} || %{rebuild_from_scratch}
+%package ExtUtils-MakeMaker
+Summary:        Create a module Makefile
+License:        GPL+ or Artistic
+Epoch:          1
+Version:        7.24
+# If an XS module is built, code generated from XS will be compiled and it
+# includes Perl header files.
+# TODO: This dependency will be weaken in order to relieve building noarch
+# packages from perl-devel and gcc.
+Requires:       perl-devel
+Requires:       %perl_compat
+Requires:       perl(Data::Dumper)
+Requires:       perl(DynaLoader)
+Requires:       perl(ExtUtils::Command)
+Requires:       perl(ExtUtils::Install)
+Requires:       perl(ExtUtils::Manifest)
+Requires:       perl(File::Find)
+Requires:       perl(Getopt::Long)
+# Optional Pod::Man is needed for generating manual pages from POD
+Requires:       perl(Pod::Man)
+Requires:       perl(POSIX)
+Requires:       perl(Test::Harness)
+Requires:       perl(version)
+# If an XS module is compiled, xsubpp(1) is needed
+Requires:       perl-ExtUtils-ParseXS
+%if %{defined perl_bootstrap}
+%gendep_perl_ExtUtils_MakeMaker
+%endif
+BuildArch:      noarch
+
+# Filter false DynaLoader provides. Versioned perl(DynaLoader) keeps
+# unfiltered on perl package, no need to reinject it.
+%global __provides_exclude %{?__provides_exclude:%__provides_exclude|}^perl\\(DynaLoader\\)\\s*$
+%global __provides_exclude %__provides_exclude|^perl\\(ExtUtils::MakeMaker::_version\\)
+
+%description ExtUtils-MakeMaker
+Create a module Makefile.
+%endif
+
+%if %{dual_life} || %{rebuild_from_scratch}
+%package ExtUtils-Manifest
+Summary:        Utilities to write and check a MANIFEST file
+License:        GPL+ or Artistic
+Epoch:          0
+Version:        1.70
+Requires:       %perl_compat
+Requires:       perl(File::Path)
+%if %{defined perl_bootstrap}
+%gendep_perl_ExtUtils_Manifest
+%endif
+BuildArch:      noarch
+
+%description ExtUtils-Manifest
+%{summary}.
+%endif
+
+%package ExtUtils-Miniperl
+Summary:        Write the C code for perlmain.c
+License:        GPL+ or Artistic
+Epoch:          0
+Version:        1.06
+Requires:       perl-devel
+Requires:       %perl_compat
+%if %{defined perl_bootstrap}
+%gendep_perl_ExtUtils_Miniperl
+%endif
+BuildArch:      noarch
+
+%description ExtUtils-Miniperl
+writemain() takes an argument list of directories containing archive libraries
+that relate to perl modules and should be linked into a new perl binary. It
+writes a corresponding perlmain.c file that is a plain C file containing all
+the bootstrap code to make the If the first argument to writemain() is a
+reference to a scalar it is used as the file name to open for output. Any other
+reference is used as the file handle to write to. Otherwise output defaults to
+STDOUT.
+
+%if %{dual_life} || %{rebuild_from_scratch}
+%package ExtUtils-MM-Utils
+Summary:        ExtUtils::MM methods without dependency on ExtUtils::MakeMaker
+License:        GPL+ or Artistic
+Epoch:          1
+# Real version 7.11
+# Dual-life ExtUtils-MakeMaker generate it with its version
+Version:        7.24
+BuildArch:      noarch
+Requires:       %perl_compat
+%if %{defined perl_bootstrap}
+%gendep_perl_ExtUtils_MM_Utils
+%endif
+
+%description ExtUtils-MM-Utils
+This is a collection of ExtUtils::MM subroutines that are used by many
+other modules but that do not need full-featured ExtUtils::MakeMaker. The
+issue with ExtUtils::MakeMaker is it pulls in Perl header files and that
+is an overkill for small subroutines.
+%endif
+
+%if %{dual_life} || %{rebuild_from_scratch}
+%package ExtUtils-ParseXS
+Summary:        Module and a script for converting Perl XS code into C code
+License:        GPL+ or Artistic
+# Epoch bump for clean upgrade over old standalone package
+Epoch:          1
+Version:        3.34
+Requires:       %perl_compat
+%if %{defined perl_bootstrap}
+%gendep_perl_ExtUtils_ParseXS
+%endif
+BuildArch:      noarch
+
+%description ExtUtils-ParseXS
+ExtUtils::ParseXS will compile XS code into C code by embedding the constructs
+necessary to let C functions manipulate Perl values and creates the glue
+necessary to let Perl access those functions.
+%endif
+
+
+%if %{dual_life} || %{rebuild_from_scratch}
+%package File-Fetch
+Summary:        Generic file fetching mechanism
+License:        GPL+ or Artistic
+Epoch:          0
+Version:        0.52
+Requires:       perl(IPC::Cmd) >= 0.36
+Requires:       perl(Module::Load::Conditional) >= 0.04
+Requires:       perl(Params::Check) >= 0.07
+Requires:       %perl_compat
+%if %{defined perl_bootstrap}
+%gendep_perl_File_Fetch
+%endif
+BuildArch:      noarch
+
+%description File-Fetch
+File::Fetch is a generic file fetching mechanism.
+%endif
+
+%if %{dual_life} || %{rebuild_from_scratch}
+%package File-Path
+Summary:        Create or remove directory trees
+License:        GPL+ or Artistic
+Epoch:          0
+Version:        2.12
+Requires:       %perl_compat
+Requires:       perl(Carp)
+%if %{defined perl_bootstrap}
+%gendep_perl_File_Path
+%endif
+BuildArch:      noarch
+Conflicts:      perl < 4:5.16.2-265
+
+%description File-Path
+This module provides a convenient way to create directories of arbitrary
+depth and to delete an entire directory subtree from the file system.
+%endif
+
+%if %{dual_life} || %{rebuild_from_scratch}
+%package File-Temp
+Summary:        Return name and handle of a temporary file safely
+License:        GPL+ or Artistic
+Epoch:          0
+# Normalized version
+Version:        0.230.400
+Requires:       %perl_compat
+BuildArch:      noarch
+Requires:       perl(File::Path) >= 2.06
+Requires:       perl(POSIX)
+%if %{defined perl_bootstrap}
+%gendep_perl_File_Temp
+%endif
+Conflicts:      perl < 4:5.16.2-265
+
+%description File-Temp
+File::Temp can be used to create and open temporary files in a safe way.
+There is both a function interface and an object-oriented interface. The
+File::Temp constructor or the tempfile() function can be used to return the
+name and the open file handle of a temporary file. The tempdir() function
+can be used to create a temporary directory.
+%endif
+
+%if %{dual_life} || %{rebuild_from_scratch}
+# FIXME Filter-Simple? version?
+%package Filter
+Summary:        Perl source filters
+License:        GPL+ or Artistic
+Epoch:          2
+Version:        1.55
+Requires:       %perl_compat
+%if %{defined perl_bootstrap}
+%gendep_perl_Filter
+%endif
+
+%description Filter
+Source filters alter the program text of a module before Perl sees it, much as
+a C preprocessor alters the source text of a C program before the compiler
+sees it.
+%endif
+
+%if %{dual_life} || %{rebuild_from_scratch}
+%package Filter-Simple
+Summary:        Simplified Perl source filtering
+License:        GPL+ or Artistic
+Epoch:          0
+Version:        0.93
+BuildArch:      noarch
+Requires:       %perl_compat
+Conflicts:      perl < 4:5.20.1-312
+Requires:       perl(Text::Balanced) >= 1.97
+Requires:       perl(warnings)
+%if %{defined perl_bootstrap}
+%gendep_perl_Filter_Simple
+%endif
+
+%description Filter-Simple
+The Filter::Simple Perl module provides a simplified interface to
+Filter::Util::Call; one that is sufficient for most common cases.
+%endif
+
+%if %{dual_life} || %{rebuild_from_scratch}
+%package Getopt-Long
+Summary:        Extended processing of command line options
+License:        GPLv2+ or Artistic
+Epoch:          1
+Version:        2.49
+Requires:       %perl_compat
+Requires:       perl(overload)
+Requires:       perl(Text::ParseWords)
+# Recommended:
+Requires:       perl(Pod::Usage) >= 1.14
+%if %{defined perl_bootstrap}
+%gendep_perl_Getopt_Long
+%endif
+BuildArch:      noarch
+Conflicts:      perl < 4:5.16.3-268
+
+%description Getopt-Long
+The Getopt::Long module implements an extended getopt function called
+GetOptions(). It parses the command line from @ARGV, recognizing and removing
+specified options and their possible values.  It adheres to the POSIX syntax
+for command line options, with GNU extensions. In general, this means that
+options have long names instead of single letters, and are introduced with
+a double dash "--". Support for bundling of command line options, as was the
+case with the more traditional single-letter approach, is provided but not
+enabled by default.
+%endif
+
+%package IO
+Summary:        Perl input/output modules
+License:        GPL+ or Artistic
+Epoch:          0
+Version:        1.38
+Requires:       %perl_compat
+%if %{defined perl_bootstrap}
+%gendep_perl_IO
+%endif
+Conflicts:      perl < 4:5.22.0-351
+
+%description IO
+This is a collection of Perl input/output modules.
+
+%if %{dual_life} || %{rebuild_from_scratch}
+%package IO-Compress
+Summary:        IO::Compress wrapper for modules
+License:        GPL+ or Artistic
+Epoch:          0
+Version:        2.074
+Requires:       %perl_compat
+Obsoletes:      perl-Compress-Zlib <= 2.020
+Provides:       perl(IO::Uncompress::Bunzip2)
+%if %{defined perl_bootstrap}
+%gendep_perl_IO_Compress
+%endif
+BuildArch:      noarch
+
+%description IO-Compress
+This module is the base class for all IO::Compress and IO::Uncompress modules.
+This module is not intended for direct use in application code. Its sole
+purpose is to to be sub-classed by IO::Compress modules.
+%endif
+
+%if %{dual_life} || %{rebuild_from_scratch}
+%package IO-Socket-IP
+Summary:        Drop-in replacement for IO::Socket::INET supporting both IPv4 and IPv6
+License:        GPL+ or Artistic
+Epoch:          0
+Version:        0.38
+Requires:       %perl_compat
+%if %{defined perl_bootstrap}
+%gendep_perl_IO_Socket_IP
+%endif
+BuildArch:      noarch
+Conflicts:      perl < 4:5.20.0-303
+
+%description IO-Socket-IP
+This module provides a protocol-independent way to use IPv4 and IPv6
+sockets, as a drop-in replacement for IO::Socket::INET. Most constructor
+arguments and methods are provided in a backward-compatible way.
+%endif
+
+%package IO-Zlib
+Summary:        Perl IO:: style interface to Compress::Zlib
+License:        GPL+ or Artistic
+# Epoch bump for clean upgrade over old standalone package
+Epoch:          1
+Version:        1.10
+Requires:       perl(Compress::Zlib)
+Requires:       %perl_compat
+%if %{defined perl_bootstrap}
+%gendep_perl_IO_Zlib
+%endif
+BuildArch:      noarch
+
+%description IO-Zlib
+This modules provides an IO:: style interface to the Compress::Zlib package.
+The main advantage is that you can use an IO::Zlib object in much the same way
+as an IO::File object so you can have common code that doesn't know which sort
+of file it is using.
+
+
+%if %{dual_life} || %{rebuild_from_scratch}
+%package IPC-Cmd
+Summary:        Finding and running system commands made easy
+License:        GPL+ or Artistic
+# Epoch bump for clean upgrade over old standalone package
+Epoch:          2
+Version:        0.96
+Requires:       perl(ExtUtils::MM::Utils)
+Requires:       %perl_compat
+%if %{defined perl_bootstrap}
+%gendep_perl_IPC_Cmd
+%endif
+BuildArch:      noarch
+
+%description IPC-Cmd
+IPC::Cmd allows you to run commands, interactively if desired, in a platform
+independent way, but have them still work.
+%endif
+
+%if %{dual_life} || %{rebuild_from_scratch}
+%package IPC-SysV
+Summary:        Object interface to System V IPC
+License:        GPL+ or Artistic
+Epoch:          0
+Version:        2.07
+Requires:       %perl_compat
+Requires:       perl(DynaLoader)
+%if %{defined perl_bootstrap}
+%gendep_perl_IPC_SysV
+%endif
+Conflicts:      perl < 4:5.22.0-351
+
+%description IPC-SysV
+This is an object interface for System V messages, semaphores, and
+inter-process calls.
+%endif
+
+%if %{dual_life} || %{rebuild_from_scratch}
+%package HTTP-Tiny
+Summary:        A small, simple, correct HTTP/1.1 client
+License:        GPL+ or Artistic
+Epoch:          0
+Version:        0.070
+Requires:       perl(bytes)
+Requires:       perl(Carp)
+Requires:       perl(IO::Socket)
+Requires:       perl(Time::Local)
+%if %{defined perl_bootstrap}
+%gendep_perl_HTTP_Tiny
+%endif
+BuildArch:      noarch
+
+%description HTTP-Tiny
+This is a very simple HTTP/1.1 client, designed primarily for doing simple GET 
+requests without the overhead of a large framework like LWP::UserAgent.
+It is more correct and more complete than HTTP::Lite. It supports proxies 
+(currently only non-authenticating ones) and redirection. It also correctly 
+resumes after EINTR.
+%endif
+
+%if %{dual_life} || %{rebuild_from_scratch}
+%package JSON-PP
+Summary:        JSON::XS compatible pure-Perl module
+Epoch:          1
+# Real version 2.27400
+Version:        2.27.400
+License:        GPL+ or Artistic
+BuildArch:      noarch
+Requires:       %perl_compat 
+Requires:       perl(Data::Dumper)
+Requires:       perl(Encode)
+Requires:       perl(Math::BigFloat)
+Requires:       perl(Math::BigInt)
+Requires:       perl(Scalar::Util)
+Requires:       perl(subs)
+%if %{defined perl_bootstrap}
+%gendep_perl_JSON_PP
+%endif
+Conflicts:      perl-JSON < 2.50
+
+%description JSON-PP
+JSON::XS is the fastest and most proper JSON module on CPAN. It is written by
+Marc Lehmann in C, so must be compiled and installed in the used environment.
+JSON::PP is a pure-Perl module and is compatible with JSON::XS.
+%endif
+
+%if %{dual_life} || %{rebuild_from_scratch}
+%package libnet
+Summary:        Perl clients for various network protocols
+License:        (GPL+ or Artistic) and Artistic
+Epoch:          0
+Version:        3.10
+Requires:       %perl_compat
+Requires:       perl(File::Basename)
+Requires:       perl(IO::Socket) >= 1.05
+# Prefer IO::Socket::IP over IO::Socket::INET6 and IO::Socket::INET
+Requires:       perl(IO::Socket::IP) >= 0.20
+Requires:       perl(POSIX)
+Requires:       perl(Socket) >= 2.016
+Requires:       perl(utf8)
+%if %{defined perl_bootstrap}
+%gendep_perl_libnet
+%endif
+BuildArch:      noarch
+Conflicts:      perl < 4:5.22.0-347
+
+%description libnet
+This is a collection of Perl modules which provides a simple and
+consistent programming interface (API) to the client side of various
+protocols used in the internet community.
+%endif
+
+%package libnetcfg
+Summary:        Configure libnet
+License:        GPL+ or Artistic
+Epoch:          %perl_epoch
+Version:        %perl_version
+# Net::Config is optional
+BuildArch:      noarch
+%if %{defined perl_bootstrap}
+%gendep_perl_libnetcfg
+%endif
+Conflicts:      perl-devel < 4:5.22.0-347
+
+%description libnetcfg
+The libnetcfg utility can be used to configure the libnet.
+
+%if %{dual_life} || %{rebuild_from_scratch}
+%package Locale-Codes
+Summary:        Distribution of modules to handle locale codes
+Epoch:          0
+Version:        3.25
+License:        GPL+ or Artistic
+Requires:       %perl_compat
+Requires:       perl(constant)
+Provides:       perl(Locale::Codes) = %{version}
+%if %{defined perl_bootstrap}
+%gendep_perl_Locale_Codes
+%endif
+BuildArch:      noarch
+
+# Do not export unversioned module
+%global __provides_exclude %{?__provides_exclude:%__provides_exclude|}^perl\\(Locale::Codes\\)\\s*$
+
+# Filter dependencies on private modules. Generator:
+# for F in $(find lib -type f); do perl -e '$/ = undef; $_ = <>; if (/^package #\R([\w:]*);/m) { print qq{|^perl\\\\($1\\\\)} }' "$F"; done
+%global __requires_exclude %{?__requires_exclude:%__requires_exclude|}^perl\\(Locale::Codes::Country_Retired\\)|^perl\\(Locale::Codes::LangFam_Retired\\)|^perl\\(Locale::Codes::Script_Retired\\)|^perl\\(Locale::Codes::LangExt_Codes\\)|^perl\\(Locale::Codes::LangFam_Codes\\)|^perl\\(Locale::Codes::Script_Codes\\)|^perl\\(Locale::Codes::Language_Codes\\)|^perl\\(Locale::Codes::LangExt_Retired\\)|^perl\\(Locale::Codes::Currency_Codes\\)|^perl\\(Locale::Codes::LangVar_Retired\\)|^perl\\(Locale::Codes::Language_Retired\\)|^perl\\(Locale::Codes::Country_Codes\\)|^perl\\(Locale::Codes::LangVar_Codes\\)|^perl\\(Locale::Codes::Currency_Retired\\)
+
+%description Locale-Codes
+Locale-Codes is a distribution containing a set of modules. The modules
+each deal with different types of codes which identify parts of the locale
+including languages, countries, currency, etc.
+%endif
+
+%if %{dual_life} || %{rebuild_from_scratch}
+%package Locale-Maketext
+Summary:        Framework for localization
+License:        GPL+ or Artistic
+Epoch:          0
+Version:        1.28
+Requires:       %perl_compat
+%if %{defined perl_bootstrap}
+%gendep_perl_Locale_Maketext
+%endif
+BuildArch:      noarch
+Conflicts:      perl < 4:5.16.3-268
+
+%description Locale-Maketext
+It is a common feature of applications (whether run directly, or via the Web)
+for them to be "localized" -- i.e., for them to present an English interface
+to an English-speaker, a German interface to a German-speaker, and so on for
+all languages it's programmed with. Locale::Maketext is a framework for
+software localization; it provides you with the tools for organizing and
+accessing the bits of text and text-processing code that you need for
+producing localized applications.
+%endif
+
+%package Locale-Maketext-Simple
+Summary:        Simple interface to Locale::Maketext::Lexicon
+License:        MIT
+# Epoch bump for clean upgrade over old standalone package
+Epoch:          1
+Version:        0.21
+Requires:       %perl_compat
+%if %{defined perl_bootstrap}
+%gendep_perl_Locale_Maketext_Simple
+%endif
+BuildArch:      noarch
+
+%description Locale-Maketext-Simple
+This module is a simple wrapper around Locale::Maketext::Lexicon, designed
+to alleviate the need of creating Language Classes for module authors.
+
+%if %{dual_life} || %{rebuild_from_scratch}
+%package Math-BigInt
+Summary:        Arbitrary-size integer and float mathematics
+License:        GPL+ or Artistic
+Epoch:          1
+# Real version 1.999806
+Version:        1.9998.06
+Requires:       %perl_compat
+Requires:       perl(Carp)
+# File::Spec not used on recent perl
+%if %{defined perl_bootstrap}
+%gendep_perl_Math_BigInt
+%endif
+BuildArch:      noarch
+Conflicts:      perl < 4:5.22.0-347
+
+# Do not export unversioned module
+%global __provides_exclude %{?__provides_exclude:%__provides_exclude|}^perl\\(Math::BigInt\\)\\s*$
+
+%description Math-BigInt
+This provides Perl modules for arbitrary-size integer and float mathematics.
+
+%package Math-BigInt-FastCalc
+Summary:        Math::BigInt::Calc XS implementation
+License:        GPL+ or Artistic
+Epoch:          0
+# Version normalized to dot format
+# Real version 0.5005
+Version:        0.500.500
+Requires:       %perl_compat
+%if %{defined perl_bootstrap}
+%gendep_perl_Math_BigInt_FastCalc
+%endif
+Conflicts:      perl < 4:5.22.0-348
+
+%description Math-BigInt-FastCalc
+This package provides support for faster big integer calculations.
+
+%package Math-BigRat
+Summary:        Arbitrary big rational numbers
+License:        GPL+ or Artistic
+Epoch:          0
+# Real version 0.2611
+Version:        0.2611
+Requires:       %perl_compat
+Requires:       perl(Math::BigInt)
+%if %{defined perl_bootstrap}
+%gendep_perl_Math_BigRat
+%endif
+BuildArch:      noarch
+Conflicts:      perl < 4:5.22.0-348
+
+%description Math-BigRat
+Math::BigRat complements Math::BigInt and Math::BigFloat by providing support
+for arbitrary big rational numbers.
+%endif
+
+%package Math-Complex
+Summary:        Complex numbers and trigonometric functions
+License:        GPL+ or Artistic
+Epoch:          0
+Version:        1.59
+Requires:       %perl_compat
+%if %{defined perl_bootstrap}
+%gendep_perl_Math_Complex
+%endif
+BuildArch:      noarch
+Conflicts:      perl < 4:5.22.0-348
+
+%description Math-Complex
+This package lets you create and manipulate complex numbers. By default, Perl
+limits itself to real numbers, but an extra "use" statement brings full
+complex support, along with a full set of mathematical functions typically
+associated with and/or extended to complex numbers.
+
+%package Memoize
+Summary:        Transparently speed up functions by caching return values
+License:        GPL+ or Artistic
+Epoch:          0
+Version:        1.03
+Requires:       %perl_compat
+# Keep Time::HiRes optional
+%if %{defined perl_bootstrap}
+%gendep_perl_Memoize
+%endif
+BuildArch:      noarch
+Conflicts:      perl < 4:5.22.0-350
+
+%description Memoize
+Memoizing a function makes it faster by trading space for time. It does
+this by caching the return values of the function in a table. If you call
+the function again with the same arguments, memoize jumps in and gives
+you the value out of the table, instead of letting the function compute
+the value all over again.
+
+%if %{dual_life} || %{rebuild_from_scratch}
+%package MIME-Base64
+Summary:        Encoding and decoding of Base64 and quoted-printable strings
+# cpan/MIME-Base64/Base64.xs:   (GPL+ or Artistic) and MIT (Bellcore's part)
+# Other files:                  GPL+ or Artistic
+License:        (GPL+ or Artistic) and MIT
+Epoch:          0
+Version:        3.15
+Requires:       %perl_compat
+%if %{defined perl_bootstrap}
+%gendep_perl_MIME_Base64
+%endif
+Conflicts:      perl < 4:5.22.0-347
+
+%description MIME-Base64
+This package contains a Base64 encoder/decoder and a quoted-printable
+encoder/decoder. These encoding methods are specified in RFC 2045 - MIME
+(Multipurpose Internet Mail Extensions).
+%endif
+
+%if %{dual_life} || %{rebuild_from_scratch}
+%package Module-CoreList
+Summary:        What modules are shipped with versions of perl
+License:        GPL+ or Artistic
+Epoch:          1
+# Real version 5.20181129_26
+Version:        5.20181129
+Requires:       %perl_compat
+Requires:       perl(List::Util)
+Requires:       perl(version) >= 0.88
+%if %{defined perl_bootstrap}
+%gendep_perl_Module_CoreList
+%endif
+BuildArch:      noarch
+
+%description Module-CoreList
+Module::CoreList provides information on which core and dual-life modules
+are shipped with each version of perl.
+
+
+%package Module-CoreList-tools
+Summary:        Tool for listing modules shipped with perl
+License:        GPL+ or Artistic
+Epoch:          1
+# Real version 5.20181129_26
+Version:        5.20181129
+Requires:       %perl_compat
+Requires:       perl(feature)
+Requires:       perl(version) >= 0.88
+Requires:       perl-Module-CoreList = %{epoch}:%{version}-%{release}
+%if %{defined perl_bootstrap}
+%gendep_perl_Module_CoreList_tools
+%endif
+# The files were distributed with perl.spec's subpackage
+# perl-Module-CoreList <= 1:5.020001-309
+Conflicts:      perl-Module-CoreList < 1:5.020001-310
+BuildArch:      noarch
+
+%description Module-CoreList-tools
+This package provides a corelist(1) tool which can be used to query what
+modules were shipped with given perl version.
+%endif
+
+
+%if %{dual_life} || %{rebuild_from_scratch}
+%package Module-Load
+Summary:        Runtime require of both modules and files
+License:        GPL+ or Artistic
+# Epoch bump for clean upgrade over old standalone package
+Epoch:          1
+Version:        0.32
+Requires:       %perl_compat
+%if %{defined perl_bootstrap}
+%gendep_perl_Module_Load
+%endif
+BuildArch:      noarch
+
+%description Module-Load
+Module::Load eliminates the need to know whether you are trying to require
+either a file or a module.
+%endif
+
+
+%if %{dual_life} || %{rebuild_from_scratch}
+%package Module-Load-Conditional
+Summary:        Looking up module information / loading at runtime
+License:        GPL+ or Artistic
+Epoch:          0
+Version:        0.68
+Requires:       %perl_compat
+%if %{defined perl_bootstrap}
+%gendep_perl_Module_Load_Conditional
+%endif
+BuildArch:      noarch
+
+%description Module-Load-Conditional
+Module::Load::Conditional provides simple ways to query and possibly load any
+of the modules you have installed on your system during runtime.
+%endif
+
+
+%package Module-Loaded
+Summary:        Mark modules as loaded or unloaded
+License:        GPL+ or Artistic
+# Epoch bump for clean upgrade over old standalone package
+Epoch:          1
+Version:        0.08
+Requires:       %perl_compat
+%if %{defined perl_bootstrap}
+%gendep_perl_Module_Loaded
+%endif
+BuildArch:      noarch
+
+%description Module-Loaded
+When testing applications, often you find yourself needing to provide
+functionality in your test environment that would usually be provided by
+external modules. Rather than munging the %%INC by hand to mark these external
+modules as loaded, so they are not attempted to be loaded by perl, this module
+offers you a very simple way to mark modules as loaded and/or unloaded.
+
+
+%if %{dual_life} || %{rebuild_from_scratch}
+%package Module-Metadata
+Summary:        Gather package and POD information from perl module files
+Epoch:          0
+Version:        1.000033
+License:        GPL+ or Artistic
+BuildArch:      noarch
+Requires:       %perl_compat
+%if %{defined perl_bootstrap}
+%gendep_perl_Module_Metadata
+%endif
+
+%description Module-Metadata
+Gather package and POD information from perl module files
+%endif
+
+%package Net-Ping
+Summary:        Check a remote host for reachability
+License:        GPL+ or Artistic
+Epoch:          0
+Version:        2.55
+Requires:       %perl_compat
+# Keep Net::Ping::External optional
+%if %{defined perl_bootstrap}
+%gendep_perl_Net_Ping
+%endif
+BuildArch:      noarch
+Conflicts:      perl < 4:5.22.0-350
+
+%description Net-Ping
+Net::Ping module contains methods to test the reachability of remote hosts on
+a network.
+
+%package open
+Summary:        Perl pragma to set default PerlIO layers for input and output
+License:        GPL+ or Artistic
+Epoch:          0
+Version:        1.11
+Requires:       %perl_compat
+Requires:       perl(Carp)
+Requires:       perl(Encode)
+Requires:       perl(encoding)
+%if %{defined perl_bootstrap}
+%gendep_perl_open
+%endif
+Conflicts:      perl < 4:5.20.2-326
+BuildArch:      noarch
+
+%description open
+The "open" pragma serves as one of the interfaces to declare default "layers"
+(also known as "disciplines") for all I/O.
+
+%if %{dual_life} || %{rebuild_from_scratch}
+%package parent
+Summary:        Establish an ISA relationship with base classes at compile time
+License:        GPL+ or Artistic
+# Epoch bump for clean upgrade over old standalone package
+Epoch:          1
+Version:        0.236
+Requires:       %perl_compat
+%if %{defined perl_bootstrap}
+%gendep_perl_parent
+%endif
+BuildArch:      noarch
+
+%description parent
+parent allows you to both load one or more modules, while setting up
+inheritance from those modules at the same time. Mostly similar in effect to:
+
+    package Baz;
+
+    BEGIN {
+        require Foo;
+        require Bar;
+
+        push @ISA, qw(Foo Bar);
+    }
+%endif
+
+%if %{dual_life} || %{rebuild_from_scratch}
+%package Params-Check
+Summary:        Generic input parsing/checking mechanism
+License:        GPL+ or Artistic
+# Epoch bump for clean upgrade over old standalone package
+Epoch:          1
+Version:        0.38
+Requires:       %perl_compat
+%if %{defined perl_bootstrap}
+%gendep_perl_Params_Check
+%endif
+BuildArch:      noarch
+
+%description Params-Check
+Params::Check is a generic input parsing/checking mechanism.
+%endif
+
+%if %{dual_life} || %{rebuild_from_scratch}
+%package PathTools
+Summary:        PathTools Perl module (Cwd, File::Spec)
+License:        (GPL+ or Artistic) and BSD
+Epoch:          0
+Version:        3.67
+Requires:       %perl_compat
+Requires:       perl(Carp)
+%if %{defined perl_bootstrap}
+%gendep_perl_PathTools
+%endif
+
+%description PathTools
+PathTools Perl module (Cwd, File::Spec).
+%endif
+
+%if %{dual_life} || %{rebuild_from_scratch}
+%package perlfaq
+Summary:        Frequently asked questions about Perl
+# Code examples are Public Domain
+License:        (GPL+ or Artistic) and Public Domain
+Epoch:          0
+Version:        5.021011
+Requires:       %perl_compat
+%if %{defined perl_bootstrap}
+%gendep_perl_perlfaq
+%endif
+BuildArch:      noarch
+Conflicts:      perl < 4:5.22.0-347
+
+%description perlfaq
+The perlfaq comprises several documents that answer the most commonly asked
+questions about Perl and Perl programming.
+%endif
+
+%if %{dual_life} || %{rebuild_from_scratch}
+%package PerlIO-via-QuotedPrint
+Summary:        PerlIO layer for quoted-printable strings
+License:        GPL+ or Artistic
+Epoch:          0
+Version:        0.08
+Requires:       %perl_compat
+%if %{defined perl_bootstrap}
+%gendep_perl_PerlIO_via_QuotedPrint
+%endif
+BuildArch:      noarch
+Conflicts:      perl < 4:5.22.0-347
+
+%description PerlIO-via-QuotedPrint
+This module implements a PerlIO layer that works on files encoded in the
+quoted-printable format. It will decode from quoted-printable while
+reading from a handle, and it will encode as quoted-printable while
+writing to a handle.
+%endif
+
+%if %{dual_life} || %{rebuild_from_scratch}
+%package Perl-OSType
+Summary:        Map Perl operating system names to generic types
+Version:        1.010
+Epoch:          0
+License:        GPL+ or Artistic
+Requires:       %perl_compat
+%if %{defined perl_bootstrap}
+%gendep_perl_Perl_OSType
+%endif
+BuildArch:      noarch
+
+%description Perl-OSType
+Modules that provide OS-specific behaviors often need to know if the current
+operating system matches a more generic type of operating systems. For example,
+'linux' is a type of 'Unix' operating system and so is 'freebsd'.
+This module provides a mapping between an operating system name as given by $^O
+and a more generic type. The initial version is based on the OS type mappings
+provided in Module::Build and ExtUtils::CBuilder (thus, Microsoft operating
+systems are given the type 'Windows' rather than 'Win32').
+%endif
+
+%if %{dual_life} || %{rebuild_from_scratch}
+%package Pod-Checker
+Summary:        Check POD documents for syntax errors
+Epoch:          4
+Version:        1.73
+License:        GPL+ or Artistic
+Requires:       %perl_compat
+%if %{defined perl_bootstrap}
+%gendep_perl_Pod_Checker
+%endif
+BuildArch:      noarch
+
+%description Pod-Checker
+Module and tools to verify POD documentation contents for compliance with the
+Plain Old Documentation format specifications.
+%endif
+
+%if %{dual_life} || %{rebuild_from_scratch}
+%package Pod-Escapes
+Summary:        Resolve POD escape sequences
+License:        GPL+ or Artistic
+# Epoch bump for clean upgrade over old standalone package
+Epoch:          1
+Version:        1.07
+Requires:       %perl_compat
+%if %{defined perl_bootstrap}
+%gendep_perl_Pod_Escapes
+%endif
+BuildArch:      noarch
+
+%description Pod-Escapes
+This module provides things that are useful in decoding Pod E<...> sequences.
+%endif
+
+%package Pod-Html
+Summary:        Convert POD files to HTML
+License:        GPL+ or Artistic
+Epoch:          0
+# Real version 1.2202
+Version:        1.22.02
+Requires:       %perl_compat
+%if %{defined perl_bootstrap}
+%gendep_perl_Pod_Html
+%endif
+BuildArch:      noarch
+Conflicts:      perl < 4:5.22.0-350
+
+%description Pod-Html
+This package converts files from POD format (see perlpod) to HTML format. It
+can automatically generate indexes and cross-references, and it keeps a cache
+of things it knows how to cross-reference.
+
+%if %{dual_life} || %{rebuild_from_scratch}
+%package Pod-Parser
+Summary:        Basic perl modules for handling Plain Old Documentation (POD)
+License:        GPL+ or Artistic
+Epoch:          0
+Version:        1.63
+Requires:       %perl_compat
+%if %{defined perl_bootstrap}
+%gendep_perl_Pod_Parser
+%endif
+BuildArch:      noarch
+
+%description Pod-Parser
+This software distribution contains the packages for using Perl5 POD (Plain
+Old Documentation). See the "perlpod" and "perlsyn" manual pages from your
+Perl5 distribution for more information about POD.
+%endif
+
+%if %{dual_life} || %{rebuild_from_scratch}
+%package Pod-Perldoc
+Summary:        Look up Perl documentation in Pod format
+License:        GPL+ or Artistic
+Epoch:          0
+Version:        3.28
+%if %{with perl_enables_groff}
+# Pod::Perldoc::ToMan executes roff
+Requires:       groff-base
+%endif
+Requires:       %perl_compat
+Requires:       perl(File::Temp) >= 0.22
+Requires:       perl(HTTP::Tiny)
+Requires:       perl(IO::Handle)
+Requires:       perl(IPC::Open3)
+# POD2::Base is optional
+# Pod::Checker is not needed if Pod::Simple::Checker is available
+Requires:       perl(Pod::Simple::Checker)
+Requires:       perl(Pod::Simple::RTF) >= 3.16
+Requires:       perl(Pod::Simple::XMLOutStream) >= 3.16
+Requires:       perl(Text::ParseWords)
+# Tk is optional
+Requires:       perl(Symbol)
+%if %{defined perl_bootstrap}
+%gendep_perl_Pod_Perldoc
+%endif
+BuildArch:      noarch
+
+%description Pod-Perldoc
+perldoc looks up a piece of documentation in .pod format that is embedded
+in the perl installation tree or in a perl script, and displays it via
+"groff -man | $PAGER". This is primarily used for the documentation for
+the perl library modules.
+%endif
+
+%if %{dual_life} || %{rebuild_from_scratch}
+%package Pod-Simple
+Summary:        Framework for parsing POD documentation
+License:        GPL+ or Artistic
+# Epoch bump for clean upgrade over old standalone package
+Epoch:          1
+Version:        3.35
+Requires:       %perl_compat
+%if %{defined perl_bootstrap}
+%gendep_perl_Pod_Simple
+%endif
+BuildArch:      noarch
+
+%description Pod-Simple
+Pod::Simple is a Perl library for parsing text in the Pod ("plain old
+documentation") markup language that is typically used for writing
+documentation for Perl and for Perl modules.
+%endif
+
+%if %{dual_life} || %{rebuild_from_scratch}
+%package Pod-Usage
+Summary:        Print a usage message from embedded pod documentation
+License:        GPL+ or Artistic
+Epoch:          4
+Version:        1.69
+Requires:       %perl_compat
+# Pod::Usage executes perldoc from perl-Pod-Perldoc by default
+Requires:       perl-Pod-Perldoc
+Requires:       perl(Pod::Text)
+%if %{defined perl_bootstrap}
+%gendep_perl_Pod_Usage
+%endif
+BuildArch:      noarch
+
+%description Pod-Usage
+pod2usage will print a usage message for the invoking script (using its
+embedded POD documentation) and then exit the script with the desired exit
+status. The usage message printed may have any one of three levels of
+"verboseness": If the verbose level is 0, then only a synopsis is printed.
+If the verbose level is 1, then the synopsis is printed along with a
+description (if present) of the command line options and arguments. If the
+verbose level is 2, then the entire manual page is printed.
+%endif
+
+%if %{dual_life} || %{rebuild_from_scratch}
+%package podlators
+Summary:        Format POD source into various output formats
+License:        (GPL+ or Artistic) and MIT
+Epoch:          0
+Version:        4.09
+BuildArch:      noarch
+Requires:       %perl_compat
+Requires:       perl(File::Spec) >= 0.8
+Requires:       perl(Pod::Simple) >= 3.06
+%if %{defined perl_bootstrap}
+%gendep_perl_podlators
+%endif
+Conflicts:      perl < 4:5.16.1-234
+
+%description podlators
+This package contains Pod::Man and Pod::Text modules which convert POD input
+to *roff source output, suitable for man pages, or plain text.  It also
+includes several sub-classes of Pod::Text for formatted output to terminals
+with various capabilities.
+%endif
+
+%if %{dual_life} || %{rebuild_from_scratch}
+%package Scalar-List-Utils
+Summary:        A selection of general-utility scalar and list subroutines
+License:        GPL+ or Artistic
+Epoch:          3
+# Real version 1.46_02
+Version:        1.46
+Requires:       %perl_compat
+%if %{defined perl_bootstrap}
+%gendep_perl_Scalar_List_Utils
+%endif
+
+%description Scalar-List-Utils
+Scalar::Util and List::Util contain a selection of subroutines that people have
+expressed would be nice to have in the perl core, but the usage would not
+really be high enough to warrant the use of a keyword, and the size so small
+such that being individual extensions would be wasteful.
+%endif
+
+%package SelfLoader
+Summary:        Load functions only on demand
+License:        GPL+ or Artistic
+Epoch:          0
+Version:        1.23
+BuildArch:      noarch
+Requires:       %perl_compat
+Requires:       perl(Carp)
+%if %{defined perl_bootstrap}
+%gendep_perl_SelfLoader
+%endif
+Conflicts:      perl < 4:5.22.0-351
+
+%description SelfLoader
+This Perl module tells its users that functions in a package are to be
+autoloaded from after the "__DATA__" token. See also "Autoloading" in
+perlsub.
+
+%if %{dual_life} || %{rebuild_from_scratch}
+%package Socket
+Summary:        C socket.h defines and structure manipulators
+License:        GPL+ or Artistic
+Epoch:          4
+Version:        2.020
+Requires:       %perl_compat
+%if %{defined perl_bootstrap}
+%gendep_perl_Socket
+%endif
+
+%description Socket
+This module is just a translation of the C socket.h file.  Unlike the old
+mechanism of requiring a translated socket.ph file, this uses the h2xs program
+(see the Perl source distribution) and your native C compiler.  This means
+that it has a far more likely chance of getting the numbers right.  This
+includes all of the commonly used pound-defines like AF_INET, SOCK_STREAM, etc.
+%endif
+
+%if %{dual_life} || %{rebuild_from_scratch}
+%package Storable
+Summary:        Persistence for Perl data structures
+License:        GPL+ or Artistic
+Epoch:          1
+Version:        2.62
+Requires:       %perl_compat
+# Carp substitutes missing Log::Agent
+Requires:       perl(Carp)
+Requires:       perl(Config)
+# Fcntl is optional, but locking is good
+Requires:       perl(Fcntl)
+Requires:       perl(IO::File)
+%if %{defined perl_bootstrap}
+%gendep_perl_Storable
+%endif
+Conflicts:      perl < 4:5.16.3-274
+
+%description Storable
+The Storable package brings persistence to your Perl data structures
+containing scalar, array, hash or reference objects, i.e. anything that
+can be conveniently stored to disk and retrieved at a later time.
+%endif
+
+%if %{dual_life} || %{rebuild_from_scratch}
+%package Sys-Syslog
+Summary:        Perl interface to the UNIX syslog(3) calls
+License:        GPL+ or Artistic
+Epoch:          0
+Version:        0.35
+Requires:       %perl_compat
+Requires:       perl(XSLoader)
+%if %{defined perl_bootstrap}
+%gendep_perl_Sys_Syslog
+%endif
+Conflicts:      perl < 4:5.16.3-269
+
+%description Sys-Syslog
+Sys::Syslog is an interface to the UNIX syslog(3) function. Call syslog() with
+a string priority and a list of printf() arguments just like at syslog(3).
+%endif
+
+%if %{dual_life} || %{rebuild_from_scratch}
+%package Term-ANSIColor
+Summary:        Color screen output using ANSI escape sequences
+License:        GPL+ or Artistic
+Epoch:          0
+Version:        4.06
+Requires:       %perl_compat
+Requires:       perl(Carp)
+%if %{defined perl_bootstrap}
+%gendep_perl_Term_ANSIColor
+%endif
+BuildArch:      noarch
+Conflicts:      perl < 4:5.18.2-302
+
+%description Term-ANSIColor
+This module has two interfaces, one through color() and colored() and the
+other through constants. It also offers the utility functions uncolor(),
+colorstrip(), colorvalid(), and coloralias(), which have to be explicitly
+imported to be used.
+%endif
+
+%if %{dual_life} || %{rebuild_from_scratch}
+%package Term-Cap
+Summary:        Perl termcap interface
+License:        GPL+ or Artistic
+Epoch:          0
+Version:        1.17
+Requires:       %perl_compat
+# ncurses for infocmp tool
+Requires:       ncurses
+Requires:       perl(Carp)
+%if %{defined perl_bootstrap}
+%gendep_perl_Term_Cap
+%endif
+BuildArch:      noarch
+Conflicts:      perl < 4:5.22.0-347
+
+%description Term-Cap
+These are low-level functions to extract and use capabilities from a terminal
+capability (termcap) database.
+%endif
+
+%package Test
+Summary:        Simple framework for writing test scripts
+License:        GPL+ or Artistic
+Epoch:          0
+Version:        1.30
+Requires:       %perl_compat
+# Algorithm::Diff 1.15 is optional
+Requires:       perl(File::Temp)
+%if %{defined perl_bootstrap}
+%gendep_perl_Test
+%endif
+BuildArch:      noarch
+Conflicts:      perl < 4:5.22.0-351
+
+%description Test
+The Test Perl module simplifies the task of writing test files for Perl modules,
+such that their output is in the format that Test::Harness expects to see.
+
+%if %{dual_life} || %{rebuild_from_scratch}
+%package Test-Harness
+Summary:        Run Perl standard test scripts with statistics
+License:        GPL+ or Artistic
+Epoch:          1
+Version:        3.38
+Requires:       %perl_compat
+%if %{defined perl_bootstrap}
+%gendep_perl_Test_Harness
+%endif
+BuildArch:      noarch
+
+%description Test-Harness
+Run Perl standard test scripts with statistics.
+Use TAP::Parser, Test::Harness package was whole rewritten.
+%endif
+
+%if %{dual_life} || %{rebuild_from_scratch}
+%package Test-Simple
+Summary:        Basic utilities for writing tests
+License:        (GPL+ or Artistic) and CC0 and Public Domain
+Epoch:          1
+Version:        1.302073
+Requires:       %perl_compat
+Requires:       perl(Data::Dumper)
+%if %{defined perl_bootstrap}
+%gendep_perl_Test_Simple
+%endif
+BuildArch:      noarch
+
+%description Test-Simple
+Basic utilities for writing tests.
+%endif
+
+%if %{dual_life} || %{rebuild_from_scratch}
+%package Text-Balanced
+Summary:        Extract delimited text sequences from strings
+License:        GPL+ or Artistic
+Epoch:          0
+Version:        2.03
+Requires:       %perl_compat
+%if %{defined perl_bootstrap}
+%gendep_perl_Text_Balanced
+%endif
+BuildArch:      noarch
+Conflicts:      perl < 4:5.22.0-347
+
+%description Text-Balanced
+These Perl subroutines may be used to extract a delimited substring, possibly
+after skipping a specified prefix string.
+%endif
+
+%if %{dual_life} || %{rebuild_from_scratch}
+%package Text-ParseWords
+Summary:        Parse text into an array of tokens or array of arrays
+License:        GPL+ or Artistic
+Epoch:          0
+Version:        3.30
+Requires:       %perl_compat
+Requires:       perl(Carp)
+%if %{defined perl_bootstrap}
+%gendep_perl_Text_ParseWords
+%endif
+BuildArch:      noarch
+Conflicts:      perl < 4:5.16.2-256
+
+%description Text-ParseWords
+Parse text into an array of tokens or array of arrays.
+%endif
+
+%if %{dual_life} || %{rebuild_from_scratch}
+%package Text-Tabs+Wrap
+Summary:        Expand tabs and do simple line wrapping
+License:        TTWL
+Epoch:          0
+Version:        2013.0523
+Requires:       %perl_compat
+%if %{defined perl_bootstrap}
+%gendep_perl_Text_Tabs_Wrap
+%endif
+BuildArch:      noarch
+Conflicts:      perl < 4:5.20.2-325
+
+%description Text-Tabs+Wrap
+Text::Tabs performs the same job that the UNIX expand(1) and unexpand(1)
+commands do: adding or removing tabs from a document.
+
+Text::Wrap::wrap() will reformat lines into paragraphs. All it does is break
+up long lines, it will not join short lines together.
+%endif
+
+%if %{dual_life} || %{rebuild_from_scratch}
+%package Thread-Queue
+Summary:        Thread-safe queues
+License:        GPL+ or Artistic
+Epoch:          0
+Version:        3.12
+Requires:       %perl_compat
+Requires:       perl(Carp)
+%if %{defined perl_bootstrap}
+%gendep_perl_Thread_Queue
+%endif
+BuildArch:      noarch
+Conflicts:      perl < 4:5.16.2-257
+
+%description Thread-Queue
+This module provides thread-safe FIFO queues that can be accessed safely by
+any number of threads.
+%endif
+
+%if %{dual_life} || %{rebuild_from_scratch}
+%package Time-HiRes
+Summary:        High resolution alarm, sleep, gettimeofday, interval timers
+License:        GPL+ or Artistic
+Epoch:          0
+Version:        1.9741
+Requires:       %perl_compat
+Requires:       perl(Carp)
+%if %{defined perl_bootstrap}
+%gendep_perl_Time_HiRes
+%endif
+Conflicts:      perl < 4:5.16.3-271
+
+%description Time-HiRes
+The Time::HiRes module implements a Perl interface to the usleep, nanosleep,
+ualarm, gettimeofday, and setitimer/getitimer system calls, in other words,
+high resolution time and timers.
+%endif
+
+%if %{dual_life} || %{rebuild_from_scratch}
+%package Time-Local
+Summary:        Efficiently compute time from local and GMT time
+License:        GPL+ or Artistic
+Epoch:          0
+# Real version 1.25
+Version:        1.250
+Requires:       %perl_compat
+%if %{defined perl_bootstrap}
+%gendep_perl_Time_Local
+%endif
+BuildArch:      noarch
+Conflicts:      perl < 4:5.16.3-262
+
+%description Time-Local
+This module provides functions that are the inverse of built-in perl functions
+localtime() and gmtime(). They accept a date as a six-element array, and
+return the corresponding time(2) value in seconds since the system epoch
+(Midnight, January 1, 1970 GMT on Unix, for example). This value can be
+positive or negative, though POSIX only requires support for positive values,
+so dates before the system's epoch may not work on all operating systems.
+%endif
+
+%package Time-Piece
+Summary:        Time objects from localtime and gmtime
+License:        (GPL+ or Artistic) and BSD
+Epoch:          0
+Version:        1.31
+Requires:       %perl_compat
+%if %{defined perl_bootstrap}
+%gendep_perl_Time_Piece
+%endif
+
+%description Time-Piece
+The Time::Piece module replaces the standard localtime and gmtime functions
+with implementations that return objects.  It does so in a backwards compatible
+manner, so that using localtime or gmtime as documented in perlfunc still
+behave as expected.
+
+%if %{dual_life} || %{rebuild_from_scratch}
+%package threads
+Summary:        Perl interpreter-based threads
+License:        GPL+ or Artistic
+Epoch:          1
+Version:        2.15
+Requires:       %perl_compat
+%if %{defined perl_bootstrap}
+%gendep_perl_threads
+%endif
+
+%description threads
+Since Perl 5.8, thread programming has been available using a model called
+interpreter threads  which provides a new Perl interpreter for each thread,
+and, by default, results in no data or state information being shared between
+threads.
+
+(Prior to Perl 5.8, 5005threads was available through the Thread.pm API. This
+threading model has been deprecated, and was removed as of Perl 5.10.0.)
+
+As just mentioned, all variables are, by default, thread local. To use shared
+variables, you need to also load threads::shared.
+%endif
+
+%if %{dual_life} || %{rebuild_from_scratch}
+%package threads-shared
+Summary:        Perl extension for sharing data structures between threads
+License:        GPL+ or Artistic
+Epoch:          0
+Version:        1.56
+Requires:       %perl_compat
+%if %{defined perl_bootstrap}
+%gendep_perl_threads_shared
+%endif
+
+%description threads-shared
+By default, variables are private to each thread, and each newly created thread
+gets a private copy of each existing variable. This module allows you to share
+variables across different threads (and pseudo-forks on Win32). It is used
+together with the threads module.  This module supports the sharing of the
+following data types only: scalars and scalar refs, arrays and array refs, and
+hashes and hash refs.
+%endif
+
+%if %{dual_life} || %{rebuild_from_scratch}
+%package Unicode-Collate
+Summary:        Unicode Collation Algorithm
+License:        (GPL+ or Artistic) and Unicode
+Epoch:          0
+Version:        1.19
+Requires:       %perl_compat
+Requires:       perl(Unicode::Normalize)
+%if %{defined perl_bootstrap}
+%gendep_perl_Unicode_Collate
+%endif
+Conflicts:      perl < 4:5.22.0-347
+
+%description Unicode-Collate
+This package is Perl implementation of Unicode Technical Standard #10 (Unicode
+Collation Algorithm).
+%endif
+
+%if %{dual_life} || %{rebuild_from_scratch}
+%package Unicode-Normalize
+Summary:        Unicode Normalization Forms
+License:        GPL+ or Artistic
+Epoch:          0
+Version:        1.25
+Requires:       %perl_compat
+# unicore/CombiningClass.pl and unicore/Decomposition.pl from perl, perl is
+# auto-detected.
+%if %{defined perl_bootstrap}
+%gendep_perl_Unicode_Normalize
+%endif
+Conflicts:      perl < 4:5.22.0-347
+
+%description Unicode-Normalize
+This package provides Perl functions that can convert strings into various
+Unicode normalization forms as defined in Unicode Standard Annex #15.
+%endif
+
+%if %{dual_life} || %{rebuild_from_scratch}
+%package version
+Summary:        Perl extension for Version Objects
+License:        GPL+ or Artistic
+# Epoch bump for clean upgrade over old standalone package
+Epoch:          6
+# real version 0.9917
+Version:        0.99.17
+Requires:       %perl_compat
+%if %{defined perl_bootstrap}
+%gendep_perl_version
+%endif
+BuildArch:      noarch
+
+%description version
+Perl extension for Version Objects
+%endif
+
+%prep
+%setup -q -n perl-%{perl_version}
+%patch1 -p1
+%ifarch %{multilib_64_archs}
+%patch3 -p1
+%endif
+%patch4 -p1
+%patch5 -p1
+%patch6 -p1
+%patch7 -p1
+%patch8 -p1
+%patch15 -p1
+%patch16 -p1
+%patch22 -p1
+%patch26 -p1
+%patch30 -p1
+%patch31 -p1
+%patch36 -p1
+%patch38 -p1
+%patch43 -p1
+%patch45 -p1
+%patch46 -p1
+%patch47 -p1
+%patch48 -p1
+%patch49 -p1
+%patch51 -p1
+%patch52 -p1
+%patch54 -p1
+%patch55 -p1
+%patch56 -p1
+%patch58 -p1
+%patch61 -p1
+%patch64 -p1
+%patch65 -p1
+%patch66 -p1
+%patch67 -p1
+%patch68 -p1
+%patch69 -p1
+%patch70 -p1
+%patch71 -p1
+%patch72 -p1
+%patch73 -p1
+%patch74 -p1
+%patch75 -p1
+%patch76 -p1
+%patch77 -p1
+%patch78 -p1
+%patch79 -p1
+%patch80 -p1
+%patch81 -p1
+%patch82 -p1
+%patch83 -p1
+%patch84 -p1
+%patch85 -p1
+%patch86 -p1
+%patch88 -p1
+%patch89 -p1
+%patch90 -p1
+%patch91 -p1
+%patch200 -p1
+%patch201 -p1
+
+%if !%{defined perl_bootstrap}
+# Local patch tracking
+perl -x patchlevel.h \
+    'Fedora Patch1: Removes date check, Fedora/RHEL specific' \
+%ifarch %{multilib_64_archs} \
+    'Fedora Patch3: support for libdir64' \
+%endif \
+    'Fedora Patch4: use libresolv instead of libbind' \
+    'Fedora Patch5: USE_MM_LD_RUN_PATH' \
+    'Fedora Patch6: Provide MM::maybe_command independently (bug #1129443)' \
+    'Fedora Patch7: Dont run one io test due to random builder failures' \
+    'Fedora Patch15: Define SONAME for libperl.so' \
+    'Fedora Patch16: Install libperl.so to -Dshrpdir value' \
+    'Fedora Patch22: Document Math::BigInt::CalcEmu requires Math::BigInt (CPAN RT#85015)' \
+    'Fedora Patch26: Make *DBM_File desctructors thread-safe (RT#61912)' \
+    'Fedora Patch27: Make PadlistNAMES() lvalue again (CPAN RT#101063)' \
+    'Fedora 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 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' \
+    'Fedora Patch46: Fix t/op/hash.t test random failures' \
+    'Fedora Patch47: Parse caret variables with subscripts as normal variables inside ${...} escaping (RT#131664)' \
+    'Fedora Patch49: Do not display too many bytes when reporting malformed UTF-8 character' \
+    'Fedora Patch51: Fix error message for "our sub foo::bar" (RT#131679)' \
+    'Fedora Patch52: Fix executing arybase::_tie_it() in Safe compartement (RT#131588)' \
+    'Fedora Patch54: Fix splitting non-ASCII strings if unicode_strings feature is enabled (RT#130907)' \
+    '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 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)' \
+    'Fedora Patch67: Fix a crash when untying an object witout a stash' \
+    'Fedora Patch68: Fix deparsing of transliterations with unprintable characters (RT#132405)' \
+    'Fedora Patch69: Fix error reporting on do() on a directory (RT#125774)' \
+    'Fedora Patch70: Fix stack manipulation when a lexical subroutine is defined in a do block in a member of an iteration list (RT#132442)' \
+    'Fedora Patch71: Fix setting $! when statting a closed filehandle (RT#108288)' \
+    '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 (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: 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 Patch86: Adjust tests to gdbm-1.15 (RT#133295)' \
+    'Fedora Patch88: Fix printing a warning about a wide character when matching a regular expression while ISO-8859-1 locale is in effect' \
+    'Fedora Patch89: Fix invoking a check for wide characters while ISO-8859-1 locale is in effect' \
+    'Fedora Patch90: Pass the correct CFLAGS to dtrace' \
+    'RHEL Patch91: Fix Time-Local tests to pass after year 2019 (bug #1807120)' \
+    '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}
+%endif
+
+#copy the example script
+cp -a %{SOURCE5} .
+
+#copy Pod-Html license clarification
+cp %{SOURCE6} .
+
+#
+# Candidates for doc recoding (need case by case review):
+# find . -name "*.pod" -o -name "README*" -o -name "*.pm" | xargs file -i | grep charset= | grep -v '\(us-ascii\|utf-8\)'
+recode()
+{
+        iconv -f "${2:-iso-8859-1}" -t utf-8 < "$1" > "${1}_"
+        touch -r "$1" "${1}_"
+        mv -f "${1}_" "$1"
+}
+# TODO iconv fail on this one
+##recode README.tw big5
+#recode pod/perlebcdic.pod
+#recode pod/perlhack.pod
+#recode pod/perlhist.pod
+#recode pod/perlthrtut.pod
+#recode AUTHORS
+
+find . -name \*.orig -exec rm -fv {} \;
+
+# Configure Compress::Zlib to use system zlib
+sed -i 's|BUILD_ZLIB      = True|BUILD_ZLIB      = False|
+    s|INCLUDE         = ./zlib-src|INCLUDE         = %{_includedir}|
+    s|LIB             = ./zlib-src|LIB             = %{_libdir}|' \
+    cpan/Compress-Raw-Zlib/config.in
+
+# Ensure that we never accidentally bundle zlib or bzip2
+rm -rf cpan/Compress-Raw-Zlib/zlib-src
+rm -rf cpan/Compress-Raw-Bzip2/bzip2-src
+sed -i '/\(bzip2\|zlib\)-src/d' MANIFEST
+
+%if !%{with gdbm}
+# Do not install anything requiring NDBM_File if NDBM is not available.
+rm -rf 'cpan/Memoize/Memoize/NDBM_File.pm'
+sed -i '\|cpan/Memoize/Memoize/NDBM_File.pm|d' MANIFEST
+%endif
+
+
+%build
+echo "RPM Build arch: %{_arch}"
+
+# use "lib", not %%{_lib}, for privlib, sitelib, and vendorlib
+# To build production version, we would need -DDEBUGGING=-g
+
+# Perl INC path (perl -V) in search order:
+# - /usr/local/share/perl5            -- for CPAN     (site lib)
+# - /usr/local/lib[64]/perl5          -- for CPAN     (site arch)
+# - /usr/share/perl5/vendor_perl      -- 3rd party    (vendor lib)
+# - /usr/lib[64]/perl5/vendor_perl    -- 3rd party    (vendor arch)
+# - /usr/share/perl5                  -- Fedora       (priv lib)
+# - /usr/lib[64]/perl5                -- Fedora       (arch lib)
+
+%global privlib     %{_prefix}/share/perl5
+%global archlib     %{_libdir}/perl5
+
+%global perl_vendorlib  %{privlib}/vendor_perl
+%global perl_vendorarch %{archlib}/vendor_perl
+
+# ldflags is not used when linking XS modules.
+# Only ldflags is used when linking miniperl.
+# Only ccflags and ldflags are used for Configure's compiler checks.
+# Set optimize=none to prevent from injecting upstream's value.
+/bin/sh Configure -des \
+        -Doptimize="none" \
+        -Dccflags="$RPM_OPT_FLAGS" \
+        -Dldflags="$RPM_LD_FLAGS" \
+        -Dccdlflags="-Wl,--enable-new-dtags $RPM_LD_FLAGS" \
+        -Dlddlflags="-shared $RPM_LD_FLAGS" \
+        -Dshrpdir="%{_libdir}" \
+        -DDEBUGGING=-g \
+        -Dversion=%{perl_version} \
+        -Dmyhostname=localhost \
+        -Dperladmin=root@localhost \
+        -Dcc='%{__cc}' \
+        -Dcf_by='Red Hat, Inc.' \
+        -Dprefix=%{_prefix} \
+%if %{without perl_enables_groff}
+        -Dman1dir="%{_mandir}/man1" \
+        -Dman3dir="%{_mandir}/man3" \
+%endif
+        -Dvendorprefix=%{_prefix} \
+        -Dsiteprefix=%{_prefix}/local \
+        -Dsitelib="%{_prefix}/local/share/perl5" \
+        -Dsitearch="%{_prefix}/local/%{_lib}/perl5" \
+        -Dprivlib="%{privlib}" \
+        -Dvendorlib="%{perl_vendorlib}" \
+        -Darchlib="%{archlib}" \
+        -Dvendorarch="%{perl_vendorarch}" \
+        -Darchname=%{perl_archname} \
+%ifarch %{multilib_64_archs}
+        -Dlibpth="/usr/local/lib64 /lib64 %{_prefix}/lib64" \
+%endif
+%ifarch sparc sparcv9
+        -Ud_longdbl \
+%endif
+        -Duseshrplib \
+        -Dusethreads \
+        -Duseithreads \
+%if %{with perl_enables_systemtap}
+        -Dusedtrace='/usr/bin/dtrace' \
+%else
+        -Uusedtrace \
+%endif
+        -Duselargefiles \
+        -Dd_semctl_semun \
+        -Di_db \
+%if %{with gdbm}
+        -Ui_ndbm \
+        -Di_gdbm \
+%endif
+        -Di_shadow \
+        -Di_syslog \
+        -Dman3ext=3pm \
+        -Duseperlio \
+        -Dinstallusrbinperl=n \
+        -Ubincompat5005 \
+        -Uversiononly \
+        -Dpager='/usr/bin/less -isr' \
+        -Dd_gethostent_r_proto -Ud_endhostent_r_proto -Ud_sethostent_r_proto \
+        -Ud_endprotoent_r_proto -Ud_setprotoent_r_proto \
+        -Ud_endservent_r_proto -Ud_setservent_r_proto \
+        -Dscriptdir='%{_bindir}' \
+        -Dusesitecustomize \
+        -Duse64bitint
+
+# -Duseshrplib creates libperl.so, -Ubincompat5005 help create DSO -> libperl.so
+
+BUILD_BZIP2=0
+BZIP2_LIB=%{_libdir}
+export BUILD_BZIP2 BZIP2_LIB
+
+# Prepapre a symlink from proper DSO name to libperl.so now so that new perl
+# can be executed from make.
+%global soname libperl.so.%(echo '%{perl_version}' | sed 's/^\\([^.]*\\.[^.]*\\).*/\\1/')
+test -L %soname || ln -s libperl.so %soname
+
+%ifarch sparc64 %{arm}
+make
+%else
+make %{?_smp_mflags}
+%endif
+
+%install
+make install DESTDIR=$RPM_BUILD_ROOT
+
+%global build_archlib $RPM_BUILD_ROOT%{archlib}
+%global build_privlib $RPM_BUILD_ROOT%{privlib}
+%global build_bindir  $RPM_BUILD_ROOT%{_bindir}
+%global new_perl LD_PRELOAD="%{build_archlib}/CORE/libperl.so" \\\
+    LD_LIBRARY_PATH="%{build_archlib}/CORE" \\\
+    PERL5LIB="%{build_archlib}:%{build_privlib}" \\\
+    %{build_bindir}/perl
+
+# Make proper DSO names, move libperl to standard path.
+mv "%{build_archlib}/CORE/libperl.so" \
+    "$RPM_BUILD_ROOT%{_libdir}/libperl.so.%{perl_version}"
+ln -s "libperl.so.%{perl_version}" "$RPM_BUILD_ROOT%{_libdir}/%{soname}"
+ln -s "libperl.so.%{perl_version}" "$RPM_BUILD_ROOT%{_libdir}/libperl.so"
+# XXX: Keep symlink from original location because various code glues
+# $archlib/CORE/$libperl to get the DSO.
+ln -s "../../libperl.so.%{perl_version}" "%{build_archlib}/CORE/libperl.so"
+# XXX: Remove the soname named file from CORE directory that was created as
+# a symlink in build section and installed as a regular file by perl build
+# system.
+rm -f "%{build_archlib}/CORE/%{soname}"
+
+install -p -m 755 utils/pl2pm %{build_bindir}/pl2pm
+
+for i in asm/termios.h syscall.h syslimits.h syslog.h \
+    sys/ioctl.h sys/socket.h sys/time.h wait.h
+do
+    %{new_perl} %{build_bindir}/h2ph -a -d %{build_archlib} $i || true
+done
+
+# vendor directories (in this case for third party rpms)
+# perl doesn't create the auto subdirectory, but modules put things in it,
+# so we need to own it.
+
+mkdir -p $RPM_BUILD_ROOT%{perl_vendorarch}/auto
+mkdir -p $RPM_BUILD_ROOT%{perl_vendorlib}
+
+#
+# perl RPM macros
+#
+mkdir -p ${RPM_BUILD_ROOT}%{_rpmmacrodir}
+install -p -m 644 %{SOURCE3} ${RPM_BUILD_ROOT}%{_rpmmacrodir}
+
+#
+# Core modules removal
+#
+# Dual-living binaries clashes on debuginfo files between perl and standalone
+# packages. Excluding is not enough, we need to remove them. This is
+# a work-around for rpmbuild bug #878863.
+find $RPM_BUILD_ROOT -type f -name '*.bs' -empty -delete
+chmod -R u+w $RPM_BUILD_ROOT/*
+
+# miniperl? As an interpreter? How odd. Anyway, a symlink does it:
+rm %{build_privlib}/ExtUtils/xsubpp
+ln -s ../../../bin/xsubpp %{build_privlib}/ExtUtils/
+
+# Don't need the .packlist
+rm %{build_archlib}/.packlist
+
+# Do not distribute File::Spec::VMS as it works on VMS only (bug #973713)
+# We cannot remove it in %%prep because dist/Cwd/t/Spec.t test needs it.
+rm %{build_archlib}/File/Spec/VMS.pm
+rm $RPM_BUILD_ROOT%{_mandir}/man3/File::Spec::VMS.3*
+
+# Fix some manpages to be UTF-8
+mkdir -p $RPM_BUILD_ROOT%{_mandir}/man1/
+pushd $RPM_BUILD_ROOT%{_mandir}/man1/
+  for i in perl588delta.1 perldelta.1 ; do
+    iconv -f MS-ANSI -t UTF-8 $i --output new-$i
+    rm $i
+    mv new-$i $i
+  done
+popd
+
+# for now, remove Bzip2:
+# Why? Now is missing Bzip2 files and provides
+##find $RPM_BUILD_ROOT -name Bzip2 | xargs rm -r
+##find $RPM_BUILD_ROOT -name '*B*zip2*'| xargs rm
+
+# tests -- FIXME need to validate that this all works as expected
+mkdir -p %{buildroot}%{perl5_testdir}/perl-tests
+
+# "core"
+tar -cf - t/ | ( cd %{buildroot}%{perl5_testdir}/perl-tests && tar -xf - )
+
+# "dual-lifed"
+for dir in `find ext/ -type d -name t -maxdepth 2` ; do
+
+    tar -cf - $dir | ( cd %{buildroot}%{perl5_testdir}/perl-tests/t && tar -xf - )
+done
+
+# Normalize shell bangs in tests.
+# brp-mangle-shebangs executed by rpm-build chokes on t/TEST.
+%{new_perl} -MConfig -i -pn \
+    -e 's"\A#!(?:perl|\./perl|/usr/bin/perl|/usr/bin/env perl)\b"$Config{startperl}"' \
+    $(find %{buildroot}%{perl5_testdir}/perl-tests -type f)
+
+%if %{with perl_enables_systemtap}
+# Systemtap tapset install
+mkdir -p %{buildroot}%{tapsetdir}
+%ifarch %{multilib_64_archs}
+%global libperl_stp libperl%{perl_version}-64.stp
+%else
+%global libperl_stp libperl%{perl_version}-32.stp
+%endif
+
+sed \
+  -e "s|LIBRARY_PATH|%{_libdir}/%{soname}|" \
+  %{SOURCE4} \
+  > %{buildroot}%{tapsetdir}/%{libperl_stp}
+%endif
+
+# TODO: Canonicalize test files (rewrite intrerpreter path, fix permissions)
+# XXX: We cannot rewrite ./perl before %%check phase. Otherwise the test
+# would run against system perl at build-time.
+# See __spec_check_pre global macro in macros.perl.
+#T_FILES=`find %%{buildroot}%%{perl5_testdir} -type f -name '*.t'`
+#%%fix_shbang_line $T_FILES
+#%%{__chmod} +x $T_FILES
+#%%{_fixperms} %%{buildroot}%%{perl5_testdir}
+#
+# lib/perl5db.t will fail if Term::ReadLine::Gnu is available
+%check
+%if %{with test}
+%{new_perl} -I/lib regen/lib_cleanup.pl
+pushd t
+%{new_perl} -I../lib porting/customized.t --regen
+popd
+%if %{parallel_tests}
+    JOBS=$(printf '%%s' "%{?_smp_mflags}" | sed 's/.*-j\([0-9][0-9]*\).*/\1/')
+    LC_ALL=C TEST_JOBS=$JOBS make test_harness
+%else
+    LC_ALL=C make test
+%endif
+%endif
+
+%ldconfig_scriptlets libs
+
+%files
+# We sub-package modules from perl-interpreter subpackage. Main perl package
+# is a meta package.
+
+%files interpreter
+%{_mandir}/man1/*.1*
+%{_mandir}/man3/*.3*
+%{_bindir}/*
+%{archlib}/*
+%{privlib}/*
+
+
+# libs
+%exclude %dir %{archlib}
+%exclude %dir %{archlib}/auto
+%exclude %{archlib}/auto/re
+%exclude %dir %{archlib}/CORE
+%exclude %{archlib}/CORE/libperl.so
+%exclude %{archlib}/re.pm
+%exclude %{_libdir}/libperl.so.*
+%exclude %dir %{perl_vendorarch}
+%exclude %dir %{perl_vendorarch}/auto
+%exclude %dir %{privlib}
+%exclude %{privlib}/integer.pm
+%exclude %{privlib}/strict.pm
+%exclude %{privlib}/unicore
+%exclude %{privlib}/utf8.pm
+%exclude %{privlib}/utf8_heavy.pl
+%exclude %{privlib}/warnings.pm
+%exclude %{privlib}/XSLoader.pm
+%exclude %dir %{perl_vendorlib}
+%exclude %{_mandir}/man3/integer.*
+%exclude %{_mandir}/man3/re.*
+%exclude %{_mandir}/man3/strict.*
+%exclude %{_mandir}/man3/utf8.*
+%exclude %{_mandir}/man3/warnings.*
+%exclude %{_mandir}/man3/XSLoader.*
+
+# devel
+%exclude %{_bindir}/h2xs
+%exclude %{_mandir}/man1/h2xs*
+%exclude %{_bindir}/perlivp
+%exclude %{_mandir}/man1/perlivp*
+%exclude %{archlib}/CORE/*.h
+%exclude %{_libdir}/libperl.so
+%exclude %{_mandir}/man1/perlxs*
+%if %{with perl_enables_systemtap}
+%exclude %dir %{_datadir}/systemtap
+%exclude %dir %{_datadir}/systemtap/tapset
+%endif
+
+# utils
+%exclude %{_bindir}/h2ph
+%exclude %{_bindir}/perlbug
+%exclude %{_bindir}/perlthanks
+%exclude %{_bindir}/pl2pm
+%exclude %{_bindir}/splain
+%exclude %{privlib}/pod/perlutil.pod
+%exclude %{_mandir}/man1/h2ph.*
+%exclude %{_mandir}/man1/perlbug.*
+%exclude %{_mandir}/man1/perlthanks.*
+%exclude %{_mandir}/man1/perlutil.*
+%exclude %{_mandir}/man1/pl2pm.*
+%exclude %{_mandir}/man1/splain.*
+
+# Archive-Tar
+%exclude %{_bindir}/ptar
+%exclude %{_bindir}/ptardiff
+%exclude %{_bindir}/ptargrep
+%exclude %dir %{privlib}/Archive
+%exclude %{privlib}/Archive/Tar
+%exclude %{privlib}/Archive/Tar.pm
+%exclude %{_mandir}/man1/ptar.1*
+%exclude %{_mandir}/man1/ptardiff.1*
+%exclude %{_mandir}/man1/ptargrep.1*
+%exclude %{_mandir}/man3/Archive::Tar*
+
+# Attribute-Handlers
+%exclude %{privlib}/Attribute
+%exclude %{_mandir}/man3/Attribute::Handlers.*
+
+# autodie
+%exclude %{privlib}/autodie/
+%exclude %{privlib}/autodie.pm
+%exclude %{privlib}/Fatal.pm
+%exclude %{_mandir}/man3/autodie.3*
+%exclude %{_mandir}/man3/autodie::*
+%exclude %{_mandir}/man3/Fatal.3*
+
+# B-Debug
+%exclude %{privlib}/B/Debug.pm
+%exclude %{_mandir}/man3/B::Debug.3*
+
+# bignum
+%exclude %{privlib}/bigint.pm
+%exclude %{privlib}/bignum.pm
+%exclude %{privlib}/bigrat.pm
+%exclude %{privlib}/Math/BigFloat
+%exclude %{privlib}/Math/BigInt/Trace.pm
+%exclude %{_mandir}/man3/bigint.*
+%exclude %{_mandir}/man3/bignum.*
+%exclude %{_mandir}/man3/bigrat.*
+
+# Carp
+%exclude %{privlib}/Carp
+%exclude %{privlib}/Carp.*
+%exclude %{_mandir}/man3/Carp.*
+
+# Config-Perl-V
+%exclude %{privlib}/Config/Perl
+%exclude %{_mandir}/man3/Config::Perl::V.*
+
+# constant
+%exclude %{privlib}/constant.pm
+%exclude %{_mandir}/man3/constant.3*
+
+# CPAN
+%exclude %{_bindir}/cpan
+%exclude %dir %{privlib}/App
+%exclude %{privlib}/App/Cpan.pm
+%exclude %{privlib}/CPAN
+%exclude %{privlib}/CPAN.pm
+%exclude %{_mandir}/man1/cpan.1*
+%exclude %{_mandir}/man3/App::Cpan.*
+%exclude %{_mandir}/man3/CPAN.*
+%exclude %{_mandir}/man3/CPAN:*
+
+# CPAN-Meta
+%exclude %dir %{privlib}/CPAN
+%exclude %{privlib}/CPAN/Meta.pm
+%exclude %dir %{privlib}/CPAN/Meta
+%exclude %{privlib}/CPAN/Meta/Converter.pm
+%exclude %{privlib}/CPAN/Meta/Feature.pm
+%exclude %dir %{privlib}/CPAN/Meta/History
+%exclude %{privlib}/CPAN/Meta/History.pm
+%exclude %{privlib}/CPAN/Meta/Merge.pm
+%exclude %{privlib}/CPAN/Meta/Prereqs.pm
+%exclude %{privlib}/CPAN/Meta/Spec.pm
+%exclude %{privlib}/CPAN/Meta/Validator.pm
+%exclude %dir %{privlib}/Parse
+%exclude %dir %{privlib}/Parse/CPAN
+%exclude %{privlib}/Parse/CPAN/Meta.pm
+%exclude %{_mandir}/man3/CPAN::Meta*
+%exclude %{_mandir}/man3/Parse::CPAN::Meta.3*
+
+# CPAN-Meta-Requirements
+%exclude %dir %{privlib}/CPAN
+%exclude %dir %{privlib}/CPAN/Meta
+%exclude %{privlib}/CPAN/Meta/Requirements.pm
+%exclude %{_mandir}/man3/CPAN::Meta::Requirements.3*
+
+# CPAN-Meta-YAML
+%exclude %dir %{privlib}/CPAN
+%exclude %dir %{privlib}/CPAN/Meta
+%exclude %{privlib}/CPAN/Meta/YAML.pm
+%exclude %{_mandir}/man3/CPAN::Meta::YAML*
+
+# Compress-Raw-Bzip2
+%exclude %dir %{archlib}/Compress
+%exclude %dir %{archlib}/Compress/Raw
+%exclude %{archlib}/Compress/Raw/Bzip2.pm
+%exclude %dir %{archlib}/auto/Compress
+%exclude %dir %{archlib}/auto/Compress/Raw
+%exclude %{archlib}/auto/Compress/Raw/Bzip2
+%exclude %{_mandir}/man3/Compress::Raw::Bzip2*
+
+# Compress-Raw-Zlib
+%exclude %dir %{archlib}/Compress
+%exclude %dir %{archlib}/Compress/Raw
+%exclude %{archlib}/Compress/Raw/Zlib.pm
+%exclude %dir %{archlib}/auto/Compress
+%exclude %dir %{archlib}/auto/Compress/Raw
+%exclude %{archlib}/auto/Compress/Raw/Zlib
+%exclude %{_mandir}/man3/Compress::Raw::Zlib*
+
+# Data-Dumper
+%exclude %dir %{archlib}/auto/Data
+%exclude %dir %{archlib}/auto/Data/Dumper
+%exclude %{archlib}/auto/Data/Dumper/Dumper.so
+%exclude %dir %{archlib}/Data
+%exclude %{archlib}/Data/Dumper.pm
+%exclude %{_mandir}/man3/Data::Dumper.3*
+
+# DB_File
+%exclude %{archlib}/DB_File.pm
+%exclude %dir %{archlib}/auto/DB_File
+%exclude %{archlib}/auto/DB_File/DB_File.so
+%exclude %{_mandir}/man3/DB_File*
+
+# Devel-Peek
+%dir %exclude %{archlib}/Devel
+%exclude %{archlib}/Devel/Peek.pm
+%dir %exclude %{archlib}/auto/Devel
+%exclude %{archlib}/auto/Devel/Peek
+%exclude %{_mandir}/man3/Devel::Peek.*
+
+# Devel-PPPort
+%exclude %{archlib}/Devel/PPPort.pm
+%exclude %{_mandir}/man3/Devel::PPPort.3*
+
+# Devel-SelfStubber
+%exclude %dir %{privlib}/Devel
+%exclude %{privlib}/Devel/SelfStubber.pm
+%exclude %{_mandir}/man3/Devel::SelfStubber.*
+
+# Digest
+%exclude %{privlib}/Digest.pm
+%exclude %dir %{privlib}/Digest
+%exclude %{privlib}/Digest/base.pm
+%exclude %{privlib}/Digest/file.pm
+%exclude %{_mandir}/man3/Digest.3*
+%exclude %{_mandir}/man3/Digest::base.3*
+%exclude %{_mandir}/man3/Digest::file.3*
+
+# Digest-MD5
+%exclude %dir %{archlib}/Digest
+%exclude %{archlib}/Digest/MD5.pm
+%exclude %dir %{archlib}/auto/Digest
+%exclude %{archlib}/auto/Digest/MD5
+%exclude %{_mandir}/man3/Digest::MD5.3*
+
+# Digest-SHA
+%exclude %{_bindir}/shasum
+%exclude %dir %{archlib}/Digest
+%exclude %{archlib}/Digest/SHA.pm
+%exclude %dir %{archlib}/auto/Digest
+%exclude %{archlib}/auto/Digest/SHA
+%exclude %{_mandir}/man1/shasum.1*
+%exclude %{_mandir}/man3/Digest::SHA.3*
+
+# Encode
+%exclude %{_bindir}/encguess
+%exclude %{_bindir}/piconv
+%exclude %{archlib}/Encode*
+%exclude %{archlib}/auto/Encode*
+%exclude %{privlib}/Encode
+%exclude %{_mandir}/man1/encguess.1*
+%exclude %{_mandir}/man1/piconv.1*
+%exclude %{_mandir}/man3/Encode*.3*
+
+# encoding
+%exclude %{archlib}/encoding.pm
+%exclude %{_mandir}/man3/encoding.3*
+
+# Encode-devel
+%exclude %{_bindir}/enc2xs
+%exclude %dir %{privlib}/Encode
+%exclude %{privlib}/Encode/*.e2x
+%exclude %{privlib}/Encode/encode.h
+%exclude %{_mandir}/man1/enc2xs.1*
+
+# Env
+%exclude %{privlib}/Env.pm
+%exclude %{_mandir}/man3/Env.3*
+
+# Errno
+%exclude %{archlib}/Errno.pm
+%exclude %{_mandir}/man3/Errno.*
+
+# Exporter
+%exclude %{privlib}/Exporter*
+%exclude %{_mandir}/man3/Exporter*
+
+# experimental
+%exclude %{privlib}/experimental*
+%exclude %{_mandir}/man3/experimental*
+
+# ExtUtils-CBuilder
+%exclude %{privlib}/ExtUtils/CBuilder
+%exclude %{privlib}/ExtUtils/CBuilder.pm
+%exclude %{_mandir}/man3/ExtUtils::CBuilder*
+
+# ExtUtils-Command
+%exclude %{privlib}/ExtUtils/Command.pm
+%exclude %{_mandir}/man3/ExtUtils::Command.*
+
+# ExtUtils-Embed
+%exclude %{privlib}/ExtUtils/Embed.pm
+%exclude %{_mandir}/man3/ExtUtils::Embed*
+
+# ExtUtils-Install
+%exclude %{privlib}/ExtUtils/Install.pm
+%exclude %{privlib}/ExtUtils/Installed.pm
+%exclude %{privlib}/ExtUtils/Packlist.pm
+%exclude %{_mandir}/man3/ExtUtils::Install.3*
+%exclude %{_mandir}/man3/ExtUtils::Installed.3*
+%exclude %{_mandir}/man3/ExtUtils::Packlist.3*
+
+# ExtUtils-Manifest
+%exclude %{privlib}/ExtUtils/Manifest.pm
+%exclude %{privlib}/ExtUtils/MANIFEST.SKIP
+%exclude %{_mandir}/man3/ExtUtils::Manifest.3*
+
+# ExtUtils-MakeMaker
+%exclude %{_bindir}/instmodsh
+%exclude %{privlib}/ExtUtils/Command
+%exclude %{privlib}/ExtUtils/Liblist
+%exclude %{privlib}/ExtUtils/Liblist.pm
+%exclude %{privlib}/ExtUtils/MakeMaker
+%exclude %{privlib}/ExtUtils/MakeMaker.pm
+%exclude %{privlib}/ExtUtils/MM.pm
+%exclude %{privlib}/ExtUtils/MM_*.pm
+%exclude %{privlib}/ExtUtils/MY.pm
+%exclude %{privlib}/ExtUtils/Mkbootstrap.pm
+%exclude %{privlib}/ExtUtils/Mksymlists.pm
+%exclude %{privlib}/ExtUtils/testlib.pm
+%exclude %{_mandir}/man1/instmodsh.1*
+%exclude %{_mandir}/man3/ExtUtils::Command::MM*
+%exclude %{_mandir}/man3/ExtUtils::Liblist.3*
+%exclude %{_mandir}/man3/ExtUtils::MM.3*
+%exclude %{_mandir}/man3/ExtUtils::MM_*
+%exclude %{_mandir}/man3/ExtUtils::MY.3*
+%exclude %{_mandir}/man3/ExtUtils::MakeMaker*
+%exclude %{_mandir}/man3/ExtUtils::Mkbootstrap.3*
+%exclude %{_mandir}/man3/ExtUtils::Mksymlists.3*
+%exclude %{_mandir}/man3/ExtUtils::testlib.3*
+
+# ExtUtils-Miniperl
+%exclude %{privlib}/ExtUtils/Miniperl.pm
+%exclude %{_mandir}/man3/ExtUtils::Miniperl.3*
+
+# ExtUtils-MM-Utils
+%exclude %dir %{privlib}/ExtUtils/MM
+%exclude %{privlib}/ExtUtils/MM/Utils.pm
+%exclude %{_mandir}/man3/ExtUtils::MM::Utils.*
+
+# ExtUtils-ParseXS
+%exclude %dir %{privlib}/ExtUtils/ParseXS
+%exclude %{privlib}/ExtUtils/ParseXS.pm
+%exclude %{privlib}/ExtUtils/ParseXS.pod
+%exclude %{privlib}/ExtUtils/ParseXS/Constants.pm
+%exclude %{privlib}/ExtUtils/ParseXS/CountLines.pm
+%exclude %{privlib}/ExtUtils/ParseXS/Eval.pm
+%exclude %{privlib}/ExtUtils/ParseXS/Utilities.pm
+%exclude %dir %{privlib}/ExtUtils/Typemaps
+%exclude %{privlib}/ExtUtils/Typemaps.pm
+%exclude %{privlib}/ExtUtils/Typemaps/Cmd.pm
+%exclude %{privlib}/ExtUtils/Typemaps/InputMap.pm
+%exclude %{privlib}/ExtUtils/Typemaps/OutputMap.pm
+%exclude %{privlib}/ExtUtils/Typemaps/Type.pm
+%exclude %{privlib}/ExtUtils/xsubpp
+%exclude %{_bindir}/xsubpp
+%exclude %{_mandir}/man1/xsubpp*
+%exclude %{_mandir}/man3/ExtUtils::ParseXS.3*
+%exclude %{_mandir}/man3/ExtUtils::ParseXS::Constants.3*
+%exclude %{_mandir}/man3/ExtUtils::ParseXS::Eval.3*
+%exclude %{_mandir}/man3/ExtUtils::ParseXS::Utilities.3*
+%exclude %{_mandir}/man3/ExtUtils::Typemaps.3*
+%exclude %{_mandir}/man3/ExtUtils::Typemaps::Cmd.3*
+%exclude %{_mandir}/man3/ExtUtils::Typemaps::InputMap.3*
+%exclude %{_mandir}/man3/ExtUtils::Typemaps::OutputMap.3*
+%exclude %{_mandir}/man3/ExtUtils::Typemaps::Type.3*
+
+# File-Fetch
+%exclude %{privlib}/File/Fetch.pm
+%exclude %{_mandir}/man3/File::Fetch.3*
+
+# File-Path
+%exclude %{privlib}/File/Path.pm
+%exclude %{_mandir}/man3/File::Path.3*
+
+# File-Temp
+%exclude %{privlib}/File/Temp.pm
+%exclude %{_mandir}/man3/File::Temp.3*
+
+# Filter
+%exclude %dir %{archlib}/auto/Filter
+%exclude %{archlib}/auto/Filter/Util
+%exclude %dir %{archlib}/Filter
+%exclude %{archlib}/Filter/Util
+%exclude %{privlib}/pod/perlfilter.pod
+%exclude %{_mandir}/man1/perlfilter.*
+%exclude %{_mandir}/man3/Filter::Util::*
+
+# Filter-Simple
+%exclude %dir %{privlib}/Filter
+%exclude %{privlib}/Filter/Simple.pm
+%exclude %{_mandir}/man3/Filter::Simple.3*
+
+# Getopt-Long
+%exclude %{privlib}/Getopt/Long.pm
+%exclude %{_mandir}/man3/Getopt::Long.3*
+
+# IO
+%exclude %dir %{archlib}/IO
+%exclude %{archlib}/IO.pm
+%exclude %{archlib}/IO/Dir.pm
+%exclude %{archlib}/IO/File.pm
+%exclude %{archlib}/IO/Handle.pm
+%exclude %{archlib}/IO/Pipe.pm
+%exclude %{archlib}/IO/Poll.pm
+%exclude %{archlib}/IO/Seekable.pm
+%exclude %{archlib}/IO/Select.pm
+%exclude %dir %{archlib}/IO/Socket
+%exclude %{archlib}/IO/Socket/INET.pm
+%exclude %{archlib}/IO/Socket/UNIX.pm
+%exclude %{archlib}/IO/Socket.pm
+%exclude %dir %{archlib}/auto/IO
+%exclude %{archlib}/auto/IO/IO.so
+%exclude %{_mandir}/man3/IO.*
+%exclude %{_mandir}/man3/IO::Dir.*
+%exclude %{_mandir}/man3/IO::File.*
+%exclude %{_mandir}/man3/IO::Handle.*
+%exclude %{_mandir}/man3/IO::Pipe.*
+%exclude %{_mandir}/man3/IO::Poll.*
+%exclude %{_mandir}/man3/IO::Seekable.*
+%exclude %{_mandir}/man3/IO::Select.*
+%exclude %{_mandir}/man3/IO::Socket::INET.*
+%exclude %{_mandir}/man3/IO::Socket::UNIX.*
+%exclude %{_mandir}/man3/IO::Socket.*
+
+# IO-Compress
+%exclude %{_bindir}/zipdetails
+%exclude %dir %{privlib}/IO
+%exclude %dir %{privlib}/IO/Compress
+%exclude %{privlib}/IO/Compress/FAQ.pod
+%exclude %{_mandir}/man1/zipdetails.*
+%exclude %{_mandir}/man3/IO::Compress::FAQ.*
+# Compress-Zlib
+%exclude %dir %{privlib}/Compress
+%exclude %{privlib}/Compress/Zlib.pm
+%exclude %{_mandir}/man3/Compress::Zlib*
+# IO-Compress-Base
+%exclude %{privlib}/File/GlobMapper.pm
+%exclude %dir %{privlib}/IO
+%exclude %dir %{privlib}/IO/Compress
+%exclude %{privlib}/IO/Compress/Base
+%exclude %{privlib}/IO/Compress/Base.pm
+%exclude %dir %{privlib}/IO/Uncompress
+%exclude %{privlib}/IO/Uncompress/AnyUncompress.pm
+%exclude %{privlib}/IO/Uncompress/Base.pm
+%exclude %{_mandir}/man3/File::GlobMapper.*
+%exclude %{_mandir}/man3/IO::Compress::Base.*
+%exclude %{_mandir}/man3/IO::Uncompress::AnyUncompress.*
+%exclude %{_mandir}/man3/IO::Uncompress::Base.*
+# IO-Compress-Zlib
+%exclude %dir %{privlib}/IO
+%exclude %dir %{privlib}/IO/Compress
+%exclude %{privlib}/IO/Compress/Adapter
+%exclude %{privlib}/IO/Compress/Deflate.pm
+%exclude %{privlib}/IO/Compress/Gzip
+%exclude %{privlib}/IO/Compress/Gzip.pm
+%exclude %{privlib}/IO/Compress/RawDeflate.pm
+%exclude %{privlib}/IO/Compress/Bzip2.pm
+%exclude %{privlib}/IO/Compress/Zip
+%exclude %{privlib}/IO/Compress/Zip.pm
+%exclude %{privlib}/IO/Compress/Zlib
+%exclude %dir %{privlib}/IO/Uncompress
+%exclude %{privlib}/IO/Uncompress/Adapter
+%exclude %{privlib}/IO/Uncompress/AnyInflate.pm
+%exclude %{privlib}/IO/Uncompress/Bunzip2.pm
+%exclude %{privlib}/IO/Uncompress/Gunzip.pm
+%exclude %{privlib}/IO/Uncompress/Inflate.pm
+%exclude %{privlib}/IO/Uncompress/RawInflate.pm
+%exclude %{privlib}/IO/Uncompress/Unzip.pm
+%exclude %{_mandir}/man3/IO::Compress::Deflate*
+%exclude %{_mandir}/man3/IO::Compress::Bzip2*
+%exclude %{_mandir}/man3/IO::Compress::Gzip*
+%exclude %{_mandir}/man3/IO::Compress::RawDeflate*
+%exclude %{_mandir}/man3/IO::Compress::Zip*
+%exclude %{_mandir}/man3/IO::Uncompress::AnyInflate*
+%exclude %{_mandir}/man3/IO::Uncompress::Bunzip2*
+%exclude %{_mandir}/man3/IO::Uncompress::Gunzip*
+%exclude %{_mandir}/man3/IO::Uncompress::Inflate*
+%exclude %{_mandir}/man3/IO::Uncompress::RawInflate*
+%exclude %{_mandir}/man3/IO::Uncompress::Unzip*
+
+# IO-Socket-IP
+%exclude %dir %{privlib}/IO
+%exclude %dir %{privlib}/IO/Socket
+%exclude %{privlib}/IO/Socket/IP.pm
+%exclude %{_mandir}/man3/IO::Socket::IP.*
+
+# IO-Zlib
+%exclude %dir %{privlib}/IO
+%exclude %{privlib}/IO/Zlib.pm
+%exclude %{_mandir}/man3/IO::Zlib.*
+
+# HTTP-Tiny
+%exclude %dir %{privlib}/HTTP
+%exclude %{privlib}/HTTP/Tiny.pm
+%exclude %{_mandir}/man3/HTTP::Tiny*
+
+# IPC-Cmd
+%exclude %{privlib}/IPC/Cmd.pm
+%exclude %{_mandir}/man3/IPC::Cmd.3*
+
+# IPC-SysV
+%exclude %{archlib}/auto/IPC
+%exclude %{archlib}/IPC/Msg.pm
+%exclude %{archlib}/IPC/Semaphore.pm
+%exclude %{archlib}/IPC/SharedMem.pm
+%exclude %{archlib}/IPC/SysV.pm
+%exclude %{_mandir}/man3/IPC::Msg.*
+%exclude %{_mandir}/man3/IPC::Semaphore.*
+%exclude %{_mandir}/man3/IPC::SharedMem.*
+%exclude %{_mandir}/man3/IPC::SysV.*
+
+# JSON-PP
+%exclude %{_bindir}/json_pp
+%exclude %dir %{privlib}/JSON
+%exclude %{privlib}/JSON/PP
+%exclude %{privlib}/JSON/PP.pm
+%exclude %{_mandir}/man1/json_pp.1*
+%exclude %{_mandir}/man3/JSON::PP.3*
+%exclude %{_mandir}/man3/JSON::PP::Boolean.3pm*
+
+# libnet
+%exclude %{privlib}/Net/Cmd.pm
+%exclude %{privlib}/Net/Config.pm
+%exclude %{privlib}/Net/Domain.pm
+%exclude %{privlib}/Net/FTP
+%exclude %{privlib}/Net/FTP.pm
+%exclude %{privlib}/Net/libnetFAQ.pod
+%exclude %{privlib}/Net/NNTP.pm
+%exclude %{privlib}/Net/Netrc.pm
+%exclude %{privlib}/Net/POP3.pm
+%exclude %{privlib}/Net/SMTP.pm
+%exclude %{privlib}/Net/Time.pm
+%exclude %{_mandir}/man3/Net::Cmd.*
+%exclude %{_mandir}/man3/Net::Config.*
+%exclude %{_mandir}/man3/Net::Domain.*
+%exclude %{_mandir}/man3/Net::FTP.*
+%exclude %{_mandir}/man3/Net::libnetFAQ.*
+%exclude %{_mandir}/man3/Net::NNTP.*
+%exclude %{_mandir}/man3/Net::Netrc.*
+%exclude %{_mandir}/man3/Net::POP3.*
+%exclude %{_mandir}/man3/Net::SMTP.*
+%exclude %{_mandir}/man3/Net::Time.*
+
+# libnetcfg
+%exclude %{_bindir}/libnetcfg
+%exclude %{_mandir}/man1/libnetcfg*
+
+# Locale-Codes
+%exclude %dir %{privlib}/Locale
+%exclude %{privlib}/Locale/Codes
+%exclude %{privlib}/Locale/Codes.*
+%exclude %{privlib}/Locale/Country.*
+%exclude %{privlib}/Locale/Currency.*
+%exclude %{privlib}/Locale/Language.*
+%exclude %{privlib}/Locale/Script.*
+%exclude %{_mandir}/man3/Locale::Codes::*
+%exclude %{_mandir}/man3/Locale::Codes.*
+%exclude %{_mandir}/man3/Locale::Country.*
+%exclude %{_mandir}/man3/Locale::Currency.*
+%exclude %{_mandir}/man3/Locale::Language.*
+%exclude %{_mandir}/man3/Locale::Script.*
+
+# Locale-Maketext
+%exclude %dir %{privlib}/Locale
+%exclude %dir %{privlib}/Locale/Maketext
+%exclude %{privlib}/Locale/Maketext.*
+%exclude %{privlib}/Locale/Maketext/Cookbook.*
+%exclude %{privlib}/Locale/Maketext/Guts.*
+%exclude %{privlib}/Locale/Maketext/GutsLoader.*
+%exclude %{privlib}/Locale/Maketext/TPJ13.*
+%exclude %{_mandir}/man3/Locale::Maketext.*
+%exclude %{_mandir}/man3/Locale::Maketext::Cookbook.*
+%exclude %{_mandir}/man3/Locale::Maketext::Guts.*
+%exclude %{_mandir}/man3/Locale::Maketext::GutsLoader.*
+%exclude %{_mandir}/man3/Locale::Maketext::TPJ13.*
+
+# Locale-Maketext-Simple
+%exclude %dir %{privlib}/Locale
+%exclude %dir %{privlib}/Locale/Maketext
+%exclude %{privlib}/Locale/Maketext/Simple.pm
+%exclude %{_mandir}/man3/Locale::Maketext::Simple.*
+
+# Math-BigInt
+%exclude %{privlib}/Math/BigFloat.pm
+%exclude %{privlib}/Math/BigInt.pm
+%exclude %dir %exclude %{privlib}/Math/BigInt
+%exclude %{privlib}/Math/BigInt/Calc.pm
+%exclude %{privlib}/Math/BigInt/CalcEmu.pm
+%exclude %{privlib}/Math/BigInt/Lib.pm
+%exclude %{_mandir}/man3/Math::BigFloat.*
+%exclude %{_mandir}/man3/Math::BigInt.*
+%exclude %{_mandir}/man3/Math::BigInt::Calc.*
+%exclude %{_mandir}/man3/Math::BigInt::CalcEmu.*
+%exclude %{_mandir}/man3/Math::BigInt::Lib.*
+
+# Math-BigInt-FastCalc
+%exclude %{archlib}/Math
+%exclude %{archlib}/auto/Math
+%exclude %{_mandir}/man3/Math::BigInt::FastCalc.*
+
+# Math-BigRat
+%exclude %{privlib}/Math/BigRat.pm
+%exclude %{_mandir}/man3/Math::BigRat.*
+
+# Math-Complex
+%dir %exclude %{privlib}/Math
+%exclude %{privlib}/Math/Complex.pm
+%exclude %{privlib}/Math/Trig.pm
+%exclude %{_mandir}/man3/Math::Complex.*
+%exclude %{_mandir}/man3/Math::Trig.*
+
+# Memoize
+%exclude %{privlib}/Memoize
+%exclude %{privlib}/Memoize.pm
+%exclude %{_mandir}/man3/Memoize::*
+%exclude %{_mandir}/man3/Memoize.*
+
+# MIME-Base64
+%exclude %{archlib}/auto/MIME
+%exclude %{archlib}/MIME
+%exclude %{_mandir}/man3/MIME::*
+
+# Module-CoreList
+%exclude %dir %{privlib}/Module
+%exclude %{privlib}/Module/CoreList
+%exclude %{privlib}/Module/CoreList.pm
+%exclude %{privlib}/Module/CoreList.pod
+%exclude %{_mandir}/man3/Module::CoreList*
+
+# Module-CoreList-tools
+%exclude %{_bindir}/corelist
+%exclude %{_mandir}/man1/corelist*
+
+# Module-Load
+%exclude %dir %{privlib}/Module
+%exclude %{privlib}/Module/Load.pm
+%exclude %{_mandir}/man3/Module::Load.*
+
+# Module-Load-Conditional
+%exclude %dir %{privlib}/Module
+%exclude %{privlib}/Module/Load
+%exclude %{_mandir}/man3/Module::Load::Conditional*
+
+# Module-Loaded
+%exclude %dir %{privlib}/Module
+%exclude %{privlib}/Module/Loaded.pm
+%exclude %{_mandir}/man3/Module::Loaded*
+
+# Module-Metadata
+%exclude %dir %{privlib}/Module
+%exclude %{privlib}/Module/Metadata.pm
+%exclude %{_mandir}/man3/Module::Metadata.3pm*
+
+# Net-Ping
+%exclude %{privlib}/Net/Ping.pm
+%exclude %{_mandir}/man3/Net::Ping.*
+
+# PathTools
+%exclude %{archlib}/Cwd.pm
+%exclude %{archlib}/File/Spec*
+%exclude %{archlib}/auto/Cwd/
+%exclude %{_mandir}/man3/Cwd*
+%exclude %{_mandir}/man3/File::Spec*
+
+# Params-Check
+%exclude %{privlib}/Params/
+%exclude %{_mandir}/man3/Params::Check*
+
+# perlfaq
+%exclude %{privlib}/perlfaq.pm
+%exclude %{privlib}/pod/perlfaq*
+%exclude %{privlib}/pod/perlglossary.pod
+%exclude %{_mandir}/man1/perlfaq*
+%exclude %{_mandir}/man1/perlglossary.*
+
+# PerlIO-via-QuotedPrint
+%exclude %{privlib}/PerlIO
+%exclude %{_mandir}/man3/PerlIO::via::QuotedPrint.*
+
+# Perl-OSType
+%exclude %dir %{privlib}/Perl
+%exclude %{privlib}/Perl/OSType.pm
+%exclude %{_mandir}/man3/Perl::OSType.3pm*
+
+# open
+%exclude %{privlib}/open.pm
+%exclude %{_mandir}/man3/open.3*
+
+# parent
+%exclude %{privlib}/parent.pm
+%exclude %{_mandir}/man3/parent.3*
+
+# Pod-Checker
+%exclude %{_bindir}/podchecker
+%exclude %{privlib}/Pod/Checker.pm
+%exclude %{_mandir}/man1/podchecker.*
+%exclude %{_mandir}/man3/Pod::Checker.*
+
+# Pod-Escapes
+%exclude %{privlib}/Pod/Escapes.pm
+%exclude %{_mandir}/man3/Pod::Escapes.*
+
+# Pod-Html
+%exclude %{_bindir}/pod2html
+%exclude %{privlib}/Pod/Html.pm
+%exclude %{_mandir}/man1/pod2html.1*
+%exclude %{_mandir}/man3/Pod::Html.*
+
+# Pod-Parser
+%exclude %{_bindir}/podselect
+%exclude %{privlib}/Pod/Find.pm
+%exclude %{privlib}/Pod/InputObjects.pm
+%exclude %{privlib}/Pod/ParseUtils.pm
+%exclude %{privlib}/Pod/Parser.pm
+%exclude %{privlib}/Pod/PlainText.pm
+%exclude %{privlib}/Pod/Select.pm
+%exclude %{_mandir}/man1/podselect.1*
+%exclude %{_mandir}/man3/Pod::Find.*
+%exclude %{_mandir}/man3/Pod::InputObjects.*
+%exclude %{_mandir}/man3/Pod::ParseUtils.*
+%exclude %{_mandir}/man3/Pod::Parser.*
+%exclude %{_mandir}/man3/Pod::PlainText.*
+%exclude %{_mandir}/man3/Pod::Select.*
+
+# Pod-Perldoc
+%exclude %{_bindir}/perldoc
+%exclude %{privlib}/pod/perldoc.pod
+%exclude %{privlib}/Pod/Perldoc.pm
+%exclude %{privlib}/Pod/Perldoc/
+%exclude %{_mandir}/man1/perldoc.1*
+%exclude %{_mandir}/man3/Pod::Perldoc*
+
+# Pod-Usage
+%exclude %{_bindir}/pod2usage
+%exclude %{privlib}/Pod/Usage.pm
+%exclude %{_mandir}/man1/pod2usage.*
+%exclude %{_mandir}/man3/Pod::Usage.*
+
+# podlators
+%exclude %{_bindir}/pod2man
+%exclude %{_bindir}/pod2text
+%exclude %{privlib}/pod/perlpodstyle.pod
+%exclude %{privlib}/Pod/Man.pm
+%exclude %{privlib}/Pod/ParseLink.pm
+%exclude %{privlib}/Pod/Text
+%exclude %{privlib}/Pod/Text.pm
+%exclude %{_mandir}/man1/pod2man.1*
+%exclude %{_mandir}/man1/pod2text.1*
+%exclude %{_mandir}/man1/perlpodstyle.1*
+%exclude %{_mandir}/man3/Pod::Man*
+%exclude %{_mandir}/man3/Pod::ParseLink*
+%exclude %{_mandir}/man3/Pod::Text*
+
+# Pod-Simple
+%exclude %{privlib}/Pod/Simple/
+%exclude %{privlib}/Pod/Simple.pm
+%exclude %{privlib}/Pod/Simple.pod
+%exclude %{_mandir}/man3/Pod::Simple*
+
+# Scalar-List-Utils
+%exclude %{archlib}/List/
+%exclude %{archlib}/Scalar/
+%exclude %{archlib}/Sub/
+%exclude %{archlib}/auto/List/
+%exclude %{_mandir}/man3/List::Util*
+%exclude %{_mandir}/man3/Scalar::Util*
+%exclude %{_mandir}/man3/Sub::Util*
+
+# SelfLoader
+%exclude %{privlib}/SelfLoader.pm
+%exclude %{_mandir}/man3/SelfLoader*
+
+# Storable
+%exclude %{archlib}/Storable.pm
+%exclude %{archlib}/auto/Storable/
+%exclude %{_mandir}/man3/Storable.*
+
+# Sys-Syslog
+%exclude %{archlib}/Sys/Syslog.pm
+%exclude %{archlib}/auto/Sys/Syslog/
+%exclude %{_mandir}/man3/Sys::Syslog.*
+
+# Term-ANSIColor
+%exclude %{privlib}/Term/ANSIColor.pm
+%exclude %{_mandir}/man3/Term::ANSIColor*
+
+# Term-Cap
+%exclude %{privlib}/Term/Cap.pm
+%exclude %{_mandir}/man3/Term::Cap.*
+
+# Test
+%exclude %{privlib}/Test.pm
+%exclude %{_mandir}/man3/Test.*
+
+# Test-Harness
+%exclude %{_bindir}/prove
+%exclude %dir %{privlib}/App
+%exclude %{privlib}/App/Prove*
+%exclude %{privlib}/TAP*
+%exclude %dir %{privlib}/Test
+%exclude %{privlib}/Test/Harness*
+%exclude %{_mandir}/man1/prove.1*
+%exclude %{_mandir}/man3/App::Prove*
+%exclude %{_mandir}/man3/TAP*
+%exclude %{_mandir}/man3/Test::Harness*
+
+# Test-Simple
+%exclude %{privlib}/ok*
+%exclude %dir %{privlib}/Test
+%exclude %{privlib}/Test/More*
+%exclude %{privlib}/Test/Builder*
+%exclude %{privlib}/Test/Tester*
+%exclude %{privlib}/Test/Simple*
+%exclude %{privlib}/Test/Tutorial*
+%exclude %{privlib}/Test/use
+%exclude %{privlib}/Test2*
+%exclude %{_mandir}/man3/ok*
+%exclude %{_mandir}/man3/Test::More*
+%exclude %{_mandir}/man3/Test::Builder*
+%exclude %{_mandir}/man3/Test::Tester*
+%exclude %{_mandir}/man3/Test::Simple*
+%exclude %{_mandir}/man3/Test::Tutorial*
+%exclude %{_mandir}/man3/Test::use::*
+%exclude %{_mandir}/man3/Test2*
+
+# Text-Balanced
+%exclude %{privlib}/Text/Balanced.pm
+%exclude %{_mandir}/man3/Text::Balanced.*
+
+# Text-ParseWords
+%exclude %{privlib}/Text/ParseWords.pm
+%exclude %{_mandir}/man3/Text::ParseWords.*
+
+# Text-Tabs+Wrap
+%exclude %{privlib}/Text/Tabs.pm
+%exclude %{privlib}/Text/Wrap.pm
+%exclude %{_mandir}/man3/Text::Tabs.*
+%exclude %{_mandir}/man3/Text::Wrap.*
+
+# Thread-Queue
+%exclude %{privlib}/Thread/Queue.pm
+%exclude %{_mandir}/man3/Thread::Queue.*
+
+# Time-HiRes
+%exclude %dir %{archlib}/Time
+%exclude %{archlib}/Time/HiRes.pm
+%exclude %dir %{archlib}/auto/Time
+%exclude %{archlib}/auto/Time/HiRes
+%exclude %{_mandir}/man3/Time::HiRes.*
+
+# Time-Local
+%exclude %{privlib}/Time/Local.pm
+%exclude %{_mandir}/man3/Time::Local.*
+
+# Time-Piece
+%exclude %dir %{archlib}/Time
+%exclude %{archlib}/Time/Piece.pm
+%exclude %{archlib}/Time/Seconds.pm
+%exclude %dir %{archlib}/auto/Time
+%exclude %{archlib}/auto/Time/Piece
+%exclude %{_mandir}/man3/Time::Piece.3*
+%exclude %{_mandir}/man3/Time::Seconds.3*
+
+# Socket
+%exclude %dir %{archlib}/auto/Socket
+%exclude %{archlib}/auto/Socket/Socket.*
+%exclude %{archlib}/Socket.pm
+%exclude %{_mandir}/man3/Socket.3*
+
+# threads
+%dir %exclude %{archlib}/auto/threads
+%exclude %{archlib}/auto/threads/threads*
+%exclude %{archlib}/threads.pm
+%exclude %{_mandir}/man3/threads.3*
+
+# threads-shared
+%exclude %{archlib}/auto/threads/shared*
+%exclude %dir %{archlib}/threads
+%exclude %{archlib}/threads/shared*
+%exclude %{_mandir}/man3/threads::shared*
+
+# Unicode-Collate
+%dir %exclude %{archlib}/auto/Unicode
+%exclude %{archlib}/auto/Unicode/Collate
+%dir %exclude %{archlib}/Unicode
+%exclude %{archlib}/Unicode/Collate
+%exclude %{archlib}/Unicode/Collate.pm
+%exclude %{privlib}/Unicode/Collate
+%exclude %{_mandir}/man3/Unicode::Collate.*
+%exclude %{_mandir}/man3/Unicode::Collate::*
+
+# Unicode-Normalize
+%exclude %{archlib}/auto/Unicode/Normalize
+%exclude %{archlib}/Unicode/Normalize.pm
+%exclude %{_mandir}/man3/Unicode::Normalize.*
+
+# version
+%exclude %{privlib}/version.pm
+%exclude %{privlib}/version.pod
+%exclude %{privlib}/version/
+%exclude %{_mandir}/man3/version.3*
+%exclude %{_mandir}/man3/version::Internals.3*
+
+%files libs
+%license Artistic Copying
+%doc AUTHORS README Changes
+%dir %{archlib}
+%dir %{archlib}/auto
+%{archlib}/auto/re
+%dir %{archlib}/CORE
+%{archlib}/CORE/libperl.so
+%{archlib}/re.pm
+%{_libdir}/libperl.so.*
+%dir %{perl_vendorarch}
+%dir %{perl_vendorarch}/auto
+%dir %{privlib}
+%{privlib}/integer.pm
+%{privlib}/strict.pm
+%{privlib}/unicore
+%{privlib}/utf8.pm
+%{privlib}/utf8_heavy.pl
+%{privlib}/warnings.pm
+%{privlib}/XSLoader.pm
+%dir %{perl_vendorlib}
+%{_mandir}/man3/integer.*
+%{_mandir}/man3/re.*
+%{_mandir}/man3/strict.*
+%{_mandir}/man3/utf8.*
+%{_mandir}/man3/warnings.*
+%{_mandir}/man3/XSLoader.*
+
+%files devel
+%{_bindir}/h2xs
+%{_mandir}/man1/h2xs*
+%{_bindir}/perlivp
+%{_mandir}/man1/perlivp*
+%{archlib}/CORE/*.h
+%{_libdir}/libperl.so
+%{_mandir}/man1/perlxs*
+%if %{with perl_enables_systemtap}
+%dir %{_datadir}/systemtap
+%dir %{_datadir}/systemtap/tapset
+%{tapsetdir}/%{libperl_stp}
+%doc perl-example.stp
+%endif
+
+%files macros
+%{_rpmmacrodir}/macros.perl
+
+%files tests
+%{perl5_testdir}/
+
+%files utils
+%{_bindir}/h2ph
+%{_bindir}/perlbug
+%{_bindir}/perlthanks
+%{_bindir}/pl2pm
+%{_bindir}/splain
+%dir %{privlib}/pod
+%{privlib}/pod/perlutil.pod
+%{_mandir}/man1/h2ph.*
+%{_mandir}/man1/perlbug.*
+%{_mandir}/man1/perlthanks.*
+%{_mandir}/man1/perlutil.*
+%{_mandir}/man1/pl2pm.*
+%{_mandir}/man1/splain.*
+
+%if %{dual_life} || %{rebuild_from_scratch}
+%files Archive-Tar
+%{_bindir}/ptar
+%{_bindir}/ptardiff
+%{_bindir}/ptargrep
+%dir %{privlib}/Archive
+%{privlib}/Archive/Tar 
+%{privlib}/Archive/Tar.pm
+%{_mandir}/man1/ptar.1*
+%{_mandir}/man1/ptardiff.1*
+%{_mandir}/man1/ptargrep.1*
+%{_mandir}/man3/Archive::Tar* 
+%endif
+
+%files Attribute-Handlers
+%{privlib}/Attribute
+%{_mandir}/man3/Attribute::Handlers.*
+
+%if %{dual_life} || %{rebuild_from_scratch}
+%files autodie
+%{privlib}/autodie/
+%{privlib}/autodie.pm
+%{privlib}/Fatal.pm
+%{_mandir}/man3/autodie.3*
+%{_mandir}/man3/autodie::*
+%{_mandir}/man3/Fatal.3*
+%endif
+
+%if %{dual_life} || %{rebuild_from_scratch}
+%files B-Debug
+%dir %{privlib}/B
+%{privlib}/B/Debug.pm
+%{_mandir}/man3/B::Debug.3*
+
+%files bignum
+%{privlib}/bigint.pm
+%{privlib}/bignum.pm
+%{privlib}/bigrat.pm
+%dir %{privlib}/Math
+%{privlib}/Math/BigFloat
+%dir %{privlib}/Math/BigInt
+%{privlib}/Math/BigInt/Trace.pm
+%{_mandir}/man3/bigint.*
+%{_mandir}/man3/bignum.*
+%{_mandir}/man3/bigrat.*
+
+%files Carp
+%{privlib}/Carp
+%{privlib}/Carp.*
+%{_mandir}/man3/Carp.*
+
+%files Compress-Raw-Bzip2
+%dir %{archlib}/Compress
+%dir %{archlib}/Compress/Raw
+%{archlib}/Compress/Raw/Bzip2.pm
+%dir %{archlib}/auto/Compress
+%dir %{archlib}/auto/Compress/Raw
+%{archlib}/auto/Compress/Raw/Bzip2
+%{_mandir}/man3/Compress::Raw::Bzip2*
+
+%files Compress-Raw-Zlib
+%dir %{archlib}/Compress
+%dir %{archlib}/Compress/Raw
+%{archlib}/Compress/Raw/Zlib.pm
+%dir %{archlib}/auto/Compress
+%dir %{archlib}/auto/Compress/Raw
+%{archlib}/auto/Compress/Raw/Zlib
+%{_mandir}/man3/Compress::Raw::Zlib*
+%endif
+
+%if %{dual_life} || %{rebuild_from_scratch}
+%files Config-Perl-V
+%dir %{privlib}/Config
+%{privlib}/Config/Perl
+%{_mandir}/man3/Config::Perl::V.*
+%endif
+
+%if %{dual_life} || %{rebuild_from_scratch}
+%files constant
+%{privlib}/constant.pm
+%{_mandir}/man3/constant.3*
+%endif
+
+%if %{dual_life} || %{rebuild_from_scratch}
+%files CPAN
+%{_bindir}/cpan
+%dir %{privlib}/App
+%{privlib}/App/Cpan.pm
+%{privlib}/CPAN
+%{privlib}/CPAN.pm
+%{_mandir}/man1/cpan.1*
+%{_mandir}/man3/App::Cpan.*
+%{_mandir}/man3/CPAN.*
+%{_mandir}/man3/CPAN:*
+%exclude %{privlib}/CPAN/Meta/
+%exclude %{privlib}/CPAN/Meta.pm
+%exclude %{_mandir}/man3/CPAN::Meta*
+%endif
+
+%if %{dual_life} || %{rebuild_from_scratch}
+%files CPAN-Meta
+%dir %{privlib}/CPAN/Meta
+%{privlib}/CPAN/Meta.pm
+%{privlib}/CPAN/Meta/Converter.pm
+%{privlib}/CPAN/Meta/Feature.pm
+%dir %{privlib}/CPAN/Meta/History
+%{privlib}/CPAN/Meta/History.pm
+%{privlib}/CPAN/Meta/Merge.pm
+%{privlib}/CPAN/Meta/Prereqs.pm
+%{privlib}/CPAN/Meta/Spec.pm
+%{privlib}/CPAN/Meta/Validator.pm
+%dir %{privlib}/Parse/
+%dir %{privlib}/Parse/CPAN/
+%{privlib}/Parse/CPAN/Meta.pm
+%{_mandir}/man3/CPAN::Meta*
+%{_mandir}/man3/Parse::CPAN::Meta.3*
+%exclude %{_mandir}/man3/CPAN::Meta::YAML*
+%exclude %{_mandir}/man3/CPAN::Meta::Requirements*
+%endif
+
+%if %{dual_life} || %{rebuild_from_scratch}
+%files CPAN-Meta-Requirements
+%dir %{privlib}/CPAN
+%dir %{privlib}/CPAN/Meta
+%{privlib}/CPAN/Meta/Requirements.pm
+%{_mandir}/man3/CPAN::Meta::Requirements.3*
+%endif
+
+%if %{dual_life} || %{rebuild_from_scratch}
+%files CPAN-Meta-YAML
+%dir %{privlib}/CPAN
+%dir %{privlib}/CPAN/Meta
+%{privlib}/CPAN/Meta/YAML.pm
+%{_mandir}/man3/CPAN::Meta::YAML*
+%endif
+
+%if %{dual_life} || %{rebuild_from_scratch}
+%files Data-Dumper
+%dir %{archlib}/auto/Data
+%dir %{archlib}/auto/Data/Dumper
+%{archlib}/auto/Data/Dumper/Dumper.so
+%dir %{archlib}/Data
+%{archlib}/Data/Dumper.pm
+%{_mandir}/man3/Data::Dumper.3*
+%endif
+
+%if %{dual_life} || %{rebuild_from_scratch}
+%files DB_File
+%{archlib}/DB_File.pm
+%dir %{archlib}/auto/DB_File
+%{archlib}/auto/DB_File/DB_File.so
+%{_mandir}/man3/DB_File*
+%endif
+
+%files Devel-Peek
+%dir %{archlib}/Devel
+%{archlib}/Devel/Peek.pm
+%dir %{archlib}/auto/Devel
+%{archlib}/auto/Devel/Peek
+%{_mandir}/man3/Devel::Peek.*
+
+%if %{dual_life} || %{rebuild_from_scratch}
+%files Devel-PPPort
+%dir %{archlib}/Devel
+%{archlib}/Devel/PPPort.pm
+%{_mandir}/man3/Devel::PPPort.3*
+%endif
+
+%files Devel-SelfStubber
+%dir %{privlib}/Devel
+%{privlib}/Devel/SelfStubber.pm
+%{_mandir}/man3/Devel::SelfStubber.*
+
+%if %{dual_life} || %{rebuild_from_scratch}
+%files Digest
+%{privlib}/Digest.pm
+%dir %{privlib}/Digest
+%{privlib}/Digest/base.pm
+%{privlib}/Digest/file.pm
+%{_mandir}/man3/Digest.3*
+%{_mandir}/man3/Digest::base.3*
+%{_mandir}/man3/Digest::file.3*
+%endif
+
+%if %{dual_life} || %{rebuild_from_scratch}
+%files Digest-MD5
+%dir %{archlib}/Digest
+%{archlib}/Digest/MD5.pm
+%dir %{archlib}/auto/Digest
+%{archlib}/auto/Digest/MD5
+%{_mandir}/man3/Digest::MD5.3*
+%endif
+
+%if %{dual_life} || %{rebuild_from_scratch}
+%files Digest-SHA
+%{_bindir}/shasum
+%dir %{archlib}/Digest
+%{archlib}/Digest/SHA.pm
+%dir %{archlib}/auto/Digest
+%{archlib}/auto/Digest/SHA
+%{_mandir}/man1/shasum.1*
+%{_mandir}/man3/Digest::SHA.3*
+%endif
+
+%if %{dual_life} || %{rebuild_from_scratch}
+%files Encode
+%{_bindir}/encguess
+%{_bindir}/piconv
+%{archlib}/Encode*
+%{archlib}/auto/Encode*
+%{privlib}/Encode
+%exclude %{privlib}/Encode/*.e2x
+%exclude %{privlib}/Encode/encode.h
+%{_mandir}/man1/encguess.1*
+%{_mandir}/man1/piconv.1*
+%{_mandir}/man3/Encode*.3*
+
+%files encoding
+%{archlib}/encoding.pm
+%{_mandir}/man3/encoding.3*
+
+%files Encode-devel
+%{_bindir}/enc2xs
+%dir %{privlib}/Encode
+%{privlib}/Encode/*.e2x
+%{privlib}/Encode/encode.h
+%{_mandir}/man1/enc2xs.1*
+%endif
+
+%if %{dual_life} || %{rebuild_from_scratch}
+%files Env
+%{privlib}/Env.pm
+%{_mandir}/man3/Env.3*
+%endif
+
+%files Errno
+%{archlib}/Errno.pm
+%{_mandir}/man3/Errno.*
+
+%if %{dual_life} || %{rebuild_from_scratch}
+%files Exporter
+%{privlib}/Exporter*
+%{_mandir}/man3/Exporter*
+%endif
+
+%if %{dual_life} || %{rebuild_from_scratch}
+%files experimental
+%{privlib}/experimental*
+%{_mandir}/man3/experimental*
+%endif
+
+%if %{dual_life} || %{rebuild_from_scratch}
+%files ExtUtils-CBuilder
+%dir %{privlib}/ExtUtils
+%{privlib}/ExtUtils/CBuilder
+%{privlib}/ExtUtils/CBuilder.pm
+%{_mandir}/man3/ExtUtils::CBuilder*
+%endif
+
+%if %{dual_life} || %{rebuild_from_scratch}
+%files ExtUtils-Command
+%dir %{privlib}/ExtUtils
+%{privlib}/ExtUtils/Command.pm
+%{_mandir}/man3/ExtUtils::Command.*
+%endif
+
+%files ExtUtils-Embed
+%dir %{privlib}/ExtUtils
+%{privlib}/ExtUtils/Embed.pm
+%{_mandir}/man3/ExtUtils::Embed*
+
+%if %{dual_life} || %{rebuild_from_scratch}
+%files ExtUtils-Install
+%dir %{privlib}/ExtUtils
+%{privlib}/ExtUtils/Install.pm
+%{privlib}/ExtUtils/Installed.pm
+%{privlib}/ExtUtils/Packlist.pm
+%{_mandir}/man3/ExtUtils::Install.3*
+%{_mandir}/man3/ExtUtils::Installed.3*
+%{_mandir}/man3/ExtUtils::Packlist.3*
+%endif
+
+%if %{dual_life} || %{rebuild_from_scratch}
+%files ExtUtils-Manifest
+%dir %{privlib}/ExtUtils
+%{privlib}/ExtUtils/Manifest.pm
+%{privlib}/ExtUtils/MANIFEST.SKIP
+%{_mandir}/man3/ExtUtils::Manifest.3*
+%endif
+
+%if %{dual_life} || %{rebuild_from_scratch}
+%files ExtUtils-MakeMaker
+%{_bindir}/instmodsh
+%dir %{privlib}/ExtUtils
+%{privlib}/ExtUtils/Command/
+%{privlib}/ExtUtils/Liblist
+%{privlib}/ExtUtils/Liblist.pm
+%{privlib}/ExtUtils/MakeMaker
+%{privlib}/ExtUtils/MakeMaker.pm
+%{privlib}/ExtUtils/MM.pm
+%{privlib}/ExtUtils/MM_*.pm
+%{privlib}/ExtUtils/MY.pm
+%{privlib}/ExtUtils/Mkbootstrap.pm
+%{privlib}/ExtUtils/Mksymlists.pm
+%{privlib}/ExtUtils/testlib.pm
+%{_mandir}/man1/instmodsh.1*
+%{_mandir}/man3/ExtUtils::Command::MM*
+%{_mandir}/man3/ExtUtils::Liblist.3*
+%{_mandir}/man3/ExtUtils::MM.3*
+%{_mandir}/man3/ExtUtils::MM_*
+%{_mandir}/man3/ExtUtils::MY.3*
+%{_mandir}/man3/ExtUtils::MakeMaker*
+%{_mandir}/man3/ExtUtils::Mkbootstrap.3*
+%{_mandir}/man3/ExtUtils::Mksymlists.3*
+%{_mandir}/man3/ExtUtils::testlib.3*
+%endif
+
+%files ExtUtils-Miniperl
+%dir %{privlib}/ExtUtils
+%{privlib}/ExtUtils/Miniperl.pm
+%{_mandir}/man3/ExtUtils::Miniperl.3*
+
+%if %{dual_life} || %{rebuild_from_scratch}
+%files ExtUtils-MM-Utils
+%dir %{privlib}/ExtUtils
+%dir %{privlib}/ExtUtils/MM
+%{privlib}/ExtUtils/MM/Utils.pm
+%{_mandir}/man3/ExtUtils::MM::Utils.*
+%endif
+
+%if %{dual_life} || %{rebuild_from_scratch}
+%files ExtUtils-ParseXS
+%dir %{privlib}/ExtUtils
+%dir %{privlib}/ExtUtils/ParseXS
+%{privlib}/ExtUtils/ParseXS.pm
+%{privlib}/ExtUtils/ParseXS.pod
+%{privlib}/ExtUtils/ParseXS/Constants.pm
+%{privlib}/ExtUtils/ParseXS/CountLines.pm
+%{privlib}/ExtUtils/ParseXS/Eval.pm
+%{privlib}/ExtUtils/ParseXS/Utilities.pm
+%dir %{privlib}/ExtUtils/Typemaps
+%{privlib}/ExtUtils/Typemaps.pm
+%{privlib}/ExtUtils/Typemaps/Cmd.pm
+%{privlib}/ExtUtils/Typemaps/InputMap.pm
+%{privlib}/ExtUtils/Typemaps/OutputMap.pm
+%{privlib}/ExtUtils/Typemaps/Type.pm
+%{privlib}/ExtUtils/xsubpp
+%{_bindir}/xsubpp
+%{_mandir}/man1/xsubpp*
+%{_mandir}/man3/ExtUtils::ParseXS.3*
+%{_mandir}/man3/ExtUtils::ParseXS::Constants.3*
+%{_mandir}/man3/ExtUtils::ParseXS::Eval.3*
+%{_mandir}/man3/ExtUtils::ParseXS::Utilities.3*
+%{_mandir}/man3/ExtUtils::Typemaps.3*
+%{_mandir}/man3/ExtUtils::Typemaps::Cmd.3*
+%{_mandir}/man3/ExtUtils::Typemaps::InputMap.3*
+%{_mandir}/man3/ExtUtils::Typemaps::OutputMap.3*
+%{_mandir}/man3/ExtUtils::Typemaps::Type.3*
+%endif
+
+%if %{dual_life} || %{rebuild_from_scratch}
+%files File-Fetch
+%dir %{privlib}/File
+%{privlib}/File/Fetch.pm
+%{_mandir}/man3/File::Fetch.3*
+%endif
+
+%if %{dual_life} || %{rebuild_from_scratch}
+%files File-Path
+%dir %{privlib}/File
+%{privlib}/File/Path.pm
+%{_mandir}/man3/File::Path.3*
+%endif
+
+%if %{dual_life} || %{rebuild_from_scratch}
+%files File-Temp
+%dir %{privlib}/File
+%{privlib}/File/Temp.pm
+%{_mandir}/man3/File::Temp.3*
+%endif
+
+%if %{dual_life} || %{rebuild_from_scratch}
+%files Filter
+%dir %{archlib}/auto/Filter
+%{archlib}/auto/Filter/Util
+%dir %{archlib}/Filter
+%{archlib}/Filter/Util
+%{privlib}/pod/perlfilter.pod
+%{_mandir}/man1/perlfilter.*
+%{_mandir}/man3/Filter::Util::*
+%endif
+
+%if %{dual_life} || %{rebuild_from_scratch}
+%files Filter-Simple
+%dir %{privlib}/Filter
+%{privlib}/Filter/Simple.pm
+%{_mandir}/man3/Filter::Simple.3*
+%endif
+
+%if %{dual_life} || %{rebuild_from_scratch}
+%files Getopt-Long
+%dir %{privlib}/Getopt
+%{privlib}/Getopt/Long.pm
+%{_mandir}/man3/Getopt::Long.3*
+%endif
+
+%files IO
+%dir %{archlib}/IO
+%{archlib}/IO.pm
+%{archlib}/IO/Dir.pm
+%{archlib}/IO/File.pm
+%{archlib}/IO/Handle.pm
+%{archlib}/IO/Pipe.pm
+%{archlib}/IO/Poll.pm
+%{archlib}/IO/Seekable.pm
+%{archlib}/IO/Select.pm
+%dir %{archlib}/IO/Socket
+%{archlib}/IO/Socket/INET.pm
+%{archlib}/IO/Socket/UNIX.pm
+%{archlib}/IO/Socket.pm
+%dir %{archlib}/auto/IO
+%{archlib}/auto/IO/IO.so
+%{_mandir}/man3/IO.*
+%{_mandir}/man3/IO::Dir.*
+%{_mandir}/man3/IO::File.*
+%{_mandir}/man3/IO::Handle.*
+%{_mandir}/man3/IO::Pipe.*
+%{_mandir}/man3/IO::Poll.*
+%{_mandir}/man3/IO::Seekable.*
+%{_mandir}/man3/IO::Select.*
+%{_mandir}/man3/IO::Socket::INET.*
+%{_mandir}/man3/IO::Socket::UNIX.*
+%{_mandir}/man3/IO::Socket.*
+
+%if %{dual_life} || %{rebuild_from_scratch}
+%files IO-Compress
+# IO-Compress
+%{_bindir}/zipdetails
+%dir %{privlib}/IO
+%dir %{privlib}/IO/Compress
+%{privlib}/IO/Compress/FAQ.pod
+%{_mandir}/man1/zipdetails.*
+%{_mandir}/man3/IO::Compress::FAQ.*
+# Compress-Zlib
+%dir %{privlib}/Compress
+%{privlib}/Compress/Zlib.pm
+%{_mandir}/man3/Compress::Zlib*
+#IO-Compress-Base
+%dir %{privlib}/File
+%{privlib}/File/GlobMapper.pm
+%dir %{privlib}/IO
+%dir %{privlib}/IO/Compress
+%{privlib}/IO/Compress/Base
+%{privlib}/IO/Compress/Base.pm
+%dir %{privlib}/IO/Uncompress
+%{privlib}/IO/Uncompress/AnyUncompress.pm
+%{privlib}/IO/Uncompress/Base.pm
+%{_mandir}/man3/File::GlobMapper.*
+%{_mandir}/man3/IO::Compress::Base.*
+%{_mandir}/man3/IO::Uncompress::AnyUncompress.*
+%{_mandir}/man3/IO::Uncompress::Base.*
+# IO-Compress-Zlib
+%dir %{privlib}/IO
+%dir %{privlib}/IO/Compress
+%{privlib}/IO/Compress/Adapter
+%{privlib}/IO/Compress/Deflate.pm
+%{privlib}/IO/Compress/Bzip2.pm
+%{privlib}/IO/Compress/Gzip
+%{privlib}/IO/Compress/Gzip.pm
+%{privlib}/IO/Compress/RawDeflate.pm
+%{privlib}/IO/Compress/Zip
+%{privlib}/IO/Compress/Zip.pm
+%{privlib}/IO/Compress/Zlib
+%dir %{privlib}/IO/Uncompress
+%{privlib}/IO/Uncompress/Adapter/
+%{privlib}/IO/Uncompress/AnyInflate.pm
+%{privlib}/IO/Uncompress/Bunzip2.pm
+%{privlib}/IO/Uncompress/Gunzip.pm
+%{privlib}/IO/Uncompress/Inflate.pm
+%{privlib}/IO/Uncompress/RawInflate.pm
+%{privlib}/IO/Uncompress/Unzip.pm
+%{_mandir}/man3/IO::Compress::Deflate*
+%{_mandir}/man3/IO::Compress::Gzip*
+%{_mandir}/man3/IO::Compress::Bzip2*
+%{_mandir}/man3/IO::Compress::RawDeflate*
+%{_mandir}/man3/IO::Compress::Zip*
+%{_mandir}/man3/IO::Uncompress::AnyInflate*
+%{_mandir}/man3/IO::Uncompress::Bunzip2*
+%{_mandir}/man3/IO::Uncompress::Gunzip*
+%{_mandir}/man3/IO::Uncompress::Inflate*
+%{_mandir}/man3/IO::Uncompress::RawInflate*
+%{_mandir}/man3/IO::Uncompress::Unzip*
+%endif
+
+%if %{dual_life} || %{rebuild_from_scratch}
+%files IO-Socket-IP
+%dir %{privlib}/IO
+%dir %{privlib}/IO/Socket
+%{privlib}/IO/Socket/IP.pm
+%{_mandir}/man3/IO::Socket::IP.*
+%endif
+
+%files IO-Zlib
+%dir %{privlib}/IO
+%{privlib}/IO/Zlib.pm
+%{_mandir}/man3/IO::Zlib.*
+
+%if %{dual_life} || %{rebuild_from_scratch}
+%files HTTP-Tiny
+%dir %{privlib}/HTTP
+%{privlib}/HTTP/Tiny.pm
+%{_mandir}/man3/HTTP::Tiny*
+%endif
+
+%if %{dual_life} || %{rebuild_from_scratch}
+%files IPC-Cmd
+%dir %{privlib}/IPC
+%{privlib}/IPC/Cmd.pm
+%{_mandir}/man3/IPC::Cmd.3*
+%endif
+
+%if %{dual_life} || %{rebuild_from_scratch}
+%files IPC-SysV
+%{archlib}/auto/IPC
+%dir %{archlib}/IPC
+%{archlib}/IPC/Msg.pm
+%{archlib}/IPC/Semaphore.pm
+%{archlib}/IPC/SharedMem.pm
+%{archlib}/IPC/SysV.pm
+%{_mandir}/man3/IPC::Msg.*
+%{_mandir}/man3/IPC::Semaphore.*
+%{_mandir}/man3/IPC::SharedMem.*
+%{_mandir}/man3/IPC::SysV.*
+%endif
+
+%if %{dual_life} || %{rebuild_from_scratch}
+%files JSON-PP
+%{_bindir}/json_pp
+%dir %{privlib}/JSON
+%{privlib}/JSON/PP
+%{privlib}/JSON/PP.pm
+%{_mandir}/man1/json_pp.1*
+%{_mandir}/man3/JSON::PP.3*
+%{_mandir}/man3/JSON::PP::Boolean.3pm*
+%endif
+
+%if %{dual_life} || %{rebuild_from_scratch}
+%files libnet
+%dir %{privlib}/Net
+%{privlib}/Net/Cmd.pm
+%{privlib}/Net/Config.pm
+%{privlib}/Net/Domain.pm
+%{privlib}/Net/FTP
+%{privlib}/Net/FTP.pm
+%{privlib}/Net/libnetFAQ.pod
+%{privlib}/Net/NNTP.pm
+%{privlib}/Net/Netrc.pm
+%{privlib}/Net/POP3.pm
+%{privlib}/Net/SMTP.pm
+%{privlib}/Net/Time.pm
+%{_mandir}/man3/Net::Cmd.*
+%{_mandir}/man3/Net::Config.*
+%{_mandir}/man3/Net::Domain.*
+%{_mandir}/man3/Net::FTP.*
+%{_mandir}/man3/Net::libnetFAQ.*
+%{_mandir}/man3/Net::NNTP.*
+%{_mandir}/man3/Net::Netrc.*
+%{_mandir}/man3/Net::POP3.*
+%{_mandir}/man3/Net::SMTP.*
+%{_mandir}/man3/Net::Time.*
+%endif
+
+%files libnetcfg
+%{_bindir}/libnetcfg
+%{_mandir}/man1/libnetcfg*
+
+%if %{dual_life} || %{rebuild_from_scratch}
+%files Locale-Codes
+%dir %{privlib}/Locale
+%{privlib}/Locale/Codes
+%{privlib}/Locale/Codes.*
+%{privlib}/Locale/Country.*
+%{privlib}/Locale/Currency.*
+%{privlib}/Locale/Language.*
+%{privlib}/Locale/Script.*
+%{_mandir}/man3/Locale::Codes::*
+%{_mandir}/man3/Locale::Codes.*
+%{_mandir}/man3/Locale::Country.*
+%{_mandir}/man3/Locale::Currency.*
+%{_mandir}/man3/Locale::Language.*
+%{_mandir}/man3/Locale::Script.*
+%endif
+
+%if %{dual_life} || %{rebuild_from_scratch}
+%files Locale-Maketext
+%dir %{privlib}/Locale
+%dir %{privlib}/Locale/Maketext
+%{privlib}/Locale/Maketext.*
+%{privlib}/Locale/Maketext/Cookbook.*
+%{privlib}/Locale/Maketext/Guts.*
+%{privlib}/Locale/Maketext/GutsLoader.*
+%{privlib}/Locale/Maketext/TPJ13.*
+%{_mandir}/man3/Locale::Maketext.*
+%{_mandir}/man3/Locale::Maketext::Cookbook.*
+%{_mandir}/man3/Locale::Maketext::Guts.*
+%{_mandir}/man3/Locale::Maketext::GutsLoader.*
+%{_mandir}/man3/Locale::Maketext::TPJ13.*
+%endif
+
+%files Locale-Maketext-Simple
+%dir %{privlib}/Locale
+%dir %{privlib}/Locale/Maketext
+%{privlib}/Locale/Maketext/Simple.pm
+%{_mandir}/man3/Locale::Maketext::Simple.*
+
+%if %{dual_life} || %{rebuild_from_scratch}
+%files Math-BigInt
+%dir %{privlib}/Math
+%{privlib}/Math/BigFloat.pm
+%{privlib}/Math/BigInt.pm
+%dir %{privlib}/Math/BigInt
+%{privlib}/Math/BigInt/Calc.pm
+%{privlib}/Math/BigInt/CalcEmu.pm
+%{privlib}/Math/BigInt/Lib.pm
+%{_mandir}/man3/Math::BigFloat.*
+%{_mandir}/man3/Math::BigInt.*
+%{_mandir}/man3/Math::BigInt::Calc.*
+%{_mandir}/man3/Math::BigInt::CalcEmu.*
+%{_mandir}/man3/Math::BigInt::Lib.*
+
+%files Math-BigInt-FastCalc
+%{archlib}/Math
+%{archlib}/auto/Math
+%{_mandir}/man3/Math::BigInt::FastCalc.*
+
+%files Math-BigRat
+%dir %{privlib}/Math
+%{privlib}/Math/BigRat.pm
+%{_mandir}/man3/Math::BigRat.*
+%endif
+
+%files Math-Complex
+%dir %{privlib}/Math
+%{privlib}/Math/Complex.pm
+%{privlib}/Math/Trig.pm
+%{_mandir}/man3/Math::Complex.*
+%{_mandir}/man3/Math::Trig.*
+
+%files Memoize
+%{privlib}/Memoize
+%{privlib}/Memoize.pm
+%{_mandir}/man3/Memoize::*
+%{_mandir}/man3/Memoize.*
+
+%if %{dual_life} || %{rebuild_from_scratch}
+%files MIME-Base64
+%{archlib}/auto/MIME
+%{archlib}/MIME
+%{_mandir}/man3/MIME::*
+%endif
+
+%if %{dual_life} || %{rebuild_from_scratch}
+%files Module-CoreList
+%dir %{privlib}/Module
+%{privlib}/Module/CoreList
+%{privlib}/Module/CoreList.pm
+%{privlib}/Module/CoreList.pod
+%{_mandir}/man3/Module::CoreList*
+
+%files Module-CoreList-tools
+%{_bindir}/corelist
+%{_mandir}/man1/corelist*
+%endif
+
+%if %{dual_life} || %{rebuild_from_scratch}
+%files Module-Load
+%dir %{privlib}/Module
+%{privlib}/Module/Load.pm
+%{_mandir}/man3/Module::Load.*
+%endif
+
+%if %{dual_life} || %{rebuild_from_scratch}
+%files Module-Load-Conditional
+%dir %{privlib}/Module
+%{privlib}/Module/Load
+%{_mandir}/man3/Module::Load::Conditional* 
+%endif
+
+%files Module-Loaded
+%dir %{privlib}/Module
+%{privlib}/Module/Loaded.pm
+%{_mandir}/man3/Module::Loaded*
+
+%if %{dual_life} || %{rebuild_from_scratch}
+%files Module-Metadata
+%dir %{privlib}/Module
+%{privlib}/Module/Metadata.pm
+%{_mandir}/man3/Module::Metadata.3pm*
+%endif
+
+%files Net-Ping
+%dir %{privlib}/Net
+%{privlib}/Net/Ping.pm
+%{_mandir}/man3/Net::Ping.*
+
+%if %{dual_life} || %{rebuild_from_scratch}
+%files PathTools
+%{archlib}/Cwd.pm
+%dir %{archlib}/File
+%{archlib}/File/Spec*
+%{archlib}/auto/Cwd
+%{_mandir}/man3/Cwd*
+%{_mandir}/man3/File::Spec*
+%endif
+
+%if %{dual_life} || %{rebuild_from_scratch}
+%files Params-Check
+%{privlib}/Params/
+%{_mandir}/man3/Params::Check*
+%endif
+
+%files open
+%{privlib}/open.pm
+%{_mandir}/man3/open.3*
+
+%if %{dual_life} || %{rebuild_from_scratch}
+%files parent
+%{privlib}/parent.pm
+%{_mandir}/man3/parent.3*
+%endif
+
+%if %{dual_life} || %{rebuild_from_scratch}
+%files perlfaq
+%{privlib}/perlfaq.pm
+%dir %{privlib}/pod
+%{privlib}/pod/perlfaq*
+%{privlib}/pod/perlglossary.pod
+%{_mandir}/man1/perlfaq*
+%{_mandir}/man1/perlglossary.*
+%endif
+
+%if %{dual_life} || %{rebuild_from_scratch}
+%files PerlIO-via-QuotedPrint
+%{privlib}/PerlIO
+%{_mandir}/man3/PerlIO::via::QuotedPrint.*
+%endif
+
+%if %{dual_life} || %{rebuild_from_scratch}
+%files Perl-OSType
+%dir %{privlib}/Perl
+%{privlib}/Perl/OSType.pm
+%{_mandir}/man3/Perl::OSType.3pm*
+%endif
+
+%if %{dual_life} || %{rebuild_from_scratch}
+%files Pod-Checker
+%{_bindir}/podchecker
+%dir %{privlib}/Pod
+%{privlib}/Pod/Checker.pm
+%{_mandir}/man1/podchecker.*
+%{_mandir}/man3/Pod::Checker.*
+%endif
+
+%if %{dual_life} || %{rebuild_from_scratch}
+%files Pod-Escapes
+%dir %{privlib}/Pod
+%{privlib}/Pod/Escapes.pm
+%{_mandir}/man3/Pod::Escapes.*
+%endif
+
+%files Pod-Html
+%license Pod-Html-license-clarification
+%dir %{privlib}/Pod
+%{_bindir}/pod2html
+%{privlib}/Pod/Html.pm
+%{_mandir}/man1/pod2html.1*
+%{_mandir}/man3/Pod::Html.*
+
+%if %{dual_life} || %{rebuild_from_scratch}
+%files Pod-Parser
+%{_bindir}/podselect
+%dir %{privlib}/Pod
+%{privlib}/Pod/Find.pm
+%{privlib}/Pod/InputObjects.pm
+%{privlib}/Pod/ParseUtils.pm
+%{privlib}/Pod/Parser.pm
+%{privlib}/Pod/PlainText.pm
+%{privlib}/Pod/Select.pm
+%{_mandir}/man1/podselect.1*
+%{_mandir}/man3/Pod::Find.*
+%{_mandir}/man3/Pod::InputObjects.*
+%{_mandir}/man3/Pod::ParseUtils.*
+%{_mandir}/man3/Pod::Parser.*
+%{_mandir}/man3/Pod::PlainText.*
+%{_mandir}/man3/Pod::Select.*
+%endif
+
+%if %{dual_life} || %{rebuild_from_scratch}
+%files Pod-Perldoc
+%{_bindir}/perldoc
+%{privlib}/pod/perldoc.pod
+%dir %{privlib}/Pod
+%{privlib}/Pod/Perldoc
+%{privlib}/Pod/Perldoc.pm
+%{_mandir}/man1/perldoc.1*
+%{_mandir}/man3/Pod::Perldoc*
+%endif
+
+%if %{dual_life} || %{rebuild_from_scratch}
+%files Pod-Usage
+%{_bindir}/pod2usage
+%dir %{privlib}/Pod
+%{privlib}/Pod/Usage.pm
+%{_mandir}/man1/pod2usage.*
+%{_mandir}/man3/Pod::Usage.*
+%endif
+
+%if %{dual_life} || %{rebuild_from_scratch}
+%files podlators
+%{_bindir}/pod2man
+%{_bindir}/pod2text
+%{privlib}/pod/perlpodstyle.pod
+%dir %{privlib}/Pod
+%{privlib}/Pod/Man.pm
+%{privlib}/Pod/ParseLink.pm
+%{privlib}/Pod/Text
+%{privlib}/Pod/Text.pm
+%{_mandir}/man1/pod2man.1*
+%{_mandir}/man1/pod2text.1*
+%{_mandir}/man1/perlpodstyle.1*
+%{_mandir}/man3/Pod::Man*
+%{_mandir}/man3/Pod::ParseLink*
+%{_mandir}/man3/Pod::Text*
+%endif
+
+%if %{dual_life} || %{rebuild_from_scratch}
+%files Pod-Simple
+%dir %{privlib}/Pod
+%{privlib}/Pod/Simple
+%{privlib}/Pod/Simple.pm
+%{privlib}/Pod/Simple.pod
+%{_mandir}/man3/Pod::Simple*
+%endif
+
+%if %{dual_life} || %{rebuild_from_scratch}
+%files Scalar-List-Utils
+%{archlib}/List
+%{archlib}/Scalar
+%{archlib}/Sub
+%{archlib}/auto/List
+%{_mandir}/man3/List::Util*
+%{_mandir}/man3/Scalar::Util*
+%{_mandir}/man3/Sub::Util*
+%endif
+
+%files SelfLoader
+%{privlib}/SelfLoader.pm
+%{_mandir}/man3/SelfLoader*
+
+%if %{dual_life} || %{rebuild_from_scratch}
+%files Sys-Syslog
+%dir %{archlib}/Sys
+%{archlib}/Sys/Syslog.pm
+%dir %{archlib}/auto/Sys
+%{archlib}/auto/Sys/Syslog
+%{_mandir}/man3/Sys::Syslog.*
+%endif
+
+%if %{dual_life} || %{rebuild_from_scratch}
+%files Socket
+%dir %{archlib}/auto/Socket
+%{archlib}/auto/Socket/Socket.*
+%{archlib}/Socket.pm
+%{_mandir}/man3/Socket.3*
+%endif
+
+%if %{dual_life} || %{rebuild_from_scratch}
+%files Storable
+%{archlib}/Storable.pm
+%{archlib}/auto/Storable
+%{_mandir}/man3/Storable.*
+%endif
+
+%if %{dual_life} || %{rebuild_from_scratch}
+%files Term-ANSIColor
+%dir %{privlib}/Term
+%{privlib}/Term/ANSIColor.pm
+%{_mandir}/man3/Term::ANSIColor*
+%endif
+
+%if %{dual_life} || %{rebuild_from_scratch}
+%files Term-Cap
+%dir %{privlib}/Term
+%{privlib}/Term/Cap.pm
+%{_mandir}/man3/Term::Cap.*
+%endif
+
+%files Test
+%{privlib}/Test.pm
+%{_mandir}/man3/Test.*
+
+%if %{dual_life} || %{rebuild_from_scratch}
+%files Test-Harness
+%{_bindir}/prove
+%dir %{privlib}/App
+%{privlib}/App/Prove*
+%{privlib}/TAP*
+%dir %{privlib}/Test
+%{privlib}/Test/Harness*
+%{_mandir}/man1/prove.1*
+%{_mandir}/man3/App::Prove*
+%{_mandir}/man3/TAP*
+%{_mandir}/man3/Test::Harness*
+%endif
+
+%if %{dual_life} || %{rebuild_from_scratch}
+%files Test-Simple
+%{privlib}/ok*
+%dir %{privlib}/Test
+%{privlib}/Test/More*
+%{privlib}/Test/Builder*
+%{privlib}/Test/Tester*
+%{privlib}/Test/Simple*
+%{privlib}/Test/Tutorial*
+%{privlib}/Test/use
+%{privlib}/Test2*
+%{_mandir}/man3/ok*
+%{_mandir}/man3/Test::More*
+%{_mandir}/man3/Test::Builder*
+%{_mandir}/man3/Test::Tester*
+%{_mandir}/man3/Test::Simple*
+%{_mandir}/man3/Test::Tutorial*
+%{_mandir}/man3/Test::use::*
+%{_mandir}/man3/Test2*
+%endif
+
+%if %{dual_life} || %{rebuild_from_scratch}
+%files Text-Balanced
+%dir %{privlib}/Text
+%{privlib}/Text/Balanced.pm
+%{_mandir}/man3/Text::Balanced.*
+%endif
+
+%if %{dual_life} || %{rebuild_from_scratch}
+%files Text-ParseWords
+%dir %{privlib}/Text
+%{privlib}/Text/ParseWords.pm
+%{_mandir}/man3/Text::ParseWords.*
+%endif
+
+%if %{dual_life} || %{rebuild_from_scratch}
+%files Text-Tabs+Wrap
+%dir %{privlib}/Text
+%{privlib}/Text/Tabs.pm
+%{privlib}/Text/Wrap.pm
+%{_mandir}/man3/Text::Tabs.*
+%{_mandir}/man3/Text::Wrap.*
+%endif
+
+%if %{dual_life} || %{rebuild_from_scratch}
+%files Thread-Queue
+%dir %{privlib}/Thread
+%{privlib}/Thread/Queue.pm
+%{_mandir}/man3/Thread::Queue.*
+%endif
+
+%if %{dual_life} || %{rebuild_from_scratch}
+%files Time-HiRes
+%dir %{archlib}/Time
+%{archlib}/Time/HiRes.pm
+%dir %{archlib}/auto/Time
+%{archlib}/auto/Time/HiRes
+%{_mandir}/man3/Time::HiRes.*
+%endif
+
+%if %{dual_life} || %{rebuild_from_scratch}
+%files Time-Local
+%dir %{privlib}/Time
+%{privlib}/Time/Local.pm
+%{_mandir}/man3/Time::Local.*
+%endif
+
+%files Time-Piece
+%dir %{archlib}/Time
+%{archlib}/Time/Piece.pm 
+%{archlib}/Time/Seconds.pm
+%dir %{archlib}/auto/Time
+%{archlib}/auto/Time/Piece
+%{_mandir}/man3/Time::Piece.3*
+%{_mandir}/man3/Time::Seconds.3*
+
+%if %{dual_life} || %{rebuild_from_scratch}
+%files threads
+%dir %{archlib}/auto/threads
+%{archlib}/auto/threads/threads*
+%{archlib}/threads.pm
+%{_mandir}/man3/threads.3*
+%endif
+
+%if %{dual_life} || %{rebuild_from_scratch}
+%files threads-shared
+%dir %{archlib}/auto/threads
+%{archlib}/auto/threads/shared*
+%dir %{archlib}/threads
+%{archlib}/threads/shared*
+%{_mandir}/man3/threads::shared*
+%endif
+
+%if %{dual_life} || %{rebuild_from_scratch}
+%files Unicode-Collate
+%dir %{archlib}/auto/Unicode
+%{archlib}/auto/Unicode/Collate
+%dir %{archlib}/Unicode
+%{archlib}/Unicode/Collate
+%{archlib}/Unicode/Collate.pm
+%dir %{privlib}/Unicode
+%{privlib}/Unicode/Collate
+%{_mandir}/man3/Unicode::Collate.*
+%{_mandir}/man3/Unicode::Collate::*
+%endif
+
+%if %{dual_life} || %{rebuild_from_scratch}
+%files Unicode-Normalize
+%dir %{archlib}/auto/Unicode
+%{archlib}/auto/Unicode/Normalize
+%dir %{archlib}/Unicode
+%{archlib}/Unicode/Normalize.pm
+%{_mandir}/man3/Unicode::Normalize.*
+%endif
+
+%if %{dual_life} || %{rebuild_from_scratch}
+%files version
+%{privlib}/version.pm
+%{privlib}/version.pod
+%{privlib}/version/
+%{_mandir}/man3/version.3*
+%{_mandir}/man3/version::Internals.3*
+%endif
+
+# Old changelog entries are preserved in CVS.
+%changelog
+* Thu Dec 03 2020 Jitka Plesnikova <jplesnik@redhat.com> - 4:5.26.3-417
+- Fix Time-Local tests to pass after year 2019 (bug #1807120)
+- Run-require perl(Encode) by perl-libs (bug #1903503)
+
+* Thu Dec 06 2018 Jitka Plesnikova <jplesnik@redhat.com> - 4:5.26.3-416
+- 5.26.3 bump (bug #1655526)
+- Fix CVE-2018-18311 (integer overflow leading to buffer overflow) (bug #1654920)
+- Fix CVE-2018-18312 (heap buffer overflow in regcomp.c) (bug #1654922)
+- Fix CVE-2018-18313 (heap buffer overflow read in regcomp.c) (bug #1654924)
+- Fix CVE-2018-18314 (heap based buffer overflow) (bug #1654925)
+
+* Fri Nov 02 2018 Petr Pisar <ppisar@redhat.com> - 4:5.26.2-415
+- Install Encode developmental files when installing complete Perl
+  (bug #1645225)
+
+* Tue Oct 02 2018 Jitka Plesnikova <jplesnik@redhat.com> - 4:5.26.2-414
+- Fix annocheck failure by passing CFLAGS to dtrace (bug #1630617)
+
+* Mon Jul 09 2018 Petr Pisar <ppisar@redhat.com> - 4:5.26.2-413
+- Adjust tests to gdbm-1.15 (RT#133295)
+- Fix an integer wrap when allocating memory for an environment variable
+  (RT#133204)
+- Fix printing a warning about a wide character when matching a regular
+  expression while ISO-8859-1 locale is in effect
+- Fix invoking a check for wide characters while ISO-8859-1 locale is in effect
+
+* 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
+
+* Fri Feb 09 2018 Igor Gnatenko <ignatenkobrain@fedoraproject.org> - 4:5.26.1-408
+- Escape macros in %%changelog
+
+* Tue Feb 06 2018 Petr Pisar <ppisar@redhat.com> - 4:5.26.1-407
+- Fix parsing braced subscript after parentheses (RT#8045)
+- Fix a heap use after free when moving a stack (RT#131954)
+- Call ldconfig scriptlets using a macro
+
+* Thu Feb 01 2018 Petr Pisar <ppisar@redhat.com> - 4:5.26.1-406
+- Correct shell bangs in tests
+
+* Mon Jan 29 2018 Petr Pisar <ppisar@redhat.com> - 4:5.26.1-405
+- Link XS modules to pthread library to fix linking with -z defs
+
+* Sat Jan 20 2018 Björn Esser <besser82@fedoraproject.org> - 4:5.26.1-404
+- Add patch to conditionalize a fix for an old and long fixed bug
+  in libcrypt / glibc (rhbz#1536752)
+
+* Mon Jan 15 2018 Petr Pisar <ppisar@redhat.com> - 4:5.26.1-403
+- Rebuild against glibc without nsl library
+
+* Tue Jan 09 2018 Petr Pisar <ppisar@redhat.com> - 4:5.26.1-402
+- Remove invalid macro definitions from macros.perl (bug #1532539)
+- Fix an overflow in the lexer when reading a new line (RT#131793)
+- Fix Term::ReadLine not to create spurious &STDERR files (RT#132008)
+- Fix a crash when a match for inversely repeated group fails (RT#132017)
+- Fix an overflow when parsing a character range with no preceding character
+  (RT#132245)
+- Fix walking symbol table for ISA in Carp
+- Fix handling file names with null bytes in stat and lstat functions
+  (RT#131895)
+- Fix a crash when untying an object witout a stash
+- Fix deparsing of transliterations with unprintable characters (RT#132405)
+- Fix error reporting on do() on a directory (RT#125774)
+- Fix stack manipulation when a lexical subroutine is defined in a do block in
+  a member of an iteration list (RT#132442)
+- Fix setting $! when statting a closed file handle (RT#108288)
+- Fix tainting of s/// with overloaded replacement (RT#115266)
+- Expand system() arguments before a fork (RT#121105)
+- Avoid undefined behavior when copying memory in Glob and pp_caller (RT#131746)
+
+* Mon Sep 25 2017 Jitka Plesnikova <jplesnik@redhat.com> - 4:5.26.1-401
+- Update perl(:MODULE_COMPAT)
+
+* Mon Sep 25 2017 Jitka Plesnikova <jplesnik@redhat.com> - 4:5.26.1-400
+- 5.26.1 bump (see <http://search.cpan.org/dist/perl-5.26.1/pod/perldelta.pod>
+  for release notes)
+
+* Tue Aug 22 2017 Petr Pisar <ppisar@redhat.com> - 4:5.26.0-399
+- Fix unreliable Time-HiRes tests (CPAN RT#122819)
+- Do not require $Config{libs} providers by perl-devel package (bug #1481324)
+
+* Tue Aug 08 2017 Petr Pisar <ppisar@redhat.com> - 4:5.26.0-398
+- Fix reporting malformed UTF-8 character (RT#131646)
+- Fix File::Glob rt131211.t test random failures
+- Fix t/op/hash.t test random failures
+- Parse caret variables with subscripts as normal variables inside ${...}
+  escaping (RT#131664)
+- Do not display too many bytes when reporting malformed UTF-8 character
+- Fix select called with a repeated magical variable (RT#131645)
+- Fix error message for "our sub foo::bar" (RT#131679)
+- Fix executing arybase::_tie_it() in Safe compartement (RT#131588)
+- Fix handling attribute specification on our variables (RT#131597)
+- Fix splitting non-ASCII strings if unicode_strings feature is enabled (RT#130907)
+- Fix compiler warnings in code generated by ExtUtils::Constant
+  (CPAN RT#63832, CPAN RT#101487)
+- Fix GCC version detection for -D_FORTIFY_SOURCE override (RT#131809)
+
+* Sat Jul 29 2017 Igor Gnatenko <ignatenkobrain@fedoraproject.org> - 4:5.26.0-397
+- Enable separate debuginfo back
+
+* Thu Jul 27 2017 Fedora Release Engineering <releng@fedoraproject.org> - 4:5.26.0-396
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
+
+* Wed Jun 28 2017 Petr Pisar <ppisar@redhat.com> - 4:5.26.0-395
+- perl package installs all core modules, interpreter moved to
+  perl-interpreter package, perl-core package is obsolete
+  <https://fedoraproject.org/wiki/Changes/perl_Package_to_Install_Core_Modules>
+  (bug #1464903)
+
+* Mon Jun 19 2017 Petr Pisar <ppisar@redhat.com> - 4:5.26.0-394
+- Make File::Glob more resistant against degenerative matching (RT#131211)
+- Fix a crash when calling a subroutine from a stash (RT#131085)
+- Fix an improper cast of a negative integer to an unsigned 8-bit type (RT#131190)
+- Fix cloning :via handles on thread creation (RT#131221)
+- Fix glob UTF-8 flag on a glob reassignment (RT#131263)
+- Fix a buffer overflow in my_atof2() (RT#131526)
+- Fix handling backslashes in PATH environment variable when executing
+  "perl -S" (RT#129183)
+- Fix a conditional jump on uninitilized memory in re_intuit_start() (RT#131575)
+- Fix spurious "Assuming NOT a POSIX class" warning (RT#131522)
+- Provide perl-interpreter RPM dependency symbol
+  <https://fedoraproject.org/wiki/Changes/perl_Package_to_Install_Core_Modules>
+
+* Tue Jun 06 2017 Jitka Plesnikova <jplesnik@redhat.com> - 4:5.26.0-393
+- Stop providing old perl(MODULE_COMPAT_5.24.*)
+
+* Thu Jun 01 2017 Jitka Plesnikova <jplesnik@redhat.com> - 4:5.26.0-392
+- 5.26.0 bump (see <http://search.cpan.org/dist/perl-5.26.0/pod/perldelta.pod>
+  for release notes)
+- Update sub-packages
+- Update or remove patches
+- Enable hardening (bug #1238804)
+- Use 64 bit ints on 32 bit platforms (bug #1268828)
+
+* Fri Mar 31 2017 Petr Pisar <ppisar@redhat.com> - 4:5.24.1-391
+- Introduce build-conditions for groff, systemtap, syslog tests, and tcsh
+
+* Wed Mar 08 2017 Petr Pisar <ppisar@redhat.com> - 4:5.24.1-390
+- Fix a null-pointer dereference on malformed code (RT#130815)
+- Fix an use-after-free in substr() that modifies a magic variable (RT#129340)
+- Fix a memory leak leak in Perl_reg_named_buff_fetch() (RT#130822)
+- Fix an invalid memory read when parsing a loop variable (RT#130814)
+- Fix a heap-use-after-free in four-arguments substr call (RT#130624)
+
+* Fri Feb 17 2017 Petr Pisar <ppisar@redhat.com> - 4:5.24.1-389
+- Adapt Compress::Raw::Zlib to zlib-1.2.11 (bug #1420326)
+- Fix a heap buffer overflow when evaluating regexps with embedded code blocks
+  from more than one source (RT#129881)
+- Fix a memory leak in list assignment from or to magic values (RT#130766)
+
+* Fri Feb 10 2017 Petr Pisar <ppisar@redhat.com> - 4:5.24.1-388
+- Adapt tests to zlib-1.2.11 (bug #1420326)
+- Fix a crash when compiling a regexp with impossible quantifiers (RT#130561)
+- Fix a buffer overrun with format and "use bytes" (RT#130703)
+- Fix a buffer overflow when studying some regexps repeatedly
+  (RT#129281, RT#129061)
+
+* Thu Jan 26 2017 Petr Pisar <ppisar@redhat.com> - 4:5.24.1-387
+- Fix UTF-8 string handling in & operator (RT#129287)
+- Fix recreation of *:: (RT#129869)
+- Fix a memory leak in B::RHE->HASH method (RT#130504)
+- Fix parsing goto statements in multicalled subroutine (RT#113938)
+- Fix a heap overlow in parsing $# (RT#129274)
+
+* Fri Jan 20 2017 Petr Pisar <ppisar@redhat.com> - 4:5.24.1-386
+- Fix a buffer overflow in split in scalar context (RT#130262)
+- Fix a heap overflow with pack "W" (RT129149)
+- Fix a use-after-free when processing scalar variables in forms (RT#129125)
+- Fix a heap overflow if invalid octal or hexadecimal number is used in
+  transliteration expression (RT#129342)
+- Fix out-of-bound read in case of unmatched regexp backreference (RT#129377)
+
+* Mon Jan 16 2017 Jitka Plesnikova <jplesnik@redhat.com> - 4:5.24.1-385
+- 5.24.1 bump (see <http://search.cpan.org/dist/perl-5.24.1/pod/perldelta.pod>
+  for release notes)
+
+* Thu Jan 12 2017 Igor Gnatenko <ignatenko@redhat.com> - 4:5.24.0-384
+- Rebuild for readline 7.x
+
+* Fri Jan 06 2017 Petr Pisar <ppisar@redhat.com> - 4:5.24.0-383
+- Remove bundled Math-BigInt-FastCalc (bug #1408463)
+- Remove bundled Math-BigRat (bug #1408467)
+- Remove bundled bignum (bug #1409585)
+
+* Mon Dec 19 2016 Petr Pisar <ppisar@redhat.com> - 4:5.24.0-382
+- Fix a crash in optimized evaluation of "or ((0) x 0))" (RT#130247)
+- Fix a memory leak in IO::Poll (RT#129788)
+- Fix regular expression matching (RT#130307)
+
+* Thu Dec 01 2016 Petr Pisar <ppisar@redhat.com> - 4:5.24.0-381
+- Fix crash in Storable when deserializing malformed code reference
+  (RT#68348, RT#130098)
+- Fix crash on explicit return from regular expression substitution (RT#130188)
+- Tighten dependencies between architecture specific sub-packages to ISA
+- Fix assigning split() return values to an array
+- Fix const correctness in hv_func.h (bug #1242980)
+
+* Wed Nov 09 2016 Petr Pisar <ppisar@redhat.com> - 4:5.24.0-380
+- Tie perl-Errno release to interpreter build because of kernel version check
+  (bug #1393421)
+
+* Thu Nov 03 2016 Petr Pisar <ppisar@redhat.com> - 4:5.24.0-379
+- Fix crash in "evalbytes S" (RT#129196)
+- Fix crash in splice (RT#129164, RT#129166, RT#129167)
+- Fix string overrun in Perl_gv_fetchmethod_pvn_flags (RT#129267)
+- Fix crash when matching UTF-8 string with non-UTF-8 substrings (RT#129350)
+- Fix parsing perl options in shell bang line (RT#129336)
+- Fix firstchar bitmap under UTF-8 with prefix optimization (RT#129950)
+- Avoid infinite loop in h2xs tool if enum and type have the same name
+  (RT130001)
+- Fix stack handling when calling chdir without an argument (RT#129130)
+
+* Fri Sep 02 2016 Petr Pisar <ppisar@redhat.com> - 4:5.24.0-378
+- perl-core depends on Parse::CPAN::Meta module instead of package name to allow
+  upgrading perl-CPAN-Meta to 2.150010 (bug #1370681)
+
+* Tue Aug 02 2016 Jitka Plesnikova <jplesnik@redhat.com> - 4:5.24.0-377
+- Avoid loading of modules from current directory, CVE-2016-1238, (bug #1360425)
+
+* Thu Jul 28 2016 Petr Pisar <ppisar@redhat.com> - 4:5.24.0-376
+- Fix handling \N{} in tr for characters in range 128--255 (RT#128734)
+
+* Tue Jul 26 2016 Petr Pisar <ppisar@redhat.com> - 4:5.24.0-375
+- Fix building without perl in the build root
+- Own systemtap directories by perl-devel
+
+* Tue Jul 12 2016 Petr Pisar <ppisar@redhat.com> - 4:5.24.0-374
+- Fix a crash in lexical scope warnings (RT#128597)
+
+* Fri Jul 08 2016 Petr Pisar <ppisar@redhat.com> - 4:5.24.0-373
+- Fix a crash in "Subroutine redefined" warning (RT#128257)
+
+* Thu Jul 07 2016 Petr Pisar <ppisar@redhat.com> - 4:5.24.0-372
+- Fix a crash when vivifying a stub in a deleted package (RT#128532)
+
+* Thu Jul 07 2016 Jitka Plesnikova <jplesnik@redhat.com> - 4:5.24.0-371
+- Do not let XSLoader load relative paths (CVE-2016-6185)
+
+* Mon Jul 04 2016 Petr Pisar <ppisar@redhat.com> - 4:5.24.0-370
+- Fix line numbers with perl -x (RT#128508)
+
+* Fri Jun 24 2016 Petr Pisar <ppisar@redhat.com> - 4:5.24.0-369
+- Do not crash when inserting a non-stash into a stash (RT#128238)
+
+* Wed Jun 22 2016 Petr Pisar <ppisar@redhat.com> - 4:5.24.0-368
+- Do not use unitialized memory in $h{\const} warnings (RT#128189)
+- Fix precedence in hv_ename_delete (RT#128086)
+- Do not treat %%: as a stash (RT#128238)
+
+* Mon Jun 20 2016 Petr Pisar <ppisar@redhat.com> - 4:5.24.0-367
+- Fix compiling regular expressions like /\X*(?0)/ (RT#128109)
+
+* Thu Jun 16 2016 Petr Pisar <ppisar@redhat.com> - 4:5.24.0-366
+- Do not mangle errno from failed socket calls (RT#128316)
+
+* Tue Jun 14 2016 Petr Pisar <ppisar@redhat.com> - 4:5.24.0-365
+- Fix a memory leak when compiling a regular expression with a POSIX class
+  (RT#128313)
+
+* Thu May 19 2016 Petr Pisar <ppisar@redhat.com> - 4:5.24.0-364
+- Remove reflexive dependencies
+- Use pregenerated dependencies on bootstrapping
+- Specify more build-time dependencies
+
+* Wed May 18 2016 Jitka Plesnikova <jplesnik@redhat.com> - 4:5.24.0-363
+- Stop providing old perl(MODULE_COMPAT_5.22.*)
+- Update license tags
+
+* Wed May 11 2016 Jitka Plesnikova <jplesnik@redhat.com> - 4:5.24.0-362
+- 5.24.0 bump (see <http://search.cpan.org/dist/perl-5.24.0/pod/perldelta.pod>
+  for release notes)
+- Update sub-packages; Update or remove patches
+
+* Mon May 02 2016 Jitka Plesnikova <jplesnik@redhat.com> - 4:5.22.6-361
+- 5.22.2 bump (see <http://search.cpan.org/dist/perl-5.22.2/pod/perldelta.pod>
+  for release notes)
+
+* Mon Apr 18 2016 Petr Pisar <ppisar@redhat.com> - 4:5.22.1-360
+- Weak perl-Encode-devel dependency on perl-devel to Recommends level
+  (bug #1129443)
+- Remove perl-ExtUtils-ParseXS dependency on perl-devel (bug #1129443)
+- Require perl-devel by perl-ExtUtils-MakeMaker
+- Provide MM::maybe_command independently (bug #1129443)
+- Replace ExtUtils::MakeMaker dependency with ExtUtils::MM::Utils in IPC::Cmd
+  (bug #1129443)
+- Remove perl-ExtUtils-Install dependency on perl-devel (bug #1129443)
+- Remove perl-ExtUtils-Manifest dependency on perl-devel (bug #1129443)
+
+* Tue Mar 15 2016 Petr Pisar <ppisar@redhat.com> - 4:5.22.1-359
+- Do not filter FCGI dependency, CGI is non-core now
+
+* Fri Mar 04 2016 Petr Pisar <ppisar@redhat.com> - 4:5.22.1-358
+- Remove bundled perl-IPC-SysV (bug #1308527)
+
+* Wed Mar 02 2016 Petr Pisar <ppisar@redhat.com> - 4:5.22.1-357
+- Fix CVE-2016-2381 (ambiguous environment variables handling) (bug #1313702)
+
+* Thu Feb 04 2016 Fedora Release Engineering <releng@fedoraproject.org> - 4:5.22.1-356
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
+
+* Tue Dec 15 2015 Petr Pisar <ppisar@redhat.com> - 4:5.22.1-355
+- Remove bundled Math-BigInt (bug #1277203)
+
+* Mon Dec 14 2015 Jitka Plesnikova <jplesnik@redhat.com> - 5.22.1-354
+- 5.22.1 bump (see <http://search.cpan.org/dist/perl-5.22.1/pod/perldelta.pod>
+  for release notes)
+
+* Tue Oct 20 2015 Petr Pisar <ppisar@redhat.com> - 4:5.22.0-353
+- Rebuild to utilize perl(:VERSION) dependency symbol
+
+* Tue Oct 13 2015 Petr Pisar <ppisar@redhat.com> - 4:5.22.0-352
+- Do not own IO::Socket::IP manual page by perl-IO
+
+* Fri Oct 09 2015 Petr Pisar <ppisar@redhat.com> - 4:5.22.0-351
+- Sub-package Attribute-Handlers
+- Sub-package Devel-Peek
+- Sub-package Devel-SelfStubber
+- Sub-package SelfLoader
+- Sub-package IO
+- Sub-package Errno
+- Correct perl-Digest-SHA dependencies
+- Correct perl-Pod-Perldoc dependencies
+- Move utf8 and dependencies to perl-libs
+- Correct perl-devel and perl-CPAN dependencies
+- Sub-package IPC-SysV
+- Sub-package Test
+- Sub-package utilities (splain) into perl-utils
+- Provide perl version in perl(:VERSION) dependency symbol
+
+* Fri Aug 07 2015 Petr Pisar <ppisar@redhat.com> - 4:5.22.0-350
+- Sub-package Memoize
+- Sub-package Net-Ping
+- Sub-package Pod-Html
+
+* Thu Jul 16 2015 Petr Pisar <ppisar@redhat.com> - 4:5.22.0-349
+- Disable hardening due to some run-time failures (bug #1238804)
+
+* Mon Jul 13 2015 Petr Pisar <ppisar@redhat.com> - 4:5.22.0-348
+- Sub-package bignum
+- Sub-package Math-BigRat
+- Sub-package Math-BigInt-FastCalc
+- Sub-package Math-Complex
+- Remove bundled perl-Config-Perl-V (bug #1238203)
+- Remove bundled perl-MIME-Base64 (bug #1238222)
+- Remove bundled perl-PerlIO-via-QuotedPrint (bug #1238229)
+- Remove bundled perl-Pod-Escapes (bug #1238237)
+- Remove bundled perl-Term-Cap (bug #1238248)
+- Remove bundled perl-Text-Balanced (bug #1238269)
+- Remove bundled perl-libnet (bug #1238689)
+- Remove bundled perl-perlfaq (bug #1238703)
+- Remove bundled perl-Unicode-Normalize (bug #1238730)
+- Remove bundled perl-Unicode-Collate (bug #1238760)
+
+* Wed Jul 08 2015 Petr Pisar <ppisar@redhat.com> - 4:5.22.0-347
+- Store distribution's linker and compiler flags to more Config's options
+  in order to apply them when linking executable programs (bug #1238804)
+- Sub-package Config-Perl-V (bug #1238203)
+- Sub-package MIME-Base64 (bug #1238222)
+- Sub-package PerlIO-via-QuotedPrint (bug #1238229)
+- Update Pod-Escapes metadata (bug #1238237)
+- Sub-package Term-Cap (bug #1238248)
+- Sub-package Text-Balanced (bug #1238269)
+- Sub-package libnet (bug #1238689)
+- Sub-package perlfaq (bug #1238703)
+- Sub-package Unicode-Normalize (bug #1238730)
+- Sub-package Unicode-Collate (bug #1238760)
+- Sub-package Math-BigInt
+- Do not provide Net/libnet.cfg (bug #1238689)
+- Revert downstream change in Net::Config default configuration
+- Move libnetcfg tool from perl-devel into perl-libnetcfg sub-package
+
+* Thu Jun 18 2015 Petr Pisar <ppisar@redhat.com> - 4:5.22.0-346
+- Subpackage "open" module in order to keep deprecated "encoding" module
+  optional (bug #1228378)
+- Control building dual-lived sub-packages by perl_bootstrap macro
+- Make PadlistNAMES() lvalue again (bug #1231165)
+- Make magic vtable writable as a work-around for Coro (bug #1231165)
+- Explain file break-down into RPM packages in perl package description
+
+* Thu Jun 18 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 4:5.22.0-345
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
+
+* Wed Jun 10 2015 Jitka Plesnikova <jplesnik@redhat.com> - 4:5.22.0-244
+- Stop providing old perl(MODULE_COMPAT_5.20.*)
+
+* Thu Jun 04 2015 Jitka Plesnikova <jplesnik@redhat.com> - 4:5.22.0-243
+- Move ok and Test::Use::ok to perl-Test-Simple
+
+* Wed Jun 03 2015 Jitka Plesnikova <jplesnik@redhat.com> - 4:5.22.0-242
+- Move bin/encguess to perl-Encode
+
+* Mon Jun 01 2015 Jitka Plesnikova <jplesnik@redhat.com> - 4:5.22.0-241
+- 5.22.0 bump (see <http://search.cpan.org/dist/perl-5.22.0/pod/perldelta.pod>
+  for release notes)
+- Update sub-packages and erase the removed modules from the core
+- Clean patches, not needed with new version
+- Update patches to work with new version
+
+* Wed Apr 15 2015 Jitka Plesnikova <jplesnik@redhat.com> - 4:5.20.2-328
+- Sub-package perl-CGI-Fast and perl-Module-Build-Deprecated
+- Add missing dual-life modules to perl-core
+
+* Thu Apr 02 2015 Petr Šabata <contyk@redhat.com> - 4:5.20.2-327
+- Bump to make koji happy
+
+* Thu Apr 02 2015 Petr Šabata <contyk@redhat.com> - 4:5.20.2-326
+- Correct license tags of the main package, CGI, Compress-Raw-Zlib,
+  Digest-MD5, Test-Simple and Time-Piece
+- Package a Pod-Html license clarification email
+
+* Wed Mar 25 2015 Petr Pisar <ppisar@redhat.com> - 4:5.20.2-325
+- Sub-package Text-Tabs+Wrap (bug #910798)
+
+* Thu Mar 19 2015 Lubomir Rintel <lkundrak@v3.sk> - 4:5.20.2-324
+- Add systemtap probes for new dtrace markers
+
+* Mon Mar 16 2015 Petr Pisar <ppisar@redhat.com> - 4:5.20.2-323
+- Move perl(:MODULE_COMPAT_*) symbol and include directories to perl-libs
+  package (bug #1174951)
+
+* Sat Feb 21 2015 Till Maas <opensource@till.name> - 4:5.20.2-322
+- Rebuilt for Fedora 23 Change
+  https://fedoraproject.org/wiki/Changes/Harden_all_packages_with_position-independent_code
+
+* Wed Feb 18 2015 Jitka Plesnikova <jplesnik@redhat.com> - 4:5.20.2-321
+- Provide 5.20.2 MODULE_COMPAT
+- Clean list of provided files
+- Update names of changed patches
+
+* Tue Feb 17 2015 Jitka Plesnikova <jplesnik@redhat.com> - 4:5.20.2-320
+- 5.20.2 bump (see <http://search.cpan.org/dist/perl-5.20.2/pod/perldelta.pod>
+  for release notes)
+- Regenerate a2p.c (BZ#1177672)
+
+* Mon Feb 16 2015 Petr Pisar <ppisar@redhat.com> - 4:5.20.1-319
+- Improve h2ph fix for GCC 5.0
+
+* Thu Feb 12 2015 Petr Pisar <ppisar@redhat.com> - 4:5.20.1-318
+- Fix regressions with GCC 5.0
+
+* Tue Feb 03 2015 Jitka Plesnikova <jplesnik@redhat.com> - 4:5.20.1-317
+- Sub-package inc-latest module
+
+* Fri Jan 23 2015 Petr Pisar <ppisar@redhat.com> - 4:5.20.1-316
+- Delete dual-living programs clashing on debuginfo files (bug #878863)
+
+* Mon Dec 01 2014 Petr Pisar <ppisar@redhat.com> - 4:5.20.1-315
+- Report inaccesible file on failed require (bug #1166504)
+- Use stronger algorithm needed for FIPS in t/op/taint.t (bug #1128032)
+
+* Wed Nov 19 2014 Petr Pisar <ppisar@redhat.com> - 4:5.20.1-314
+- Consider Filter::Util::Call dependency as mandatory (bug #1165183)
+- Sub-package encoding module
+- Own upper directories by each package that installs a file there and
+  remove empty directories (bug #1165013)
+
+* Thu Nov 13 2014 Petr Pisar <ppisar@redhat.com> - 4:5.20.1-313
+- Freeze epoch at perl-Pod-Checker and perl-Pod-Usage (bug #1163490)
+- Remove bundled perl-ExtUtils-Command (bug #1158536)
+- Remove bundled perl-Filter-Simple (bug #1158542)
+
+* Wed Nov 12 2014 Petr Pisar <ppisar@redhat.com> - 4:5.20.1-312
+- Do not double-own perl-Pod-Usage' and perl-Pod-Checker' files by
+  perl-Pod-Parser on bootstrap
+- Sub-package ExtUtils-Command (bug #1158536)
+- Sub-package Filter-Simple (bug #1158542)
+- Build-require groff-base instead of big groff
+
+* Wed Oct 29 2014 Petr Pisar <ppisar@redhat.com> - 4:5.20.1-311
+- Remove bundled perl-Devel-PPPort (bug #1143999)
+- Remove bundled perl-B-Debug (bug #1142952)
+- Remove bundled perl-ExtUtils-CBuilder (bug #1144033)
+- Remove bundled perl-ExtUtils-Install (bug #1144068)
+
+* Thu Oct 23 2014 Petr Pisar <ppisar@redhat.com> - 4:5.20.1-310
+- Move all Module-CoreList files into perl-Module-CoreList
+- Sub-package corelist(1) into perl-Module-CoreList-tools (bug #1142757)
+- Remove bundled perl-Module-CoreList, and perl-Module-CoreList-tools
+  (bug #1142757)
+- Sub-package Devel-PPPort (bug #1143999)
+- Sub-package B-Debug (bug #1142952)
+- Use native version for perl-ExtUtils-CBuilder
+- Specify all dependencies for perl-ExtUtils-Install (bug #1144068)
+- Require perl-ExtUtils-ParseXS by perl-ExtUtils-MakeMaker because of xsubpp
+
+* Tue Sep 16 2014 Petr Šabata <contyk@redhat.com> - 4:5.20.1-309
+- Provide 5.20.0 MODULE_COMPAT
+
+* Mon Sep 15 2014 Jitka Plesnikova <jplesnik@redhat.com> - 4:5.20.1-308
+- 5.20.1 bump (see <http://search.cpan.org/dist/perl-5.20.1/pod/perldelta.pod>
+  for release notes)
+- Sub-package perl-ExtUtils-Miniperl (bug #1141222)
+
+* Wed Sep 10 2014 Petr Pisar <ppisar@redhat.com> - 4:5.20.0-307
+- Specify all dependencies for perl-CPAN (bug #1090112)
+- Disable non-core modules at perl-CPAN when bootstrapping
+- Remove bundled perl-CPAN (bug #1090112)
+
+* Sun Sep 07 2014 Jitka Plesnikova <jplesnik@redhat.com> - 4:5.20.0-306
+- Stop providing old perl(MODULE_COMPAT_5.18.*)
+
+* Mon Aug 18 2014 Jitka Plesnikova <jplesnik@redhat.com> - 4:5.20.0-305
+- Update to Perl 5.20.0
+- Clean patches, not needed with new version
+- Update patches to work with new version
+- Update version of sub-packages, remove the deleted sub-packages
+- Sub-package perl-IO-Socket-IP, perl-experimental
+- Disable BR perl(local::lib) for cpan tool when bootstraping
+
+* Sun Aug 17 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 4:5.18.2-304
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
+
+* Fri Aug 08 2014 Petr Pisar <ppisar@redhat.com> - 4:5.18.2-303
+- Declare dependencies for cpan tool (bug #1122498)
+- Use stronger algorithm needed for FIPS in t/op/crypt.t (bug #1128032)
+- Make *DBM_File desctructors thread-safe (bug #1107543)
+
+* Tue Jul 29 2014 Jitka Plesnikova <jplesnik@redhat.com> - 4:5.18.2-302
+- Sub-package perl-Term-ANSIColor and remove it (bug #1121924)
+
+* Fri Jun 27 2014 Petr Pisar <ppisar@redhat.com> - 4:5.18.2-301
+- Remove bundled perl-App-a2p, perl-App-find2perl, perl-App-s2p, and
+  perl-Package-Constants
+- Correct perl-App-s2p license to ((GPL+ or Artistic) and App-s2p)
+
+* Thu Jun 19 2014 Petr Pisar <ppisar@redhat.com> - 4:5.18.2-300
+- Sub-package perl-App-find2perl (bug #1111196)
+- Sub-package perl-App-a2p (bug #1111232)
+- Sub-package perl-App-s2p (bug #1111242)
+
+* Sat Jun 07 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 4:5.18.2-299
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
+
+* Thu Apr 10 2014 Petr Pisar <ppisar@redhat.com> - 4:5.18.2-298
+- Pass -fwrapv to stricter GCC 4.9 (bug #1082957)
+
+* Fri Apr 04 2014 Petr Pisar <ppisar@redhat.com> - 4:5.18.2-297
+- Fix t/comp/parser.t not to load system modules (bug #1084399)
+
+* Mon Feb 03 2014 Petr Pisar <ppisar@redhat.com> - 4:5.18.2-296
+- Move macro files into %%{_rpmconfigdir}/macros.d
+
+* Wed Jan 29 2014 Petr Pisar <ppisar@redhat.com> - 4:5.18.2-295
+- Provide perl(CPAN::Meta::Requirements) with six decimal places
+
+* Tue Jan 21 2014 Petr Pisar <ppisar@redhat.com> - 4:5.18.2-294
+- Drop perl-Test-Simple-tests package is it is not delivered by dual-lived
+  version
+- Hide dual-lived perl-Object-Accessor
+
+* Tue Jan 14 2014 Petr Pisar <ppisar@redhat.com> - 4:5.18.2-293
+- Use a macro to cover all 64-bit PowerPC architectures (bug #1052709)
+
+* Tue Jan 14 2014 Petr Pisar <ppisar@redhat.com> - 4:5.18.2-292
+- Use upstream patch to fix a test failure in perl5db.t when TERM=vt100
+
+* Tue Dec 10 2013 Jitka Plesnikova <jplesnik@redhat.com> - 4:5.18.2-291
+- 5.18.2 bump (see <http://search.cpan.org/dist/perl-5.18.2/pod/perldelta.pod>
+  for release notes)
+
+* Mon Dec 02 2013 Petr Pisar <ppisar@redhat.com> - 4:5.18.1-290
+- Document Math::BigInt::CalcEmu requires Math::BigInt (bug #959096)
+
+* Tue Oct 22 2013 Petr Pisar <ppisar@redhat.com> - 4:5.18.1-289
+- perl_default_filter macro does not need to filter private libraries from
+  provides (bug #1020809)
+- perl_default_filter anchors the filter regular expressions
+- perl_default_filter appends the filters instead of redefining them
+
+* Mon Sep 09 2013 Jitka Plesnikova <jplesnik@redhat.com> - 4:5.18.1-288
+- Fix rules for parsing numeric escapes in regexes (bug #978233)
+- Fix crash with \&$glob_copy (bug #989486)
+- Fix coreamp.t's rand test (bug #970567)
+- Reap child in case where exception has been thrown (bug #988805)
+- Fix using regexes with multiple code blocks (bug #982131)
+
+* Tue Aug 13 2013 Jitka Plesnikova <jplesnik@redhat.com> - 4:5.18.1-287
+- 5.18.1 bump (see <http://search.cpan.org/dist/perl-5.18.1/pod/perldelta.pod>
+  for release notes)
+- Disable macro %%{rebuild_from_scratch}
+- Fix regex seqfault 5.18 regression (bug #989921)
+- Fixed interpolating downgraded variables into upgraded (bug #970913)
+- SvTRUE returns correct value (bug #967463)
+- Fixed doc command in perl debugger (bug #967461)
+- Fixed unaligned access in slab allocator (bug #964950)
+
+* Sat Aug 03 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 4:5.18.0-286
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
+
+* Mon Jul 15 2013 Petr Pisar <ppisar@redhat.com> - 4:5.18.0-285
+- Stop providing old perl(MODULE_COMPAT_5.16.*)
+
+* Fri Jul 12 2013 Petr Pisar <ppisar@redhat.com> - 4:5.18.0-284
+- Perl 5.18 rebuild
+
+* Tue Jul 09 2013 Petr Pisar <ppisar@redhat.com> - 4:5.18.0-283
+- Define SONAME for libperl.so and move the libary into standard path
+- Link XS modules to libperl.so on Linux (bug #960048)
+
+* Mon Jul 08 2013 Petr Pisar <ppisar@redhat.com> - 4:5.18.0-282
+- Do not load system Term::ReadLine::Gnu while running tests
+- Disable ornaments on perl5db AutoTrace tests
+
+* Thu Jul 04 2013 Jitka Plesnikova <jplesnik@redhat.com> - 4:5.18.0-281
+- Update to Perl 5.18.0
+- Clean patches, not needed with new version
+
+* Wed Jun 26 2013 Petr Pisar <ppisar@redhat.com> - 4:5.16.3-280
+- Edit local patch level before compilation
+
+* Fri Jun 14 2013 Petr Pisar <ppisar@redhat.com> - 4:5.16.3-279
+- Do not distribute File::Spec::VMS (bug #973713)
+- Remove bundled CPANPLUS-Dist-Build (bug #973041)
+
+* Wed Jun 12 2013 Petr Pisar <ppisar@redhat.com> - 4:5.16.3-278
+- Update SystemTap scripts to recognize new phase__change marker and new probe
+  arguments (bug #971094)
+- Update h2ph(1) documentation (bug #948538)
+- Update pod2html(1) documentation (bug #948538)
+- Do not double-own archlib directory (bug #894195)
+
+* Tue Jun 11 2013 Petr Pisar <ppisar@redhat.com> - 4:5.16.3-277
+- Move CPANPLUS-Dist-Build files from perl-CPANPLUS
+- Move CPAN-Meta-Requirements files from CPAN-Meta
+- Add perl-Scalar-List-Utils to perl-core dependencies
+
+* Thu Jun 06 2013 Petr Pisar <ppisar@redhat.com> - 4:5.16.3-276
+- Require $Config{libs} providers (bug #905482)
+
+* Thu May 30 2013 Petr Pisar <ppisar@redhat.com> - 4:5.16.3-275
+- Correct typo in perl-Storable file list (bug #966865)
+- Remove bundled Storable (bug #966865)
+
+* Wed May 29 2013 Petr Pisar <ppisar@redhat.com> - 4:5.16.3-274
+- Sub-package Storable (bug #966865)
+
+* Mon May 13 2013 Petr Pisar <ppisar@redhat.com> - 4:5.16.3-273
+- Use lib64 directories on aarch64 architecture (bug #961900)
+
+* Fri May 10 2013 Petr Pisar <ppisar@redhat.com> - 4:5.16.3-272
+- Make regular expression engine safe in a signal handler (bug #849703)
+- Remove bundled ExtUtils-ParseXS, and Time-HiRes
+
+* Fri Apr 26 2013 Petr Pisar <ppisar@redhat.com> - 4:5.16.3-271
+- Sub-package Time-HiRes (bug #957048)
+- Remove bundled Getopt-Long, Locale-Maketext, and Sys-Syslog
+
+* Wed Apr 10 2013 Petr Pisar <ppisar@redhat.com> - 4:5.16.3-270
+- Fix leaking tied hashes (bug #859910)
+- Fix dead lock in PerlIO after fork from thread (bug #947444)
+- Add proper conflicts to perl-Getopt-Long, perl-Locale-Maketext, and
+  perl-Sys-Syslog
+
+* Tue Apr 09 2013 Petr Pisar <ppisar@redhat.com> - 4:5.16.3-269
+- Sub-package Sys-Syslog (bug #950057)
+
+* Fri Apr 05 2013 Petr Pisar <ppisar@redhat.com> - 4:5.16.3-268
+- Sub-package Getopt-Long (bug #948855)
+- Sub-package Locale-Maketext (bug #948974)
+
+* Fri Apr 05 2013 Petr Pisar <ppisar@redhat.com> - 4:5.16.3-267
+- Remove bundled constant, DB_File, Digest-MD5, Env, Exporter, File-Path,
+  File-Temp, Module-Load, Log-Message-Simple, Pod-Simple, Test-Harness,
+  Text-ParseWords
+
+* Mon Mar 25 2013 Petr Pisar <ppisar@redhat.com> - 4:5.16.3-266
+- Filter provides from *.pl files (bug #924938)
+
+* Fri Mar 22 2013 Petr Pisar <ppisar@redhat.com> - 4:5.16.3-265
+- Conflict perl-autodie with older perl (bug #911226)
+- Sub-package Env (bug #924619)
+- Sub-package Exporter (bug #924645)
+- Sub-package File-Path (bug #924782)
+- Sub-package File-Temp (bug #924822)
+
+* Thu Mar 21 2013 Petr Pisar <ppisar@redhat.com> - 4:5.16.3-264
+- Sub-package constant (bug #924169)
+- Sub-package DB_File (bug #924351)
+
+* Tue Mar 19 2013 Petr Pisar <ppisar@redhat.com> - 4:5.16.3-263
+- Correct perl-Digest-MD5 dependencies
+- Remove bundled Archive-Extract, File-Fetch, HTTP-Tiny,
+  Module-Load-Conditional, Time-Local
+
+* Fri Mar 15 2013 Petr Pisar <ppisar@redhat.com> - 4:5.16.3-262
+- Correct dependencies of perl-HTTP-Tiny
+- Sub-package Time-Local (bug #922054)
+
+* Thu Mar 14 2013 Petr Pisar <ppisar@redhat.com> - 4:5.16.3-261
+- 5.16.3 bump (see <http://search.cpan.org/dist/perl-5.16.3/pod/perldelta.pod>
+  for release notes)
+- Remove bundled autodie, B-Lint, CPANPLUS, Encode, File-CheckTree, IPC-Cmd,
+  Params-Check, Text-Soundex, Thread-Queue
+
+* Tue Mar 05 2013 Petr Pisar <ppisar@redhat.com> - 4:5.16.2-260
+- Fix CVE-2013-1667 (DoS in rehashing code) (bug #918008)
+
+* Mon Feb 18 2013 Petr Pisar <ppisar@redhat.com> - 4:5.16.2-259
+- Sub-package autodie (bug #911226)
+- Add NAME headings to CPAN modules (bug #908113)
+
+* Thu Feb 14 2013 Petr Pisar <ppisar@redhat.com> - 4:5.16.2-258
+- Fix perl-Encode-devel dependency declaration
+
+* Thu Feb 14 2013 Petr Pisar <ppisar@redhat.com> - 4:5.16.2-257
+- Sub-package Thread-Queue (bug #911062)
+
+* Wed Feb 13 2013 Petr Pisar <ppisar@redhat.com> - 4:5.16.2-256
+- Sub-package File-CheckTree (bug #909144)
+- Sub-package Text-ParseWords
+- Sub-package Encode (bug #859149)
+
+* Fri Feb 08 2013 Petr Pisar <ppisar@redhat.com> - 4:5.16.2-255
+- Remove bundled Log-Message
+- Remove bundled Term-UI
+
+* Thu Feb 07 2013 Petr Pisar <ppisar@redhat.com> - 4:5.16.2-254
+- Correct perl-podlators dependencies
+- Obsolete perl-ExtUtils-Typemaps by perl-ExtUtils-ParseXS (bug #891952)
+
+* Tue Feb 05 2013 Petr Pisar <ppisar@redhat.com> - 4:5.16.2-253
+- Sub-package Pod-Checker and Pod-Usage (bugs #907546, #907550)
+
+* Mon Feb 04 2013 Petr Pisar <ppisar@redhat.com> - 4:5.16.2-252
+- Remove bundled PathTools
+
+* Wed Jan 30 2013 Petr Pisar <ppisar@redhat.com> - 4:5.16.2-251
+- Sub-package B-Lint (bug #906015)
+
+* Wed Jan 30 2013 Petr Pisar <ppisar@redhat.com> - 4:5.16.2-250
+- Sub-package Text-Soundex (bug #905889)
+- Fix conflict declaration at perl-Pod-LaTeX (bug #904085)
+- Remove bundled Module-Pluggable (bug #903624)
+
+* Tue Jan 29 2013 Petr Pisar <ppisar@redhat.com> - 4:5.16.2-249
+- Run-require POD convertors by Module-Build and ExtUtils-MakeMaker to
+  generate documentation when building other packages
+
+* Fri Jan 25 2013 Petr Pisar <ppisar@redhat.com> - 4:5.16.2-248
+- Sub-package Pod-LaTeX (bug #904085)
+
+* Wed Jan 16 2013 Petr Pisar <ppisar@redhat.com> - 4:5.16.2-247
+- Remove bundled Pod-Parser
+
+* Fri Jan 11 2013 Petr Pisar <ppisar@redhat.com> - 4:5.16.2-246
+- Fix CVE-2012-6329 (misparsing of maketext strings) (bug #884354)
+
+* Thu Jan 10 2013 Petr Pisar <ppisar@redhat.com> - 4:5.16.2-245
+- Do not package App::Cpan(3pm) to perl-Test-Harness (bug #893768)
+
+* Tue Dec 18 2012 Petr Pisar <ppisar@redhat.com> - 4:5.16.2-244
+- Remove bundled Archive-Tar
+- Remove bundled CPAN-Meta-YAML
+- Remove bundled Module-Metadata
+
+* Tue Dec 18 2012 Petr Pisar <ppisar@redhat.com> - 4:5.16.2-243
+- Remove bundled Filter modules
+
+* Mon Nov 05 2012 Jitka Plesnikova <jplesnik@redhat.com> - 4:5.16.2-242
+- 5.16.2 bump (see
+  http://search.cpan.org/dist/perl-5.16.1/pod/perldelta.pod for release
+  notes)
+
+* Wed Oct 31 2012 Petr Pisar <ppisar@redhat.com> - 4:5.16.1-241
+- Remove bundled podlators (bug #856516)
+
+* Wed Oct 17 2012 Jitka Plesnikova <jplesnik@redhat.com> - 4:5.16.1-240
+- Do not crash when vivifying $| (bug #865296)
+
+* Mon Sep 24 2012 Petr Pisar <ppisar@redhat.com> - 4:5.16.1-239
+- Conflict perl-podlators with perl before sub-packaging (bug #856516)
+
+* Fri Sep 21 2012 Petr Pisar <ppisar@redhat.com> - 4:5.16.1-238
+- Do not leak with attribute on my variable (bug #858966)
+- Allow operator after numeric keyword argument (bug #859328)
+- Extend stack in File::Glob::glob (bug #859332)
+
+* Thu Sep 20 2012 Petr Pisar <ppisar@redhat.com> - 4:5.16.1-237
+- Put perl-podlators into perl-core list (bug #856516)
+
+* Tue Sep 18 2012 Petr Pisar <ppisar@redhat.com> - 4:5.16.1-236
+- Remove bundled perl-ExtUtils-Manifest
+- perl-PathTools uses Carp
+
+* Fri Sep 14 2012 Petr Pisar <ppisar@redhat.com> - 4:5.16.1-235
+- Override the Pod::Simple::parse_file to set output to STDOUT by default
+  (bug #826872)
+
+* Wed Sep 12 2012 Petr Pisar <ppisar@redhat.com> - 4:5.16.1-234
+- Sub-package perl-podlators (bug #856516)
+
+* Tue Sep 11 2012 Petr Pisar <ppisar@redhat.com> - 4:5.16.1-233
+- Do not access freed memory when cloning thread (bug #825749)
+- Match non-breakable space with /[\h]/ in ASCII mode (bug #844919)
+- Clear $@ before `do' I/O error (bug #834226)
+- Do not truncate syscall() return value to 32 bits (bug #838551)
+
+* Wed Sep 05 2012 Petr Pisar <ppisar@redhat.com> - 4:5.16.1-232
+- Move App::Cpan from perl-Test-Harness to perl-CPAN (bug #854577)
+
+* Fri Aug 24 2012 Petr Pisar <ppisar@redhat.com> - 4:5.16.1-231
+- Remove perl-devel dependency from perl-Test-Harness and perl-Test-Simple
+
+* Mon Aug 13 2012 Marcela Mašláňová <mmaslano@redhat.com> - 4:5.16.0-230
+- define perl_compat by macro for rebuilds
+- sub-packages depend on compat rather than on nvr
+
+* Thu Aug  9 2012 Marcela Mašláňová <mmaslano@redhat.com> - 4:5.16.0-229
+- apply conditionals for dual life patches
+
+* Thu Aug 09 2012 Jitka Plesnikova <jplesnik@redhat.com> 4:5.16.1-228
+- 5.16.1 bump (see
+  http://search.cpan.org/dist/perl-5.16.1/pod/perldelta.pod for release
+  notes)
+- Fixed reopening by scalar handle (bug #834221)
+- Fixed tr/// multiple transliteration (bug #831679)
+- Fixed heap-overflow in gv_stashpv (bug #826516)
+
+* Fri Jul 20 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 4:5.16.0-227
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
+
+* Fri Jul 13 2012 Paul Howarth <paul@city-fan.org> 4:5.16.0-226
+- Move the rest of ExtUtils-ParseXS into its sub-package, so that the main
+  perl package doesn't need to pull in perl-devel (bug #839953)
+
+* Mon Jul 02 2012 Jitka Plesnikova <jplesnik@redhat.com> 4:5.16.0-225
+- Fix broken atof (bug #835452)
+
+* Wed Jun 27 2012 Petr Pisar <ppisar@redhat.com> - 4:5.16.0-224
+- perl-Pod-Perldoc must require groff-base because Pod::Perldoc::ToMan executes
+  roff
+
+* Mon Jun 25 2012 Petr Pisar <ppisar@redhat.com> - 4:5.16.0-223
+- Test::Build requires Data::Dumper
+- Sub-package perl-Pod-Parser
+
+* Thu Jun 07 2012 Petr Pisar <ppisar@redhat.com> - 4:5.16.0-222
+- Remove MODULE_COMPAT_5.14.* Provides
+
+* Wed Jun 06 2012 Petr Pisar <ppisar@redhat.com> - 4:5.16.0-221
+- Perl 5.16 rebuild
+
+* Wed Jun 06 2012 Petr Pisar <ppisar@redhat.com> - 4:5.16.0-220
+- perl_bootstrap macro is distributed in perl-srpm-macros now
+
+* Fri Jun 01 2012 Petr Pisar <ppisar@redhat.com> - 4:5.16.0-219
+- Own zipdetails and IO::Compress::FAQ by perl-IO-Compress
+
+* Fri Jun  1 2012 Jitka Plesnikova <jplesnik@redhat.com> - 4:5.16.0-218
+- Fix find2perl to translate ? glob properly (bug #825701)
+
+* Thu May 31 2012 Petr Pisar <ppisar@redhat.com> - 4:5.16.0-218
+- Shorten perl-Module-Build version to 2 digits to follow upstream
+
+* Fri May 25 2012 Marcela Mašláňová <mmaslano@redhat.com> - 4:5.16.0-217
+- upload the stable 5.16.0
+
+* Wed May 16 2012 Marcela Mašláňová <mmaslano@redhat.com> - 4:5.16.0-RC2-217
+- clean patches, not needed with new version
+- regen by podcheck list of failed pods. cn, jp, ko pods failed. I can't decide
+  whether it's a real problem or false positives.
+
+* Mon Apr 30 2012 Petr Pisar <ppisar@redhat.com> - 4:5.14.2-216
+- Enable usesitecustomize
+
+* Thu Apr 19 2012 Petr Pisar <ppisar@redhat.com> - 4:5.14.2-215
+- Rebuild perl against Berkeley database version 5 (bug #768846)
+
+* Fri Apr 13 2012 Petr Pisar <ppisar@redhat.com> - 4:5.14.2-214
+- perl-Data-Dumper requires Scalar::Util (bug #811239)
+
+* Tue Apr 10 2012 Petr Pisar <ppisar@redhat.com> - 4:5.14.2-213
+- Sub-package Data::Dumper (bug #811239)
+
+* Tue Feb 21 2012 Petr Pisar <ppisar@redhat.com> - 4:5.14.2-212
+- Sub-package Filter (bug #790349)
+
+* Mon Feb 06 2012 Petr Pisar <ppisar@redhat.com> - 4:5.14.2-211
+- Fix searching for Unicode::Collate::Locale data (bug #756118)
+- Run safe signal handlers before returning from sigsuspend() and pause()
+  (bug #771228)
+- Correct perl-Scalar-List-Utils files list
+- Stop !$^V from leaking (bug #787613)
+
+* Tue Jan 10 2012 Paul Howarth <paul@city-fan.org> - 4:5.14.2-210
+- Rebuild again now that perl dependency generator is fixed (#772632, #772699)
+
+* Fri Jan 06 2012 Iain Arnell <iarnell@gmail.com> -4:5.14.2-209
+- perl-ExtUtils-MakeMaker sub-package requires ExtUtils::Install
+
+* Fri Jan  6 2012 Paul Howarth <paul@city-fan.org> - 4:5.14.2-208
+- Rebuild for gcc 4.7
+
+* Tue Dec 20 2011 Petr Pisar <ppisar@redhat.com> - 4:5.14.2-207
+- Fix interrupted reading. Thanks to Šimon Lukašík for reporting this issue
+  and thanks to Marcela Mašláňová for finding fix. (bug #767931)
+
+* Wed Dec 14 2011 Petr Pisar <ppisar@redhat.com> - 4:5.14.2-206
+- Fix leak with non-matching named captures (bug #767597)
+
+* Tue Nov 29 2011 Petr Pisar <ppisar@redhat.com> - 4:5.14.2-205
+- Sub-package ExtUtils::Install
+- Sub-package ExtUtils::Manifest
+- Do not provide private perl(ExtUtils::MakeMaker::_version)
+
+* Thu Nov 24 2011 Ville Skyttä <ville.skytta@iki.fi> - 4:5.14.2-204
+- Add $RPM_LD_FLAGS to lddlflags.
+
+* Wed Nov 23 2011 Petr Pisar <ppisar@redhat.com> - 4:5.14.2-203
+- Sub-package Socket
+
+* Mon Nov 21 2011 Petr Pisar <ppisar@redhat.com> - 4:5.14.2-202
+- Sub-package Pod::Perldoc
+
+* Fri Nov 18 2011 Petr Pisar <ppisar@redhat.com> - 4:5.14.2-201
+- Increase epoch of perl-Module-CoreList to overcome version regression in
+  upstream (bug #754641)
+
+* Thu Nov  3 2011 Marcela Mašláňová <mmaslano@redhat.com> - 4:5.14.2-200
+- perl(DBIx::Simple) is not needed in spec requirement in CPANPLUS. It's generated
+  automatically.
+
+* Wed Nov 02 2011 Petr Pisar <ppisar@redhat.com> - 4:5.14.2-199
+- Provide perl(DB) by perl
+
+* Mon Oct 24 2011 Petr Pisar <ppisar@redhat.com> - 4:5.14.2-198
+- Do not warn about missing site directories (bug #732799)
+
+* Thu Oct 20 2011 Marcela Mašláňová <mmaslano@redhat.com> - 4:5.14.2-197
+- cleaned spec (thanks to Grigory Batalov)
+-  Module-Metadata sub-package contained perl_privlib instead of privlib
+-  %%files parent section was repeated twice
+
+* Fri Oct 14 2011 Petr Pisar <ppisar@redhat.com> - 4:5.14.2-196
+- Filter false perl(DynaLoader) provide from perl-ExtUtils-MakeMaker
+  (bug #736714)
+- Change Perl_repeatcpy() prototype to allow repeat count above 2^31
+  (bug #720610)
+- Do not own site directories located in /usr/local (bug #732799)
+
+* Tue Oct 04 2011 Petr Pisar <ppisar@redhat.com> - 4:5.14.2-195
+- Fix CVE-2011-3597 (code injection in Digest) (bug #743010)
+- Sub-package Digest and thus Digest::MD5 module (bug #743247)
+
+* Tue Oct 04 2011 Iain Arnell <iarnell@gmail.com> 4:5.14.2-194
+- add provide for perl(:MODULE_COMPAT_5.14.2)
+
+* Mon Oct 03 2011 Petr Pisar <ppisar@redhat.com> - 4:5.14.2-193
+- 5.14.2 bump (see
+  https://metacpan.org/module/FLORA/perl-5.14.2/pod/perldelta.pod for release
+  notes).
+- Fixes panics when processing regular expression with \b class and /aa
+  modifier (bug #731062)
+- Fixes CVE-2011-2728 (File::Glob bsd_glob() crash with certain glob flags)
+  (bug #742987)
+
+* Mon Oct 03 2011 Petr Pisar <ppisar@redhat.com> - 4:5.14.1-192
+- Enable GDBM support again to build against new gdbm 1.9.1
+
+* Fri Sep 30 2011 Petr Pisar <ppisar@redhat.com> - 4:5.14.1-191
+- Disable NDBM support temporarily too as it's provided by gdbm package
+
+* Wed Sep 21 2011 Petr Pisar <ppisar@redhat.com> - 4:5.14.1-190
+- Disable GDBM support temporarily to build new GDBM
+
+* Thu Sep 15 2011 Petr Pisar <ppisar@redhat.com> - 4:5.14.1-189
+- Correct perl-CGI list of Provides
+- Make tests optional
+- Correct perl-ExtUtils-ParseXS Provides
+- Correct perl-Locale-Codes Provides
+- Correct perl-Module-CoreList version
+- Automate perl-Test-Simple-tests Requires version
+
+* Tue Sep 13 2011 Petr Pisar <ppisar@redhat.com> - 4:5.14.1-188
+- Make gdbm support optional to bootstrap with new gdbm
+- Split Carp into standalone sub-package to dual-live with newer versions
+  (bug #736768)
+
+* Tue Aug 30 2011 Petr Pisar <ppisar@redhat.com> - 4:5.14.1-187
+- Split Locale::Codes into standalone sub-package to dual-live with newer
+  versions (bug #717863)
+
+* Sun Aug 14 2011 Iain Arnell <iarnell@gmail.com> 4:5.14.1-186
+- perl needs to own vendorarch/auto directory
+
+* Fri Aug 05 2011 Petr Sabata <contyk@redhat.com> - 4:5.14.1-185
+- Move xsubpp to ExtUtils::ParseXS (#728393)
+
+* Fri Jul 29 2011 Iain Arnell <iarnell@gmail.com> 4:5.14.1-184
+- fix Compress-Raw-Bzip2 pacakging
+- ensure that we never bundle bzip2 or zlib
+
+* Tue Jul 26 2011 Marcela Mašláňová <mmaslano@redhat.com> - 4:5.14.1-183
+- remove from provides MODULE_COMPAT 5.12.*
+
+* Fri Jul 22 2011 Paul Howarth <paul@city-fan.org> - 4:5.14.1-182
+- Have perl-Module-Build explicitly require perl(CPAN::Meta) >= 2.110420,
+  needed for creation of MYMETA files by Build.PL; the dual-life version of
+  the package already has this dependency
+
+* Tue Jul 19 2011 Petr Sabata <contyk@redhat.com> - 4:5.14.1-181
+- Temporarily provide 5.12.* MODULE_COMPAT
+
+* Sat Jul 16 2011 Iain Arnell <iarnell@gmail.com> 4:5.14.1-180
+- fix escaping of the __provides_exclude_from macro
+
+* Wed Jul 13 2011 Iain Arnell <iarnell@gmail.com> 4:5.14.1-179
+- Parse-CPAN-Meta explicitly requires CPAN::Meta::YAML and JSON::PP
+- Exclude CPAN::Meta* from CPAN sub-package
+- Don't try to normalize CPAN-Meta, JSON-PP, and Parse-CPAN-Meta versions;
+  their dual-life packages aren't and have much higher numbers already
+
+* Mon Jun 27 2011 Marcela Mašláňová <mmaslano@redhat.com> - 4:5.14.1-178
+- update macros -> add %%perl_bootstrap 1 and example for readability
+- add into Module::Build dependency on perl-devel (contains macros.perl)
+- create new sub-package macros, because we need macros in minimal buildroot
+
+* Thu Jun 23 2011 Marcela Mašláňová <mmaslano@redhat.com> - 4:5.14.1-175
+- remove from macros BSD, because there exists BSD::Resources
+
+* Tue Jun 21 2011 Marcela Mašláňová <mmaslano@redhat.com> - 4:5.14.1-174
+- remove old MODULE_COMPATs
+
+* Mon Jun 20 2011 Iain Arnell <iarnell@gmail.com> 4:5.14.1-173
+- move ptargrep to Archive-Tar sub-package
+- fix version numbers in last two changelog entries
+
+* Mon Jun 20 2011 Paul Howarth <paul@city-fan.org> - 4:5.14.1-172
+- add provide for perl(:MODULE_COMPAT_5.14.1)
+
+* Mon Jun 20 2011 Marcela Mašláňová <mmaslano@redhat.com> - 4:5.14.1-171
+- update to 5.14.1 - no new modules, just serious bugfixes and doc
+- switch off fork test, which is failing only on koji
+
+* Thu Jun 16 2011 Marcela Mašláňová <mmaslano@redhat.com> - 4:5.14.0-170
+- try to update to latest ExtUtils::MakeMaker, no luck -> rebuild with current 
+  version, fix bug RT#67618 in modules
+
+* Wed Jun 15 2011 Marcela Mašláňová <mmaslano@redhat.com> - 4:5.14.0-169
+- filter even Mac:: requires, polish filter again for correct installation
+- add sub-package Compress-Raw-Bzip2, solve Bzip2 conflicts after install
+- and add IO::Uncompress::Bunzip2 correctly into IO-Compress
+
+* Mon Jun 13 2011 Marcela Mašláňová <mmaslano@redhat.com> - 4:5.14.0-167
+- Perl 5.14 mass rebuild, bump release, remove releases in subpackages
+
+* Thu Jun 09 2011 Marcela Mašláňová <mmaslano@redhat.com> - 4:5.14.0-165
+- Perl 5.14 mass rebuild
+
+* Thu Jun 09 2011 Marcela Mašláňová <mmaslano@redhat.com> - 4:5.14.0-163
+- Perl 5.14 mass rebuild
+
+* Thu Jun  9 2011 Marcela Mašláňová <mmaslano@redhat.com> - 4:5.14.0-162
+- add new sub-packages, remove BR in them
+
+* Wed Jun  1 2011 Marcela Mašláňová <mmaslano@redhat.com> - 4:5.14.0-161
+- arm can't do parallel builds
+- add require EE::MM into IPC::Cmd 711486
+
+* Mon May 16 2011 Marcela Mašláňová <mmaslano@redhat.com> - 4:5.14.0-161
+- test build of released 5.14.0
+- remove Class::ISA from sub-packages
+- patches 8+ are part of new release
+- remove vendorarch/auto/Compress/Zlib
+
+* Wed Apr 13 2011 Marcela Mašláňová <mmaslano@redhat.com> - 4:5.12.3-160
+- add provides UNIVERSAL and DB back into perl
+
+* Thu Apr 07 2011 Petr Pisar <ppisar@redhat.com> - 4:5.12.3-159
+- Remove rpath-make patch because we use --enable-new-dtags linker option
+
+* Fri Apr  1 2011 Marcela Mašláňová <mmaslano@redhat.com> - 4:5.12.3-158
+- 692900 - lc launders tainted flag, RT #87336
+
+* Fri Apr  1 2011 Robin Lee <cheeselee@fedoraproject.org> - 4:5.12.3-157
+- Cwd.so go to the PathTools sub-package
+
+* Tue Mar 15 2011 Marcela Mašláňová <mmaslano@redhat.com> - 4:5.12.3-156
+- sub-package Path-Tools
+
+* Sat Feb 19 2011 Iain Arnell <iarnell@gmail.com> 4:5.12.3-154
+- sub-package Scalar-List-Utils
+
+* Tue Feb 08 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 4:5.12.3-153
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
+
+* Thu Jan 27 2011 Petr Pisar <ppisar@redhat.com> - 4:5.12.3-152
+- Document ExtUtils::ParseXS upgrade in local patch tracking
+
+* Wed Jan 26 2011 Tom Callaway <spot@fedoraproject.org> - 4:5.12.3-151
+- update ExtUtils::ParseXS to 2.2206 (current) to fix Wx build
+
+* Wed Jan 26 2011 Petr Pisar <ppisar@redhat.com> - 4:5.12.3-150
+- Make %%global perl_default_filter lazy
+- Do not hard-code tapsetdir path
+
+* Tue Jan 25 2011 Lukas Berk <lberk@redhat.com> - 4:5.12.3-149
+- added systemtap tapset to make use of systemtap-sdt-devel
+- added an example systemtap script
+
+* Mon Jan 24 2011 Marcela Mašláňová <mmaslano@redhat.com> - 4:5.12.3-148
+- stable update 5.12.3
+- add COMPAT
+
+* Thu Dec  9 2010 Marcela Mašláňová <mmaslano@redhat.com> - 4:5.12.2-146
+- 463773 revert change. txt files are needed for example by UCD::Unicode,
+ PDF::API2,...
+
+* Thu Dec  9 2010 Marcela Mašláňová <mmaslano@redhat.com> - 4:5.12.2-145
+- required systemtap-sdt-devel on request in 661553
+
+* Mon Nov 29 2010 Marcela Mašláňová <mmaslano@redhat.com> - 4:5.12.2-144
+- create sub-package for CGI 3.49
+
+* Tue Nov 09 2010 Petr Pisar <ppisar@redhat.com> - 4:5.12.2-143
+- Sub-package perl-Class-ISA (bug #651317)
+
+* Mon Nov 08 2010 Petr Pisar <ppisar@redhat.com> - 4:5.12.2-142
+- Make perl(ExtUtils::ParseXS) version 4 digits long (bug #650882)
+
+* Tue Oct 19 2010 Marcela Mašláňová <mmaslano@redhat.com> - 4:5.12.2-141
+- 643447 fix redefinition of constant C in h2ph (visible in git send mail,
+  XML::Twig test suite)
+- remove ifdef for s390
+
+* Thu Oct 07 2010 Petr Pisar <ppisar@redhat.com> - 4:5.12.2-140
+- Package Test-Simple tests to dual-live with standalone package (bug #640752)
+ 
+* Wed Oct  6 2010 Marcela Mašláňová <mmaslano@redhat.com> - 4:5.12.2-139
+- remove removal of NDBM
+
+* Tue Oct 05 2010 Petr Pisar <ppisar@redhat.com> - 4:5.12.2-138
+- Consolidate Requires filtering
+- Consolidate libperl.so* Provides
+
+* Fri Oct  1 2010 Marcela Mašláňová <mmaslano@redhat.com> - 4:5.12.2-137
+- filter useless requires, provide libperl.so
+
+* Fri Oct 01 2010 Petr Pisar <ppisar@redhat.com> - 4:5.12.2-136
+- Reformat perl-threads description
+- Fix threads directories ownership
+
+* Thu Sep 30 2010 Marcela Mašláňová <mmaslano@redhat.com> - 4:5.12.2-135
+- sub-package threads
+
+* Thu Sep 23 2010 Marcela Mašláňová <mmaslano@redhat.com> - 4:5.12.2-134
+- add vendor path, clean paths in Configure in spec file
+- create sub-package threads-shared
+
+* Tue Sep  7 2010 Petr Pisar <ppisar@redhat.com> - 4:5.12.2-133
+- Do not leak when destroying thread (RT #77352, RHBZ #630667)
+
+* Tue Sep  7 2010 Petr Sabata <psabata@redhat.com> - 5:5.12.2-132
+- Fixing release number for modules
+
+* Tue Sep  7 2010 Petr Sabata <psabata@redhat.com> - 4:5.12.2-1
+- Update to 5.12.2
+- Removed one hardcoded occurence of perl version in build process
+- Added correct path to dtrace binary
+- BuildRequires: systemtap-sdt-devel
+
+* Tue Sep  7 2010 Marcela Mašláňová <mmaslano@redhat.com> - 4:5.12.1-131
+- run Configure with -Dusedtrace for systemtap support
+
+* Wed Aug 18 2010 Petr Pisar <ppisar@redhat.com> - 4:5.12.1-130
+- Run tests in parallel
+- Add "-Wl,--enable-new-dtags" to linker to allow to override perl's rpath by
+  LD_LIBRARY_PATH used in tests. Otherwise tested perl would link to old
+  in-system libperl.so.
+- Normalize spec file indentation
+
+* Mon Jul 26 2010  Marcela Mašláňová <mmaslano@redhat.com> - 4:5.12.1-129
+- 617956 move perlxs* docs files into perl-devel
+
+* Thu Jul 15 2010  Marcela Mašláňová <mmaslano@redhat.com> - 4:5.12.1-128
+- 614662 wrong perl-suidperl version in obsolete
+
+* Sun Jul 11 2010 Dan Horák <dan[at]danny.cz> - 4:5.12.1-127
+- add temporary compat provides needed on s390(x)
+
+* Fri Jul 09 2010 Petr Pisar <ppisar@redhat.com> - 4:5.12.1-126
+- Add Digest::SHA requirement to perl-CPAN and perl-CPANPLUS (bug #612563)
+
+* Thu Jul  8 2010 Marcela Mašláňová <mmaslano@redhat.com> - 4:5.12.1-125
+- 607505 add another dir into Module::Build (thanks to Paul Howarth)
+
+* Mon Jun 28 2010 Ralf Corsépius <corsepiu@fedoraproject.org> -  4:5.12.1-124
+- Address perl-Compress-Raw directory ownership (BZ 607881).
+
+* Thu Jun 10 2010 Marcela Mašláňová <mmaslano@redhat.com> - 4:5.12.1-123
+- remove patch with debugging symbols, which should be now ok without it
+- update to 5.12.1
+- MODULE_COMPAT
+
+* Tue Apr 27 2010 Marcela Mašláňová <mmaslano@redhat.com> - 4:5.12.0-122
+- packages in buildroot needs MODULE_COMPAT 5.10.1, add it back for rebuild
+
+* Sun Apr 25 2010 Marcela Mašláňová <mmaslano@redhat.com> - 4:5.12.0-121
+- rebuild with tests in test buildroot
+
+* Fri Apr 23 2010 Marcela Mašláňová <mmaslano@redhat.com> - 4:5.12.0-120-test
+- MODULE_COMPAT 5.12.0
+- remove BR man
+- clean configure
+- fix provides/requires in IO-Compress
+
+* Wed Apr 14 2010 Marcela Mašláňová <mmaslano@redhat.com> - 4:5.12.0-119.1
+- rebuild 5.12.0 without MODULE_COMPAT
+
+* Wed Apr 14 2010 Marcela Mašláňová <mmaslano@redhat.com> - 4:5.12.0-119
+- initial 5.12.0 build
+
+* Tue Apr  6 2010 Marcela Mašláňová <mmaslano@redhat.com> - 4:5.10.1-118
+- 463773 remove useless txt files from installation
+- 575842 remove PERL_USE_SAFE_PUTENV, use perl putenv
+
+* Tue Mar 16 2010 Chris Weyl <cweyl@alumni.drew.edu> - 4:5.10.1-117
+- package tests in their own subpackage
+
+* Mon Mar 15 2010 Marcela Mašláňová <mmaslano@redhat.com> - 4:5.10.1-116
+- add noarch into correct sub-packages
+- move Provides/Obsoletes into correct modules from main perl
+
+* Thu Mar 11 2010 Paul Howarth <paul@city-fan.org> - 4:5.10.1-115
+- restore missing version macros for Compress::Raw::Zlib, IO::Compress::Base
+  and IO::Compress::Zlib
+
+* Thu Mar 11 2010 Marcela Mašláňová <mmaslano@redhat.com> - 4:5.10.1-114
+- clean spec a little more
+- rebuild with new gdbm
+
+* Fri Mar  5 2010 Marcela Mašláňová <mmaslano@redhat.com> - 4:5.10.1-112
+- fix license according to advice from legal
+- clean unused patches
+
+* Wed Feb 24 2010 Chris Weyl <cweyl@alumni.drew.edu> - 4:5.10.1-111
+- update subpackage tests macros to handle packages with an epoch properly
+
+* Fri Feb 05 2010 Chris Weyl <cweyl@alumni.drew.edu> - 4:5.10.1-110
+- add initial EXPERIMENTAL tests subpackage rpm macros to macros.perl
+
+* Tue Dec 22 2009 Marcela Mašláňová <mmaslano@redhat.com> - 4:5.10.1-109
+- 547656 CVE-2009-3626 perl: regexp matcher crash on invalid UTF-8 characters  
+- 549306 version::Internals should be packaged in perl-version subpackage
+- Parse-CPAN-Meta updated and separate package is dead
+
+* Mon Dec 21 2009 Chris Weyl <cweyl@alumni.drew.edu> - 4:5.10.1-107
+- subpackage parent and Parse-CPAN-Meta; add them to core's dep list
+
+* Fri Dec 18 2009 Ralf Corsépius <corsepiu@fedoraproject.org> - 4:5.10.1-106
+- exclude "parent".
+
+* Fri Dec 18 2009 Ralf Corsépius <corsepiu@fedoraproject.org> - 4:5.10.1-105
+- exclude Parse-CPAN-Meta.
+
+* Mon Dec  7 2009 Stepan Kasal <skasal@redhat.com> - 4:5.10.1-104
+- do not pack Bzip2 manpages either (#544582)
+
+* Mon Dec  7 2009 Stepan Kasal <skasal@redhat.com> - 4:5.10.1-103
+- do not pack Bzip2 modules (#544582)
+- hack: cheat about Compress::Raw::Zlib version (#544582)
+
+* Thu Dec  3 2009 Stepan Kasal <skasal@redhat.com> - 4:5.10.1-102
+- switch off check for ppc64 and s390x
+- remove the hack for "make test," it is no longer needed
+
+* Thu Dec  3 2009 Stepan Kasal <skasal@redhat.com> - 4:5.10.1-101
+- be more careful with the libperl.so compatibility symlink (#543936)
+
+* Wed Dec  2 2009 Stepan Kasal <skasal@redhat.com> - 4:5.10.1-100
+- new upstream version
+- release number must be high, because of stale version numbers of some
+  of the subpackages
+- drop upstreamed patches
+- update the versions of bundled modules
+- shorten the paths in @INC
+- build without DEBUGGING
+- implement compatibility measures for the above two changes, for a short
+  transition period
+- provide perl(:MODULE_COMPAT_5.10.0), for that transition period only
+
+* Tue Dec  1 2009 Stepan Kasal <skasal@redhat.com> - 4:5.10.0-87
+- fix patch-update-Compress-Raw-Zlib.patch (did not patch Zlib.pm)
+- update Compress::Raw::Zlib to 2.023
+- update IO::Compress::Base, and IO::Compress::Zlib to 2.015 (#542645)
+
+* Mon Nov 30 2009 Marcela Mašláňová <mmaslano@redhat.com> - 4:5.10.0-86
+- 542645 update IO-Compress-Base
+
+* Tue Nov 24 2009 Stepan Kasal <skasal@redhat.com> - 4:5.10.0-85
+- back out perl-5.10.0-spamassassin.patch (#528572)
+
+* Thu Oct 01 2009 Chris Weyl <cweyl@alumni.drew.edu> - 4:5.10.0-84
+- add /perl(UNIVERSAL)/d; /perl(DB)/d to perl_default_filter auto-provides
+  filtering
+
+* Thu Oct  1 2009 Stepan Kasal <skasal@redhat.com> - 4:5.10.0-83
+- update Storable to 2.21
+
+* Mon Aug 31 2009 Chris Weyl <cweyl@alumni.drew.edu> - 4:5.10.0-82
+- update our Test-Simple update to 0.92 (patch by Iain Arnell), #519417
+- update Module-Pluggable to 3.9
+
+* Thu Aug 27 2009 Chris Weyl <cweyl@alumni.drew.edu> - 4:5.10.0-81
+- fix macros.perl *sigh*
+
+* Mon Aug 24 2009 Stepan Kasal <skasal@redhat.com> - 4:5.10.0-80
+- Remove -DDEBUGGING=-g, we are not ready yet.
+
+* Fri Aug 21 2009 Chris Weyl <cweyl@alumni.drew.edu> - 4:5.10.0-79
+- add helper filtering macros to -devel, for perl-* package invocation
+  (#502402)
+
+* Fri Jul 31 2009 Stepan Kasal <skasal@redhat.com> - 4:5.10.0-78
+- Add configure option -DDEBUGGING=-g (#156113)
+
+* Tue Jul 28 2009 arcela Mašláňová <mmaslano@redhat.com> - 4:5.10.0-77
+- 510127 spam assassin suffer from tainted bug
+
+* Mon Jul 27 2009 Marcela Mašláňová <mmaslano@redhat.com> - 4:5.10.0-76
+- 494773 much better swap logic to support reentrancy and fix assert failure (rt #60508)
+
+* Sat Jul 25 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 4:5.10.0-75
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild
+
+* Fri Jul 10 2009 Stepan Kasal <skasal@redhat.com> - 4:5.10.0-74
+- fix generated .ph files so that they no longer cause warnings (#509676)
+- remove PREREQ_FATAL from Makefile.PL's processed by miniperl
+- update to latest Scalar-List-Utils (#507378)
+- perl-skip-prereq.patch: skip more prereq declarations in Makefile.PL files
+
+* Tue Jul  7 2009 Stepan Kasal <skasal@redhat.com> - 4:5.10.0-73
+- re-enable tests
+
+* Tue Jul  7 2009 Stepan Kasal <skasal@redhat.com> - 4:5.10.0-72
+- move -DPERL_USE_SAFE_PUTENV to ccflags (#508496)
+
+* Mon Jun  8 2009 Marcela Mašláňová <mmaslano@redhat.com> - 4:5.10.0-71
+- #504386 update of Compress::Raw::Zlib 2.020
+
+* Thu Jun  4 2009 Marcela Mašláňová <mmaslano@redhat.com> - 4:5.10.0-70
+- update File::Spec (PathTools) to 3.30
+
+* Wed Jun  3 2009 Stepan Kasal <skasal@redhat.com> - 4:5.10.0-69
+- fix #221113, $! wrongly set when EOF is reached
+
+* Fri Apr 10 2009 Marcela Mašláňová <mmaslano@redhat.com> - 4:5.10.0-68
+- do not use quotes in patchlevel.h; it breaks installation from cpan (#495183)
+
+* Tue Apr  7 2009 Stepan Kasal <skasal@redhat.com> - 4:5.10.0-67
+- update CGI to 3.43, dropping upstreamed perl-CGI-escape.patch
+
+* Tue Apr  7 2009 Stepan Kasal <skasal@redhat.com> - 4:5.10.0-66
+- fix CGI::escape for all strings (#472571)
+- perl-CGI-t-util-58.patch: Do not distort lib/CGI/t/util-58.t
+  http://rt.perl.org/rt3/Ticket/Display.html?id=64502
+
+* Fri Mar 27 2009 Stepan Kasal <skasal@redhat.com> - 4:5.10.0-65
+- Move the gargantuan Changes* collection to -devel (#492605)
+
+* Tue Mar 24 2009 Stepan Kasal <skasal@redhat.com> - 4:5.10.0-64
+- update module autodie
+
+* Mon Mar 23 2009 Stepan Kasal <skasal@redhat.com> - 4:5.10.0-63
+- update Digest::SHA (fixes 489221)
+
+* Wed Mar 11 2009 Tom "spot" Callaway <tcallawa@redhat.com> - 4:5.10.0-62
+- drop 26_fix_pod2man_upgrade (don't need it)
+- fix typo in %%define ExtUtils_CBuilder_version
+
+* Wed Mar 11 2009 Tom "spot" Callaway <tcallawa@redhat.com> - 4:5.10.0-61
+- apply Change 34507: Fix memory leak in single-char character class optimization
+- Reorder @INC, based on b9ba2fadb18b54e35e5de54f945111a56cbcb249
+- fix Archive::Extract to fix test failure caused by tar >= 1.21
+- Merge useful Debian patches
+
+* Tue Mar 10 2009 Stepan Kasal <skasal@redhat.com> - 4:5.10.0-60
+- remove compatibility obsolete sitelib directories
+- use a better BuildRoot
+- drop a redundant mkdir in %%install
+- call patchlevel.h only once; rm patchlevel.bak
+- update modules Sys::Syslog, Module::Load::Conditional, Module::CoreList,
+  Test::Harness, Test::Simple, CGI.pm (dropping the upstreamed patch),
+  File::Path (that includes our perl-5.10.0-CVE-2008-2827.patch),
+  constant, Pod::Simple, Archive::Tar, Archive::Extract, File::Fetch,
+  File::Temp, IPC::Cmd, Time::HiRes, Module::Build, ExtUtils::CBuilder
+- standardize the patches for updating embedded modules
+- work around a bug in Module::Build tests bu setting TMPDIR to a directory
+  inside the source tree
+
+* Sun Mar 08 2009 Robert Scheck <robert@fedoraproject.org> - 4:5.10.0-59
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild
+
+* Mon Feb 16 2009 Tom "spot" Callaway <tcallawa@redhat.com> - 4:5.10.0-58
+- add /usr/lib/perl5/site_perl to otherlibs (bz 484053)
+
+* Mon Feb 16 2009 Dennis Gilmore <dennis@ausil.us> - 4:5.10.0-57
+- build sparc64 without _smp_mflags
+
+* Sat Feb 07 2009 Dennis Gilmore <dennis@ausil.us> - 4:5.10.0-56
+- limit sparc builds to -j12
+
+* Tue Feb  3 2009 Marcela Mašláňová <mmaslano@redhat.com> - 4:5.10.0-55
+- update IPC::Cmd to v 0.42
+
+* Mon Jan 19 2009 Marcela Mašláňová <mmaslano@redhat.com> - 4:5.10.0-54
+- 455410 http://rt.perl.org/rt3/Public/Bug/Display.html?id=54934
+  Attempt to free unreferenced scalar fiddling with the symbol table
+  Keep the refcount of the globs generated by PerlIO::via balanced.
+
+* Mon Dec 22 2008 Marcela Mašláňová <mmaslano@redhat.com> - 4:5.10.0-53
+- add missing XHTML.pm into Pod::Simple
+
+* Fri Dec 12 2008 Marcela Mašláňová <mmaslano@redhat.com> - 4:5.10.0-52
+- 295021 CVE-2007-4829 perl-Archive-Tar directory traversal flaws
+- add another source for binary files, which test untaring links
+
+* Fri Nov 28 2008 Tom "spot" Callaway <tcallawa@redhat.com> - 4:5.10.0-51
+- to fix Fedora bz 473223, which is really perl bug #54186 (http://rt.perl.org/rt3//Public/Bug/Display.html?id=54186)
+  we apply Changes 33640, 33881, 33896, 33897
+
+* Mon Nov 24 2008 Marcela Mašláňová <mmaslano@redhat.com> - 4:5.10.0-50
+- change summary according to RFC fix summary discussion at fedora-devel :)
+
+* Thu Oct 23 2008 Tom "spot" Callaway <tcallawa@redhat.com> - 4:5.10.0-49
+- update File::Temp to 0.20
+
+* Sun Oct 12 2008 Lubomir Rintel <lkundrak@v3.sk> - 4:5.10.0-48
+- Include fix for rt#52740 to fix a crash when using Devel::Symdump and
+  Compress::Zlib together
+
+* Tue Oct 07 2008 Marcela Mašláňová <mmaslano@redhat.com> 4:5.10.0-47.fc10
+- rt#33242, rhbz#459918. Segfault after reblessing objects in Storable.
+- rhbz#465728 upgrade Simple::Pod to 3.07
+
+* Wed Oct  1 2008 Stepan Kasal <skasal@redhat.com> - 4:5.10.0-46
+- also preserve the timestamp of AUTHORS; move the fix to the recode
+  function, which is where the stamps go wrong
+
+* Wed Oct  1 2008 Tom "spot" Callaway <tcallawa@redhat.com> 4:5.10.0-45
+- give Changes*.gz the same datetime to avoid multilib conflict
+
+* Wed Sep 17 2008 Marcela Maslanova <mmaslano@redhat.com> 4:5.10.0-44.fc10
+- remove Tar.pm from Archive-Extract
+- fix version of Test::Simple in spec
+- update Test::Simple
+- update Archive::Tar to 1.38
+
+* Tue Sep 16 2008 Marcela Maslanova <mmaslano@redhat.com> 4:5.10.0-43.fc10
+- 462444 update Test::Simple to 0.80
+
+* Thu Aug 14 2008 Stepan Kasal <skasal@redhat.com> - 4:5.10.0-42.fc10
+- move libnet to the right directory, along Net/Config.pm
+
+* Wed Aug 13 2008 Stepan Kasal <skasal@redhat.com> - 4:5.10.0-41.fc10
+- do not create directory .../%%{version}/auto
+
+* Tue Aug  5 2008 Marcela Maslanova <mmaslano@redhat.com> 4:5.10.0-40.fc10
+- 457867 remove required IPC::Run from CPANPLUS - needed only by win32
+- 457771 add path
+
+* Fri Aug  1 2008 Stepan Kasal <skasal@redhat.com> 4:5.10.0-39.fc10
+- CGI.pm bug in exists() on tied param hash (#457085)
+- move the enc2xs templates (../Encode/*.e2x) to -devel, (#456534)
+
+* Mon Jul 21 2008 Marcela Maslanova <mmaslano@redhat.com> 4:5.10.0-38
+- 455933 update to CGI-3.38
+- fix fuzz problems (patch6)
+- 217833 pos() function handle unicode characters correct
+
+* Thu Jul 10 2008 Tom "spot" Callaway <tcallawa@redhat.com> 4:5.10.0-36
+- rebuild for new db4 4.7
+
+* Wed Jul  9 2008 Stepan Kasal <skasal@redhat.com> 4:5.10.0-35
+- remove db4 require, it is handled automatically
+
+* Thu Jul  3 2008 Stepan Kasal <skasal@redhat.com> 4:5.10.0-34
+- 453646 use -DPERL_USE_SAFE_PUTENV. Without fail some modules f.e. readline.
+
+* Tue Jul  1 2008 Marcela Maslanova <mmaslano@redhat.com> 4:5.10.0-33
+- 451078 update Test::Harness to 3.12 for more testing. Removed verbose 
+test, new Test::Harness has possibly verbose output, but updated package
+has a lot of features f.e. TAP::Harness. Carefully watched all new bugs 
+related to tests!
+
+* Fri Jun 27 2008 Stepan Kasal <skasal@redhat.com> 4:5.10.0-32
+- bump the release number, so that it is not smaller than in F-9
+
+* Tue Jun 24 2008 Marcela Maslanova <mmaslano@redhat.com> 4:5.10.0-28
+- CVE-2008-2827 perl: insecure use of chmod in rmtree
+
+* Wed Jun 11 2008 Marcela Maslanova <mmaslano@redhat.com> 4:5.10.0-27
+- 447371 wrong access permission rt49003
+
+* Tue Jun 10 2008 Stepan Kasal <skasal@redhat.com> 4:5.10.0-26
+- make config parameter list consistent for 32bit and 64bit platforms,
+  add config option -Dinc_version_list=none (#448735)
+- use perl_archname consistently
+- cleanup of usage of *_lib macros in %%install
+
+* Fri Jun  6 2008 Marcela Maslanova <mmaslano@redhat.com> 4:5.10.0-25
+- 449577 rebuild for FTBFS
+
+* Mon May 26 2008 Marcela Maslanova <mmaslano@redhat.com> 4:5.10.0-24
+- 448392 upstream fix for assertion
+
+* Thu May 22 2008 Tom "spot" Callaway <tcallawa@redhat.com> 4:5.10.0-23
+- sparc64 breaks with the rpath hack patch applied
+
+* Mon May 19 2008 Marcela Maslanova <mmaslano@redhat.com>
+- 447142 upgrade CGI to 3.37 (this actually happened in -21 in rawhide.)
+
+* Sat May 17 2008 Tom "spot" Callaway <tcallawa@redhat.com> 4:5.10.0-21
+- sparc64 fails two tests under mysterious circumstances. we need to get the
+  rest of the tree moving, so we temporarily disable the tests on that arch.
+
+* Tue Mar 18 2008 Tom "spot" Callaway <tcallawa@redhat.com> 4:5.10.0-20
+- create the vendor_perl/%%{perl_version}/%%{perl_archname}/auto directory 
+  in %%{_libdir} so we own it properly
+
+* Tue Mar 18 2008 Tom "spot" Callaway <tcallawa@redhat.com> 4:5.10.0-19
+- fix CPANPLUS-Dist-Build Provides/Obsoletes (bz 437615)
+- bump version on Module-CoreList subpackage
+
+* Tue Mar 18 2008 Tom "spot" Callaway <tcallawa@redhat.com> 4:5.10.0-18
+- forgot to create the auto directory for multilib vendor_perl dirs
+
+* Tue Mar 18 2008 Tom "spot" Callaway <tcallawa@redhat.com> 4:5.10.0-17
+- own multilib vendor_perl directories
+- mark Module::CoreList patch in patchlevel.h
+
+* Tue Mar 18 2008 Marcela Maslanova <mmaslano@redhat.com> 4:5.10.0-16
+- 437817: RFE: Upgrade Module::CoreList to 2.14
+
+* Wed Mar 12 2008 Marcela Maslanova <mmaslano@redhat.com> 4:5.10.0-15
+- xsubpp now lives in perl-devel instead of perl.
+
+* Sat Mar  8 2008 Tom "spot" Callaway <tcallawa@redhat.com> 4:5.10.0-14
+- back out Archive::Extract patch, causing odd test failure
+
+* Sat Mar  8 2008 Tom "spot" Callaway <tcallawa@redhat.com> 4:5.10.0-13
+- add missing lzma test file
+
+* Fri Mar  7 2008 Tom "spot" Callaway <tcallawa@redhat.com> 4:5.10.0-12
+- conditionalize multilib patch report in patchlevel.h
+- Update Archive::Extract to 0.26
+- Update Module::Load::Conditional to 0.24
+
+* Fri Mar  7 2008 Tom "spot" Callaway <tcallawa@redhat.com> 4:5.10.0-11
+- only do it once, and do it for all our patches
+
+* Fri Mar  7 2008 Tom "spot" Callaway <tcallawa@redhat.com> 4:5.10.0-10
+- note 32891 in patchlevel.h
+
+* Fri Mar  7 2008 Tom "spot" Callaway <tcallawa@redhat.com> 4:5.10.0-9
+- get rid of bad conflicts on perl-File-Temp
+
+* Fri Mar  7 2008 Tom "spot" Callaway <tcallawa@redhat.com> 4:5.10.0-8
+- use /usr/local for sitelib/sitearch dirs
+- patch 32891 for significant performance improvement
+
+* Fri Feb 22 2008 Stepan Kasal <skasal@redhat.com> - 4:5.10.0-7
+- Add perl-File-Temp provides/obsoletes/conflicts (#433836),
+  reported by Bill McGonigle <bill@bfccomputing.com>
+- escape the macros in Jan 30 entry
+
+* Tue Feb 19 2008 Fedora Release Engineering <rel-eng@fedoraproject.org> - 4:5.10.0-6
+- Autorebuild for GCC 4.3
+
+* Wed Jan 30 2008 Tom "spot" Callaway <tcallawa@redhat.com> - 4:5.10.0-5
+- disable some futime tests in t/io/fs.t because they started failing on x86_64
+  in the Fedora builders, and no one can figure out why. :/
+
+* Wed Jan 30 2008 Tom "spot" Callaway <tcallawa@redhat.com> - 4:5.10.0-4
+- create %%{_prefix}/lib/perl5/vendor_perl/%%{perl_version}/auto and own it
+  in base perl (resolves bugzilla 214580)
+
+* Thu Jan 10 2008 Tom "spot" Callaway <tcallawa@redhat.com> - 4:5.10.0-3
+- Update Sys::Syslog to 0.24, to fix test failures
+
+* Wed Jan 9 2008 Tom "spot" Callaway <tcallawa@redhat.com> - 4:5.10.0-2
+- add some BR for tests
+
+* Tue Jan 8 2008 Tom "spot" Callaway <tcallawa@redhat.com> - 4:5.10.0-1
+- 5.10.0 final
+- clear out all the unnecessary patches (down to 8 patches!)
+- get rid of super perl debugging mode
+- add new subpackages
+
+* Thu Nov 29 2007 Robin Norwood <rnorwood@redhat.com> - 4:5.10.0_RC2-0.1
+- first attempt at building 5.10.0
+
+