diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..94751ab
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+SOURCES/perl-5.30.1.tar.xz
diff --git a/.perl.metadata b/.perl.metadata
new file mode 100644
index 0000000..98f0497
--- /dev/null
+++ b/.perl.metadata
@@ -0,0 +1 @@
+4bc190b6ac368f573e6a028f91430f831d40d30a SOURCES/perl-5.30.1.tar.xz
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..fc24c8f
--- /dev/null
+++ b/SOURCES/gendep.macros
@@ -0,0 +1,2076 @@
+%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.32 \
+Provides: perl(Archive::Tar::Constant) = 2.32 \
+Provides: perl(Archive::Tar::File) = 2.32 \
+%{nil}
+%global gendep_perl_Attribute_Handlers \
+Requires: perl(:VERSION) >= 5.6.0 \
+Requires: perl(Carp) \
+Requires: perl(strict) \
+Requires: perl(warnings) \
+Provides: perl(Attribute::Handlers) = 1.01 \
+%{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(Errno) \
+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.672 \
+Provides: perl(CPAN) = 2.22 \
+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.22 \
+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.5011 \
+Provides: perl(CPAN::FTP::netrc) = 1.01 \
+Provides: perl(CPAN::FirstTime) = 5.5311 \
+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.21 \
+Provides: perl(CPAN::Module) = 5.5003 \
+Provides: perl(CPAN::Nox) = 5.5001 \
+Provides: perl(CPAN::Plugin) = 0.97 \
+Provides: perl(CPAN::Plugin::Specfile) = 0.02 \
+Provides: perl(CPAN::Prompt) = 5.5 \
+Provides: perl(CPAN::Queue) = 5.5002 \
+Provides: perl(CPAN::Queue::Item) \
+Provides: perl(CPAN::Shell) = 5.5008 \
+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.50 \
+Provides: perl(Carp::Heavy) = 1.50 \
+Provides: perl(Carp::Heavy) = 1.50 \
+%{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.084 \
+%{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.084 \
+%{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.32 \
+%{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.843 \
+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.174 \
+%{nil}
+%global gendep_perl_Data_Dumper_debuginfo \
+%{nil}
+%global gendep_perl_Devel_PPPort \
+Requires: perl(strict) \
+Requires: perl(vars) \
+Provides: perl(Devel::PPPort) = 3.52 \
+%{nil}
+%global gendep_perl_Devel_Peek \
+Requires: perl(Exporter) \
+Requires: perl(XSLoader) \
+Provides: perl(Devel::Peek) = 1.28 \
+%{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(Digest::SHA) \
+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) = 6.02 \
+%{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::MIME::Name) \
+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(Storable) \
+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) = 3.01 \
+Provides: perl(Encode::Alias) = 2.24 \
+Provides: perl(Encode::Byte) = 2.4 \
+Provides: perl(Encode::CJKConstants) = 2.2 \
+Provides: perl(Encode::CN) = 2.3 \
+Provides: perl(Encode::CN::HZ) = 2.10 \
+Provides: perl(Encode::Config) = 2.5 \
+Provides: perl(Encode::EBCDIC) = 2.2 \
+Provides: perl(Encode::Encoder) = 2.3 \
+Provides: perl(Encode::Encoding) = 2.8 \
+Provides: perl(Encode::GSM0338) = 2.7 \
+Provides: perl(Encode::Guess) = 2.7 \
+Provides: perl(Encode::Internal) \
+Provides: perl(Encode::JP) = 2.4 \
+Provides: perl(Encode::JP::H2Z) = 2.2 \
+Provides: perl(Encode::JP::JIS7) = 2.8 \
+Provides: perl(Encode::KR) = 2.3 \
+Provides: perl(Encode::KR::2022_KR) = 2.4 \
+Provides: perl(Encode::MIME::Header) = 2.28 \
+Provides: perl(Encode::MIME::Header::ISO_2022_JP) = 1.9 \
+Provides: perl(Encode::MIME::Name) = 1.3 \
+Provides: perl(Encode::Symbol) = 2.2 \
+Provides: perl(Encode::TW) = 2.3 \
+Provides: perl(Encode::UTF_EBCDIC) \
+Provides: perl(Encode::Unicode) = 2.18 \
+Provides: perl(Encode::Unicode::UTF7) = 2.10 \
+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.30 \
+%{nil}
+%global gendep_perl_Exporter \
+Requires: perl(:VERSION) >= 5.6.0 \
+Requires: perl(Exporter) \
+Requires: perl(strict) \
+Provides: perl(Exporter) = 5.73 \
+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.280231 \
+Provides: perl(ExtUtils::CBuilder::Base) = 0.280231 \
+Provides: perl(ExtUtils::CBuilder::Platform::Unix) = 0.280231 \
+Provides: perl(ExtUtils::CBuilder::Platform::VMS) = 0.280231 \
+Provides: perl(ExtUtils::CBuilder::Platform::Windows) = 0.280231 \
+Provides: perl(ExtUtils::CBuilder::Platform::Windows::BCC) = 0.280231 \
+Provides: perl(ExtUtils::CBuilder::Platform::Windows::GCC) = 0.280231 \
+Provides: perl(ExtUtils::CBuilder::Platform::Windows::MSVC) = 0.280231 \
+Provides: perl(ExtUtils::CBuilder::Platform::aix) = 0.280231 \
+Provides: perl(ExtUtils::CBuilder::Platform::android) = 0.280231 \
+Provides: perl(ExtUtils::CBuilder::Platform::cygwin) = 0.280231 \
+Provides: perl(ExtUtils::CBuilder::Platform::darwin) = 0.280231 \
+Provides: perl(ExtUtils::CBuilder::Platform::dec_osf) = 0.280231 \
+Provides: perl(ExtUtils::CBuilder::Platform::linux) = 0.280206 \
+Provides: perl(ExtUtils::CBuilder::Platform::os2) = 0.280231 \
+%{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.34 \
+%{nil}
+%global gendep_perl_ExtUtils_Embed \
+Requires: perl(Config) \
+Requires: perl(Exporter) \
+Requires: perl(File::Spec) \
+Requires: perl(strict) \
+Provides: perl(ExtUtils::Embed) = 1.35 \
+%{nil}
+%global gendep_perl_ExtUtils_Install \
+Requires: perl(:VERSION) >= 5.5.30 \
+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::Copy) \
+Requires: perl(File::Find) \
+Requires: perl(File::Path) \
+Requires: perl(File::Spec) \
+Requires: perl(strict) \
+Requires: perl(vars) \
+Provides: perl(ExtUtils::Install) = 2.14 \
+Provides: perl(ExtUtils::Install::Warn) \
+Provides: perl(ExtUtils::Installed) = 2.14 \
+Provides: perl(ExtUtils::Packlist) = 2.14 \
+%{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.34 \
+Provides: perl(ExtUtils::Liblist) = 7.34 \
+Provides: perl(ExtUtils::Liblist::Kid) = 7.34 \
+Provides: perl(ExtUtils::MM) = 7.34 \
+Provides: perl(ExtUtils::MM_AIX) = 7.34 \
+Provides: perl(ExtUtils::MM_Any) = 7.34 \
+Provides: perl(ExtUtils::MM_BeOS) = 7.34 \
+Provides: perl(ExtUtils::MM_Cygwin) = 7.34 \
+Provides: perl(ExtUtils::MM_DOS) = 7.34 \
+Provides: perl(ExtUtils::MM_Darwin) = 7.34 \
+Provides: perl(ExtUtils::MM_MacOS) = 7.34 \
+Provides: perl(ExtUtils::MM_NW5) = 7.34 \
+Provides: perl(ExtUtils::MM_OS2) = 7.34 \
+Provides: perl(ExtUtils::MM_QNX) = 7.34 \
+Provides: perl(ExtUtils::MM_UWIN) = 7.34 \
+Provides: perl(ExtUtils::MM_Unix) = 7.34 \
+Provides: perl(ExtUtils::MM_VMS) = 7.34 \
+Provides: perl(ExtUtils::MM_VOS) = 7.34 \
+Provides: perl(ExtUtils::MM_Win32) = 7.34 \
+Provides: perl(ExtUtils::MM_Win95) = 7.34 \
+Provides: perl(ExtUtils::MY) = 7.34 \
+Provides: perl(ExtUtils::MakeMaker) = 7.34 \
+Provides: perl(ExtUtils::MakeMaker::Config) = 7.34 \
+Provides: perl(ExtUtils::MakeMaker::Locale) = 7.34 \
+Provides: perl(ExtUtils::MakeMaker::version) = 7.34 \
+Provides: perl(ExtUtils::Mkbootstrap) = 7.34 \
+Provides: perl(ExtUtils::Mksymlists) = 7.34 \
+Provides: perl(ExtUtils::testlib) = 7.34 \
+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.72 \
+%{nil}
+%global gendep_perl_ExtUtils_Miniperl \
+Requires: perl(Exporter) \
+Requires: perl(ExtUtils::Embed) >= 1.31 \
+Requires: perl(strict) \
+Provides: perl(ExtUtils::Miniperl) = 1.09 \
+%{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::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.40 \
+Provides: perl(ExtUtils::ParseXS::Constants) = 3.40 \
+Provides: perl(ExtUtils::ParseXS::CountLines) = 3.40 \
+Provides: perl(ExtUtils::ParseXS::Eval) = 3.40 \
+Provides: perl(ExtUtils::ParseXS::Utilities) = 3.40 \
+Provides: perl(ExtUtils::Typemaps) = 3.38 \
+Provides: perl(ExtUtils::Typemaps::Cmd) = 3.38 \
+Provides: perl(ExtUtils::Typemaps::InputMap) = 3.38 \
+Provides: perl(ExtUtils::Typemaps::OutputMap) = 3.38 \
+Provides: perl(ExtUtils::Typemaps::Type) = 3.38 \
+%{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.56 \
+%{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.16 \
+%{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) \
+Provides: perl(File::Temp) = 0.2309 \
+%{nil}
+%global gendep_perl_Filter \
+Requires: perl(:VERSION) >= 5.6.0 \
+Requires: perl(Exporter) \
+Requires: perl(XSLoader) \
+Requires: perl(strict) \
+Requires: perl(warnings) \
+Provides: perl(Filter::Util::Call) = 1.59 \
+%{nil}
+%global gendep_perl_Filter_Simple \
+Requires: perl(Carp) \
+Requires: perl(Filter::Util::Call) \
+Requires: perl(Text::Balanced) \
+Provides: perl(Filter::Simple) = 0.95 \
+%{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) \
+Requires: perl(warnings) \
+Provides: perl(Getopt::Long) = 2.50 \
+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.076 \
+%{nil}
+%global gendep_perl_IO \
+Requires: perl(:VERSION) >= 5.8.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(warnings) \
+Requires: perl(warnings::register) \
+Provides: perl(IO) = 1.40 \
+Provides: perl(IO::Dir) = 1.40 \
+Provides: perl(IO::File) = 1.40 \
+Provides: perl(IO::Handle) = 1.40 \
+Provides: perl(IO::Pipe) = 1.40 \
+Provides: perl(IO::Pipe::End) \
+Provides: perl(IO::Poll) = 1.40 \
+Provides: perl(IO::Seekable) = 1.40 \
+Provides: perl(IO::Select) = 1.40 \
+Provides: perl(IO::Socket) = 1.40 \
+Provides: perl(IO::Socket::INET) = 1.40 \
+Provides: perl(IO::Socket::UNIX) = 1.40 \
+%{nil}
+%global gendep_perl_IO_Compress \
+Requires: perl(:VERSION) >= 5.6.0 \
+Requires: perl(Carp) \
+Requires: perl(Compress::Raw::Bzip2) >= 2.084 \
+Requires: perl(Compress::Raw::Zlib) >= 2.084 \
+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.084 \
+Requires: perl(IO::Compress::Adapter::Deflate) >= 2.084 \
+Requires: perl(IO::Compress::Adapter::Identity) >= 2.084 \
+Requires: perl(IO::Compress::Base) >= 2.084 \
+Requires: perl(IO::Compress::Base::Common) >= 2.084 \
+Requires: perl(IO::Compress::Gzip) >= 2.084 \
+Requires: perl(IO::Compress::Gzip::Constants) >= 2.084 \
+Requires: perl(IO::Compress::RawDeflate) >= 2.084 \
+Requires: perl(IO::Compress::Zip::Constants) >= 2.084 \
+Requires: perl(IO::Compress::Zlib::Constants) >= 2.084 \
+Requires: perl(IO::Compress::Zlib::Extra) >= 2.084 \
+Requires: perl(IO::File) \
+Requires: perl(IO::Handle) \
+Requires: perl(IO::Uncompress::Adapter::Bunzip2) >= 2.084 \
+Requires: perl(IO::Uncompress::Adapter::Identity) >= 2.084 \
+Requires: perl(IO::Uncompress::Adapter::Inflate) >= 2.084 \
+Requires: perl(IO::Uncompress::Base) >= 2.084 \
+Requires: perl(IO::Uncompress::Gunzip) >= 2.084 \
+Requires: perl(IO::Uncompress::Inflate) >= 2.084 \
+Requires: perl(IO::Uncompress::RawInflate) >= 2.084 \
+Requires: perl(IO::Uncompress::Unzip) >= 2.084 \
+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.084 \
+Provides: perl(File::GlobMapper) = 1.001 \
+Provides: perl(IO::Compress::Adapter::Bzip2) = 2.084 \
+Provides: perl(IO::Compress::Adapter::Deflate) = 2.084 \
+Provides: perl(IO::Compress::Adapter::Identity) = 2.084 \
+Provides: perl(IO::Compress::Base) = 2.084 \
+Provides: perl(IO::Compress::Base::Common) = 2.084 \
+Provides: perl(IO::Compress::Bzip2) = 2.084 \
+Provides: perl(IO::Compress::Deflate) = 2.084 \
+Provides: perl(IO::Compress::Gzip) = 2.084 \
+Provides: perl(IO::Compress::Gzip::Constants) = 2.084 \
+Provides: perl(IO::Compress::RawDeflate) = 2.084 \
+Provides: perl(IO::Compress::Zip) = 2.084 \
+Provides: perl(IO::Compress::Zip::Constants) = 2.084 \
+Provides: perl(IO::Compress::Zlib::Constants) = 2.084 \
+Provides: perl(IO::Compress::Zlib::Extra) = 2.084 \
+Provides: perl(IO::Uncompress::Adapter::Bunzip2) = 2.084 \
+Provides: perl(IO::Uncompress::Adapter::Identity) = 2.084 \
+Provides: perl(IO::Uncompress::Adapter::Inflate) = 2.084 \
+Provides: perl(IO::Uncompress::AnyInflate) = 2.084 \
+Provides: perl(IO::Uncompress::AnyUncompress) = 2.084 \
+Provides: perl(IO::Uncompress::Base) = 2.084 \
+Provides: perl(IO::Uncompress::Bunzip2) \
+Provides: perl(IO::Uncompress::Bunzip2) = 2.084 \
+Provides: perl(IO::Uncompress::Gunzip) = 2.084 \
+Provides: perl(IO::Uncompress::Inflate) = 2.084 \
+Provides: perl(IO::Uncompress::RawInflate) = 2.084 \
+Provides: perl(IO::Uncompress::Unzip) = 2.084 \
+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.39 \
+%{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) = 1.02 \
+%{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(Carp) \
+Requires: perl(Exporter) \
+Requires: perl(Getopt::Long) \
+Requires: perl(JSON::PP) \
+Requires: perl(JSON::PP::Boolean) \
+Requires: perl(bytes) \
+Requires: perl(constant) \
+Requires: perl(overload) \
+Requires: perl(strict) \
+Provides: perl(JSON::PP) = 4.02 \
+Provides: perl(JSON::PP::Boolean) = 4.02 \
+Provides: perl(JSON::PP::IncrParser) = 1.01 \
+%{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) \
+Provides: perl(Locale::Maketext) = 1.29 \
+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.999816 \
+Provides: perl(Math::BigInt) = 1.999816 \
+Provides: perl(Math::BigInt::Calc) = 1.999816 \
+Provides: perl(Math::BigInt::Lib) = 1.999816 \
+%{nil}
+%global gendep_perl_Math_BigInt_FastCalc \
+Requires: perl(:VERSION) >= 5.6.0 \
+Requires: perl(Math::BigInt::Calc) >= 1.999801 \
+Requires: perl(XSLoader) \
+Requires: perl(strict) \
+Requires: perl(warnings) \
+Provides: perl(Math::BigInt::FastCalc) = 0.5008 \
+%{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) >= 1.999718 \
+Requires: perl(overload) \
+Requires: perl(strict) \
+Requires: perl(warnings) \
+Provides: perl(Math::BigRat) = 0.2614 \
+%{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(version) \
+Requires: perl(warnings) \
+Provides: perl(Module::CoreList) = 5.20190522 \
+Provides: perl(Module::CoreList::Utils) = 5.20190522 \
+%{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.34 \
+%{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.000036 \
+%{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) \
+Provides: perl(Net::Ping) = 2.71 \
+%{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(Cwd) \
+Requires: perl(Exporter) \
+Requires: perl(File::Spec) \
+Requires: perl(File::Spec::Unix) \
+Requires: perl(constant) \
+Requires: perl(strict) \
+Provides: perl(Cwd) = 3.78 \
+Provides: perl(File::Spec) = 3.78 \
+Provides: perl(File::Spec::AmigaOS) = 3.78 \
+Provides: perl(File::Spec::Cygwin) = 3.78 \
+Provides: perl(File::Spec::Epoc) = 3.78 \
+Provides: perl(File::Spec::Functions) = 3.78 \
+Provides: perl(File::Spec::Mac) = 3.78 \
+Provides: perl(File::Spec::OS2) = 3.78 \
+Provides: perl(File::Spec::Unix) = 3.78 \
+Provides: perl(File::Spec::Win32) = 3.78 \
+%{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::SimpleTree) \
+Requires: perl(Pod::Simple::XHTML) \
+Requires: perl(locale) \
+Requires: perl(parent) \
+Requires: perl(strict) \
+Requires: perl(warnings) \
+Provides: perl(Pod::Html) = 1.24 \
+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.2801 \
+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.50 \
+Provides: perl(List::Util::XS) = 1.50 \
+Provides: perl(Scalar::Util) = 1.50 \
+Provides: perl(Sub::Util) = 1.50 \
+%{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) \
+Provides: perl(SelfLoader) = 1.25 \
+%{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.027 \
+%{nil}
+%global gendep_perl_Socket_debuginfo \
+%{nil}
+%global gendep_perl_Storable \
+Requires: perl(Carp) \
+Requires: perl(Exporter) \
+Requires: perl(XSLoader) \
+Provides: perl(Storable) = 3.15 \
+%{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) \
+Provides: perl(Test) = 1.31 \
+%{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.42 \
+Provides: perl(App::Prove::State) = 3.42 \
+Provides: perl(App::Prove::State::Result) = 3.42 \
+Provides: perl(App::Prove::State::Result::Test) = 3.42 \
+Provides: perl(TAP::Base) = 3.42 \
+Provides: perl(TAP::Formatter::Base) = 3.42 \
+Provides: perl(TAP::Formatter::Color) = 3.42 \
+Provides: perl(TAP::Formatter::Console) = 3.42 \
+Provides: perl(TAP::Formatter::Console::ParallelSession) = 3.42 \
+Provides: perl(TAP::Formatter::Console::Session) = 3.42 \
+Provides: perl(TAP::Formatter::File) = 3.42 \
+Provides: perl(TAP::Formatter::File::Session) = 3.42 \
+Provides: perl(TAP::Formatter::Session) = 3.42 \
+Provides: perl(TAP::Harness) = 3.42 \
+Provides: perl(TAP::Harness::Env) = 3.42 \
+Provides: perl(TAP::Object) = 3.42 \
+Provides: perl(TAP::Parser) = 3.42 \
+Provides: perl(TAP::Parser::Aggregator) = 3.42 \
+Provides: perl(TAP::Parser::Grammar) = 3.42 \
+Provides: perl(TAP::Parser::Iterator) = 3.42 \
+Provides: perl(TAP::Parser::Iterator::Array) = 3.42 \
+Provides: perl(TAP::Parser::Iterator::Process) = 3.42 \
+Provides: perl(TAP::Parser::Iterator::Stream) = 3.42 \
+Provides: perl(TAP::Parser::IteratorFactory) = 3.42 \
+Provides: perl(TAP::Parser::Multiplexer) = 3.42 \
+Provides: perl(TAP::Parser::Result) = 3.42 \
+Provides: perl(TAP::Parser::Result::Bailout) = 3.42 \
+Provides: perl(TAP::Parser::Result::Comment) = 3.42 \
+Provides: perl(TAP::Parser::Result::Plan) = 3.42 \
+Provides: perl(TAP::Parser::Result::Pragma) = 3.42 \
+Provides: perl(TAP::Parser::Result::Test) = 3.42 \
+Provides: perl(TAP::Parser::Result::Unknown) = 3.42 \
+Provides: perl(TAP::Parser::Result::Version) = 3.42 \
+Provides: perl(TAP::Parser::Result::YAML) = 3.42 \
+Provides: perl(TAP::Parser::ResultFactory) = 3.42 \
+Provides: perl(TAP::Parser::Scheduler) = 3.42 \
+Provides: perl(TAP::Parser::Scheduler::Job) = 3.42 \
+Provides: perl(TAP::Parser::Scheduler::Spinner) = 3.42 \
+Provides: perl(TAP::Parser::Source) = 3.42 \
+Provides: perl(TAP::Parser::SourceHandler) = 3.42 \
+Provides: perl(TAP::Parser::SourceHandler::Executable) = 3.42 \
+Provides: perl(TAP::Parser::SourceHandler::File) = 3.42 \
+Provides: perl(TAP::Parser::SourceHandler::Handle) = 3.42 \
+Provides: perl(TAP::Parser::SourceHandler::Perl) = 3.42 \
+Provides: perl(TAP::Parser::SourceHandler::RawTAP) = 3.42 \
+Provides: perl(TAP::Parser::YAMLish::Reader) = 3.42 \
+Provides: perl(TAP::Parser::YAMLish::Writer) = 3.42 \
+Provides: perl(Test::Harness) = 3.42 \
+%{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(List::Util) \
+Requires: perl(POSIX) \
+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::EventFacet::About) \
+Requires: perl(Test2::EventFacet::Amnesty) \
+Requires: perl(Test2::EventFacet::Assert) \
+Requires: perl(Test2::EventFacet::Control) \
+Requires: perl(Test2::EventFacet::Error) \
+Requires: perl(Test2::EventFacet::Hub) \
+Requires: perl(Test2::EventFacet::Info) \
+Requires: perl(Test2::EventFacet::Meta) \
+Requires: perl(Test2::EventFacet::Parent) \
+Requires: perl(Test2::EventFacet::Plan) \
+Requires: perl(Test2::EventFacet::Trace) \
+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::Facets2Legacy) \
+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(base) \
+Requires: perl(strict) \
+Requires: perl(vars) \
+Requires: perl(warnings) \
+Provides: perl(Test2) = 1.302162 \
+Provides: perl(Test2::API) = 1.302162 \
+Provides: perl(Test2::API::Breakage) = 1.302162 \
+Provides: perl(Test2::API::Context) = 1.302162 \
+Provides: perl(Test2::API::Instance) = 1.302162 \
+Provides: perl(Test2::API::Stack) = 1.302162 \
+Provides: perl(Test2::Event) = 1.302162 \
+Provides: perl(Test2::Event::Bail) = 1.302162 \
+Provides: perl(Test2::Event::Diag) = 1.302162 \
+Provides: perl(Test2::Event::Encoding) = 1.302162 \
+Provides: perl(Test2::Event::Exception) = 1.302162 \
+Provides: perl(Test2::Event::Fail) = 1.302162 \
+Provides: perl(Test2::Event::Generic) = 1.302162 \
+Provides: perl(Test2::Event::Note) = 1.302162 \
+Provides: perl(Test2::Event::Ok) = 1.302162 \
+Provides: perl(Test2::Event::Pass) = 1.302162 \
+Provides: perl(Test2::Event::Plan) = 1.302162 \
+Provides: perl(Test2::Event::Skip) = 1.302162 \
+Provides: perl(Test2::Event::Subtest) = 1.302162 \
+Provides: perl(Test2::Event::TAP::Version) = 1.302162 \
+Provides: perl(Test2::Event::V2) = 1.302162 \
+Provides: perl(Test2::Event::Waiting) = 1.302162 \
+Provides: perl(Test2::EventFacet) = 1.302162 \
+Provides: perl(Test2::EventFacet::About) = 1.302162 \
+Provides: perl(Test2::EventFacet::Amnesty) = 1.302162 \
+Provides: perl(Test2::EventFacet::Assert) = 1.302162 \
+Provides: perl(Test2::EventFacet::Control) = 1.302162 \
+Provides: perl(Test2::EventFacet::Error) = 1.302162 \
+Provides: perl(Test2::EventFacet::Hub) = 1.302162 \
+Provides: perl(Test2::EventFacet::Info) = 1.302162 \
+Provides: perl(Test2::EventFacet::Info::Table) \
+Provides: perl(Test2::EventFacet::Meta) = 1.302162 \
+Provides: perl(Test2::EventFacet::Parent) = 1.302162 \
+Provides: perl(Test2::EventFacet::Plan) = 1.302162 \
+Provides: perl(Test2::EventFacet::Render) = 1.302162 \
+Provides: perl(Test2::EventFacet::Trace) = 1.302162 \
+Provides: perl(Test2::Formatter) = 1.302162 \
+Provides: perl(Test2::Formatter::TAP) = 1.302162 \
+Provides: perl(Test2::Hub) = 1.302162 \
+Provides: perl(Test2::Hub::Interceptor) = 1.302162 \
+Provides: perl(Test2::Hub::Interceptor::Terminator) = 1.302162 \
+Provides: perl(Test2::Hub::Subtest) = 1.302162 \
+Provides: perl(Test2::IPC) = 1.302162 \
+Provides: perl(Test2::IPC::Driver) = 1.302162 \
+Provides: perl(Test2::IPC::Driver::Files) = 1.302162 \
+Provides: perl(Test2::Tools::Tiny) = 1.302162 \
+Provides: perl(Test2::Util) = 1.302162 \
+Provides: perl(Test2::Util::ExternalMeta) = 1.302162 \
+Provides: perl(Test2::Util::Facets2Legacy) = 1.302162 \
+Provides: perl(Test2::Util::HashBase) = 1.302162 \
+Provides: perl(Test2::Util::Trace) = 1.302162 \
+Provides: perl(Test::Builder) = 1.302162 \
+Provides: perl(Test::Builder::Formatter) = 1.302162 \
+Provides: perl(Test::Builder::IO::Scalar) = 2.114 \
+Provides: perl(Test::Builder::Module) = 1.302162 \
+Provides: perl(Test::Builder::Tester) = 1.302162 \
+Provides: perl(Test::Builder::Tester::Color) = 1.302162 \
+Provides: perl(Test::Builder::Tester::Tie) \
+Provides: perl(Test::Builder::TodoDiag) = 1.302162 \
+Provides: perl(Test::More) = 1.302162 \
+Provides: perl(Test::Simple) = 1.302162 \
+Provides: perl(Test::Tester) = 1.302162 \
+Provides: perl(Test::Tester::Capture) = 1.302162 \
+Provides: perl(Test::Tester::CaptureRunner) = 1.302162 \
+Provides: perl(Test::Tester::Delegate) = 1.302162 \
+Provides: perl(Test::use::ok) = 1.302162 \
+Provides: perl(ok) = 1.302162 \
+%{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.13 \
+%{nil}
+%global gendep_perl_Time_HiRes \
+Requires: perl(Exporter) \
+Requires: perl(XSLoader) \
+Requires: perl(strict) \
+Provides: perl(Time::HiRes) = 1.9760 \
+%{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.28 \
+%{nil}
+%global gendep_perl_Time_Piece \
+Requires: perl(Carp) \
+Requires: perl(Exporter) >= 5.57 \
+Requires: perl(Scalar::Util) \
+Requires: perl(Time::Local) \
+Requires: perl(Time::Seconds) \
+Requires: perl(XSLoader) \
+Requires: perl(constant) \
+Requires: perl(integer) \
+Requires: perl(overload) \
+Requires: perl(strict) \
+Provides: perl(Time::Piece) = 1.33 \
+Provides: perl(Time::Seconds) = 1.33 \
+%{nil}
+%global gendep_perl_Time_Piece_debuginfo \
+%{nil}
+%global gendep_perl_Unicode_Collate \
+Requires: perl(:VERSION) >= 5.6.0 \
+Requires: perl(Carp) \
+Requires: perl(File::Spec) \
+Requires: perl(Unicode::Collate) \
+Requires: perl(XSLoader) \
+Requires: perl(base) \
+Requires: perl(constant) \
+Requires: perl(strict) \
+Requires: perl(warnings) \
+Provides: perl(Unicode::Collate) = 1.27 \
+Provides: perl(Unicode::Collate::CJK::Big5) = 1.27 \
+Provides: perl(Unicode::Collate::CJK::GB2312) = 1.27 \
+Provides: perl(Unicode::Collate::CJK::JISX0208) = 1.27 \
+Provides: perl(Unicode::Collate::CJK::Korean) = 1.27 \
+Provides: perl(Unicode::Collate::CJK::Pinyin) = 1.27 \
+Provides: perl(Unicode::Collate::CJK::Stroke) = 1.27 \
+Provides: perl(Unicode::Collate::CJK::Zhuyin) = 1.27 \
+Provides: perl(Unicode::Collate::Locale) = 1.27 \
+%{nil}
+%global gendep_perl_Unicode_Collate_debuginfo \
+%{nil}
+%global gendep_perl_Unicode_Normalize \
+Requires: perl(:VERSION) >= 5.6.0 \
+Requires: perl(Carp) \
+Requires: perl(Exporter) \
+Requires: perl(XSLoader) \
+Requires: perl(strict) \
+Requires: perl(warnings) \
+Provides: perl(Unicode::Normalize) = 1.26 \
+%{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.29002 \
+Provides: perl(autodie::exception::system) = 2.29 \
+Provides: perl(autodie::hints) = 2.29001 \
+Provides: perl(autodie::skip) = 2.29 \
+%{nil}
+%global gendep_perl_bignum \
+Requires: perl(:VERSION) >= 5.10.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.51 \
+Provides: perl(Math::BigInt::Trace) = 0.51 \
+Provides: perl(bigint) = 0.51 \
+Provides: perl(bignum) = 0.51 \
+Provides: perl(bigrat) = 0.51 \
+%{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(Config) \
+Requires: perl(Encode) \
+Requires: perl(constant) \
+Requires: perl(strict) \
+Requires: perl(warnings) \
+Provides: perl(encoding) = 2.22 \
+%{nil}
+%global gendep_perl_experimental \
+Requires: perl(Carp) \
+Requires: perl(strict) \
+Requires: perl(version) \
+Requires: perl(warnings) \
+Provides: perl(experimental) = 0.020 \
+%{nil}
+%global gendep_perl_interpreter \
+Requires: perl(:VERSION) >= 5.0.0 \
+Requires: perl(:VERSION) >= 5.10.1 \
+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.76 \
+Provides: perl(B::Concise) = 1.004 \
+Provides: perl(B::Deparse) = 1.49 \
+Provides: perl(B::OBJECT) \
+Provides: perl(B::Op_private) = 5.030000 \
+Provides: perl(B::Showlex) = 1.05 \
+Provides: perl(B::Terse) = 1.09 \
+Provides: perl(B::Xref) = 1.07 \
+Provides: perl(Benchmark) = 1.22 \
+Provides: perl(Class::Struct) = 0.65 \
+Provides: perl(Class::Struct::Tie_ISA) \
+Provides: perl(Config) = 5.030000 \
+Provides: perl(Config::Extensions) = 0.03 \
+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.05 \
+Provides: perl(Dumpvalue) = 1.19 \
+Provides: perl(DynaLoader) = 1.45 \
+Provides: perl(EVERY::LAST) \
+Provides: perl(English) = 1.10 \
+Provides: perl(ExtUtils::Constant) = 0.25 \
+Provides: perl(ExtUtils::Constant::Base) = 0.06 \
+Provides: perl(ExtUtils::Constant::ProxySubs) = 0.09 \
+Provides: perl(ExtUtils::Constant::Utils) = 0.04 \
+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.34 \
+Provides: perl(File::DosGlob) = 1.12 \
+Provides: perl(File::Find) = 1.36 \
+Provides: perl(File::Glob) = 1.32 \
+Provides: perl(File::stat) = 1.08 \
+Provides: perl(FileCache) = 1.10 \
+Provides: perl(FileHandle) = 2.03 \
+Provides: perl(FindBin) = 1.51 \
+Provides: perl(GDBM_File) = 1.18 \
+Provides: perl(Getopt::Std) = 1.12 \
+Provides: perl(Hash::Util) = 0.22 \
+Provides: perl(Hash::Util::FieldHash) = 1.20 \
+Provides: perl(I18N::Collate) = 1.02 \
+Provides: perl(I18N::LangTags) = 0.43 \
+Provides: perl(I18N::LangTags::Detect) = 1.07 \
+Provides: perl(I18N::LangTags::List) = 0.40 \
+Provides: perl(I18N::Langinfo) = 0.18 \
+Provides: perl(IPC::Open2) = 1.04 \
+Provides: perl(IPC::Open3) = 1.20 \
+Provides: perl(NDBM_File) = 1.15 \
+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.02 \
+Provides: perl(Net::netent) = 1.01 \
+Provides: perl(Net::protoent) = 1.01 \
+Provides: perl(Net::servent) = 1.02 \
+Provides: perl(O) = 1.03 \
+Provides: perl(ODBM_File) = 1.16 \
+Provides: perl(Opcode) = 1.43 \
+Provides: perl(POSIX) = 1.88 \
+Provides: perl(POSIX::SigAction) \
+Provides: perl(POSIX::SigRt) \
+Provides: perl(POSIX::SigSet) \
+Provides: perl(PerlIO) = 1.10 \
+Provides: perl(PerlIO::encoding) = 0.27 \
+Provides: perl(PerlIO::mmap) = 0.016 \
+Provides: perl(PerlIO::scalar) = 0.30 \
+Provides: perl(PerlIO::via) = 0.17 \
+Provides: perl(Pod::Functions) = 1.13 \
+Provides: perl(SDBM_File) = 1.15 \
+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.22 \
+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.07 \
+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.6 \
+Provides: perl(Tie::StdHash) \
+Provides: perl(Tie::StdScalar) \
+Provides: perl(Tie::SubstrHash) = 1.00 \
+Provides: perl(Time::gmtime) = 1.04 \
+Provides: perl(Time::localtime) = 1.03 \
+Provides: perl(Time::tm) = 1.00 \
+Provides: perl(UNIVERSAL) = 1.13 \
+Provides: perl(Unicode::UCD) = 0.72 \
+Provides: perl(User::grent) = 1.03 \
+Provides: perl(User::pwent) = 1.01 \
+Provides: perl(_charnames) = 1.45 \
+Provides: perl(attributes) = 0.33 \
+Provides: perl(autouse) = 1.11 \
+Provides: perl(base) = 2.27 \
+Provides: perl(blib) = 1.07 \
+Provides: perl(bytes) = 1.07 \
+Provides: perl(bytes_heavy.pl) \
+Provides: perl(charnames) = 1.45 \
+Provides: perl(deprecate) = 0.04 \
+Provides: perl(diagnostics) = 1.36 \
+Provides: perl(dumpvar.pl) \
+Provides: perl(encoding::warnings) = 0.13 \
+Provides: perl(feature) = 1.54 \
+Provides: perl(fields) = 2.24 \
+Provides: perl(filetest) = 1.03 \
+Provides: perl(if) = 0.0608 \
+Provides: perl(less) = 0.03 \
+Provides: perl(lib) = 0.65 \
+Provides: perl(locale) = 1.09 \
+Provides: perl(mro) = 1.22 \
+Provides: perl(ops) = 1.02 \
+Provides: perl(overload) = 1.30 \
+Provides: perl(overload::numbers) \
+Provides: perl(overloading) = 0.02 \
+Provides: perl(perl5db.pl) \
+Provides: perl(sigtrap) = 1.09 \
+Provides: perl(sort) = 2.04 \
+Provides: perl(subs) = 1.03 \
+Provides: perl(vars) = 1.05 \
+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.11 \
+Provides: perl(Net::Config) = 3.11 \
+Provides: perl(Net::Domain) = 3.11 \
+Provides: perl(Net::FTP) = 3.11 \
+Provides: perl(Net::FTP::A) = 3.11 \
+Provides: perl(Net::FTP::E) = 3.11 \
+Provides: perl(Net::FTP::I) = 3.11 \
+Provides: perl(Net::FTP::L) = 3.11 \
+Provides: perl(Net::FTP::_SSL_SingleSessionCache) \
+Provides: perl(Net::FTP::dataconn) = 3.11 \
+Provides: perl(Net::NNTP) = 3.11 \
+Provides: perl(Net::NNTP::_SSL) \
+Provides: perl(Net::Netrc) = 3.11 \
+Provides: perl(Net::POP3) = 3.11 \
+Provides: perl(Net::POP3::_SSL) \
+Provides: perl(Net::SMTP) = 3.11 \
+Provides: perl(Net::SMTP::_SSL) \
+Provides: perl(Net::Time) = 3.11 \
+%{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.30.0) \
+Provides: perl(:VERSION) = 5.30.0 \
+Provides: perl(:WITH_64BIT) \
+Provides: perl(:WITH_ITHREADS) \
+Provides: perl(:WITH_LARGEFILES) \
+Provides: perl(:WITH_PERLIO) \
+Provides: perl(:WITH_THREADS) \
+Provides: perl(XSLoader) = 0.30 \
+Provides: perl(integer) = 1.01 \
+Provides: perl(re) = 0.37 \
+Provides: perl(strict) = 1.11 \
+Provides: perl(unicore::Name) \
+Provides: perl(utf8) = 1.22 \
+Provides: perl(utf8_heavy.pl) \
+Provides: perl(warnings) = 1.44 \
+%{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) \
+Provides: perl(parent) = 0.237 \
+%{nil}
+%global gendep_perl_perlfaq \
+Requires: perl(strict) \
+Requires: perl(warnings) \
+Provides: perl(perlfaq) = 5.20190126 \
+%{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.11 \
+Provides: perl(Pod::ParseLink) = 4.11 \
+Provides: perl(Pod::Text) = 4.11 \
+Provides: perl(Pod::Text::Color) = 4.11 \
+Provides: perl(Pod::Text::Overstrike) = 4.11 \
+Provides: perl(Pod::Text::Termcap) = 4.11 \
+%{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.22 \
+%{nil}
+%global gendep_perl_threads_debuginfo \
+%{nil}
+%global gendep_perl_threads_shared \
+Requires: perl(:VERSION) >= 5.8.0 \
+Requires: perl(Config) \
+Requires: perl(Scalar::Util) \
+Requires: perl(strict) \
+Requires: perl(warnings) \
+Provides: perl(threads::shared) = 1.60 \
+%{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(version::regex) \
+Requires: perl(warnings::register) \
+Provides: perl(version) = 0.9924 \
+Provides: perl(version::regex) = 0.9924 \
+%{nil}
diff --git a/SOURCES/macros.perl b/SOURCES/macros.perl
new file mode 100644
index 0000000..9de4eff
--- /dev/null
+++ b/SOURCES/macros.perl
@@ -0,0 +1,158 @@
+# 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
+}
+
+#############################################################################
+# Perl specific macros, no longer part of rpm >= 4.15
+%perl_vendorarch %(eval "`%{__perl} -V:installvendorarch`"; echo $installvendorarch)
+%perl_vendorlib  %(eval "`%{__perl} -V:installvendorlib`"; echo $installvendorlib)
+%perl_archlib    %(eval "`%{__perl} -V:installarchlib`"; echo $installarchlib)
+%perl_privlib    %(eval "`%{__perl} -V:installprivlib`"; echo $installprivlib)
+
+#############################################################################
+# 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..d6ff1c7
--- /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
+@@ -1483,7 +1483,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..6ffc84b
--- /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
+@@ -257,7 +257,7 @@ isnt($atime, 500000000, 'atime');
+ isnt($mtime, $ut + $delta, 'mtime: utime called with two undefs');
+ 
+ SKIP: {
+-    skip "no futimes", 6 unless ($Config{d_futimes} || "") eq "define";
++    skip "no futimes", 6;
+     note("check futimes");
+     open(my $fh, "<", 'b');
+     $foo = (utime $ut,$ut + $delta, $fh);
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..7887867
--- /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
+@@ -3424,6 +3424,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..f1f76ac
--- /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
+@@ -30,6 +30,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};
+@@ -1028,7 +1029,7 @@ sub xs_make_dynamic_lib {
+     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
+@@ -1041,6 +1042,11 @@ sub xs_make_dynamic_lib {
+             # 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..0cfd59d
--- /dev/null
+++ b/SOURCES/perl-5.16.3-create_libperl_soname.patch
@@ -0,0 +1,57 @@
+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
+@@ -70,11 +70,11 @@ true)
+ 				${revision}.${patchlevel}.${subversion}"
+ 		case "$osvers" in
+ 	        1[5-9]*|[2-9]*)
+-			shrpldflags="$shrpldflags -install_name `pwd`/\$@ -Xlinker -headerpad_max_install_names"
++			shrpldflags="$shrpldflags -install_name `pwd`/libperl.${revision}.${patchlevel}.dylib -Xlinker -headerpad_max_install_names"
+ 			exeldflags="-Xlinker -headerpad_max_install_names"
+ 			;;
+ 		*)
+-			shrpldflags="$shrpldflags -install_name \$(shrpdir)/\$@"
++			shrpldflags="$shrpldflags -install_name \$(shrpdir)/libperl.${revision}.${patchlevel}.dylib"
+ 			;;
+ 		esac
+ 		;;
+@@ -76,13 +76,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
+@@ -120,6 +122,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.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..04b333f
--- /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 ;
+@@ -98,6 +99,7 @@ gdbm_TIEHASH(dbtype, name, read_write, m
+ 	}
+ 	if (dbp) {
+ 	    RETVAL = (GDBM_File)safecalloc(1, sizeof(GDBM_File_type));
++	    RETVAL->owner = aTHX;
+ 	    RETVAL->dbp = dbp;
+ 	} else {
+ 	    RETVAL = NULL;
+@@ -118,12 +120,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
+@@ -49,6 +49,7 @@ datum	nextkey(datum key);
+ #define store_value 3
+ 
+ typedef struct {
++	tTHX    owner;
+ 	void * 	dbp ;
+ 	SV *    filter[4];
+ 	int     filtering ;
+@@ -137,6 +138,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:
+@@ -149,13 +151,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 ;
+@@ -51,6 +52,7 @@ sdbm_TIEHASH(dbtype, filename, flags, mode)
+ 	    }
+ 	    if (dbp) {
+ 	        RETVAL = (SDBM_File)safecalloc(1, sizeof(SDBM_File_type));
++		RETVAL->owner = aTHX;
+ 		RETVAL->dbp = dbp ;
+ 	    }
+ 	    
+@@ -62,7 +64,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
+@@ -510,5 +510,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..49de388
--- /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
+@@ -8762,7 +8762,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
+@@ -8792,7 +8794,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
+@@ -8807,7 +8808,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
+@@ -288,7 +288,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..0a9e69d
--- /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
+@@ -784,6 +784,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..b702e85
--- /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
+@@ -232,7 +232,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.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.28.0-Pass-CFLAGS-to-dtrace.patch b/SOURCES/perl-5.28.0-Pass-CFLAGS-to-dtrace.patch
new file mode 100644
index 0000000..2e9a36d
--- /dev/null
+++ b/SOURCES/perl-5.28.0-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
+@@ -462,6 +462,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
+ 
+@@ -895,19 +897,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
+@@ -519,7 +519,10 @@ for file do
+     toke) optimize=-O0 ;;
+     esac
+ 
+-    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.30.0-PATCH-perl-134329-Use-after-free-in-regcomp.c.patch b/SOURCES/perl-5.30.0-PATCH-perl-134329-Use-after-free-in-regcomp.c.patch
new file mode 100644
index 0000000..240a9bb
--- /dev/null
+++ b/SOURCES/perl-5.30.0-PATCH-perl-134329-Use-after-free-in-regcomp.c.patch
@@ -0,0 +1,389 @@
+From fd30a7c49a661aecfb361045646da264cdadea8f Mon Sep 17 00:00:00 2001
+From: Karl Williamson <khw@cpan.org>
+Date: Fri, 23 Aug 2019 12:40:24 -0600
+Subject: [PATCH] PATCH: [perl #134329] Use after free in regcomp.c
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+A compiled regex is composed of nodes, forming a linked list, with
+normally a maximum of 16 bits used to specify the offset of the next
+link.  For patterns that require more space than this, the nodes that
+jump around are replaced with ones that have wider offsets.  Most nodes
+are unaffected, as they just contain the offset of the next node, and
+that number is always small.  The jump nodes are the ones affected.
+
+When compiling a pattern, the 16 bit mechanism is used, until it
+overflows, at which point the pattern is recompiled with the long jumps
+instead.
+
+When I rewrote the compiler last year to make it generally one pass, I
+noticed a lot of the cases where a node was added didn't check if the
+result overflowed (the function that does this returns FALSE in that
+case).  I presumed the prior authors knew better, and did not change
+things, except to put in a bogus value in the link (offset) field that
+should cause a crash if it were used.  That's what's happening in this
+ticket.
+
+But seeing this example, it's clear that the return value should be
+checked every time, because you can reach the limit at any time.  This
+commit changes to do that, and to require the function's return value to
+not be ignored, to guard against future changes.
+
+My guess is that the reason it generally worked when there were multiple
+passes is that the first pass didn't do anything except count space, and
+that at some point before the end of the pass the return value did get
+checked, so by the time the nodes were allocated for real, it knew
+enough to use the long jumps.
+
+Petr Písař: Ported to 5.30.0 from
+3b2e5620ed4a6b341f97ffd1d4b6466cc2c4bc5b.
+
+Signed-off-by: Petr Písař <ppisar@redhat.com>
+---
+ MANIFEST                 |   1 +
+ embed.fnc                |   4 +-
+ proto.h                  |   8 ++-
+ regcomp.c                | 109 ++++++++++++++++++++++++++++-----------
+ t/re/bigfuzzy_not_utf8.t | Bin 0 -> 36399 bytes
+ 5 files changed, 88 insertions(+), 34 deletions(-)
+ create mode 100644 t/re/bigfuzzy_not_utf8.t
+
+diff --git a/MANIFEST b/MANIFEST
+index 10e2cc0..cc24cd7 100644
+--- a/MANIFEST
++++ b/MANIFEST
+@@ -5839,6 +5839,7 @@ t/porting/test_bootstrap.t	Test that the instructions for test bootstrapping are
+ t/porting/utils.t		Check that utility scripts still compile
+ t/re/alpha_assertions.t		See if things like '(*postive_lookahed:...) work properly
+ t/re/anyof.t			See if bracketed char classes [...] compile properly
++t/re/bigfuzzy_not_utf8.t	Big and ugly tests not storable as UTF-8
+ t/re/charset.t			See if regex modifiers like /d, /u work properly
+ t/re/fold_grind.pl		Core file to see if regex case folding works properly
+ t/re/fold_grind_8.t		Wrapper for fold_grind.pl for /l testing with a UTF-8 locale
+diff --git a/embed.fnc b/embed.fnc
+index c977d39..c2c5f16 100644
+--- a/embed.fnc
++++ b/embed.fnc
+@@ -2427,7 +2427,7 @@ Es	|void	|reginsert	|NN RExC_state_t *pRExC_state \
+ 				|const U8 op				    \
+ 				|const regnode_offset operand		    \
+ 				|const U32 depth
+-Es	|bool	|regtail	|NN RExC_state_t * pRExC_state		    \
++EsR	|bool	|regtail	|NN RExC_state_t * pRExC_state		    \
+ 				|NN const regnode_offset p		    \
+ 				|NN const regnode_offset val		    \
+ 				|const U32 depth
+@@ -2561,7 +2561,7 @@ Es	|void	|dump_trie_interim_list|NN const struct _reg_trie_data *trie\
+ Es	|void	|dump_trie_interim_table|NN const struct _reg_trie_data *trie\
+ 				|NULLOK HV* widecharmap|NN AV *revcharmap\
+ 				|U32 next_alloc|U32 depth
+-Es	|bool	|regtail_study	|NN RExC_state_t *pRExC_state \
++EsR	|bool	|regtail_study	|NN RExC_state_t *pRExC_state \
+ 				|NN regnode_offset p|NN const regnode_offset val|U32 depth
+ #  endif
+ #endif
+diff --git a/proto.h b/proto.h
+index e0ea55b..2ef7ce2 100644
+--- a/proto.h
++++ b/proto.h
+@@ -4457,9 +4457,11 @@ PERL_CALLCONV int	Perl_re_indentf(pTHX_ const char *fmt, U32 depth, ...);
+ 	assert(fmt)
+ STATIC void	S_regdump_extflags(pTHX_ const char *lead, const U32 flags);
+ STATIC void	S_regdump_intflags(pTHX_ const char *lead, const U32 flags);
+-STATIC bool	S_regtail_study(pTHX_ RExC_state_t *pRExC_state, regnode_offset p, const regnode_offset val, U32 depth);
++STATIC bool	S_regtail_study(pTHX_ RExC_state_t *pRExC_state, regnode_offset p, const regnode_offset val, U32 depth)
++			__attribute__warn_unused_result__;
+ #define PERL_ARGS_ASSERT_REGTAIL_STUDY	\
+ 	assert(pRExC_state); assert(p); assert(val)
++
+ #  endif
+ #  if defined(PERL_IN_REGEXEC_C)
+ STATIC void	S_debug_start_match(pTHX_ const REGEXP *prog, const bool do_utf8, const char *start, const char *end, const char *blurb);
+@@ -5599,9 +5601,11 @@ STATIC regnode_offset	S_regnode_guts(pTHX_ RExC_state_t *pRExC_state, const U8 o
+ STATIC regnode_offset	S_regpiece(pTHX_ RExC_state_t *pRExC_state, I32 *flagp, U32 depth);
+ #define PERL_ARGS_ASSERT_REGPIECE	\
+ 	assert(pRExC_state); assert(flagp)
+-STATIC bool	S_regtail(pTHX_ RExC_state_t * pRExC_state, const regnode_offset p, const regnode_offset val, const U32 depth);
++STATIC bool	S_regtail(pTHX_ RExC_state_t * pRExC_state, const regnode_offset p, const regnode_offset val, const U32 depth)
++			__attribute__warn_unused_result__;
+ #define PERL_ARGS_ASSERT_REGTAIL	\
+ 	assert(pRExC_state); assert(p); assert(val)
++
+ STATIC void	S_scan_commit(pTHX_ const RExC_state_t *pRExC_state, struct scan_data_t *data, SSize_t *minlenp, int is_inf);
+ #define PERL_ARGS_ASSERT_SCAN_COMMIT	\
+ 	assert(pRExC_state); assert(data); assert(minlenp)
+diff --git a/regcomp.c b/regcomp.c
+index dfc22bc..b93fbe7 100644
+--- a/regcomp.c
++++ b/regcomp.c
+@@ -11307,10 +11307,15 @@ S_reg(pTHX_ RExC_state_t *pRExC_state, I32 paren, I32 *flagp, U32 depth)
+                         return 0;
+                     }
+ 
+-                    REGTAIL(pRExC_state, ret, atomic);
++                    if (! REGTAIL(pRExC_state, ret, atomic)) {
++                        REQUIRE_BRANCHJ(flagp, 0);
++                    }
+ 
+-                    REGTAIL(pRExC_state, atomic,
+-                           reg_node(pRExC_state, SRCLOSE));
++                    if (! REGTAIL(pRExC_state, atomic, reg_node(pRExC_state,
++                                                                SRCLOSE)))
++                    {
++                        REQUIRE_BRANCHJ(flagp, 0);
++                    }
+ 
+                     RExC_in_script_run = 0;
+                     return ret;
+@@ -11769,7 +11774,9 @@ S_reg(pTHX_ RExC_state_t *pRExC_state, I32 paren, I32 *flagp, U32 depth)
+                                        RExC_flags & RXf_PMf_COMPILETIME
+                                       );
+                     FLAGS(REGNODE_p(ret)) = 2;
+-                    REGTAIL(pRExC_state, ret, eval);
++                    if (! REGTAIL(pRExC_state, ret, eval)) {
++                        REQUIRE_BRANCHJ(flagp, 0);
++                    }
+                     /* deal with the length of this later - MJD */
+ 		    return ret;
+ 		}
+@@ -11822,7 +11829,9 @@ S_reg(pTHX_ RExC_state_t *pRExC_state, I32 paren, I32 *flagp, U32 depth)
+ 
+                     tail = reg(pRExC_state, 1, &flag, depth+1);
+                     RETURN_FAIL_ON_RESTART(flag, flagp);
+-                    REGTAIL(pRExC_state, ret, tail);
++                    if (! REGTAIL(pRExC_state, ret, tail)) {
++                        REQUIRE_BRANCHJ(flagp, 0);
++                    }
+                     goto insert_if;
+                 }
+ 		else if (   RExC_parse[0] == '<'     /* (?(<NAME>)...) */
+@@ -11914,15 +11923,22 @@ S_reg(pTHX_ RExC_state_t *pRExC_state, I32 paren, I32 *flagp, U32 depth)
+ 		    }
+ 		    nextchar(pRExC_state);
+ 		  insert_if:
+-                    REGTAIL(pRExC_state, ret, reganode(pRExC_state, IFTHEN, 0));
++                    if (! REGTAIL(pRExC_state, ret, reganode(pRExC_state,
++                                                             IFTHEN, 0)))
++                    {
++                        REQUIRE_BRANCHJ(flagp, 0);
++                    }
+                     br = regbranch(pRExC_state, &flags, 1, depth+1);
+ 		    if (br == 0) {
+                         RETURN_FAIL_ON_RESTART(flags,flagp);
+                         FAIL2("panic: regbranch returned failure, flags=%#" UVxf,
+                               (UV) flags);
+                     } else
+-                        REGTAIL(pRExC_state, br, reganode(pRExC_state,
+-                                                          LONGJMP, 0));
++                    if (! REGTAIL(pRExC_state, br, reganode(pRExC_state,
++                                                             LONGJMP, 0)))
++                    {
++                        REQUIRE_BRANCHJ(flagp, 0);
++                    }
+ 		    c = UCHARAT(RExC_parse);
+                     nextchar(pRExC_state);
+ 		    if (flags&HASWIDTH)
+@@ -11939,7 +11955,9 @@ S_reg(pTHX_ RExC_state_t *pRExC_state, I32 paren, I32 *flagp, U32 depth)
+                             FAIL2("panic: regbranch returned failure, flags=%#" UVxf,
+                                   (UV) flags);
+                         }
+-                        REGTAIL(pRExC_state, ret, lastbr);
++                        if (! REGTAIL(pRExC_state, ret, lastbr)) {
++                            REQUIRE_BRANCHJ(flagp, 0);
++                        }
+ 		 	if (flags&HASWIDTH)
+ 			    *flagp |= HASWIDTH;
+                         c = UCHARAT(RExC_parse);
+@@ -11954,16 +11972,26 @@ S_reg(pTHX_ RExC_state_t *pRExC_state, I32 paren, I32 *flagp, U32 depth)
+                             vFAIL("Switch (?(condition)... contains too many branches");
+                     }
+ 		    ender = reg_node(pRExC_state, TAIL);
+-                    REGTAIL(pRExC_state, br, ender);
++                    if (! REGTAIL(pRExC_state, br, ender)) {
++                        REQUIRE_BRANCHJ(flagp, 0);
++                    }
+ 		    if (lastbr) {
+-                        REGTAIL(pRExC_state, lastbr, ender);
+-                        REGTAIL(pRExC_state, REGNODE_OFFSET(
+-                                                NEXTOPER(
+-                                                NEXTOPER(REGNODE_p(lastbr)))),
+-                                             ender);
++                        if (! REGTAIL(pRExC_state, lastbr, ender)) {
++                            REQUIRE_BRANCHJ(flagp, 0);
++                        }
++                        if (! REGTAIL(pRExC_state,
++                                      REGNODE_OFFSET(
++                                                 NEXTOPER(
++                                                 NEXTOPER(REGNODE_p(lastbr)))),
++                                      ender))
++                        {
++                            REQUIRE_BRANCHJ(flagp, 0);
++                        }
+ 		    }
+ 		    else
+-                        REGTAIL(pRExC_state, ret, ender);
++                        if (! REGTAIL(pRExC_state, ret, ender)) {
++                            REQUIRE_BRANCHJ(flagp, 0);
++                        }
+ #if 0  /* Removing this doesn't cause failures in the test suite -- khw */
+                     RExC_size++; /* XXX WHY do we need this?!!
+                                     For large programs it seems to be required
+@@ -12113,7 +12141,9 @@ S_reg(pTHX_ RExC_state_t *pRExC_state, I32 paren, I32 *flagp, U32 depth)
+ 	*flagp |= flags&SIMPLE;
+     }
+     if (is_open) {				/* Starts with OPEN. */
+-        REGTAIL(pRExC_state, ret, br);          /* OPEN -> first. */
++        if (! REGTAIL(pRExC_state, ret, br)) {  /* OPEN -> first. */
++            REQUIRE_BRANCHJ(flagp, 0);
++        }
+     }
+     else if (paren != '?')		/* Not Conditional */
+ 	ret = br;
+@@ -12121,12 +12151,15 @@ S_reg(pTHX_ RExC_state_t *pRExC_state, I32 paren, I32 *flagp, U32 depth)
+     lastbr = br;
+     while (*RExC_parse == '|') {
+ 	if (RExC_use_BRANCHJ) {
++            bool shut_gcc_up;
++
+ 	    ender = reganode(pRExC_state, LONGJMP, 0);
+ 
+             /* Append to the previous. */
+-            REGTAIL(pRExC_state,
+-                    REGNODE_OFFSET(NEXTOPER(NEXTOPER(REGNODE_p(lastbr)))),
+-                    ender);
++            shut_gcc_up = REGTAIL(pRExC_state,
++                         REGNODE_OFFSET(NEXTOPER(NEXTOPER(REGNODE_p(lastbr)))),
++                         ender);
++            PERL_UNUSED_VAR(shut_gcc_up);
+ 	}
+ 	nextchar(pRExC_state);
+ 	if (freeze_paren) {
+@@ -12237,9 +12270,10 @@ S_reg(pTHX_ RExC_state_t *pRExC_state, I32 paren, I32 *flagp, U32 depth)
+                         is_nothing= 0;
+ 		}
+ 		else if (op == BRANCHJ) {
+-                    REGTAIL_STUDY(pRExC_state,
+-                                  REGNODE_OFFSET(NEXTOPER(NEXTOPER(br))),
+-                                  ender);
++                    bool shut_gcc_up = REGTAIL_STUDY(pRExC_state,
++                                        REGNODE_OFFSET(NEXTOPER(NEXTOPER(br))),
++                                        ender);
++                    PERL_UNUSED_VAR(shut_gcc_up);
+                     /* for now we always disable this optimisation * /
+                     if ( OP(NEXTOPER(NEXTOPER(br))) != NOTHING
+                          || regnext(NEXTOPER(NEXTOPER(br))) != REGNODE_p(ender))
+@@ -12551,7 +12585,9 @@ S_regpiece(pTHX_ RExC_state_t *pRExC_state, I32 *flagp, U32 depth)
+ 		const regnode_offset w = reg_node(pRExC_state, WHILEM);
+ 
+ 		FLAGS(REGNODE_p(w)) = 0;
+-                REGTAIL(pRExC_state, ret, w);
++                if (!  REGTAIL(pRExC_state, ret, w)) {
++                    REQUIRE_BRANCHJ(flagp, 0);
++                }
+ 		if (RExC_use_BRANCHJ) {
+ 		    reginsert(pRExC_state, LONGJMP, ret, depth+1);
+ 		    reginsert(pRExC_state, NOTHING, ret, depth+1);
+@@ -12566,7 +12602,11 @@ S_regpiece(pTHX_ RExC_state_t *pRExC_state, I32 *flagp, U32 depth)
+ 		if (RExC_use_BRANCHJ)
+                     NEXT_OFF(REGNODE_p(ret)) = 3;   /* Go over NOTHING to
+                                                        LONGJMP. */
+-                REGTAIL(pRExC_state, ret, reg_node(pRExC_state, NOTHING));
++                if (! REGTAIL(pRExC_state, ret, reg_node(pRExC_state,
++                                                          NOTHING)))
++                {
++                    REQUIRE_BRANCHJ(flagp, 0);
++                }
+                 RExC_whilem_seen++;
+                 MARK_NAUGHTY_EXP(1, 4);     /* compound interest */
+ 	    }
+@@ -12638,16 +12678,22 @@ S_regpiece(pTHX_ RExC_state_t *pRExC_state, I32 *flagp, U32 depth)
+     if (*RExC_parse == '?') {
+ 	nextchar(pRExC_state);
+ 	reginsert(pRExC_state, MINMOD, ret, depth+1);
+-        REGTAIL(pRExC_state, ret, ret + NODE_STEP_REGNODE);
++        if (! REGTAIL(pRExC_state, ret, ret + NODE_STEP_REGNODE)) {
++            REQUIRE_BRANCHJ(flagp, 0);
++        }
+     }
+     else if (*RExC_parse == '+') {
+         regnode_offset ender;
+         nextchar(pRExC_state);
+         ender = reg_node(pRExC_state, SUCCEED);
+-        REGTAIL(pRExC_state, ret, ender);
++        if (! REGTAIL(pRExC_state, ret, ender)) {
++            REQUIRE_BRANCHJ(flagp, 0);
++        }
+         reginsert(pRExC_state, SUSPEND, ret, depth+1);
+         ender = reg_node(pRExC_state, TAIL);
+-        REGTAIL(pRExC_state, ret, ender);
++        if (! REGTAIL(pRExC_state, ret, ender)) {
++            REQUIRE_BRANCHJ(flagp, 0);
++        }
+     }
+ 
+     if (ISMULT2(RExC_parse)) {
+@@ -19815,8 +19861,8 @@ S_regtail(pTHX_ RExC_state_t * pRExC_state,
+     }
+     else {
+         if (val - scan > U16_MAX) {
+-            /* Since not all callers check the return value, populate this with
+-             * something that won't loop and will likely lead to a crash if
++            /* Populate this with something that won't loop and will likely
++             * lead to a crash if the caller ignores the failure return, and
+              * execution continues */
+             NEXT_OFF(REGNODE_p(scan)) = U16_MAX;
+             return FALSE;
+@@ -19927,6 +19973,9 @@ S_regtail_study(pTHX_ RExC_state_t *pRExC_state, regnode_offset p,
+     }
+     else {
+         if (val - scan > U16_MAX) {
++            /* Populate this with something that won't loop and will likely
++             * lead to a crash if the caller ignores the failure return, and
++             * execution continues */
+             NEXT_OFF(REGNODE_p(scan)) = U16_MAX;
+             return FALSE;
+         }
+diff --git a/t/re/bigfuzzy_not_utf8.t b/t/re/bigfuzzy_not_utf8.t
+new file mode 100644
+index 0000000000000000000000000000000000000000..b4dfd150a9297172af5d8e7811357fd68931f8d7
+GIT binary patch
+literal 36399
+zcmeI5y>Ht_6u>V)vj`|)bnw`ot)P-@MMCTpNTQ@6nzlsHpvaKGfa6%8#FNC9CKZxu
+z;)Jf$YRJ%zoeHDqo_|0?hWr89EXQ;I1&?0XN7}J$MN%l4pVm7V_T9aA@8fqzil1_F
+zE|;$}O->{eN&28B=@fnhT2nU|t*9E+ShXPw8fDMw8q;-2Rj9#qL#IYfFlbp&QU)zC
+zsvD}tL@Ma?;e+olU(13qL4mf$Xi2KlMpfR-(n>>?sal~`K`RMWM$0up6UqkD^enA1
+zg=vB;ZywbQuvXdxGnK~k=b({GBpSNyN0Z7%!KptLG(}RXdLfa}8zrhWl%f+Fv@e<T
+z7QF(MZ@%O2{zzXWD3o$dlr)+$QdFwY%c5N?I0B75X-E+19aX7F)dH0^>Z)eEZ=O;~
+z<?^<VTwP8TfX(4J=(JPOnNc)URn{G8|1eoC_e<>oje1d1%IQ=tmzSkdDoay2=T|Pz
+zo*8+Kr80%Y79{wyR4)RabV^adFWpeZh73a5P-K`EDzb{C0J1N?-Bg5osvt7$#*LDy
+z8pU1*;Hb;O`}w=|H2|VCNgvil!C)|-F!4`oOre4(0@l39WM)9+aK3^6G2ryE+cJd2
+zG%)O}9%o(Xh5+npOk+9dJvA{f4-S<VFd0eu$X<3dd1d+P^3wIkj=-L!jZMnkKb#l4
+zS%FnoE840>Nl&MqX!&&dnrWK5-2KkXUdJ@kJhZYzBs1%)nFU8yw#)YRc86bC;+Jl5
+zgy&7Z`^Fw(?OiZUet&)S)$APMGYhtb_713ZrNwu<++Ih39!HYq+wJzw?PH0VT{$4+
+zz%lmLw7_MJYpy#@2q4sQ7fUP%j9esxG8j3)cOk6*w(m~R0TQqY5H30#e)2t(Pe1U0
+zo7x9RuwyuZKZc9WF8Sr`COoz9_eZT+t&ggp!nq?r$P9^7Qf{`Z-{X`J#)<@xfTsj3
+zt7*Z}u%|ZB*f}Q9ILEnRY6A%n(u&6pLLV6Zhn*Je^046bHe3TpU@8gBV?hE)AbtcU
+z+*`#j(Lf`1Pqq2ly)J6Thrs2aLgj*Tgns-Zu;!m>A1&i8UmxMd)HGfL@L=Np^}xmu
+z6KnnbWTw9d+eiQj_)Fjmf6b$HBoG*ZvmFNFos+;OYFZqXdWnYd{P*jg`)Jij({(%|
+z`6Q@2v~b4IiYzkMz+$L)vsWgF{`mxB#u(y$sg7Y3RpU)yZB+QhQ9`d|Ekc6YFM1X7
+zv7KL!Yu;A|z5IoJ9um0Yp{;0|@_teFTYTByaiWdaEl<FRQ}wer1&gsF0VEJ%0z*Cq
+zPFzulaPT39=F90?E5wAR)%Dpf=7vno3fVuppO8Ro&#5QO7l$E%7!gQ^8*6kwlia=^
+z7B0VddLMEq9(*#931rOF{~Aj_u33(iBr5k4z;mpAB2(G^Zz{9Kq>+G^1Vp#S{&b=E
+zj|&}JWy0IK6Ap73lq)qn<QR$RqGeqiso;SyjOXJ#2pdfx0VLp>z?y5#A&T&w<H48c
+zUiJx|1$vwg0zrO}lpkL`u+~3K_<CVK5ue+x_nNLxR(uXP3g#_eo?nPUW*EaL0(kl}
+zicZin*SoHPf#Jg+1F=k5r(avNUv|&?^aT4NA<j}5>#6r1;mt7IkM<dnBRjm-J$jnL
+zl=}L=Xoe&f=@$t@+-3rNH|>W2eFfxdF(5w^x}jvkffEfIvgHNTjXV5+K%<*L3ET_R
+z+c|c&wLM;PQ@lgr#v_H=NB{{Sfw2f&z<1F4c?Err>gK7){ur^11cD`i`-xzApY~Qf
+z-Soco%zKmLS;Xfudc5$tj2??=s^NXSD9!fSp38_*Cb5m>t!bHAQk&zN(xREQTJ4>c
+zC4OI8w7BN_>Y<Q`P|Yl)JEqC+?<=onyWQ@36FPXvI!i<{<A|?8t9(>=zWZjEyWg?)
+z-~n%be|`1U>>S}U3wvP0@z9kP-|cdH9RYeANt%btP&>Dm_#=s#T{$4+fFnF_9>oX|
+zooo&c`N+|sIY^}|4akg;3*^W-WYBK!OJAAU-%N9Mt_49ZzRWCquG}WPRkz@uPUllu
+jIzOMKFSg+CqdL=Mn!K`nb$RLf<M~V>L7{9Vwi5pX0LDXb
+
+literal 0
+HcmV?d00001
+
+-- 
+2.21.0
+
diff --git a/SOURCES/perl-5.30.0-Remove-undefined-behavior-from-IV-shifting.patch b/SOURCES/perl-5.30.0-Remove-undefined-behavior-from-IV-shifting.patch
new file mode 100644
index 0000000..31ad4cf
--- /dev/null
+++ b/SOURCES/perl-5.30.0-Remove-undefined-behavior-from-IV-shifting.patch
@@ -0,0 +1,75 @@
+From 7e5b390a008ccad094a39c350f385d58e8a5102a Mon Sep 17 00:00:00 2001
+From: Karl Williamson <khw@cpan.org>
+Date: Fri, 3 May 2019 13:57:47 -0600
+Subject: [PATCH] Remove undefined behavior from IV shifting
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+It is undefined behavior to shift a negative integer to the left.  This
+commit avoids that by treating the value as unsigned, then casting back
+to integer for return.
+
+Petr Písař: Ported to 5.30.0 from
+814735a391b874af8f00eaf89469e5ec7f38cd4aa.
+
+Signed-off-by: Petr Písař <ppisar@redhat.com>
+---
+ asan_ignore |  5 -----
+ pp.c        | 21 ++++++++++++++++++++-
+ 2 files changed, 20 insertions(+), 6 deletions(-)
+
+diff --git a/asan_ignore b/asan_ignore
+index e0f5685..f520546 100644
+--- a/asan_ignore
++++ b/asan_ignore
+@@ -18,11 +18,6 @@
+ 
+ fun:Perl_pp_i_*
+ 
+-# Perl's << is defined as using the underlying C's << operator, with the
+-# same undefined behaviour for shifts greater than the word size.
+-# (UVs normally, IVs with 'use integer')
+-
+-fun:Perl_pp_left_shift
+ 
+ # this function numifies the field width in eg printf "%10f".
+ # It has its own overflow detection, so don't warn about it
+diff --git a/pp.c b/pp.c
+index 7afb090..3ca04e1 100644
+--- a/pp.c
++++ b/pp.c
+@@ -1991,10 +1991,29 @@ static IV S_iv_shift(IV iv, int shift, bool left)
+        shift = -shift;
+        left = !left;
+    }
++
+    if (UNLIKELY(shift >= IV_BITS)) {
+        return iv < 0 && !left ? -1 : 0;
+    }
+-   return left ? iv << shift : iv >> shift;
++   /* For left shifts, perl 5 has chosen to treat the value as unsigned for
++    * the * purposes of shifting, then cast back to signed.  This is very
++    * different from perl 6:
++    *
++    * $ perl6 -e 'say -2 +< 5'
++    * -64
++    *
++    * $ ./perl -le 'print -2 << 5'
++    * 18446744073709551552
++    * */
++   if (left) {
++       if (iv == IV_MIN) { /* Casting this to a UV is undefined behavior */
++           return 0;
++       }
++       return (IV) (((UV) iv) << shift);
++   }
++
++   /* Here is right shift */
++   return iv >> shift;
+ }
+ 
+ #define UV_LEFT_SHIFT(uv, shift) S_uv_shift(uv, shift, TRUE)
+-- 
+2.20.1
+
diff --git a/SOURCES/perl-5.30.0-perl-134221-support-append-mode-for-open-.-undef.patch b/SOURCES/perl-5.30.0-perl-134221-support-append-mode-for-open-.-undef.patch
new file mode 100644
index 0000000..e954285
--- /dev/null
+++ b/SOURCES/perl-5.30.0-perl-134221-support-append-mode-for-open-.-undef.patch
@@ -0,0 +1,191 @@
+From 8e9cf86aa69cb79c91edf5ff0586f87bfe4c91bd Mon Sep 17 00:00:00 2001
+From: Tony Cook <tony@develop-help.com>
+Date: Tue, 2 Jul 2019 14:16:35 +1000
+Subject: [PATCH] (perl #134221) support append mode for open .. undef
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Petr Písař: Ported to 5.30.0 from
+45b29440d38be155c5177c8d6f9a5d4e7c2c098c.
+
+Signed-off-by: Petr Písař <ppisar@redhat.com>
+---
+ doio.c             | 15 +++++++++++++++
+ embed.fnc          |  1 +
+ perlio.c           | 26 +++++++++++++++++++++-----
+ perlio.h           |  3 +++
+ proto.h            |  5 +++++
+ t/io/perlio_open.t | 14 ++++++++++++--
+ 6 files changed, 57 insertions(+), 7 deletions(-)
+
+diff --git a/doio.c b/doio.c
+index 05a0696..424e0e3 100644
+--- a/doio.c
++++ b/doio.c
+@@ -265,6 +265,21 @@ Perl_my_mkstemp_cloexec(char *templte)
+ #endif
+ }
+ 
++int
++Perl_my_mkostemp_cloexec(char *templte, int flags)
++{
++    dVAR;
++    PERL_ARGS_ASSERT_MY_MKOSTEMP_CLOEXEC;
++#if defined(O_CLOEXEC)
++    DO_ONEOPEN_EXPERIMENTING_CLOEXEC(
++        PL_strategy_mkstemp,
++	Perl_my_mkostemp(templte, flags | O_CLOEXEC),
++	Perl_my_mkostemp(templte, flags));
++#else
++    DO_ONEOPEN_THEN_CLOEXEC(Perl_my_mkostemp(templte, flags));
++#endif
++}
++
+ #ifdef HAS_PIPE
+ int
+ Perl_PerlProc_pipe_cloexec(pTHX_ int *pipefd)
+diff --git a/embed.fnc b/embed.fnc
+index 259affd..c977d39 100644
+--- a/embed.fnc
++++ b/embed.fnc
+@@ -476,6 +476,7 @@ p	|int	|PerlLIO_dup2_cloexec|int oldfd|int newfd
+ pR	|int	|PerlLIO_open_cloexec|NN const char *file|int flag
+ pR	|int	|PerlLIO_open3_cloexec|NN const char *file|int flag|int perm
+ pnoR	|int	|my_mkstemp_cloexec|NN char *templte
++pnoR	|int	|my_mkostemp_cloexec|NN char *templte|int flags
+ #ifdef HAS_PIPE
+ pR	|int	|PerlProc_pipe_cloexec|NN int *pipefd
+ #endif
+diff --git a/perlio.c b/perlio.c
+index 904d47a..5a0cd36 100644
+--- a/perlio.c
++++ b/perlio.c
+@@ -1490,7 +1490,9 @@ PerlIO_openn(pTHX_ const char *layers, const char *mode, int fd,
+ 	     int imode, int perm, PerlIO *f, int narg, SV **args)
+ {
+     if (!f && narg == 1 && *args == &PL_sv_undef) {
+-	if ((f = PerlIO_tmpfile())) {
++        int imode = PerlIOUnix_oflags(mode);
++
++	if (imode != -1 && (f = PerlIO_tmpfile_flags(imode))) {
+ 	    if (!layers || !*layers)
+ 		layers = Perl_PerlIO_context_layers(aTHX_ mode);
+ 	    if (layers && *layers)
+@@ -5048,6 +5050,15 @@ PerlIO_stdoutf(const char *fmt, ...)
+ #undef PerlIO_tmpfile
+ PerlIO *
+ PerlIO_tmpfile(void)
++{
++    return PerlIO_tmpfile_flags(0);
++}
++
++#define MKOSTEMP_MODES ( O_RDWR | O_CREAT | O_EXCL )
++#define MKOSTEMP_MODE_MASK ( O_ACCMODE | O_CREAT | O_EXCL | O_TRUNC )
++
++PerlIO *
++PerlIO_tmpfile_flags(int imode)
+ {
+ #ifndef WIN32
+      dTHX;
+@@ -5063,27 +5074,32 @@ PerlIO_tmpfile(void)
+      const char * const tmpdir = TAINTING_get ? NULL : PerlEnv_getenv("TMPDIR");
+      SV * sv = NULL;
+      int old_umask = umask(0177);
++     imode &= ~MKOSTEMP_MODE_MASK;
+      if (tmpdir && *tmpdir) {
+ 	 /* if TMPDIR is set and not empty, we try that first */
+ 	 sv = newSVpv(tmpdir, 0);
+ 	 sv_catpv(sv, tempname + 4);
+-	 fd = Perl_my_mkstemp_cloexec(SvPVX(sv));
++	 fd = Perl_my_mkostemp_cloexec(SvPVX(sv), imode);
+      }
+      if (fd < 0) {
+ 	 SvREFCNT_dec(sv);
+ 	 sv = NULL;
+ 	 /* else we try /tmp */
+-	 fd = Perl_my_mkstemp_cloexec(tempname);
++	 fd = Perl_my_mkostemp_cloexec(tempname, imode);
+      }
+      if (fd < 0) {
+          /* Try cwd */
+          sv = newSVpvs(".");
+          sv_catpv(sv, tempname + 4);
+-         fd = Perl_my_mkstemp_cloexec(SvPVX(sv));
++         fd = Perl_my_mkostemp_cloexec(SvPVX(sv), imode);
+      }
+      umask(old_umask);
+      if (fd >= 0) {
+-	  f = PerlIO_fdopen(fd, "w+");
++         /* fdopen() with a numeric mode */
++         char mode[8];
++         int writing = 1;
++         (void)PerlIO_intmode2str(imode | MKOSTEMP_MODES, mode, &writing);
++         f = PerlIO_fdopen(fd, mode);
+ 	  if (f)
+ 	       PerlIOBase(f)->flags |= PERLIO_F_TEMP;
+ 	  PerlLIO_unlink(sv ? SvPVX_const(sv) : tempname);
+diff --git a/perlio.h b/perlio.h
+index d515020..ee16ab8 100644
+--- a/perlio.h
++++ b/perlio.h
+@@ -286,6 +286,9 @@ PERL_CALLCONV SSize_t PerlIO_get_bufsiz(PerlIO *);
+ #ifndef PerlIO_tmpfile
+ PERL_CALLCONV PerlIO *PerlIO_tmpfile(void);
+ #endif
++#ifndef PerlIO_tmpfile_flags
++PERL_CALLCONV PerlIO *PerlIO_tmpfile_flags(int flags);
++#endif
+ #ifndef PerlIO_stdin
+ PERL_CALLCONV PerlIO *PerlIO_stdin(void);
+ #endif
+diff --git a/proto.h b/proto.h
+index 74a8e46..e0ea55b 100644
+--- a/proto.h
++++ b/proto.h
+@@ -2270,6 +2270,11 @@ PERL_CALLCONV Pid_t	Perl_my_fork(void);
+ PERL_CALLCONV I32	Perl_my_lstat(pTHX);
+ #endif
+ PERL_CALLCONV I32	Perl_my_lstat_flags(pTHX_ const U32 flags);
++PERL_CALLCONV int	Perl_my_mkostemp_cloexec(char *templte, int flags)
++			__attribute__warn_unused_result__;
++#define PERL_ARGS_ASSERT_MY_MKOSTEMP_CLOEXEC	\
++	assert(templte)
++
+ PERL_CALLCONV int	Perl_my_mkstemp_cloexec(char *templte)
+ 			__attribute__warn_unused_result__;
+ #define PERL_ARGS_ASSERT_MY_MKSTEMP_CLOEXEC	\
+diff --git a/t/io/perlio_open.t b/t/io/perlio_open.t
+index 99d7e51..56c354b 100644
+--- a/t/io/perlio_open.t
++++ b/t/io/perlio_open.t
+@@ -11,7 +11,7 @@ BEGIN {
+ use strict;
+ use warnings;
+ 
+-plan tests => 6;
++plan tests => 10;
+ 
+ use Fcntl qw(:seek);
+ 
+@@ -31,6 +31,16 @@ use Fcntl qw(:seek);
+     is($data, "the right read stuff", "found the right stuff");
+ }
+ 
+-
++SKIP:
++{
++    ok((open my $fh, "+>>", undef), "open my \$fh, '+>>', undef")
++      or skip "can't open temp for append: $!", 3;
++    print $fh "abc";
++    ok(seek($fh, 0, SEEK_SET), "seek to zero");
++    print $fh "xyz";
++    ok(seek($fh, 0, SEEK_SET), "seek to zero again");
++    my $data = <$fh>;
++    is($data, "abcxyz", "check the second write appended");
++}
+ 
+ 
+-- 
+2.20.1
+
diff --git a/SOURCES/perl-5.30.0-perl-134266-make-sure-is-writable-when-we-write-to-i.patch b/SOURCES/perl-5.30.0-perl-134266-make-sure-is-writable-when-we-write-to-i.patch
new file mode 100644
index 0000000..e3c9218
--- /dev/null
+++ b/SOURCES/perl-5.30.0-perl-134266-make-sure-is-writable-when-we-write-to-i.patch
@@ -0,0 +1,102 @@
+From 3f8dbf40138bd2bcb569b23c88888a41ede9c355 Mon Sep 17 00:00:00 2001
+From: Tony Cook <tony@develop-help.com>
+Date: Mon, 5 Aug 2019 15:23:45 +1000
+Subject: [PATCH] (perl #134266) make sure $@ is writable when we write to it
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+when unwinding.
+
+Since except_sv might be ERRSV we try to preserve it's value,
+if not the actual SV (which we have an extra refcount on if it is
+except_sv).
+
+Petr Písař: Ported to 5.30.0 from
+933e3e630076d4fdbe32a101eeb5f12e37ec4ac2.
+
+Signed-off-by: Petr Písař <ppisar@redhat.com>
+---
+ perl.h             | 17 +++++++++++++++++
+ pp_ctl.c           | 10 ++++++++--
+ t/lib/croak/pp_ctl |  8 ++++++++
+ 3 files changed, 33 insertions(+), 2 deletions(-)
+
+diff --git a/perl.h b/perl.h
+index e5a5585..383487c 100644
+--- a/perl.h
++++ b/perl.h
+@@ -1357,6 +1357,23 @@ EXTERN_C char *crypt(const char *, const char *);
+     }									\
+     } STMT_END
+ 
++/* contains inlined gv_add_by_type */
++#define SANE_ERRSV() STMT_START {					\
++    SV ** const svp = &GvSV(PL_errgv);					\
++    if (!*svp) {							\
++        *svp = newSVpvs("");                                            \
++    } else if (SvREADONLY(*svp)) {					\
++        SV *dupsv = newSVsv(*svp);					\
++	SvREFCNT_dec_NN(*svp);						\
++	*svp = dupsv;							\
++    } else {								\
++	SV *const errsv = *svp;						\
++	if (SvMAGICAL(errsv)) {						\
++	    mg_free(errsv);						\
++	}								\
++    }									\
++    } STMT_END
++
+ 
+ #ifdef PERL_CORE
+ # define DEFSV (0 + GvSVn(PL_defgv))
+diff --git a/pp_ctl.c b/pp_ctl.c
+index a38b9c1..1f2d812 100644
+--- a/pp_ctl.c
++++ b/pp_ctl.c
+@@ -1720,9 +1720,13 @@ Perl_die_unwind(pTHX_ SV *msv)
+ 	 * perls 5.13.{1..7} which had late setting of $@ without this
+ 	 * early-setting hack.
+ 	 */
+-	if (!(in_eval & EVAL_KEEPERR))
++	if (!(in_eval & EVAL_KEEPERR)) {
++            /* remove any read-only/magic from the SV, so we don't
++               get infinite recursion when setting ERRSV */
++            SANE_ERRSV();
+ 	    sv_setsv_flags(ERRSV, exceptsv,
+                         (SV_GMAGIC|SV_DO_COW_SVSETSV|SV_NOSTEAL));
++        }
+ 
+ 	if (in_eval & EVAL_KEEPERR) {
+ 	    Perl_ck_warner(aTHX_ packWARN(WARN_MISC), "\t(in cleanup) %" SVf,
+@@ -1784,8 +1788,10 @@ Perl_die_unwind(pTHX_ SV *msv)
+              */
+             S_pop_eval_context_maybe_croak(aTHX_ cx, exceptsv, 2);
+ 
+-	    if (!(in_eval & EVAL_KEEPERR))
++	    if (!(in_eval & EVAL_KEEPERR)) {
++                SANE_ERRSV();
+ 		sv_setsv(ERRSV, exceptsv);
++            }
+ 	    PL_restartjmpenv = restartjmpenv;
+ 	    PL_restartop = restartop;
+ 	    JMPENV_JUMP(3);
+diff --git a/t/lib/croak/pp_ctl b/t/lib/croak/pp_ctl
+index b1e754c..de0221b 100644
+--- a/t/lib/croak/pp_ctl
++++ b/t/lib/croak/pp_ctl
+@@ -51,3 +51,11 @@ use 5.01;
+ default{}
+ EXPECT
+ Can't "default" outside a topicalizer at - line 2.
++########
++# NAME croak with read only $@
++eval '"a" =~ /${*@=\_})/';
++die;
++# this would previously recurse infinitely in the eval
++EXPECT
++Unmatched ) in regex; marked by <-- HERE in m/_) <-- HERE / at (eval 1) line 1.
++	...propagated at - line 2.
+-- 
+2.21.0
+
diff --git a/SOURCES/perl-5.30.0-pp.c-Add-two-UNLIKELY-s.patch b/SOURCES/perl-5.30.0-pp.c-Add-two-UNLIKELY-s.patch
new file mode 100644
index 0000000..4565e07
--- /dev/null
+++ b/SOURCES/perl-5.30.0-pp.c-Add-two-UNLIKELY-s.patch
@@ -0,0 +1,42 @@
+From 4f0ded009bf6de2da6a2a2022bec03576dcb80ca Mon Sep 17 00:00:00 2001
+From: Karl Williamson <khw@cpan.org>
+Date: Wed, 1 May 2019 10:41:38 -0600
+Subject: [PATCH] pp.c: Add two UNLIKELY()s
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+It should be uncommon to shift beyond a full word
+
+Signed-off-by: Ported to 5.30.0 from
+bae047b68c92622bb4bb04499e36cdaa48138909.
+Signed-off-by: Petr Písař <ppisar@redhat.com>
+---
+ pp.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/pp.c b/pp.c
+index 90db3a0..7afb090 100644
+--- a/pp.c
++++ b/pp.c
+@@ -1979,7 +1979,7 @@ static UV S_uv_shift(UV uv, int shift, bool left)
+        shift = -shift;
+        left = !left;
+    }
+-   if (shift >= IV_BITS) {
++   if (UNLIKELY(shift >= IV_BITS)) {
+        return 0;
+    }
+    return left ? uv << shift : uv >> shift;
+@@ -1991,7 +1991,7 @@ static IV S_iv_shift(IV iv, int shift, bool left)
+        shift = -shift;
+        left = !left;
+    }
+-   if (shift >= IV_BITS) {
++   if (UNLIKELY(shift >= IV_BITS)) {
+        return iv < 0 && !left ? -1 : 0;
+    }
+    return left ? iv << shift : iv >> shift;
+-- 
+2.20.1
+
diff --git a/SOURCES/perl-5.30.1-handle-s-being-updated-without-len-being-updated.patch b/SOURCES/perl-5.30.1-handle-s-being-updated-without-len-being-updated.patch
new file mode 100644
index 0000000..9f3e11d
--- /dev/null
+++ b/SOURCES/perl-5.30.1-handle-s-being-updated-without-len-being-updated.patch
@@ -0,0 +1,47 @@
+From a0148bb8496444302b087bc0ffcf8dad42f8e475 Mon Sep 17 00:00:00 2001
+From: Tony Cook <tony@develop-help.com>
+Date: Mon, 11 Nov 2019 14:43:42 +1100
+Subject: [PATCH] handle s being updated without len being updated
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+fix #17279
+
+Petr Písař: Ported to 5.30.1 from
+e56dfd967ce460481a9922d14e931b438548093d.
+
+Signed-off-by: Petr Písař <ppisar@redhat.com>
+---
+ numeric.c           | 2 +-
+ t/lib/croak/regcomp | 4 ++++
+ 2 files changed, 5 insertions(+), 1 deletion(-)
+
+diff --git a/numeric.c b/numeric.c
+index d6ce53e..35adebe 100644
+--- a/numeric.c
++++ b/numeric.c
+@@ -1552,7 +1552,7 @@ Perl_my_atof3(pTHX_ const char* orig, NV* value, const STRLEN len)
+         /* strtold() accepts 0x-prefixed hex and in POSIX implementations,
+            0b-prefixed binary numbers, which is backward incompatible
+         */
+-        if ((len == 0 || len >= 2) && *s == '0' &&
++        if ((len == 0 || len - (s-orig) >= 2) && *s == '0' &&
+             (isALPHA_FOLD_EQ(s[1], 'x') || isALPHA_FOLD_EQ(s[1], 'b'))) {
+             *value = 0;
+             return (char *)s+1;
+diff --git a/t/lib/croak/regcomp b/t/lib/croak/regcomp
+index 0ba705e..c0c2710 100644
+--- a/t/lib/croak/regcomp
++++ b/t/lib/croak/regcomp
+@@ -70,3 +70,7 @@ qr/((a))/;
+ EXPECT
+ Too many nested open parens in regex; marked by <-- HERE in m/(( <-- HERE a))/ at - line 3.
+ ########
++# NAME numeric parsing buffer overflow in numeric.c
++0=~/\p{nV:-0}/
++EXPECT
++Can't find Unicode property definition "nV:-0" in regex; marked by <-- HERE in m/\p{nV:-0} <-- HERE / at - line 1.
+-- 
+2.21.0
+
diff --git a/SOURCES/perl-5.30.1-perl-125557-correctly-handle-overload-for-bin-oct-fl.patch b/SOURCES/perl-5.30.1-perl-125557-correctly-handle-overload-for-bin-oct-fl.patch
new file mode 100644
index 0000000..6a91281
--- /dev/null
+++ b/SOURCES/perl-5.30.1-perl-125557-correctly-handle-overload-for-bin-oct-fl.patch
@@ -0,0 +1,116 @@
+From b061e315b4eac4d82edb3ca14581805417a68936 Mon Sep 17 00:00:00 2001
+From: Tony Cook <tony@develop-help.com>
+Date: Wed, 11 Sep 2019 11:50:23 +1000
+Subject: [PATCH] (perl #125557) correctly handle overload for bin/oct floats
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+The hexfp code doesn't check that the shift is 4, and so also
+accepts binary and octal fp numbers.
+
+Unfortunately the call to S_new_constant() always passed a prefix
+of 0x, so overloading would be trying to parse the wrong number.
+
+Another option is to simply allow only hex floats, though some work
+was done in 131894 to improve oct/bin float support.
+
+Petr Písař: Ported to 5.30.1 from
+2cb5a7e8af11acb0eca22421ec5a4df7ef18e2a9.
+
+Signed-off-by: Petr Písař <ppisar@redhat.com>
+---
+ t/op/hexfp.t | 16 +++++++++++++++-
+ toke.c       | 21 ++++++++++++++++-----
+ 2 files changed, 31 insertions(+), 6 deletions(-)
+
+diff --git a/t/op/hexfp.t b/t/op/hexfp.t
+index 64f8136..0f239d4 100644
+--- a/t/op/hexfp.t
++++ b/t/op/hexfp.t
+@@ -10,7 +10,7 @@ use strict;
+ 
+ use Config;
+ 
+-plan(tests => 123);
++plan(tests => 125);
+ 
+ # Test hexfloat literals.
+ 
+@@ -277,6 +277,20 @@ is(0b1p0, 1);
+ is(0b10p0, 2);
+ is(0b1.1p0, 1.5);
+ 
++# previously these would pass "0x..." to the overload instead of the appropriate
++# "0b" or "0" prefix.
++fresh_perl_is(<<'CODE', "1", {}, "overload binary fp");
++use overload;
++BEGIN { overload::constant float => sub { return eval $_[0]; }; }
++print 0b0.1p1;
++CODE
++
++fresh_perl_is(<<'CODE', "1", {}, "overload octal fp");
++use overload;
++BEGIN { overload::constant float => sub { return eval $_[0]; }; }
++print 00.1p3;
++CODE
++
+ # sprintf %a/%A testing is done in sprintf2.t,
+ # trickier than necessary because of long doubles,
+ # and because looseness of the spec.
+diff --git a/toke.c b/toke.c
+index 03c4f2b..3fa20dc 100644
+--- a/toke.c
++++ b/toke.c
+@@ -10966,6 +10966,7 @@ Perl_scan_num(pTHX_ const char *start, YYSTYPE* lvalp)
+     const char *lastub = NULL;		/* position of last underbar */
+     static const char* const number_too_long = "Number too long";
+     bool warned_about_underscore = 0;
++    I32 shift; /* shift per digit for hex/oct/bin, hoisted here for fp */
+ #define WARN_ABOUT_UNDERSCORE() \
+ 	do { \
+ 	    if (!warned_about_underscore) { \
+@@ -11012,8 +11013,6 @@ Perl_scan_num(pTHX_ const char *start, YYSTYPE* lvalp)
+ 	{
+ 	  /* variables:
+ 	     u		holds the "number so far"
+-	     shift	the power of 2 of the base
+-			(hex == 4, octal == 3, binary == 1)
+ 	     overflowed	was the number more than we can hold?
+ 
+ 	     Shift is used when we add a digit.  It also serves as an "are
+@@ -11022,7 +11021,6 @@ Perl_scan_num(pTHX_ const char *start, YYSTYPE* lvalp)
+ 	   */
+ 	    NV n = 0.0;
+ 	    UV u = 0;
+-	    I32 shift;
+ 	    bool overflowed = FALSE;
+ 	    bool just_zero  = TRUE;	/* just plain 0 or binary number? */
+ 	    static const NV nvshift[5] = { 1.0, 2.0, 4.0, 8.0, 16.0 };
+@@ -11369,8 +11367,21 @@ Perl_scan_num(pTHX_ const char *start, YYSTYPE* lvalp)
+         if (hexfp) {
+             floatit = TRUE;
+             *d++ = '0';
+-            *d++ = 'x';
+-            s = start + 2;
++            switch (shift) {
++            case 4:
++                *d++ = 'x';
++                s = start + 2;
++                break;
++            case 3:
++                s = start + 1;
++                break;
++            case 1:
++                *d++ = 'b';
++                s = start + 2;
++                break;
++            default:
++                NOT_REACHED; /* NOTREACHED */
++            }
+         }
+ 
+ 	/* read next group of digits and _ and copy into d */
+-- 
+2.21.0
+
diff --git a/SOURCES/perl-5.31.0-CAPTURE_ALL-was-intended-to-be-an-alias-for-make-it-.patch b/SOURCES/perl-5.31.0-CAPTURE_ALL-was-intended-to-be-an-alias-for-make-it-.patch
new file mode 100644
index 0000000..68e782f
--- /dev/null
+++ b/SOURCES/perl-5.31.0-CAPTURE_ALL-was-intended-to-be-an-alias-for-make-it-.patch
@@ -0,0 +1,85 @@
+From 1a1d29aaa2e0c668f9a8c960d52b516415f28983 Mon Sep 17 00:00:00 2001
+From: Vickenty Fesunov <kent@setattr.net>
+Date: Fri, 22 Sep 2017 19:00:46 -0400
+Subject: [PATCH] %{^CAPTURE_ALL} was intended to be an alias for %-; make it
+ so.
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+For: RT #131867
+
+Add Vickenty Fesunov to AUTHORS.
+
+Signed-off-by: Ported to 5.30 from 1a1d29aaa2e0c668f9a8c960d52b516415f28983.
+
+---
+ AUTHORS                                   |  1 +
+ ext/Tie-Hash-NamedCapture/NamedCapture.xs |  5 ++++-
+ ext/Tie-Hash-NamedCapture/t/tiehash.t     | 11 ++++++++---
+
+diff --git a/AUTHORS b/AUTHORS
+index 0091100600..c920d52e96 100644
+--- a/AUTHORS
++++ b/AUTHORS
+@@ -1265,6 +1265,7 @@ Unicode Consortium		<unicode.org>
+ Vadim Konovalov			<vkonovalov@lucent.com>
+ Valeriy E. Ushakov		<uwe@ptc.spbu.ru>
+ Vernon Lyon			<vlyon@cpan.org>
++Vickenty Fesunov			<kent@setattr.net>
+ Victor Adam			<victor@drawall.cc>
+ Victor Efimov			<victor@vsespb.ru>
+ Viktor Turskyi			<koorchik@gmail.com>
+diff --git a/ext/Tie-Hash-NamedCapture/NamedCapture.xs b/ext/Tie-Hash-NamedCapture/NamedCapture.xs
+index 7eaae5614d..a607c10090 100644
+--- a/ext/Tie-Hash-NamedCapture/NamedCapture.xs
++++ b/ext/Tie-Hash-NamedCapture/NamedCapture.xs
+@@ -25,8 +25,11 @@ _tie_it(SV *sv)
+     GV * const gv = (GV *)sv;
+     HV * const hv = GvHVn(gv);
+     SV *rv = newSV_type(SVt_RV);
++    const char *gv_name = GvNAME(gv);
+   CODE:
+-    SvRV_set(rv, newSVuv(*GvNAME(gv) == '-' ? RXapif_ALL : RXapif_ONE));
++    SvRV_set(rv, newSVuv(
++        strEQ(gv_name, "-") || strEQ(gv_name, "\003APTURE_ALL")
++            ? RXapif_ALL : RXapif_ONE));
+     SvROK_on(rv);
+     sv_bless(rv, GvSTASH(CvGV(cv)));
+ 
+diff --git a/ext/Tie-Hash-NamedCapture/t/tiehash.t b/ext/Tie-Hash-NamedCapture/t/tiehash.t
+index 3ebc81ad68..962754085f 100644
+--- a/ext/Tie-Hash-NamedCapture/t/tiehash.t
++++ b/ext/Tie-Hash-NamedCapture/t/tiehash.t
+@@ -3,7 +3,12 @@ use strict;
+ 
+ use Test::More;
+ 
+-my %hashes = ('+' => \%+, '-' => \%-);
++my %hashes = (
++    '+' => \%+,
++    '-' => \%-,
++    '{^CAPTURE}' => \%{^CAPTURE},
++    '{^CAPTURE_ALL}' => \%{^CAPTURE_ALL},
++);
+ 
+ foreach (['plus1'],
+ 	 ['minus1', all => 1],
+@@ -20,12 +25,12 @@ foreach (['plus1'],
+ is("abcdef" =~ /(?<foo>[ab])*(?<bar>c)(?<foo>d)(?<bar>[ef]*)/, 1,
+    "We matched");
+ 
+-foreach my $name (qw(+ plus1 plus2 plus3)) {
++foreach my $name (qw(+ {^CAPTURE} plus1 plus2 plus3)) {
+     my $hash = $hashes{$name};
+     is_deeply($hash, { foo => 'b', bar => 'c' }, "%$name is as expected");
+ }
+ 
+-foreach my $name (qw(- minus1 minus2)) {
++foreach my $name (qw(- {^CAPTURE_ALL} minus1 minus2)) {
+     my $hash = $hashes{$name};
+     is_deeply($hash, { foo => [qw(b d)], bar => [qw(c ef)] },
+ 	      "%$name is as expected");
+-- 
+2.20.1
+
diff --git a/SOURCES/perl-5.31.0-Create-fcn-for-lossless-conversion-of-NV-to-IV.patch b/SOURCES/perl-5.31.0-Create-fcn-for-lossless-conversion-of-NV-to-IV.patch
new file mode 100644
index 0000000..c072cec
--- /dev/null
+++ b/SOURCES/perl-5.31.0-Create-fcn-for-lossless-conversion-of-NV-to-IV.patch
@@ -0,0 +1,181 @@
+From 3a019afd6f6291c3249c254b5c01e244e4ec83ab Mon Sep 17 00:00:00 2001
+From: Karl Williamson <khw@cpan.org>
+Date: Sun, 28 Apr 2019 17:42:44 -0600
+Subject: [PATCH 1/3] Create fcn for lossless conversion of NV to IV
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Essentially the same code was being used in three places, and had
+undefined C behavior for some inputs.
+
+This consolidates the code into one inline function, and rewrites it to
+avoid undefined behavior.
+
+Signed-off-by: Petr Písař <ppisar@redhat.com>
+---
+ embed.fnc |  1 +
+ embed.h   |  3 +++
+ inline.h  | 34 ++++++++++++++++++++++++++++++++++
+ pp.c      | 20 ++++----------------
+ pp_hot.c  | 10 ++--------
+ proto.h   |  7 +++++++
+ 6 files changed, 51 insertions(+), 24 deletions(-)
+
+diff --git a/embed.fnc b/embed.fnc
+index 45597f67b6..259affded0 100644
+--- a/embed.fnc
++++ b/embed.fnc
+@@ -2272,6 +2272,7 @@ sR	|SV*	|refto		|NN SV* sv
+ : Used in pp_hot.c
+ pRxo	|GV*	|softref2xv	|NN SV *const sv|NN const char *const what \
+ 				|const svtype type|NN SV ***spp
++inR	|bool	|lossless_NV_to_IV|const NV nv|NN IV * ivp
+ #endif
+ 
+ #if defined(PERL_IN_PP_PACK_C)
+diff --git a/embed.h b/embed.h
+index 75c91f77f4..9178c51e92 100644
+--- a/embed.h
++++ b/embed.h
+@@ -1924,6 +1924,9 @@
+ #define do_delete_local()	S_do_delete_local(aTHX)
+ #define refto(a)		S_refto(aTHX_ a)
+ #  endif
++#  if defined(PERL_IN_PP_C) || defined(PERL_IN_PP_HOT_C)
++#define lossless_NV_to_IV	S_lossless_NV_to_IV
++#  endif
+ #  if defined(PERL_IN_PP_CTL_C)
+ #define check_type_and_open(a)	S_check_type_and_open(aTHX_ a)
+ #define destroy_matcher(a)	S_destroy_matcher(aTHX_ a)
+diff --git a/inline.h b/inline.h
+index 654f801b75..de1e33e8ce 100644
+--- a/inline.h
++++ b/inline.h
+@@ -1913,6 +1913,40 @@ S_should_warn_nl(const char *pv) {
+ 
+ #endif
+ 
++#if defined(PERL_IN_PP_C) || defined(PERL_IN_PP_HOT_C)
++
++PERL_STATIC_INLINE bool
++S_lossless_NV_to_IV(const NV nv, IV *ivp)
++{
++    /* This function determines if the input NV 'nv' may be converted without
++     * loss of data to an IV.  If not, it returns FALSE taking no other action.
++     * But if it is possible, it does the conversion, returning TRUE, and
++     * storing the converted result in '*ivp' */
++
++    PERL_ARGS_ASSERT_LOSSLESS_NV_TO_IV;
++
++#  if  defined(Perl_isnan)
++
++    if (UNLIKELY(Perl_isnan(nv))) {
++        return FALSE;
++    }
++
++#  endif
++
++    if (UNLIKELY(nv < IV_MIN) || UNLIKELY(nv > IV_MAX)) {
++        return FALSE;
++    }
++
++    if ((IV) nv != nv) {
++        return FALSE;
++    }
++
++    *ivp = (IV) nv;
++    return TRUE;
++}
++
++#endif
++
+ /* ------------------ pp.c, regcomp.c, toke.c, universal.c ------------ */
+ 
+ #define MAX_CHARSET_NAME_LENGTH 2
+diff --git a/pp.c b/pp.c
+index c89cb7198c..0956121b27 100644
+--- a/pp.c
++++ b/pp.c
+@@ -1268,16 +1268,10 @@ PP(pp_multiply)
+             NV nr = SvNVX(svr);
+             NV result;
+ 
+-            if (
+-#if defined(NAN_COMPARE_BROKEN) && defined(Perl_isnan)
+-                !Perl_isnan(nl) && nl == (NV)(il = (IV)nl)
+-                && !Perl_isnan(nr) && nr == (NV)(ir = (IV)nr)
+-#else
+-                nl == (NV)(il = (IV)nl) && nr == (NV)(ir = (IV)nr)
+-#endif
+-                )
++            if (lossless_NV_to_IV(nl, &il) && lossless_NV_to_IV(nr, &ir)) {
+                 /* nothing was lost by converting to IVs */
+                 goto do_iv;
++            }
+             SP--;
+             result = nl * nr;
+ #  if defined(__sgi) && defined(USE_LONG_DOUBLE) && LONG_DOUBLEKIND == LONG_DOUBLE_IS_DOUBLEDOUBLE_128_BIT_BE_BE && NVSIZE == 16
+@@ -1849,16 +1843,10 @@ PP(pp_subtract)
+             NV nl = SvNVX(svl);
+             NV nr = SvNVX(svr);
+ 
+-            if (
+-#if defined(NAN_COMPARE_BROKEN) && defined(Perl_isnan)
+-                !Perl_isnan(nl) && nl == (NV)(il = (IV)nl)
+-                && !Perl_isnan(nr) && nr == (NV)(ir = (IV)nr)
+-#else
+-                nl == (NV)(il = (IV)nl) && nr == (NV)(ir = (IV)nr)
+-#endif
+-                )
++            if (lossless_NV_to_IV(nl, &il) && lossless_NV_to_IV(nr, &ir)) {
+                 /* nothing was lost by converting to IVs */
+                 goto do_iv;
++            }
+             SP--;
+             TARGn(nl - nr, 0); /* args not GMG, so can't be tainted */
+             SETs(TARG);
+diff --git a/pp_hot.c b/pp_hot.c
+index 7d5ffc02fd..2df5df8303 100644
+--- a/pp_hot.c
++++ b/pp_hot.c
+@@ -1435,16 +1435,10 @@ PP(pp_add)
+             NV nl = SvNVX(svl);
+             NV nr = SvNVX(svr);
+ 
+-            if (
+-#if defined(NAN_COMPARE_BROKEN) && defined(Perl_isnan)
+-                !Perl_isnan(nl) && nl == (NV)(il = (IV)nl)
+-                && !Perl_isnan(nr) && nr == (NV)(ir = (IV)nr)
+-#else
+-                nl == (NV)(il = (IV)nl) && nr == (NV)(ir = (IV)nr)
+-#endif
+-                )
++            if (lossless_NV_to_IV(nl, &il) && lossless_NV_to_IV(nr, &ir)) {
+                 /* nothing was lost by converting to IVs */
+                 goto do_iv;
++            }
+             SP--;
+             TARGn(nl + nr, 0); /* args not GMG, so can't be tainted */
+             SETs(TARG);
+diff --git a/proto.h b/proto.h
+index 0f8feed187..74a8e46ab7 100644
+--- a/proto.h
++++ b/proto.h
+@@ -5224,6 +5224,13 @@ STATIC SV*	S_refto(pTHX_ SV* sv)
+ 
+ #endif
+ #if defined(PERL_IN_PP_C) || defined(PERL_IN_PP_HOT_C)
++#ifndef PERL_NO_INLINE_FUNCTIONS
++PERL_STATIC_INLINE bool	S_lossless_NV_to_IV(const NV nv, IV * ivp)
++			__attribute__warn_unused_result__;
++#define PERL_ARGS_ASSERT_LOSSLESS_NV_TO_IV	\
++	assert(ivp)
++#endif
++
+ PERL_CALLCONV GV*	Perl_softref2xv(pTHX_ SV *const sv, const char *const what, const svtype type, SV ***spp)
+ 			__attribute__warn_unused_result__;
+ #define PERL_ARGS_ASSERT_SOFTREF2XV	\
+-- 
+2.20.1
+
diff --git a/SOURCES/perl-5.31.0-Don-t-use-PL_check-op_type-to-check-for-filetets-ops.patch b/SOURCES/perl-5.31.0-Don-t-use-PL_check-op_type-to-check-for-filetets-ops.patch
new file mode 100644
index 0000000..dca5f98
--- /dev/null
+++ b/SOURCES/perl-5.31.0-Don-t-use-PL_check-op_type-to-check-for-filetets-ops.patch
@@ -0,0 +1,87 @@
+From 1d31efef7dd4388fd606972e67bda3318e8838fe Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Dagfinn=20Ilmari=20Manns=C3=A5ker?= <ilmari@ilmari.org>
+Date: Tue, 21 May 2019 17:34:49 +0100
+Subject: [PATCH] Don't use PL_check[op_type] to check for filetets ops to
+ stack
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+This breaks hooking the filetest ops' check function by modules like
+bareword::filehandles.  Instead use the OP_IS_FILETEST() macro to decide
+check for filetest ops.  Also add an OP_IS_STAT() macro for when we want
+to check for (l)stat as well as the filetest ops.
+
+c.f. https://rt.cpan.org/Ticket/Display.html?id=127073
+
+Signed-off-by: Petr Písař <ppisar@redhat.com>
+---
+ op.c          | 11 ++++-------
+ op.h          |  2 ++
+ regen/opcodes |  1 +
+ 3 files changed, 7 insertions(+), 7 deletions(-)
+
+diff --git a/op.c b/op.c
+index 29181ba731..dba7ac7fea 100644
+--- a/op.c
++++ b/op.c
+@@ -991,8 +991,7 @@ Perl_op_clear(pTHX_ OP *o)
+ 	o->op_targ = 0;
+ 	break;
+     default:
+-	if (!(o->op_flags & OPf_REF)
+-	    || (PL_check[o->op_type] != Perl_ck_ftst))
++	if (!(o->op_flags & OPf_REF) || !OP_IS_STAT(o->op_type))
+ 	    break;
+ 	/* FALLTHROUGH */
+     case OP_GVSV:
+@@ -4413,8 +4412,7 @@ Perl_op_lvalue_flags(pTHX_ OP *o, I32 type, U32 flags)
+     /* [20011101.069 (#7861)] File test operators interpret OPf_REF to mean that
+        their argument is a filehandle; thus \stat(".") should not set
+        it. AMS 20011102 */
+-    if (type == OP_REFGEN &&
+-        PL_check[o->op_type] == Perl_ck_ftst)
++    if (type == OP_REFGEN && OP_IS_STAT(o->op_type))
+         return o;
+ 
+     if (type != OP_LEAVESUBLV)
+@@ -11696,9 +11694,8 @@ Perl_ck_ftst(pTHX_ OP *o)
+ 	scalar((OP *) kid);
+ 	if ((PL_hints & HINT_FILETEST_ACCESS) && OP_IS_FILETEST_ACCESS(o->op_type))
+ 	    o->op_private |= OPpFT_ACCESS;
+-	if (type != OP_STAT && type != OP_LSTAT
+-            && PL_check[kidtype] == Perl_ck_ftst
+-            && kidtype != OP_STAT && kidtype != OP_LSTAT
++	if (OP_IS_FILETEST(type)
++            && OP_IS_FILETEST(kidtype)
+         ) {
+ 	    o->op_private |= OPpFT_STACKED;
+ 	    kid->op_private |= OPpFT_STACKING;
+diff --git a/op.h b/op.h
+index c9f05b2271..ad6cf7fe49 100644
+--- a/op.h
++++ b/op.h
+@@ -1021,6 +1021,8 @@ C<sib> is non-null. For a higher-level interface, see C<L</op_sibling_splice>>.
+ #define OP_TYPE_ISNT_AND_WASNT(o, type) \
+     ( (o) && OP_TYPE_ISNT_AND_WASNT_NN(o, type) )
+ 
++/* should match anything that uses ck_ftst in regen/opcodes */
++#define OP_IS_STAT(op) (OP_IS_FILETEST(op) || (op) == OP_LSTAT || (op) == OP_STAT)
+ 
+ #  define OpHAS_SIBLING(o)	(cBOOL((o)->op_moresib))
+ #  define OpSIBLING(o)		(0 + (o)->op_moresib ? (o)->op_sibparent : NULL)
+diff --git a/regen/opcodes b/regen/opcodes
+index b4bf904fdc..4e8236947a 100644
+--- a/regen/opcodes
++++ b/regen/opcodes
+@@ -397,6 +397,7 @@ getsockname	getsockname		ck_fun		is%	Fs
+ getpeername	getpeername		ck_fun		is%	Fs
+ 
+ # Stat calls.  OP_IS_FILETEST wants them consecutive.
++# Also needs to match OP_IS_STAT() in op.h
+ 
+ lstat		lstat			ck_ftst		u-	F?
+ stat		stat			ck_ftst		u-	F?
+-- 
+2.20.1
+
diff --git a/SOURCES/perl-5.31.0-PATCH-perl-134059-panic-outputting-a-warning.patch b/SOURCES/perl-5.31.0-PATCH-perl-134059-panic-outputting-a-warning.patch
new file mode 100644
index 0000000..629e71c
--- /dev/null
+++ b/SOURCES/perl-5.31.0-PATCH-perl-134059-panic-outputting-a-warning.patch
@@ -0,0 +1,75 @@
+From cc16d262eb72677cdda2aa9395e943818b85ba38 Mon Sep 17 00:00:00 2001
+From: Karl Williamson <khw@cpan.org>
+Date: Mon, 29 Apr 2019 15:24:18 -0600
+Subject: [PATCH] PATCH: [perl #134059] panic outputting a warning
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+This was due to a logic error on my part.  We need to save and restore a
+value.  Instead, it was getting restored to the wrong value.
+
+This particular instance of the bug was outputting a fatal error
+message, so that the only harm is not giving the user the correct info,
+and creating unnecessary work for them and us when it gets reported.
+But this bug could manifest itself when trying to output just a warning
+that the program otherwise would carry on from.
+
+Signed-off-by: Petr Písař <ppisar@redhat.com>
+---
+ regcomp.c       | 12 ++++++++++--
+ t/re/reg_mesg.t |  1 +
+ 2 files changed, 11 insertions(+), 2 deletions(-)
+
+diff --git a/regcomp.c b/regcomp.c
+index 3ad09c52b2..1c54fe3f38 100644
+--- a/regcomp.c
++++ b/regcomp.c
+@@ -131,6 +131,8 @@ struct RExC_state_t {
+     char	*parse;			/* Input-scan pointer. */
+     char        *copy_start;            /* start of copy of input within
+                                            constructed parse string */
++    char        *save_copy_start;       /* Provides one level of saving
++                                           and restoring 'copy_start' */
+     char        *copy_start_in_input;   /* Position in input string
+                                            corresponding to copy_start */
+     SSize_t	whilem_seen;		/* number of WHILEM in this expr */
+@@ -229,6 +231,7 @@ struct RExC_state_t {
+ #define RExC_precomp	(pRExC_state->precomp)
+ #define RExC_copy_start_in_input (pRExC_state->copy_start_in_input)
+ #define RExC_copy_start_in_constructed  (pRExC_state->copy_start)
++#define RExC_save_copy_start_in_constructed  (pRExC_state->save_copy_start)
+ #define RExC_precomp_end (pRExC_state->precomp_end)
+ #define RExC_rx_sv	(pRExC_state->rx_sv)
+ #define RExC_rx		(pRExC_state->rx)
+@@ -821,8 +824,13 @@ static const scan_data_t zero_scan_data = {
+ } STMT_END
+ 
+ /* Setting this to NULL is a signal to not output warnings */
+-#define TURN_OFF_WARNINGS_IN_SUBSTITUTE_PARSE RExC_copy_start_in_constructed = NULL
+-#define RESTORE_WARNINGS RExC_copy_start_in_constructed = RExC_precomp
++#define TURN_OFF_WARNINGS_IN_SUBSTITUTE_PARSE                               \
++    STMT_START {                                                            \
++      RExC_save_copy_start_in_constructed  = RExC_copy_start_in_constructed;\
++      RExC_copy_start_in_constructed = NULL;                                \
++    } STMT_END
++#define RESTORE_WARNINGS                                                    \
++    RExC_copy_start_in_constructed = RExC_save_copy_start_in_constructed
+ 
+ /* Since a warning can be generated multiple times as the input is reparsed, we
+  * output it the first time we come to that point in the parse, but suppress it
+diff --git a/t/re/reg_mesg.t b/t/re/reg_mesg.t
+index c5c79f0323..d10fa2c09a 100644
+--- a/t/re/reg_mesg.t
++++ b/t/re/reg_mesg.t
+@@ -318,6 +318,7 @@ my @death =
+  '/\p{Is_Other_Alphabetic=F}/ ' => 'Can\'t find Unicode property definition "Is_Other_Alphabetic=F" {#} m/\p{Is_Other_Alphabetic=F}{#}/',
+  '/\x{100}(?(/' => 'Unknown switch condition (?(...)) {#} m/\\x{100}(?({#}/', # [perl #133896]
+  '/(?[\N{KEYCAP DIGIT NINE}/' => '\N{} in inverted character class or as a range end-point is restricted to one character {#} m/(?[\\N{U+39.FE0F.20E3{#}}/', # [perl #133988]
++ '/0000000000000000[\N{U+0.00}0000/' => 'Unmatched [ {#} m/0000000000000000[{#}\N{U+0.00}0000/', # [perl #134059]
+ );
+ 
+ # These are messages that are death under 'use re "strict"', and may or may
+-- 
+2.20.1
+
diff --git a/SOURCES/perl-5.31.0-S_scan_const-Properly-test-if-need-to-grow.patch b/SOURCES/perl-5.31.0-S_scan_const-Properly-test-if-need-to-grow.patch
new file mode 100644
index 0000000..74957d4
--- /dev/null
+++ b/SOURCES/perl-5.31.0-S_scan_const-Properly-test-if-need-to-grow.patch
@@ -0,0 +1,49 @@
+From 89f69032d6a71f41b96ae6becbf3df4e2f9509a5 Mon Sep 17 00:00:00 2001
+From: Karl Williamson <khw@cpan.org>
+Date: Sat, 27 Apr 2019 13:56:39 -0600
+Subject: [PATCH] S_scan_const() Properly test if need to grow
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+As we parse the input, creating a string constant, we may have to grow
+the destination if it fills up as we go along.  It allocates space in an
+SV and populates the string, but it doesn' update the SvCUR until the
+end, so in single stepping the debugger through the code, the SV looks
+empty until the end.  It turns out that as a result SvEND also doesn't
+get updated and still points to the beginning of the string until SvCUR
+is finally set.  That means that the test changed by this commit was
+always succeeding, because it was using SvEND that didn't get updated,
+so it would attempt to grow each time through the loop.  By moving a
+couple of statements earlier, and using SvLEN instead, which does always
+have the correct value, those extra growth attempts are avoided.
+
+Signed-off-by: Petr Písař <ppisar@redhat.com>
+---
+ toke.c | 10 ++++++----
+ 1 file changed, 6 insertions(+), 4 deletions(-)
+
+diff --git a/toke.c b/toke.c
+index 68eea0cae6..03c4f2ba26 100644
+--- a/toke.c
++++ b/toke.c
+@@ -4097,10 +4097,12 @@ S_scan_const(pTHX_ char *start)
+             goto default_action; /* Redo, having upgraded so both are UTF-8 */
+         }
+         else {  /* UTF8ness matters: convert this non-UTF8 source char to
+-                   UTF-8 for output.  It will occupy 2 bytes */
+-            if (d + 2 >= SvEND(sv)) {
+-                const STRLEN extra = 2 + (send - s - 1) + 1;
+-		const STRLEN off = d - SvPVX_const(sv);
++                   UTF-8 for output.  It will occupy 2 bytes, but don't include
++                   the input byte since we haven't incremented 's' yet. See
++                   Note on sizing above. */
++            const STRLEN off = d - SvPVX(sv);
++            const STRLEN extra = 2 + (send - s - 1) + 1;
++            if (off + extra > SvLEN(sv)) {
+ 		d = off + SvGROW(sv, off + extra);
+ 	    }
+             *d++ = UTF8_EIGHT_BIT_HI(*s);
+-- 
+2.20.1
+
diff --git a/SOURCES/perl-5.31.0-perl-122112-a-simpler-fix-for-pclose-aborted-by-a-si.patch b/SOURCES/perl-5.31.0-perl-122112-a-simpler-fix-for-pclose-aborted-by-a-si.patch
new file mode 100644
index 0000000..e7e2b38
--- /dev/null
+++ b/SOURCES/perl-5.31.0-perl-122112-a-simpler-fix-for-pclose-aborted-by-a-si.patch
@@ -0,0 +1,70 @@
+From 35608a1658fe75c79ca53d96aea6cf7cb2a98615 Mon Sep 17 00:00:00 2001
+From: Tony Cook <tony@develop-help.com>
+Date: Thu, 9 May 2019 09:52:30 +1000
+Subject: [PATCH] (perl #122112) a simpler fix for pclose() aborted by a signal
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+This change results in a zombie child process for the lifetime of
+the process, but I think that's the responsibility of the signal
+handler that aborted pclose().
+
+We could add some magic to retry (and retry and retry) waiting on
+child process as we rewind (since there's no other way to remove
+the zombie), but the program has chosen implicitly to abort the
+wait() done by pclose() and it's best to honor that.
+
+If we do choose to retry the wait() we might be blocking an attempt
+by the process to terminate, whether by exit() or die().
+
+If a program does need more flexible handling there's always
+pipe()/fork()/exec() and/or the various event-driven frameworks on
+CPAN.
+
+Signed-off-by: Petr Písař <ppisar@redhat.com>
+---
+ doio.c      | 12 +++++++++++-
+ t/io/pipe.t |  2 --
+ 2 files changed, 11 insertions(+), 3 deletions(-)
+
+diff --git a/doio.c b/doio.c
+index 0cc4e55404..05a06968dc 100644
+--- a/doio.c
++++ b/doio.c
+@@ -1779,7 +1779,17 @@ Perl_io_close(pTHX_ IO *io, GV *gv, bool not_implicit, bool warn_on_fail)
+ 
+     if (IoIFP(io)) {
+ 	if (IoTYPE(io) == IoTYPE_PIPE) {
+-	    const int status = PerlProc_pclose(IoIFP(io));
++            PerlIO *fh = IoIFP(io);
++            int status;
++
++            /* my_pclose() can propagate signals which might bypass any code
++               after the call here if the signal handler throws an exception.
++               This would leave the handle in the IO object and try to close it again
++               when the SV is destroyed on unwind or global destruction.
++               So NULL it early.
++            */
++            IoOFP(io) = IoIFP(io) = NULL;
++	    status = PerlProc_pclose(fh);
+ 	    if (not_implicit) {
+ 		STATUS_NATIVE_CHILD_SET(status);
+ 		retval = (STATUS_UNIX == 0);
+diff --git a/t/io/pipe.t b/t/io/pipe.t
+index 1d01db6af6..fc3071300d 100644
+--- a/t/io/pipe.t
++++ b/t/io/pipe.t
+@@ -255,9 +255,7 @@ close \$fh;
+ PROG
+     print $prog;
+     my $out = fresh_perl($prog, {});
+-    $::TODO = "not fixed yet";
+     cmp_ok($out, '!~', qr/refcnt/, "no exception from PerlIO");
+-    undef $::TODO;
+     # checks that that program did something rather than failing to
+     # compile
+     cmp_ok($out, '=~', qr/Died at/, "but we did get the exception from die");
+-- 
+2.20.1
+
diff --git a/SOURCES/perl-5.31.0-perl-122112-remove-some-interfering-debug-output.patch b/SOURCES/perl-5.31.0-perl-122112-remove-some-interfering-debug-output.patch
new file mode 100644
index 0000000..2733044
--- /dev/null
+++ b/SOURCES/perl-5.31.0-perl-122112-remove-some-interfering-debug-output.patch
@@ -0,0 +1,28 @@
+From 2fe0d7f40a94163d6c242c3e695fdcd19e387422 Mon Sep 17 00:00:00 2001
+From: Tony Cook <tony@develop-help.com>
+Date: Tue, 11 Jun 2019 14:59:23 +1000
+Subject: [PATCH] (perl #122112) remove some interfering debug output
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Signed-off-by: Petr Písař <ppisar@redhat.com>
+---
+ t/io/pipe.t | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/t/io/pipe.t b/t/io/pipe.t
+index fc3071300d..9f5bb3bcf8 100644
+--- a/t/io/pipe.t
++++ b/t/io/pipe.t
+@@ -253,7 +253,6 @@ my \$cmd = qq(\$Perl -e "sleep 3");
+ my \$pid = open my \$fh, "|\$cmd" or die "\$!\n";
+ close \$fh;
+ PROG
+-    print $prog;
+     my $out = fresh_perl($prog, {});
+     cmp_ok($out, '!~', qr/refcnt/, "no exception from PerlIO");
+     # checks that that program did something rather than failing to
+-- 
+2.20.1
+
diff --git a/SOURCES/perl-5.31.0-perl-122112-test-for-signal-handler-death-in-pclose.patch b/SOURCES/perl-5.31.0-perl-122112-test-for-signal-handler-death-in-pclose.patch
new file mode 100644
index 0000000..035f202
--- /dev/null
+++ b/SOURCES/perl-5.31.0-perl-122112-test-for-signal-handler-death-in-pclose.patch
@@ -0,0 +1,54 @@
+From fb5e77103dd443cc2112ba14dc665aa5ec072ce6 Mon Sep 17 00:00:00 2001
+From: Tony Cook <tony@develop-help.com>
+Date: Wed, 30 May 2018 14:03:04 +1000
+Subject: [PATCH] (perl #122112) test for signal handler death in pclose
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Signed-off-by: Petr Písař <ppisar@redhat.com>
+---
+ t/io/pipe.t | 23 ++++++++++++++++++++++-
+ 1 file changed, 22 insertions(+), 1 deletion(-)
+
+diff --git a/t/io/pipe.t b/t/io/pipe.t
+index f9ee65afe8..1d01db6af6 100644
+--- a/t/io/pipe.t
++++ b/t/io/pipe.t
+@@ -10,7 +10,7 @@ if (!$Config{'d_fork'}) {
+     skip_all("fork required to pipe");
+ }
+ else {
+-    plan(tests => 25);
++    plan(tests => 27);
+ }
+ 
+ my $Perl = which_perl();
+@@ -241,3 +241,24 @@ SKIP: {
+ 
+   is($child, -1, 'child reaped if piped program cannot be executed');
+ }
++
++{
++    # [perl #122112] refcnt: fd -1 < 0 when a signal handler dies
++    # while a pipe close is waiting on a child process
++    my $prog = <<PROG;
++\$SIG{ALRM}=sub{die};
++alarm 1;
++\$Perl = "$Perl";
++my \$cmd = qq(\$Perl -e "sleep 3");
++my \$pid = open my \$fh, "|\$cmd" or die "\$!\n";
++close \$fh;
++PROG
++    print $prog;
++    my $out = fresh_perl($prog, {});
++    $::TODO = "not fixed yet";
++    cmp_ok($out, '!~', qr/refcnt/, "no exception from PerlIO");
++    undef $::TODO;
++    # checks that that program did something rather than failing to
++    # compile
++    cmp_ok($out, '=~', qr/Died at/, "but we did get the exception from die");
++}
+-- 
+2.20.1
+
diff --git a/SOURCES/perl-5.31.0-perl-133913-limit-numeric-format-results-to-INT_MAX.patch b/SOURCES/perl-5.31.0-perl-133913-limit-numeric-format-results-to-INT_MAX.patch
new file mode 100644
index 0000000..c1813fd
--- /dev/null
+++ b/SOURCES/perl-5.31.0-perl-133913-limit-numeric-format-results-to-INT_MAX.patch
@@ -0,0 +1,73 @@
+From 027471cf1095f75f273df40310e4647fe1e8a9df Mon Sep 17 00:00:00 2001
+From: Tony Cook <tony@develop-help.com>
+Date: Wed, 20 Mar 2019 16:47:49 +1100
+Subject: [PATCH] (perl #133913) limit numeric format results to INT_MAX
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+The return value of v?snprintf() is int, and we pay attention to that
+return value, so limit the expected size of numeric formats to
+INT_MAX.
+
+Signed-off-by: Petr Písař <ppisar@redhat.com>
+---
+ pod/perldiag.pod | 6 ++++++
+ sv.c             | 7 +++++++
+ t/op/sprintf2.t  | 7 +++++++
+ 3 files changed, 20 insertions(+)
+
+diff --git a/pod/perldiag.pod b/pod/perldiag.pod
+index 1037215d44..166d29b4bb 100644
+--- a/pod/perldiag.pod
++++ b/pod/perldiag.pod
+@@ -4354,6 +4354,12 @@ the meantime, try using scientific notation (e.g. "1e6" instead of
+ a number.  This happens, for example with C<\o{}>, with no number between
+ the braces.
+ 
++=item Numeric format result too large
++
++(F) The length of the result of a numeric format supplied to sprintf()
++or printf() would have been too large for the underlying C function to
++report.  This limit is typically 2GB.
++
+ =item Octal number > 037777777777 non-portable
+ 
+ (W portable) The octal number you specified is larger than 2**32-1
+diff --git a/sv.c b/sv.c
+index 8fbca52eb2..8bc0af0c16 100644
+--- a/sv.c
++++ b/sv.c
+@@ -13085,6 +13085,13 @@ Perl_sv_vcatpvfn_flags(pTHX_ SV *const sv, const char *const pat, const STRLEN p
+ 	    if (float_need < width)
+ 		float_need = width;
+ 
++            if (float_need > INT_MAX) {
++                /* snprintf() returns an int, and we use that return value,
++                   so die horribly if the expected size is too large for int
++                */
++                Perl_croak(aTHX_ "Numeric format result too large");
++            }
++
+ 	    if (PL_efloatsize <= float_need) {
+                 /* PL_efloatbuf should be at least 1 greater than
+                  * float_need to allow a trailing \0 to be returned by
+diff --git a/t/op/sprintf2.t b/t/op/sprintf2.t
+index 84259a4afd..5fee8efede 100644
+--- a/t/op/sprintf2.t
++++ b/t/op/sprintf2.t
+@@ -1153,4 +1153,11 @@ foreach(
+     is sprintf("%.0f", $_), sprintf("%-.0f", $_), "special-case %.0f on $_";
+ }
+ 
++# large uvsize needed so the large width is parsed properly
++# large sizesize needed so the STRLEN check doesn't
++if ($Config{intsize} == 4 && $Config{uvsize} > 4 && $Config{sizesize} > 4) {
++    eval { my $x = sprintf("%7000000000E", 0) };
++    like($@, qr/^Numeric format result too large at /,
++         "croak for very large numeric format results");
++}
+ done_testing();
+-- 
+2.20.1
+
diff --git a/SOURCES/perl-5.31.0-perl-133936-document-differences-between-IO-Socket-a.patch b/SOURCES/perl-5.31.0-perl-133936-document-differences-between-IO-Socket-a.patch
new file mode 100644
index 0000000..fcdce36
--- /dev/null
+++ b/SOURCES/perl-5.31.0-perl-133936-document-differences-between-IO-Socket-a.patch
@@ -0,0 +1,78 @@
+From 1d9630e7857d6fbae6fddd261fbb80c9c9a8cfd6 Mon Sep 17 00:00:00 2001
+From: Tony Cook <tony@develop-help.com>
+Date: Mon, 18 Mar 2019 16:02:33 +1100
+Subject: [PATCH] (perl #133936) document differences between IO::Socket::* and
+ builtin
+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/IO/lib/IO/Socket.pm | 43 +++++++++++++++++++++++++++++++++++++---
+ 1 file changed, 40 insertions(+), 3 deletions(-)
+
+diff --git a/dist/IO/lib/IO/Socket.pm b/dist/IO/lib/IO/Socket.pm
+index da9e8c94d0..345ffd475d 100644
+--- a/dist/IO/lib/IO/Socket.pm
++++ b/dist/IO/lib/IO/Socket.pm
+@@ -434,9 +434,6 @@ corresponding built-in functions:
+     bind
+     listen
+     accept
+-    send
+-    recv
+-    peername (getpeername)
+     sockname (getsockname)
+     shutdown
+ 
+@@ -517,6 +514,46 @@ SO_LINGER enabled with a zero timeout, then the peer's close() will generate
+ a RST segment, upon receipt of which the local TCP transitions immediately to
+ B<CLOSED>, and in that state, connected() I<will> return undef.
+ 
++=item send(MSG, [, FLAGS [, TO ] ])
++
++Like the built-in L<send()|perlfunc/send>, except that:
++
++=over
++
++=item *
++
++C<FLAGS> is optional and defaults to C<0>, and
++
++=item *
++
++after a successful send with C<TO>, further calls to send() without
++C<TO> will send to the same address, and C<TO> will be used as the
++result of peername().
++
++=back
++
++=item recv(BUF, LEN, [,FLAGS])
++
++Like the built-in L<recv()|perlfunc/recv>, except that:
++
++=over
++
++=item *
++
++C<FLAGS> is optional and defaults to C<0>, and
++
++=item *
++
++the cached value returned by peername() is updated with the result of
++recv().
++
++=back
++
++=item peername
++
++Returns the cached peername, possibly set by recv() or send() above.
++If not otherwise set returns (and caches) the result of getpeername().
++
+ =item protocol
+ 
+ Returns the numerical number for the protocol being used on the socket, if
+-- 
+2.20.1
+
diff --git a/SOURCES/perl-5.31.0-perl-133936-ensure-TO-is-honoured-for-UDP-sock-send.patch b/SOURCES/perl-5.31.0-perl-133936-ensure-TO-is-honoured-for-UDP-sock-send.patch
new file mode 100644
index 0000000..dbe89b9
--- /dev/null
+++ b/SOURCES/perl-5.31.0-perl-133936-ensure-TO-is-honoured-for-UDP-sock-send.patch
@@ -0,0 +1,107 @@
+From f1000aa2d58fbed2741dbb2887b668f872ef0cb8 Mon Sep 17 00:00:00 2001
+From: Tony Cook <tony@develop-help.com>
+Date: Mon, 18 Mar 2019 15:05:32 +1100
+Subject: [PATCH] (perl #133936) ensure TO is honoured for UDP $sock->send()
+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/IO/lib/IO/Socket.pm |  7 ++++---
+ dist/IO/t/io_udp.t       | 31 +++++++++++++++++++++++++++----
+ 2 files changed, 31 insertions(+), 7 deletions(-)
+
+diff --git a/dist/IO/lib/IO/Socket.pm b/dist/IO/lib/IO/Socket.pm
+index 1bf57ab826..a34a10b232 100644
+--- a/dist/IO/lib/IO/Socket.pm
++++ b/dist/IO/lib/IO/Socket.pm
+@@ -282,9 +282,10 @@ sub send {
+     croak 'send: Cannot determine peer address'
+ 	 unless(defined $peer);
+ 
+-    my $r = defined(getpeername($sock))
+-	? send($sock, $_[1], $flags)
+-	: send($sock, $_[1], $flags, $peer);
++    my $type = $sock->socktype;
++    my $r = $type == SOCK_DGRAM || $type == SOCK_RAW
++      ? send($sock, $_[1], $flags, $peer)
++      : send($sock, $_[1], $flags);
+ 
+     # remember who we send to, if it was successful
+     ${*$sock}{'io_socket_peername'} = $peer
+diff --git a/dist/IO/t/io_udp.t b/dist/IO/t/io_udp.t
+index d7e95a8829..571e4303bb 100644
+--- a/dist/IO/t/io_udp.t
++++ b/dist/IO/t/io_udp.t
+@@ -15,6 +15,8 @@ BEGIN {
+     skip_all($reason) if $reason;
+ }
+ 
++use strict;
++
+ sub compare_addr {
+     no utf8;
+     my $a = shift;
+@@ -36,18 +38,18 @@ sub compare_addr {
+     "$a[0]$a[1]" eq "$b[0]$b[1]";
+ }
+ 
+-plan(7);
++plan(15);
+ watchdog(15);
+ 
+ use Socket;
+ use IO::Socket qw(AF_INET SOCK_DGRAM INADDR_ANY);
+ 
+-$udpa = IO::Socket::INET->new(Proto => 'udp', LocalAddr => 'localhost')
++my $udpa = IO::Socket::INET->new(Proto => 'udp', LocalAddr => 'localhost')
+      || IO::Socket::INET->new(Proto => 'udp', LocalAddr => '127.0.0.1')
+     or die "$! (maybe your system does not have a localhost at all, 'localhost' or 127.0.0.1)";
+ ok(1);
+ 
+-$udpb = IO::Socket::INET->new(Proto => 'udp', LocalAddr => 'localhost')
++my $udpb = IO::Socket::INET->new(Proto => 'udp', LocalAddr => 'localhost')
+      || IO::Socket::INET->new(Proto => 'udp', LocalAddr => '127.0.0.1')
+     or die "$! (maybe your system does not have a localhost at all, 'localhost' or 127.0.0.1)";
+ ok(1);
+@@ -56,6 +58,7 @@ $udpa->send('BORK', 0, $udpb->sockname);
+ 
+ ok(compare_addr($udpa->peername,$udpb->sockname, 'peername', 'sockname'));
+ 
++my $buf;
+ my $where = $udpb->recv($buf="", 4);
+ is($buf, 'BORK');
+ 
+@@ -69,7 +72,27 @@ $udpb->send('FOObar', @xtra);
+ $udpa->recv($buf="", 6);
+ is($buf, 'FOObar');
+ 
+-ok(! $udpa->connected);
++{
++    # check the TO parameter passed to $sock->send() is honoured for UDP sockets
++    # [perl #133936]
++    my $udpc = IO::Socket::INET->new(Proto => 'udp', LocalAddr => 'localhost')
++      || IO::Socket::INET->new(Proto => 'udp', LocalAddr => '127.0.0.1')
++      or die "$! (maybe your system does not have a localhost at all, 'localhost' or 127.0.0.1)";
++    pass("created C socket");
++
++    ok($udpc->connect($udpa->sockname), "connect C to A");
++
++    ok($udpc->connected, "connected a UDP socket");
++
++    ok($udpc->send("fromctoa"), "send to a");
++
++    ok($udpa->recv($buf = "", 8), "recv it");
++    is($buf, "fromctoa", "check value received");
++
++    ok($udpc->send("fromctob", 0, $udpb->sockname), "send to non-connected socket");
++    ok($udpb->recv($buf = "", 8), "recv it");
++    is($buf, "fromctob", "check value received");
++}
+ 
+ exit(0);
+ 
+-- 
+2.20.1
+
diff --git a/SOURCES/perl-5.31.0-perl-133936-make-send-a-bit-saner.patch b/SOURCES/perl-5.31.0-perl-133936-make-send-a-bit-saner.patch
new file mode 100644
index 0000000..7e6826d
--- /dev/null
+++ b/SOURCES/perl-5.31.0-perl-133936-make-send-a-bit-saner.patch
@@ -0,0 +1,93 @@
+From bc26d2e6b287cc6693f41e1a2d48b0dd77d2e427 Mon Sep 17 00:00:00 2001
+From: Tony Cook <tony@develop-help.com>
+Date: Tue, 18 Jun 2019 14:59:00 +1000
+Subject: [PATCH] (perl #133936) make send() a bit saner
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+This undoes some of the effect of f1000aa2d in that TO will always
+be supplied to CORE::send() if it's supplied, otherwise whether
+TO is supplied to CORE::send() is based on whether the socket is
+connected.
+
+On Linux you appear to be able to sendto() to a different address on
+a connected UDP socket, but this doesn't appear to be portable,
+failing on darwin, and presumably on other BSDs.
+
+Signed-off-by: Petr Písař <ppisar@redhat.com>
+---
+ dist/IO/lib/IO/Socket.pm | 25 +++++++++++++++++--------
+ dist/IO/t/io_udp.t       | 11 ++++++++---
+ 2 files changed, 25 insertions(+), 11 deletions(-)
+
+diff --git a/dist/IO/lib/IO/Socket.pm b/dist/IO/lib/IO/Socket.pm
+index 345ffd475d..28fa1ec149 100644
+--- a/dist/IO/lib/IO/Socket.pm
++++ b/dist/IO/lib/IO/Socket.pm
+@@ -277,13 +277,22 @@ sub send {
+     @_ >= 2 && @_ <= 4 or croak 'usage: $sock->send(BUF, [FLAGS, [TO]])';
+     my $sock  = $_[0];
+     my $flags = $_[2] || 0;
+-    my $peer  = $_[3] || $sock->peername;
++    my $peer;
+ 
+-    croak 'send: Cannot determine peer address'
+-	 unless(defined $peer);
++    if ($_[3]) {
++        # the caller explicitly requested a TO, so use it
++        # this is non-portable for "connected" UDP sockets
++        $peer = $_[3];
++    }
++    elsif (!defined getpeername($sock)) {
++        # we're not connected, so we require a peer from somewhere
++        $peer = $sock->peername;
++
++	croak 'send: Cannot determine peer address'
++	    unless(defined $peer);
++    }
+ 
+-    my $type = $sock->socktype;
+-    my $r = $type == SOCK_DGRAM || $type == SOCK_RAW
++    my $r = $peer
+       ? send($sock, $_[1], $flags, $peer)
+       : send($sock, $_[1], $flags);
+ 
+@@ -526,9 +535,9 @@ C<FLAGS> is optional and defaults to C<0>, and
+ 
+ =item *
+ 
+-after a successful send with C<TO>, further calls to send() without
+-C<TO> will send to the same address, and C<TO> will be used as the
+-result of peername().
++after a successful send with C<TO>, further calls to send() on an
++unconnected socket without C<TO> will send to the same address, and
++C<TO> will be used as the result of peername().
+ 
+ =back
+ 
+diff --git a/dist/IO/t/io_udp.t b/dist/IO/t/io_udp.t
+index 571e4303bb..2adc6a4a69 100644
+--- a/dist/IO/t/io_udp.t
++++ b/dist/IO/t/io_udp.t
+@@ -89,9 +89,14 @@ is($buf, 'FOObar');
+     ok($udpa->recv($buf = "", 8), "recv it");
+     is($buf, "fromctoa", "check value received");
+ 
+-    ok($udpc->send("fromctob", 0, $udpb->sockname), "send to non-connected socket");
+-    ok($udpb->recv($buf = "", 8), "recv it");
+-    is($buf, "fromctob", "check value received");
++  SKIP:
++    {
++        $^O eq "linux"
++	  or skip "This is non-portable, known to 'work' on Linux", 3;
++        ok($udpc->send("fromctob", 0, $udpb->sockname), "send to non-connected socket");
++        ok($udpb->recv($buf = "", 8), "recv it");
++        is($buf, "fromctob", "check value received");
++    }
+ }
+ 
+ exit(0);
+-- 
+2.20.1
+
diff --git a/SOURCES/perl-5.31.0-perl-134008-an-alternative-test.patch b/SOURCES/perl-5.31.0-perl-134008-an-alternative-test.patch
new file mode 100644
index 0000000..7990681
--- /dev/null
+++ b/SOURCES/perl-5.31.0-perl-134008-an-alternative-test.patch
@@ -0,0 +1,28 @@
+From 9dfe0a3438ae69872b71b98e4fb4f4bef084983d Mon Sep 17 00:00:00 2001
+From: Tony Cook <tony@develop-help.com>
+Date: Mon, 3 Jun 2019 14:34:17 +1000
+Subject: [PATCH 2/2] (perl #134008) an alternative test
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Signed-off-by: Petr Písař <ppisar@redhat.com>
+---
+ t/op/sprintf2.t | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/t/op/sprintf2.t b/t/op/sprintf2.t
+index 569bd8053d..84259a4afd 100644
+--- a/t/op/sprintf2.t
++++ b/t/op/sprintf2.t
+@@ -840,6 +840,7 @@ SKIP: {
+ 
+     # [rt.perl.org #134008]
+     is(sprintf("%.*a", -99999, 1.03125), "0x1.08p+0", "[rt.perl.org #134008]");
++    is(sprintf("%.*a", -100000,0), "0x0p+0", "negative precision ignored by format_hexfp");
+ 
+     # [rt.perl.org #128890]
+     is(sprintf("%a", 0x1.18p+0), "0x1.18p+0");
+-- 
+2.20.1
+
diff --git a/SOURCES/perl-5.31.0-perl-134072-allow-foo-bar-to-work-in-main.patch b/SOURCES/perl-5.31.0-perl-134072-allow-foo-bar-to-work-in-main.patch
new file mode 100644
index 0000000..68f0c2d
--- /dev/null
+++ b/SOURCES/perl-5.31.0-perl-134072-allow-foo-bar-to-work-in-main.patch
@@ -0,0 +1,84 @@
+From 40258daf9899686d934c460ba3630431312d7694 Mon Sep 17 00:00:00 2001
+From: Tony Cook <tony@develop-help.com>
+Date: Wed, 15 May 2019 15:59:49 +1000
+Subject: [PATCH] (perl #134072) allow \&foo = \&bar to work in main::
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+subs in main:: are stored as a RV referring to a CV as a space
+optimization, but the pp_refassign code expected to find a glob,
+which made the assignment a no-op.
+
+Fix this by upgrading the reference to a glob in the refassign check
+function.
+
+Note that this would be an issue in other packages if 1e2cfe157ca
+was reverted (allowing the space savings in other packages too.)
+
+Signed-off-by: Petr Písař <ppisar@redhat.com>
+---
+ op.c         |  9 +++++++++
+ t/op/lvref.t | 15 ++++++++++++++-
+ 2 files changed, 23 insertions(+), 1 deletion(-)
+
+diff --git a/op.c b/op.c
+index f63eeadc36..6ad192307f 100644
+--- a/op.c
++++ b/op.c
+@@ -12462,7 +12462,16 @@ Perl_ck_refassign(pTHX_ OP *o)
+ 	OP * const kid = cUNOPx(kidparent)->op_first;
+ 	o->op_private |= OPpLVREF_CV;
+ 	if (kid->op_type == OP_GV) {
++            SV *sv = (SV*)cGVOPx_gv(kid);
+ 	    varop = kidparent;
++            if (SvROK(sv) && SvTYPE(SvRV(sv)) == SVt_PVCV) {
++                /* a CVREF here confuses pp_refassign, so make sure
++                   it gets a GV */
++                CV *const cv = (CV*)SvRV(sv);
++                SV *name_sv = sv_2mortal(newSVhek(CvNAME_HEK(cv)));
++                (void)gv_init_sv((GV*)sv, CvSTASH(cv), name_sv, 0);
++                assert(SvTYPE(sv) == SVt_PVGV);
++            }
+ 	    goto detach_and_stack;
+ 	}
+ 	if (kid->op_type != OP_PADCV)	goto bad;
+diff --git a/t/op/lvref.t b/t/op/lvref.t
+index 3d5e952fb0..3991a53780 100644
+--- a/t/op/lvref.t
++++ b/t/op/lvref.t
+@@ -1,10 +1,11 @@
++#!perl
+ BEGIN {
+     chdir 't';
+     require './test.pl';
+     set_up_inc("../lib");
+ }
+ 
+-plan 164;
++plan 167;
+ 
+ eval '\$x = \$y';
+ like $@, qr/^Experimental aliasing via reference not enabled/,
+@@ -291,6 +292,18 @@ package CodeTest {
+   my sub bs;
+   \(&cs) = expect_list_cx;
+   is \&cs, \&ThatSub, '\(&statesub)';
++
++  package main {
++    # this is only a problem in main:: due to 1e2cfe157ca
++    sub sx { "x" }
++    sub sy { "y" }
++    is sx(), "x", "check original";
++    my $temp = \&sx;
++    \&sx = \&sy;
++    is sx(), "y", "aliased";
++    \&sx = $temp;
++    is sx(), "x", "and restored";
++  }
+ }
+ 
+ # Mixed List Assignments
+-- 
+2.20.1
+
diff --git a/SOURCES/perl-5.31.0-perl-134193-allow-CAPTURE-to-work-when-CAPTURE-comes.patch b/SOURCES/perl-5.31.0-perl-134193-allow-CAPTURE-to-work-when-CAPTURE-comes.patch
new file mode 100644
index 0000000..59b05d2
--- /dev/null
+++ b/SOURCES/perl-5.31.0-perl-134193-allow-CAPTURE-to-work-when-CAPTURE-comes.patch
@@ -0,0 +1,59 @@
+From 22f05786af0b7f963440e47908cd5f35cf074c12 Mon Sep 17 00:00:00 2001
+From: Tony Cook <tony@develop-help.com>
+Date: Thu, 13 Jun 2019 10:05:15 +1000
+Subject: [PATCH] (perl #134193) allow %{^CAPTURE} to work when @{^CAPTURE}
+ comes first
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+gv_magicalize() is called when the GV is created, so when the array
+was mentioned first, the hash wouldn't reach this code and the magic
+wouldn't be added to the hash.
+
+This also fixes a similar problem with (%|@){^CAPTURE_ALL}, though
+@{^CAPTURE_ALL} is unused at this point.
+
+Signed-off-by: Petr Písař <ppisar@redhat.com>
+---
+ ext/Tie-Hash-NamedCapture/t/tiehash.t | 3 +++
+ gv.c                                  | 6 ++----
+ 2 files changed, 5 insertions(+), 4 deletions(-)
+
+diff --git a/ext/Tie-Hash-NamedCapture/t/tiehash.t b/ext/Tie-Hash-NamedCapture/t/tiehash.t
+index 962754085f..cca05278f4 100644
+--- a/ext/Tie-Hash-NamedCapture/t/tiehash.t
++++ b/ext/Tie-Hash-NamedCapture/t/tiehash.t
+@@ -3,6 +3,9 @@ use strict;
+ 
+ use Test::More;
+ 
++# this would break the hash magic setup [perl #134193]
++my ($ca, $c) = ( \@{^CAPTURE_ALL}, \@{^CAPTURE} );
++
+ my %hashes = (
+     '+' => \%+,
+     '-' => \%-,
+diff --git a/gv.c b/gv.c
+index 46a32dcc20..2b83680898 100644
+--- a/gv.c
++++ b/gv.c
+@@ -2032,13 +2032,11 @@ S_gv_magicalize(pTHX_ GV *gv, HV *stash, const char *name, STRLEN len,
+                     sv_magic(MUTABLE_SV(av), (SV*)n, PERL_MAGIC_regdata, NULL, 0);
+                     SvREADONLY_on(av);
+ 
+-                    if (sv_type == SVt_PVHV || sv_type == SVt_PVGV)
+-                        require_tie_mod_s(gv, '-', "Tie::Hash::NamedCapture",0);
++                    require_tie_mod_s(gv, '-', "Tie::Hash::NamedCapture",0);
+ 
+                 } else          /* %{^CAPTURE_ALL} */
+                 if (memEQs(name, len, "\003APTURE_ALL")) {
+-                    if (sv_type == SVt_PVHV || sv_type == SVt_PVGV)
+-                        require_tie_mod_s(gv, '+', "Tie::Hash::NamedCapture",0);
++                    require_tie_mod_s(gv, '+', "Tie::Hash::NamedCapture",0);
+                 }
+ 		break;
+ 	    case '\005':	/* $^ENCODING */
+-- 
+2.20.1
+
diff --git a/SOURCES/perl-5.31.0-perl-134193-make-the-varname-match-the-names.patch b/SOURCES/perl-5.31.0-perl-134193-make-the-varname-match-the-names.patch
new file mode 100644
index 0000000..0c12b6d
--- /dev/null
+++ b/SOURCES/perl-5.31.0-perl-134193-make-the-varname-match-the-names.patch
@@ -0,0 +1,36 @@
+From d8422270033e0728e6a9cecb24cdbd123656e367 Mon Sep 17 00:00:00 2001
+From: Tony Cook <tony@develop-help.com>
+Date: Mon, 17 Jun 2019 11:46:00 +1000
+Subject: [PATCH] (perl #134193) make the varname match the %[+-] names
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+when loading Tie/Hash/NamedCapture.pm for the long name variants
+
+Signed-off-by: Petr Písař <ppisar@redhat.com>
+---
+ gv.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/gv.c b/gv.c
+index 2b83680898..652f5e737d 100644
+--- a/gv.c
++++ b/gv.c
+@@ -2032,11 +2032,11 @@ S_gv_magicalize(pTHX_ GV *gv, HV *stash, const char *name, STRLEN len,
+                     sv_magic(MUTABLE_SV(av), (SV*)n, PERL_MAGIC_regdata, NULL, 0);
+                     SvREADONLY_on(av);
+ 
+-                    require_tie_mod_s(gv, '-', "Tie::Hash::NamedCapture",0);
++                    require_tie_mod_s(gv, '+', "Tie::Hash::NamedCapture",0);
+ 
+                 } else          /* %{^CAPTURE_ALL} */
+                 if (memEQs(name, len, "\003APTURE_ALL")) {
+-                    require_tie_mod_s(gv, '+', "Tie::Hash::NamedCapture",0);
++                    require_tie_mod_s(gv, '-', "Tie::Hash::NamedCapture",0);
+                 }
+ 		break;
+ 	    case '\005':	/* $^ENCODING */
+-- 
+2.20.1
+
diff --git a/SOURCES/perl-5.31.1-avoid-SEGV-with-uninit-warning-with-multideref.patch b/SOURCES/perl-5.31.1-avoid-SEGV-with-uninit-warning-with-multideref.patch
new file mode 100644
index 0000000..e25b547
--- /dev/null
+++ b/SOURCES/perl-5.31.1-avoid-SEGV-with-uninit-warning-with-multideref.patch
@@ -0,0 +1,65 @@
+From 28eabf1185634216ca335b3a24e1131b0f392ca1 Mon Sep 17 00:00:00 2001
+From: David Mitchell <davem@iabyn.com>
+Date: Wed, 10 Jul 2019 12:59:06 +0100
+Subject: [PATCH] avoid SEGV with uninit warning with multideref
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+RT #134275
+
+When the 'uninitialized warning' code in S_find_uninit_var() comes
+across an OP_MULTIDEREF node, it scans it to see if any part of that op
+(e.g. the indices or the returned value) could have been the source of
+the uninitialized value which triggered the warning.  Unfortunately when
+getting an AV or HV from a GV, it wasn't checking whether gp_av/gp_hv
+contained a NULL value. If so, it would SEGV.
+
+The test code is a bit contrived; you have to "pull the rug" from under
+the GV at just the right moment with *foo = *bar, then trigger an uninit
+warning on an op whose subtree includes an OP_MULTIDEREF.
+
+Signed-off-by: Petr Písař <ppisar@redhat.com>
+---
+ sv.c                   |  5 ++++-
+ t/lib/warnings/9uninit | 10 ++++++++++
+ 2 files changed, 14 insertions(+), 1 deletion(-)
+
+diff --git a/sv.c b/sv.c
+index 83de536ad7..4315fe9b64 100644
+--- a/sv.c
++++ b/sv.c
+@@ -16662,8 +16662,11 @@ S_find_uninit_var(pTHX_ const OP *const obase, const SV *const uninit_sv,
+ 
+         if (agg_targ)
+ 	    sv = PAD_SV(agg_targ);
+-        else if (agg_gv)
++        else if (agg_gv) {
+             sv = is_hv ? MUTABLE_SV(GvHV(agg_gv)) : MUTABLE_SV(GvAV(agg_gv));
++            if (!sv)
++                break;
++            }
+         else
+             break;
+ 
+diff --git a/t/lib/warnings/9uninit b/t/lib/warnings/9uninit
+index 774c6ee432..5c173fdb2a 100644
+--- a/t/lib/warnings/9uninit
++++ b/t/lib/warnings/9uninit
+@@ -2206,3 +2206,13 @@ use warnings 'uninitialized';
+ undef $0;
+ EXPECT
+ Use of uninitialized value in undef operator at - line 5.
++########
++# RT #134275
++# This was SEGVing due to the multideref code in S_find_uninit_var not
++# handling a GV with a null gp_hv slot.
++use warnings 'uninitialized';
++"" =~ /$foo{a}${*foo=*bar}$x/;
++EXPECT
++Use of uninitialized value in regexp compilation at - line 5.
++Use of uninitialized value in regexp compilation at - line 5.
++Use of uninitialized value $x in regexp compilation at - line 5.
+-- 
+2.20.1
+
diff --git a/SOURCES/perl-5.31.1-perl-122112-make-sure-SIGPIPE-is-delivered-if-we-tes.patch b/SOURCES/perl-5.31.1-perl-122112-make-sure-SIGPIPE-is-delivered-if-we-tes.patch
new file mode 100644
index 0000000..dd36b03
--- /dev/null
+++ b/SOURCES/perl-5.31.1-perl-122112-make-sure-SIGPIPE-is-delivered-if-we-tes.patch
@@ -0,0 +1,39 @@
+From 293a533c53d9c0fe939e23c439f4dfc47a5736dc Mon Sep 17 00:00:00 2001
+From: Tony Cook <tony@develop-help.com>
+Date: Tue, 25 Jun 2019 15:47:57 +1000
+Subject: [PATCH] (perl #122112) make sure SIGPIPE is delivered if we test it
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Signed-off-by: Petr Písař <ppisar@redhat.com>
+---
+ t/io/pipe.t | 12 ++++++++++++
+ 1 file changed, 12 insertions(+)
+
+diff --git a/t/io/pipe.t b/t/io/pipe.t
+index 9f5bb3bcf8..bdf743c26c 100644
+--- a/t/io/pipe.t
++++ b/t/io/pipe.t
+@@ -125,6 +125,18 @@ wait;				# Collect from $pid
+ pipe(READER,WRITER) || die "Can't open pipe";
+ close READER;
+ 
++eval {
++    # one platform at least appears to block SIGPIPE by default (see #122112)
++    # so make sure it's unblocked.
++    # The eval wrapper should ensure this does nothing if these aren't
++    # implemented.
++    require POSIX;
++    my $mask = POSIX::SigSet->new(POSIX::SIGPIPE());
++    my $old = POSIX::SigSet->new();
++    POSIX::sigprocmask(POSIX::SIG_UNBLOCK(), $mask, $old);
++    note "Yes, SIGPIPE was blocked" if $old->ismember(POSIX::SIGPIPE());
++};
++
+ $SIG{'PIPE'} = 'broken_pipe';
+ 
+ sub broken_pipe {
+-- 
+2.20.1
+
diff --git a/SOURCES/perl-5.31.1-perl-134221-support-O_APPEND-for-open-.-undef-on-VMS.patch b/SOURCES/perl-5.31.1-perl-134221-support-O_APPEND-for-open-.-undef-on-VMS.patch
new file mode 100644
index 0000000..6bed38d
--- /dev/null
+++ b/SOURCES/perl-5.31.1-perl-134221-support-O_APPEND-for-open-.-undef-on-VMS.patch
@@ -0,0 +1,128 @@
+From 74b421cc877e412c4eda06757396a1e19fc756ba Mon Sep 17 00:00:00 2001
+From: Tony Cook <tony@develop-help.com>
+Date: Mon, 15 Jul 2019 11:53:23 +1000
+Subject: [PATCH 3/3] (perl #134221) support O_APPEND for open ..., undef on
+ VMS
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+VMS doesn't allow you to delete an open file like POSIXish systems
+do, but you can mark a file to be deleted once it's closed, but
+only when you open it.
+
+Since VMS doesn't (yet) have mkostemp() we can add our own flag to
+our mkostemp() emulation to pass the necessary magic to open() call
+to delete the file on close.
+
+Signed-off-by: Petr Písař <ppisar@redhat.com>
+---
+ perlio.c | 10 ++++++----
+ util.c   | 15 ++++++++++++++-
+ util.h   | 11 +++++++++++
+ 3 files changed, 31 insertions(+), 5 deletions(-)
+
+diff --git a/perlio.c b/perlio.c
+index 81ebc156ad..805959f840 100644
+--- a/perlio.c
++++ b/perlio.c
+@@ -5062,7 +5062,7 @@ PerlIO_tmpfile_flags(int imode)
+      const int fd = win32_tmpfd_mode(imode);
+      if (fd >= 0)
+ 	  f = PerlIO_fdopen(fd, "w+b");
+-#elif ! defined(VMS) && ! defined(OS2)
++#elif ! defined(OS2)
+      int fd = -1;
+      char tempname[] = "/tmp/PerlIO_XXXXXX";
+      const char * const tmpdir = TAINTING_get ? NULL : PerlEnv_getenv("TMPDIR");
+@@ -5073,19 +5073,19 @@ PerlIO_tmpfile_flags(int imode)
+ 	 /* if TMPDIR is set and not empty, we try that first */
+ 	 sv = newSVpv(tmpdir, 0);
+ 	 sv_catpv(sv, tempname + 4);
+-	 fd = Perl_my_mkostemp_cloexec(SvPVX(sv), imode);
++	 fd = Perl_my_mkostemp_cloexec(SvPVX(sv), imode | O_VMS_DELETEONCLOSE);
+      }
+      if (fd < 0) {
+ 	 SvREFCNT_dec(sv);
+ 	 sv = NULL;
+ 	 /* else we try /tmp */
+-	 fd = Perl_my_mkostemp_cloexec(tempname, imode);
++	 fd = Perl_my_mkostemp_cloexec(tempname, imode | O_VMS_DELETEONCLOSE);
+      }
+      if (fd < 0) {
+          /* Try cwd */
+          sv = newSVpvs(".");
+          sv_catpv(sv, tempname + 4);
+-         fd = Perl_my_mkostemp_cloexec(SvPVX(sv), imode);
++         fd = Perl_my_mkostemp_cloexec(SvPVX(sv), imode | O_VMS_DELETEONCLOSE);
+      }
+      umask(old_umask);
+      if (fd >= 0) {
+@@ -5096,7 +5096,9 @@ PerlIO_tmpfile_flags(int imode)
+          f = PerlIO_fdopen(fd, mode);
+ 	  if (f)
+ 	       PerlIOBase(f)->flags |= PERLIO_F_TEMP;
++#   ifndef VMS
+ 	  PerlLIO_unlink(sv ? SvPVX_const(sv) : tempname);
++#   endif
+      }
+      SvREFCNT_dec(sv);
+ #else	/* !HAS_MKSTEMP, fallback to stdio tmpfile(). */
+diff --git a/util.c b/util.c
+index e6863f6dfe..165d13a39e 100644
+--- a/util.c
++++ b/util.c
+@@ -5712,6 +5712,11 @@ S_my_mkostemp(char *templte, int flags) {
+     STRLEN len = strlen(templte);
+     int fd;
+     int attempts = 0;
++#ifdef VMS
++    int delete_on_close = flags & O_VMS_DELETEONCLOSE;
++
++    flags &= ~O_VMS_DELETEONCLOSE;
++#endif
+ 
+     if (len < 6 ||
+         templte[len-1] != 'X' || templte[len-2] != 'X' || templte[len-3] != 'X' ||
+@@ -5725,7 +5730,15 @@ S_my_mkostemp(char *templte, int flags) {
+         for (i = 1; i <= 6; ++i) {
+             templte[len-i] = TEMP_FILE_CH[(int)(Perl_internal_drand48() * TEMP_FILE_CH_COUNT)];
+         }
+-        fd = PerlLIO_open3(templte, O_RDWR | O_CREAT | O_EXCL | flags, 0600);
++#ifdef VMS
++        if (delete_on_close) {
++            fd = open(templte, O_RDWR | O_CREAT | O_EXCL | flags, 0600, "fop=dlt");
++        }
++        else
++#endif
++        {
++            fd = PerlLIO_open3(templte, O_RDWR | O_CREAT | O_EXCL | flags, 0600);
++        }
+     } while (fd == -1 && errno == EEXIST && ++attempts <= 100);
+ 
+     return fd;
+diff --git a/util.h b/util.h
+index d8fa3e8396..d9df7b39c6 100644
+--- a/util.h
++++ b/util.h
+@@ -248,6 +248,17 @@ means arg not present, 1 is empty string/null byte */
+ int mkstemp(char*);
+ #endif
+ 
++#ifdef PERL_CORE
++#   if defined(VMS)
++/* only useful for calls to our mkostemp() emulation */
++#       define O_VMS_DELETEONCLOSE 0x40000000
++#       ifdef HAS_MKOSTEMP
++#           error 134221 will need a new solution for VMS
++#       endif
++#   else
++#       define O_VMS_DELETEONCLOSE 0
++#   endif
++#endif
+ #if defined(HAS_MKOSTEMP) && defined(PERL_CORE)
+ #   define Perl_my_mkostemp(templte, flags) mkostemp(templte, flags)
+ #endif
+-- 
+2.20.1
+
diff --git a/SOURCES/perl-5.31.1-perl-134221-support-append-mode-temp-files-on-Win32-.patch b/SOURCES/perl-5.31.1-perl-134221-support-append-mode-temp-files-on-Win32-.patch
new file mode 100644
index 0000000..21306c1
--- /dev/null
+++ b/SOURCES/perl-5.31.1-perl-134221-support-append-mode-temp-files-on-Win32-.patch
@@ -0,0 +1,76 @@
+From 0424723402ef153af8ee44222315d9b6a818d1ba Mon Sep 17 00:00:00 2001
+From: Tony Cook <tony@develop-help.com>
+Date: Tue, 2 Jul 2019 15:22:26 +1000
+Subject: [PATCH 2/3] (perl #134221) support append mode temp files on Win32
+ too
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Signed-off-by: Petr Písař <ppisar@redhat.com>
+---
+ perlio.c         |  2 +-
+ win32/win32.c    | 10 +++++++++-
+ win32/win32iop.h |  1 +
+ 3 files changed, 11 insertions(+), 2 deletions(-)
+
+diff --git a/perlio.c b/perlio.c
+index a737e79e02..81ebc156ad 100644
+--- a/perlio.c
++++ b/perlio.c
+@@ -5059,7 +5059,7 @@ PerlIO_tmpfile_flags(int imode)
+ #endif
+      PerlIO *f = NULL;
+ #ifdef WIN32
+-     const int fd = win32_tmpfd();
++     const int fd = win32_tmpfd_mode(imode);
+      if (fd >= 0)
+ 	  f = PerlIO_fdopen(fd, "w+b");
+ #elif ! defined(VMS) && ! defined(OS2)
+diff --git a/win32/win32.c b/win32/win32.c
+index 8104d864c2..91fdffe09b 100644
+--- a/win32/win32.c
++++ b/win32/win32.c
+@@ -2907,10 +2907,18 @@ win32_rewind(FILE *pf)
+ 
+ DllExport int
+ win32_tmpfd(void)
++{
++    return win32_tmpfd_mode(0);
++}
++
++DllExport int
++win32_tmpfd_mode(int mode)
+ {
+     char prefix[MAX_PATH+1];
+     char filename[MAX_PATH+1];
+     DWORD len = GetTempPath(MAX_PATH, prefix);
++    mode &= ~( O_ACCMODE | O_CREAT | O_EXCL );
++    mode |= O_RDWR;
+     if (len && len < MAX_PATH) {
+ 	if (GetTempFileName(prefix, "plx", 0, filename)) {
+ 	    HANDLE fh = CreateFile(filename,
+@@ -2922,7 +2930,7 @@ win32_tmpfd(void)
+ 				   | FILE_FLAG_DELETE_ON_CLOSE,
+ 				   NULL);
+ 	    if (fh != INVALID_HANDLE_VALUE) {
+-		int fd = win32_open_osfhandle((intptr_t)fh, 0);
++		int fd = win32_open_osfhandle((intptr_t)fh, mode);
+ 		if (fd >= 0) {
+ 		    PERL_DEB(dTHX;)
+ 		    DEBUG_p(PerlIO_printf(Perl_debug_log,
+diff --git a/win32/win32iop.h b/win32/win32iop.h
+index 53330e5951..559e1f9cd2 100644
+--- a/win32/win32iop.h
++++ b/win32/win32iop.h
+@@ -64,6 +64,7 @@ DllExport  int		win32_fgetpos(FILE *pf,fpos_t *p);
+ DllExport  int		win32_fsetpos(FILE *pf,const fpos_t *p);
+ DllExport  void		win32_rewind(FILE *pf);
+ DllExport  int		win32_tmpfd(void);
++DllExport  int		win32_tmpfd_mode(int mode);
+ DllExport  FILE*	win32_tmpfile(void);
+ DllExport  void		win32_abort(void);
+ DllExport  int  	win32_fstat(int fd,Stat_t *sbufptr);
+-- 
+2.20.1
+
diff --git a/SOURCES/perl-5.31.2-PerlIO-Via-check-arg-is-non-NULL-before-using-it.patch b/SOURCES/perl-5.31.2-PerlIO-Via-check-arg-is-non-NULL-before-using-it.patch
new file mode 100644
index 0000000..3ded0e2
--- /dev/null
+++ b/SOURCES/perl-5.31.2-PerlIO-Via-check-arg-is-non-NULL-before-using-it.patch
@@ -0,0 +1,38 @@
+From 12e1284a67e5e3404c704c3f864749fd9f04c7c4 Mon Sep 17 00:00:00 2001
+From: Tony Cook <tony@develop-help.com>
+Date: Wed, 7 Aug 2019 14:58:14 +1000
+Subject: [PATCH] PerlIO::Via: check arg is non-NULL before using it.
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+I can't find any code in core that ends up calling the _pushed handler
+with arg == NULL, but PerlIO_push() is API, and there might be
+CPAN or DarkPAN code out there that does, escpecially since there's
+a check for arg being non-NULL further down.
+
+CID 169261.
+
+Signed-off-by: Petr Písař <ppisar@redhat.com>
+---
+ ext/PerlIO-via/via.xs | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/ext/PerlIO-via/via.xs b/ext/PerlIO-via/via.xs
+index d91c6855fc..8456242bc0 100644
+--- a/ext/PerlIO-via/via.xs
++++ b/ext/PerlIO-via/via.xs
+@@ -134,8 +134,8 @@ PerlIOVia_pushed(pTHX_ PerlIO * f, const char *mode, SV * arg,
+ {
+     IV code = PerlIOBase_pushed(aTHX_ f, mode, Nullsv, tab);
+ 
+-    if (SvTYPE(arg) >= SVt_PVMG
+-		&& mg_findext(arg, PERL_MAGIC_ext, &PerlIOVia_tag)) {
++    if (arg && SvTYPE(arg) >= SVt_PVMG
++        && mg_findext(arg, PERL_MAGIC_ext, &PerlIOVia_tag)) {
+ 	return code;
+     }
+ 
+-- 
+2.21.0
+
diff --git a/SOURCES/perl-5.31.2-Run-tests-in-ext-File-Find-t-in-series.patch b/SOURCES/perl-5.31.2-Run-tests-in-ext-File-Find-t-in-series.patch
new file mode 100644
index 0000000..139d3a4
--- /dev/null
+++ b/SOURCES/perl-5.31.2-Run-tests-in-ext-File-Find-t-in-series.patch
@@ -0,0 +1,30 @@
+From 665ac6aded4b9694283d373a0f127f32a3e75b26 Mon Sep 17 00:00:00 2001
+From: James E Keenan <jkeenan@cpan.org>
+Date: Wed, 7 Aug 2019 09:39:56 -0400
+Subject: [PATCH] Run tests in ext/File-Find/t in series
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+For: RT # 133771
+Signed-off-by: Petr Písař <ppisar@redhat.com>
+---
+ t/harness | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/t/harness b/t/harness
+index caa2a318b8..b9857fa022 100644
+--- a/t/harness
++++ b/t/harness
+@@ -189,7 +189,7 @@ if (@ARGV) {
+         # directory containing such files should be tested in serial order.
+         #
+         # Add exceptions to the above rule
+-        for (qw(ext/Pod-Html/t cpan/IO-Zlib/t)) {
++        for (qw(ext/Pod-Html/t cpan/IO-Zlib/t ext/File-Find/t)) {
+             $serials{$_} = 1;
+         }
+ 
+-- 
+2.21.0
+
diff --git a/SOURCES/perl-5.31.2-include-a-trailing-0-in-SVs-holding-trie-info.patch b/SOURCES/perl-5.31.2-include-a-trailing-0-in-SVs-holding-trie-info.patch
new file mode 100644
index 0000000..9291dff
--- /dev/null
+++ b/SOURCES/perl-5.31.2-include-a-trailing-0-in-SVs-holding-trie-info.patch
@@ -0,0 +1,37 @@
+From 1d84a25665013f389ffc6fad7dd133f1c6287a08 Mon Sep 17 00:00:00 2001
+From: David Mitchell <davem@iabyn.com>
+Date: Tue, 6 Aug 2019 14:36:45 +0100
+Subject: [PATCH] include a trailing \0 in SVs holding trie info
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+RT #13427
+
+TRIE_STORE_REVCHAR() was creating SvPV()s with no trailing '\0'. This
+doesn't really matter given the specialised use these are put to, but
+it upset valgrind et al when perl was run with -Drv which printf("%s")'s
+the contents of the string.
+
+Signed-off-by: Petr Písař <ppisar@redhat.com>
+---
+ regcomp.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/regcomp.c b/regcomp.c
+index 370221f72e..1117998fc8 100644
+--- a/regcomp.c
++++ b/regcomp.c
+@@ -2526,7 +2526,8 @@ is the recommended Unicode-aware way of saying
+ 	if (UTF) {							   \
+             SV *zlopp = newSV(UTF8_MAXBYTES);				   \
+ 	    unsigned char *flrbbbbb = (unsigned char *) SvPVX(zlopp);	   \
+-            unsigned const char *const kapow = uvchr_to_utf8(flrbbbbb, val); \
++            unsigned char *const kapow = uvchr_to_utf8(flrbbbbb, val);     \
++            *kapow = '\0';                                                 \
+ 	    SvCUR_set(zlopp, kapow - flrbbbbb);				   \
+ 	    SvPOK_on(zlopp);						   \
+ 	    SvUTF8_on(zlopp);						   \
+-- 
+2.20.1
+
diff --git a/SOURCES/perl-5.31.2-locale.c-Stop-Coverity-warning.patch b/SOURCES/perl-5.31.2-locale.c-Stop-Coverity-warning.patch
new file mode 100644
index 0000000..352f586
--- /dev/null
+++ b/SOURCES/perl-5.31.2-locale.c-Stop-Coverity-warning.patch
@@ -0,0 +1,48 @@
+From 21dce8f4eb9136875a886371016aa25788f5144f Mon Sep 17 00:00:00 2001
+From: Karl Williamson <khw@cpan.org>
+Date: Tue, 6 Aug 2019 21:29:22 -0600
+Subject: [PATCH] locale.c: Stop Coverity warning
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Coverity is right, so re-order these clauses.  This code is executed
+only if some very strange error occurs.
+
+Signed-off-by: Petr Písař <ppisar@redhat.com>
+---
+ locale.c | 11 ++++++-----
+ 1 file changed, 6 insertions(+), 5 deletions(-)
+
+diff --git a/locale.c b/locale.c
+index db83d993de..af7af60038 100644
+--- a/locale.c
++++ b/locale.c
+@@ -4349,11 +4349,6 @@ Perl__mem_collxfrm(pTHX_ const char *input_string,
+     return xbuf;
+ 
+   bad:
+-    Safefree(xbuf);
+-    if (s != input_string) {
+-        Safefree(s);
+-    }
+-    *xlen = 0;
+ 
+ #  ifdef DEBUGGING
+ 
+@@ -4363,6 +4358,12 @@ Perl__mem_collxfrm(pTHX_ const char *input_string,
+ 
+ #  endif
+ 
++    Safefree(xbuf);
++    if (s != input_string) {
++        Safefree(s);
++    }
++    *xlen = 0;
++
+     return NULL;
+ }
+ 
+-- 
+2.20.1
+
diff --git a/SOURCES/perl-5.31.2-perl-134291-propagate-non-PVs-in-in-bare-die.patch b/SOURCES/perl-5.31.2-perl-134291-propagate-non-PVs-in-in-bare-die.patch
new file mode 100644
index 0000000..47fd64c
--- /dev/null
+++ b/SOURCES/perl-5.31.2-perl-134291-propagate-non-PVs-in-in-bare-die.patch
@@ -0,0 +1,54 @@
+From 85d4e0a35b2d44cf06a9343d23a2f84b8ebb9024 Mon Sep 17 00:00:00 2001
+From: Tony Cook <tony@develop-help.com>
+Date: Wed, 17 Jul 2019 11:32:50 +1000
+Subject: [PATCH] (perl #134291) propagate non-PVs in $@ in bare die()
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Signed-off-by: Petr Písař <ppisar@redhat.com>
+---
+ pp_sys.c   | 2 +-
+ t/op/die.t | 6 +++++-
+ 2 files changed, 6 insertions(+), 2 deletions(-)
+
+diff --git a/pp_sys.c b/pp_sys.c
+index 0214367ea6..251527785e 100644
+--- a/pp_sys.c
++++ b/pp_sys.c
+@@ -498,7 +498,7 @@ PP(pp_die)
+ 		}
+ 	    }
+ 	}
+-	else if (SvPOK(errsv) && SvCUR(errsv)) {
++	else if (SvOK(errsv) && (SvPV_nomg(errsv,len), len)) {
+ 	    exsv = sv_mortalcopy(errsv);
+ 	    sv_catpvs(exsv, "\t...propagated");
+ 	}
+diff --git a/t/op/die.t b/t/op/die.t
+index ef2b85f8f5..d6d7daffa5 100644
+--- a/t/op/die.t
++++ b/t/op/die.t
+@@ -6,7 +6,7 @@ BEGIN {
+     set_up_inc('../lib');
+ }
+ 
+-plan tests => 20;
++plan tests => 21;
+ 
+ eval {
+     eval {
+@@ -94,6 +94,10 @@ like($@, qr/\.{3}propagated at/, '... and appends a phrase');
+     local $SIG{__WARN__} = sub { $ok = 0 };
+     eval { undef $@; die };
+     is( $ok, 1, 'no warnings if $@ is undef' );
++
++    eval { $@ = 100; die };
++    like($@."", qr/100\t\.{3}propagated at/,
++         'check non-PVs in $@ are propagated');
+ }
+ 
+ TODO: {
+-- 
+2.20.1
+
diff --git a/SOURCES/perl-5.31.2-perlapi-5.30-promise-not-met-change-to-5.32.patch b/SOURCES/perl-5.31.2-perlapi-5.30-promise-not-met-change-to-5.32.patch
new file mode 100644
index 0000000..60d2d7d
--- /dev/null
+++ b/SOURCES/perl-5.31.2-perlapi-5.30-promise-not-met-change-to-5.32.patch
@@ -0,0 +1,118 @@
+From 8b4b30c5d389983c3df51b7ff3b38e5608c7c2e2 Mon Sep 17 00:00:00 2001
+From: Karl Williamson <khw@cpan.org>
+Date: Sat, 3 Aug 2019 09:17:43 -0600
+Subject: [PATCH] perlapi: 5.30 promise not met; change to 5.32
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+We delayed this change, but I forgot to change this documentation
+
+Signed-off-by: Petr Písař <ppisar@redhat.com>
+---
+ handy.h | 24 ++++++++++++------------
+ 1 file changed, 12 insertions(+), 12 deletions(-)
+
+diff --git a/handy.h b/handy.h
+index 24c028a638..2dfbc86125 100644
+--- a/handy.h
++++ b/handy.h
+@@ -609,13 +609,13 @@ future releases.
+ Variant C<isI<FOO>_utf8> is like C<isI<FOO>_utf8_safe>, but takes just a single
+ parameter, C<p>, which has the same meaning as the corresponding parameter does
+ in C<isI<FOO>_utf8_safe>.  The function therefore can't check if it is reading
+-beyond the end of the string.  Starting in Perl v5.30, it will take a second
++beyond the end of the string.  Starting in Perl v5.32, it will take a second
+ parameter, becoming a synonym for C<isI<FOO>_utf8_safe>.  At that time every
+ program that uses it will have to be changed to successfully compile.  In the
+ meantime, the first runtime call to C<isI<FOO>_utf8> from each call point in the
+ program will raise a deprecation warning, enabled by default.  You can convert
+ your program now to use C<isI<FOO>_utf8_safe>, and avoid the warnings, and get an
+-extra measure of protection, or you can wait until v5.30, when you'll be forced
++extra measure of protection, or you can wait until v5.32, when you'll be forced
+ to add the C<e> parameter.
+ 
+ Variant C<isI<FOO>_LC> is like the C<isI<FOO>_A> and C<isI<FOO>_L1> variants, but the
+@@ -649,13 +649,13 @@ future releases.
+ Variant C<isI<FOO>_LC_utf8> is like C<isI<FOO>_LC_utf8_safe>, but takes just a single
+ parameter, C<p>, which has the same meaning as the corresponding parameter does
+ in C<isI<FOO>_LC_utf8_safe>.  The function therefore can't check if it is reading
+-beyond the end of the string.  Starting in Perl v5.30, it will take a second
++beyond the end of the string.  Starting in Perl v5.32, it will take a second
+ parameter, becoming a synonym for C<isI<FOO>_LC_utf8_safe>.  At that time every
+ program that uses it will have to be changed to successfully compile.  In the
+ meantime, the first runtime call to C<isI<FOO>_LC_utf8> from each call point in
+ the program will raise a deprecation warning, enabled by default.  You can
+ convert your program now to use C<isI<FOO>_LC_utf8_safe>, and avoid the warnings,
+-and get an extra measure of protection, or you can wait until v5.30, when
++and get an extra measure of protection, or you can wait until v5.32, when
+ you'll be forced to add the C<e> parameter.
+ 
+ =for apidoc Am|bool|isALPHA|char ch
+@@ -897,13 +897,13 @@ implementation, and subject to change in future releases.
+ =for apidoc Am|UV|toUPPER_utf8|U8* p|U8* s|STRLEN* lenp
+ This is like C<L</toUPPER_utf8_safe>>, but doesn't have the C<e>
+ parameter  The function therefore can't check if it is reading
+-beyond the end of the string.  Starting in Perl v5.30, it will take the C<e>
++beyond the end of the string.  Starting in Perl v5.32, it will take the C<e>
+ parameter, becoming a synonym for C<toUPPER_utf8_safe>.  At that time every
+ program that uses it will have to be changed to successfully compile.  In the
+ meantime, the first runtime call to C<toUPPER_utf8> from each call point in the
+ program will raise a deprecation warning, enabled by default.  You can convert
+ your program now to use C<toUPPER_utf8_safe>, and avoid the warnings, and get an
+-extra measure of protection, or you can wait until v5.30, when you'll be forced
++extra measure of protection, or you can wait until v5.32, when you'll be forced
+ to add the C<e> parameter.
+ 
+ =for apidoc Am|U8|toFOLD|U8 ch
+@@ -944,13 +944,13 @@ implementation, and subject to change in future releases.
+ =for apidoc Am|UV|toFOLD_utf8|U8* p|U8* s|STRLEN* lenp
+ This is like C<L</toFOLD_utf8_safe>>, but doesn't have the C<e>
+ parameter  The function therefore can't check if it is reading
+-beyond the end of the string.  Starting in Perl v5.30, it will take the C<e>
++beyond the end of the string.  Starting in Perl v5.32, it will take the C<e>
+ parameter, becoming a synonym for C<toFOLD_utf8_safe>.  At that time every
+ program that uses it will have to be changed to successfully compile.  In the
+ meantime, the first runtime call to C<toFOLD_utf8> from each call point in the
+ program will raise a deprecation warning, enabled by default.  You can convert
+ your program now to use C<toFOLD_utf8_safe>, and avoid the warnings, and get an
+-extra measure of protection, or you can wait until v5.30, when you'll be forced
++extra measure of protection, or you can wait until v5.32, when you'll be forced
+ to add the C<e> parameter.
+ 
+ =for apidoc Am|U8|toLOWER|U8 ch
+@@ -999,13 +999,13 @@ implementation, and subject to change in future releases.
+ =for apidoc Am|UV|toLOWER_utf8|U8* p|U8* s|STRLEN* lenp
+ This is like C<L</toLOWER_utf8_safe>>, but doesn't have the C<e>
+ parameter  The function therefore can't check if it is reading
+-beyond the end of the string.  Starting in Perl v5.30, it will take the C<e>
++beyond the end of the string.  Starting in Perl v5.32, it will take the C<e>
+ parameter, becoming a synonym for C<toLOWER_utf8_safe>.  At that time every
+ program that uses it will have to be changed to successfully compile.  In the
+ meantime, the first runtime call to C<toLOWER_utf8> from each call point in the
+ program will raise a deprecation warning, enabled by default.  You can convert
+ your program now to use C<toLOWER_utf8_safe>, and avoid the warnings, and get an
+-extra measure of protection, or you can wait until v5.30, when you'll be forced
++extra measure of protection, or you can wait until v5.32, when you'll be forced
+ to add the C<e> parameter.
+ 
+ =for apidoc Am|U8|toTITLE|U8 ch
+@@ -1047,13 +1047,13 @@ implementation, and subject to change in future releases.
+ =for apidoc Am|UV|toTITLE_utf8|U8* p|U8* s|STRLEN* lenp
+ This is like C<L</toLOWER_utf8_safe>>, but doesn't have the C<e>
+ parameter  The function therefore can't check if it is reading
+-beyond the end of the string.  Starting in Perl v5.30, it will take the C<e>
++beyond the end of the string.  Starting in Perl v5.32, it will take the C<e>
+ parameter, becoming a synonym for C<toTITLE_utf8_safe>.  At that time every
+ program that uses it will have to be changed to successfully compile.  In the
+ meantime, the first runtime call to C<toTITLE_utf8> from each call point in the
+ program will raise a deprecation warning, enabled by default.  You can convert
+ your program now to use C<toTITLE_utf8_safe>, and avoid the warnings, and get an
+-extra measure of protection, or you can wait until v5.30, when you'll be forced
++extra measure of protection, or you can wait until v5.32, when you'll be forced
+ to add the C<e> parameter.
+ 
+ =cut
+-- 
+2.21.0
+
diff --git a/SOURCES/perl-5.31.2-regcomp.c-Don-t-read-off-the-end-of-buffer.patch b/SOURCES/perl-5.31.2-regcomp.c-Don-t-read-off-the-end-of-buffer.patch
new file mode 100644
index 0000000..ff5d596
--- /dev/null
+++ b/SOURCES/perl-5.31.2-regcomp.c-Don-t-read-off-the-end-of-buffer.patch
@@ -0,0 +1,36 @@
+From 31532982b04c20a43aa9c3d26780e3591c524fbc Mon Sep 17 00:00:00 2001
+From: Karl Williamson <khw@cpan.org>
+Date: Thu, 27 Jun 2019 15:39:11 -0600
+Subject: [PATCH] regcomp.c: Don't read off the end of buffer
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Until this commit, it was possible that \p{nv=3/} would cause the right
+brace to be considered part of the property name.
+
+Spotted by Hugo van der Sanden
+
+Signed-off-by: Petr Písař <ppisar@redhat.com>
+---
+ regcomp.c | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/regcomp.c b/regcomp.c
+index 1117998fc8..cf9246473f 100644
+--- a/regcomp.c
++++ b/regcomp.c
+@@ -23092,7 +23092,9 @@ Perl_parse_uniprop_string(pTHX_
+             }
+ 
+             /* Store the first real character in the denominator */
+-            lookup_name[j++] = name[i];
++            if (i < name_len) {
++                lookup_name[j++] = name[i];
++            }
+         }
+     }
+ 
+-- 
+2.21.0
+
diff --git a/SOURCES/perl-5.31.3-Configure-Include-stdlib.h-in-futimes-check.patch b/SOURCES/perl-5.31.3-Configure-Include-stdlib.h-in-futimes-check.patch
new file mode 100644
index 0000000..0ceb4e0
--- /dev/null
+++ b/SOURCES/perl-5.31.3-Configure-Include-stdlib.h-in-futimes-check.patch
@@ -0,0 +1,30 @@
+From 425077e4b85509df2907be6c103d54c0687c7647 Mon Sep 17 00:00:00 2001
+From: Florian Weimer <fweimer@redhat.com>
+Date: Mon, 9 Sep 2019 19:35:47 +0200
+Subject: [PATCH 1/2] Configure: Include <stdlib.h> in futimes check
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Needed for the exit function.
+
+Signed-off-by: Petr Písař <ppisar@redhat.com>
+---
+ Configure | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/Configure b/Configure
+index 818deb8378..7aa03d6aed 100755
+--- a/Configure
++++ b/Configure
+@@ -14091,6 +14091,7 @@ $cat >try.c <<EOCP
+ #include <sys/time.h>
+ #include <errno.h>
+ #include <fcntl.h>
++#include <stdlib.h>
+ 
+ int main ()
+ {
+-- 
+2.21.0
+
diff --git a/SOURCES/perl-5.31.3-Florian-Weimer-is-now-a-perl-author.patch b/SOURCES/perl-5.31.3-Florian-Weimer-is-now-a-perl-author.patch
new file mode 100644
index 0000000..e213e5e
--- /dev/null
+++ b/SOURCES/perl-5.31.3-Florian-Weimer-is-now-a-perl-author.patch
@@ -0,0 +1,28 @@
+From da006e4432402cea01c9018743467314377e3c1e Mon Sep 17 00:00:00 2001
+From: Tony Cook <tony@develop-help.com>
+Date: Tue, 10 Sep 2019 10:44:10 +1000
+Subject: [PATCH 2/2] Florian Weimer is now a perl author
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Signed-off-by: Petr Písař <ppisar@redhat.com>
+---
+ AUTHORS | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/AUTHORS b/AUTHORS
+index a2b6d8c15a..a554cfc045 100644
+--- a/AUTHORS
++++ b/AUTHORS
+@@ -418,6 +418,7 @@ Fergal Daly			<fergal@esatclear.ie>
+ Fingle Nark			<finglenark@gmail.com>
+ Florent Guillaume
+ Florian Ragwitz			<rafl@debian.org>
++Florian Weimer			<fweimer@redhat.com>
+ François Désarménien		<desar@club-internet.fr>
+ François Perrad			<francois.perrad@gadz.org>
+ Frank Crawford
+-- 
+2.21.0
+
diff --git a/SOURCES/perl-5.31.3-Supply-missing-right-brace-in-regex-example.patch b/SOURCES/perl-5.31.3-Supply-missing-right-brace-in-regex-example.patch
new file mode 100644
index 0000000..8a320d5
--- /dev/null
+++ b/SOURCES/perl-5.31.3-Supply-missing-right-brace-in-regex-example.patch
@@ -0,0 +1,31 @@
+From 7ea7c4bb61d23965a7ad7041fe9c58b5075aac85 Mon Sep 17 00:00:00 2001
+From: James E Keenan <jkeenan@cpan.org>
+Date: Sat, 31 Aug 2019 19:18:36 -0400
+Subject: [PATCH] Supply missing right brace in regex example
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+As suggested by Jim Avera in RT 134395.
+
+Signed-off-by: Petr Písař <ppisar@redhat.com>
+---
+ pod/perlrebackslash.pod | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/pod/perlrebackslash.pod b/pod/perlrebackslash.pod
+index cfd182a7e1..4a8717346d 100644
+--- a/pod/perlrebackslash.pod
++++ b/pod/perlrebackslash.pod
+@@ -446,7 +446,7 @@ Mnemonic: I<g>roup.
+ =head3 Relative referencing
+ 
+ C<\g-I<N>> (starting in Perl 5.10.0) is used for relative addressing.  (It can
+-be written as C<\g{-I<N>>.)  It refers to the I<N>th group before the
++be written as C<\g{-I<N>}>.)  It refers to the I<N>th group before the
+ C<\g{-I<N>}>.
+ 
+ The big advantage of this form is that it makes it much easier to write
+-- 
+2.21.0
+
diff --git a/SOURCES/perl-5.31.3-perl-134230-don-t-interpret-0x-0b-when-numifying-str.patch b/SOURCES/perl-5.31.3-perl-134230-don-t-interpret-0x-0b-when-numifying-str.patch
new file mode 100644
index 0000000..b7cd756
--- /dev/null
+++ b/SOURCES/perl-5.31.3-perl-134230-don-t-interpret-0x-0b-when-numifying-str.patch
@@ -0,0 +1,57 @@
+From 14d26b44a1d7eee67837ec0ea8fb0368ac6fe33e Mon Sep 17 00:00:00 2001
+From: Tony Cook <tony@develop-help.com>
+Date: Tue, 20 Aug 2019 15:43:05 +1000
+Subject: [PATCH] (perl #134230) don't interpret 0x, 0b when numifying strings
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Signed-off-by: Petr Písař <ppisar@redhat.com>
+---
+ numeric.c  | 9 +++++++++
+ t/op/int.t | 5 ++++-
+ 2 files changed, 13 insertions(+), 1 deletion(-)
+
+diff --git a/numeric.c b/numeric.c
+index f5eadc8173..fae2eb3c6d 100644
+--- a/numeric.c
++++ b/numeric.c
+@@ -1551,6 +1551,15 @@ Perl_my_atof3(pTHX_ const char* orig, NV* value, const STRLEN len)
+         if ((endp = S_my_atof_infnan(aTHX_ s, negative, send, value)))
+             return endp;
+ 
++        /* strtold() accepts 0x-prefixed hex and in POSIX implementations,
++           0b-prefixed binary numbers, which is backward incompatible
++        */
++        if ((len == 0 || len >= 2) && *s == '0' &&
++            (isALPHA_FOLD_EQ(s[1], 'x') || isALPHA_FOLD_EQ(s[1], 'b'))) {
++            *value = 0;
++            return (char *)s+1;
++        }
++
+         /* If the length is passed in, the input string isn't NUL-terminated,
+          * and in it turns out the function below assumes it is; therefore we
+          * create a copy and NUL-terminate that */
+diff --git a/t/op/int.t b/t/op/int.t
+index 7e936da68d..b730ab2672 100644
+--- a/t/op/int.t
++++ b/t/op/int.t
+@@ -7,7 +7,7 @@ BEGIN {
+     require Config;
+ }
+ 
+-plan 17;
++plan 19;
+ 
+ # compile time evaluation
+ 
+@@ -83,3 +83,6 @@ SKIP:
+         cmp_ok($x, "==", int($x), "check $x == int($x)");
+     }
+ }
++
++is(1+"0x10", 1, "check string '0x' prefix not treated as hex");
++is(1+"0b10", 1, "check string '0b' prefix not treated as binary");
+-- 
+2.21.0
+
diff --git a/SOURCES/perl-5.31.3-regcomp.c-Fix-wrong-limit-test.patch b/SOURCES/perl-5.31.3-regcomp.c-Fix-wrong-limit-test.patch
new file mode 100644
index 0000000..6d6b5d0
--- /dev/null
+++ b/SOURCES/perl-5.31.3-regcomp.c-Fix-wrong-limit-test.patch
@@ -0,0 +1,31 @@
+From 8d3e0237887e7149be56d17a9448cb465edc5f76 Mon Sep 17 00:00:00 2001
+From: Karl Williamson <khw@cpan.org>
+Date: Thu, 22 Aug 2019 10:16:14 -0600
+Subject: [PATCH] regcomp.c: Fix wrong limit test
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Spotted by Hugo van der Sanden in code reading.
+
+Signed-off-by: Petr Písař <ppisar@redhat.com>
+---
+ regcomp.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/regcomp.c b/regcomp.c
+index aba6648da5..d61fd434fe 100644
+--- a/regcomp.c
++++ b/regcomp.c
+@@ -23132,7 +23132,7 @@ Perl_parse_uniprop_string(pTHX_
+ 
+     /* If the original input began with 'In' or 'Is', it could be a subroutine
+      * call to a user-defined property instead of a Unicode property name. */
+-    if (    non_pkg_begin + name_len > 2
++    if (    name_len - non_pkg_begin > 2
+         &&  name[non_pkg_begin+0] == 'I'
+         && (name[non_pkg_begin+1] == 'n' || name[non_pkg_begin+1] == 's'))
+     {
+-- 
+2.21.0
+
diff --git a/SOURCES/perl-5.31.4-Handle-undefined-values-correctly.patch b/SOURCES/perl-5.31.4-Handle-undefined-values-correctly.patch
new file mode 100644
index 0000000..e5a60cf
--- /dev/null
+++ b/SOURCES/perl-5.31.4-Handle-undefined-values-correctly.patch
@@ -0,0 +1,237 @@
+From 01aed385e6bdbdcfd13bb66e9d8b7c55d2cfc34a Mon Sep 17 00:00:00 2001
+From: James E Keenan <jkeenan@cpan.org>
+Date: Thu, 19 Sep 2019 23:02:54 -0400
+Subject: [PATCH] Handle undefined values correctly
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+As reported by Henrik Pauli in RT 134441, the documentation's claim that
+
+        $dv->dumpValue([$x, $y]);
+
+and
+
+        $dv->dumpValues($x, $y);
+
+was not being sustained in the case where one of the elements in the
+array (or array ref) was undefined.  This was due to an insufficiently
+precise specification within the dumpValues() method for determining
+when the value "undef\n" should be printed.
+
+Tests for previously untested cases have been provided in
+t/rt-134441-dumpvalue.t.  They were not appended to t/Dumpvalue.t (as
+would normally have been the case) because the tests in that file have
+accreted over the years in a sub-optimal manner:  changes in attributes
+of the Dumpvalue object are tested but those changes are not zeroed-out
+(by, e.g., use of 'local $self->{attribute} = undef')
+before additional attributes are modified and tested.  As a consequence,
+it's difficult to determine the state of the Dumpvalue object at any
+particular point and interactions between attributes cannot be ruled
+out.
+
+Package TieOut, used to capture STDOUT during testing, has been
+extracted to its own file so that it can be used by all test files.
+
+Signed-off-by: Petr Písař <ppisar@redhat.com>
+---
+ MANIFEST                               |  2 +
+ dist/Dumpvalue/lib/Dumpvalue.pm        |  4 +-
+ dist/Dumpvalue/t/Dumpvalue.t           | 20 +-----
+ dist/Dumpvalue/t/lib/TieOut.pm         | 20 ++++++
+ dist/Dumpvalue/t/rt-134441-dumpvalue.t | 86 ++++++++++++++++++++++++++
+ 5 files changed, 112 insertions(+), 20 deletions(-)
+ create mode 100644 dist/Dumpvalue/t/lib/TieOut.pm
+ create mode 100644 dist/Dumpvalue/t/rt-134441-dumpvalue.t
+
+diff --git a/MANIFEST b/MANIFEST
+index 7bf62d8479..8159ac8cc1 100644
+--- a/MANIFEST
++++ b/MANIFEST
+@@ -3455,6 +3455,8 @@ dist/Devel-SelfStubber/lib/Devel/SelfStubber.pm	Generate stubs for SelfLoader.pm
+ dist/Devel-SelfStubber/t/Devel-SelfStubber.t	See if Devel::SelfStubber works
+ dist/Dumpvalue/lib/Dumpvalue.pm	Screen dump of perl values
+ dist/Dumpvalue/t/Dumpvalue.t	See if Dumpvalue works
++dist/Dumpvalue/t/lib/TieOut.pm	Helper module for Dumpvalue tests
++dist/Dumpvalue/t/rt-134441-dumpvalue.t	See if Dumpvalue works
+ dist/encoding-warnings/lib/encoding/warnings.pm	warn on implicit encoding conversions
+ dist/encoding-warnings/t/1-warning.t	tests for encoding::warnings
+ dist/encoding-warnings/t/2-fatal.t	tests for encoding::warnings
+diff --git a/dist/Dumpvalue/lib/Dumpvalue.pm b/dist/Dumpvalue/lib/Dumpvalue.pm
+index eef9b27157..3faf829538 100644
+--- a/dist/Dumpvalue/lib/Dumpvalue.pm
++++ b/dist/Dumpvalue/lib/Dumpvalue.pm
+@@ -1,7 +1,7 @@
+ use 5.006_001;			# for (defined ref) and $#$v and our
+ package Dumpvalue;
+ use strict;
+-our $VERSION = '1.18';
++our $VERSION = '1.19';
+ our(%address, $stab, @stab, %stab, %subs);
+ 
+ sub ASCII { return ord('A') == 65; }
+@@ -79,7 +79,7 @@ sub dumpValues {
+   my $self = shift;
+   local %address;
+   local $^W=0;
+-  (print "undef\n"), return unless defined $_[0];
++  (print "undef\n"), return if (@_ == 1 and not defined $_[0]);
+   $self->unwrap(\@_,0);
+ }
+ 
+diff --git a/dist/Dumpvalue/t/Dumpvalue.t b/dist/Dumpvalue/t/Dumpvalue.t
+index 7063dd984c..ba8775126e 100644
+--- a/dist/Dumpvalue/t/Dumpvalue.t
++++ b/dist/Dumpvalue/t/Dumpvalue.t
+@@ -16,6 +16,8 @@ BEGIN {
+ 
+ our ( $foo, @bar, %baz );
+ 
++use lib ("./t/lib");
++use TieOut;
+ use Test::More tests => 88;
+ 
+ use_ok( 'Dumpvalue' );
+@@ -278,21 +280,3 @@ is( $out->read, "0  0..0  'two'\n", 'dumpValues worked on array ref' );
+ $d->dumpValues('one', 'two');
+ is( $out->read, "0..1  'one' 'two'\n", 'dumpValues worked on multiple values' );
+ 
+-
+-package TieOut;
+-use overload '"' => sub { "overloaded!" };
+-
+-sub TIEHANDLE {
+-	my $class = shift;
+-	bless(\( my $ref), $class);
+-}
+-
+-sub PRINT {
+-	my $self = shift;
+-	$$self .= join('', @_);
+-}
+-
+-sub read {
+-	my $self = shift;
+-	return substr($$self, 0, length($$self), '');
+-}
+diff --git a/dist/Dumpvalue/t/lib/TieOut.pm b/dist/Dumpvalue/t/lib/TieOut.pm
+new file mode 100644
+index 0000000000..568caedf9c
+--- /dev/null
++++ b/dist/Dumpvalue/t/lib/TieOut.pm
+@@ -0,0 +1,20 @@
++package TieOut;
++use overload '"' => sub { "overloaded!" };
++
++sub TIEHANDLE {
++	my $class = shift;
++	bless(\( my $ref), $class);
++}
++
++sub PRINT {
++	my $self = shift;
++	$$self .= join('', @_);
++}
++
++sub read {
++	my $self = shift;
++	return substr($$self, 0, length($$self), '');
++}
++
++1;
++
+diff --git a/dist/Dumpvalue/t/rt-134441-dumpvalue.t b/dist/Dumpvalue/t/rt-134441-dumpvalue.t
+new file mode 100644
+index 0000000000..cc9f270f5a
+--- /dev/null
++++ b/dist/Dumpvalue/t/rt-134441-dumpvalue.t
+@@ -0,0 +1,86 @@
++BEGIN {
++	require Config;
++	if (($Config::Config{'extensions'} !~ m!\bList/Util\b!) ){
++	    print "1..0 # Skip -- Perl configured without List::Util module\n";
++	    exit 0;
++	}
++
++	# `make test` in the CPAN version of this module runs us with -w, but
++	# Dumpvalue.pm relies on all sorts of things that can cause warnings. I
++	# don't think that's worth fixing, so we just turn off all warnings
++	# during testing.
++	$^W = 0;
++}
++
++use lib ("./t/lib");
++use TieOut;
++use Test::More tests => 17;
++
++use_ok( 'Dumpvalue' );
++
++my $d;
++ok( $d = Dumpvalue->new(), 'create a new Dumpvalue object' );
++
++my $out = tie *OUT, 'TieOut';
++select(OUT);
++
++my (@foobar, $x, $y);
++
++@foobar = ('foo', 'bar');
++$d->dumpValue([@foobar]);
++$x = $out->read;
++is( $x, "0  'foo'\n1  'bar'\n", 'dumpValue worked on array ref' );
++$d->dumpValues(@foobar);
++$y = $out->read;
++is( $y, "0  'foo'\n1  'bar'\n", 'dumpValues worked on array' );
++is( $y, $x,
++    "dumpValues called on array returns same as dumpValue on array ref");
++
++@foobar = (undef, 'bar');
++$d->dumpValue([@foobar]);
++$x = $out->read;
++is( $x, "0  undef\n1  'bar'\n",
++    'dumpValue worked on array ref, first element undefined' );
++$d->dumpValues(@foobar);
++$y = $out->read;
++is( $y, "0  undef\n1  'bar'\n",
++    'dumpValues worked on array, first element undefined' );
++is( $y, $x,
++    "dumpValues called on array returns same as dumpValue on array ref, first element undefined");
++
++@foobar = ('bar', undef);
++$d->dumpValue([@foobar]);
++$x = $out->read;
++is( $x, "0  'bar'\n1  undef\n",
++    'dumpValue worked on array ref, last element undefined' );
++$d->dumpValues(@foobar);
++$y = $out->read;
++is( $y, "0  'bar'\n1  undef\n",
++    'dumpValues worked on array, last element undefined' );
++is( $y, $x,
++    "dumpValues called on array returns same as dumpValue on array ref, last element undefined");
++
++@foobar = ('', 'bar');
++$d->dumpValue([@foobar]);
++$x = $out->read;
++is( $x, "0  ''\n1  'bar'\n",
++    'dumpValue worked on array ref, first element empty string' );
++$d->dumpValues(@foobar);
++$y = $out->read;
++is( $y, "0  ''\n1  'bar'\n",
++    'dumpValues worked on array, first element empty string' );
++is( $y, $x,
++    "dumpValues called on array returns same as dumpValue on array ref, first element empty string");
++
++@foobar = ('bar', '');
++$d->dumpValue([@foobar]);
++$x = $out->read;
++is( $x, "0  'bar'\n1  ''\n",
++    'dumpValue worked on array ref, last element empty string' );
++$d->dumpValues(@foobar);
++$y = $out->read;
++is( $y, "0  'bar'\n1  ''\n",
++    'dumpValues worked on array, last element empty string' );
++is( $y, $x,
++    "dumpValues called on array returns same as dumpValue on array ref, last element empty string");
++
+-- 
+2.21.0
+
diff --git a/SOURCES/perl-5.31.5-Adapt-Configure-to-GCC-version-10.patch b/SOURCES/perl-5.31.5-Adapt-Configure-to-GCC-version-10.patch
new file mode 100644
index 0000000..f9edd84
--- /dev/null
+++ b/SOURCES/perl-5.31.5-Adapt-Configure-to-GCC-version-10.patch
@@ -0,0 +1,109 @@
+From 913582217c96512015fd60f270f0e262824579b7 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= <ppisar@redhat.com>
+Date: Tue, 12 Nov 2019 09:19:18 +0100
+Subject: [PATCH] Adapt Configure to GCC version 10
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+I got a notice from Jeff Law <law@redhat.com>:
+
+    Your particular package fails its testsuite. This was ultimately
+    tracked down to a Configure problem. The perl configure script treated
+    gcc-10 as gcc-1 and turned on -fpcc-struct-return. This is an ABI
+    changing flag and caused Perl to not be able to interact properly with
+    the dbm libraries on the system leading to a segfault.
+
+His proposed patch corrected only this one instance of the version
+mismatch. Reading the Configure script revealed more issues. This
+patch fixes all of them I found.
+
+Please note I did not test it because I don't have GCC 10 available.
+
+Signed-off-by: Petr Písař <ppisar@redhat.com>
+---
+ Configure | 14 +++++++-------
+ cflags.SH |  2 +-
+ 2 files changed, 8 insertions(+), 8 deletions(-)
+
+diff --git a/Configure b/Configure
+index fad1c9f2b1..706c0b64ed 100755
+--- a/Configure
++++ b/Configure
+@@ -4701,7 +4701,7 @@ else
+ fi
+ $rm -f try try.*
+ case "$gccversion" in
+-1*) cpp=`./loc gcc-cpp $cpp $pth` ;;
++1.*) cpp=`./loc gcc-cpp $cpp $pth` ;;
+ esac
+ case "$gccversion" in
+ '') gccosandvers='' ;;
+@@ -4741,7 +4741,7 @@ esac
+ # gcc 3.* complain about adding -Idirectories that they already know about,
+ # so we will take those off from locincpth.
+ case "$gccversion" in
+-3*)
++3.*)
+     echo "main(){}">try.c
+     for incdir in $locincpth; do
+        warn=`$cc $ccflags -I$incdir -c try.c 2>&1 | \
+@@ -5467,13 +5467,13 @@ fi
+ case "$hint" in
+ default|recommended)
+ 	case "$gccversion" in
+-	1*) dflt="$dflt -fpcc-struct-return" ;;
++	1.*) dflt="$dflt -fpcc-struct-return" ;;
+ 	esac
+ 	case "$optimize:$DEBUGGING" in
+ 	*-g*:old) dflt="$dflt -DDEBUGGING";;
+ 	esac
+ 	case "$gccversion" in
+-	2*) if $test -d /etc/conf/kconfig.d &&
++	2.*) if $test -d /etc/conf/kconfig.d &&
+ 			$contains _POSIX_VERSION $usrinc/sys/unistd.h >/dev/null 2>&1
+ 		then
+ 			# Interactive Systems (ISC) POSIX mode.
+@@ -5482,7 +5482,7 @@ default|recommended)
+ 		;;
+ 	esac
+ 	case "$gccversion" in
+-	1*) ;;
++	1.*) ;;
+ 	2.[0-8]*) ;;
+ 	?*)	set strict-aliasing -fno-strict-aliasing
+ 		eval $checkccflag
+@@ -5600,7 +5600,7 @@ case "$cppflags" in
+     ;;
+ esac
+ case "$gccversion" in
+-1*) cppflags="$cppflags -D__GNUC__"
++1.*) cppflags="$cppflags -D__GNUC__"
+ esac
+ case "$mips_type" in
+ '');;
+@@ -23103,7 +23103,7 @@ fi
+ 
+ : add -D_FORTIFY_SOURCE if feasible and not already there
+ case "$gccversion" in
+-[456789].*)	case "$optimize$ccflags" in
++[456789].*|[1-9][0-9]*)	case "$optimize$ccflags" in
+ 	*-O*)	case "$ccflags$cppsymbols" in
+ 		*_FORTIFY_SOURCE=*) # Don't add it again.
+ 			echo "You seem to have -D_FORTIFY_SOURCE already, not adding it." >&4
+diff --git a/cflags.SH b/cflags.SH
+index e60742fed1..f1bcd6c38e 100755
+--- a/cflags.SH
++++ b/cflags.SH
+@@ -156,7 +156,7 @@ esac
+ 
+ case "$gccversion" in
+ '') ;;
+-[12]*) ;; # gcc versions 1 (gasp!) and 2 are not good for this.
++[12].*) ;; # gcc versions 1 (gasp!) and 2 are not good for this.
+ Intel*) ;; # # Is that you, Intel C++?
+ #
+ # NOTE 1: the -std=c89 without -pedantic is a bit pointless.
+-- 
+2.21.0
+
diff --git a/SOURCES/perl-5.31.5-Be-clearer-about-taint-s-effect-on-INC.patch b/SOURCES/perl-5.31.5-Be-clearer-about-taint-s-effect-on-INC.patch
new file mode 100644
index 0000000..5c69996
--- /dev/null
+++ b/SOURCES/perl-5.31.5-Be-clearer-about-taint-s-effect-on-INC.patch
@@ -0,0 +1,32 @@
+From a1c1fa25b1b25efb11cc8f987e007d4dd20056bc Mon Sep 17 00:00:00 2001
+From: Dave Cross <dave@dave.org.uk>
+Date: Wed, 23 Oct 2019 12:50:01 +0100
+Subject: [PATCH] Be clearer about taint's effect on @INC.
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Signed-off-by: Petr Písař <ppisar@redhat.com>
+---
+ pod/perlsec.pod | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/pod/perlsec.pod b/pod/perlsec.pod
+index 0682674143..a631981ba5 100644
+--- a/pod/perlsec.pod
++++ b/pod/perlsec.pod
+@@ -269,8 +269,9 @@ problem will be reported:
+   Insecure dependency in require while running with -T switch
+ 
+ On versions of Perl before 5.26, activating taint mode will also remove
+-the current directory (".") from C<@INC>. Since version 5.26, the
+-current directory isn't included in C<@INC>.
++the current directory (".") from the default value of C<@INC>. Since
++version 5.26, the current directory isn't included in C<@INC> by
++default.
+ 
+ =head2 Cleaning Up Your Path
+ 
+-- 
+2.21.0
+
diff --git a/SOURCES/perl-5.31.5-Fix-taint-mode-INC-documentation.patch b/SOURCES/perl-5.31.5-Fix-taint-mode-INC-documentation.patch
new file mode 100644
index 0000000..099a6ea
--- /dev/null
+++ b/SOURCES/perl-5.31.5-Fix-taint-mode-INC-documentation.patch
@@ -0,0 +1,45 @@
+From f73351928dfa1d1d564d3f7b8e63c5281ed835ee Mon Sep 17 00:00:00 2001
+From: Dave Cross <dave@dave.org.uk>
+Date: Tue, 22 Oct 2019 14:24:13 +0100
+Subject: [PATCH] Fix taint mode @INC documentation
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Explain that -T no longer removes '.' from @INC because, since
+5.26, '.' isn't in @INC to start with.
+
+Signed-off-by: Petr Písař <ppisar@redhat.com>
+---
+ pod/perlsec.pod | 8 ++++++--
+ 1 file changed, 6 insertions(+), 2 deletions(-)
+
+diff --git a/pod/perlsec.pod b/pod/perlsec.pod
+index b210445685..0682674143 100644
+--- a/pod/perlsec.pod
++++ b/pod/perlsec.pod
+@@ -245,8 +245,8 @@ Unix-like environments that support #! and setuid or setgid scripts.)
+ 
+ =head2 Taint mode and @INC
+ 
+-When the taint mode (C<-T>) is in effect, the "." directory is removed
+-from C<@INC>, and the environment variables C<PERL5LIB> and C<PERLLIB>
++When the taint mode (C<-T>) is in effect, the environment variables
++C<PERL5LIB> and C<PERLLIB>
+ are ignored by Perl.  You can still adjust C<@INC> from outside the
+ program by using the C<-I> command line option as explained in
+ L<perlrun>.  The two environment variables are ignored because
+@@ -268,6 +268,10 @@ problem will be reported:
+ 
+   Insecure dependency in require while running with -T switch
+ 
++On versions of Perl before 5.26, activating taint mode will also remove
++the current directory (".") from C<@INC>. Since version 5.26, the
++current directory isn't included in C<@INC>.
++
+ =head2 Cleaning Up Your Path
+ 
+ For "Insecure C<$ENV{PATH}>" messages, you need to set C<$ENV{'PATH'}> to
+-- 
+2.21.0
+
diff --git a/SOURCES/perl-5.31.5-PATCH-gh-17218-memory-leak.patch b/SOURCES/perl-5.31.5-PATCH-gh-17218-memory-leak.patch
new file mode 100644
index 0000000..537fc56
--- /dev/null
+++ b/SOURCES/perl-5.31.5-PATCH-gh-17218-memory-leak.patch
@@ -0,0 +1,30 @@
+From 0463f3a19af7afac8b402655ad66e5b05c095bcc Mon Sep 17 00:00:00 2001
+From: Karl Williamson <khw@cpan.org>
+Date: Fri, 15 Nov 2019 15:01:15 -0700
+Subject: [PATCH] PATCH: gh#17218 memory leak
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Indeed, a variable's ref count was not getting decremented.
+
+Signed-off-by: Petr Písař <ppisar@redhat.com>
+---
+ regcomp.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/regcomp.c b/regcomp.c
+index 076ea350b5..7b9bf6ba7d 100644
+--- a/regcomp.c
++++ b/regcomp.c
+@@ -18180,6 +18180,7 @@ S_regclass(pTHX_ RExC_state_t *pRExC_state, I32 *flagp, U32 depth,
+ 
+                 /* Likewise for 'posixes' */
+                 _invlist_union(posixes, cp_list, &cp_list);
++                SvREFCNT_dec(posixes);
+ 
+                 /* Likewise for anything else in the range that matched only
+                  * under UTF-8 */
+-- 
+2.21.0
+
diff --git a/SOURCES/perl-5.31.5-Tie-StdHandle-BINMODE-handle-layer-argument.patch b/SOURCES/perl-5.31.5-Tie-StdHandle-BINMODE-handle-layer-argument.patch
new file mode 100644
index 0000000..54a1817
--- /dev/null
+++ b/SOURCES/perl-5.31.5-Tie-StdHandle-BINMODE-handle-layer-argument.patch
@@ -0,0 +1,77 @@
+From a4e94e39cfa6852b1d57e61ee122c8083ab9d82e Mon Sep 17 00:00:00 2001
+From: Hauke D <haukex@zero-g.net>
+Date: Mon, 20 Nov 2017 15:31:57 +0100
+Subject: [PATCH] Tie::StdHandle::BINMODE: handle layer argument
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Fixes #16262
+
+BINMODE was not handling the LAYER argument.
+Also bump the version number.
+
+(cherry picked from commit 479d04b98e5b747e5c9ead7368d3e132f524a2b7)
+Signed-off-by: Nicolas R <atoomic@cpan.org>
+Signed-off-by: Petr Písař <ppisar@redhat.com>
+---
+ lib/Tie/Handle/stdhandle.t | 13 ++++++++++++-
+ lib/Tie/StdHandle.pm       |  4 ++--
+ 2 files changed, 14 insertions(+), 3 deletions(-)
+
+diff --git a/lib/Tie/Handle/stdhandle.t b/lib/Tie/Handle/stdhandle.t
+index d2f04bcc5c..6c20d90f2b 100644
+--- a/lib/Tie/Handle/stdhandle.t
++++ b/lib/Tie/Handle/stdhandle.t
+@@ -5,7 +5,7 @@ BEGIN {
+     @INC = '../lib';
+ }
+ 
+-use Test::More tests => 27;
++use Test::More tests => 29;
+ 
+ use_ok('Tie::StdHandle');
+ 
+@@ -72,6 +72,17 @@ is($b, "rhubarbX\n", "b eq rhubarbX");
+ $b = <$f>;
+ is($b, "89\n", "b eq 89");
+ 
++# binmode should pass through layer argument
++
++binmode $f, ':raw';
++ok !grep( $_ eq 'utf8', PerlIO::get_layers(tied(*$f)) ),
++    'no utf8 in layers after binmode :raw';
++binmode $f, ':utf8';
++ok grep( $_ eq 'utf8', PerlIO::get_layers(tied(*$f)) ),
++    'utf8 is in layers after binmode :utf8';
++
++# finish up
++
+ ok(eof($f), "eof");
+ ok(close($f), "close");
+ 
+diff --git a/lib/Tie/StdHandle.pm b/lib/Tie/StdHandle.pm
+index dfb86634f0..fb79a986c6 100644
+--- a/lib/Tie/StdHandle.pm
++++ b/lib/Tie/StdHandle.pm
+@@ -4,7 +4,7 @@ use strict;
+ 
+ use Tie::Handle;
+ our @ISA = 'Tie::Handle';
+-our $VERSION = '4.5';
++our $VERSION = '4.6';
+ 
+ =head1 NAME
+ 
+@@ -48,7 +48,7 @@ sub TELL    { tell($_[0]) }
+ sub FILENO  { fileno($_[0]) }
+ sub SEEK    { seek($_[0],$_[1],$_[2]) }
+ sub CLOSE   { close($_[0]) }
+-sub BINMODE { binmode($_[0]) }
++sub BINMODE { &CORE::binmode(shift, @_) }
+ 
+ sub OPEN
+ {
+-- 
+2.21.0
+
diff --git a/SOURCES/perl-5.31.5-prevent-a-race-between-name-based-stat-and-an-open-m.patch b/SOURCES/perl-5.31.5-prevent-a-race-between-name-based-stat-and-an-open-m.patch
new file mode 100644
index 0000000..27a500b
--- /dev/null
+++ b/SOURCES/perl-5.31.5-prevent-a-race-between-name-based-stat-and-an-open-m.patch
@@ -0,0 +1,48 @@
+From 7c3f362035dec9b7eaec388b1f7f1619c1bd96a3 Mon Sep 17 00:00:00 2001
+From: Tony Cook <tony@develop-help.com>
+Date: Mon, 4 Nov 2019 09:52:22 +1100
+Subject: [PATCH] prevent a race between name-based stat and an open modifying
+ atime
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Most linux systems rarely update atime, so it's very unlikely
+for this issue to trigger there, but on a system with classic atime
+behaviour this was a race between open modifying atime and time()
+ticking over.
+
+gh #17234
+
+Signed-off-by: Petr Písař <ppisar@redhat.com>
+---
+ lib/File/stat.t | 6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+diff --git a/lib/File/stat.t b/lib/File/stat.t
+index c403fc4498..fc9bb12cef 100644
+--- a/lib/File/stat.t
++++ b/lib/File/stat.t
+@@ -133,6 +133,9 @@ SKIP: {
+     test_X_ops($^X, "for $^X", qr/A/);
+ }
+ 
++# open early so atime is consistent with the name based call
++local *STAT;
++my $canopen = open(STAT, '<', $file);
+ 
+ my $stat = File::stat::stat($file);
+ isa_ok($stat, 'File::stat', 'should build a stat object');
+@@ -143,8 +146,7 @@ for (split //, "tTB") {
+ }
+ 
+ SKIP: {
+-	local *STAT;
+-	skip("Could not open file: $!", 2) unless open(STAT, '<', $file);
++	skip("Could not open file: $!", 2) unless $canopen;
+ 	isa_ok(File::stat::stat('STAT'), 'File::stat',
+ 	       '... should be able to find filehandle');
+ 
+-- 
+2.21.0
+
diff --git a/SOURCES/perl-5.31.5-toke.c-Fix-bug-tr-upgrading-to-UTF-8-in-middle.patch b/SOURCES/perl-5.31.5-toke.c-Fix-bug-tr-upgrading-to-UTF-8-in-middle.patch
new file mode 100644
index 0000000..7a222bf
--- /dev/null
+++ b/SOURCES/perl-5.31.5-toke.c-Fix-bug-tr-upgrading-to-UTF-8-in-middle.patch
@@ -0,0 +1,78 @@
+From 0c311b7c345769239f38d0139ea7738feec5ca4d Mon Sep 17 00:00:00 2001
+From: Karl Williamson <khw@cpan.org>
+Date: Sat, 2 Nov 2019 13:59:38 -0600
+Subject: [PATCH] toke.c: Fix bug tr/// upgrading to UTF-8 in middle
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Consider tr/\x{ff}-\x{100}/AB/.
+
+While parsing, the code keeps an offset from the beginning of the output
+to the beginning of the second number in the range.  This is purely for
+speed so that it wouldn't have to re-find the beginning of that value,
+when it already knew it.
+
+But the example above shows the folly of this shortcut.  The second
+number in the range causes the output to be upgraded to UTF-8, which
+makes that offset invalid in general.  Change to re-find the beginning.
+
+Signed-off-by: Petr Písař <ppisar@redhat.com>
+---
+ t/op/tr.t | 12 +++++++++++-
+ toke.c    |  4 +++-
+ 2 files changed, 14 insertions(+), 2 deletions(-)
+
+diff --git a/t/op/tr.t b/t/op/tr.t
+index 47d603d4fd..25125c5bc7 100644
+--- a/t/op/tr.t
++++ b/t/op/tr.t
+@@ -13,7 +13,7 @@ BEGIN {
+ 
+ use utf8;
+ 
+-plan tests => 301;
++plan tests => 304;
+ 
+ # Test this first before we extend the stack with other operations.
+ # This caused an asan failure due to a bad write past the end of the stack.
+@@ -1145,4 +1145,14 @@ for ("", nullrocow) {
+                     'RT #133880 illegal \N{}');
+ }
+ 
++{
++    my $c = "\xff";
++    my $d = "\x{104}";
++    eval '$c =~ tr/\x{ff}-\x{104}/\x{100}-\x{105}/';
++    is($@, "", 'tr/\x{ff}-\x{104}/\x{100}-\x{105}/ compiled');
++    is($c, "\x{100}", 'ff -> 100');
++    eval '$d =~ tr/\x{ff}-\x{104}/\x{100}-\x{105}/';
++    is($d, "\x{105}", '104 -> 105');
++}
++
+ 1;
+diff --git a/toke.c b/toke.c
+index 2995737af2..28f305c62c 100644
+--- a/toke.c
++++ b/toke.c
+@@ -3044,7 +3044,7 @@ S_scan_const(pTHX_ char *start)
+                  * 'offset_to_max' is the offset in 'sv' at which the character
+                  *      (the range's maximum end point) before 'd'  begins.
+                  */
+-                char * max_ptr = SvPVX(sv) + offset_to_max;
++                char * max_ptr;
+                 char * min_ptr;
+                 IV range_min;
+ 		IV range_max;	/* last character in range */
+@@ -3056,6 +3056,8 @@ S_scan_const(pTHX_ char *start)
+                 IV real_range_max = 0;
+ #endif
+                 /* Get the code point values of the range ends. */
++                max_ptr = (d_is_utf8) ? (char *) utf8_hop( (U8*) d, -1) : d - 1;
++                offset_to_max = max_ptr - SvPVX_const(sv);
+                 if (d_is_utf8) {
+                     /* We know the utf8 is valid, because we just constructed
+                      * it ourselves in previous loop iterations */
+-- 
+2.21.0
+
diff --git a/SOURCES/perl-5.31.5-toke.c-comment-changes.patch b/SOURCES/perl-5.31.5-toke.c-comment-changes.patch
new file mode 100644
index 0000000..439a97d
--- /dev/null
+++ b/SOURCES/perl-5.31.5-toke.c-comment-changes.patch
@@ -0,0 +1,48 @@
+From d7f7b0e39a10a6e3e0bd81d15473ee522a064016 Mon Sep 17 00:00:00 2001
+From: Karl Williamson <khw@cpan.org>
+Date: Mon, 4 Nov 2019 21:55:53 -0700
+Subject: [PATCH] toke.c: comment changes
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+These should have been included in
+0c311b7c345769239f38d0139ea7738feec5ca4d
+
+Signed-off-by: Petr Písař <ppisar@redhat.com>
+---
+ toke.c | 11 ++---------
+ 1 file changed, 2 insertions(+), 9 deletions(-)
+
+diff --git a/toke.c b/toke.c
+index 3f376640ef..9c1e77f9db 100644
+--- a/toke.c
++++ b/toke.c
+@@ -3032,13 +3032,8 @@ S_scan_const(pTHX_ char *start)
+                     s++;    /* Skip past the hyphen */
+ 
+                     /* d now points to where the end-range character will be
+-                     * placed.  Save it so won't have to go finding it later,
+-                     * and drop down to get that character.  (Actually we
+-                     * instead save the offset, to handle the case where a
+-                     * realloc in the meantime could change the actual
+-                     * pointer).  We'll finish processing the range the next
+-                     * time through the loop */
+-                    offset_to_max = d - SvPVX_const(sv);
++                     * placed.  Drop down to get that character.  We'll finish
++                     * processing the range the next time through the loop */
+ 
+                     if (s_is_utf8 && UTF8_IS_ABOVE_LATIN1(*s)) {
+                         has_above_latin1 = TRUE;
+@@ -3055,8 +3050,6 @@ S_scan_const(pTHX_ char *start)
+                  *      are the range start and range end, in order.
+                  * 'd'  points to just beyond the range end in the 'sv' string,
+                  *      where we would next place something
+-                 * 'offset_to_max' is the offset in 'sv' at which the character
+-                 *      (the range's maximum end point) before 'd'  begins.
+                  */
+                 char * max_ptr;
+                 char * min_ptr;
+-- 
+2.21.0
+
diff --git a/SOURCES/perl-5.8.0-libdir64.patch b/SOURCES/perl-5.8.0-libdir64.patch
new file mode 100644
index 0000000..a29ee87
--- /dev/null
+++ b/SOURCES/perl-5.8.0-libdir64.patch
@@ -0,0 +1,47 @@
+diff -up perl-5.28.0-RC1/Configure.orig   perl-5.28.0-RC1/Configure
+--- perl-5.28.0-RC1/Configure.orig   2018-05-21 12:44:04.000000000 +0200
++++ perl-5.28.0-RC1/Configure	2018-05-22 12:21:53.908599933 +0200
+@@ -7269,8 +7269,8 @@ esac'
+ : 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" ;;
+@@ -7336,8 +7336,8 @@ esac
+ : /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
+@@ -7584,8 +7584,8 @@ siteprefixexp="$ansexp"
+ 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"
+@@ -8001,8 +8001,8 @@ case "$vendorprefix" in
+ 	'')
+ 		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..cf724fd
--- /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
+@@ -89,6 +89,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
+@@ -317,7 +317,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
+ 
+@@ -501,7 +501,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){
+@@ -2821,6 +2841,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
+@@ -1045,7 +1045,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..9988d86
--- /dev/null
+++ b/SOURCES/perl-perlbug-tag.patch
@@ -0,0 +1,21 @@
+diff -up perl-5.28.0-RC1/utils/perlbug.PL.orig perl-5.28.0-RC1/utils/perlbug.PL
+--- perl-5.28.0-RC1/utils/perlbug.PL.orig	2018-05-21 12:44:04.000000000 +0200
++++ perl-5.28.0-RC1/utils/perlbug.PL	2018-05-22 12:17:58.584993588 +0200
+@@ -288,17 +288,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..4f48a57
--- /dev/null
+++ b/SPECS/perl.spec
@@ -0,0 +1,7011 @@
+%global perl_version    5.30.1
+%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
+# Run C++ tests
+%bcond_without perl_enables_cplusplus_test
+# We can bootstrap without gdbm
+%bcond_without gdbm
+# Support for groff, bug #135101
+%bcond_without perl_enables_groff
+# Run Turkish locale tests
+%bcond_without perl_enables_turkish_test
+# 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:        450%{?dist}
+Summary:        Practical Extraction and Report Language
+Url:            https://www.perl.org/
+Source0:        https://www.cpan.org/src/5.0/perl-%{perl_version}.tar.xz
+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)
+Patch2:         perl-5.8.0-libdir64.patch
+
+# Fedora/RHEL specific (use libresolv instead of libbind), bug #151127
+Patch3:         perl-5.10.0-libresolv.patch
+
+# FIXME: May need the "Fedora" references removed before upstreaming
+# patches ExtUtils-MakeMaker
+Patch4:         perl-USE_MM_LD_RUN_PATH.patch
+
+# Provide maybe_command independently, bug #1129443
+Patch5:         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.
+Patch6:         perl-5.10.0-x86_64-io-test-failure.patch
+
+# switch off test, which is failing only on koji (fork)
+Patch7:         perl-5.14.1-offtest.patch
+
+# Define SONAME for libperl.so
+Patch8:         perl-5.16.3-create_libperl_soname.patch
+
+# Install libperl.so to -Dshrpdir value
+Patch9:         perl-5.22.0-Install-libperl.so-to-shrpdir-on-Linux.patch
+
+# Make *DBM_File desctructors thread-safe, bug #1107543, RT#61912
+Patch10:        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
+Patch11:        perl-5.22.1-Replace-EU-MM-dependnecy-with-EU-MM-Utils-in-IPC-Cmd.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/>
+Patch12:        perl-5.27.8-hints-linux-Add-lphtread-to-lddlflags.patch
+
+# Pass the correct CFLAGS to dtrace
+Patch13:        perl-5.28.0-Pass-CFLAGS-to-dtrace.patch
+
+# Do not panic when outputting a warning, RT#134059, fixed after 5.31.0
+Patch15:        perl-5.31.0-PATCH-perl-134059-panic-outputting-a-warning.patch
+
+# Fix memory handling when parsing string literals, fixed after 5.31.0
+Patch16:        perl-5.31.0-S_scan_const-Properly-test-if-need-to-grow.patch
+
+# Fix an undefined behavior in shifting IV variables, fixed after 5.31.0
+Patch17:        perl-5.31.0-Create-fcn-for-lossless-conversion-of-NV-to-IV.patch
+Patch18:        perl-5.30.0-pp.c-Add-two-UNLIKELY-s.patch
+Patch19:        perl-5.30.0-Remove-undefined-behavior-from-IV-shifting.patch
+
+# Fix stacking file test operators, CPAN RT#127073, fixed after 5.31.0
+Patch20:        perl-5.31.0-Don-t-use-PL_check-op_type-to-check-for-filetets-ops.patch
+
+# Fix a crash in SIGALARM handler when waiting on a child process to be closed,
+# RT#122112, fixed after 5.31.0
+Patch21:        perl-5.31.0-perl-122112-test-for-signal-handler-death-in-pclose.patch
+Patch22:        perl-5.31.0-perl-122112-a-simpler-fix-for-pclose-aborted-by-a-si.patch
+Patch23:        perl-5.31.0-perl-122112-remove-some-interfering-debug-output.patch
+
+# Fix a crash with a negative precision in sprintf function, RT#134008,
+# fixed after 5.31.0
+Patch25:        perl-5.31.0-perl-134008-an-alternative-test.patch
+
+# Prevent from wrapping a width in a numeric format string, RT#133913,
+# fixed after 5.31.0
+Patch27:        perl-5.31.0-perl-133913-limit-numeric-format-results-to-INT_MAX.patch
+
+# Fix subroutine protypes to track reference aliases, RT#134072,
+# fixed after 5.31.0
+Patch28:        perl-5.31.0-perl-134072-allow-foo-bar-to-work-in-main.patch
+
+# Fix changing packet destination sent from a UDP IO::Socket object,
+# RT#133936, fixed after 5.31.0
+Patch30:        perl-5.31.0-perl-133936-ensure-TO-is-honoured-for-UDP-sock-send.patch
+Patch31:        perl-5.31.0-perl-133936-document-differences-between-IO-Socket-a.patch
+Patch32:        perl-5.31.0-perl-133936-make-send-a-bit-saner.patch
+
+# Fix %%{^CAPTURE_ALL} to be an alias for %%- variable, RT#131867,
+# fixed after 5.31.0
+Patch37:        perl-5.31.0-CAPTURE_ALL-was-intended-to-be-an-alias-for-make-it-.patch
+
+# Fix %%{^CAPTURE} value when used after @{^CAPTURE}, RT#134193,
+# fixed after 5.31.0
+Patch38:        perl-5.31.0-perl-134193-allow-CAPTURE-to-work-when-CAPTURE-comes.patch
+Patch39:        perl-5.31.0-perl-134193-make-the-varname-match-the-names.patch
+
+# Fix a test for a crash in SIGALARM handler when waiting on a child process to
+# be closed, RT#122112, fixed after 5.31.1
+Patch40:        perl-5.31.1-perl-122112-make-sure-SIGPIPE-is-delivered-if-we-tes.patch
+
+# Fix a crash on an uninitialized warning when processing a multideref node,
+# RT#134275, fixed after 5.31.1
+Patch41:        perl-5.31.1-avoid-SEGV-with-uninit-warning-with-multideref.patch
+
+# Preserve append mode when opening anonymous files, RT#134221,
+# fixed after 5.31.1
+Patch42:        perl-5.30.0-perl-134221-support-append-mode-for-open-.-undef.patch
+Patch43:        perl-5.31.1-perl-134221-support-append-mode-temp-files-on-Win32-.patch
+Patch44:        perl-5.31.1-perl-134221-support-O_APPEND-for-open-.-undef-on-VMS.patch
+
+# Fix propagating non-string variables in an exception value, RT#134291,
+# fixed after 5.31.2
+Patch45:        perl-5.31.2-perl-134291-propagate-non-PVs-in-in-bare-die.patch
+
+# Include trailing zero in scalars holding trie data, RT#134207,
+# fixed after 5.31.2
+Patch46:        perl-5.31.2-include-a-trailing-0-in-SVs-holding-trie-info.patch
+
+# Fix a use after free in debugging output of a collation,
+# in upstream after 5.31.2
+Patch48:        perl-5.31.2-locale.c-Stop-Coverity-warning.patch
+
+# Fix a NULL pointer dereference in PerlIOVia_pushed(), fixed after 5.31.2
+Patch49:        perl-5.31.2-PerlIO-Via-check-arg-is-non-NULL-before-using-it.patch
+
+# Fix a crash when setting $@ on unwinding a call stack, RT#134266,
+# fixed after 5.31.2
+Patch50:        perl-5.30.0-perl-134266-make-sure-is-writable-when-we-write-to-i.patch
+
+# Fix parsing a denominator when parsing a Unicode property name,
+# fixed after 5.31.2
+Patch51:        perl-5.31.2-regcomp.c-Don-t-read-off-the-end-of-buffer.patch
+
+# Fix a documentation about a future API change, fixed after 5.31.2
+Patch52:        perl-5.31.2-perlapi-5.30-promise-not-met-change-to-5.32.patch
+
+# Do not run File-Find tests in parallel, fixed after 5.31.2
+Patch53:        perl-5.31.2-Run-tests-in-ext-File-Find-t-in-series.patch
+
+# Fix parsing a Unicode property name when compiling a regular expression,
+# fixed after 5.31.3
+Patch54:        perl-5.31.3-regcomp.c-Fix-wrong-limit-test.patch
+
+# Do not interpret 0x and 0b prefixes when numifying strings, RT#134230,
+# fixed after 5.31.3
+Patch56:        perl-5.31.3-perl-134230-don-t-interpret-0x-0b-when-numifying-str.patch
+
+# Fix a buffer overflow when compiling a regular expression with many
+# branches, RT#134329, fixed after 5.31.3
+# This is a binary patch and requires git.
+Patch58:        perl-5.30.0-PATCH-perl-134329-Use-after-free-in-regcomp.c.patch
+
+# Correct a misspelling in perlrebackslash documentation, RT#134395,
+# fixed after 5.31.3
+Patch59:        perl-5.31.3-Supply-missing-right-brace-in-regex-example.patch
+
+# Fix a detection for futimes, RT#134432, fixed after 5.31.3
+Patch61:        perl-5.31.3-Configure-Include-stdlib.h-in-futimes-check.patch
+Patch62:        perl-5.31.3-Florian-Weimer-is-now-a-perl-author.patch
+
+# Fix overloading for binary and octal floats, RT#125557,
+# in upstream after 5.31.3
+Patch63:        perl-5.30.1-perl-125557-correctly-handle-overload-for-bin-oct-fl.patch
+
+# Fix handling undefined array members in Dumpvalue, RT#134441,
+# in upstream after 5.31.4
+Patch64:        perl-5.31.4-Handle-undefined-values-correctly.patch
+
+# Fix taint mode documentation regarding @INC, in upstream after 5.31.5
+Patch65:        perl-5.31.5-Fix-taint-mode-INC-documentation.patch
+Patch66:        perl-5.31.5-Be-clearer-about-taint-s-effect-on-INC.patch
+
+# Fix handling a layer argument in Tie::StdHandle::BINMODE(), RT#132475,
+# in upstream after 5.31.5
+Patch67:        perl-5.31.5-Tie-StdHandle-BINMODE-handle-layer-argument.patch
+
+# Fix an unintended upgrade to UTF-8 in the middle of a transliteration,
+# in upstream after 5.31.5
+Patch68:        perl-5.31.5-toke.c-Fix-bug-tr-upgrading-to-UTF-8-in-middle.patch
+Patch69:        perl-5.31.5-toke.c-comment-changes.patch
+
+# Fix a race in File::stat() tests, GH#17234, in upstream after 5.31.5
+Patch70:        perl-5.31.5-prevent-a-race-between-name-based-stat-and-an-open-m.patch
+
+# Fix a buffer overread when parsing a number, GH#17279,
+# in upstream after 5.31.5
+Patch71:        perl-5.30.1-handle-s-being-updated-without-len-being-updated.patch
+
+# Fix GCC 10 version detection, <https://github.com/Perl/perl5/pull/17295>,
+# in upstream after 5.31.5
+Patch72:        perl-5.31.5-Adapt-Configure-to-GCC-version-10.patch
+
+# Fix a memory leak when compiling a regular expression with a non-word class,
+# GH#17218, in upsream after 5.31.5
+Patch73:        perl-5.31.5-PATCH-gh-17218-memory-leak.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
+# git for PATCH-perl-134329-Use-after-free-in-regcomp.c.patch
+BuildRequires:  git-core
+# 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}
+%if %{with perl_enables_cplusplus_test}
+# An optional ExtUtils-CBuilder's test
+BuildRequires:  gcc-c++
+%endif
+BuildRequires:  procps
+%if %{with perl_enables_turkish_test}
+# An optional t/re/fold_grind_T.t test
+BuildRequires:  glibc-langpack-tr
+%endif
+%if %{with perl_enables_syslog_test}
+BuildRequires:  rsyslog
+%endif
+%endif
+
+
+# compat macro needed for rebuild
+%global perl_compat perl(:MODULE_COMPAT_5.30.1)
+
+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-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-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.30.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)
+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}
+# Devel::PPPort for h2xs script
+Requires:       perl(Devel::PPPort)
+# 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
+# ExtUtils::Embed -e ldopts include libcrypt, bug #1666098
+Requires:       libxcrypt-devel%{?_isa}
+
+%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
+Requires:       perl-interpreter
+%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.32
+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:        1.01
+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 bignum
+Summary:        Transparent big number support for Perl
+License:        GPL+ or Artistic
+Epoch:          0
+Version:        0.51
+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.50
+Version:        1.50
+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.084
+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.084
+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.32
+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.22
+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.174
+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.843
+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.28
+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.52
+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:        6.02
+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:        3.01
+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.22
+# 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:        3.01
+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.30
+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.020
+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.73
+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.280231
+BuildArch:      noarch
+# C and C++ compilers are highly recommended because compiling code is the
+# purpose of ExtUtils::CBuilder, bug #1547165
+Requires:       gcc
+Requires:       gcc-c++
+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.34
+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.35
+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.14
+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:          2
+Version:        7.34
+# These dependencies are weak in order to relieve building noarch
+# packages from perl-devel and gcc. See bug #1547165.
+# If an XS module is built, the generated Makefile executes gcc.
+Recommends:     gcc
+# If an XS module is built, code generated from XS will be compiled and it
+# includes Perl header files.
+Recommends:     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:          1
+Version:        1.72
+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.09
+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.34
+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.40
+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.56
+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.16
+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:          1
+# Normalized version
+Version:        0.230.900
+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.59
+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.95
+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.50
+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.40
+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.084
+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.39
+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:        1.02
+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.076
+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
+Version:        4.02
+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.11
+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-Maketext
+Summary:        Framework for localization
+License:        GPL+ or Artistic
+Epoch:          0
+Version:        1.29
+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.999816
+Version:        1.9998.16
+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.5008
+Version:        0.500.800
+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.2614
+Version:        0.2614
+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
+Version:        5.20191110
+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
+Version:        5.20191110
+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.34
+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.000036
+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.71
+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.237
+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.78
+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.20190126
+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
+Version:        1.24
+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
+# Real version 3.2801
+Version:        3.28.01
+%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:          1
+Version:        4.11
+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
+Version:        1.50
+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.25
+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.027
+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:        3.15
+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.31
+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.42
+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:          3
+Version:        1.302162
+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.13
+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.9760
+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:          2
+# Real version 1.28
+Version:        1.280
+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.33
+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.22
+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.60
+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.27
+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.26
+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:          7
+# real version 0.9924
+Version:        0.99.24
+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}
+%patch2 -p1
+%endif
+%patch3 -p1
+%patch4 -p1
+%patch5 -p1
+%patch6 -p1
+%patch7 -p1
+%patch8 -p1
+%patch9 -p1
+%patch10 -p1
+%patch11 -p1
+%patch12 -p1
+%patch13 -p1
+%patch15 -p1
+%patch16 -p1
+%patch17 -p1
+%patch18 -p1
+%patch19 -p1
+%patch20 -p1
+%patch21 -p1
+%patch22 -p1
+%patch23 -p1
+%patch25 -p1
+%patch27 -p1
+%patch28 -p1
+%patch30 -p1
+%patch31 -p1
+%patch32 -p1
+%patch37 -p1
+%patch38 -p1
+%patch39 -p1
+%patch40 -p1
+%patch41 -p1
+%patch42 -p1
+%patch43 -p1
+%patch44 -p1
+%patch45 -p1
+%patch46 -p1
+%patch48 -p1
+%patch49 -p1
+%patch50 -p1
+%patch51 -p1
+%patch52 -p1
+%patch53 -p1
+%patch54 -p1
+%patch56 -p1
+# PATCH-perl-134329-Use-after-free-in-regcomp.c.patch is a binary patch
+git init-db .
+git config --replace-all gc.auto 0 # Prevent from racing with "rm -rf .git"
+git config --replace-all user.email '<nobody@localhost>'
+git config --replace-all user.name 'Nobody'
+git add .
+git commit --message 'Import'
+git am < %{PATCH58}
+rm -rf .git # Perl tests examine a git repository
+%patch59 -p1
+%patch61 -p1
+%patch62 -p1
+%patch63 -p1
+%patch64 -p1
+%patch65 -p1
+%patch66 -p1
+%patch67 -p1
+%patch68 -p1
+%patch69 -p1
+%patch70 -p1
+%patch71 -p1
+%patch72 -p1
+%patch73 -p1
+%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 Patch2: support for libdir64' \
+%endif
+    'Fedora Patch3: use libresolv instead of libbind' \
+    'Fedora Patch4: USE_MM_LD_RUN_PATH' \
+    'Fedora Patch5: Provide MM::maybe_command independently (bug #1129443)' \
+    'Fedora Patch6: Dont run one io test due to random builder failures' \
+    'Fedora Patch8: Define SONAME for libperl.so' \
+    'Fedora Patch9: Install libperl.so to -Dshrpdir value' \
+    'Fedora Patch10: Make *DBM_File desctructors thread-safe (RT#61912)' \
+    'Fedora Patch11: Replace EU::MakeMaker dependency with EU::MM::Utils in IPC::Cmd (bug #1129443)' \
+    'Fedora Patch12: Link XS modules to pthread library to fix linking with -z defs' \
+    'Fedora Patch13: Pass the correct CFLAGS to dtrace' \
+    'Fedora Patch15: Do not panic when outputting a warning (RT#134059)' \
+    'Fedora Patch16: Fix memory handling when parsing string literals' \
+    'Fedora Patch17: Fix an undefined behavior in shifting IV variables' \
+    'Fedora Patch18: Fix an undefined behavior in shifting IV variables' \
+    'Fedora Patch19: Fix an undefined behavior in shifting IV variables' \
+    'Fedora Patch20: Fix stacking file test operators (CPAN RT#127073)' \
+    'Fedora Patch21: Fix a crash in SIGALARM handler when waiting on a child process to be closed (RT#122112)' \
+    'Fedora Patch22: Fix a crash in SIGALARM handler when waiting on a child process to be closed (RT#122112)' \
+    'Fedora Patch23: Fix a crash in SIGALARM handler when waiting on a child process to be closed (RT#122112)' \
+    'Fedora Patch25: Fix a crash with a negative precision in sprintf function (RT#134008)' \
+    'Fedora Patch27: Prevent from wrapping a width in a numeric format string (RT#133913)' \
+    'Fedora Patch28: Fix subroutine protypes to track reference aliases (RT#134072)' \
+    'Fedora Patch30: Fix changing packet destination sent from a UDP IO::Socket object (RT#133936)' \
+    'Fedora Patch31: Fix changing packet destination sent from a UDP IO::Socket object (RT#133936)' \
+    'Fedora Patch32: Fix changing packet destination sent from a UDP IO::Socket object (RT#133936)' \
+    'Fedora Patch37: Fix %%{^CAPTURE_ALL} to be an alias for %%- variable (RT#131867)' \
+    'Fedora Patch38: Fix %%{^CAPTURE} value when used after @{^CAPTURE} (RT#134193)' \
+    'Fedora Patch39: Fix %%{^CAPTURE} value when used after @{^CAPTURE} (RT#134193)' \
+    'Fedora Patch40: Fix a test for a crash in SIGALARM handler when waiting on a child process to be closed (RT#122112)' \
+    'Fedora Patch41: Fix a crash on an uninitialized warning when processing a multideref node (RT#134275)' \
+    'Fedora Patch42: Preserve append mode when opening anonymous files (RT#134221)' \
+    'Fedora Patch43: Preserve append mode when opening anonymous files (RT#134221)' \
+    'Fedora Patch44: Preserve append mode when opening anonymous files (RT#134221)' \
+    'Fedora Patch45: Fix propagating non-string variables in an exception value (RT#134291)' \
+    'Fedora Patch46: Include trailing zero in scalars holding trie data (RT#134207)' \
+    'Fedora Patch48: Fix a use after free in debugging output of a collation' \
+    'Fedora Patch49: Fix a NULL pointer dereference in PerlIOVia_pushed()' \
+    'Fedora Patch50: Fix a crash when setting $@ on unwinding a call stack (RT#134266)' \
+    'Fedora Patch51: Fix parsing a denominator when parsing a Unicode property name' \
+    'Fedora Patch52: Fix a documentation about a future API change' \
+    'Fedora Patch53: Do not run File-Find tests in parallel' \
+    'Fedora Patch54: Fix parsing a Unicode property name when compiling a regular expression' \
+    'Fedora Patch56: Do not interpret 0x and 0b prefixes when numifying strings (RT#134230)' \
+    'Fedora Patch58: Fix a buffer overflow when compiling a regular expression with many branches (RT#134329)' \
+    'Fedora Patch59: Correct a misspelling in perlrebackslash documentation (RT#134395)' \
+    'Fedora Patch61: Fix a detection for futimes (RT#134432)' \
+    'Fedora Patch62: Fix a detection for futimes (RT#134432)' \
+    'Fedora Patch63: Fix overloading for binary and octal floats (RT#125557)' \
+    'Fedora Patch64: Fix handling undefined array members in Dumpvalue (RT#134441)' \
+    'Fedora Patch65: Fix taint mode documentation regarding @INC' \
+    'Fedora Patch66: Fix taint mode documentation regarding @INC' \
+    'Fedora Patch67: Fix handling a layer argument in Tie::StdHandle::BINMODE() (RT#132475)' \
+    'Fedora Patch68: Fix an unintended upgrade to UTF-8 in the middle of a transliteration' \
+    'Fedora Patch69: Fix an unintended upgrade to UTF-8 in the middle of a transliteration' \
+    'Fedora Patch70: Fix a race in File::stat() tests (GH#17234)' \
+    'Fedora Patch71: Fix a buffer overread when parsing a number (GH#17279)' \
+    'Fedora Patch72: Fix GCC 10 version detection (GH#17295)' \
+    'Fedora Patch73: Fix a memory leak when compiling a regular expression with a non-word class (GH#17218)' \
+    '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
+install -m 0644 %{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
+
+%global perl_abi    %(echo '%{perl_version}' | sed 's/^\\([^.]*\\.[^.]*\\).*/\\1/')
+
+# 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/%{perl_abi}" \
+        -Dsitearch="%{_prefix}/local/%{_lib}/perl5/%{perl_abi}" \
+        -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.%{perl_abi}
+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|/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*
+
+# 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-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/Lib.pm
+%exclude %{_mandir}/man3/Math::BigFloat.*
+%exclude %{_mandir}/man3/Math::BigInt.*
+%exclude %{_mandir}/man3/Math::BigInt::Calc.*
+%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 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/Meta*
+%{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-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/Lib.pm
+%{_mandir}/man3/Math::BigFloat.*
+%{_mandir}/man3/Math::BigInt.*
+%{_mandir}/man3/Math::BigInt::Calc.*
+%{_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
+* Fri Mar 13 2020 Petr Pisar <ppisar@redhat.com> - 4:5.30.1-450
+- Fix shebangs (bug #1813199)
+
+* Fri Nov 29 2019 Petr Pisar <ppisar@redhat.com> - 4:5.30.1-449
+- Fix a memory leak when compiling a regular expression with a non-word class
+  (GH#17218)
+
+* Tue Nov 12 2019 Petr Pisar <ppisar@redhat.com> - 4:5.30.1-448
+- Fix overloading for binary and octal floats (RT#125557)
+- Fix handling undefined array members in Dumpvalue (RT#134441)
+- Fix taint mode documentation regarding @INC
+- Fix handling a layer argument in Tie::StdHandle::BINMODE() (RT#132475)
+- Fix an unintended upgrade to UTF-8 in the middle of a transliteration
+- Fix a race in File::stat() tests (GH#17234)
+- Fix a buffer overread when parsing a number (GH#17279)
+- Fix GCC 10 version detection (GH#17295)
+
+* Mon Nov 11 2019 Jitka Plesnikova <jplesnik@redhat.com> - 4:5.30.1-447
+- 5.30.1 bump (see <https://metacpan.org/pod/release/SHAY/perl-5.30.1/pod/perldelta.pod>
+  for release notes)
+
+* Wed Sep 11 2019 Petr Pisar <ppisar@redhat.com> - 4:5.30.0-446
+- Fix a memory leak when matching a UTF-8 regular expression (RT#134390)
+- Fix a detection for futimes (RT#134432)
+
+* Mon Sep 02 2019 Petr Pisar <ppisar@redhat.com> - 4:5.30.0-445
+- Adjust spec file to rpm-build-4.15.0-0.rc1.1
+- Fix parsing a Unicode property name when compiling a regular expression
+- Fix a buffer overread when parsing a Unicode property while compiling
+  a regular expression (RT#134133)
+- Do not interpret 0x and 0b prefixes when numifying strings (RT#134230)
+- Fix a buffer overread when compiling a regular expression with many escapes
+  (RT#134325)
+- Fix a buffer overflow when compiling a regular expression with many branches
+  (RT#134329)
+- Correct a misspelling in perlrebackslash documentation (RT#134395)
+
+* Thu Aug 22 2019 Petr Pisar <ppisar@redhat.com> - 4:5.30.0-444
+- Fix a NULL pointer dereference in PerlIOVia_pushed()
+- Fix a crash when setting $@ on unwinding a call stack (RT#134266)
+- Fix parsing a denominator when parsing a Unicode property name
+- Fix a documentation about a future API change
+- Do not run File-Find tests in parallel
+
+* Wed Aug 07 2019 Petr Pisar <ppisar@redhat.com> - 4:5.30.0-443
+- Fix propagating non-string variables in an exception value (RT#134291)
+- Include trailing zero in scalars holding trie data (RT#134207)
+- Fix a use after free in /(?{...})/ (RT#134208)
+- Fix a use after free in debugging output of a collation
+- Fix file mode of a perl-example.stp example
+
+* Fri Jul 26 2019 Fedora Release Engineering <releng@fedoraproject.org> - 4:5.30.0-442
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
+
+* Wed Jul 17 2019 Petr Pisar <ppisar@redhat.com> - 4:5.30.0-441
+- Fix a test for a crash in SIGALARM handler when waiting on a child process to
+  be closed (RT#122112)
+- Fix a crash on an uninitialized warning when processing a multideref node
+  (RT#134275)
+- Preserve append mode when opening anonymous files (RT#134221)
+- Run Turkish locale tests
+
+* Tue Jun 25 2019 Petr Pisar <ppisar@redhat.com> - 4:5.30.0-440
+- Fix an out-of-buffer read while parsing a Unicode property name (RT#134134)
+- Do not panic when outputting a warning (RT#134059)
+- Fix memory handling when parsing string literals
+- Fix an undefined behavior in shifting IV variables
+- Fix stacking file test operators (CPAN RT#127073)
+- Fix a crash in SIGALARM handler when waiting on a child process to be closed
+  (RT#122112)
+- Fix a crash with a negative precision in sprintf function (RT#134008)
+- Fix an erroneous assertion on OP_SCALAR (RT#134048)
+- Prevent from wrapping a width in a numeric format string (RT#133913)
+- Fix subroutine protypes to track reference aliases (RT#134072)
+- Improve retrieving a scalar value of a variable modified in a signal handler
+  (RT#134035)
+- Fix changing packet destination sent from a UDP IO::Socket object (RT#133936)
+- Fix a stack underflow in readline() if passed an empty array as an argument
+  (#RT133989)
+- Fix setting supplementar group IDs (RT#134169)
+- Fix %%{^CAPTURE_ALL} to be an alias for %%- variable (RT#131867)
+- Fix %%{^CAPTURE} value when used after @{^CAPTURE} (RT#134193)
+
+* Tue Jun 11 2019 Jitka Plesnikova <jplesnik@redhat.com> - 4:5.30.0-439
+- Define %%perl_vendor*, %%perl_archlib, %%perl_privlib, because in rpm
+  4.15 those are no longer defined
+
+* Sun Jun 02 2019 Jitka Plesnikova <jplesnik@redhat.com> - 4:5.30.0-438
+- Perl 5.30 re-rebuild of bootstrapped packages
+
+* Wed May 22 2019 Jitka Plesnikova <jplesnik@redhat.com>, Petr Pisar <ppisar@redhat.com> - 4:5.30.0-437
+- 5.30.0 bump (see <https://metacpan.org/pod/release/XSAWYERX/perl-5.30.0/pod/perldelta.pod>
+  for release notes)
+- Make site paths specific to Perl minor version (e.g.
+  /usr/local/share/perl5/5.30) to prevent from an ABI clash after upgrade
+  to an ABI-incompatible Perl
+
+* Tue Apr 23 2019 Jitka Plesnikova <jplesnik@redhat.com> - 4:5.28.2-436
+- 5.28.2 bump (see <https://metacpan.org/pod/release/SHAY/perl-5.28.2/pod/perldelta.pod>
+  for release notes)
+
+* Fri Apr 05 2019 Petr Pisar <ppisar@redhat.com> - 4:5.28.1-435
+- Fix a leak when compiling a typed hash dereference
+- Fix a buffer overread when handling a scope error in qr/\(?{/ (RT#133879)
+- Fix a buffer overread when parsing a regular expression with an unknown
+  character name (RT#133880)
+- Fix mbstate_t initialization in POSIX::mblen (RT#133928)
+- Fix a memory leak when cloning a regular expression
+- Fix a memory leak when spawning threads in a BEGIN phase
+- Fix a memory leak when assigning a regular expression to a non-copy-on-write string
+- Fix a memory leak when assignig to a localized ${^WARNING_BITS}
+- Fix a memory leak when parsing misindented here-documents
+- Fix a memory leak in package name lookup (RT#133977)
+- Fix a memory leak when deletion in a tied hash dies
+- Fix a crash when matching case insensitively (RT#133892)
+- Fix a memory leak when warning about malformed UTF-8 string
+
+* Tue Mar 05 2019 Björn Esser <besser82@fedoraproject.org> - 4:5.28.1-434
+- Add explicit Requires: libxcrypt-devel to devel sub-package (bug #1666098)
+
+* Fri Feb 22 2019 Petr Pisar <ppisar@redhat.com> - 4:5.28.1-433
+- Fix a crash when parsing #line directives with large numbers in eval
+  (RT#131562)
+- Fix setting magic when changing $^R (RT#133782)
+- Fix a race when loading XS modules
+- Fix extending a stack in Perl parser (RT#133778)
+
+* Fri Feb 01 2019 Fedora Release Engineering <releng@fedoraproject.org> - 4:5.28.1-432
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
+
+* Wed Jan 16 2019 Petr Pisar <ppisar@redhat.com> - 4:5.28.1-431
+- Remove a fix for un undefined C behavior in NULL pointer arithmetics
+  (RT#133223) because it changes perl ABI
+
+* Mon Jan 14 2019 Petr Pisar <ppisar@redhat.com> - 4:5.28.1-430
+- Adjust tests to gdbm-1.15 using an upstream fix (RT#133295)
+- Do not close an IPC pipe that already has a desired descriptor (RT#133726)
+- Fix reporting a line number for non-terminated prototypes (RT#133524)
+- Fix first eof() return value (RT#133721)
+- Fix a crash when compiling a malformed form (RT#132158)
+- Fix un undefined C behavior in NULL pointer arithmetics (RT#133223)
+- Prevent long jumps from clobbering local variables (RT#133575)
+- Fix a mismatch with a case-insesitive regular expression on a text with ligatures
+  (RT#133756)
+- Fix the interpreter path if procfs is not mounted (RT#133573)
+
+* Mon Jan 14 2019 Björn Esser <besser82@fedoraproject.org> - 4:5.28.1-429
+- Rebuilt for libcrypt.so.2 (#1666033)
+
+* Sun Jan 13 2019 Björn Esser <besser82@fedoraproject.org> - 4:5.28.1-428
+- Add BuildRequires: gcc-c++ for tests
+
+* Fri Nov 30 2018 Petr Pisar <ppisar@redhat.com> - 4:5.28.1-427
+- Fix script run matching to allow ASCII digits in scripts that use their own in
+  addition (RT#133547)
+- Fix PathTools tests to cope with ESTALE error (RT#133534)
+- Fix an undefined behaviour in S_hv_delete_common()
+- Fix in-place edit to replace files on a successful perl exit status
+  (bug #1650041)
+- Fix compiling regular expressions that contain both compile- and run-time
+  compiled code blocks (RT#133687)
+
+* Fri Nov 30 2018 Jitka Plesnikova <jplesnik@redhat.com> - 4:5.28.1-426
+- 5.28.1 bump
+- Fix CVE-2018-18312 (heap-buffer-overflow write in regcomp.c)
+
+* Fri Nov 02 2018 Petr Pisar <ppisar@redhat.com> - 4:5.28.0-425
+- Install Encode developmental files when installing complete Perl
+
+* Thu Oct 25 2018 Jitka Plesnikova <jplesnik@redhat.com> -  4:5.28.0-424
+- Fix annocheck failure by passing CFLAGS to dtrace
+
+* Mon Sep 24 2018 Petr Pisar <ppisar@redhat.com> - 4:5.28.0-423
+- Fix upack "u" of invalid data (RT#132655)
+
+* Mon Sep 10 2018 Petr Pisar <ppisar@redhat.com> - 4:5.28.0-422
+- Revert a fix for a buffer overrun in deprecated S_is_utf8_common()
+  (bug #1627091)
+
+* Wed Sep 05 2018 Petr Pisar <ppisar@redhat.com> - 4:5.28.0-421
+- Fix a buffer overrun in deprecated S_is_utf8_common()
+- Fix a buffer overrun in deprecated utf8_to_uvchr()
+- Fix a time race in Time-HiRes/t/itimer.t test
+- Fix matching an ASCII digit followed by a non-ASCII digit using a script run
+- Fix Time::Piece to handle objects in overloaded methods correctly
+- Fix an assignment to a lexical variable in multiconcatenation expressions
+  (RT#133441)
+- Fix a spurious warning about uninitialized value in warn (RT#132683)
+- Require Devel::PPPort by perl-devel for h2xs script
+
+* Wed Aug 01 2018 Petr Pisar <ppisar@redhat.com> - 4:5.28.0-420
+- Fix a file descriptor leak in in-place edits (RT#133314)
+
+* Tue Jul 17 2018 Petr Pisar <ppisar@redhat.com> - 4:5.28.0-419
+- Fix index() and rindex() optimization in given-when boolean context
+  (RT#133368)
+- Fix build conditions in locale.c
+
+* Fri Jul 13 2018 Fedora Release Engineering <releng@fedoraproject.org> - 4:5.28.0-418
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
+
+* Mon Jul 09 2018 Petr Pisar <ppisar@redhat.com> - 4:5.28.0-417
+- 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
+
+* Wed Jun 27 2018 Jitka Plesnikova <jplesnik@redhat.com> - 4:5.28.0-416
+- Stop providing old perl(MODULE_COMPAT_5.26.*)
+
+* Tue Jun 26 2018 Jitka Plesnikova <jplesnik@redhat.com> - 4:5.28.0-415
+- 5.28.0 bump (see <https://metacpan.org/pod/release/XSAWYERX/perl-5.28.0/pod/perldelta.pod>
+  for release notes)
+
+* Fri May 25 2018 Petr Pisar <ppisar@redhat.com> - 4:5.26.2-414
+- Fix an infinite loop in the regular expression compiler (RT#133185)
+
+* Fri May 18 2018 Jitka Plesnikova <jplesnik@redhat.com> - 4:5.26.2-413
+- Correct license tags of perl-libs (bug #1579524)
+
+* Thu Apr 19 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)
+
+* Mon Apr 16 2018 Petr Pisar <ppisar@redhat.com> - 4:5.26.2-411
+- 5.26.2 bump
+
+* Mon Mar 26 2018 Petr Pisar <ppisar@redhat.com> - 4:5.26.2-410.RC1
+- 5.26.2-RC1 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
+
+