diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..d93311d --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +SOURCES/perl-5.32.1.tar.xz diff --git a/.perl.metadata b/.perl.metadata new file mode 100644 index 0000000..7c913e5 --- /dev/null +++ b/.perl.metadata @@ -0,0 +1 @@ +1fb4f710d139da1e1a3e1fa4eaba201fcaa8e18e SOURCES/perl-5.32.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 +To: Petr Šabata +Cc: Tom Christiansen , 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 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..ccce42c --- /dev/null +++ b/SOURCES/gendep.macros @@ -0,0 +1,2475 @@ +%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.36 \ +Provides: perl(Archive::Tar::Constant) = 2.36 \ +Provides: perl(Archive::Tar::File) = 2.36 \ +%{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_AutoLoader \ +Requires: perl(:VERSION) >= 5.6.0 \ +Requires: perl(strict) \ +Provides: perl(AutoLoader) = 5.74 \ +%{nil} +%global gendep_perl_AutoSplit \ +Requires: perl(Config) \ +Requires: perl(Exporter) \ +Requires: perl(File::Basename) \ +Requires: perl(File::Path) \ +Requires: perl(File::Spec::Functions) \ +Requires: perl(strict) \ +Provides: perl(AutoSplit) = 1.06 \ +%{nil} +%global gendep_perl_B \ +Requires: perl(B) \ +Requires: perl(B::Concise) \ +Requires: perl(B::Op_private) \ +Requires: perl(B::Terse) \ +Requires: perl(Carp) \ +Requires: perl(Config) \ +Requires: perl(Exporter) \ +Requires: perl(feature) \ +Requires: perl(re) \ +Requires: perl(strict) \ +Requires: perl(warnings) \ +Provides: perl(B) = 1.80 \ +Provides: perl(B::Concise) = 1.004 \ +Provides: perl(B::Deparse) = 1.54 \ +Provides: perl(B::OBJECT) \ +Provides: perl(B::Op_private) = 5.032001 \ +Provides: perl(B::Showlex) = 1.05 \ +Provides: perl(B::Terse) = 1.09 \ +Provides: perl(B::Xref) = 1.07 \ +Provides: perl(O) = 1.03 \ +%{nil} +%global gendep_perl_B_debuginfo \ +%{nil} +%global gendep_perl_Benchmark \ +Requires: perl(Carp) \ +Requires: perl(Exporter) \ +Requires: perl(strict) \ +Provides: perl(Benchmark) = 1.23 \ +%{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(POSIX) \ +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.675 \ +Provides: perl(CPAN) = 2.27 \ +Provides: perl(CPAN::Author) = 5.5002 \ +Provides: perl(CPAN::Bundle) = 5.5005 \ +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.27 \ +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.5012 \ +Provides: perl(CPAN::FTP::netrc) = 1.01 \ +Provides: perl(CPAN::FirstTime) = 5.5314 \ +Provides: perl(CPAN::HTTP::Client) = 1.9601 \ +Provides: perl(CPAN::HTTP::Credentials) = 1.9601 \ +Provides: perl(CPAN::HandleConfig) = 5.5011 \ +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.27 \ +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.5003 \ +Provides: perl(CPAN::Queue::Item) \ +Provides: perl(CPAN::Shell) = 5.5009 \ +Provides: perl(CPAN::Tarzip) = 5.5013 \ +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_Class_Struct \ +Requires: perl(:VERSION) >= 5.6.0 \ +Requires: perl(Carp) \ +Requires: perl(Exporter) \ +Requires: perl(strict) \ +Requires: perl(warnings::register) \ +Provides: perl(Class::Struct) = 0.66 \ +Provides: perl(Class::Struct::Tie_ISA) \ +%{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.093 \ +%{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.093 \ +%{nil} +%global gendep_perl_Compress_Raw_Zlib_debuginfo \ +%{nil} +%global gendep_perl_Config_Extensions \ +Requires: perl(Config) \ +Requires: perl(Exporter) \ +Requires: perl(strict) \ +Provides: perl(Config::Extensions) = 0.03 \ +%{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_DBM_Filter \ +Requires: perl(Carp) \ +Requires: perl(strict) \ +Requires: perl(warnings) \ +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 \ +%{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.853 \ +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.57 \ +%{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_DirHandle \ +Requires: perl(:VERSION) >= 5.0.0 \ +Requires: perl(Carp) \ +Requires: perl(Symbol) \ +Provides: perl(DirHandle) = 1.05 \ +%{nil} +%global gendep_perl_Dumpvalue \ +Requires: perl(:VERSION) >= 5.6.0 \ +Requires: perl(strict) \ +Requires: perl(warnings) \ +Provides: perl(Dumpvalue) = 1.21 \ +%{nil} +%global gendep_perl_DynaLoader \ +Requires: perl(Config) \ +Provides: perl(DynaLoader) = 1.47 \ +%{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.06 \ +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.8 \ +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_English \ +Requires: perl(Exporter) \ +Provides: perl(English) = 1.11 \ +%{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.74 \ +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.280234 \ +Provides: perl(ExtUtils::CBuilder::Base) = 0.280234 \ +Provides: perl(ExtUtils::CBuilder::Platform::Unix) = 0.280234 \ +Provides: perl(ExtUtils::CBuilder::Platform::VMS) = 0.280234 \ +Provides: perl(ExtUtils::CBuilder::Platform::Windows) = 0.280234 \ +Provides: perl(ExtUtils::CBuilder::Platform::Windows::BCC) = 0.280234 \ +Provides: perl(ExtUtils::CBuilder::Platform::Windows::GCC) = 0.280234 \ +Provides: perl(ExtUtils::CBuilder::Platform::Windows::MSVC) = 0.280234 \ +Provides: perl(ExtUtils::CBuilder::Platform::aix) = 0.280234 \ +Provides: perl(ExtUtils::CBuilder::Platform::android) = 0.280234 \ +Provides: perl(ExtUtils::CBuilder::Platform::cygwin) = 0.280234 \ +Provides: perl(ExtUtils::CBuilder::Platform::darwin) = 0.280234 \ +Provides: perl(ExtUtils::CBuilder::Platform::dec_osf) = 0.280234 \ +Provides: perl(ExtUtils::CBuilder::Platform::linux) = 0.280206 \ +Provides: perl(ExtUtils::CBuilder::Platform::os2) = 0.280234 \ +%{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.44 \ +%{nil} +%global gendep_perl_ExtUtils_Constant \ +Requires: perl(Carp) \ +Requires: perl(Exporter) \ +Requires: perl(ExtUtils::Constant::Base) \ +Requires: perl(ExtUtils::Constant::Utils) \ +Requires: perl(ExtUtils::Constant::XS) \ +Requires: perl(Text::Wrap) \ +Requires: perl(constant) \ +Requires: perl(strict) \ +Requires: perl(vars) \ +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 \ +%{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.44 \ +Provides: perl(ExtUtils::Liblist) = 7.44 \ +Provides: perl(ExtUtils::Liblist::Kid) = 7.44 \ +Provides: perl(ExtUtils::MM) = 7.44 \ +Provides: perl(ExtUtils::MM_AIX) = 7.44 \ +Provides: perl(ExtUtils::MM_Any) = 7.44 \ +Provides: perl(ExtUtils::MM_BeOS) = 7.44 \ +Provides: perl(ExtUtils::MM_Cygwin) = 7.44 \ +Provides: perl(ExtUtils::MM_DOS) = 7.44 \ +Provides: perl(ExtUtils::MM_Darwin) = 7.44 \ +Provides: perl(ExtUtils::MM_MacOS) = 7.44 \ +Provides: perl(ExtUtils::MM_NW5) = 7.44 \ +Provides: perl(ExtUtils::MM_OS2) = 7.44 \ +Provides: perl(ExtUtils::MM_QNX) = 7.44 \ +Provides: perl(ExtUtils::MM_UWIN) = 7.44 \ +Provides: perl(ExtUtils::MM_Unix) = 7.44 \ +Provides: perl(ExtUtils::MM_VMS) = 7.44 \ +Provides: perl(ExtUtils::MM_VOS) = 7.44 \ +Provides: perl(ExtUtils::MM_Win32) = 7.44 \ +Provides: perl(ExtUtils::MM_Win95) = 7.44 \ +Provides: perl(ExtUtils::MY) = 7.44 \ +Provides: perl(ExtUtils::MakeMaker) = 7.44 \ +Provides: perl(ExtUtils::MakeMaker::Config) = 7.44 \ +Provides: perl(ExtUtils::MakeMaker::Locale) = 7.44 \ +Provides: perl(ExtUtils::MakeMaker::version) = 7.44 \ +Provides: perl(ExtUtils::Mkbootstrap) = 7.44 \ +Provides: perl(ExtUtils::Mksymlists) = 7.44 \ +Provides: perl(ExtUtils::testlib) = 7.44 \ +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_Fcntl \ +Requires: perl(Exporter) \ +Requires: perl(XSLoader) \ +Requires: perl(strict) \ +Provides: perl(Fcntl) = 1.13 \ +%{nil} +%global gendep_perl_Fcntl_debuginfo \ +%{nil} +%global gendep_perl_File_Basename \ +Requires: perl(:VERSION) >= 5.6.0 \ +Requires: perl(Exporter) \ +Requires: perl(strict) \ +Requires: perl(warnings) \ +Provides: perl(File::Basename) = 2.85 \ +%{nil} +%global gendep_perl_File_Compare \ +Requires: perl(:VERSION) >= 5.6.0 \ +Requires: perl(Exporter) \ +Requires: perl(strict) \ +Requires: perl(warnings) \ +Provides: perl(File::Compare) = 1.1006 \ +%{nil} +%global gendep_perl_File_Copy \ +Requires: perl(:VERSION) >= 5.6.0 \ +Requires: perl(Config) \ +Requires: perl(Exporter) \ +Requires: perl(File::Spec) \ +Requires: perl(strict) \ +Requires: perl(warnings) \ +Provides: perl(File::Copy) = 2.34 \ +%{nil} +%global gendep_perl_File_DosGlob \ +Requires: perl(XSLoader) \ +Requires: perl(strict) \ +Requires: perl(warnings) \ +Provides: perl(File::DosGlob) = 1.12 \ +%{nil} +%global gendep_perl_File_DosGlob_debuginfo \ +%{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_Find \ +Requires: perl(:VERSION) >= 5.6.0 \ +Requires: perl(Cwd) \ +Requires: perl(Exporter) \ +Requires: perl(File::Basename) \ +Requires: perl(File::Spec) \ +Requires: perl(strict) \ +Requires: perl(warnings) \ +Requires: perl(warnings::register) \ +Provides: perl(File::Find) = 1.37 \ +%{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_File_stat \ +Requires: perl(:VERSION) >= 5.6.0 \ +Requires: perl(Carp) \ +Requires: perl(Class::Struct) \ +Requires: perl(Exporter) \ +Requires: perl(Fcntl) \ +Requires: perl(constant) \ +Requires: perl(overload) \ +Requires: perl(strict) \ +Requires: perl(warnings) \ +Requires: perl(warnings::register) \ +Provides: perl(File::stat) = 1.09 \ +%{nil} +%global gendep_perl_FileCache \ +Requires: perl(:VERSION) >= 5.6.0 \ +Requires: perl(Carp) \ +Requires: perl(Exporter) \ +Requires: perl(parent) \ +Requires: perl(strict) \ +Provides: perl(FileCache) = 1.10 \ +%{nil} +%global gendep_perl_FileHandle \ +Requires: perl(:VERSION) >= 5.6.0 \ +Requires: perl(IO::File) \ +Requires: perl(strict) \ +Provides: perl(FileHandle) = 2.03 \ +%{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.96 \ +%{nil} +%global gendep_perl_Filter_debuginfo \ +%{nil} +%global gendep_perl_FindBin \ +Requires: perl(:VERSION) >= 5.0.0 \ +Requires: perl(Carp) \ +Requires: perl(Cwd) \ +Requires: perl(Exporter) \ +Requires: perl(File::Basename) \ +Requires: perl(File::Spec) \ +Provides: perl(FindBin) = 1.51 \ +%{nil} +%global gendep_perl_GDBM_File \ +Requires: perl(Carp) \ +Requires: perl(Exporter) \ +Requires: perl(Tie::Hash) \ +Requires: perl(XSLoader) \ +Requires: perl(strict) \ +Requires: perl(warnings) \ +Provides: perl(GDBM_File) = 1.18 \ +%{nil} +%global gendep_perl_GDBM_File_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.51 \ +Provides: perl(Getopt::Long::CallBack) \ +Provides: perl(Getopt::Long::Parser) \ +%{nil} +%global gendep_perl_Getopt_Std \ +Requires: perl(:VERSION) >= 5.0.0 \ +Requires: perl(Exporter) \ +Provides: perl(Getopt::Std) = 1.12 \ +%{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_Hash_Util \ +Requires: perl(:VERSION) >= 5.7.3 \ +Requires: perl(Carp) \ +Requires: perl(Exporter) \ +Requires: perl(Scalar::Util) \ +Requires: perl(strict) \ +Requires: perl(warnings) \ +Requires: perl(warnings::register) \ +Provides: perl(Hash::Util) = 0.23 \ +%{nil} +%global gendep_perl_Hash_Util_FieldHash \ +Requires: perl(:VERSION) >= 5.9.4 \ +Requires: perl(Exporter) \ +Requires: perl(Scalar::Util) \ +Requires: perl(strict) \ +Requires: perl(warnings) \ +Provides: perl(Hash::Util::FieldHash) = 1.20 \ +%{nil} +%global gendep_perl_Hash_Util_FieldHash_debuginfo \ +%{nil} +%global gendep_perl_Hash_Util_debuginfo \ +%{nil} +%global gendep_perl_I18N_Collate \ +Requires: perl(Exporter) \ +Requires: perl(POSIX) \ +Requires: perl(overload) \ +Requires: perl(strict) \ +Requires: perl(warnings::register) \ +Provides: perl(I18N::Collate) = 1.02 \ +%{nil} +%global gendep_perl_I18N_LangTags \ +Requires: perl(:VERSION) >= 5.0.0 \ +Requires: perl(Exporter) \ +Requires: perl(I18N::LangTags) \ +Requires: perl(strict) \ +Provides: perl(I18N::LangTags) = 0.44 \ +Provides: perl(I18N::LangTags::Detect) = 1.08 \ +Provides: perl(I18N::LangTags::List) = 0.40 \ +%{nil} +%global gendep_perl_I18N_Langinfo \ +Requires: perl(:VERSION) >= 5.6.0 \ +Requires: perl(Carp) \ +Requires: perl(Exporter) \ +Requires: perl(XSLoader) \ +Requires: perl(strict) \ +Requires: perl(warnings) \ +Provides: perl(I18N::Langinfo) = 0.19 \ +%{nil} +%global gendep_perl_I18N_Langinfo_debuginfo \ +%{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.43 \ +Provides: perl(IO::Dir) = 1.41 \ +Provides: perl(IO::File) = 1.41 \ +Provides: perl(IO::Handle) = 1.42 \ +Provides: perl(IO::Pipe) = 1.41 \ +Provides: perl(IO::Pipe::End) \ +Provides: perl(IO::Poll) = 1.41 \ +Provides: perl(IO::Seekable) = 1.41 \ +Provides: perl(IO::Select) = 1.42 \ +Provides: perl(IO::Socket) = 1.43 \ +Provides: perl(IO::Socket::INET) = 1.41 \ +Provides: perl(IO::Socket::UNIX) = 1.42 \ +%{nil} +%global gendep_perl_IO_Compress \ +Requires: perl(:VERSION) >= 5.6.0 \ +Requires: perl(Carp) \ +Requires: perl(Compress::Raw::Bzip2) >= 2.093 \ +Requires: perl(Compress::Raw::Zlib) >= 2.093 \ +Requires: perl(Config) \ +Requires: perl(Encode) \ +Requires: perl(Exporter) \ +Requires: perl(Fcntl) \ +Requires: perl(File::GlobMapper) \ +Requires: perl(File::Spec) \ +Requires: perl(Getopt::Long) \ +Requires: perl(IO::Compress::Adapter::Bzip2) >= 2.093 \ +Requires: perl(IO::Compress::Adapter::Deflate) >= 2.093 \ +Requires: perl(IO::Compress::Adapter::Identity) >= 2.093 \ +Requires: perl(IO::Compress::Base) >= 2.093 \ +Requires: perl(IO::Compress::Base::Common) >= 2.093 \ +Requires: perl(IO::Compress::Gzip) >= 2.093 \ +Requires: perl(IO::Compress::Gzip::Constants) >= 2.093 \ +Requires: perl(IO::Compress::RawDeflate) >= 2.093 \ +Requires: perl(IO::Compress::Zip) \ +Requires: perl(IO::Compress::Zip::Constants) >= 2.093 \ +Requires: perl(IO::Compress::Zlib::Constants) >= 2.093 \ +Requires: perl(IO::Compress::Zlib::Extra) >= 2.093 \ +Requires: perl(IO::File) \ +Requires: perl(IO::Handle) \ +Requires: perl(IO::Uncompress::Adapter::Bunzip2) >= 2.093 \ +Requires: perl(IO::Uncompress::Adapter::Identity) >= 2.093 \ +Requires: perl(IO::Uncompress::Adapter::Inflate) >= 2.093 \ +Requires: perl(IO::Uncompress::Base) >= 2.093 \ +Requires: perl(IO::Uncompress::Gunzip) >= 2.093 \ +Requires: perl(IO::Uncompress::Inflate) >= 2.093 \ +Requires: perl(IO::Uncompress::RawInflate) >= 2.093 \ +Requires: perl(IO::Uncompress::Unzip) >= 2.093 \ +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.093 \ +Provides: perl(File::GlobMapper) = 1.001 \ +Provides: perl(IO::Compress::Adapter::Bzip2) = 2.093 \ +Provides: perl(IO::Compress::Adapter::Deflate) = 2.093 \ +Provides: perl(IO::Compress::Adapter::Identity) = 2.093 \ +Provides: perl(IO::Compress::Base) = 2.093 \ +Provides: perl(IO::Compress::Base::Common) = 2.093 \ +Provides: perl(IO::Compress::Bzip2) = 2.093 \ +Provides: perl(IO::Compress::Deflate) = 2.093 \ +Provides: perl(IO::Compress::Gzip) = 2.093 \ +Provides: perl(IO::Compress::Gzip::Constants) = 2.093 \ +Provides: perl(IO::Compress::RawDeflate) = 2.093 \ +Provides: perl(IO::Compress::Zip) = 2.093 \ +Provides: perl(IO::Compress::Zip::Constants) = 2.093 \ +Provides: perl(IO::Compress::Zlib::Constants) = 2.093 \ +Provides: perl(IO::Compress::Zlib::Extra) = 2.093 \ +Provides: perl(IO::Uncompress::Adapter::Bunzip2) = 2.093 \ +Provides: perl(IO::Uncompress::Adapter::Identity) = 2.093 \ +Provides: perl(IO::Uncompress::Adapter::Inflate) = 2.093 \ +Provides: perl(IO::Uncompress::AnyInflate) = 2.093 \ +Provides: perl(IO::Uncompress::AnyUncompress) = 2.093 \ +Provides: perl(IO::Uncompress::Base) = 2.093 \ +Provides: perl(IO::Uncompress::Bunzip2) \ +Provides: perl(IO::Uncompress::Bunzip2) = 2.093 \ +Provides: perl(IO::Uncompress::Gunzip) = 2.093 \ +Provides: perl(IO::Uncompress::Inflate) = 2.093 \ +Provides: perl(IO::Uncompress::RawInflate) = 2.093 \ +Provides: perl(IO::Uncompress::Unzip) = 2.093 \ +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(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.04 \ +%{nil} +%global gendep_perl_IPC_Open3 \ +Requires: perl(:VERSION) >= 5.0.0 \ +Requires: perl(Carp) \ +Requires: perl(Exporter) \ +Requires: perl(IPC::Open3) \ +Requires: perl(Symbol) \ +Requires: perl(constant) \ +Requires: perl(strict) \ +Provides: perl(IPC::Open2) = 1.05 \ +Provides: perl(IPC::Open3) = 1.21 \ +%{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(Encode) \ +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.04 \ +Provides: perl(JSON::PP::Boolean) = 4.04 \ +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.999818 \ +Provides: perl(Math::BigInt) = 1.999818 \ +Provides: perl(Math::BigInt::Calc) = 1.999818 \ +Provides: perl(Math::BigInt::Lib) = 1.999818 \ +%{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.5009 \ +%{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.20210123 \ +Provides: perl(Module::CoreList::Utils) = 5.20210123 \ +%{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.70 \ +%{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.000037 \ +%{nil} +%global gendep_perl_NDBM_File \ +Requires: perl(Tie::Hash) \ +Requires: perl(XSLoader) \ +Requires: perl(strict) \ +Requires: perl(warnings) \ +Provides: perl(NDBM_File) = 1.15 \ +%{nil} +%global gendep_perl_NDBM_File_debuginfo \ +%{nil} +%global gendep_perl_NEXT \ +Requires: perl(Carp) \ +Requires: perl(overload) \ +Requires: perl(strict) \ +Requires: perl(warnings) \ +Provides: perl(EVERY::LAST) \ +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) \ +%{nil} +%global gendep_perl_Net \ +Requires: perl(:VERSION) >= 5.6.0 \ +Requires: perl(Class::Struct) \ +Requires: perl(Exporter) \ +Requires: perl(strict) \ +Provides: perl(Net::hostent) = 1.02 \ +Provides: perl(Net::netent) = 1.01 \ +Provides: perl(Net::protoent) = 1.01 \ +Provides: perl(Net::servent) = 1.02 \ +%{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.72 \ +%{nil} +%global gendep_perl_ODBM_File \ +Requires: perl(Tie::Hash) \ +Requires: perl(XSLoader) \ +Requires: perl(strict) \ +Requires: perl(warnings) \ +Provides: perl(ODBM_File) = 1.16 \ +%{nil} +%global gendep_perl_ODBM_File_debuginfo \ +%{nil} +%global gendep_perl_Opcode \ +Requires: perl(:VERSION) >= 5.6.0 \ +Requires: perl(Carp) \ +Requires: perl(Exporter) \ +Requires: perl(Opcode) \ +Requires: perl(XSLoader) \ +Requires: perl(strict) \ +Requires: perl(subs) \ +Provides: perl(Opcode) = 1.48 \ +Provides: perl(ops) = 1.02 \ +%{nil} +%global gendep_perl_Opcode_debuginfo \ +%{nil} +%global gendep_perl_POSIX \ +Requires: perl(Exporter) \ +Requires: perl(Fcntl) \ +Requires: perl(Tie::Hash) \ +Requires: perl(XSLoader) \ +Requires: perl(strict) \ +Requires: perl(warnings) \ +Provides: perl(POSIX) = 1.94 \ +Provides: perl(POSIX::SigAction) \ +Provides: perl(POSIX::SigRt) \ +Provides: perl(POSIX::SigSet) \ +%{nil} +%global gendep_perl_POSIX_debuginfo \ +%{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.79 \ +%{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_Functions \ +Requires: perl(Exporter) \ +Requires: perl(strict) \ +Provides: perl(Pod::Functions) = 1.13 \ +%{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.25 \ +Provides: perl(Pod::Simple::XHTML::LocalPodLinks) \ +%{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(if) \ +Requires: perl(integer) \ +Requires: perl(overload) \ +Requires: perl(strict) \ +Requires: perl(vars) \ +Requires: perl(warnings) \ +Provides: perl(Pod::Simple) = 3.40 \ +Provides: perl(Pod::Simple::BlackBox) = 3.40 \ +Provides: perl(Pod::Simple::Checker) = 3.40 \ +Provides: perl(Pod::Simple::Debug) = 3.40 \ +Provides: perl(Pod::Simple::DumpAsText) = 3.40 \ +Provides: perl(Pod::Simple::DumpAsXML) = 3.40 \ +Provides: perl(Pod::Simple::HTML) = 3.40 \ +Provides: perl(Pod::Simple::HTMLBatch) = 3.40 \ +Provides: perl(Pod::Simple::HTMLLegacy) = 5.01 \ +Provides: perl(Pod::Simple::JustPod) \ +Provides: perl(Pod::Simple::LinkSection) = 3.40 \ +Provides: perl(Pod::Simple::Methody) = 3.40 \ +Provides: perl(Pod::Simple::Progress) = 3.40 \ +Provides: perl(Pod::Simple::PullParser) = 3.40 \ +Provides: perl(Pod::Simple::PullParserEndToken) = 3.40 \ +Provides: perl(Pod::Simple::PullParserStartToken) = 3.40 \ +Provides: perl(Pod::Simple::PullParserTextToken) = 3.40 \ +Provides: perl(Pod::Simple::PullParserToken) = 3.40 \ +Provides: perl(Pod::Simple::RTF) = 3.40 \ +Provides: perl(Pod::Simple::Search) = 3.40 \ +Provides: perl(Pod::Simple::SimpleTree) = 3.40 \ +Provides: perl(Pod::Simple::Text) = 3.40 \ +Provides: perl(Pod::Simple::TextContent) = 3.40 \ +Provides: perl(Pod::Simple::TiedOutFH) = 3.40 \ +Provides: perl(Pod::Simple::Transcode) = 3.40 \ +Provides: perl(Pod::Simple::TranscodeDumb) = 3.40 \ +Provides: perl(Pod::Simple::TranscodeSmart) = 3.40 \ +Provides: perl(Pod::Simple::XHTML) = 3.40 \ +Provides: perl(Pod::Simple::XMLOutStream) = 3.40 \ +%{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_Safe \ +Requires: perl(:VERSION) >= 5.3.0 \ +Requires: perl(B) \ +Requires: perl(Carp) \ +Requires: perl(Opcode) >= 1.01 \ +Requires: perl(Scalar::Util) \ +Requires: perl(strict) \ +Requires: perl(utf8) \ +Provides: perl(Safe) = 2.41 \ +%{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.55 \ +Provides: perl(List::Util::XS) = 1.55 \ +Provides: perl(Scalar::Util) = 1.55 \ +Provides: perl(Sub::Util) = 1.55 \ +%{nil} +%global gendep_perl_Scalar_List_Utils_debuginfo \ +%{nil} +%global gendep_perl_Search_Dict \ +Requires: perl(:VERSION) >= 5.0.0 \ +Requires: perl(Exporter) \ +Requires: perl(strict) \ +Provides: perl(Search::Dict) = 1.07 \ +%{nil} +%global gendep_perl_SelectSaver \ +Requires: perl(:VERSION) >= 5.0.0 \ +Requires: perl(Carp) \ +Requires: perl(Symbol) \ +Provides: perl(SelectSaver) = 1.02 \ +%{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.26 \ +%{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.029 \ +%{nil} +%global gendep_perl_Socket_debuginfo \ +%{nil} +%global gendep_perl_Storable \ +Requires: perl(Carp) \ +Requires: perl(Exporter) \ +Provides: perl(Storable) = 3.21 \ +%{nil} +%global gendep_perl_Storable_debuginfo \ +%{nil} +%global gendep_perl_Symbol \ +Requires: perl(Exporter) \ +Provides: perl(Symbol) = 1.08 \ +%{nil} +%global gendep_perl_Sys_Hostname \ +Requires: perl(Carp) \ +Requires: perl(Exporter) \ +Requires: perl(strict) \ +Requires: perl(warnings) \ +Provides: perl(Sys::Hostname) = 1.23 \ +%{nil} +%global gendep_perl_Sys_Hostname_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.36 \ +%{nil} +%global gendep_perl_Sys_Syslog_debuginfo \ +%{nil} +%global gendep_perl_Term_ANSIColor \ +Requires: perl(:VERSION) >= 5.8.0 \ +Requires: perl(Exporter) \ +Requires: perl(strict) \ +Requires: perl(warnings) \ +Provides: perl(Term::ANSIColor) = 5.01 \ +%{nil} +%global gendep_perl_Term_Cap \ +Requires: perl(strict) \ +Requires: perl(vars) \ +Provides: perl(Term::Cap) = 1.17 \ +%{nil} +%global gendep_perl_Term_Complete \ +Requires: perl(:VERSION) >= 5.0.0 \ +Requires: perl(Exporter) \ +Requires: perl(strict) \ +Provides: perl(Term::Complete) = 1.403 \ +%{nil} +%global gendep_perl_Term_ReadLine \ +Requires: perl(strict) \ +Provides: perl(Term::ReadLine) = 1.17 \ +Provides: perl(Term::ReadLine::Stub) \ +Provides: perl(Term::ReadLine::TermCap) \ +Provides: perl(Term::ReadLine::Tk) \ +%{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.302175 \ +Provides: perl(Test2::API) = 1.302175 \ +Provides: perl(Test2::API::Breakage) = 1.302175 \ +Provides: perl(Test2::API::Context) = 1.302175 \ +Provides: perl(Test2::API::Instance) = 1.302175 \ +Provides: perl(Test2::API::Stack) = 1.302175 \ +Provides: perl(Test2::Event) = 1.302175 \ +Provides: perl(Test2::Event::Bail) = 1.302175 \ +Provides: perl(Test2::Event::Diag) = 1.302175 \ +Provides: perl(Test2::Event::Encoding) = 1.302175 \ +Provides: perl(Test2::Event::Exception) = 1.302175 \ +Provides: perl(Test2::Event::Fail) = 1.302175 \ +Provides: perl(Test2::Event::Generic) = 1.302175 \ +Provides: perl(Test2::Event::Note) = 1.302175 \ +Provides: perl(Test2::Event::Ok) = 1.302175 \ +Provides: perl(Test2::Event::Pass) = 1.302175 \ +Provides: perl(Test2::Event::Plan) = 1.302175 \ +Provides: perl(Test2::Event::Skip) = 1.302175 \ +Provides: perl(Test2::Event::Subtest) = 1.302175 \ +Provides: perl(Test2::Event::TAP::Version) = 1.302175 \ +Provides: perl(Test2::Event::V2) = 1.302175 \ +Provides: perl(Test2::Event::Waiting) = 1.302175 \ +Provides: perl(Test2::EventFacet) = 1.302175 \ +Provides: perl(Test2::EventFacet::About) = 1.302175 \ +Provides: perl(Test2::EventFacet::Amnesty) = 1.302175 \ +Provides: perl(Test2::EventFacet::Assert) = 1.302175 \ +Provides: perl(Test2::EventFacet::Control) = 1.302175 \ +Provides: perl(Test2::EventFacet::Error) = 1.302175 \ +Provides: perl(Test2::EventFacet::Hub) = 1.302175 \ +Provides: perl(Test2::EventFacet::Info) = 1.302175 \ +Provides: perl(Test2::EventFacet::Info::Table) = 1.302175 \ +Provides: perl(Test2::EventFacet::Meta) = 1.302175 \ +Provides: perl(Test2::EventFacet::Parent) = 1.302175 \ +Provides: perl(Test2::EventFacet::Plan) = 1.302175 \ +Provides: perl(Test2::EventFacet::Render) = 1.302175 \ +Provides: perl(Test2::EventFacet::Trace) = 1.302175 \ +Provides: perl(Test2::Formatter) = 1.302175 \ +Provides: perl(Test2::Formatter::TAP) = 1.302175 \ +Provides: perl(Test2::Hub) = 1.302175 \ +Provides: perl(Test2::Hub::Interceptor) = 1.302175 \ +Provides: perl(Test2::Hub::Interceptor::Terminator) = 1.302175 \ +Provides: perl(Test2::Hub::Subtest) = 1.302175 \ +Provides: perl(Test2::IPC) = 1.302175 \ +Provides: perl(Test2::IPC::Driver) = 1.302175 \ +Provides: perl(Test2::IPC::Driver::Files) = 1.302175 \ +Provides: perl(Test2::Tools::Tiny) = 1.302175 \ +Provides: perl(Test2::Util) = 1.302175 \ +Provides: perl(Test2::Util::ExternalMeta) = 1.302175 \ +Provides: perl(Test2::Util::Facets2Legacy) = 1.302175 \ +Provides: perl(Test2::Util::HashBase) = 1.302175 \ +Provides: perl(Test2::Util::Trace) = 1.302175 \ +Provides: perl(Test::Builder) = 1.302175 \ +Provides: perl(Test::Builder::Formatter) = 1.302175 \ +Provides: perl(Test::Builder::IO::Scalar) = 2.114 \ +Provides: perl(Test::Builder::Module) = 1.302175 \ +Provides: perl(Test::Builder::Tester) = 1.302175 \ +Provides: perl(Test::Builder::Tester::Color) = 1.302175 \ +Provides: perl(Test::Builder::Tester::Tie) \ +Provides: perl(Test::Builder::TodoDiag) = 1.302175 \ +Provides: perl(Test::More) = 1.302175 \ +Provides: perl(Test::Simple) = 1.302175 \ +Provides: perl(Test::Tester) = 1.302175 \ +Provides: perl(Test::Tester::Capture) = 1.302175 \ +Provides: perl(Test::Tester::CaptureRunner) = 1.302175 \ +Provides: perl(Test::Tester::Delegate) = 1.302175 \ +Provides: perl(Test::use::ok) = 1.302175 \ +Provides: perl(ok) = 1.302175 \ +%{nil} +%global gendep_perl_Text_Abbrev \ +Requires: perl(:VERSION) >= 5.5.0 \ +Requires: perl(Exporter) \ +Provides: perl(Text::Abbrev) = 1.02 \ +%{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 \ +Requires: perl(Config) \ +Requires: perl(Exporter) \ +Requires: perl(strict) \ +Requires: perl(threads) \ +Requires: perl(threads::shared) \ +Requires: perl(warnings) \ +Provides: perl(Thread) = 3.05 \ +%{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.14 \ +%{nil} +%global gendep_perl_Thread_Semaphore \ +Requires: perl(Scalar::Util) >= 1.10 \ +Requires: perl(strict) \ +Requires: perl(threads::shared) \ +Requires: perl(warnings) \ +Provides: perl(Thread::Semaphore) = 2.13 \ +%{nil} +%global gendep_perl_Tie \ +Requires: perl(:VERSION) >= 5.6.0 \ +Requires: perl(Carp) \ +Requires: perl(Tie::Handle) \ +Requires: perl(Tie::StdHandle) \ +Requires: perl(integer) \ +Requires: perl(strict) \ +Requires: perl(warnings::register) \ +Provides: perl(Tie::Array) = 1.07 \ +Provides: perl(Tie::Handle) = 4.2 \ +Provides: perl(Tie::Scalar) = 1.05 \ +Provides: perl(Tie::StdArray) \ +Provides: perl(Tie::StdHandle) = 4.6 \ +Provides: perl(Tie::StdScalar) \ +Provides: perl(Tie::SubstrHash) = 1.00 \ +%{nil} +%global gendep_perl_Tie_File \ +Requires: perl(:VERSION) >= 5.5.0 \ +Requires: perl(Carp) \ +Requires: perl(Fcntl) \ +Requires: perl(POSIX) \ +Requires: perl(strict) \ +Requires: perl(warnings) \ +Provides: perl(Tie::File) = 1.06 \ +Provides: perl(Tie::File::Cache) \ +Provides: perl(Tie::File::Heap) \ +%{nil} +%global gendep_perl_Tie_Memoize \ +Requires: perl(Tie::Hash) \ +Requires: perl(strict) \ +Provides: perl(Tie::Memoize) = 1.1 \ +%{nil} +%global gendep_perl_Tie_RefHash \ +Requires: perl(:VERSION) >= 5.5.0 \ +Requires: perl(Carp) \ +Requires: perl(Config) \ +Requires: perl(Tie::Hash) \ +Requires: perl(strict) \ +Requires: perl(vars) \ +Provides: perl(Tie::RefHash) = 1.39 \ +Provides: perl(Tie::RefHash::Nestable) \ +%{nil} +%global gendep_perl_Time \ +Requires: perl(:VERSION) >= 5.6.0 \ +Requires: perl(Class::Struct) \ +Requires: perl(Exporter) \ +Requires: perl(Time::tm) \ +Requires: perl(strict) \ +Provides: perl(Time::gmtime) = 1.04 \ +Provides: perl(Time::localtime) = 1.03 \ +Provides: perl(Time::tm) = 1.00 \ +%{nil} +%global gendep_perl_Time_HiRes \ +Requires: perl(Exporter) \ +Requires: perl(XSLoader) \ +Requires: perl(strict) \ +Provides: perl(Time::HiRes) = 1.9764 \ +%{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.3401 \ +Provides: perl(Time::Seconds) = 1.3401 \ +%{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.27 \ +%{nil} +%global gendep_perl_Unicode_Normalize_debuginfo \ +%{nil} +%global gendep_perl_Unicode_UCD \ +Requires: perl(Carp) \ +Requires: perl(Exporter) \ +Requires: perl(File::Spec) \ +Requires: perl(Unicode::Normalize) \ +Requires: perl(charnames) \ +Requires: perl(feature) \ +Requires: perl(if) \ +Requires: perl(integer) \ +Requires: perl(re) \ +Requires: perl(strict) \ +Requires: perl(warnings) \ +Provides: perl(Unicode::UCD) = 0.75 \ +%{nil} +%global gendep_perl_User_pwent \ +Requires: perl(:VERSION) >= 5.6.0 \ +Requires: perl(Carp) \ +Requires: perl(Class::Struct) \ +Requires: perl(Config) \ +Requires: perl(Exporter) \ +Requires: perl(strict) \ +Requires: perl(warnings) \ +Provides: perl(User::grent) = 1.03 \ +Provides: perl(User::pwent) = 1.01 \ +%{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.32 \ +Provides: perl(autodie) = 2.32 \ +Provides: perl(autodie::Scope::Guard) = 2.32 \ +Provides: perl(autodie::Scope::GuardStack) = 2.32 \ +Provides: perl(autodie::Util) = 2.32 \ +Provides: perl(autodie::exception) = 2.32 \ +Provides: perl(autodie::exception::system) = 2.32 \ +Provides: perl(autodie::hints) = 2.32 \ +Provides: perl(autodie::skip) = 2.32 \ +%{nil} +%global gendep_perl_autouse \ +Requires: perl(:VERSION) >= 5.6.0 \ +Provides: perl(autouse) = 1.11 \ +%{nil} +%global gendep_perl_base \ +Requires: perl(:VERSION) >= 5.8.0 \ +Requires: perl(strict) \ +Provides: perl(base) = 2.27 \ +%{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_blib \ +Requires: perl(Cwd) \ +Requires: perl(File::Spec) \ +Provides: perl(blib) = 1.07 \ +%{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_debugger \ +Requires: perl(strict) \ +Provides: perl(DB) = 1.08 \ +Provides: perl(dumpvar.pl) = 5.32.1 \ +Provides: perl(perl5db.pl) = 1.56 \ +%{nil} +%global gendep_perl_debuginfo \ +%{nil} +%global gendep_perl_debugsource \ +%{nil} +%global gendep_perl_deprecate \ +Requires: perl(strict) \ +Requires: perl(warnings) \ +Provides: perl(deprecate) = 0.04 \ +%{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_diagnostics \ +Requires: perl(:VERSION) >= 5.9.1 \ +Requires: perl(Carp) \ +Requires: perl(Config) \ +Requires: perl(Text::Tabs) \ +Requires: perl(strict) \ +Provides: perl(diagnostics) = 1.37 \ +%{nil} +%global gendep_perl_doc \ +%{nil} +%global gendep_perl_encoding \ +Requires: perl(Config) \ +Requires: perl(Encode) \ +Requires: perl(constant) \ +Requires: perl(strict) \ +Requires: perl(warnings) \ +Provides: perl(encoding) = 3.00 \ +%{nil} +%global gendep_perl_encoding_warnings \ +Requires: perl(:VERSION) >= 5.7.0 \ +Requires: perl(strict) \ +Requires: perl(warnings) \ +Provides: perl(encoding::warnings) = 0.13 \ +%{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_fields \ +Requires: perl(:VERSION) >= 5.8.0 \ +Requires: perl(strict) \ +Provides: perl(fields) = 2.24 \ +%{nil} +%global gendep_perl_filetest \ +Provides: perl(filetest) = 1.03 \ +%{nil} +%global gendep_perl_if \ +Provides: perl(if) = 0.0608 \ +%{nil} +%global gendep_perl_interpreter \ +%{nil} +%global gendep_perl_interpreter_debuginfo \ +%{nil} +%global gendep_perl_less \ +Requires: perl(strict) \ +Requires: perl(warnings) \ +Provides: perl(less) = 0.03 \ +%{nil} +%global gendep_perl_lib \ +Requires: perl(Config) \ +Requires: perl(strict) \ +Provides: perl(lib) = 0.65 \ +%{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(:VERSION) >= 5.6.0 \ +Requires: perl(Carp) \ +Requires: perl(Exporter) \ +Requires: perl(Tie::Hash) \ +Requires: perl(XSLoader) \ +Requires: perl(_charnames) \ +Requires: perl(bytes) \ +Requires: perl(integer) \ +Requires: perl(re) \ +Requires: perl(strict) \ +Requires: perl(unicore::Name) \ +Requires: perl(warnings) \ +Requires: perl(warnings::register) \ +Provides: perl(:MODULE_COMPAT_5.32.0) \ +Provides: perl(:MODULE_COMPAT_5.32.1) \ +Provides: perl(:VERSION) = 5.32.1 \ +Provides: perl(:WITH_64BIT) \ +Provides: perl(:WITH_ITHREADS) \ +Provides: perl(:WITH_LARGEFILES) \ +Provides: perl(:WITH_PERLIO) \ +Provides: perl(:WITH_THREADS) \ +Provides: perl(AnyDBM_File) = 1.01 \ +Provides: perl(Config) = 5.032001 \ +Provides: perl(File::Glob) = 1.33 \ +Provides: perl(PerlIO) = 1.11 \ +Provides: perl(PerlIO::encoding) = 0.28 \ +Provides: perl(PerlIO::mmap) = 0.016 \ +Provides: perl(PerlIO::scalar) = 0.30 \ +Provides: perl(PerlIO::via) = 0.18 \ +Provides: perl(SDBM_File) = 1.15 \ +Provides: perl(Tie::ExtraHash) \ +Provides: perl(Tie::Hash) = 1.05 \ +Provides: perl(Tie::Hash::NamedCapture) = 0.13 \ +Provides: perl(Tie::StdHash) \ +Provides: perl(UNIVERSAL) = 1.13 \ +Provides: perl(XSLoader) = 0.30 \ +Provides: perl(_charnames) = 1.48 \ +Provides: perl(attributes) = 0.33 \ +Provides: perl(bytes) = 1.07 \ +Provides: perl(bytes_heavy.pl) \ +Provides: perl(charnames) = 1.48 \ +Provides: perl(feature) = 1.58 \ +Provides: perl(integer) = 1.01 \ +Provides: perl(re) = 0.40 \ +Provides: perl(strict) = 1.11 \ +Provides: perl(unicore::Name) \ +Provides: perl(utf8) = 1.22 \ +Provides: perl(utf8_heavy.pl) \ +Provides: perl(warnings) = 1.47 \ +Provides: perl(warnings::register) = 1.04 \ +%{nil} +%global gendep_perl_libs_debuginfo \ +%{nil} +%global gendep_perl_locale \ +Requires: perl(Config) \ +Provides: perl(locale) = 1.09 \ +%{nil} +%global gendep_perl_macros \ +%{nil} +%global gendep_perl_meta_notation \ +Requires: perl(strict) \ +Requires: perl(warnings) \ +Provides: perl(meta_notation) = 5.32.1 \ +%{nil} +%global gendep_perl_mro \ +Requires: perl(XSLoader) \ +Requires: perl(strict) \ +Requires: perl(warnings) \ +Provides: perl(mro) = 1.23 \ +%{nil} +%global gendep_perl_mro_debuginfo \ +%{nil} +%global gendep_perl_open \ +Requires: perl(:VERSION) >= 5.8.1 \ +Requires: perl(warnings) \ +Provides: perl(open) = 1.12 \ +%{nil} +%global gendep_perl_overload \ +Requires: perl(warnings::register) \ +Provides: perl(overload) = 1.31 \ +%{nil} +%global gendep_perl_overloading \ +Requires: perl(:VERSION) >= 5.10.1 \ +Requires: perl(warnings) \ +Provides: perl(overload::numbers) \ +Provides: perl(overloading) = 0.02 \ +%{nil} +%global gendep_perl_parent \ +Requires: perl(strict) \ +Provides: perl(parent) = 0.238 \ +%{nil} +%global gendep_perl_perlfaq \ +Requires: perl(strict) \ +Requires: perl(warnings) \ +Provides: perl(perlfaq) = 5.20200523 \ +%{nil} +%global gendep_perl_ph \ +Provides: perl(sys/ioctl.ph) = 5.32.1 \ +Provides: perl(sys/syscall.ph) = 5.32.1 \ +Provides: perl(syscall.ph) = 5.32.1 \ +%{nil} +%global gendep_perl_podlators \ +Requires: perl(:VERSION) >= 5.6.0 \ +Requires: perl(:VERSION) >= 5.8.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.14 \ +Provides: perl(Pod::ParseLink) = 4.14 \ +Provides: perl(Pod::Text) = 4.14 \ +Provides: perl(Pod::Text::Color) = 4.14 \ +Provides: perl(Pod::Text::Overstrike) = 4.14 \ +Provides: perl(Pod::Text::Termcap) = 4.14 \ +%{nil} +%global gendep_perl_sigtrap \ +Requires: perl(Carp) \ +Provides: perl(sigtrap) = 1.09 \ +%{nil} +%global gendep_perl_sort \ +Requires: perl(strict) \ +Provides: perl(sort) = 2.04 \ +%{nil} +%global gendep_perl_subs \ +Requires: perl(:VERSION) >= 5.0.0 \ +Provides: perl(subs) = 1.03 \ +%{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.25 \ +%{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.61 \ +%{nil} +%global gendep_perl_threads_shared_debuginfo \ +%{nil} +%global gendep_perl_utils \ +Requires: perl(Config) \ +Requires: perl(File::Basename) \ +Requires: perl(File::Path) \ +Requires: perl(File::Spec) \ +Requires: perl(Getopt::Std) \ +Requires: perl(re) \ +Requires: perl(strict) \ +Requires: perl(vars) \ +Requires: perl(warnings) \ +%{nil} +%global gendep_perl_vars \ +Requires: perl(:VERSION) >= 5.6.0 \ +Requires: perl(strict) \ +Requires: perl(warnings::register) \ +Provides: perl(vars) = 1.05 \ +%{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} +%global gendep_perl_vmsish \ +Provides: perl(vmsish) = 1.04 \ +%{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 2009 +# Marcela Mašláňová 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 +# . +# +# 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?= +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 + + + + +Signed-off-by: Petr Písař +--- + 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?= +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 + + + + +Signed-off-by: Petr Písař +--- + 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 +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?= +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ř +--- + 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 , $Dfile; + unlink ; + } + ++{ ++ # 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 ; ++ ++ 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 ; ++ } ++} ++ + 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?= +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ř +--- + 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 < +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. + + + +Signed-off-by: Petr Písař +--- + 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 subroutines that are used by many ++other modules but that do not need full-featured L. The ++issue with L is it pulls in Perl header files and that is ++an overkill for small subroutines. ++ ++An example is the L that caused installing GCC just because of ++three-line I from L. ++ ++The intentions is to use L instead of ++L for these trivial methods. You can still call them via ++L 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. Other operating systems ++are not supported yet. The reason is this ++L. ++ ++=head1 SEE ALSO ++ ++L, L ++ ++=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?= +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. + + + +Signed-off-by: Petr Písař +--- + 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?= +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. + + + +Signed-off-by: Petr Písař +--- + 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ř +--- + 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.32.0-Add-av_count.patch b/SOURCES/perl-5.32.0-Add-av_count.patch new file mode 100644 index 0000000..fccdd9c --- /dev/null +++ b/SOURCES/perl-5.32.0-Add-av_count.patch @@ -0,0 +1,175 @@ +From bafffe7f2ca587960177ed03216e2d5692fe6143 Mon Sep 17 00:00:00 2001 +From: Karl Williamson +Date: Wed, 19 Aug 2020 11:57:17 -0600 +Subject: [PATCH] Add av_count() +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +This returns the number of elements in an array in a clearly named +function. + +av_top_index(), av_tindex() are clearly named, but are less than ideal, +and came about because no one back then thought of this one, until now +Paul Evans did. + +Petr Písař: Port 87306e0674dfe3af29804b4641347cd5ac9b0521 to 5.32.0. + +Signed-off-by: Petr Písař +--- + av.c | 17 ++++++++++++++--- + av.h | 3 ++- + embed.fnc | 3 ++- + embed.h | 2 +- + inline.h | 16 ++++++++++++---- + proto.h | 11 ++++++++--- + 6 files changed, 39 insertions(+), 13 deletions(-) + +diff --git a/av.c b/av.c +index 27b2f12..b5ddaca 100644 +--- a/av.c ++++ b/av.c +@@ -814,9 +814,10 @@ The Perl equivalent for this is C<$#myarray>. + =for apidoc av_len + + Same as L. Note that, unlike what the name implies, it returns +-the highest index in the array, so to get the size of the array you need to use +-S>. This is unlike L, which returns what you would +-expect. ++the highest index in the array. This is unlike L, which returns what ++you would expect. ++ ++B>>. + + =cut + */ +@@ -1089,6 +1090,16 @@ Perl_av_nonelem(pTHX_ AV *av, SSize_t ix) { + return sv; + } + ++SSize_t ++Perl_av_top_index(pTHX_ AV *av) ++{ ++ PERL_ARGS_ASSERT_AV_TOP_INDEX; ++ assert(SvTYPE(av) == SVt_PVAV); ++ ++ return AvFILL(av); ++} ++ ++ + /* + * ex: set ts=8 sts=4 sw=4 et: + */ +diff --git a/av.h b/av.h +index 5e39c42..90ebfff 100644 +--- a/av.h ++++ b/av.h +@@ -81,7 +81,8 @@ Same as C. + + #define AvFILL(av) ((SvRMAGICAL((const SV *) (av))) \ + ? mg_size(MUTABLE_SV(av)) : AvFILLp(av)) +-#define av_tindex(av) av_top_index(av) ++#define av_top_index(av) AvFILL(av) ++#define av_tindex(av) av_top_index(av) + + /* Note that it doesn't make sense to do this: + * SvGETMAGIC(av); IV x = av_tindex_nomg(av); +diff --git a/embed.fnc b/embed.fnc +index 589ab1a..789cd3c 100644 +--- a/embed.fnc ++++ b/embed.fnc +@@ -541,7 +541,8 @@ Apd |void |av_push |NN AV *av|NN SV *val + EXp |void |av_reify |NN AV *av + ApdR |SV* |av_shift |NN AV *av + Apd |SV** |av_store |NN AV *av|SSize_t key|NULLOK SV *val +-AidRp |SSize_t|av_top_index |NN AV *av ++AMdRp |SSize_t|av_top_index |NN AV *av ++AidRp |Size_t |av_count |NN AV *av + AmdR |SSize_t|av_tindex |NN AV *av + Apd |void |av_undef |NN AV *av + Apdoex |SV** |av_create_and_unshift_one|NN AV **const avp|NN SV *const val +diff --git a/embed.h b/embed.h +index 182b12a..329ac40 100644 +--- a/embed.h ++++ b/embed.h +@@ -48,6 +48,7 @@ + #define atfork_lock Perl_atfork_lock + #define atfork_unlock Perl_atfork_unlock + #define av_clear(a) Perl_av_clear(aTHX_ a) ++#define av_count(a) Perl_av_count(aTHX_ a) + #define av_delete(a,b,c) Perl_av_delete(aTHX_ a,b,c) + #define av_exists(a,b) Perl_av_exists(aTHX_ a,b) + #define av_extend(a,b) Perl_av_extend(aTHX_ a,b) +@@ -59,7 +60,6 @@ + #define av_push(a,b) Perl_av_push(aTHX_ a,b) + #define av_shift(a) Perl_av_shift(aTHX_ a) + #define av_store(a,b,c) Perl_av_store(aTHX_ a,b,c) +-#define av_top_index(a) Perl_av_top_index(aTHX_ a) + #define av_undef(a) Perl_av_undef(aTHX_ a) + #define av_unshift(a,b) Perl_av_unshift(aTHX_ a,b) + #define block_end(a,b) Perl_block_end(aTHX_ a,b) +diff --git a/inline.h b/inline.h +index 27005d2..35af18a 100644 +--- a/inline.h ++++ b/inline.h +@@ -39,13 +39,21 @@ SOFTWARE. + + /* ------------------------------- av.h ------------------------------- */ + +-PERL_STATIC_INLINE SSize_t +-Perl_av_top_index(pTHX_ AV *av) ++/* ++=for apidoc av_count ++Returns the number of elements in the array C. This is the true length of ++the array, including any undefined elements. It is always the same as ++S>. ++ ++=cut ++*/ ++PERL_STATIC_INLINE Size_t ++Perl_av_count(pTHX_ AV *av) + { +- PERL_ARGS_ASSERT_AV_TOP_INDEX; ++ PERL_ARGS_ASSERT_AV_COUNT; + assert(SvTYPE(av) == SVt_PVAV); + +- return AvFILL(av); ++ return AvFILL(av) + 1; + } + + /* ------------------------------- cv.h ------------------------------- */ +diff --git a/proto.h b/proto.h +index 02ef4ed..83ba098 100644 +--- a/proto.h ++++ b/proto.h +@@ -219,6 +219,13 @@ PERL_CALLCONV SV** Perl_av_arylen_p(pTHX_ AV *av); + PERL_CALLCONV void Perl_av_clear(pTHX_ AV *av); + #define PERL_ARGS_ASSERT_AV_CLEAR \ + assert(av) ++#ifndef PERL_NO_INLINE_FUNCTIONS ++PERL_STATIC_INLINE Size_t Perl_av_count(pTHX_ AV *av) ++ __attribute__warn_unused_result__; ++#define PERL_ARGS_ASSERT_AV_COUNT \ ++ assert(av) ++#endif ++ + PERL_CALLCONV void Perl_av_create_and_push(pTHX_ AV **const avp, SV *const val); + #define PERL_ARGS_ASSERT_AV_CREATE_AND_PUSH \ + assert(avp); assert(val) +@@ -284,12 +291,10 @@ PERL_CALLCONV SV** Perl_av_store(pTHX_ AV *av, SSize_t key, SV *val); + __attribute__warn_unused_result__; */ + #define PERL_ARGS_ASSERT_AV_TINDEX + +-#ifndef PERL_NO_INLINE_FUNCTIONS +-PERL_STATIC_INLINE SSize_t Perl_av_top_index(pTHX_ AV *av) ++PERL_CALLCONV SSize_t Perl_av_top_index(pTHX_ AV *av) + __attribute__warn_unused_result__; + #define PERL_ARGS_ASSERT_AV_TOP_INDEX \ + assert(av) +-#endif + + PERL_CALLCONV void Perl_av_undef(pTHX_ AV *av); + #define PERL_ARGS_ASSERT_AV_UNDEF \ +-- +2.25.4 + diff --git a/SOURCES/perl-5.32.0-pp_split-no-SWITCHSTACK-in-ary-split-.-optimisation.patch b/SOURCES/perl-5.32.0-pp_split-no-SWITCHSTACK-in-ary-split-.-optimisation.patch new file mode 100644 index 0000000..d4ee4bb --- /dev/null +++ b/SOURCES/perl-5.32.0-pp_split-no-SWITCHSTACK-in-ary-split-.-optimisation.patch @@ -0,0 +1,196 @@ +From d7504df2a5d8985f2a8b04f17acff5e324572c39 Mon Sep 17 00:00:00 2001 +From: Richard Leach +Date: Sun, 11 Oct 2020 12:26:27 +0100 +Subject: [PATCH] pp_split: no SWITCHSTACK in @ary = split(...) optimisation +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Petr Písař: 607eaf26a99ff76ab48877e68f1d7b005dc51575 ported to 5.32.0. + +Signed-off-by: Petr Písař +--- + pp.c | 89 +++++++++++++++++++++++++++++----------------------- + t/op/split.t | 23 +++++++++++++- + 2 files changed, 72 insertions(+), 40 deletions(-) + +diff --git a/pp.c b/pp.c +index df80830..e4863d3 100644 +--- a/pp.c ++++ b/pp.c +@@ -5985,6 +5985,7 @@ PP(pp_split) + + /* handle @ary = split(...) optimisation */ + if (PL_op->op_private & OPpSPLIT_ASSIGN) { ++ realarray = 1; + if (!(PL_op->op_flags & OPf_STACKED)) { + if (PL_op->op_private & OPpSPLIT_LEX) { + if (PL_op->op_private & OPpLVAL_INTRO) +@@ -6007,26 +6008,10 @@ PP(pp_split) + oldsave = PL_savestack_ix; + } + +- realarray = 1; +- PUTBACK; +- av_extend(ary,0); +- (void)sv_2mortal(SvREFCNT_inc_simple_NN(sv)); +- av_clear(ary); +- SPAGAIN; + if ((mg = SvTIED_mg((const SV *)ary, PERL_MAGIC_tied))) { + PUSHMARK(SP); + XPUSHs(SvTIED_obj(MUTABLE_SV(ary), mg)); +- } +- else { +- if (!AvREAL(ary)) { +- I32 i; +- AvREAL_on(ary); +- AvREIFY_off(ary); +- for (i = AvFILLp(ary); i >= 0; i--) +- AvARRAY(ary)[i] = &PL_sv_undef; /* don't free mere refs */ +- } +- /* temporarily switch stacks */ +- SAVESWITCHSTACK(PL_curstack, ary); ++ } else { + make_mortal = 0; + } + } +@@ -6358,29 +6343,56 @@ PP(pp_split) + LEAVE_SCOPE(oldsave); /* may undo an earlier SWITCHSTACK */ + SPAGAIN; + if (realarray) { +- if (!mg) { +- if (SvSMAGICAL(ary)) { +- PUTBACK; ++ if (!mg) { ++ PUTBACK; ++ if(AvREAL(ary)) { ++ if (av_count(ary) > 0) ++ av_clear(ary); ++ } else { ++ AvREAL_on(ary); ++ AvREIFY_off(ary); ++ ++ if (AvMAX(ary) > -1) { ++ /* don't free mere refs */ ++ Zero(AvARRAY(ary), AvMAX(ary), SV*); ++ } ++ } ++ if(AvMAX(ary) < iters) ++ av_extend(ary,iters); ++ SPAGAIN; ++ ++ /* Need to copy the SV*s from the stack into ary */ ++ Copy(SP + 1 - iters, AvARRAY(ary), iters, SV*); ++ AvFILLp(ary) = iters - 1; ++ ++ if (SvSMAGICAL(ary)) { ++ PUTBACK; + mg_set(MUTABLE_SV(ary)); + SPAGAIN; +- } +- if (gimme == G_ARRAY) { +- EXTEND(SP, iters); +- Copy(AvARRAY(ary), SP + 1, iters, SV*); +- SP += iters; +- RETURN; +- } ++ } ++ ++ if (gimme != G_ARRAY) { ++ /* SP points to the final SV* pushed to the stack. But the SV* */ ++ /* are not going to be used from the stack. Point SP to below */ ++ /* the first of these SV*. */ ++ SP -= iters; ++ PUTBACK; ++ } + } + else { +- PUTBACK; +- ENTER_with_name("call_PUSH"); +- call_sv(SV_CONST(PUSH),G_SCALAR|G_DISCARD|G_METHOD_NAMED); +- LEAVE_with_name("call_PUSH"); +- SPAGAIN; ++ PUTBACK; ++ av_extend(ary,iters); ++ av_clear(ary); ++ ++ ENTER_with_name("call_PUSH"); ++ call_sv(SV_CONST(PUSH),G_SCALAR|G_DISCARD|G_METHOD_NAMED); ++ LEAVE_with_name("call_PUSH"); ++ SPAGAIN; ++ + if (gimme == G_ARRAY) { + SSize_t i; + /* EXTEND should not be needed - we just popped them */ +- EXTEND(SP, iters); ++ EXTEND_SKIP(SP, iters); + for (i=0; i < iters; i++) { + SV **svp = av_fetch(ary, i, FALSE); + PUSHs((svp) ? *svp : &PL_sv_undef); +@@ -6389,13 +6401,12 @@ PP(pp_split) + } + } + } +- else { +- if (gimme == G_ARRAY) +- RETURN; +- } + +- GETTARGET; +- XPUSHi(iters); ++ if (gimme != G_ARRAY) { ++ GETTARGET; ++ XPUSHi(iters); ++ } ++ + RETURN; + } + +diff --git a/t/op/split.t b/t/op/split.t +index 14f9158..7f37512 100644 +--- a/t/op/split.t ++++ b/t/op/split.t +@@ -7,7 +7,7 @@ BEGIN { + set_up_inc('../lib'); + } + +-plan tests => 176; ++plan tests => 182; + + $FS = ':'; + +@@ -648,6 +648,19 @@ is "@a", '1 2 3', 'assignment to split-to-array (stacked)'; + is (+@a, 0, "empty utf8 string"); + } + ++# correct stack adjustments (gh#18232) ++{ ++ sub foo { return @_ } ++ my @a = foo(1, scalar split " ", "a b"); ++ is(join('', @a), "12", "Scalar split to a sub parameter"); ++} ++ ++{ ++ sub foo { return @_ } ++ my @a = foo(1, scalar(@x = split " ", "a b")); ++ is(join('', @a), "12", "Split to @x then use scalar result as a sub parameter"); ++} ++ + fresh_perl_is(<<'CODE', '', {}, "scalar split stack overflow"); + map{int"";split//.0>60for"0000000000000000"}split// for"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + CODE +@@ -667,3 +680,11 @@ CODE + ok(eq_array(\@result,['a','b']), "Resulting in ('a','b')"); + } + } ++ ++# check that the (@ary = split) optimisation survives @ary being modified ++ ++fresh_perl_is('my @ary; @ary = split(/\w(?{ @ary[1000] = 1 })/, "abc");', ++ '',{},'(@ary = split ...) survives @ary being Renew()ed'); ++fresh_perl_is('my @ary; @ary = split(/\w(?{ undef @ary })/, "abc");', ++ '',{},'(@ary = split ...) survives an (undef @ary)'); ++ +-- +2.25.4 + diff --git a/SOURCES/perl-5.32.1-DynaLoader-use-PerlEnv_getenv.patch b/SOURCES/perl-5.32.1-DynaLoader-use-PerlEnv_getenv.patch new file mode 100644 index 0000000..c07fab9 --- /dev/null +++ b/SOURCES/perl-5.32.1-DynaLoader-use-PerlEnv_getenv.patch @@ -0,0 +1,34 @@ +From ab72b7bd043df0f0ad6090a4c95f378624fad9fc Mon Sep 17 00:00:00 2001 +From: Karl Williamson +Date: Sat, 7 Mar 2020 12:54:19 -0700 +Subject: [PATCH] DynaLoader: use PerlEnv_getenv() +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Doing so invokes thread-safe guards + +Petr Písař: Ported from b0312014d6c1804920d2b687a5fa5645b445ce9f to +5.32.1. + +Signed-off-by: Petr Písař +--- + ext/DynaLoader/dlutils.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/ext/DynaLoader/dlutils.c b/ext/DynaLoader/dlutils.c +index 8584f89..1a27fbd 100644 +--- a/ext/DynaLoader/dlutils.c ++++ b/ext/DynaLoader/dlutils.c +@@ -115,7 +115,7 @@ dl_generic_private_init(pTHX) /* called by dl_*.xs dl_private_init() */ + #endif + + #if defined(PERL_IN_DL_HPUX_XS) || defined(PERL_IN_DL_DLOPEN_XS) +- if ( (perl_dl_nonlazy = getenv("PERL_DL_NONLAZY")) != NULL ++ if ( (perl_dl_nonlazy = PerlEnv_getenv("PERL_DL_NONLAZY")) != NULL + && grok_atoUV(perl_dl_nonlazy, &uv, NULL) + && uv <= INT_MAX + ) { +-- +2.26.2 + diff --git a/SOURCES/perl-5.32.1-Perl_do_sv_dump-handle-PL_strtab.patch b/SOURCES/perl-5.32.1-Perl_do_sv_dump-handle-PL_strtab.patch new file mode 100644 index 0000000..9e04761 --- /dev/null +++ b/SOURCES/perl-5.32.1-Perl_do_sv_dump-handle-PL_strtab.patch @@ -0,0 +1,44 @@ +From 2ce7bf1ad5fd7aee21975b3dd1c8dceef3aab7e4 Mon Sep 17 00:00:00 2001 +From: David Mitchell +Date: Tue, 9 Mar 2021 16:42:11 +0000 +Subject: [PATCH] Perl_do_sv_dump(): handle PL_strtab +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +When dumping this special hash, the values in the HE entry are refcounts +rather than SV pointers. sv_dump() used to crash here. + +Petr Písař: Ported to 5.32.1 from upstream +a9bb6a62ae45bb372a5cca98a76d1a79edd89ccb. + +Signed-off-by: Petr Písař +--- + dump.c | 11 +++++++++-- + 1 file changed, 9 insertions(+), 2 deletions(-) + +diff --git a/dump.c b/dump.c +index f03c3f6..0f15d77 100644 +--- a/dump.c ++++ b/dump.c +@@ -2224,8 +2224,15 @@ Perl_do_sv_dump(pTHX_ I32 level, PerlIO *file, SV *sv, I32 nest, I32 maxnest, bo + PerlIO_printf(file, "[UTF8 \"%s\"] ", sv_uni_display(d, keysv, 6 * SvCUR(keysv), UNI_DISPLAY_QQ)); + if (HvEITER_get(hv) == he) + PerlIO_printf(file, "[CURRENT] "); +- PerlIO_printf(file, "HASH = 0x%" UVxf "\n", (UV) hash); +- do_sv_dump(level+1, file, elt, nest+1, maxnest, dumpops, pvlim); ++ PerlIO_printf(file, "HASH = 0x%" UVxf, (UV) hash); ++ ++ if (sv == (SV*)PL_strtab) ++ PerlIO_printf(file, " REFCNT = 0x%" UVxf "\n", ++ (UV)he->he_valu.hent_refcount ); ++ else { ++ (void)PerlIO_putc(file, '\n'); ++ do_sv_dump(level+1, file, elt, nest+1, maxnest, dumpops, pvlim); ++ } + } + } + DONEHV:; +-- +2.26.3 + diff --git a/SOURCES/perl-5.32.1-hv.c-add-a-guard-clause-to-prevent-the-number-of-buc.patch b/SOURCES/perl-5.32.1-hv.c-add-a-guard-clause-to-prevent-the-number-of-buc.patch new file mode 100644 index 0000000..de7652e --- /dev/null +++ b/SOURCES/perl-5.32.1-hv.c-add-a-guard-clause-to-prevent-the-number-of-buc.patch @@ -0,0 +1,53 @@ +From c5eed6e541fe27d9e9dfd31f42c43f4dfa1f486b Mon Sep 17 00:00:00 2001 +From: Yves Orton +Date: Sat, 11 Jul 2020 09:26:21 +0200 +Subject: [PATCH] hv.c: add a guard clause to prevent the number of buckets in + a hash from getting too large +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +This caps it at 1<<28 buckets, eg, ~268M. In theory without a guard clause like +this we could grow to the point of possibly wrapping around in terms of size, +not to mention being ridiculously wasteful of memory at larger sizes. +Even this cap is probably too high. It should probably be something like 1<<24. + +Petr Písař: Ported to 5.32.1 from +aae087f7cec022be14a17deb95cb2208e16b7891. + +Signed-off-by: Petr Písař +--- + hv.c | 10 +++++++++- + 1 file changed, 9 insertions(+), 1 deletion(-) + +diff --git a/hv.c b/hv.c +index eccae62..32dbd19 100644 +--- a/hv.c ++++ b/hv.c +@@ -38,7 +38,13 @@ holds the key and hash value. + * NOTE if you change this formula so we split earlier than previously + * you MUST change the logic in hv_ksplit() + */ +-#define DO_HSPLIT(xhv) ( ((xhv)->xhv_keys + ((xhv)->xhv_keys >> 1)) > (xhv)->xhv_max ) ++ ++/* MAX_BUCKET_MAX is the maximum max bucket index, at which point we stop growing the ++ * number of buckets, ++ */ ++#define MAX_BUCKET_MAX ((1<<26)-1) ++#define DO_HSPLIT(xhv) ( ( ((xhv)->xhv_keys + ((xhv)->xhv_keys >> 1)) > (xhv)->xhv_max ) && \ ++ ((xhv)->xhv_max < MAX_BUCKET_MAX) ) + #define HV_FILL_THRESHOLD 31 + + static const char S_strtab_error[] +@@ -1426,6 +1432,8 @@ S_hsplit(pTHX_ HV *hv, STRLEN const oldsize, STRLEN newsize) + ); + + PERL_ARGS_ASSERT_HSPLIT; ++ if (newsize > MAX_BUCKET_MAX+1) ++ return; + + PL_nomemok = TRUE; + Renew(a, PERL_HV_ARRAY_ALLOC_BYTES(newsize) +-- +2.26.2 + diff --git a/SOURCES/perl-5.33.0-Add-missing-MANIFEST-entry-from-fix-for-debugger.patch b/SOURCES/perl-5.33.0-Add-missing-MANIFEST-entry-from-fix-for-debugger.patch new file mode 100644 index 0000000..13a082a --- /dev/null +++ b/SOURCES/perl-5.33.0-Add-missing-MANIFEST-entry-from-fix-for-debugger.patch @@ -0,0 +1,30 @@ +From 3c53c6179afbdbef748c110abdb849cb463c2727 Mon Sep 17 00:00:00 2001 +From: Todd Rinaldo +Date: Thu, 30 Jul 2020 17:42:47 -0500 +Subject: [PATCH] Add missing MANIFEST entry from fix for debugger +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Add on fix to #17901 + +Signed-off-by: Petr Písař +--- + MANIFEST | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/MANIFEST b/MANIFEST +index 990a75ad52..12601e46b4 100644 +--- a/MANIFEST ++++ b/MANIFEST +@@ -4826,6 +4826,7 @@ lib/perl5db/t/symbol-table-bug Tests for the Perl debugger + lib/perl5db/t/taint Tests for the Perl debugger + lib/perl5db/t/test-a-statement-1 Tests for the Perl debugger + lib/perl5db/t/test-a-statement-2 Tests for the Perl debugger ++lib/perl5db/t/test-a-statement-3 Tests for the Perl debugger + lib/perl5db/t/test-dieLevel-option-1 Tests for the Perl debugger + lib/perl5db/t/test-frame-option-1 Tests for the Perl debugger + lib/perl5db/t/test-l-statement-1 Tests for the Perl debugger +-- +2.25.4 + diff --git a/SOURCES/perl-5.33.0-After-running-an-action-in-the-debugger-turn-it-off.patch b/SOURCES/perl-5.33.0-After-running-an-action-in-the-debugger-turn-it-off.patch new file mode 100644 index 0000000..9df2549 --- /dev/null +++ b/SOURCES/perl-5.33.0-After-running-an-action-in-the-debugger-turn-it-off.patch @@ -0,0 +1,90 @@ +From b248789b64d6bd277c52bfe608ed3192023af1bd Mon Sep 17 00:00:00 2001 +From: "E. Choroba" +Date: Fri, 26 Jun 2020 21:19:24 +0200 +Subject: [PATCH] After running an action in the debugger, turn it off +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +When running with "c", there was no problem, but when running with "n" +or "s", once the action was executed, it kept executing on the +following lines, which wasn't expected. Clearing $action here prevents +this unwanted behaviour. + +Signed-off-by: Petr Písař +--- + lib/perl5db.pl | 3 ++- + lib/perl5db.t | 22 ++++++++++++++++++++++ + lib/perl5db/t/test-a-statement-3 | 6 ++++++ + 3 files changed, 30 insertions(+), 1 deletion(-) + create mode 100644 lib/perl5db/t/test-a-statement-3 + +diff --git a/lib/perl5db.pl b/lib/perl5db.pl +index 69a9bb6e64..e04a0e17fa 100644 +--- a/lib/perl5db.pl ++++ b/lib/perl5db.pl +@@ -529,7 +529,7 @@ BEGIN { + use vars qw($VERSION $header); + + # bump to X.XX in blead, only use X.XX_XX in maint +-$VERSION = '1.57'; ++$VERSION = '1.58'; + + $header = "perl5db.pl version $VERSION"; + +@@ -2708,6 +2708,7 @@ If there are any preprompt actions, execute those as well. + # The &-call is here to ascertain the mutability of @_. + &DB::eval; + } ++ undef $action; + + # Are we nested another level (e.g., did we evaluate a function + # that had a breakpoint in it at the debugger prompt)? +diff --git a/lib/perl5db.t b/lib/perl5db.t +index 421229a54a..913a301d98 100644 +--- a/lib/perl5db.t ++++ b/lib/perl5db.t +@@ -2799,6 +2799,28 @@ SKIP: + ); + } + ++{ ++ # GitHub #17901 ++ my $wrapper = DebugWrap->new( ++ { ++ cmds => ++ [ ++ 'a 4 $s++', ++ ('s') x 5, ++ 'x $s', ++ 'q' ++ ], ++ prog => '../lib/perl5db/t/test-a-statement-3', ++ switches => [ '-d' ], ++ stderr => 0, ++ } ++ ); ++ $wrapper->contents_like( ++ qr/^0 +2$/m, ++ 'Test that the a command runs only on the given lines.', ++ ); ++} ++ + { + # perl 5 RT #126735 regression bug. + local $ENV{PERLDB_OPTS} = "NonStop=0 RemotePort=non-existent-host.tld:9001"; +diff --git a/lib/perl5db/t/test-a-statement-3 b/lib/perl5db/t/test-a-statement-3 +new file mode 100644 +index 0000000000..b188c1c5c5 +--- /dev/null ++++ b/lib/perl5db/t/test-a-statement-3 +@@ -0,0 +1,6 @@ ++use strict; use warnings; ++ ++for my $x (1 .. 2) { ++ my $y = $x + 1; ++ my $x = $x - 1; ++} +-- +2.25.4 + diff --git a/SOURCES/perl-5.33.0-Clearing-DB-action-at-the-end-is-no-longer-needed.patch b/SOURCES/perl-5.33.0-Clearing-DB-action-at-the-end-is-no-longer-needed.patch new file mode 100644 index 0000000..fe36ec4 --- /dev/null +++ b/SOURCES/perl-5.33.0-Clearing-DB-action-at-the-end-is-no-longer-needed.patch @@ -0,0 +1,33 @@ +From 589464a875768e4b4a609d972488e3b592103097 Mon Sep 17 00:00:00 2001 +From: "E. Choroba" +Date: Mon, 27 Jul 2020 11:32:51 +0200 +Subject: [PATCH] Clearing DB::action at the end is no longer needed +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +as it's cleared right after it's been run. + +Signed-off-by: Petr Písař +--- + lib/perl5db.pl | 4 ---- + 1 file changed, 4 deletions(-) + +diff --git a/lib/perl5db.pl b/lib/perl5db.pl +index e04a0e17fa..af3b972da0 100644 +--- a/lib/perl5db.pl ++++ b/lib/perl5db.pl +@@ -3347,10 +3347,6 @@ use B I to avoid stopping after program termination, + B, B or B to get additional info. + EOP + +- # Set the DB::eval context appropriately. +- # At program termination disable any user actions. +- $DB::action = undef; +- + $DB::package = 'main'; + $DB::usercontext = DB::_calc_usercontext($DB::package); + } ## end elsif ($package eq 'DB::fake') +-- +2.25.4 + diff --git a/SOURCES/perl-5.33.0-IO-Handle-Fix-a-spurious-error-reported-for-regular-.patch b/SOURCES/perl-5.33.0-IO-Handle-Fix-a-spurious-error-reported-for-regular-.patch new file mode 100644 index 0000000..f19fbce --- /dev/null +++ b/SOURCES/perl-5.33.0-IO-Handle-Fix-a-spurious-error-reported-for-regular-.patch @@ -0,0 +1,74 @@ +From 8a2562bec7cd9f8eff6812f340f99dddd028bb33 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= +Date: Thu, 6 Aug 2020 10:51:56 +0200 +Subject: [PATCH] IO::Handle: Fix a spurious error reported for regular file + handles +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +89341f87 fix for GH #6799 introduced a regression when calling error() +on an IO::Handle object that was opened for reading a regular file: + +$ perl -e 'open my $f, q{<}, q{/etc/hosts} or die; print qq{error\n} if $f->error' +error + +In case of a regular file opened for reading, IoOFP() returns NULL and +PerlIO_error(NULL) reports -1. Compare to the case of a file opened +for writing when both IoIFP() and IoOFP() return non-NULL, equaled +pointer. + +This patch fixes handling the case of the NULL output stream. + +GH #18019 + +Signed-off-by: Petr Písař +--- + dist/IO/IO.xs | 4 ++-- + dist/IO/t/io_xs.t | 10 +++++++++- + 2 files changed, 11 insertions(+), 3 deletions(-) + +diff --git a/dist/IO/IO.xs b/dist/IO/IO.xs +index 9158106416..fb009774c4 100644 +--- a/dist/IO/IO.xs ++++ b/dist/IO/IO.xs +@@ -397,9 +397,9 @@ ferror(handle) + CODE: + if (in) + #ifdef PerlIO +- RETVAL = PerlIO_error(in) || (in != out && PerlIO_error(out)); ++ RETVAL = PerlIO_error(in) || (out && in != out && PerlIO_error(out)); + #else +- RETVAL = ferror(in) || (in != out && ferror(out)); ++ RETVAL = ferror(in) || (out && in != out && ferror(out)); + #endif + else { + RETVAL = -1; +diff --git a/dist/IO/t/io_xs.t b/dist/IO/t/io_xs.t +index a8833b0651..4657088629 100644 +--- a/dist/IO/t/io_xs.t ++++ b/dist/IO/t/io_xs.t +@@ -11,7 +11,7 @@ BEGIN { + } + } + +-use Test::More tests => 8; ++use Test::More tests => 10; + use IO::File; + use IO::Seekable; + +@@ -69,3 +69,11 @@ SKIP: { + ok(!$fh->error, "check clearerr removed the error"); + close $fh; # silently ignore the error + } ++ ++{ ++ # [GH #18019] IO::Handle->error misreported an error after successully ++ # opening a regular file for reading. It was a regression in GH #6799 fix. ++ ok(open(my $fh, '<', __FILE__), "a regular file opened for reading"); ++ ok(!$fh->error, "no spurious error reported by error()"); ++ close $fh; ++} +-- +2.25.4 + diff --git a/SOURCES/perl-5.33.0-IO-Handle-clear-the-error-on-both-input-and-output-s.patch b/SOURCES/perl-5.33.0-IO-Handle-clear-the-error-on-both-input-and-output-s.patch new file mode 100644 index 0000000..a1c2177 --- /dev/null +++ b/SOURCES/perl-5.33.0-IO-Handle-clear-the-error-on-both-input-and-output-s.patch @@ -0,0 +1,80 @@ +From fc5f3468dcbee38eb202cfd552a5b8dbff990c7b Mon Sep 17 00:00:00 2001 +From: Tony Cook +Date: Tue, 12 May 2020 10:59:08 +1000 +Subject: [PATCH 2/2] IO::Handle: clear the error on both input and output + streams +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Similarly to GH #6799 clearerr() only cleared the error status +of the input stream, so clear both. + +Signed-off-by: Petr Písař +--- + dist/IO/IO.xs | 14 +++++++++++--- + dist/IO/t/io_xs.t | 8 +++++--- + 2 files changed, 16 insertions(+), 6 deletions(-) + +diff --git a/dist/IO/IO.xs b/dist/IO/IO.xs +index 99d523d2c1..9158106416 100644 +--- a/dist/IO/IO.xs ++++ b/dist/IO/IO.xs +@@ -410,13 +410,21 @@ ferror(handle) + + int + clearerr(handle) +- InputStream handle ++ SV * handle ++ PREINIT: ++ IO *io = sv_2io(handle); ++ InputStream in = IoIFP(io); ++ OutputStream out = IoOFP(io); + CODE: + if (handle) { + #ifdef PerlIO +- PerlIO_clearerr(handle); ++ PerlIO_clearerr(in); ++ if (in != out) ++ PerlIO_clearerr(out); + #else +- clearerr(handle); ++ clearerr(in); ++ if (in != out) ++ clearerr(out); + #endif + RETVAL = 0; + } +diff --git a/dist/IO/t/io_xs.t b/dist/IO/t/io_xs.t +index f890e92558..a8833b0651 100644 +--- a/dist/IO/t/io_xs.t ++++ b/dist/IO/t/io_xs.t +@@ -11,7 +11,7 @@ BEGIN { + } + } + +-use Test::More tests => 7; ++use Test::More tests => 8; + use IO::File; + use IO::Seekable; + +@@ -58,12 +58,14 @@ SKIP: { + # This isn't really a Linux/BSD specific test, but /dev/full is (I + # hope) reasonably well defined on these. Patches welcome if your platform + # also supports it (or something like it) +- skip "no /dev/full or not a /dev/full platform", 2 ++ skip "no /dev/full or not a /dev/full platform", 3 + unless $^O =~ /^(linux|netbsd|freebsd)$/ && -c "/dev/full"; + open my $fh, ">", "/dev/full" +- or skip "Could not open /dev/full: $!", 2; ++ or skip "Could not open /dev/full: $!", 3; + $fh->print("a" x 1024); + ok(!$fh->flush, "should fail to flush"); + ok($fh->error, "stream should be in error"); ++ $fh->clearerr; ++ ok(!$fh->error, "check clearerr removed the error"); + close $fh; # silently ignore the error + } +-- +2.25.4 + diff --git a/SOURCES/perl-5.33.0-IO-Socket-UNIX-synchronize-behavior-with-module-docu.patch b/SOURCES/perl-5.33.0-IO-Socket-UNIX-synchronize-behavior-with-module-docu.patch new file mode 100644 index 0000000..75be229 --- /dev/null +++ b/SOURCES/perl-5.33.0-IO-Socket-UNIX-synchronize-behavior-with-module-docu.patch @@ -0,0 +1,61 @@ +From c6439962c995d4d7052af9fb3f92da93c1584b84 Mon Sep 17 00:00:00 2001 +From: vividsnow +Date: Fri, 31 Jul 2020 00:37:58 +0300 +Subject: [PATCH] IO::Socket::UNIX: synchronize behavior with module + documentation (#17787) +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +* synchronize behavior with module documentation + +IO::Socket docs states that passing Blocking => 0 will be set socket to non-blocking mode + +* Update AUTHORS +* bump version + +Signed-off-by: Petr Písař +--- + AUTHORS | 1 + + dist/IO/lib/IO/Socket/UNIX.pm | 6 +++++- + 2 files changed, 6 insertions(+), 1 deletion(-) + +diff --git a/AUTHORS b/AUTHORS +index 577ba7d0ee..299fdec8a8 100644 +--- a/AUTHORS ++++ b/AUTHORS +@@ -1293,6 +1293,7 @@ Ville Skyttä + Vincent Pit + Vishal Bhatia + Vitali Peil ++vividsnow + Vlad Harchev + Vladimir Alexiev + Vladimir Marek +diff --git a/dist/IO/lib/IO/Socket/UNIX.pm b/dist/IO/lib/IO/Socket/UNIX.pm +index 04b36eaf74..14d0b27a8c 100644 +--- a/dist/IO/lib/IO/Socket/UNIX.pm ++++ b/dist/IO/lib/IO/Socket/UNIX.pm +@@ -11,7 +11,7 @@ use IO::Socket; + use Carp; + + our @ISA = qw(IO::Socket); +-our $VERSION = "1.41"; ++our $VERSION = "1.42"; + + IO::Socket::UNIX->register_domain( AF_UNIX ); + +@@ -30,6 +30,10 @@ sub configure { + $sock->socket(AF_UNIX, $type, 0) or + return undef; + ++ if(exists $arg->{Blocking}) { ++ $sock->blocking($arg->{Blocking}) or ++ return undef; ++ } + if(exists $arg->{Local}) { + my $addr = sockaddr_un($arg->{Local}); + $sock->bind($addr) or +-- +2.25.4 + diff --git a/SOURCES/perl-5.33.0-MUTABLE_PTR-Rmv-non-standard-syntax.patch b/SOURCES/perl-5.33.0-MUTABLE_PTR-Rmv-non-standard-syntax.patch new file mode 100644 index 0000000..dd5986a --- /dev/null +++ b/SOURCES/perl-5.33.0-MUTABLE_PTR-Rmv-non-standard-syntax.patch @@ -0,0 +1,32 @@ +From 6c2255e0e80e0dc00c7fd96e073f1f524bbaa3e0 Mon Sep 17 00:00:00 2001 +From: Karl Williamson +Date: Mon, 29 Jun 2020 09:21:24 -0600 +Subject: [PATCH] MUTABLE_PTR() Rmv non-standard syntax +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Variables in C are beginning with an underscore are reserved for use by +the C implementation. Change this non-conformant usage. + +Signed-off-by: Petr Písař +--- + handy.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/handy.h b/handy.h +index 287e2e206d..890b2b11a2 100644 +--- a/handy.h ++++ b/handy.h +@@ -54,7 +54,7 @@ Null SV pointer. (No longer available when C is defined.) + */ + + #if defined(__GNUC__) && !defined(PERL_GCC_BRACE_GROUPS_FORBIDDEN) +-# define MUTABLE_PTR(p) ({ void *_p = (p); _p; }) ++# define MUTABLE_PTR(p) ({ void *p_ = (p); p_; }) + #else + # define MUTABLE_PTR(p) ((void *) (p)) + #endif +-- +2.25.4 + diff --git a/SOURCES/perl-5.33.0-Update-pod-for-SvTRUE-to-indicate-single-param-evalu.patch b/SOURCES/perl-5.33.0-Update-pod-for-SvTRUE-to-indicate-single-param-evalu.patch new file mode 100644 index 0000000..551b315 --- /dev/null +++ b/SOURCES/perl-5.33.0-Update-pod-for-SvTRUE-to-indicate-single-param-evalu.patch @@ -0,0 +1,33 @@ +From b26a606d84ae1a6da560c7cd71d1a33c0dc7178e Mon Sep 17 00:00:00 2001 +From: Karl Williamson +Date: Sun, 14 Jun 2020 12:26:02 -0600 +Subject: [PATCH] Update pod for SvTRUE, to indicate single param evaluation +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +5.32 changed this macro into an inline function so that 'sv' only gets +evaluated once, but didn't update the documentation to reflect that. + +Signed-off-by: Petr Písař +--- + sv.h | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/sv.h b/sv.h +index 3721b2fb1b..ad8accbf1a 100644 +--- a/sv.h ++++ b/sv.h +@@ -1607,7 +1607,8 @@ false. See C> for a defined/undefined test. Handles 'get' magic + unless the scalar is already C, C or C (the public, not the + private flags). + +-See C> for a version which guarantees to evaluate C only once. ++As of Perl 5.32, this is guaranteed to evaluate C only once. Prior to that ++release, use C> for single evaluation. + + =for apidoc Am|bool|SvTRUE_nomg|SV* sv + Returns a boolean indicating whether Perl would evaluate the SV as true or +-- +2.25.4 + diff --git a/SOURCES/perl-5.33.0-XSUB.h-fix-MARK-and-items-variables-inside-BOOT-XSUB.patch b/SOURCES/perl-5.33.0-XSUB.h-fix-MARK-and-items-variables-inside-BOOT-XSUB.patch new file mode 100644 index 0000000..fe4d653 --- /dev/null +++ b/SOURCES/perl-5.33.0-XSUB.h-fix-MARK-and-items-variables-inside-BOOT-XSUB.patch @@ -0,0 +1,45 @@ +From 313464947382fab07299af0061f419a55540356a Mon Sep 17 00:00:00 2001 +From: Tomasz Konojacki +Date: Mon, 27 Apr 2020 08:31:47 +0200 +Subject: [PATCH] XSUB.h: fix MARK and items variables inside BOOT XSUBs +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +ax was incremented by Perl_xs_handshake() and because of that +MARK and items were off by one inside BOOT XSUBs. + +fixes #17755 + +Signed-off-by: Petr Písař +--- + XSUB.h | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/XSUB.h b/XSUB.h +index e3147ce9fb..5f17a5acde 100644 +--- a/XSUB.h ++++ b/XSUB.h +@@ -160,16 +160,16 @@ is a lexical C<$_> in scope. + PL_xsubfilename. */ + #define dXSBOOTARGSXSAPIVERCHK \ + I32 ax = XS_BOTHVERSION_SETXSUBFN_POPMARK_BOOTCHECK; \ +- SV **mark = PL_stack_base + ax; dSP; dITEMS ++ SV **mark = PL_stack_base + ax - 1; dSP; dITEMS + #define dXSBOOTARGSAPIVERCHK \ + I32 ax = XS_APIVERSION_SETXSUBFN_POPMARK_BOOTCHECK; \ +- SV **mark = PL_stack_base + ax; dSP; dITEMS ++ SV **mark = PL_stack_base + ax - 1; dSP; dITEMS + /* dXSBOOTARGSNOVERCHK has no API in xsubpp to choose it so do + #undef dXSBOOTARGSXSAPIVERCHK + #define dXSBOOTARGSXSAPIVERCHK dXSBOOTARGSNOVERCHK */ + #define dXSBOOTARGSNOVERCHK \ + I32 ax = XS_SETXSUBFN_POPMARK; \ +- SV **mark = PL_stack_base + ax; dSP; dITEMS ++ SV **mark = PL_stack_base + ax - 1; dSP; dITEMS + + #define dXSTARG SV * const targ = ((PL_op->op_private & OPpENTERSUB_HASTARG) \ + ? PAD_SV(PL_op->op_targ) : sv_newmortal()) +-- +2.25.4 + diff --git a/SOURCES/perl-5.33.0-ext-XS-APItest-t-utf8_warn_base.pl-Fix-a-couple-test.patch b/SOURCES/perl-5.33.0-ext-XS-APItest-t-utf8_warn_base.pl-Fix-a-couple-test.patch new file mode 100644 index 0000000..338f368 --- /dev/null +++ b/SOURCES/perl-5.33.0-ext-XS-APItest-t-utf8_warn_base.pl-Fix-a-couple-test.patch @@ -0,0 +1,38 @@ +From 73b535d23d98bd3bdc31a27da26222e2e56166ac Mon Sep 17 00:00:00 2001 +From: Karl Williamson +Date: Tue, 30 Jun 2020 13:58:50 -0600 +Subject: [PATCH] ext/XS-APItest/t/utf8_warn_base.pl: Fix a couple tests +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +These had invalid values, which didn't show up execpt on EBCDIC + +Signed-off-by: Petr Písař +--- + ext/XS-APItest/t/utf8_warn_base.pl | 2 -- + 1 file changed, 2 deletions(-) + +diff --git a/ext/XS-APItest/t/utf8_warn_base.pl b/ext/XS-APItest/t/utf8_warn_base.pl +index d86871cd0f..a0f732282e 100644 +--- a/ext/XS-APItest/t/utf8_warn_base.pl ++++ b/ext/XS-APItest/t/utf8_warn_base.pl +@@ -486,7 +486,6 @@ my @tests; + : I8_to_native( + "\xff\xa7\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf"), + 0x7FFFFFFFFFFFFFFF, +- (isASCII) ? 1 : 2, + ], + [ "first 64 bit code point", + (isASCII) +@@ -525,7 +524,6 @@ my @tests; + I8_to_native( + "\xff\xa0\xa0\xa0\xa0\xa0\xa1\xa0\xa0\xa0\xa0\xa0\xa0\xa0"), + 0x800000000, +- 40000000 + ], + [ "requires at least 32 bits", + I8_to_native( +-- +2.25.4 + diff --git a/SOURCES/perl-5.33.0-fix-C-i-obj-where-obj-is-a-lexical.patch b/SOURCES/perl-5.33.0-fix-C-i-obj-where-obj-is-a-lexical.patch new file mode 100644 index 0000000..f7acd14 --- /dev/null +++ b/SOURCES/perl-5.33.0-fix-C-i-obj-where-obj-is-a-lexical.patch @@ -0,0 +1,193 @@ +From b334474a337421c6643b872388245fb2c11bf995 Mon Sep 17 00:00:00 2001 +From: Tony Cook +Date: Mon, 30 Mar 2020 16:32:46 +1100 +Subject: [PATCH] fix C where $obj is a lexical +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +the DB::eval function depends on the special behaviour of eval "" +within the DB package, which evaluates the string within the context +of the first non-DB sub or eval scope, working up the call stack. + +The debugger refactor moved handling for the 'i' command from the +DB package to the DB::Obj package, so the eval in DB::eval was +working in the context of the DB::Obj::cmd_i function, not in the +calling scope. + +Fixed by moving the handling for the i command back to DB. + +Fixes #17661. + +Signed-off-by: Petr Písař +--- + MANIFEST | 1 + + lib/perl5db.pl | 65 +++++++++++++++++++++--------------------- + lib/perl5db.t | 20 +++++++++++++ + lib/perl5db/t/gh-17661 | 14 +++++++++ + 4 files changed, 68 insertions(+), 32 deletions(-) + create mode 100644 lib/perl5db/t/gh-17661 + +diff --git a/MANIFEST b/MANIFEST +index 8c71995174..96af3618bd 100644 +--- a/MANIFEST ++++ b/MANIFEST +@@ -4808,6 +4808,7 @@ lib/perl5db/t/eval-line-bug Tests for the Perl debugger + lib/perl5db/t/fact Tests for the Perl debugger + lib/perl5db/t/filename-line-breakpoint Tests for the Perl debugger + lib/perl5db/t/gh-17660 Tests for the Perl debugger ++lib/perl5db/t/gh-17661 Tests for the Perl debugger + lib/perl5db/t/load-modules Tests for the Perl debugger + lib/perl5db/t/lsub-n Test script used by perl5db.t + lib/perl5db/t/lvalue-bug Tests for the Perl debugger +diff --git a/lib/perl5db.pl b/lib/perl5db.pl +index 96e56d559f..b647d24fb8 100644 +--- a/lib/perl5db.pl ++++ b/lib/perl5db.pl +@@ -2512,6 +2512,37 @@ EOP + return; + } + ++=head3 C<_DB__handle_i_command> - inheritance display ++ ++Display the (nested) parentage of the module or object given. ++ ++=cut ++ ++sub _DB__handle_i_command { ++ my $self = shift; ++ ++ my $line = $self->cmd_args; ++ require mro; ++ foreach my $isa ( split( /\s+/, $line ) ) { ++ $evalarg = "$isa"; ++ # The &-call is here to ascertain the mutability of @_. ++ ($isa) = &DB::eval; ++ no strict 'refs'; ++ print join( ++ ', ', ++ map { ++ "$_" ++ . ( ++ defined( ${"$_\::VERSION"} ) ++ ? ' ' . ${"$_\::VERSION"} ++ : undef ) ++ } @{mro::get_linear_isa(ref($isa) || $isa)} ++ ); ++ print "\n"; ++ } ++ next CMD; ++} ++ + # 't' is type. + # 'm' is method. + # 'v' is the value (i.e: method name or subroutine ref). +@@ -2531,6 +2562,7 @@ BEGIN + 'W' => { t => 'm', v => '_handle_W_command', }, + 'c' => { t => 's', v => \&_DB__handle_c_command, }, + 'f' => { t => 's', v => \&_DB__handle_f_command, }, ++ 'i' => { t => 's', v => \&_DB__handle_i_command, }, + 'm' => { t => 's', v => \&_DB__handle_m_command, }, + 'n' => { t => 'm', v => '_handle_n_command', }, + 'p' => { t => 'm', v => '_handle_p_command', }, +@@ -2551,7 +2583,7 @@ BEGIN + { t => 's', v => \&_DB__handle_restart_and_rerun_commands, }, + } qw(R rerun)), + (map { $_ => {t => 'm', v => '_handle_cmd_wrapper_commands' }, } +- qw(a A b B e E h i l L M o O v w W)), ++ qw(a A b B e E h l L M o O v w W)), + ); + }; + +@@ -5468,37 +5500,6 @@ sub cmd_h { + } + } ## end sub cmd_h + +-=head3 C - inheritance display +- +-Display the (nested) parentage of the module or object given. +- +-=cut +- +-sub cmd_i { +- my $cmd = shift; +- my $line = shift; +- +- require mro; +- +- foreach my $isa ( split( /\s+/, $line ) ) { +- $evalarg = $isa; +- # The &-call is here to ascertain the mutability of @_. +- ($isa) = &DB::eval; +- no strict 'refs'; +- print join( +- ', ', +- map { +- "$_" +- . ( +- defined( ${"$_\::VERSION"} ) +- ? ' ' . ${"$_\::VERSION"} +- : undef ) +- } @{mro::get_linear_isa(ref($isa) || $isa)} +- ); +- print "\n"; +- } +-} ## end sub cmd_i +- + =head3 C - list lines (command) + + Most of the command is taken up with transforming all the different line +diff --git a/lib/perl5db.t b/lib/perl5db.t +index 913a301d98..ffa659a215 100644 +--- a/lib/perl5db.t ++++ b/lib/perl5db.t +@@ -2946,6 +2946,26 @@ SKIP: + ); + } + ++{ ++ # gh #17661 ++ my $wrapper = DebugWrap->new( ++ { ++ cmds => ++ [ ++ 'c', ++ 'i $obj', ++ 'q', ++ ], ++ prog => '../lib/perl5db/t/gh-17661', ++ } ++ ); ++ ++ $wrapper->output_like( ++ qr/C5, C1, C2, C3, C4/, ++ q/check for reasonable result/, ++ ); ++} ++ + SKIP: + { + $Config{usethreads} +diff --git a/lib/perl5db/t/gh-17661 b/lib/perl5db/t/gh-17661 +new file mode 100644 +index 0000000000..0d85977b35 +--- /dev/null ++++ b/lib/perl5db/t/gh-17661 +@@ -0,0 +1,14 @@ ++use v5.10.0; ++ ++{ package C1; sub c1 { } our @ISA = qw(C2) } ++{ package C2; sub c2 { } our @ISA = qw(C3) } ++{ package C3; sub c3 { } our @ISA = qw( ) } ++{ package C4; sub c4 { } our @ISA = qw( ) } ++{ package C5; sub c5 { } our @ISA = qw(C1 C4) } ++ ++my $obj = bless {}, 'C5'; ++$main::global = bless {}, 'C5'; ++ ++$DB::single = 1; ++ ++say "Done."; +-- +2.25.4 + diff --git a/SOURCES/perl-5.33.0-make-fh-error-report-errors-from-both-input-and-outp.patch b/SOURCES/perl-5.33.0-make-fh-error-report-errors-from-both-input-and-outp.patch new file mode 100644 index 0000000..8f52323 --- /dev/null +++ b/SOURCES/perl-5.33.0-make-fh-error-report-errors-from-both-input-and-outp.patch @@ -0,0 +1,87 @@ +From 89341f87f9fc65c4d7133e497bb04586e86b8052 Mon Sep 17 00:00:00 2001 +From: Tony Cook +Date: Tue, 12 May 2020 10:29:17 +1000 +Subject: [PATCH 1/2] make $fh->error report errors from both input and output +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +For character devices and sockets perl uses separate PerlIO objects +for input and output so they can be buffered separately. + +The IO::Handle::error() method only checked the input stream, so +if a write error occurs error() would still returned false. + +Change this so both the input and output streams are checked. + +fixes #6799 + +Signed-off-by: Petr Písař +--- + dist/IO/IO.xs | 12 ++++++++---- + dist/IO/t/io_xs.t | 19 ++++++++++++++++++- + 2 files changed, 26 insertions(+), 5 deletions(-) + +diff --git a/dist/IO/IO.xs b/dist/IO/IO.xs +index 68b7352c38..99d523d2c1 100644 +--- a/dist/IO/IO.xs ++++ b/dist/IO/IO.xs +@@ -389,13 +389,17 @@ ungetc(handle, c) + + int + ferror(handle) +- InputStream handle ++ SV * handle ++ PREINIT: ++ IO *io = sv_2io(handle); ++ InputStream in = IoIFP(io); ++ OutputStream out = IoOFP(io); + CODE: +- if (handle) ++ if (in) + #ifdef PerlIO +- RETVAL = PerlIO_error(handle); ++ RETVAL = PerlIO_error(in) || (in != out && PerlIO_error(out)); + #else +- RETVAL = ferror(handle); ++ RETVAL = ferror(in) || (in != out && ferror(out)); + #endif + else { + RETVAL = -1; +diff --git a/dist/IO/t/io_xs.t b/dist/IO/t/io_xs.t +index 1e3c49a4a7..f890e92558 100644 +--- a/dist/IO/t/io_xs.t ++++ b/dist/IO/t/io_xs.t +@@ -11,7 +11,7 @@ BEGIN { + } + } + +-use Test::More tests => 5; ++use Test::More tests => 7; + use IO::File; + use IO::Seekable; + +@@ -50,3 +50,20 @@ SKIP: + ok($fh->sync, "sync to a read only handle") + or diag "sync(): ", $!; + } ++ ++ ++SKIP: { ++ # gh 6799 ++ # ++ # This isn't really a Linux/BSD specific test, but /dev/full is (I ++ # hope) reasonably well defined on these. Patches welcome if your platform ++ # also supports it (or something like it) ++ skip "no /dev/full or not a /dev/full platform", 2 ++ unless $^O =~ /^(linux|netbsd|freebsd)$/ && -c "/dev/full"; ++ open my $fh, ">", "/dev/full" ++ or skip "Could not open /dev/full: $!", 2; ++ $fh->print("a" x 1024); ++ ok(!$fh->flush, "should fail to flush"); ++ ok($fh->error, "stream should be in error"); ++ close $fh; # silently ignore the error ++} +-- +2.25.4 + diff --git a/SOURCES/perl-5.33.0-reentr.c-Buffer-sizes-for-asctime_r-ctime_r-are-smal.patch b/SOURCES/perl-5.33.0-reentr.c-Buffer-sizes-for-asctime_r-ctime_r-are-smal.patch new file mode 100644 index 0000000..7778210 --- /dev/null +++ b/SOURCES/perl-5.33.0-reentr.c-Buffer-sizes-for-asctime_r-ctime_r-are-smal.patch @@ -0,0 +1,58 @@ +From 81169c06a76f62ff987ed990ac910c2ae08b3f91 Mon Sep 17 00:00:00 2001 +From: Karl Williamson +Date: Tue, 10 Mar 2020 15:19:57 -0600 +Subject: [PATCH] reentr.c: Buffer sizes for asctime_r,ctime_r are small +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +The needed sizes of these are stated in the man pages, and are much +smaller than were being allocated. + +Signed-off-by: Petr Písař +--- + reentr.c | 4 ++-- + regen/reentr.pl | 5 ++++- + 2 files changed, 6 insertions(+), 3 deletions(-) + +diff --git a/reentr.c b/reentr.c +index 8ddda7bfc0..8438c8f90f 100644 +--- a/reentr.c ++++ b/reentr.c +@@ -52,14 +52,14 @@ Perl_reentrant_size(pTHX) { + # define REENTRANTUSUALSIZE 4096 /* Make something up. */ + + # ifdef HAS_ASCTIME_R +- PL_reentrant_buffer->_asctime_size = REENTRANTSMALLSIZE; ++ PL_reentrant_buffer->_asctime_size = 26; + # endif /* HAS_ASCTIME_R */ + + # ifdef HAS_CRYPT_R + # endif /* HAS_CRYPT_R */ + + # ifdef HAS_CTIME_R +- PL_reentrant_buffer->_ctime_size = REENTRANTSMALLSIZE; ++ PL_reentrant_buffer->_ctime_size = 26; + # endif /* HAS_CTIME_R */ + + # ifdef HAS_GETGRNAM_R +diff --git a/regen/reentr.pl b/regen/reentr.pl +index f5788c7ad9..94721e9dec 100644 +--- a/regen/reentr.pl ++++ b/regen/reentr.pl +@@ -495,8 +495,11 @@ for my $func (@seenf) { + char* _${func}_buffer; + size_t _${func}_size; + EOF ++ my $size = ($func =~ /^(asctime|ctime)$/) ++ ? 26 ++ : "REENTRANTSMALLSIZE"; + push @size, <_${func}_size = REENTRANTSMALLSIZE; ++ PL_reentrant_buffer->_${func}_size = $size; + EOF + pushinitfree $func; + pushssif $endif; +-- +2.25.4 + diff --git a/SOURCES/perl-5.33.0-reentr.c-Prevent-infinite-looping.patch b/SOURCES/perl-5.33.0-reentr.c-Prevent-infinite-looping.patch new file mode 100644 index 0000000..a67c259 --- /dev/null +++ b/SOURCES/perl-5.33.0-reentr.c-Prevent-infinite-looping.patch @@ -0,0 +1,46 @@ +From 981fbfc16220a15e72457d8ece4e014988746946 Mon Sep 17 00:00:00 2001 +From: Karl Williamson +Date: Thu, 12 Mar 2020 12:48:47 -0600 +Subject: [PATCH] reentr.c: Prevent infinite looping +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +This is an easy, though paranoid hedge to prevent something that should +never happen from causing an infinite loop if it were to happen. + +Signed-off-by: Petr Písař +--- + reentr.c | 2 +- + regen/reentr.pl | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/reentr.c b/reentr.c +index 8438c8f90f..2429aa2f5d 100644 +--- a/reentr.c ++++ b/reentr.c +@@ -36,7 +36,7 @@ + + #define RenewDouble(data_pointer, size_pointer, type) \ + STMT_START { \ +- const size_t size = *(size_pointer) * 2; \ ++ const size_t size = MAX(*(size_pointer), 1) * 2; \ + Renew((data_pointer), (size), type); \ + *(size_pointer) = size; \ + } STMT_END +diff --git a/regen/reentr.pl b/regen/reentr.pl +index 94721e9dec..ba2e1c8fa6 100644 +--- a/regen/reentr.pl ++++ b/regen/reentr.pl +@@ -818,7 +818,7 @@ print $c <<"EOF"; + + #define RenewDouble(data_pointer, size_pointer, type) \\ + STMT_START { \\ +- const size_t size = *(size_pointer) * 2; \\ ++ const size_t size = MAX(*(size_pointer), 1) * 2; \\ + Renew((data_pointer), (size), type); \\ + *(size_pointer) = size; \\ + } STMT_END +-- +2.25.4 + diff --git a/SOURCES/perl-5.33.0-sv.h-Wanted-UOK-but-said-IOK.patch b/SOURCES/perl-5.33.0-sv.h-Wanted-UOK-but-said-IOK.patch new file mode 100644 index 0000000..759ed92 --- /dev/null +++ b/SOURCES/perl-5.33.0-sv.h-Wanted-UOK-but-said-IOK.patch @@ -0,0 +1,31 @@ +From 530e9296a21b673d7e4c2b42f18d0d52d00f35c4 Mon Sep 17 00:00:00 2001 +From: Karl Williamson +Date: Sun, 28 Jun 2020 12:03:54 -0600 +Subject: [PATCH] sv.h: Wanted UOK, but said IOK +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +I don't know the consequences of this bug + +Signed-off-by: Petr Písař +--- + sv.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/sv.h b/sv.h +index 2f6431a826..3721b2fb1b 100644 +--- a/sv.h ++++ b/sv.h +@@ -1711,7 +1711,7 @@ Like C but doesn't process magic. + #define SvNV(sv) (SvNOK_nog(sv) ? SvNVX(sv) : sv_2nv(sv)) + + #define SvIV_nomg(sv) (SvIOK(sv) ? SvIVX(sv) : sv_2iv_flags(sv, 0)) +-#define SvUV_nomg(sv) (SvIOK(sv) ? SvUVX(sv) : sv_2uv_flags(sv, 0)) ++#define SvUV_nomg(sv) (SvUOK(sv) ? SvUVX(sv) : sv_2uv_flags(sv, 0)) + #define SvNV_nomg(sv) (SvNOK(sv) ? SvNVX(sv) : sv_2nv_flags(sv, 0)) + + /* ----*/ +-- +2.25.4 + diff --git a/SOURCES/perl-5.33.1-sort-return-foo.patch b/SOURCES/perl-5.33.1-sort-return-foo.patch new file mode 100644 index 0000000..8dbd121 --- /dev/null +++ b/SOURCES/perl-5.33.1-sort-return-foo.patch @@ -0,0 +1,77 @@ +From 390fe0c0d09aadc66f644e9eee4aa1245221188c Mon Sep 17 00:00:00 2001 +From: David Mitchell +Date: Tue, 25 Aug 2020 13:15:25 +0100 +Subject: [PATCH] sort { return foo() } ... +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +GH #18081 + +A sub call via return in a sort block was called in void rather than +scalar context, causing the comparison result to be discarded. + +This because when a sort block is called it is not a real function +call, even though a sort block can be returned from. Instead, a +CXt_NULL is pushed on the context stack. Because this isn't a sub-ish +context type (unlike CXt_SUB, CXt_EVAL etc) there is no 'caller sub' +on the context stack to be found to retrieve the caller's context +(i.e. cx->cx_gimme). + +This commit fixes it by special-casing Perl_gimme_V(). + +Ideally at some future point, a new context type, CXt_SORT, should be +added. This would be used instead of CXt_NULL when a sort BLOCK is +called. Like other sub-ish context types, it would have an old_cxsubix +field and PL_curstackinfo->si_cxsubix would point to it. This would +eliminate needing special-case handling in places like Perl_gimme_V(). + +Signed-off-by: Petr Písař +--- + inline.h | 2 +- + t/op/sort.t | 12 +++++++++++- + 2 files changed, 12 insertions(+), 2 deletions(-) + +diff --git a/inline.h b/inline.h +index a8240efb9c..6fbd5abfea 100644 +--- a/inline.h ++++ b/inline.h +@@ -2086,7 +2086,7 @@ Perl_gimme_V(pTHX) + return gimme; + cxix = PL_curstackinfo->si_cxsubix; + if (cxix < 0) +- return G_VOID; ++ return PL_curstackinfo->si_type == PERLSI_SORT ? G_SCALAR: G_VOID; + assert(cxstack[cxix].blk_gimme & G_WANT); + return (cxstack[cxix].blk_gimme & G_WANT); + } +diff --git a/t/op/sort.t b/t/op/sort.t +index f2e139dff0..8e387fb90d 100644 +--- a/t/op/sort.t ++++ b/t/op/sort.t +@@ -7,7 +7,7 @@ BEGIN { + set_up_inc('../lib'); + } + use warnings; +-plan(tests => 203); ++plan(tests => 204); + use Tie::Array; # we need to test sorting tied arrays + + # these shouldn't hang +@@ -1202,3 +1202,13 @@ SKIP: + $fillb = undef; + is $act, "01[sortb]2[fillb]"; + } ++ ++# GH #18081 ++# sub call via return in sort block was called in void rather than scalar ++# context ++ ++{ ++ sub sort18081 { $a + 1 <=> $b + 1 } ++ my @a = sort { return &sort18081 } 6,1,2; ++ is "@a", "1 2 6", "GH #18081"; ++} +-- +2.25.4 + diff --git a/SOURCES/perl-5.33.2-Remove-Perl_av_top_index.patch b/SOURCES/perl-5.33.2-Remove-Perl_av_top_index.patch new file mode 100644 index 0000000..06f6ce4 --- /dev/null +++ b/SOURCES/perl-5.33.2-Remove-Perl_av_top_index.patch @@ -0,0 +1,77 @@ +From bd5fa06648085e8c17efd55abeb6424aeeb1018e Mon Sep 17 00:00:00 2001 +From: Karl Williamson +Date: Tue, 29 Sep 2020 00:48:19 -0600 +Subject: [PATCH] Remove Perl_av_top_index +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +I created this in 87306e0674dfe3af29804b4641347cd5ac9b0521, thinking it +was needed to preserve backward compatibility if someone were using this +instead of the macro. But it turned out that there never was such a +function, it was inlined, and the name was S_av_top_index, so there is +no reason to create a new function that no one has ever been able to +call. So just remove it, and let all accesses go through the macro + +Signed-off-by: Petr Písař +--- + av.c | 10 ---------- + embed.fnc | 2 +- + proto.h | 7 +++---- + 3 files changed, 4 insertions(+), 15 deletions(-) + +diff --git a/av.c b/av.c +index ada09cde9a..ad2429f90d 100644 +--- a/av.c ++++ b/av.c +@@ -1095,16 +1095,6 @@ Perl_av_nonelem(pTHX_ AV *av, SSize_t ix) { + return sv; + } + +-SSize_t +-Perl_av_top_index(pTHX_ AV *av) +-{ +- PERL_ARGS_ASSERT_AV_TOP_INDEX; +- assert(SvTYPE(av) == SVt_PVAV); +- +- return AvFILL(av); +-} +- +- + /* + * ex: set ts=8 sts=4 sw=4 et: + */ +diff --git a/embed.fnc b/embed.fnc +index a6b4d0350f..f5c5b29c2d 100644 +--- a/embed.fnc ++++ b/embed.fnc +@@ -637,7 +637,7 @@ Apd |void |av_push |NN AV *av|NN SV *val + EXp |void |av_reify |NN AV *av + ApdR |SV* |av_shift |NN AV *av + Apd |SV** |av_store |NN AV *av|SSize_t key|NULLOK SV *val +-AMdRp |SSize_t|av_top_index |NN AV *av ++AmdR |SSize_t|av_top_index |NN AV *av + AidRp |Size_t |av_count |NN AV *av + AmdR |SSize_t|av_tindex |NN AV *av + Apd |void |av_undef |NN AV *av +diff --git a/proto.h b/proto.h +index c4490fc46e..2da1a07761 100644 +--- a/proto.h ++++ b/proto.h +@@ -291,10 +291,9 @@ PERL_CALLCONV SV** Perl_av_store(pTHX_ AV *av, SSize_t key, SV *val); + __attribute__warn_unused_result__; */ + #define PERL_ARGS_ASSERT_AV_TINDEX + +-PERL_CALLCONV SSize_t Perl_av_top_index(pTHX_ AV *av) +- __attribute__warn_unused_result__; +-#define PERL_ARGS_ASSERT_AV_TOP_INDEX \ +- assert(av) ++/* PERL_CALLCONV SSize_t av_top_index(pTHX_ AV *av) ++ __attribute__warn_unused_result__; */ ++#define PERL_ARGS_ASSERT_AV_TOP_INDEX + + PERL_CALLCONV void Perl_av_undef(pTHX_ AV *av); + #define PERL_ARGS_ASSERT_AV_UNDEF \ +-- +2.25.4 + diff --git a/SOURCES/perl-5.33.2-mro.xs-Fix-compiler-warning.patch b/SOURCES/perl-5.33.2-mro.xs-Fix-compiler-warning.patch new file mode 100644 index 0000000..38438ea --- /dev/null +++ b/SOURCES/perl-5.33.2-mro.xs-Fix-compiler-warning.patch @@ -0,0 +1,31 @@ +From fa353c3d2833fc326233e0eb583753b4d7887a63 Mon Sep 17 00:00:00 2001 +From: Karl Williamson +Date: Sun, 4 Oct 2020 11:07:19 -0600 +Subject: [PATCH] mro.xs: Fix compiler warning +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Fixes GH #18155 + +Signed-off-by: Petr Písař +--- + ext/mro/mro.xs | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/ext/mro/mro.xs b/ext/mro/mro.xs +index f21216af6e..8ce5844904 100644 +--- a/ext/mro/mro.xs ++++ b/ext/mro/mro.xs +@@ -253,7 +253,7 @@ S_mro_get_linear_isa_c3(pTHX_ HV* stash, U32 level) + hierarchy is not C3-incompatible */ + if(!winner) { + SV *errmsg; +- I32 i; ++ Size_t i; + + errmsg = newSVpvf( + "Inconsistent hierarchy during C3 merge of class '%" HEKf "':\n\t" +-- +2.25.4 + diff --git a/SOURCES/perl-5.33.2-sv.c-Added-missing-braces-in-Perl_sv_inc_nomg.patch b/SOURCES/perl-5.33.2-sv.c-Added-missing-braces-in-Perl_sv_inc_nomg.patch new file mode 100644 index 0000000..2351b3e --- /dev/null +++ b/SOURCES/perl-5.33.2-sv.c-Added-missing-braces-in-Perl_sv_inc_nomg.patch @@ -0,0 +1,32 @@ +From 5777cf812c2812ea45eeb45e48979bab544d71af Mon Sep 17 00:00:00 2001 +From: TAKAI Kousuke <62541129+t-a-k@users.noreply.github.com> +Date: Thu, 8 Oct 2020 19:02:10 +0900 +Subject: [PATCH] sv.c: Added missing braces in Perl_sv_inc_nomg(). +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Signed-off-by: Petr Písař +--- + sv.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/sv.c b/sv.c +index 82248e3b1f..57fd65a5b8 100644 +--- a/sv.c ++++ b/sv.c +@@ -8944,9 +8944,10 @@ Perl_sv_inc_nomg(pTHX_ SV *const sv) + if (SvIsUV(sv)) { + if (SvUVX(sv) == UV_MAX) + sv_setnv(sv, UV_MAX_P1); +- else ++ else { + (void)SvIOK_only_UV(sv); + SvUV_set(sv, SvUVX(sv) + 1); ++ } + } else { + if (SvIVX(sv) == IV_MAX) + sv_setuv(sv, (UV)IV_MAX + 1); +-- +2.25.4 + diff --git a/SOURCES/perl-5.33.2-sv.h-sv_collxfrm-didn-t-work-properly.patch b/SOURCES/perl-5.33.2-sv.h-sv_collxfrm-didn-t-work-properly.patch new file mode 100644 index 0000000..efa0632 --- /dev/null +++ b/SOURCES/perl-5.33.2-sv.h-sv_collxfrm-didn-t-work-properly.patch @@ -0,0 +1,36 @@ +From e17dadf36f7b4348e59076240c880d0c78b33fa9 Mon Sep 17 00:00:00 2001 +From: Karl Williamson +Date: Tue, 22 Sep 2020 08:47:52 -0600 +Subject: [PATCH] sv.h: sv_collxfrm didn't work properly +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +It is supposed to be a wrapper for sv_collxfrm_flags, but it was just +calling sv_cmp_flags instead. The consequences are none except under +'use locale' in which case you always got the C locale. I did not add +tests, because it is really a pain to write portable locale tests, and +this doesn't seem to be much used. In core the '_flags' form was always +used. + +Signed-off-by: Petr Písař +--- + sv.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/sv.h b/sv.h +index 19ce718ac3..44414b35a9 100644 +--- a/sv.h ++++ b/sv.h +@@ -2045,7 +2045,7 @@ Like C but doesn't process magic. + #define sv_eq(sv1, sv2) sv_eq_flags(sv1, sv2, SV_GMAGIC) + #define sv_cmp(sv1, sv2) sv_cmp_flags(sv1, sv2, SV_GMAGIC) + #define sv_cmp_locale(sv1, sv2) sv_cmp_locale_flags(sv1, sv2, SV_GMAGIC) +-#define sv_collxfrm(sv, nxp) sv_cmp_flags(sv, nxp, SV_GMAGIC) ++#define sv_collxfrm(sv, nxp) sv_collxfrm_flags(sv, nxp, SV_GMAGIC) + #define sv_2bool(sv) sv_2bool_flags(sv, SV_GMAGIC) + #define sv_2bool_nomg(sv) sv_2bool_flags(sv, 0) + #define sv_insert(bigstr, offset, len, little, littlelen) \ +-- +2.25.4 + diff --git a/SOURCES/perl-5.33.3-Perl_custom_op_get_field-remove-undef-behaviour.patch b/SOURCES/perl-5.33.3-Perl_custom_op_get_field-remove-undef-behaviour.patch new file mode 100644 index 0000000..24528d3 --- /dev/null +++ b/SOURCES/perl-5.33.3-Perl_custom_op_get_field-remove-undef-behaviour.patch @@ -0,0 +1,76 @@ +From e050064b67c501e9fdc7bc3f513ba2b8b9e795f8 Mon Sep 17 00:00:00 2001 +From: David Mitchell +Date: Fri, 30 Oct 2020 20:50:58 +0000 +Subject: [PATCH] Perl_custom_op_get_field(): remove undef behaviour +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Thus function has a couple a switches with + + default: + NOT_REACHED; /* NOTREACHED */ + +but clang is complaining that the value returned by the function is +undefined if those default branches are taken, since the 'any' variable +doesn't get set in that path. + +Replace the NOTREACHED with a croak("panic: ..."). It's possible (albeit +not intended) for Perl_custom_op_get_field() to be called with a 'field' +arg which triggers the default case. So if this ever happens, make it +clear that something has gone wrong, rather than just silently +continuing on non-debugging builds. + +In any case, this shuts up clang. + +Signed-off-by: Petr Písař +--- + op.c | 14 ++++++-------- + 1 file changed, 6 insertions(+), 8 deletions(-) + +diff --git a/op.c b/op.c +index c30c6b7c8f..2933e2ed7d 100644 +--- a/op.c ++++ b/op.c +@@ -18100,6 +18100,7 @@ Perl_custom_op_get_field(pTHX_ const OP *o, const xop_flags_enum field) + else + xop = INT2PTR(XOP *, SvIV(HeVAL(he))); + } ++ + { + XOPRETANY any; + if(field == XOPe_xop_ptr) { +@@ -18121,7 +18122,10 @@ Perl_custom_op_get_field(pTHX_ const OP *o, const xop_flags_enum field) + any.xop_peep = xop->xop_peep; + break; + default: +- NOT_REACHED; /* NOTREACHED */ ++ field_panic: ++ Perl_croak(aTHX_ ++ "panic: custom_op_get_field(): invalid field %d\n", ++ (int)field); + break; + } + } else { +@@ -18139,17 +18143,11 @@ Perl_custom_op_get_field(pTHX_ const OP *o, const xop_flags_enum field) + any.xop_peep = XOPd_xop_peep; + break; + default: +- NOT_REACHED; /* NOTREACHED */ ++ goto field_panic; + break; + } + } + } +- /* On some platforms (HP-UX, IA64) gcc emits a warning for this function: +- * op.c: In function 'Perl_custom_op_get_field': +- * op.c:...: warning: 'any.xop_name' may be used uninitialized in this function [-Wmaybe-uninitialized] +- * This is because on those platforms (with -DEBUGGING) NOT_REACHED +- * expands to assert(0), which expands to ((0) ? (void)0 : +- * __assert(...)), and gcc doesn't know that __assert can never return. */ + return any; + } + } +-- +2.25.4 + diff --git a/SOURCES/perl-5.33.3-fetch-magic-on-the-first-stacked-filetest-not-the-la.patch b/SOURCES/perl-5.33.3-fetch-magic-on-the-first-stacked-filetest-not-the-la.patch new file mode 100644 index 0000000..6b55c4a --- /dev/null +++ b/SOURCES/perl-5.33.3-fetch-magic-on-the-first-stacked-filetest-not-the-la.patch @@ -0,0 +1,57 @@ +From f877e124a20d4f94c82c36e6b7a99b4e9663e204 Mon Sep 17 00:00:00 2001 +From: Tony Cook +Date: Tue, 10 Nov 2020 15:50:27 +1100 +Subject: [PATCH] fetch magic on the first stacked filetest, not the last +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +fixes #18293 + +Signed-off-by: Petr Písař +--- + pp_sys.c | 2 +- + t/op/filetest.t | 10 +++++++++- + 2 files changed, 10 insertions(+), 2 deletions(-) + +diff --git a/pp_sys.c b/pp_sys.c +index 66c5d9aade..5c9f768eaf 100644 +--- a/pp_sys.c ++++ b/pp_sys.c +@@ -3067,7 +3067,7 @@ S_try_amagic_ftest(pTHX_ char chr) { + SV *const arg = *PL_stack_sp; + + assert(chr != '?'); +- if (!(PL_op->op_private & OPpFT_STACKING)) SvGETMAGIC(arg); ++ if (!(PL_op->op_private & OPpFT_STACKED)) SvGETMAGIC(arg); + + if (SvAMAGIC(arg)) + { +diff --git a/t/op/filetest.t b/t/op/filetest.t +index fe9724c59a..7c471c050c 100644 +--- a/t/op/filetest.t ++++ b/t/op/filetest.t +@@ -9,7 +9,7 @@ BEGIN { + set_up_inc(qw '../lib ../cpan/Perl-OSType/lib'); + } + +-plan(tests => 57 + 27*14); ++plan(tests => 58 + 27*14); + + if ($^O =~ /MSWin32|cygwin|msys/ && !is_miniperl) { + require Win32; # for IsAdminUser() +@@ -385,3 +385,11 @@ SKIP: { + ok(!-f "TEST\0-", '-f on name with \0'); + ok(!-r "TEST\0-", '-r on name with \0'); + } ++ ++{ ++ # github #18293 ++ "" =~ /(.*)/; ++ my $x = $1; # call magic on $1, setting the pv to "" ++ "test.pl" =~ /(.*)/; ++ ok(-f -r $1, "stacked handles on a name with magic"); ++} +-- +2.25.4 + diff --git a/SOURCES/perl-5.33.3-pp_split-add-TonyC-s-stack-not-refcounted-suggestion.patch b/SOURCES/perl-5.33.3-pp_split-add-TonyC-s-stack-not-refcounted-suggestion.patch new file mode 100644 index 0000000..1b3b825 --- /dev/null +++ b/SOURCES/perl-5.33.3-pp_split-add-TonyC-s-stack-not-refcounted-suggestion.patch @@ -0,0 +1,54 @@ +From ab307de390c3459badcc89b3d77542b5b871b2e8 Mon Sep 17 00:00:00 2001 +From: Richard Leach +Date: Tue, 20 Oct 2020 18:16:38 +0100 +Subject: [PATCH 2/2] pp_split: add TonyC's stack-not-refcounted-suggestion and + tests +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Signed-off-by: Petr Písař +--- + pp.c | 5 ++++- + t/op/split.t | 5 +++++ + 2 files changed, 9 insertions(+), 1 deletion(-) + +diff --git a/pp.c b/pp.c +index ce16c56e63..5b5e163011 100644 +--- a/pp.c ++++ b/pp.c +@@ -6034,6 +6034,9 @@ PP(pp_split) + oldsave = PL_savestack_ix; + } + ++ /* Some defence against stack-not-refcounted bugs */ ++ (void)sv_2mortal(SvREFCNT_inc_simple_NN(ary)); ++ + if ((mg = SvTIED_mg((const SV *)ary, PERL_MAGIC_tied))) { + PUSHMARK(SP); + XPUSHs(SvTIED_obj(MUTABLE_SV(ary), mg)); +@@ -6356,7 +6359,7 @@ PP(pp_split) + } + + PUTBACK; +- LEAVE_SCOPE(oldsave); /* may undo an earlier SWITCHSTACK */ ++ LEAVE_SCOPE(oldsave); + SPAGAIN; + if (realarray) { + if (!mg) { +diff --git a/t/op/split.t b/t/op/split.t +index 1d78a45bde..7a321645ac 100644 +--- a/t/op/split.t ++++ b/t/op/split.t +@@ -703,3 +703,8 @@ fresh_perl_is('my @ary; @ary = split(/\w(?{ @ary[1000] = 1 })/, "abc");', + fresh_perl_is('my @ary; @ary = split(/\w(?{ undef @ary })/, "abc");', + '',{},'(@ary = split ...) survives an (undef @ary)'); + ++# check the (@ary = split) optimisation survives stack-not-refcounted bugs ++fresh_perl_is('our @ary; @ary = split(/\w(?{ *ary = 0 })/, "abc");', ++ '',{},'(@ary = split ...) survives @ary destruction via typeglob'); ++fresh_perl_is('my $ary = []; @$ary = split(/\w(?{ $ary = [] })/, "abc");', ++ '',{},'(@ary = split ...) survives @ary destruction via reassignment'); +-- +2.25.4 + diff --git a/SOURCES/perl-5.33.3-t-op-inc.t-t-op-hexfp.t-t-op-sprintf2.t-Add-missing-.patch b/SOURCES/perl-5.33.3-t-op-inc.t-t-op-hexfp.t-t-op-sprintf2.t-Add-missing-.patch new file mode 100644 index 0000000..253b340 --- /dev/null +++ b/SOURCES/perl-5.33.3-t-op-inc.t-t-op-hexfp.t-t-op-sprintf2.t-Add-missing-.patch @@ -0,0 +1,71 @@ +From b52b6c4029b51818442d64c6104d26e12e140f09 Mon Sep 17 00:00:00 2001 +From: TAKAI Kousuke <62541129+t-a-k@users.noreply.github.com> +Date: Thu, 5 Nov 2020 22:06:16 +0900 +Subject: [PATCH] t/op/inc.t, t/op/hexfp.t, t/op/sprintf2.t: Add missing d_ + prefixes for Config variable names. +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Signed-off-by: Petr Písař +--- + t/op/hexfp.t | 2 +- + t/op/inc.t | 4 ++-- + t/op/sprintf2.t | 4 ++-- + 3 files changed, 5 insertions(+), 5 deletions(-) + +diff --git a/t/op/hexfp.t b/t/op/hexfp.t +index b0c85cfdc6..5fb80d3d74 100644 +--- a/t/op/hexfp.t ++++ b/t/op/hexfp.t +@@ -246,7 +246,7 @@ SKIP: { + skip("non-80-bit-long-double", 4) + unless ($Config{uselongdouble} && + ($Config{nvsize} == 16 || $Config{nvsize} == 12) && +- ($Config{long_double_style_ieee_extended})); ++ ($Config{d_long_double_style_ieee_extended})); + is(0x1p-1074, 4.94065645841246544e-324); + is(0x1p-1075, 2.47032822920623272e-324, '[perl #128919]'); + is(0x1p-1076, 1.23516411460311636e-324); +diff --git a/t/op/inc.t b/t/op/inc.t +index 0bb8b85b13..3d5cc024d3 100644 +--- a/t/op/inc.t ++++ b/t/op/inc.t +@@ -188,10 +188,10 @@ cmp_ok($a, '==', 2147483647, "postdecrement properly downgrades from double"); + + SKIP: { + if ($Config{uselongdouble} && +- ($Config{long_double_style_ieee_doubledouble})) { ++ ($Config{d_long_double_style_ieee_doubledouble})) { + skip "the double-double format is weird", 1; + } +- unless ($Config{double_style_ieee}) { ++ unless ($Config{d_double_style_ieee}) { + skip "the doublekind $Config{doublekind} is not IEEE", 1; + } + +diff --git a/t/op/sprintf2.t b/t/op/sprintf2.t +index bbc12ccd0a..38a550c281 100644 +--- a/t/op/sprintf2.t ++++ b/t/op/sprintf2.t +@@ -701,7 +701,7 @@ SKIP: { + skip("uselongdouble=" . ($Config{uselongdouble} ? 'define' : 'undef') + . " longdblkind=$Config{longdblkind} os=$^O", 6) + unless ($Config{uselongdouble} && +- ($Config{long_double_style_ieee_doubledouble}) ++ ($Config{d_long_double_style_ieee_doubledouble}) + # Gating on 'linux' (ppc) here is due to the differing + # double-double implementations: other (also big-endian) + # double-double platforms (e.g. AIX on ppc or IRIX on mips) +@@ -892,7 +892,7 @@ SKIP: { + skip("non-80-bit-long-double", 17) + unless ($Config{uselongdouble} && + ($Config{nvsize} == 16 || $Config{nvsize} == 12) && +- ($Config{long_double_style_ieee_extended})); ++ ($Config{d_long_double_style_ieee_extended})); + + { + # The last normal for this format. +-- +2.25.4 + diff --git a/SOURCES/perl-5.33.4-locale.c-Fix-typo-in-ifdef.patch b/SOURCES/perl-5.33.4-locale.c-Fix-typo-in-ifdef.patch new file mode 100644 index 0000000..dfad1f2 --- /dev/null +++ b/SOURCES/perl-5.33.4-locale.c-Fix-typo-in-ifdef.patch @@ -0,0 +1,32 @@ +From 9289d4dc7a3d24b20c6e25045e687321ee3e8faf Mon Sep 17 00:00:00 2001 +From: Karl Williamson +Date: Mon, 30 Nov 2020 09:25:52 -0700 +Subject: [PATCH] locale.c: Fix typo in #ifdef +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +This misspelling led to the code assuming that the platform didn't have +a feature that, if used, would result in faster execution. + +Signed-off-by: Petr Písař +--- + locale.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/locale.c b/locale.c +index 9500ab7960..5970423404 100644 +--- a/locale.c ++++ b/locale.c +@@ -2621,7 +2621,7 @@ S_my_nl_langinfo(const int item, bool toggle) + #if defined(HAS_NL_LANGINFO) /* nl_langinfo() is available. */ + # if ! defined(HAS_THREAD_SAFE_NL_LANGINFO_L) \ + || ! defined(HAS_POSIX_2008_LOCALE) \ +- || ! defined(DUPLOCALE) ++ || ! defined(HAS_DUPLOCALE) + + /* Here, use plain nl_langinfo(), switching to the underlying LC_NUMERIC + * for those items dependent on it. This must be copied to a buffer before +-- +2.26.2 + diff --git a/SOURCES/perl-5.33.5-Fix-buggy-fc-in-Turkish-locale.patch b/SOURCES/perl-5.33.5-Fix-buggy-fc-in-Turkish-locale.patch new file mode 100644 index 0000000..b8e11fe --- /dev/null +++ b/SOURCES/perl-5.33.5-Fix-buggy-fc-in-Turkish-locale.patch @@ -0,0 +1,140 @@ +From 4cfbe5474a5c5f852a6dbf0138dc796c2800be93 Mon Sep 17 00:00:00 2001 +From: Karl Williamson +Date: Wed, 30 Dec 2020 05:55:08 -0700 +Subject: [PATCH] Fix buggy fc() in Turkish locale +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +When Turkish handling was added, fc() wasn't properly updated + +Signed-off-by: Petr Písař +--- + pp.c | 12 +++++++++--- + t/op/lc.t | 23 ++++++++++++++++------- + 2 files changed, 25 insertions(+), 10 deletions(-) + +diff --git a/pp.c b/pp.c +index 5e1706346d..23cc6c8adb 100644 +--- a/pp.c ++++ b/pp.c +@@ -4813,7 +4813,7 @@ PP(pp_fc) + do { + extra++; + +- s_peek = (U8 *) memchr(s_peek + 1, 'i', ++ s_peek = (U8 *) memchr(s_peek + 1, 'I', + send - (s_peek + 1)); + } while (s_peek != NULL); + } +@@ -4828,8 +4828,14 @@ PP(pp_fc) + + 1 /* Trailing NUL */ ); + d = (U8*)SvPVX(dest) + len; + +- *d++ = UTF8_TWO_BYTE_HI(GREEK_SMALL_LETTER_MU); +- *d++ = UTF8_TWO_BYTE_LO(GREEK_SMALL_LETTER_MU); ++ if (*s == 'I') { ++ *d++ = UTF8_TWO_BYTE_HI(LATIN_SMALL_LETTER_DOTLESS_I); ++ *d++ = UTF8_TWO_BYTE_LO(LATIN_SMALL_LETTER_DOTLESS_I); ++ } ++ else { ++ *d++ = UTF8_TWO_BYTE_HI(GREEK_SMALL_LETTER_MU); ++ *d++ = UTF8_TWO_BYTE_LO(GREEK_SMALL_LETTER_MU); ++ } + s++; + + for (; s < send; s++) { +diff --git a/t/op/lc.t b/t/op/lc.t +index fce77f3d34..812c41d6b6 100644 +--- a/t/op/lc.t ++++ b/t/op/lc.t +@@ -17,7 +17,7 @@ BEGIN { + + use feature qw( fc ); + +-plan tests => 139 + 2 * (4 * 256) + 15; ++plan tests => 139 + 2 * (5 * 256) + 17; + + is(lc(undef), "", "lc(undef) is ''"); + is(lcfirst(undef), "", "lcfirst(undef) is ''"); +@@ -352,13 +352,14 @@ foreach my $turkic (0 .. 1) { + my $locale = ($turkic) ? $turkic_locale : $non_turkic_locale; + + SKIP: { +- skip "Can't find a $type UTF-8 locale", 4*256 unless defined $locale; ++ skip "Can't find a $type UTF-8 locale", 5*256 unless defined $locale; + + use feature qw( unicode_strings ); + + no locale; + + my @unicode_lc; ++ my @unicode_fc; + my @unicode_uc; + my @unicode_lcfirst; + my @unicode_ucfirst; +@@ -366,6 +367,7 @@ foreach my $turkic (0 .. 1) { + # Get all the values outside of 'locale' + for my $i (0 .. 255) { + push @unicode_lc, lc(chr $i); ++ push @unicode_fc, fc(chr $i); + push @unicode_uc, uc(chr $i); + push @unicode_lcfirst, lcfirst(chr $i); + push @unicode_ucfirst, ucfirst(chr $i); +@@ -373,6 +375,7 @@ foreach my $turkic (0 .. 1) { + + if ($turkic) { + $unicode_lc[ord 'I'] = chr 0x131; ++ $unicode_fc[ord 'I'] = chr 0x131; + $unicode_lcfirst[ord 'I'] = chr 0x131; + $unicode_uc[ord 'i'] = chr 0x130; + $unicode_ucfirst[ord 'i'] = chr 0x130; +@@ -384,6 +387,7 @@ foreach my $turkic (0 .. 1) { + for my $i (0 .. 255) { + is(lc(chr $i), $unicode_lc[$i], "In a $type UTF-8 locale, lc(chr $i) is the same as official Unicode"); + is(uc(chr $i), $unicode_uc[$i], "In a $type UTF-8 locale, uc(chr $i) is the same as official Unicode"); ++ is(fc(chr $i), $unicode_fc[$i], "In a $type UTF-8 locale, fc(chr $i) is the same as official Unicode"); + is(lcfirst(chr $i), $unicode_lcfirst[$i], "In a $type UTF-8 locale, lcfirst(chr $i) is the same as official Unicode"); + is(ucfirst(chr $i), $unicode_ucfirst[$i], "In a $type UTF-8 locale, ucfirst(chr $i) is the same as official Unicode"); + } +@@ -391,27 +395,32 @@ foreach my $turkic (0 .. 1) { + } + + SKIP: { +- skip "Can't find a turkic UTF-8 locale", 15 unless defined $turkic_locale; ++ skip "Can't find a turkic UTF-8 locale", 17 unless defined $turkic_locale; + + # These are designed to stress the calculation of space needed for the + # strings. $filler contains a variety of characters that have special + # handling in the casing functions, and some regular chars as well. ++ # (0x49 = 'I') + my $filler_length = 10000; +- my $filler = uni_to_native("\x{df}\x{b5}\x{e0}\x{c1}\x{b6}\x{ff}") x $filler_length; ++ my $filler = uni_to_native("\x{df}\x{49}\x{69}\x{b5}\x{e0}\x{c1}\x{b6}\x{ff}") x $filler_length; + + # These are the correct answers to what should happen when the given + # casing function is called on $filler; +- my $filler_lc = uni_to_native("\x{df}\x{b5}\x{e0}\x{e1}\x{b6}\x{ff}") x $filler_length; +- my $filler_fc = ("ss" . uni_to_native("\x{b5}\x{e0}\x{e1}\x{b6}\x{ff}")) x $filler_length; +- my $filler_uc = ("SS" . uni_to_native("\x{39c}\x{c0}\x{c1}\x{b6}\x{178}")) x $filler_length; ++ my $filler_lc = uni_to_native("\x{df}\x{131}\x{69}\x{b5}\x{e0}\x{e1}\x{b6}\x{ff}") x $filler_length; ++ my $filler_fc = ("ss" . uni_to_native("\x{131}\x{69}\x{3bc}\x{e0}\x{e1}\x{b6}\x{ff}")) x $filler_length; ++ my $filler_uc = ("SS" . uni_to_native("\x{49}\x{130}\x{39c}\x{c0}\x{c1}\x{b6}\x{178}")) x $filler_length; + + use locale; + setlocale(&POSIX::LC_CTYPE, $turkic_locale); + + is (lc "IIIIIII$filler", "\x{131}\x{131}\x{131}\x{131}\x{131}\x{131}\x{131}$filler_lc", + "lc non-UTF-8, in Turkic locale, beginning with a bunch of I's"); ++ is (fc "IIIIIII$filler", "\x{131}\x{131}\x{131}\x{131}\x{131}\x{131}\x{131}$filler_fc", ++ "fc non-UTF-8, in Turkic locale, beginning with a bunch of I's"); + is (lc "${filler}IIIIIII$filler", "$filler_lc\x{131}\x{131}\x{131}\x{131}\x{131}\x{131}\x{131}$filler_lc", + "lc non-UTF-8, in Turkic locale, a bunch of I's, but not at the beginning"); ++ is (fc "${filler}IIIIIII$filler", "$filler_fc\x{131}\x{131}\x{131}\x{131}\x{131}\x{131}\x{131}$filler_fc", ++ "fc non-UTF-8, in Turkic locale, a bunch of I's, but not at the beginning"); + is (lc "${filler}I\x{307}$filler", "${filler_lc}i$filler_lc", + "lc in Turkic locale with DOT ABOVE immediately following I"); + is (lc "${filler}I\x{307}IIIIII$filler", "${filler_lc}i\x{131}\x{131}\x{131}\x{131}\x{131}\x{131}$filler_lc", +-- +2.26.2 + diff --git a/SOURCES/perl-5.33.5-Use-perl.h-versions-of-PERL_UNUSED_foo-in-XSUB.h.patch b/SOURCES/perl-5.33.5-Use-perl.h-versions-of-PERL_UNUSED_foo-in-XSUB.h.patch new file mode 100644 index 0000000..31d7bf4 --- /dev/null +++ b/SOURCES/perl-5.33.5-Use-perl.h-versions-of-PERL_UNUSED_foo-in-XSUB.h.patch @@ -0,0 +1,43 @@ +From 036189b0a003875df7bf09c7f7fd702267f549e5 Mon Sep 17 00:00:00 2001 +From: Karl Williamson +Date: Sat, 26 Dec 2020 08:44:08 -0700 +Subject: [PATCH] Use perl.h versions of PERL_UNUSED_foo in XSUB.h +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +This commit was applied to perl.h, but not to XSUB.h: + +commit a730e3f230f364cffe49370f816f975ae7c9c403 +Author: Jarkko Hietaniemi +Date: Thu Sep 4 09:08:33 2014 -0400 + +Use sizeof() in UNUSED_ARG and UNUSED_VAR to avoid accessing the values. + +The values might even be uninitialized in the case of PERL_UNUSED_VAR. + +Signed-off-by: Petr Písař +--- + XSUB.h | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/XSUB.h b/XSUB.h +index 616d813840..c1e3959885 100644 +--- a/XSUB.h ++++ b/XSUB.h +@@ -108,10 +108,10 @@ is a lexical C<$_> in scope. + */ + + #ifndef PERL_UNUSED_ARG +-# define PERL_UNUSED_ARG(x) ((void)x) ++# define PERL_UNUSED_ARG(x) ((void)sizeof(x)) + #endif + #ifndef PERL_UNUSED_VAR +-# define PERL_UNUSED_VAR(x) ((void)x) ++# define PERL_UNUSED_VAR(x) ((void)sizeof(x)) + #endif + + #define ST(off) PL_stack_base[ax + (off)] +-- +2.26.2 + diff --git a/SOURCES/perl-5.33.5-op.c-croak-on-my-_-when-use-utf8-is-in-effect.patch b/SOURCES/perl-5.33.5-op.c-croak-on-my-_-when-use-utf8-is-in-effect.patch new file mode 100644 index 0000000..018dc6a --- /dev/null +++ b/SOURCES/perl-5.33.5-op.c-croak-on-my-_-when-use-utf8-is-in-effect.patch @@ -0,0 +1,78 @@ +From 07319fdbb283f93cb655c3106b5237cbc7272038 Mon Sep 17 00:00:00 2001 +From: Tomasz Konojacki +Date: Wed, 30 Dec 2020 14:03:02 +0100 +Subject: [PATCH] op.c: croak on "my $_" when "use utf8" is in effect +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Fixes #18449 + +Signed-off-by: Petr Písař +--- + op.c | 16 +++++++++------- + t/op/mydef.t | 11 +++++++++-- + 2 files changed, 18 insertions(+), 9 deletions(-) + +diff --git a/op.c b/op.c +index b2e12dd0c0..dce844d297 100644 +--- a/op.c ++++ b/op.c +@@ -730,6 +730,7 @@ PADOFFSET + Perl_allocmy(pTHX_ const char *const name, const STRLEN len, const U32 flags) + { + PADOFFSET off; ++ bool is_idfirst, is_default; + const bool is_our = (PL_parser->in_my == KEY_our); + + PERL_ARGS_ASSERT_ALLOCMY; +@@ -738,14 +739,15 @@ Perl_allocmy(pTHX_ const char *const name, const STRLEN len, const U32 flags) + Perl_croak(aTHX_ "panic: allocmy illegal flag bits 0x%" UVxf, + (UV)flags); + ++ is_idfirst = flags & SVf_UTF8 ++ ? isIDFIRST_utf8_safe((U8*)name + 1, name + len) ++ : isIDFIRST_A(name[1]); ++ ++ /* $_, @_, etc. */ ++ is_default = len == 2 && name[1] == '_'; ++ + /* complain about "my $" etc etc */ +- if ( len +- && !( is_our +- || isALPHA(name[1]) +- || ( (flags & SVf_UTF8) +- && isIDFIRST_utf8_safe((U8 *)name+1, name + len)) +- || (name[1] == '_' && len > 2))) +- { ++ if (!is_our && (!is_idfirst || is_default)) { + const char * const type = + PL_parser->in_my == KEY_sigvar ? "subroutine signature" : + PL_parser->in_my == KEY_state ? "\"state\"" : "\"my\""; +diff --git a/t/op/mydef.t b/t/op/mydef.t +index 42a81d9ab0..225ce98e51 100644 +--- a/t/op/mydef.t ++++ b/t/op/mydef.t +@@ -6,10 +6,17 @@ BEGIN { + set_up_inc('../lib'); + } + +-plan tests => 1; +- + use strict; + + eval 'my $_'; + like $@, qr/^Can't use global \$_ in "my" at /; + ++{ ++ # using utf8 allows $_ to be declared with 'my' ++ # GH #18449 ++ use utf8; ++ eval 'my $_;'; ++ like $@, qr/^Can't use global \$_ in "my" at /; ++} ++ ++done_testing; +-- +2.26.2 + diff --git a/SOURCES/perl-5.33.6-Add-missing-entries-to-perldiag-GH-18276.patch b/SOURCES/perl-5.33.6-Add-missing-entries-to-perldiag-GH-18276.patch new file mode 100644 index 0000000..f8e0e97 --- /dev/null +++ b/SOURCES/perl-5.33.6-Add-missing-entries-to-perldiag-GH-18276.patch @@ -0,0 +1,100 @@ +From cac138107138a9814b32c4de74426225628f1646 Mon Sep 17 00:00:00 2001 +From: Karl Williamson +Date: Sun, 17 Jan 2021 21:45:20 -0700 +Subject: [PATCH] Add missing entries to perldiag; GH #18276 +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +The ticket mentions yet another message, not addressed in this +commit, "Insecure private-use override". That message is part of a +hook for a so-far unimplemented module, so it actually doesn't ever get +raised. + +Committer: One correction per Grinnz comment in +https://github.com/Perl/perl5/pull/18491 +Signed-off-by: Petr Písař +--- + pod/perldiag.pod | 45 +++++++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 45 insertions(+) + +diff --git a/pod/perldiag.pod b/pod/perldiag.pod +index 9c91630d39..63f57f220e 100644 +--- a/pod/perldiag.pod ++++ b/pod/perldiag.pod +@@ -2195,6 +2195,20 @@ single form when it must operate on them directly. Either you've passed + an invalid file specification to Perl, or you've found a case the + conversion routines don't handle. Drat. + ++=item Error %s in expansion of %s ++ ++(F) An error was encountered in handling a user-defined property ++(L). These are ++programmer written subroutines, hence subject to errors that may ++prevent them from compiling or running. The calls to these subs are ++C'd, and if there is a failure, this message is raised, using the ++contents of C<$@> from the failed C. ++ ++Another possibility is that tainted data was encountered somewhere in ++the chain of expanding the property. If so, the message wording will ++indicate that this is the problem. See L. ++ + =item Eval-group in insecure regular expression + + (F) Perl detected tainted data when trying to compile a regular +@@ -2836,6 +2850,16 @@ not match 8 spaces. + text. You should check the pattern to ensure that recursive patterns + either consume text or fail. + ++=item Infinite recursion in user-defined property ++ ++(F) A user-defined property (L) can depend on the definitions of other user-defined ++properties. If the chain of dependencies leads back to this property, ++infinite recursion would occur, were it not for the check that raised ++this error. ++ ++Restructure your property definitions to avoid this. ++ + =item Infinite recursion via empty pattern + + (F) You tried to use the empty pattern inside of a regex code block, +@@ -6273,6 +6297,20 @@ lexicals that are initialized only once (see L): + This use of C in a false conditional was deprecated beginning in + Perl 5.10 and became a fatal error in Perl 5.30. + ++=item Timeout waiting for another thread to define \p{%s} ++ ++(F) The first time a user-defined property ++(L) is used, its ++definition is looked up and converted into an internal form for more ++efficient handling in subsequent uses. There could be a race if two or ++more threads tried to do this processing nearly simultaneously. ++Instead, a critical section is created around this task, locking out all ++but one thread from doing it. This message indicates that the thread ++that is doing the conversion is taking an unexpectedly long time. The ++timeout exists solely to prevent deadlock; it's long enough that the ++system was likely thrashing and about to crash. There is no real remedy but ++rebooting. ++ + =item times not implemented + + (F) Your version of the C library apparently doesn't do times(). I +@@ -6846,6 +6884,13 @@ for the list of known options. + Llist]> documentation of the C<-C> switch + for the list of known options. + ++=item Unknown user-defined property name \p{%s} ++ ++(F) You specified to use a property within the C<\p{...}> which was a ++syntactically valid user-defined property, but no definition was found ++for it by the time one was required to proceed. Check your spelling. ++See L. ++ + =item Unknown verb pattern '%s' in regex; marked by S<<-- HERE> in m/%s/ + + (F) You either made a typo or have incorrectly put a C<*> quantifier +-- +2.26.2 + diff --git a/SOURCES/perl-5.33.6-t-run-locale.t-Rmv-LANGUAGE-from-environment.patch b/SOURCES/perl-5.33.6-t-run-locale.t-Rmv-LANGUAGE-from-environment.patch new file mode 100644 index 0000000..bdc0c35 --- /dev/null +++ b/SOURCES/perl-5.33.6-t-run-locale.t-Rmv-LANGUAGE-from-environment.patch @@ -0,0 +1,32 @@ +From a2f57b06b018b254bee93e1a1265cfc09833366f Mon Sep 17 00:00:00 2001 +From: Karl Williamson +Date: Tue, 9 Feb 2021 11:32:15 -0700 +Subject: [PATCH] t/run/locale.t: Rmv LANGUAGE from environment +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +This could cause interference with our tests on some platforms that have +this environment variable. + +Signed-off-by: Petr Písař +--- + t/run/locale.t | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/t/run/locale.t b/t/run/locale.t +index 8a04d1aea6..0f2a2ba457 100644 +--- a/t/run/locale.t ++++ b/t/run/locale.t +@@ -38,7 +38,7 @@ if (defined $ARGV[0] && $ARGV[0] ne "") { + } + + # reset the locale environment +-delete local @ENV{'LANG', (grep /^LC_[A-Z]+$/, keys %ENV)}; ++delete local @ENV{'LANGUAGE', 'LANG', (grep /^LC_[A-Z]+$/, keys %ENV)}; + + # If user wants this to happen, they set the environment variable AND use + # 'debug' +-- +2.26.2 + diff --git a/SOURCES/perl-5.33.7-regcomp.c-Remove-memory-leak.patch b/SOURCES/perl-5.33.7-regcomp.c-Remove-memory-leak.patch new file mode 100644 index 0000000..44dc94e --- /dev/null +++ b/SOURCES/perl-5.33.7-regcomp.c-Remove-memory-leak.patch @@ -0,0 +1,74 @@ +From 5f41fa466a67b5535aa8bcf4b814f242545ac7bd Mon Sep 17 00:00:00 2001 +From: Karl Williamson +Date: Sat, 27 Feb 2021 11:43:41 -0700 +Subject: [PATCH] regcomp.c: Remove memory leak +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +This fixes GH #18604. There was a path through the code where a +particular SV did not get its reference count decremented. + +I did an audit of the function and came up with several other +possiblities that are included in this commit. + +Further, there would be leaks for some instances of finding syntax +errors in the input pattern, or when warnings are fatalized. Those +would require mortalizing some SVs, but that is beyond the scope of this +commit. + +Signed-off-by: Petr Písař +--- + regcomp.c | 7 +++++++ + t/op/svleak.t | 3 ++- + 2 files changed, 9 insertions(+), 1 deletion(-) + +diff --git a/regcomp.c b/regcomp.c +index e44c7a37e5..f5e5f581dc 100644 +--- a/regcomp.c ++++ b/regcomp.c +@@ -18765,6 +18765,12 @@ S_regclass(pTHX_ RExC_state_t *pRExC_state, I32 *flagp, U32 depth, + RExC_end = save_end; + RExC_in_multi_char_class = 0; + SvREFCNT_dec_NN(multi_char_matches); ++ SvREFCNT_dec(properties); ++ SvREFCNT_dec(cp_list); ++ SvREFCNT_dec(simple_posixes); ++ SvREFCNT_dec(posixes); ++ SvREFCNT_dec(nposixes); ++ SvREFCNT_dec(cp_foldable_list); + return ret; + } + +@@ -20122,6 +20128,7 @@ S_regclass(pTHX_ RExC_state_t *pRExC_state, I32 *flagp, U32 depth, + RExC_parse - orig_parse);; + SvREFCNT_dec(cp_list);; + SvREFCNT_dec(only_utf8_locale_list); ++ SvREFCNT_dec(upper_latin1_only_utf8_matches); + return ret; + } + +diff --git a/t/op/svleak.t b/t/op/svleak.t +index 6acc298c3d..3df4838be8 100644 +--- a/t/op/svleak.t ++++ b/t/op/svleak.t +@@ -15,7 +15,7 @@ BEGIN { + + use Config; + +-plan tests => 150; ++plan tests => 151; + + # run some code N times. If the number of SVs at the end of loop N is + # greater than (N-1)*delta at the end of loop 1, we've got a leak +@@ -278,6 +278,7 @@ eleak(2,0,'/[[:ascii:]]/'); + eleak(2,0,'/[[.zog.]]/'); + eleak(2,0,'/[.zog.]/'); + eleak(2,0,'/|\W/', '/|\W/ [perl #123198]'); ++eleak(2,0,'/a\sb/', '/a\sb/ [GH #18604]'); + eleak(2,0,'no warnings; /(?[])/'); + eleak(2,0,'no warnings; /(?[[a]+[b]])/'); + eleak(2,0,'no warnings; /(?[[a]-[b]])/'); +-- +2.26.2 + diff --git a/SOURCES/perl-5.33.8-Fix-broken-left-shift-of-IV_MIN-under-use-integer.patch b/SOURCES/perl-5.33.8-Fix-broken-left-shift-of-IV_MIN-under-use-integer.patch new file mode 100644 index 0000000..5ce6046 --- /dev/null +++ b/SOURCES/perl-5.33.8-Fix-broken-left-shift-of-IV_MIN-under-use-integer.patch @@ -0,0 +1,62 @@ +From 4e82c85b1c9c9b30253b8624470da6f20a6c0604 Mon Sep 17 00:00:00 2001 +From: Karl Williamson +Date: Mon, 15 Mar 2021 21:01:47 -0600 +Subject: [PATCH] Fix broken left shift of IV_MIN under 'use integer' +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +This fixes GH 18639 + +When I wrote this code, I conflated casting and complementing. + +Signed-off-by: Petr Písař +--- + pp.c | 3 --- + t/op/bop.t | 9 ++++++++- + 2 files changed, 8 insertions(+), 4 deletions(-) + +diff --git a/pp.c b/pp.c +index d365afea4c..baf0777a47 100644 +--- a/pp.c ++++ b/pp.c +@@ -2007,9 +2007,6 @@ static IV S_iv_shift(IV iv, int shift, bool left) + * 18446744073709551552 + * */ + if (left) { +- if (iv == IV_MIN) { /* Casting this to a UV is undefined behavior */ +- return 0; +- } + return (IV) (((UV) iv) << shift); + } + +diff --git a/t/op/bop.t b/t/op/bop.t +index 07f057d0a9..31b6531a03 100644 +--- a/t/op/bop.t ++++ b/t/op/bop.t +@@ -18,7 +18,7 @@ BEGIN { + # If you find tests are failing, please try adding names to tests to track + # down where the failure is, and supply your new names as a patch. + # (Just-in-time test naming) +-plan tests => 502; ++plan tests => 503; + + # numerics + ok ((0xdead & 0xbeef) == 0x9ead); +@@ -33,6 +33,13 @@ ok ((33023 >> 7) == 257); + # signed vs. unsigned + ok ((~0 > 0 && do { use integer; ~0 } == -1)); + ++{ # GH #18639 ++ my $iv_min = -(~0 >> 1) - 1; ++ my $shifted; ++ { use integer; $shifted = $iv_min << 0 }; ++ is($shifted, $iv_min, "IV_MIN << 0 yields IV_MIN under 'use integer'"); ++} ++ + my $bits = 0; + for (my $i = ~0; $i; $i >>= 1) { ++$bits; } + my $cusp = 1 << ($bits - 1); +-- +2.26.3 + 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 <_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..1847b5c --- /dev/null +++ b/SPECS/perl.spec @@ -0,0 +1,9208 @@ +%global perl_version 5.32.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 +# inline.h: MIT +# 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 +# perly.h: GPLv3+ with Bison exception +# 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 in a binary package +# ebcdic_tables.h: MIT +# cpan/podlators/t/docs/pod.t: MIT +# cpan/podlators/t/docs/pod-spelling.t: MIT +# cpan/podlators/t/docs/spdx-license.t: MIT +# cpan/podlators/t/docs/synopsis.t: MIT +# cpan/podlators/t/docs/urls.t : MIT +# cpan/podlators/t/lib/Test/RRA.pm: MIT +# cpan/podlators/t/lib/Test/RRA/Config.pm: MIT +# cpan/podlators/t/lib/Test/RRA/ModuleVersion.pm: MIT +# cpan/podlators/t/style/minimum-version.t: MIT +# cpan/podlators/t/style/module-version.t: MIT +# cpan/podlators/t/style/strict.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.h (EBDIC parts) MIT +## perl sub-package notice +# perluniprops.pod is generated from lib/unicore sources: UCD +# uni_keywords.h 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: 479%{?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, +# +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 use C compiler reserved identifiers, in upstream after 5.33.0 +Patch14: perl-5.33.0-MUTABLE_PTR-Rmv-non-standard-syntax.patch + +# Fix SvUV_nomg() macro definition, in upstream after 5.33.0 +Patch15: perl-5.33.0-sv.h-Wanted-UOK-but-said-IOK.patch + +# Fix SvTRUE() documentation, in upstream after 5.33.0 +Patch16: perl-5.33.0-Update-pod-for-SvTRUE-to-indicate-single-param-evalu.patch + +# Fix ext/XS-APItest/t/utf8_warn_base.pl tests, in upstream after 5.33.0 +Patch17: perl-5.33.0-ext-XS-APItest-t-utf8_warn_base.pl-Fix-a-couple-test.patch + +# Fix IO::Handle::error() to report write errors, GH#6799, in upstream after 5.33.0 +Patch18: perl-5.33.0-make-fh-error-report-errors-from-both-input-and-outp.patch +Patch19: perl-5.33.0-IO-Handle-clear-the-error-on-both-input-and-output-s.patch + +# Fix setting a non-blocking mode in IO::Socket::UNIX, GH#17787, +# in upstream after 5.33.0 +Patch21: perl-5.33.0-IO-Socket-UNIX-synchronize-behavior-with-module-docu.patch + +# Fix running actions after stepping in a debugger, GH#17901, +# in upstream after 5.33.0 +Patch22: perl-5.33.0-After-running-an-action-in-the-debugger-turn-it-off.patch +Patch23: perl-5.33.0-Clearing-DB-action-at-the-end-is-no-longer-needed.patch +Patch24: perl-5.33.0-Add-missing-MANIFEST-entry-from-fix-for-debugger.patch + +# Fix a buffer size for asctime_r() and ctime_r() functions, +# in upstream after 5.33.0 +Patch25: perl-5.33.0-reentr.c-Buffer-sizes-for-asctime_r-ctime_r-are-smal.patch + +# Prevent from an integer overflow in RenewDouble() macro, +# in upstream after 5.33.0 +Patch26: perl-5.33.0-reentr.c-Prevent-infinite-looping.patch + +# Fix a number of arguments passed to a BOOT XS subroutine, GH#17755, +# in upstream after 5.33.0 +Patch28: perl-5.33.0-XSUB.h-fix-MARK-and-items-variables-inside-BOOT-XSUB.patch + +# Fix an IO::Handle spurious error reported for regular file handles, +# GH#18019, in upstream after 5.33.0 +Patch29: perl-5.33.0-IO-Handle-Fix-a-spurious-error-reported-for-regular-.patch + +# Fix inheritance resolution of lexial objects in a debugger, GH#17661, +# in upstream after 5.33.0 +Patch30: perl-5.33.0-fix-C-i-obj-where-obj-is-a-lexical.patch + +# Fix sorting with a block that calls return, GH#18081, +# in upstream after 5.33.1 +Patch35: perl-5.33.1-sort-return-foo.patch + +# Fix sv_collxfrm macro to respect locale, in upstream after 5.33.2 +Patch38: perl-5.33.2-sv.h-sv_collxfrm-didn-t-work-properly.patch + +# Fix an iterator signedness in handling an mro exception, GH#18155, +# in upstream after 5.33.2 +Patch39: perl-5.33.2-mro.xs-Fix-compiler-warning.patch + +# Fix a code flow in Perl_sv_inc_nomg(), in upstream after 5.33.2 +Patch40: perl-5.33.2-sv.c-Added-missing-braces-in-Perl_sv_inc_nomg.patch + +# Fix an undefined behavior in Perl_custom_op_get_field(), +# in upstream after 5.33.3 +Patch41: perl-5.33.3-Perl_custom_op_get_field-remove-undef-behaviour.patch + +# Fix Config variable names in in t/op tests, in upstream after 5.33.3 +Patch42: perl-5.33.3-t-op-inc.t-t-op-hexfp.t-t-op-sprintf2.t-Add-missing-.patch + +# Fix fetching a magic on the stacked file test operators, +# in upstream after 5.33.3 +Patch43: perl-5.33.3-fetch-magic-on-the-first-stacked-filetest-not-the-la.patch + +# Fix a crash in optimizing split(), GH#18232, in upstream after 5.33.3 +Patch44: perl-5.32.0-Add-av_count.patch +Patch45: perl-5.33.2-Remove-Perl_av_top_index.patch +Patch46: perl-5.32.0-pp_split-no-SWITCHSTACK-in-ary-split-.-optimisation.patch +Patch47: perl-5.33.3-pp_split-add-TonyC-s-stack-not-refcounted-suggestion.patch + +# Make accessing environment by DynaLoader thread-safe, +# in upstream after 5.33.4 +Patch48: perl-5.32.1-DynaLoader-use-PerlEnv_getenv.patch + +# Use duplocale() if available, in upstream after 5.33.4 +Patch49: perl-5.33.4-locale.c-Fix-typo-in-ifdef.patch + +# Fix fc() in Turkish locale, in upstream after 5.33.5 +Patch50: perl-5.33.5-Fix-buggy-fc-in-Turkish-locale.patch + +# Fix croaking on "my $_" when "use utf8" is in effect, GH#18449, +# in upstream after 5.33.5 +Patch51: perl-5.33.5-op.c-croak-on-my-_-when-use-utf8-is-in-effect.patch + +# Fix PERL_UNUSED_ARG() definition in XSUB.h, in upstream after 5.33.5 +Patch52: perl-5.33.5-Use-perl.h-versions-of-PERL_UNUSED_foo-in-XSUB.h.patch + +# Add missing entries to perldiag, GH#18276, in upstream after 5.33.6 +Patch53: perl-5.33.6-Add-missing-entries-to-perldiag-GH-18276.patch + +# Protect locale tests from LANGUAGE environment variable, +# in upstream after 5.33.6 +Patch54: perl-5.33.6-t-run-locale.t-Rmv-LANGUAGE-from-environment.patch + +# Prevent the number of buckets in a hash from getting too large, +# in upstream after 5.33.6 +Patch55: perl-5.32.1-hv.c-add-a-guard-clause-to-prevent-the-number-of-buc.patch + +# Fix a memory leak when compiling a regular expression, GH#18604, +# in upstream after 5.33.7 +Patch56: perl-5.33.7-regcomp.c-Remove-memory-leak.patch + +# Fix dumping a hash entry of PL_strtab type, in upstream after 5.33.7 +Patch57: perl-5.32.1-Perl_do_sv_dump-handle-PL_strtab.patch + +# Fix an arithmetic left shift of a minimal integer value, GH#18639, +# in upstream after 5.33.8 +Patch58: perl-5.33.8-Fix-broken-left-shift-of-IV_MIN-under-use-integer.patch + +# Link XS modules to libperl.so with EU::CBuilder on Linux, bug #960048 +Patch200: perl-5.16.3-Link-XS-modules-to-libperl.so-with-EU-CBuilder-on-Li.patch + +# Link XS modules to libperl.so with EU::MM on Linux, bug #960048 +Patch201: perl-5.16.3-Link-XS-modules-to-libperl.so-with-EU-MM-on-Linux.patch + +# Update some of the bundled modules +# see http://fedoraproject.org/wiki/Perl/perl.spec for instructions + +BuildRequires: bash +BuildRequires: bzip2-devel +BuildRequires: coreutils +BuildRequires: findutils +BuildRequires: gcc +%if %{with gdbm} +BuildRequires: gdbm-devel +%endif +# glibc-common for iconv +BuildRequires: glibc-common +%if %{with perl_enables_groff} +# Build-require groff tools for populating %%Config correctly, bug #135101 +BuildRequires: groff-base +%endif +BuildRequires: libdb-devel +BuildRequires: make +%if !%{defined perl_bootstrap} +BuildRequires: perl-interpreter +BuildRequires: perl-generators +%endif +BuildRequires: sed +%if %{with perl_enables_systemtap} +BuildRequires: systemtap-sdt-devel +%endif +BuildRequires: tar +%if %{with perl_enables_tcsh} +BuildRequires: tcsh +%endif +BuildRequires: zlib-devel + +# For tests +%if %{with test} +%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.32.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-AutoLoader, perl-AutoSplit, perl-autouse, +Requires: perl-B, perl-base, perl-Benchmark, perl-bignum, perl-blib, +Requires: perl-Carp, perl-Class-Struct, +Requires: perl-Compress-Raw-Bzip2, perl-Compress-Raw-Zlib, +Requires: perl-Config-Extensions, perl-Config-Perl-V, perl-constant, +Requires: perl-CPAN, perl-CPAN-Meta, perl-CPAN-Meta-Requirements, +Requires: perl-CPAN-Meta-YAML, +Requires: perl-Data-Dumper, perl-DB_File, perl-DBM_Filter, +Requires: perl-debugger, perl-deprecate, +Requires: perl-Devel-Peek, perl-Devel-PPPort, perl-Devel-SelfStubber, +Requires: perl-diagnostics, perl-Digest, perl-Digest-MD5, perl-Digest-SHA, +Requires: perl-DirHandle, +Requires: perl-doc, +Requires: perl-Dumpvalue, +Requires: perl-DynaLoader, +Requires: perl-Encode, perl-Encode-devel, perl-encoding, +Requires: perl-encoding-warnings, perl-English, +Requires: perl-Env, perl-Errno, perl-experimental, perl-Exporter, +Requires: perl-ExtUtils-CBuilder, perl-ExtUtils-Constant, +Requires: perl-ExtUtils-Command, +Requires: perl-ExtUtils-Embed, perl-ExtUtils-Install, +Requires: perl-ExtUtils-MakeMaker, perl-ExtUtils-Manifest, +Requires: perl-ExtUtils-Miniperl, perl-ExtUtils-MM-Utils, +Requires: perl-ExtUtils-ParseXS, +Requires: perl-Fcntl, perl-fields, +Requires: perl-File-Basename, perl-File-Compare, perl-File-Copy, +Requires: perl-File-DosGlob, perl-File-Fetch, +Requires: perl-File-Find, perl-File-Path, perl-File-stat, perl-File-Temp, +Requires: perl-FileCache, perl-FileHandle, perl-filetest, +Requires: perl-Filter, perl-Filter-Simple, +Requires: perl-FindBin, +%if %{with gdbm} +Requires: perl-GDBM_File, +%endif +Requires: perl-Getopt-Long, perl-Getopt-Std, +Requires: perl-Hash-Util, perl-Hash-Util-FieldHash, perl-HTTP-Tiny, +Requires: perl-if, perl-IO, perl-IO-Compress, perl-IO-Socket-IP, +Requires: perl-IO-Zlib, perl-IPC-Cmd, perl-IPC-Open3, perl-IPC-SysV, +Requires: perl-I18N-Collate, perl-I18N-Langinfo, perl-I18N-LangTags, +Requires: perl-JSON-PP, +Requires: perl-less, +Requires: perl-lib, perl-libnet, perl-libnetcfg, +Requires: perl-locale, perl-Locale-Maketext, perl-Locale-Maketext-Simple, +Requires: perl-Math-BigInt, perl-Math-BigInt-FastCalc, perl-Math-BigRat, +Requires: perl-Math-Complex, perl-Memoize, perl-meta-notation, +Requires: perl-MIME-Base64, +Requires: perl-Module-CoreList, perl-Module-CoreList-tools, +Requires: perl-Module-Load, perl-Module-Load-Conditional, +Requires: perl-Module-Loaded, perl-Module-Metadata, +Requires: perl-mro, +%if %{with gdbm} +Requires: perl-NDBM_File, +%endif +Requires: perl-Net, perl-Net-Ping, perl-NEXT, +%if %{with gdbm} +Requires: perl-ODBM_File, +%endif +Requires: perl-Opcode, perl-open, perl-overload, perl-overloading, +Requires: perl-parent, perl-PathTools, perl-Params-Check, perl-perlfaq, +Requires: perl-PerlIO-via-QuotedPrint, perl-Perl-OSType, +Requires: perl-ph, +Requires: perl-Pod-Checker, perl-Pod-Escapes, perl-Pod-Functions, +Requires: perl-Pod-Html, perl-Pod-Perldoc, +Requires: perl-Pod-Simple, perl-Pod-Usage, perl-podlators, perl-POSIX, +Requires: perl-Safe, perl-Scalar-List-Utils, +Requires: perl-Search-Dict, perl-SelectSaver, +Requires: perl-SelfLoader, perl-sigtrap, perl-Socket, perl-sort, +Requires: perl-Storable, +Requires: perl-subs, +Requires: perl-Symbol, perl-Sys-Hostname, perl-Sys-Syslog, +Requires: perl-Term-ANSIColor, perl-Term-Cap, perl-Term-Complete, +Requires: perl-Term-ReadLine, +Requires: perl-Test, perl-Test-Harness, perl-Test-Simple, +Requires: perl-Text-Abbrev, perl-Text-Balanced, perl-Text-ParseWords, +Requires: perl-Text-Tabs+Wrap, +Requires: perl-Thread, perl-Thread-Queue, perl-Thread-Semaphore, +Requires: perl-threads, perl-threads-shared, +Requires: perl-Tie, perl-Tie-File, perl-Tie-Memoize, perl-Tie-RefHash, +Requires: perl-Time, perl-Time-HiRes, perl-Time-Local, perl-Time-Piece, +Requires: perl-Unicode-Collate, perl-Unicode-Normalize, perl-Unicode-UCD, +Requires: perl-User-pwent, +Requires: perl-vars, perl-version, perl-vmsish, + +# Full EVR is for compatibility with systems that swapped perl and perl-core +# , +# 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 +# perl-interpreter denotes a package with the perl executable. +# Full EVR is for compatibility with systems that swapped perl and perl-core +# , +# 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 +Suggests: perl-doc = %{perl_version}-%{release} +%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 + +# 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 +# , +# 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 "h2ph" or "perlbug" can be found in perl-utils package. + +Perl debugger, usually invoked with "perl -d", is available in perl-debugger +package. + + +%package libs +Summary: The libraries for the perl run-time +License: (GPL+ or Artistic) and BSD and HSRL and MIT and UCD and Public domain +# Compat provides +Provides: %perl_compat +Provides: perl(:MODULE_COMPAT_5.32.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) +# A file provide for bytes module +Provides: perl(bytes_heavy.pl) +# 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 +# For AnyDBM_File +Suggests: perl(DB_File) +# Encode is loaded in BOOT section of PerlIO::encoding +Requires: perl(Encode) +# File::Spec loaded by _charnames.pm that is loaded by \N{} +Requires: perl(File::Spec) +%if %{with gdbm} +# For AnyDBM_File +Suggests: perl(GDBM_File) +Recommends: perl(NDBM_File) +Suggests: perl(ODBM_File) +%endif +# Term::Cap is optional +%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} +Recommends: perl-doc = %{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 +BuildArch: noarch +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 perlbug version string +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, and pl2pm. Some utilities are provided by more specific +packages like perldoc by perl-Pod-Perldoc and splain by perl-diagnostics. + +%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.36 +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.32 +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 + +%package AutoLoader +Summary: Load subroutines only on demand +License: GPL+ or Artistic +Epoch: 0 +Version: 5.74 +BuildArch: noarch +Requires: %perl_compat +Requires: perl(Carp) +%if %{defined perl_bootstrap} +%gendep_perl_AutoLoader +%endif +Conflicts: perl < 4:5.30.1-451 + +%description AutoLoader +The AutoLoader module works with the AutoSplit module and the "__END__" token +to defer the loading of some subroutines until they are used rather than +loading them all at once. + +%package AutoSplit +Summary: Split a package for automatic loading +License: GPL+ or Artistic +Epoch: 0 +# Real version 1.06 +Version: 5.74 +BuildArch: noarch +Requires: %perl_compat +Requires: perl(Carp) +%if %{defined perl_bootstrap} +%gendep_perl_AutoSplit +%endif +Conflicts: perl < 4:5.30.1-451 + +%description AutoSplit +Split up your program into files that the AutoLoader module can handle. It is +used by both the standard Perl libraries and by the ExtUtils::MakeMaker +utility, to automatically configure libraries for automatic loading. + +%package autouse +Summary: Postpone load of modules until a function is used +License: GPL+ or Artistic +Epoch: 0 +Version: 1.11 +BuildArch: noarch +Requires: %perl_compat +Requires: perl(Carp) +Requires: perl(warnings) +%if %{defined perl_bootstrap} +%gendep_perl_autouse +%endif +Conflicts: perl < 4:5.30.1-451 + +%description autouse +If a module is not loaded yet, then the autouse declaration declares functions +in the current package. When these functions are called, they load the package +and substitute themselves with the correct definitions. + +%package B +Summary: Perl compiler backend +License: GPL+ or Artistic +Epoch: 0 +Version: 1.80 +Requires: %perl_compat +Requires: perl(Data::Dumper) +Requires: perl(overloading) +Requires: perl(XSLoader) +%if %{defined perl_bootstrap} +%gendep_perl_B +%endif +Conflicts: perl-interpreter < 4:5.30.1-451 + +%description B +The "B" module supplies classes which allow a Perl program to delve into its +own innards. It is the module used to implement the backends of the Perl +compiler. + +%package base +Summary: Establish an ISA relationship with base classes at compile time +License: GPL+ or Artistic +Epoch: 0 +Version: 2.27 +BuildArch: noarch +Requires: %perl_compat +Requires: perl(Carp) +%if %{defined perl_bootstrap} +%gendep_perl_base +%endif +Conflicts: perl < 4:5.30.1-451 + +%description base +"base" module allows you to both load one or more modules, while setting up +inheritance from those modules at the same time. Unless you are using the +"fields" pragma, consider this module discouraged in favor of the +lighter-weight "parent". + +%package Benchmark +Summary: Benchmark running times of Perl code +License: GPL+ or Artistic +Epoch: 0 +Version: 1.23 +Requires: %perl_compat +%if %{defined perl_bootstrap} +%gendep_perl_Benchmark +%endif +BuildArch: noarch +Conflicts: perl-interpreter < 4:5.30.1-451 + +%description Benchmark +The Benchmark module encapsulates a number of routines to help you figure out +how long it takes to execute some code. + +%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. +%endif + +%package blib +Summary: Use uninstalled version of a package +License: GPL+ or Artistic +Epoch: 0 +Version: 1.07 +Requires: %perl_compat +%if %{defined perl_bootstrap} +%gendep_perl_blib +%endif +BuildArch: noarch +Conflicts: perl-interpreter < 4:5.30.1-451 + +%description blib +This module looks for MakeMaker-like "blib" directory structure starting in +given or current directory and working back up to five levels of directories. +It is intended for use on command line with -M option as a way of testing +arbitrary scripts against an uninstalled version of a package. + +%if %{dual_life} || %{rebuild_from_scratch} +%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 + +%package Class-Struct +Summary: Declare struct-like data types as Perl classes +License: GPL+ or Artistic +Epoch: 0 +Version: 0.66 +Requires: %perl_compat +%if %{defined perl_bootstrap} +%gendep_perl_Class_Struct +%endif +BuildArch: noarch +Conflicts: perl-interpreter < 4:5.30.1-451 + +%description Class-Struct +Class::Struct module exports a single function struct(). Given a list of +element names and types, and optionally a class name, struct() creates a +Perl 5 class that implements a struct-like data structure. + +%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.093 +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.093 +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 + +%package Config-Extensions +Summary: Hash lookup of which Perl core extensions were built +License: GPL+ or Artistic +Epoch: 0 +Version: 0.03 +Requires: %perl_compat +%if %{defined perl_bootstrap} +%gendep_perl_Config_Extensions +%endif +BuildArch: noarch +Conflicts: perl-interpreter < 4:5.30.1-451 + +%description Config-Extensions +The Config::Extensions module provides a hash %%Extensions containing all the +core extensions that were enabled for this perl. + +%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.27 +Requires: make +Requires: %perl_compat +# Some subpackaged modules are not dual-lived. E.g. "open". If a distribution +# on CPAN declares a dependency on such module, CPAN client will fail, +# because the only provider is a perl distribution. +# Another issue is with dual-lived modules whose distribution actually does +# not declare all needed core dependencies and the installation would also +# fail. +# As a result, any CPAN client must run-require the complete perl. +Requires: perl +# 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 +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(B::Deparse) +Requires: perl(bytes) +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.853 +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 DBM_Filter +Summary: Filter DBM keys and values +License: GPL+ or Artistic +Epoch: 0 +Version: 0.06 +Requires: %perl_compat +Requires: perl(Compress::Zlib) +Requires: perl(Encode) +%if %{defined perl_bootstrap} +%gendep_perl_DBM_Filter +%endif +BuildArch: noarch +Conflicts: perl-interpreter < 4:5.30.1-451 + +# Remove private redefinitions +# DBM_Filter redefines Tie::Hash, but does not load it. +%global __provides_exclude %{?__provides_exclude:%__provides_exclude|}^perl\\(Tie::Hash\\)$ + +%description DBM_Filter +This module provides an interface that allows filters to be applied to tied +hashes associated with DBM files. + +%package debugger +Summary: Perl debugger +License: GPL+ or Artistic +Epoch: 0 +Version: 1.56 +BuildArch: noarch +# File provides +Provides: perl(dumpvar.pl) = %{perl_version} +Provides: perl(perl5db.pl) = %{version} +Requires: %perl_compat +Recommends: perl(Carp) +Recommends: perl(Config) +Requires: perl(Cwd) +Recommends: perl(Devel::Peek) +Requires: perl(feature) +Recommends: perl(IO::Handle) +Recommends: perl(File::Basename) +Recommends: perl(File::Path) +Requires: perl(IO::Socket) +Requires: perl(meta_notation) = %{perl_version} +Requires: perl(mro) +%if !%{defined perl_bootstrap} +Suggests: perl(PadWalker) >= 0.08 +%endif +Recommends: perl(POSIX) +Requires: perl(Term::ReadLine) +# ??? Term::Rendezvous +Requires: perl(threads) +Requires: perl(threads::shared) +Requires: perl(vars) +Requires: perl(warnings) +%if %{defined perl_bootstrap} +%gendep_perl_debugger +%endif +Conflicts: perl < 4:5.30.1-451 + +%description debugger +This is the perl debugger. It is loaded automatically by Perl when you invoke +a script with "perl -d". There is also "DB" module contained for +a programmatic interface to the debugging API. + +%package deprecate +Summary: Perl pragma for deprecating the inclusion of a module in core +License: GPL+ or Artistic +Epoch: 0 +Version: 0.04 +Requires: %perl_compat +Requires: perl(Carp) +Requires: perl(Config) +%if %{defined perl_bootstrap} +%gendep_perl_deprecate +%endif +BuildArch: noarch +Conflicts: perl-interpreter < 4:5.30.1-451 + +%description deprecate +"deprecate" pragma simplifies the maintenance of dual-life modules that will no +longer be included in the Perl core in a future Perl release, but are +still included currently. The purpose of the pragma is to alert users to the +status of such a module by issuing a warning that encourages them to install +the module from CPAN, so that a future upgrade to a perl which omits the +module will not break their code. + +%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.57 +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. + +%package diagnostics +Summary: Produce verbose warning diagnostics +License: GPL+ or Artistic +Epoch: 0 +Version: 1.37 +BuildArch: noarch +Requires: %perl_compat +# Match library exactly for diagnostics messages +Requires: perl-libs = %{perl_epoch}:%{perl_version}-%{release} +Requires: perl(Getopt::Std) +%if %{defined perl_bootstrap} +%gendep_perl_diagnostics +%endif +Conflicts: perl-utils < 5.30.1-451 +Conflicts: perl-interpreter < 4:5.30.1-451 + +%description diagnostics +The diagnostics module extends the terse diagnostics normally emitted by both +the perl compiler and the perl interpreter (from running perl with a -w switch +or "use warnings"), augmenting them with the more explicative and endearing +descriptions found in perldiag. splain tool explains perl messages found on +standard input. + +%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 +# Real version 2.55_01 +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 + +%package DirHandle +Summary: Supply object methods for directory handles +License: GPL+ or Artistic +Epoch: 0 +Version: 1.05 +BuildArch: noarch +Requires: %perl_compat +Requires: perl(warnings) +%if %{defined perl_bootstrap} +%gendep_perl_DirHandle +%endif +Conflicts: perl < 4:5.30.1-451 + +%description DirHandle +There is no reason to use this module nowadays. The DirHandle module provides +an alternative interface to the opendir(), closedir(), readdir(), and +rewinddir() functions. Since Perl 5.6, opendir() alone has been all you need +for lexical handles. + +%package doc +Summary: Perl language documentation +License: (GPL+ or Artistic) and UCD and Public Domain +Epoch: 0 +Version: %{perl_version} +BuildArch: noarch +Requires: %perl_compat +# For perldoc tool +Recommends: perl-Pod-Perldoc +Conflicts: perl < 4:5.30.1-451 + +%description doc +This is a documentation for Perl language. It's provided in POD and manual +page format. + +%package Dumpvalue +Summary: Screen dump of Perl data +License: GPL+ or Artistic +Epoch: 0 +# Real version 1.21 +Version: 2.27 +BuildArch: noarch +Requires: %perl_compat +Recommends: perl(Devel::Peek) +%if %{defined perl_bootstrap} +%gendep_perl_Dumpvalue +%endif +Conflicts: perl < 4:5.30.1-451 + +%description Dumpvalue +Dumpvalue module enables you to print a content of variables and other Perl +data structures. + +%package DynaLoader +Summary: Dynamically load C libraries into Perl code +License: GPL+ or Artistic +Epoch: 0 +Version: 1.47 +Requires: %perl_compat +Requires: perl(Carp) +%if %{defined perl_bootstrap} +%gendep_perl_DynaLoader +%endif +Conflicts: perl < 4:5.30.1-451 + +%description DynaLoader +The DynaLoader module defines a standard generic interface to the dynamic +linking mechanisms available on many platforms. Its primary purpose is to +implement automatic dynamic loading of Perl modules. For a simpler interface, +see XSLoader module. + +%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.06 +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: 3.00 +# 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.06 +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 + +%package encoding-warnings +Summary: Warn on implicit encoding conversions +License: GPL+ or Artistic +Epoch: 0 +Version: 0.13 +BuildArch: noarch +Requires: %perl_compat +Requires: perl(Carp) +%if %{defined perl_bootstrap} +%gendep_perl_encoding_warnings +%endif +Conflicts: perl < 4:5.30.1-451 + +%description encoding-warnings +As of Perl 5.26.0, this module has no effect. The internal Perl feature that +was used to implement this module has been removed. Hence, if you load this +module on Perl 5.26.0, you will get one warning that the module is no longer +supported; and the module will do nothing thereafter. + +%package English +Summary: Nice English or awk names for ugly punctuation variables +License: GPL+ or Artistic +Epoch: 0 +Version: 1.11 +Requires: %perl_compat +Requires: perl(Carp) +Requires: perl(warnings) +%if %{defined perl_bootstrap} +%gendep_perl_English +%endif +BuildArch: noarch +Conflicts: perl-interpreter < 4:5.30.1-451 + +%description English +This module provides aliases for the built-in variables whose names no one +seems to like to read. + +%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.74 +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.280234 +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 + +%package ExtUtils-Constant +Summary: Generate XS code to import C header constants +License: GPL+ or Artistic +Epoch: 0 +Version: 0.25 +BuildArch: noarch +Requires: %perl_compat +Requires: perl(Data::Dumper) +# ExtUtils::Constant::Aaargh56Hash not used on recent Perls +# FileHandle not used on recent Perls +# POSIX not used on recent Perls +Conflicts: perl-interpreter < 4:5.30.1-451 +%if %{defined perl_bootstrap} +%gendep_perl_ExtUtils_Constant +%endif + +%description ExtUtils-Constant +ExtUtils::Constant facilitates generating C and XS wrapper code to allow +Perl modules to AUTOLOAD constants defined in C library header files. + +%if %{dual_life} || %{rebuild_from_scratch} +%package ExtUtils-Command +Summary: Perl routines to replace common UNIX commands in Makefiles +License: GPL+ or Artistic +Epoch: 2 +Version: 7.44 +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(AutoSplit) +Requires: perl(File::Compare) +Requires: perl(Data::Dumper) +Recommends: perl(POSIX) +%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.44 +# 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.44 +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 +Conflicts: perl-interpreter < 4:5.30.1-451 +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 + +%package Fcntl +Summary: File operation options +License: GPL+ or Artistic +Epoch: 0 +Version: 1.13 +Requires: %perl_compat +%if %{defined perl_bootstrap} +%gendep_perl_Fcntl +%endif +Conflicts: perl-interpreter < 4:5.30.1-451 + +%description Fcntl +Fcntl module provides file operation related options. + +%package fields +Summary: Compile-time class fields +License: GPL+ or Artistic +Epoch: 0 +# Real version 2.24 +Version: 2.27 +BuildArch: noarch +Requires: %perl_compat +Requires: perl(base) +Requires: perl(Carp) +Requires: perl(Hash::Util) +%if %{defined perl_bootstrap} +%gendep_perl_fields +%endif +Conflicts: perl < 4:5.30.1-451 + +%description fields +The "fields" pragma enables compile-time and run-time verified class fields. + +%package File-Basename +Summary: Parse file paths into directory, file name, and suffix +License: GPL+ or Artistic +Epoch: 0 +Version: 2.85 +BuildArch: noarch +Requires: %perl_compat +Requires: perl(Carp) +Requires: perl(re) +%if %{defined perl_bootstrap} +%gendep_perl_File_Basename +%endif +Conflicts: perl < 4:5.30.1-451 + +%description File-Basename +These routines allow you to parse file paths into their directory, file name, +and suffix. + +%package File-Compare +Summary: Compare files or file handles +License: GPL+ or Artistic +Epoch: 0 +# Normalized version +Version: 1.100.600 +BuildArch: noarch +Requires: %perl_compat +Requires: perl(Carp) +%if %{defined perl_bootstrap} +%gendep_perl_File_Compare +%endif +Conflicts: perl < 4:5.30.1-451 + +%description File-Compare +A File::Compare Perl module provides functions for comparing a content of two +files specified by a file name or a file handle. + +%package File-Copy +Summary: Copy files or file handles +License: GPL+ or Artistic +Epoch: 0 +Version: 2.34 +BuildArch: noarch +Requires: %perl_compat +Requires: perl(Carp) +Requires: perl(File::Basename) +%if %{defined perl_bootstrap} +%gendep_perl_File_Copy +%endif +Conflicts: perl < 4:5.30.1-451 + +%description File-Copy +A File::Copy module provides two basic functions, copy and move, which are +useful for getting the contents of a file from one place to another. + +%package File-DosGlob +Summary: DOS-like globbing +License: GPL+ or Artistic +Epoch: 0 +Version: 1.12 +Requires: %perl_compat +Requires: perl(Text::ParseWords) +%if %{defined perl_bootstrap} +%gendep_perl_File_DosGlob +%endif +Conflicts: perl-interpreter < 4:5.30.1-451 + +%description File-DosGlob +This Perl module implements DOS-like globbing with a few enhancements. It +is largely compatible with perlglob.exe in all but one respect--it understands +wild cards in directory components. + +%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 + +%package File-Find +Summary: Traverse a directory tree +License: GPL+ or Artistic +Epoch: 0 +Version: 1.37 +Requires: %perl_compat +Recommends: perl(Scalar::Util) +%if %{defined perl_bootstrap} +%gendep_perl_File_Find +%endif +BuildArch: noarch +Conflicts: perl-interpreter < 4:5.30.1-451 + +%description File-Find +These are functions for searching through directory trees doing work on each +file found similar to the Unix find command. + +%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 + +%package File-stat +Summary: By-name interface to Perl built-in stat functions +License: GPL+ or Artistic +Epoch: 0 +Version: 1.09 +BuildArch: noarch +Requires: %perl_compat +Requires: perl(Symbol) +%if %{defined perl_bootstrap} +%gendep_perl_File_stat +%endif +Conflicts: perl < 4:5.30.1-451 + +%description File-stat +This module overrides the core stat() and lstat() functions, replacing them +with versions that return File::stat objects. This object has methods that +return the similarly named structure field name from the stat(2) function. + +%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 + +%package FileCache +Summary: Keep more files open than the system permits +License: GPL+ or Artistic +Epoch: 0 +Version: 1.10 +BuildArch: noarch +Requires: %perl_compat +%if %{defined perl_bootstrap} +%gendep_perl_FileCache +%endif +Conflicts: perl-interpreter < 4:5.30.1-451 + +%description FileCache +The "cacheout" function will make sure that there's a file handle open +for reading or writing available as the path name you give it. It +automatically closes and re-opens files if you exceed your system +maximum number of file descriptors, or the suggested maximum. + +%package FileHandle +Summary: Object methods for file handles +License: GPL+ or Artistic +Epoch: 0 +Version: 2.03 +BuildArch: noarch +Requires: %perl_compat +Requires: perl(Exporter) +Recommends: perl(Fcntl) +%if %{defined perl_bootstrap} +%gendep_perl_FileHandle +%endif +Conflicts: perl-interpreter < 4:5.30.1-451 + +%description FileHandle +This is an object-oriented interface for opening files and performing +input/output operations on them. + +%package filetest +Summary: Perl pragma to control the filetest permission operators +License: GPL+ or Artistic +Epoch: 0 +Version: 1.03 +BuildArch: noarch +Requires: %perl_compat +%if %{defined perl_bootstrap} +%gendep_perl_filetest +%endif +Conflicts: perl < 4:5.30.1-451 + +%description filetest +The default behavior of file test operators (e.g. "-r") is to use the simple +mode bits as returned by the stat() family of system calls. However, many +operating systems have additional features to define more complex access +rights, for example ACLs (Access Control Lists). For such environments, "use +filetest" may help the permission operators to return results more consistent +with other tools. + +%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.96 +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 + +%package FindBin +Summary: Locate a directory of an original Perl script +License: GPL+ or Artistic +Epoch: 0 +Version: 1.51 +Requires: %perl_compat +%if %{defined perl_bootstrap} +%gendep_perl_FindBin +%endif +BuildArch: noarch +Conflicts: perl-interpreter < 4:5.30.1-451 + +%description FindBin +Locates the full path to the script bin directory to allow the use of paths +relative to the bin directory. + +%if %{with gdbm} +%package GDBM_File +Summary: Perl5 access to the gdbm library +License: GPL+ or Artistic +Epoch: 0 +Version: 1.18 +Requires: %perl_compat +%if %{defined perl_bootstrap} +%gendep_perl_GDBM_File +%endif +Conflicts: perl-interpreter < 4:5.30.1-451 + +%description GDBM_File +GDBM_File is a module which allows Perl programs to make use of the facilities +provided by the GNU gdbm library. +%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.51 +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 Getopt-Std +Summary: Process single-character switches with switch clustering +License: GPL+ or Artistic +Epoch: 0 +Version: 1.12 +Requires: %perl_compat +%if %{defined perl_bootstrap} +%gendep_perl_Getopt_Std +%endif +BuildArch: noarch +Conflicts: perl-interpreter < 4:5.30.1-451 + +%description Getopt-Std +The Getopt::Std module provides functions for processing single-character +switches with switch clustering. Pass one argument which is a string +containing all switches to be recognized. + +%package Hash-Util +Summary: General-utility hash subroutines +License: GPL+ or Artistic +Epoch: 0 +Version: 0.23 +Requires: %perl_compat +Requires: perl(Hash::Util::FieldHash) +Requires: perl(XSLoader) +%if %{defined perl_bootstrap} +%gendep_perl_Hash_Util +%endif +Conflicts: perl-interpreter < 4:5.30.1-451 + +%description Hash-Util +Hash::Util contains special functions for manipulating hashes that don't +really warrant a keyword. + +%package Hash-Util-FieldHash +Summary: Support for inside-out classes +License: GPL+ or Artistic +Epoch: 0 +Version: 1.20 +Requires: %perl_compat +Requires: perl(XSLoader) +%if %{defined perl_bootstrap} +%gendep_perl_Hash_Util_FieldHash +%endif +Conflicts: perl-interpreter < 4:5.30.1-451 + +%description Hash-Util-FieldHash +Hash::Util::FieldHash offers a number of functions in support of the +inside-out technique of class construction. + +%package if +Summary: Use a Perl module if a condition holds +License: GPL+ or Artistic +Epoch: 0 +# Normalized 0.0608 +Version: 0.60.800 +Requires: %perl_compat +%if %{defined perl_bootstrap} +%gendep_perl_if +%endif +BuildArch: noarch +Conflicts: perl-interpreter < 4:5.30.1-451 + +%description if +The "if" module is used to conditionally load another module. + +%package IO +Summary: Perl input/output modules +License: GPL+ or Artistic +Epoch: 0 +Version: 1.43 +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.093 +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 + +%if %{dual_life} || %{rebuild_from_scratch} +%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 +BuildRequires: gzip +# The code defaults to Compress::Zlib, but a user can override it to gzip by +# importing :gzip_external symbol +Requires: gzip +Requires: perl(Compress::Zlib) >= 2 +# IO::Handle used if gzip backend is requested +Requires: perl(IO::Handle) +Requires: %perl_compat +%if %{defined perl_bootstrap} +%gendep_perl_IO_Zlib +%endif +BuildArch: noarch + +%description IO-Zlib +IO::Zlib provides an IO:: style interface to Compress::Zlib and hence to +gzip/zlib-compressed files. It provides many of the same methods as the +IO::Handle interface. +%endif + + +%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.04 +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 + +%package IPC-Open3 +Summary: Open a process for reading, writing, and error handling +License: GPL+ or Artistic +Epoch: 0 +Version: 1.21 +Requires: %perl_compat +Requires: perl(Fcntl) +Requires: perl(IO::Pipe) +Requires: perl(POSIX) +Requires: perl(warnings) +%if %{defined perl_bootstrap} +%gendep_perl_IPC_Open3 +%endif +BuildArch: noarch +Conflicts: perl-interpreter < 4:5.30.1-451 + +%description IPC-Open3 +These are functions that spawn a given command and connects the standard +output of the command for reading, standard output for writing, and standard +error output for handling the errors. + +%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 + +%package I18N-Collate +Summary: Compare 8-bit scalar data according to the current locale +License: GPL+ or Artistic +Epoch: 0 +Version: 1.02 +Requires: %perl_compat +%if %{defined perl_bootstrap} +%gendep_perl_I18N_Collate +%endif +BuildArch: noarch +Conflicts: perl-interpreter < 4:5.30.1-451 + +%description I18N-Collate +This module provides you with objects that will collate according to your +national character set. This module is deprecated. See the perllocale manual +page for further information. + +%package I18N-Langinfo +Summary: Query locale information +License: GPL+ or Artistic +Epoch: 0 +Version: 0.19 +Requires: %perl_compat +%if %{defined perl_bootstrap} +%gendep_perl_I18N_Langinfo +%endif +Conflicts: perl-interpreter < 4:5.30.1-451 + +%description I18N-Langinfo +The langinfo() function queries various locale information that can be used to +localize output and user interfaces. It uses the current underlying locale, +regardless of whether or not it was called from within the scope of "use +locale". + +%package I18N-LangTags +Summary: Functions for dealing with RFC 3066 language tags +License: GPL+ or Artistic +Epoch: 0 +Version: 0.44 +Requires: %perl_compat +Requires: perl(integer) +Requires: perl(warnings) +%if %{defined perl_bootstrap} +%gendep_perl_I18N_LangTags +%endif +BuildArch: noarch +Conflicts: perl-interpreter < 4:5.30.1-451 + +%description I18N-LangTags +Language tags are a formalism, described in RFC 3066, for declaring what +language form (language and possibly dialect) a given chunk of information is +in. This library provides functions for common tasks involving language tags +as they are needed in a variety of protocols and applications. + +%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.04 +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 + +%package less +Summary: Perl pragma to request less of something +License: GPL+ or Artistic +Epoch: 0 +Version: 0.03 +BuildArch: noarch +Requires: %perl_compat +%if %{defined perl_bootstrap} +%gendep_perl_less +%endif +Conflicts: perl < 4:5.30.1-451 + +%description less +"use less ...;" is a Perl user-pragma. If you're very lucky some code you're +using will know that you asked for less CPU usage or RAM or fat or... we just +can't know. + +%package lib +Summary: Manipulate @INC at compile time +License: GPL+ or Artistic +Epoch: 0 +Version: 0.65 +Requires: %perl_compat +Requires: perl(Carp) +%if %{defined perl_bootstrap} +%gendep_perl_lib +%endif +Conflicts: perl-interpreter < 4:5.30.1-451 + +%description lib +This module simplifies the manipulation of @INC at compile time. + +%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. + +%package locale +Summary: Pragma to use or avoid POSIX locales for built-in operations +License: GPL+ or Artistic +Epoch: 0 +Version: 1.09 +Requires: %perl_compat +Requires: perl(Carp) +Requires: perl(POSIX) +%if %{defined perl_bootstrap} +%gendep_perl_locale +%endif +BuildArch: noarch +Conflicts: perl-interpreter < 4:5.30.1-451 + +%description locale +This pragma tells the compiler to enable (or disable) the use of POSIX locales +for built-in operations (for example, LC_CTYPE for regular expressions, +LC_COLLATE for string comparison, and LC_NUMERIC for number formatting). Each +"use locale" or "no locale" affects statements to the end of the enclosing +block. + +%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.999818 +Version: 1.9998.18 +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.5009 +Version: 0.500.900 +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. + +%package meta-notation +Summary: Change nonprintable characters below 0x100 into printables +License: GPL+ or Artistic +Epoch: 0 +Version: %{perl_version} +BuildArch: noarch +Provides: perl(meta_notation) = %{perl_version} +Requires: %perl_compat +%if %{defined perl_bootstrap} +%gendep_perl_meta_notation +%endif +Conflicts: perl < 4:5.30.1-451 + +%description meta-notation +Returns a copy of the input string with the nonprintable characters below +0x100 changed into printables. Any ASCII printables or above 0xFF are +unchanged. + +%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.20210123 +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.20210123 +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.70 +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.000037 +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 mro +Summary: Method resolution order +License: GPL+ or Artistic +Epoch: 0 +Version: 1.23 +Requires: %perl_compat +%if %{defined perl_bootstrap} +%gendep_perl_mro +%endif +Conflicts: perl-interpreter < 4:5.30.1-451 + +%description mro +The "mro" name space provides several utilities for dealing with method +resolution order and method caching in general. + +%if %{with gdbm} +%package NDBM_File +Summary: Tied access to ndbm files +License: GPL+ or Artistic +Epoch: 0 +Version: 1.15 +Requires: %perl_compat +%if %{defined perl_bootstrap} +%gendep_perl_NDBM_File +%endif +Conflicts: perl-interpreter < 4:5.30.1-451 + +%description NDBM_File +NDBM_File establishes a connection between a Perl hash variable and a file in +ndbm format. You can manipulate the data in the file just as if it were in +a Perl hash, but when your program exits, the data will remain in the file, to +be used the next time your program runs. +%endif + +%package Net +Summary: By-name interface to Perl built-in network resolver +License: GPL+ or Artistic +Epoch: 0 +Version: 1.02 +BuildArch: noarch +Requires: %perl_compat +Requires: perl(Socket) +%if %{defined perl_bootstrap} +%gendep_perl_Net +%endif +Conflicts: perl-interpreter < 4:5.30.1-451 + +%description Net +This package provide object-oriented interface to Perl built-in gethost*(), +getnet*(), getproto*(), and getserv*() functions. + +%if %{dual_life} || %{rebuild_from_scratch} +%package Net-Ping +Summary: Check a remote host for reachability +License: GPL+ or Artistic +Epoch: 0 +Version: 2.72 +Requires: %perl_compat +Requires: perl(IO::Socket::INET) +# Keep Net::Ping::External optional +Suggests: perl(Net::Ping::External) +%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. +%endif + +%package NEXT +Summary: Pseudo-class that allows method redispatch +License: GPL+ or Artistic +Epoch: 0 +Version: 0.67 +Requires: %perl_compat +%if %{defined perl_bootstrap} +%gendep_perl_NEXT +%endif +BuildArch: noarch +Conflicts: perl-interpreter < 4:5.30.1-451 + +%description NEXT +The NEXT module adds a pseudo-class named "NEXT" to any program that uses it. +If a method "m" calls "$self->NEXT::m()", the call to "m" is redispatched as +if the calling method had not originally been found. + +%if %{with gdbm} +%package ODBM_File +Summary: Tied access to odbm files +License: GPL+ or Artistic +Epoch: 0 +Version: 1.16 +Requires: %perl_compat +%if %{defined perl_bootstrap} +%gendep_perl_ODBM_File +%endif +Conflicts: perl-interpreter < 4:5.30.1-451 + +%description ODBM_File +ODBM_File establishes a connection between a Perl hash variable and a file in +odbm format. You can manipulate the data in the file just as if it were in +a Perl hash, but when your program exits, the data will remain in the file, to +be used the next time your program runs. +%endif + +%package Opcode +Summary: Disable named opcodes when compiling a perl code +License: GPL+ or Artistic +Epoch: 0 +Version: 1.48 +Requires: %perl_compat +%if %{defined perl_bootstrap} +%gendep_perl_Opcode +%endif +Conflicts: perl-interpreter < 4:5.30.1-451 + +%description Opcode +The Opcode module allows you to define an operator mask to be in effect when +perl next compiles any code. Attempting to compile code which contains +a masked opcode will cause the compilation to fail with an error. The code +will not be executed. + +%package open +Summary: Perl pragma to set default PerlIO layers for input and output +License: GPL+ or Artistic +Epoch: 0 +Version: 1.12 +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. + +%package overload +Summary: Overloading Perl operations +License: GPL+ or Artistic +Epoch: 0 +Version: 1.31 +BuildArch: noarch +Requires: %perl_compat +Requires: perl(mro) +Requires: perl(Scalar::Util) +Requires: perl(overloading) +%if %{defined perl_bootstrap} +%gendep_perl_overload +%endif +Conflicts: perl-interpreter < 4:5.30.1-451 + +%description overload +The "overload" pragma allows overloading of Perl operators for a class. To +overload built-in functions, see "Overriding Built-in Functions" in perlsub +POD instead. + +%package overloading +Summary: Perl pragma to lexically control overloading +License: GPL+ or Artistic +Epoch: 0 +Version: 0.02 +BuildArch: noarch +Requires: %perl_compat +Requires: perl(Carp) +%if %{defined perl_bootstrap} +%gendep_perl_overloading +%endif +Conflicts: perl-interpreter < 4:5.30.1-451 + +%description overloading +Overloading pragma allows you to lexically disable or enable overloading. + +%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.238 +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) +Requires: perl(Errno) +Requires: perl(Scalar::Util) +# XSLoader is optional only because miniperl does not support XS. With perl we +# almost certainly want it. +Recommends: perl(XSLoader) +%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.20200523 +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 + +%package ph +Summary: Selected system header files converted to Perl headers +License: GPL+ or Artistic +Epoch: 0 +Version: %{perl_version} +Requires: %perl_compat +# Match header files used when building perl. +Requires: perl-libs%{?_isa} = %{perl_epoch}:%{perl_version}-%{release} +Requires: perl(warnings) +# We deliver this package only for these three files mentioned in +# a documentation. +Provides: perl(sys/ioctl.ph) = %{perl_version} +Provides: perl(sys/syscall.ph) = %{perl_version} +Provides: perl(syscall.ph) = %{perl_version} +%if %{defined perl_bootstrap} +%gendep_perl_ph +%endif +Conflicts: perl < 4:5.30.1-451 + +%description ph +Contemporary Perl still refers to some Perl header (ph) files although it does +not build them anymore. This is a prebuilt collection of the referred files. +If you miss other ones, you can generate them with h2ph tool from perl-utils +package. + +%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-Functions +Summary: Group Perl functions as in perlfunc POD +License: GPL+ or Artistic +Epoch: 0 +Version: 1.13 +BuildArch: noarch +Requires: %perl_compat +# Match perl the functions come from +Requires: perl-libs = %{perl_epoch}:%{perl_version}-%{release} +%if %{defined perl_bootstrap} +%gendep_perl_Pod_Functions +%endif +Conflicts: perl < 4:5.30.1-451 + +%description Pod-Functions +This module enumerates the Perl functions that are documented in perlfunc POD. + +%package Pod-Html +Summary: Convert POD files to HTML +License: GPL+ or Artistic +Epoch: 0 +Version: 1.25 +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-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.40 +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.14 +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 + +%package POSIX +Summary: Perl interface to IEEE Std 1003.1 +License: GPL+ or Artistic +Epoch: 0 +Version: 1.94 +Requires: %perl_compat +Requires: perl(Carp) +%if %{defined perl_bootstrap} +%gendep_perl_POSIX +%endif +Conflicts: perl-interpreter < 4:5.30.1-451 + +%description POSIX +The POSIX module permits you to access all (or nearly all) the standard POSIX +1003.1 identifiers. Many of these identifiers have been given Perl interfaces. + +%package Safe +Summary: Compile and execute code in restricted compartments +License: GPL+ or Artistic +Epoch: 0 +Version: 2.41 +Requires: %perl_compat +%if %{defined perl_bootstrap} +%gendep_perl_Safe +%endif +BuildArch: noarch +Conflicts: perl-interpreter < 4:5.30.1-451 + +%description Safe +The Safe extension module allows the creation of compartments in which Perl +code can be evaluated. Please note that the restriction is not suitable for +security purposes. + +%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: 4 +Version: 1.55 +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 Search-Dict +Summary: Search for a key in a dictionary file +License: GPL+ or Artistic +Epoch: 0 +Version: 1.07 +Requires: %perl_compat +Requires: perl(feature) +%if %{defined perl_bootstrap} +%gendep_perl_Search_Dict +%endif +BuildArch: noarch +Conflicts: perl-interpreter < 4:5.30.1-451 + +%description Search-Dict +This module sets file position in a file handle to be first line greater than +or equal (string-wise) to a key. + +%package SelectSaver +Summary: Save and restore selected file handle +License: GPL+ or Artistic +Epoch: 0 +Version: 1.02 +BuildArch: noarch +Requires: %perl_compat +%if %{defined perl_bootstrap} +%gendep_perl_SelectSaver +%endif +Conflicts: perl < 4:5.30.1-451 + +%description SelectSaver +A "SelectSaver" object contains a reference to the file handle that was +selected when it was created. When the object is destroyed, it re-selects the +file handle that was selected when it was created. + +%package SelfLoader +Summary: Load functions only on demand +License: GPL+ or Artistic +Epoch: 0 +Version: 1.26 +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. + +%package sigtrap +Summary: Perl pragma to enable simple signal handling +License: GPL+ or Artistic +Epoch: 0 +Version: 1.09 +BuildArch: noarch +Requires: %perl_compat +Requires: perl(meta_notation) = %{perl_version} +Requires: perl(Symbol) +%if %{defined perl_bootstrap} +%gendep_perl_sigtrap +%endif +Conflicts: perl < 4:5.30.1-451 + +%description sigtrap +The sigtrap pragma is a simple interface for installing signal handlers. + +%if %{dual_life} || %{rebuild_from_scratch} +%package Socket +Summary: C socket.h defines and structure manipulators +License: GPL+ or Artistic +Epoch: 4 +Version: 2.029 +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 + +%package sort +Summary: Perl pragma to control sort() behavior +License: GPL+ or Artistic +Epoch: 0 +Version: 2.04 +BuildArch: noarch +Requires: %perl_compat +Requires: perl(Carp) +Requires: perl(warnings) +%if %{defined perl_bootstrap} +%gendep_perl_sort +%endif +Conflicts: perl < 4:5.30.1-451 + +%description sort +With the "sort" pragma you can control the behavior of the builtin "sort()" +function. + +%if %{dual_life} || %{rebuild_from_scratch} +%package Storable +Summary: Persistence for Perl data structures +License: GPL+ or Artistic +Epoch: 1 +Version: 3.21 +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 + +%package subs +Summary: Perl pragma to predeclare subroutine names +License: GPL+ or Artistic +Epoch: 0 +Version: 1.03 +BuildArch: noarch +Requires: %perl_compat +%if %{defined perl_bootstrap} +%gendep_perl_subs +%endif +Conflicts: perl < 4:5.30.1-451 + +%description subs +This will predeclare all the subroutines whose names are in the list, +allowing you to use them without parentheses (as list operators) even +before they're declared. + +%package Symbol +Summary: Manipulate Perl symbols and their names +License: GPL+ or Artistic +Epoch: 0 +Version: 1.08 +BuildArch: noarch +Requires: %perl_compat +%if %{defined perl_bootstrap} +%gendep_perl_Symbol +%endif +Conflicts: perl < 4:5.30.1-451 + +%description Symbol +The Symbol module provides functions for manipulating Perl symbols. + +%package Sys-Hostname +Summary: Try every conceivable way to get a hostname +License: GPL+ or Artistic +Epoch: 0 +Version: 1.23 +Requires: %perl_compat +Suggests: perl(POSIX) +Requires: perl(XSLoader) +%if %{defined perl_bootstrap} +%gendep_perl_Sys_Hostname +%endif +Conflicts: perl-interpreter < 4:5.30.1-451 + +%description Sys-Hostname +It attempts several methods of getting the system hostname and then caches the +result. + +%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.36 +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: 5.01 +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 Term-Complete +Summary: Perl word completion +License: GPL+ or Artistic +Epoch: 0 +Version: 1.403 +Requires: %perl_compat +%if %{defined perl_bootstrap} +%gendep_perl_Term_Complete +%endif +BuildArch: noarch +Conflicts: perl-interpreter < 4:5.30.1-451 + +%description Term-Complete +"Complete" routine provides word completion on a list of words in the array. + +%package Term-ReadLine +Summary: Perl interface to various read-line packages +License: GPL+ or Artistic +Epoch: 0 +Version: 1.17 +Requires: %perl_compat +Requires: perl(Term::Cap) +%if %{defined perl_bootstrap} +%gendep_perl_Term_ReadLine +%endif +BuildArch: noarch +Conflicts: perl-interpreter < 4:5.30.1-451 + +%description Term-ReadLine +This package is just a front end to some other packages. It's a stub to +set up a common interface to the various read-line implementations found +on CPAN (under the "Term::ReadLine::*" name space). + +%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.302175 +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 + +%package Text-Abbrev +Summary: Create an abbreviation table from a list +License: GPL+ or Artistic +Epoch: 0 +Version: 1.02 +Requires: %perl_compat +%if %{defined perl_bootstrap} +%gendep_perl_Text_Abbrev +%endif +BuildArch: noarch +Conflicts: perl-interpreter < 4:5.30.1-451 + +%description Text-Abbrev +It stores all unambiguous truncations of each element of a list as keys in +an associative array. The values are the original list elements. + +%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 + +%package Thread +Summary: Manipulate threads in Perl (for old code only) +License: GPL+ or Artistic +Epoch: 0 +Version: 3.05 +BuildArch: noarch +Requires: %perl_compat +%if %{defined perl_bootstrap} +%gendep_perl_Thread +%endif +Conflicts: perl < 4:5.30.1-451 + +%description Thread +This Thread module served as the front end to the old-style thread model, +called 5005threads, that has been removed in version 5.10. + +For old code and interim backwards compatibility, the Thread module has been +reworked to function as a front end for the new interpreter threads (ithreads) +model. However, some previous functionality is not available. Further, the +data sharing models between the two thread models are completely different, +and anything to do with data sharing has to be thought differently. + +You are strongly encouraged to migrate any existing threaded code to the new +model (i.e., use the threads and threads::shared modules) as soon as possible. + +%if %{dual_life} || %{rebuild_from_scratch} +%package Thread-Queue +Summary: Thread-safe queues +License: GPL+ or Artistic +Epoch: 0 +Version: 3.14 +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 + +%package Tie +Summary: Base classes for tying variables +License: GPL+ or Artistic +Epoch: 0 +# Version from Tie::StdHandle +Version: 4.6 +BuildArch: noarch +Requires: %perl_compat +%if %{defined perl_bootstrap} +%gendep_perl_Tie +%endif +Conflicts: perl < 4:5.30.1-451 + +%description Tie +These are Perl modules that helps connecting classes with arrays, hashes, +handles, and scalars. + +%package Tie-File +Summary: Access the lines of a disk file via a Perl array +License: GPLv2+ or Artistic +Epoch: 0 +Version: 1.06 +Requires: %perl_compat +# Symbol is not used on Perl >= 5.6.0 +%if %{defined perl_bootstrap} +%gendep_perl_Tie_File +%endif +BuildArch: noarch +Conflicts: perl-interpreter < 4:5.30.1-451 + +%description Tie-File +Tie::File represents a regular text file as a Perl array. Each element in the +array corresponds to a record in the file. The first line of the file is +element 0 of the array; the second line is element 1, and so on. The file is +not loaded into memory, so this will work even for gigantic files. Changes to +the array are reflected in the file immediately. + +%package Tie-Memoize +Summary: Add data to a hash when needed +License: GPLv2+ or Artistic +Epoch: 0 +Version: 1.1 +Requires: %perl_compat +Requires: perl(Carp) +Requires: perl(Tie::ExtraHash) +%if %{defined perl_bootstrap} +%gendep_perl_Tie_Memoize +%endif +BuildArch: noarch +Conflicts: perl-interpreter < 4:5.30.1-451 + +%description Tie-Memoize +This package allows a tied hash to load its values automatically on the first +access, and to use the cached value on the following accesses. + +%if %{dual_life} || %{rebuild_from_scratch} +%package Tie-RefHash +Summary: Use references as hash keys +License: GPL+ or Artistic +Epoch: 0 +Version: 1.39 +Requires: %perl_compat +# Scalar::Util || overload +Requires: perl(overload) +Suggests: perl(Scalar::Util) +%if %{defined perl_bootstrap} +%gendep_perl_Tie_RefHash +%endif +BuildArch: noarch +Conflicts: perl-interpreter < 4:5.30.1-451 + +%description Tie-RefHash +This module provides the ability to use references as hash keys if you first +"tie" the hash variable to this module. Normally, only the keys of the tied +hash itself are preserved as references; to use references as keys in +hashes-of-hashes, use Tie::RefHash::Nestable, included as part of +Tie::RefHash. +%endif + +%package Time +Summary: By-name interface to Perl built-in time functions +License: GPL+ or Artistic +Epoch: 0 +Version: 1.03 +BuildArch: noarch +Requires: %perl_compat +%if %{defined perl_bootstrap} +%gendep_perl_Time +%endif +Conflicts: perl-interpreter < 4:5.30.1-451 + +%description Time +This package provides an object-oriented interface to Perl built-in gmtime() +and localtime () functions. + +%if %{dual_life} || %{rebuild_from_scratch} +%package Time-HiRes +Summary: High resolution alarm, sleep, gettimeofday, interval timers +License: GPL+ or Artistic +Epoch: 4 +Version: 1.9764 +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.3401 +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. + +%package Thread-Semaphore +Summary: Thread-safe semaphores +License: GPL+ or Artistic +Epoch: 0 +Version: 2.13 +Requires: %perl_compat +Requires: perl(Carp) +%if %{defined perl_bootstrap} +%gendep_perl_Thread_Semaphore +%endif +BuildArch: noarch +Conflicts: perl-interpreter < 4:5.30.1-451 + +%description Thread-Semaphore +Semaphores provide a mechanism to regulate access to resources. Unlike locks, +semaphores aren't tied to particular scalars, and so may be used to control +access to anything you care to use them for. Semaphores don't limit their +values to zero and one, so they can be used to control access to some resource +that there may be more than one of (e.g., file handles). Increment and +decrement amounts aren't fixed at one either, so threads can reserve or return +multiple resources at once. + +%if %{dual_life} || %{rebuild_from_scratch} +%package threads +Summary: Perl interpreter-based threads +License: GPL+ or Artistic +Epoch: 1 +Version: 2.25 +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.61 +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.27 +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 + +%package Unicode-UCD +Summary: Unicode character database +License: GPL+ or Artistic +Epoch: 0 +Version: 0.75 +BuildArch: noarch +Requires: %perl_compat +Requires: perl(Storable) +%if %{defined perl_bootstrap} +%gendep_perl_Unicode_UCD +%endif +Conflicts: perl < 4:5.30.1-451 + +%description Unicode-UCD +The Unicode::UCD module offers a series of functions that provide a simple +interface to the Unicode Character Database. + +%package User-pwent +Summary: By-name interface to Perl built-in user name resolver +License: GPL+ or Artistic +Epoch: 0 +Version: 1.03 +BuildArch: noarch +Requires: %perl_compat +%if %{defined perl_bootstrap} +%gendep_perl_User_pwent +%endif +Conflicts: perl-interpreter < 4:5.30.1-451 + +%description User-pwent +This package provides an object-oriented interface to Perl build-in getgr*() +and getpw*() functions. + +%package vars +Summary: Perl pragma to predeclare global variable names +License: GPL+ or Artistic +Epoch: 0 +Version: 1.05 +BuildArch: noarch +Requires: %perl_compat +Requires: perl(Carp) +%if %{defined perl_bootstrap} +%gendep_perl_vars +%endif +Conflicts: perl < 4:5.30.1-451 + +%description vars +This pragma will predeclare all the variables whose names are in the +list, allowing you to use them under "use strict", and disabling any +typo warnings for them. + +For use with variables in the current package for a single scope, the +functionality provided by this pragma has been superseded by "our" +declarations, available in Perl v5.6.0 or later, and use of this pragma is +discouraged. + +%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 + +%package vmsish +Summary: Perl pragma to control VMS-specific language features +License: GPL+ or Artistic +Epoch: 0 +Version: 1.04 +BuildArch: noarch +Requires: %perl_compat +%if %{defined perl_bootstrap} +%gendep_perl_vmsish +%endif +Conflicts: perl < 4:5.30.1-451 + +%description vmsish +The "vmsish" pragma control VMS-specific features of the Perl language. If +you're not running VMS, this module does nothing. + +%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 +%patch14 -p1 +%patch15 -p1 +%patch16 -p1 +%patch17 -p1 +%patch18 -p1 +%patch19 -p1 +%patch21 -p1 +%patch22 -p1 +%patch23 -p1 +%patch24 -p1 +%patch25 -p1 +%patch26 -p1 +%patch28 -p1 +%patch29 -p1 +%patch30 -p1 +%patch35 -p1 +%patch38 -p1 +%patch39 -p1 +%patch40 -p1 +%patch41 -p1 +%patch42 -p1 +%patch43 -p1 +%patch44 -p1 +%patch45 -p1 +%patch46 -p1 +%patch47 -p1 +%patch48 -p1 +%patch49 -p1 +%patch50 -p1 +%patch51 -p1 +%patch52 -p1 +%patch53 -p1 +%patch54 -p1 +%patch55 -p1 +%patch56 -p1 +%patch57 -p1 +%patch58 -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 Patch14: Do not use C compiler reserved identifiers' \ + 'Fedora Patch15: Fix SvUV_nomg() macro definition' \ + 'Fedora Patch16: Fix SvTRUE() documentation' \ + 'Fedora Patch17: Fix ext/XS-APItest/t/utf8_warn_base.pl tests' \ + 'Fedora Patch18: Fix IO::Handle::error() to report write errors (GH#6799)' \ + 'Fedora Patch19: Fix IO::Handle::error() to report write errors (GH#6799)' \ + 'Fedora Patch21: Fix setting a non-blocking mode in IO::Socket::UNIX (GH#17787)' \ + 'Fedora Patch22: Fix running actions after stepping in a debugger (GH#17901)' \ + 'Fedora Patch23: Fix running actions after stepping in a debugger (GH#17901)' \ + 'Fedora Patch24: Fix running actions after stepping in a debugger (GH#17901)' \ + 'Fedora Patch25: Fix a buffer size for asctime_r() and ctime_r() functions' \ + 'Fedora Patch26: Prevent from an integer overflow in RenewDouble() macro' \ + 'Fedora Patch28: Fix a number of arguments passed to a BOOT XS subroutine (GH#17755)' \ + 'Fedora Patch29: Fix an IO::Handle spurious error reported for regular file handles (GH#18019)' \ + 'Fedora Patch30: Fix inheritance resolution of lexial objects in a debugger (GH#17661)' \ + 'Fedora Patch35: Fix sorting with a block that calls return (GH#18081)' \ + 'Fedora Patch38: Fix sv_collxfrm macro to respect locale' \ + 'Fedora Patch39: Fix an iterator signedness in handling an mro exception (GH#18155)' \ + 'Fedora Patch40: Fix a code flow in Perl_sv_inc_nomg()' \ + 'Fedora Patch41: Fix an undefined behavior in Perl_custom_op_get_field()' \ + 'Fedora Patch42: Fix Config variable names in in t/op tests' \ + 'Fedora Patch43: Fix fetching a magic on the stacked file test operators' \ + 'Fedora Patch44: Fix a crash in optimizing split() (GH#18232)' \ + 'Fedora Patch45: Fix a crash in optimizing split() (GH#18232)' \ + 'Fedora Patch46: Fix a crash in optimizing split() (GH#18232)' \ + 'Fedora Patch47: Fix a crash in optimizing split() (GH#18232)' \ + 'Fedora Patch48: Make accessing environment by DynaLoader thread-safe' \ + 'Fedora Patch49: Use duplocale() if available' \ + 'Fedora Patch50: Fix fc() in Turkish locale' \ + 'Fedora Patch51: Fix croaking on "my $_" when "use utf8" is in effect (GH#18449)' \ + 'Fedora Patch52: Fix PERL_UNUSED_ARG() definition in XSUB.h' \ + 'Fedora Patch53: Add missing entries to perldiag (GH#18276)' \ + 'Fedora Patch54: Protect locale tests from LANGUAGE environment variable' \ + 'Fedora Patch55: Prevent the number of buckets in a hash from getting too large' \ + 'Fedora Patch56: Fix a memory leak when compiling a regular expression (GH#18604)' \ + 'Fedora Patch57: Fix dumping a hash entry of PL_strtab type' \ + 'Fedora Patch57: Fix an arithmetic left shift of a minimal integer value (GH#18639)' \ + '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 + +# Prepare 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 + +# perlfunc/ioctl() recommends sys/ioctl.ph. +# perlfaq5 recommends sys/syscall.ph. +# perlfunc/syscall() recommends syscall.ph. +for i in sys/ioctl.h sys/syscall.h syscall.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 + +%if ! %{dual_life} && ! %{rebuild_from_scratch} +# All dual_life files/directories are deleted here instead of %%exclude in +# %%files. So that debuginfo does not find unpacked binaries and blindly +# symlinks to them at random packages. + +# Archive-Tar +rm %{buildroot}%{_bindir}/ptar +rm %{buildroot}%{_bindir}/ptardiff +rm %{buildroot}%{_bindir}/ptargrep +rm -rf %{buildroot}%{privlib}/Archive/Tar +rm %{buildroot}%{privlib}/Archive/Tar.pm +rm -rf %{buildroot}%{privlib}/Archive +rm %{buildroot}%{_mandir}/man1/ptar.1* +rm %{buildroot}%{_mandir}/man1/ptardiff.1* +rm %{buildroot}%{_mandir}/man1/ptargrep.1* +rm %{buildroot}%{_mandir}/man3/Archive::Tar* + +# autodie +rm -rf %{buildroot}%{privlib}/autodie/ +rm %{buildroot}%{privlib}/autodie.pm +rm %{buildroot}%{privlib}/Fatal.pm +rm %{buildroot}%{_mandir}/man3/autodie.3* +rm %{buildroot}%{_mandir}/man3/autodie::* +rm %{buildroot}%{_mandir}/man3/Fatal.3* + +# bignum +rm %{buildroot}%{privlib}/bigint.pm +rm %{buildroot}%{privlib}/bignum.pm +rm %{buildroot}%{privlib}/bigrat.pm +rm -rf %{buildroot}%{privlib}/Math/BigFloat +rm %{buildroot}%{privlib}/Math/BigInt/Trace.pm +rm %{buildroot}%{_mandir}/man3/bigint.* +rm %{buildroot}%{_mandir}/man3/bignum.* +rm %{buildroot}%{_mandir}/man3/bigrat.* + +# Carp +rm -rf %{buildroot}%{privlib}/Carp +rm %{buildroot}%{privlib}/Carp.* +rm %{buildroot}%{_mandir}/man3/Carp.* + +# Compress-Raw-Bzip2 +rm %{buildroot}%{archlib}/Compress/Raw/Bzip2.pm +rm -rf %{buildroot}%{archlib}/auto/Compress/Raw/Bzip2 +rm %{buildroot}%{_mandir}/man3/Compress::Raw::Bzip2* + +# Compress-Raw-Zlib +rm %{buildroot}%{archlib}/Compress/Raw/Zlib.pm +rm -rf %{buildroot}%{archlib}/Compress/Raw +rm -rf %{buildroot}%{archlib}/Compress +rm -rf %{buildroot}%{archlib}/auto/Compress/Raw/Zlib +rm -rf %{buildroot}%{archlib}/auto/Compress/Raw +rm -rf %{buildroot}%{archlib}/auto/Compress +rm %{buildroot}%{_mandir}/man3/Compress::Raw::Zlib* + +# Config-Perl-V +rm -rf %{buildroot}%{privlib}/Config/Perl +rm %{buildroot}%{_mandir}/man3/Config::Perl::V.* + +# constant +rm %{buildroot}%{privlib}/constant.pm +rm %{buildroot}%{_mandir}/man3/constant.3* + +# CPAN-Meta-Requirements +rm %{buildroot}%{privlib}/CPAN/Meta/Requirements.pm +rm %{buildroot}%{_mandir}/man3/CPAN::Meta::Requirements.3* + +# CPAN-Meta-YAML +rm %{buildroot}%{privlib}/CPAN/Meta/YAML.pm +rm %{buildroot}%{_mandir}/man3/CPAN::Meta::YAML* + +# CPAN-Meta +rm %{buildroot}%{privlib}/CPAN/Meta.pm +rm %{buildroot}%{privlib}/CPAN/Meta/Converter.pm +rm %{buildroot}%{privlib}/CPAN/Meta/Feature.pm +rm -rf %{buildroot}%{privlib}/CPAN/Meta/History +rm %{buildroot}%{privlib}/CPAN/Meta/History.pm +rm %{buildroot}%{privlib}/CPAN/Meta/Merge.pm +rm %{buildroot}%{privlib}/CPAN/Meta/Prereqs.pm +rm %{buildroot}%{privlib}/CPAN/Meta/Spec.pm +rm %{buildroot}%{privlib}/CPAN/Meta/Validator.pm +rm -rf %{buildroot}%{privlib}/CPAN/Meta +rm %{buildroot}%{privlib}/Parse/CPAN/Meta.pm +rm -rf %{buildroot}%{privlib}/Parse/CPAN +rm -rf %{buildroot}%{privlib}/Parse +rm %{buildroot}%{_mandir}/man3/CPAN::Meta* +rm %{buildroot}%{_mandir}/man3/Parse::CPAN::Meta.3* + +# CPAN +rm %{buildroot}%{_bindir}/cpan +rm %{buildroot}%{privlib}/App/Cpan.pm +rm -rf %{buildroot}%{privlib}/CPAN +rm %{buildroot}%{privlib}/CPAN.pm +rm %{buildroot}%{_mandir}/man1/cpan.1* +rm %{buildroot}%{_mandir}/man3/App::Cpan.* +rm %{buildroot}%{_mandir}/man3/CPAN.* +rm %{buildroot}%{_mandir}/man3/CPAN:* + +# Data-Dumper +rm %{buildroot}%{archlib}/auto/Data/Dumper/Dumper.so +rm %{buildroot}%{archlib}/Data/Dumper.pm +rm -rf %{buildroot}%{archlib}/auto/Data/Dumper +rm -rf %{buildroot}%{archlib}/auto/Data +rm -rf %{buildroot}%{archlib}/Data +rm %{buildroot}%{_mandir}/man3/Data::Dumper.3* + +# DB_File +rm %{buildroot}%{archlib}/DB_File.pm +rm %{buildroot}%{archlib}/auto/DB_File/DB_File.so +rm -rf %{buildroot}%{archlib}/auto/DB_File +rm %{buildroot}%{_mandir}/man3/DB_File* + +# Devel-PPPort +rm %{buildroot}%{archlib}/Devel/PPPort.pm +rm %{buildroot}%{_mandir}/man3/Devel::PPPort.3* + +# Digest +rm %{buildroot}%{privlib}/Digest.pm +rm %{buildroot}%{privlib}/Digest/base.pm +rm %{buildroot}%{privlib}/Digest/file.pm +rm -rf %{buildroot}%{privlib}/Digest +rm %{buildroot}%{_mandir}/man3/Digest.3* +rm %{buildroot}%{_mandir}/man3/Digest::base.3* +rm %{buildroot}%{_mandir}/man3/Digest::file.3* + +# Digest-MD5 +rm %{buildroot}%{archlib}/Digest/MD5.pm +rm -rf %{buildroot}%{archlib}/auto/Digest/MD5 +rm %{buildroot}%{_mandir}/man3/Digest::MD5.3* + +# Digest-SHA +rm %{buildroot}%{_bindir}/shasum +rm %{buildroot}%{archlib}/Digest/SHA.pm +rm -rf %{buildroot}%{archlib}/Digest +rm -rf %{buildroot}%{archlib}/auto/Digest/SHA +rm -rf %{buildroot}%{archlib}/auto/Digest +rm %{buildroot}%{_mandir}/man1/shasum.1* +rm %{buildroot}%{_mandir}/man3/Digest::SHA.3* + +# Encode +rm %{buildroot}%{_bindir}/encguess +rm %{buildroot}%{_bindir}/piconv +rm -rf %{buildroot}%{archlib}/Encode* +rm -rf %{buildroot}%{archlib}/auto/Encode* +rm %{buildroot}%{_mandir}/man1/encguess.1* +rm %{buildroot}%{_mandir}/man1/piconv.1* +rm %{buildroot}%{_mandir}/man3/Encode*.3* + +# encoding +rm %{buildroot}%{archlib}/encoding.pm +rm %{buildroot}%{_mandir}/man3/encoding.3* + +# Encode-devel +rm %{buildroot}%{_bindir}/enc2xs +rm %{buildroot}%{privlib}/Encode/*.e2x +rm %{buildroot}%{privlib}/Encode/encode.h +rm -rf %{buildroot}%{privlib}/Encode +rm %{buildroot}%{_mandir}/man1/enc2xs.1* + +# Env +rm %{buildroot}%{privlib}/Env.pm +rm %{buildroot}%{_mandir}/man3/Env.3* + +# Exporter +rm -rf %{buildroot}%{privlib}/Exporter* +rm %{buildroot}%{_mandir}/man3/Exporter* + +# experimental +rm %{buildroot}%{privlib}/experimental* +rm %{buildroot}%{_mandir}/man3/experimental* + +# ExtUtils-CBuilder +rm %{buildroot}%{privlib}/ExtUtils/CBuilder.pm +rm -rf %{buildroot}%{privlib}/ExtUtils/CBuilder +rm %{buildroot}%{_mandir}/man3/ExtUtils::CBuilder* + +# ExtUtils-Command +rm %{buildroot}%{privlib}/ExtUtils/Command.pm +rm %{buildroot}%{_mandir}/man3/ExtUtils::Command.* + +# ExtUtils-Install +rm %{buildroot}%{privlib}/ExtUtils/Install.pm +rm %{buildroot}%{privlib}/ExtUtils/Installed.pm +rm %{buildroot}%{privlib}/ExtUtils/Packlist.pm +rm %{buildroot}%{_mandir}/man3/ExtUtils::Install.3* +rm %{buildroot}%{_mandir}/man3/ExtUtils::Installed.3* +rm %{buildroot}%{_mandir}/man3/ExtUtils::Packlist.3* + +# ExtUtils-Manifest +rm %{buildroot}%{privlib}/ExtUtils/Manifest.pm +rm %{buildroot}%{privlib}/ExtUtils/MANIFEST.SKIP +rm %{buildroot}%{_mandir}/man3/ExtUtils::Manifest.3* + +# ExtUtils-MakeMaker +rm %{buildroot}%{_bindir}/instmodsh +rm -rf %{buildroot}%{privlib}/ExtUtils/Command +rm -rf %{buildroot}%{privlib}/ExtUtils/Liblist +rm %{buildroot}%{privlib}/ExtUtils/Liblist.pm +rm -rf %{buildroot}%{privlib}/ExtUtils/MakeMaker +rm %{buildroot}%{privlib}/ExtUtils/MakeMaker.pm +rm %{buildroot}%{privlib}/ExtUtils/MM.pm +rm %{buildroot}%{privlib}/ExtUtils/MM_*.pm +rm %{buildroot}%{privlib}/ExtUtils/MY.pm +rm %{buildroot}%{privlib}/ExtUtils/Mkbootstrap.pm +rm %{buildroot}%{privlib}/ExtUtils/Mksymlists.pm +rm %{buildroot}%{privlib}/ExtUtils/testlib.pm +rm %{buildroot}%{_mandir}/man1/instmodsh.1* +rm %{buildroot}%{_mandir}/man3/ExtUtils::Command::MM* +rm %{buildroot}%{_mandir}/man3/ExtUtils::Liblist.3* +rm %{buildroot}%{_mandir}/man3/ExtUtils::MM.3* +rm %{buildroot}%{_mandir}/man3/ExtUtils::MM_* +rm %{buildroot}%{_mandir}/man3/ExtUtils::MY.3* +rm %{buildroot}%{_mandir}/man3/ExtUtils::MakeMaker* +rm %{buildroot}%{_mandir}/man3/ExtUtils::Mkbootstrap.3* +rm %{buildroot}%{_mandir}/man3/ExtUtils::Mksymlists.3* +rm %{buildroot}%{_mandir}/man3/ExtUtils::testlib.3* + +# ExtUtils-MM-Utils +rm %{buildroot}%{privlib}/ExtUtils/MM/Utils.pm +rm -rf %{buildroot}%{privlib}/ExtUtils/MM +rm %{buildroot}%{_mandir}/man3/ExtUtils::MM::Utils.* + +# ExtUtils-ParseXS +rm %{buildroot}%{privlib}/ExtUtils/ParseXS.pm +rm %{buildroot}%{privlib}/ExtUtils/ParseXS.pod +rm %{buildroot}%{privlib}/ExtUtils/ParseXS/Constants.pm +rm %{buildroot}%{privlib}/ExtUtils/ParseXS/CountLines.pm +rm %{buildroot}%{privlib}/ExtUtils/ParseXS/Eval.pm +rm %{buildroot}%{privlib}/ExtUtils/ParseXS/Utilities.pm +rm -rf %{buildroot}%{privlib}/ExtUtils/ParseXS +rm %{buildroot}%{privlib}/ExtUtils/Typemaps.pm +rm %{buildroot}%{privlib}/ExtUtils/Typemaps/Cmd.pm +rm %{buildroot}%{privlib}/ExtUtils/Typemaps/InputMap.pm +rm %{buildroot}%{privlib}/ExtUtils/Typemaps/OutputMap.pm +rm %{buildroot}%{privlib}/ExtUtils/Typemaps/Type.pm +rm -rf %{buildroot}%{privlib}/ExtUtils/Typemaps +rm %{buildroot}%{privlib}/ExtUtils/xsubpp +rm %{buildroot}%{privlib}/pod/perlxs.pod +rm %{buildroot}%{privlib}/pod/perlxstut.pod +rm %{buildroot}%{privlib}/pod/perlxstypemap.pod +rm %{buildroot}%{_bindir}/xsubpp +rm %{buildroot}%{_mandir}/man1/perlxs* +rm %{buildroot}%{_mandir}/man1/xsubpp* +rm %{buildroot}%{_mandir}/man3/ExtUtils::ParseXS.3* +rm %{buildroot}%{_mandir}/man3/ExtUtils::ParseXS::Constants.3* +rm %{buildroot}%{_mandir}/man3/ExtUtils::ParseXS::Eval.3* +rm %{buildroot}%{_mandir}/man3/ExtUtils::ParseXS::Utilities.3* +rm %{buildroot}%{_mandir}/man3/ExtUtils::Typemaps.3* +rm %{buildroot}%{_mandir}/man3/ExtUtils::Typemaps::Cmd.3* +rm %{buildroot}%{_mandir}/man3/ExtUtils::Typemaps::InputMap.3* +rm %{buildroot}%{_mandir}/man3/ExtUtils::Typemaps::OutputMap.3* +rm %{buildroot}%{_mandir}/man3/ExtUtils::Typemaps::Type.3* + +# File-Fetch +rm %{buildroot}%{privlib}/File/Fetch.pm +rm %{buildroot}%{_mandir}/man3/File::Fetch.3* + +# File-Path +rm %{buildroot}%{privlib}/File/Path.pm +rm %{buildroot}%{_mandir}/man3/File::Path.3* + +# File-Temp +rm %{buildroot}%{privlib}/File/Temp.pm +rm %{buildroot}%{_mandir}/man3/File::Temp.3* + +# Filter +rm -rf %{buildroot}%{archlib}/auto/Filter/Util +rm -rf %{buildroot}%{archlib}/auto/Filter +rm -rf %{buildroot}%{archlib}/Filter/Util +rm -rf %{buildroot}%{archlib}/Filter +rm %{buildroot}%{privlib}/pod/perlfilter.pod +rm %{buildroot}%{_mandir}/man1/perlfilter.* +rm %{buildroot}%{_mandir}/man3/Filter::Util::* + +# Filter-Simple +rm %{buildroot}%{privlib}/Filter/Simple.pm +rm -rf %{buildroot}%{privlib}/Filter +rm %{buildroot}%{_mandir}/man3/Filter::Simple.3* + +# Getopt-Long +rm %{buildroot}%{privlib}/Getopt/Long.pm +rm %{buildroot}%{_mandir}/man3/Getopt::Long.3* + +# IO-Compress +rm %{buildroot}%{_bindir}/streamzip +rm %{buildroot}%{_bindir}/zipdetails +rm %{buildroot}%{privlib}/IO/Compress/FAQ.pod +rm %{buildroot}%{_mandir}/man1/streamzip.* +rm %{buildroot}%{_mandir}/man1/zipdetails.* +rm %{buildroot}%{_mandir}/man3/IO::Compress::FAQ.* +# Compress-Zlib +rm %{buildroot}%{privlib}/Compress/Zlib.pm +rm -rf %{buildroot}%{privlib}/Compress +rm %{buildroot}%{_mandir}/man3/Compress::Zlib* +# IO-Compress-Base +rm %{buildroot}%{privlib}/File/GlobMapper.pm +rm %{buildroot}%{privlib}/IO/Compress/Base.pm +rm -rf %{buildroot}%{privlib}/IO/Compress/Base +rm %{buildroot}%{privlib}/IO/Uncompress/AnyUncompress.pm +rm %{buildroot}%{privlib}/IO/Uncompress/Base.pm +rm %{buildroot}%{_mandir}/man3/File::GlobMapper.* +rm %{buildroot}%{_mandir}/man3/IO::Compress::Base.* +rm %{buildroot}%{_mandir}/man3/IO::Uncompress::AnyUncompress.* +rm %{buildroot}%{_mandir}/man3/IO::Uncompress::Base.* +# IO-Compress-Zlib +rm %{buildroot}%{privlib}/IO/Compress/Bzip2.pm +rm %{buildroot}%{privlib}/IO/Compress/Deflate.pm +rm %{buildroot}%{privlib}/IO/Compress/Gzip.pm +rm %{buildroot}%{privlib}/IO/Compress/RawDeflate.pm +rm %{buildroot}%{privlib}/IO/Compress/Zip.pm +rm -rf %{buildroot}%{privlib}/IO/Compress/Adapter +rm -rf %{buildroot}%{privlib}/IO/Compress/Gzip +rm -rf %{buildroot}%{privlib}/IO/Compress/Zip +rm -rf %{buildroot}%{privlib}/IO/Compress/Zlib +rm -rf %{buildroot}%{privlib}/IO/Compress +rm %{buildroot}%{privlib}/IO/Uncompress/AnyInflate.pm +rm %{buildroot}%{privlib}/IO/Uncompress/Bunzip2.pm +rm %{buildroot}%{privlib}/IO/Uncompress/Gunzip.pm +rm %{buildroot}%{privlib}/IO/Uncompress/Inflate.pm +rm %{buildroot}%{privlib}/IO/Uncompress/RawInflate.pm +rm %{buildroot}%{privlib}/IO/Uncompress/Unzip.pm +rm -rf %{buildroot}%{privlib}/IO/Uncompress/Adapter +rm -rf %{buildroot}%{privlib}/IO/Uncompress +rm %{buildroot}%{_mandir}/man3/IO::Compress::Deflate* +rm %{buildroot}%{_mandir}/man3/IO::Compress::Bzip2* +rm %{buildroot}%{_mandir}/man3/IO::Compress::Gzip* +rm %{buildroot}%{_mandir}/man3/IO::Compress::RawDeflate* +rm %{buildroot}%{_mandir}/man3/IO::Compress::Zip* +rm %{buildroot}%{_mandir}/man3/IO::Uncompress::AnyInflate* +rm %{buildroot}%{_mandir}/man3/IO::Uncompress::Bunzip2* +rm %{buildroot}%{_mandir}/man3/IO::Uncompress::Gunzip* +rm %{buildroot}%{_mandir}/man3/IO::Uncompress::Inflate* +rm %{buildroot}%{_mandir}/man3/IO::Uncompress::RawInflate* +rm %{buildroot}%{_mandir}/man3/IO::Uncompress::Unzip* + +# IO-Socket-IP +rm %{buildroot}%{privlib}/IO/Socket/IP.pm +rm -rf %{buildroot}%{privlib}/IO/Socket +rm %{buildroot}%{_mandir}/man3/IO::Socket::IP.* + +# IO-Zlib +rm %{buildroot}%{privlib}/IO/Zlib.pm +rm -rf %{buildroot}%{privlib}/IO +rm %{buildroot}%{_mandir}/man3/IO::Zlib.* + +# HTTP-Tiny +rm %{buildroot}%{privlib}/HTTP/Tiny.pm +rm -rf %{buildroot}%{privlib}/HTTP +rm %{buildroot}%{_mandir}/man3/HTTP::Tiny* + +# IPC-Cmd +rm %{buildroot}%{privlib}/IPC/Cmd.pm +rm %{buildroot}%{_mandir}/man3/IPC::Cmd.3* + +# IPC-SysV +rm -rf %{buildroot}%{archlib}/auto/IPC +rm %{buildroot}%{archlib}/IPC/Msg.pm +rm %{buildroot}%{archlib}/IPC/Semaphore.pm +rm %{buildroot}%{archlib}/IPC/SharedMem.pm +rm %{buildroot}%{archlib}/IPC/SysV.pm +rm -rf %{buildroot}%{archlib}/IPC +rm %{buildroot}%{_mandir}/man3/IPC::Msg.* +rm %{buildroot}%{_mandir}/man3/IPC::Semaphore.* +rm %{buildroot}%{_mandir}/man3/IPC::SharedMem.* +rm %{buildroot}%{_mandir}/man3/IPC::SysV.* + +# JSON-PP +rm %{buildroot}%{_bindir}/json_pp +rm %{buildroot}%{privlib}/JSON/PP.pm +rm -rf %{buildroot}%{privlib}/JSON/PP +rm -rf %{buildroot}%{privlib}/JSON +rm %{buildroot}%{_mandir}/man1/json_pp.1* +rm %{buildroot}%{_mandir}/man3/JSON::PP.3* +rm %{buildroot}%{_mandir}/man3/JSON::PP::Boolean.3pm* + +# libnet +rm %{buildroot}%{privlib}/Net/Cmd.pm +rm %{buildroot}%{privlib}/Net/Config.pm +rm %{buildroot}%{privlib}/Net/Domain.pm +rm %{buildroot}%{privlib}/Net/FTP.pm +rm -rf %{buildroot}%{privlib}/Net/FTP +rm %{buildroot}%{privlib}/Net/libnetFAQ.pod +rm %{buildroot}%{privlib}/Net/NNTP.pm +rm %{buildroot}%{privlib}/Net/Netrc.pm +rm %{buildroot}%{privlib}/Net/POP3.pm +rm %{buildroot}%{privlib}/Net/SMTP.pm +rm %{buildroot}%{privlib}/Net/Time.pm +rm %{buildroot}%{_mandir}/man3/Net::Cmd.* +rm %{buildroot}%{_mandir}/man3/Net::Config.* +rm %{buildroot}%{_mandir}/man3/Net::Domain.* +rm %{buildroot}%{_mandir}/man3/Net::FTP.* +rm %{buildroot}%{_mandir}/man3/Net::libnetFAQ.* +rm %{buildroot}%{_mandir}/man3/Net::NNTP.* +rm %{buildroot}%{_mandir}/man3/Net::Netrc.* +rm %{buildroot}%{_mandir}/man3/Net::POP3.* +rm %{buildroot}%{_mandir}/man3/Net::SMTP.* +rm %{buildroot}%{_mandir}/man3/Net::Time.* + +# Locale-Maketext +rm %{buildroot}%{privlib}/Locale/Maketext.* +rm %{buildroot}%{privlib}/Locale/Maketext/Cookbook.* +rm %{buildroot}%{privlib}/Locale/Maketext/Guts.* +rm %{buildroot}%{privlib}/Locale/Maketext/GutsLoader.* +rm %{buildroot}%{privlib}/Locale/Maketext/TPJ13.* +rm %{buildroot}%{_mandir}/man3/Locale::Maketext.* +rm %{buildroot}%{_mandir}/man3/Locale::Maketext::Cookbook.* +rm %{buildroot}%{_mandir}/man3/Locale::Maketext::Guts.* +rm %{buildroot}%{_mandir}/man3/Locale::Maketext::GutsLoader.* +rm %{buildroot}%{_mandir}/man3/Locale::Maketext::TPJ13.* + +# Math-BigInt +rm %{buildroot}%{privlib}/Math/BigFloat.pm +rm %{buildroot}%{privlib}/Math/BigInt.pm +rm %{buildroot}%{privlib}/Math/BigInt/Calc.pm +rm %{buildroot}%{privlib}/Math/BigInt/Lib.pm +rm -rf %{buildroot}%{privlib}/Math/BigInt +rm %{buildroot}%{_mandir}/man3/Math::BigFloat.* +rm %{buildroot}%{_mandir}/man3/Math::BigInt.* +rm %{buildroot}%{_mandir}/man3/Math::BigInt::Calc.* +rm %{buildroot}%{_mandir}/man3/Math::BigInt::Lib.* + +# Math-BigInt-FastCalc +rm -rf %{buildroot}%{archlib}/Math +rm -rf %{buildroot}%{archlib}/auto/Math +rm %{buildroot}%{_mandir}/man3/Math::BigInt::FastCalc.* + +# Math-BigRat +rm %{buildroot}%{privlib}/Math/BigRat.pm +rm %{buildroot}%{_mandir}/man3/Math::BigRat.* + +# MIME-Base64 +rm -rf %{buildroot}%{archlib}/auto/MIME +rm -rf %{buildroot}%{archlib}/MIME +rm %{buildroot}%{_mandir}/man3/MIME::* + +# Module-CoreList +rm -rf %{buildroot}%{privlib}/Module/CoreList +rm %{buildroot}%{privlib}/Module/CoreList.pm +rm %{buildroot}%{privlib}/Module/CoreList.pod +rm %{buildroot}%{_mandir}/man3/Module::CoreList* + +# Module-CoreList-tools +rm %{buildroot}%{_bindir}/corelist +rm %{buildroot}%{_mandir}/man1/corelist* + +# Module-Load +rm %{buildroot}%{privlib}/Module/Load.pm +rm %{buildroot}%{_mandir}/man3/Module::Load.* + +# Module-Load-Conditional +rm -rf %{buildroot}%{privlib}/Module/Load +rm %{buildroot}%{_mandir}/man3/Module::Load::Conditional* + +# Module-Metadata +rm %{buildroot}%{privlib}/Module/Metadata.pm +rm %{buildroot}%{_mandir}/man3/Module::Metadata.3pm* + +# Net-Ping +rm %{buildroot}%{privlib}/Net/Ping.pm +rm %{buildroot}%{_mandir}/man3/Net::Ping.* + +# parent +rm %{buildroot}%{privlib}/parent.pm +rm %{buildroot}%{_mandir}/man3/parent.3* + +# Params-Check +rm -rf %{buildroot}%{privlib}/Params/ +rm %{buildroot}%{_mandir}/man3/Params::Check* + +# PathTools +rm %{buildroot}%{archlib}/Cwd.pm +rm -rf %{buildroot}%{archlib}/File/Spec* +rm -rf %{buildroot}%{archlib}/auto/Cwd/ +rm %{buildroot}%{_mandir}/man3/Cwd* +rm %{buildroot}%{_mandir}/man3/File::Spec* + +# Perl-OSType +rm %{buildroot}%{privlib}/Perl/OSType.pm +rm -rf %{buildroot}%{privlib}/Perl +rm %{buildroot}%{_mandir}/man3/Perl::OSType.3pm* + +# perlfaq +rm %{buildroot}%{privlib}/perlfaq.pm +rm %{buildroot}%{privlib}/pod/perlfaq* +rm %{buildroot}%{privlib}/pod/perlglossary.pod +rm %{buildroot}%{_mandir}/man1/perlfaq* +rm %{buildroot}%{_mandir}/man1/perlglossary.* + +# PerlIO-via-QuotedPrint +rm -rf %{buildroot}%{privlib}/PerlIO +rm %{buildroot}%{_mandir}/man3/PerlIO::via::QuotedPrint.* + +# Pod-Checker +rm %{buildroot}%{_bindir}/podchecker +rm %{buildroot}%{privlib}/Pod/Checker.pm +rm %{buildroot}%{_mandir}/man1/podchecker.* +rm %{buildroot}%{_mandir}/man3/Pod::Checker.* + +# Pod-Escapes +rm %{buildroot}%{privlib}/Pod/Escapes.pm +rm %{buildroot}%{_mandir}/man3/Pod::Escapes.* + +# Pod-Perldoc +rm %{buildroot}%{_bindir}/perldoc +rm %{buildroot}%{privlib}/pod/perldoc.pod +rm %{buildroot}%{privlib}/Pod/Perldoc.pm +rm -rf %{buildroot}%{privlib}/Pod/Perldoc/ +rm %{buildroot}%{_mandir}/man1/perldoc.1* +rm %{buildroot}%{_mandir}/man3/Pod::Perldoc* + +# Pod-Usage +rm %{buildroot}%{_bindir}/pod2usage +rm %{buildroot}%{privlib}/Pod/Usage.pm +rm %{buildroot}%{_mandir}/man1/pod2usage.* +rm %{buildroot}%{_mandir}/man3/Pod::Usage.* + +# podlators +rm %{buildroot}%{_bindir}/pod2man +rm %{buildroot}%{_bindir}/pod2text +rm %{buildroot}%{privlib}/pod/perlpodstyle.pod +rm %{buildroot}%{privlib}/Pod/Man.pm +rm %{buildroot}%{privlib}/Pod/ParseLink.pm +rm %{buildroot}%{privlib}/Pod/Text.pm +rm -rf %{buildroot}%{privlib}/Pod/Text +rm %{buildroot}%{_mandir}/man1/pod2man.1* +rm %{buildroot}%{_mandir}/man1/pod2text.1* +rm %{buildroot}%{_mandir}/man1/perlpodstyle.1* +rm %{buildroot}%{_mandir}/man3/Pod::Man* +rm %{buildroot}%{_mandir}/man3/Pod::ParseLink* +rm %{buildroot}%{_mandir}/man3/Pod::Text* + +# Pod-Simple +rm %{buildroot}%{privlib}/Pod/Simple.pm +rm %{buildroot}%{privlib}/Pod/Simple.pod +rm -rf %{buildroot}%{privlib}/Pod/Simple/ +rm %{buildroot}%{_mandir}/man3/Pod::Simple* + +# Scalar-List-Utils +rm -rf %{buildroot}%{archlib}/List/ +rm -rf %{buildroot}%{archlib}/Scalar/ +rm -rf %{buildroot}%{archlib}/Sub/ +rm -rf %{buildroot}%{archlib}/auto/List/ +rm %{buildroot}%{_mandir}/man3/List::Util* +rm %{buildroot}%{_mandir}/man3/Scalar::Util* +rm %{buildroot}%{_mandir}/man3/Sub::Util* + +# Socket +rm %{buildroot}%{archlib}/auto/Socket/Socket.* +rm -rf %{buildroot}%{archlib}/auto/Socket +rm %{buildroot}%{archlib}/Socket.pm +rm %{buildroot}%{_mandir}/man3/Socket.3* + +# Storable +rm %{buildroot}%{archlib}/Storable.pm +rm -rf %{buildroot}%{archlib}/auto/Storable/ +rm %{buildroot}%{_mandir}/man3/Storable.* + +# Sys-Syslog +# %%dir %%{archlib}/Sys not excluded. It would be removed from the previous package. +rm %{buildroot}%{archlib}/Sys/Syslog.pm +# %%dir %%{archlib}/auto/Sys not excluded. It would be removed from the previous package. +rm -rf %{buildroot}%{archlib}/auto/Sys/Syslog/ +rm %{buildroot}%{_mandir}/man3/Sys::Syslog.* + +# Term-ANSIColor +rm %{buildroot}%{privlib}/Term/ANSIColor.pm +rm %{buildroot}%{_mandir}/man3/Term::ANSIColor* + +# Term-Cap +rm %{buildroot}%{privlib}/Term/Cap.pm +rm %{buildroot}%{_mandir}/man3/Term::Cap.* + +# Test-Harness +rm %{buildroot}%{_bindir}/prove +rm -rf %{buildroot}%{privlib}/App/Prove* +rm -rf %{buildroot}%{privlib}/App +rm -rf %{buildroot}%{privlib}/TAP* +rm %{buildroot}%{privlib}/Test/Harness* +rm %{buildroot}%{_mandir}/man1/prove.1* +rm %{buildroot}%{_mandir}/man3/App::Prove* +rm %{buildroot}%{_mandir}/man3/TAP* +rm %{buildroot}%{_mandir}/man3/Test::Harness* + +# Test-Simple +rm %{buildroot}%{privlib}/ok* +rm %{buildroot}%{privlib}/Test/More* +rm -rf %{buildroot}%{privlib}/Test/Builder* +rm -rf %{buildroot}%{privlib}/Test/Tester* +rm %{buildroot}%{privlib}/Test/Simple* +rm %{buildroot}%{privlib}/Test/Tutorial* +rm -rf %{buildroot}%{privlib}/Test/use +rm -rf %{buildroot}%{privlib}/Test +rm -rf %{buildroot}%{privlib}/Test2* +rm %{buildroot}%{_mandir}/man3/ok* +rm %{buildroot}%{_mandir}/man3/Test::More* +rm %{buildroot}%{_mandir}/man3/Test::Builder* +rm %{buildroot}%{_mandir}/man3/Test::Tester* +rm %{buildroot}%{_mandir}/man3/Test::Simple* +rm %{buildroot}%{_mandir}/man3/Test::Tutorial* +rm %{buildroot}%{_mandir}/man3/Test::use::* +rm %{buildroot}%{_mandir}/man3/Test2* + +# Text-Balanced +rm %{buildroot}%{privlib}/Text/Balanced.pm +rm %{buildroot}%{_mandir}/man3/Text::Balanced.* + +# Text-ParseWords +rm %{buildroot}%{privlib}/Text/ParseWords.pm +rm %{buildroot}%{_mandir}/man3/Text::ParseWords.* + +# Text-Tabs+Wrap +rm %{buildroot}%{privlib}/Text/Tabs.pm +rm %{buildroot}%{privlib}/Text/Wrap.pm +rm %{buildroot}%{_mandir}/man3/Text::Tabs.* +rm %{buildroot}%{_mandir}/man3/Text::Wrap.* + +# Thread-Queue +rm %{buildroot}%{privlib}/Thread/Queue.pm +rm %{buildroot}%{_mandir}/man3/Thread::Queue.* + +# Tie-RefHash +rm %{buildroot}%{privlib}/Tie/RefHash.pm +rm %{buildroot}%{_mandir}/man3/Tie::RefHash.* + +# Time-HiRes +rm %{buildroot}%{archlib}/Time/HiRes.pm +rm -rf %{buildroot}%{archlib}/auto/Time/HiRes +rm %{buildroot}%{_mandir}/man3/Time::HiRes.* + +# Time-Local +rm %{buildroot}%{privlib}/Time/Local.pm +rm %{buildroot}%{_mandir}/man3/Time::Local.* + +# threads +rm %{buildroot}%{archlib}/auto/threads/threads* +rm %{buildroot}%{archlib}/threads.pm +rm %{buildroot}%{_mandir}/man3/threads.3* + +# threads-shared +rm -rf %{buildroot}%{archlib}/auto/threads/shared* +rm -rf %{buildroot}%{archlib}/auto/threads +rm %{buildroot}%{archlib}/threads/shared* +rm -rf %{buildroot}%{archlib}/threads +rm %{buildroot}%{_mandir}/man3/threads::shared* + +# Unicode-Collate +rm -rf %{buildroot}%{archlib}/auto/Unicode/Collate +rm -rf %{buildroot}%{archlib}/auto/Unicode +rm %{buildroot}%{archlib}/Unicode/Collate.pm +rm -rf %{buildroot}%{archlib}/Unicode/Collate +rm -rf %{buildroot}%{privlib}/Unicode/Collate +rm %{buildroot}%{_mandir}/man3/Unicode::Collate.* +rm %{buildroot}%{_mandir}/man3/Unicode::Collate::* + +# Unicode-Normalize +rm -rf %{buildroot}%{archlib}/auto/Unicode/Normalize +rm %{buildroot}%{archlib}/Unicode/Normalize.pm +rm -rf %{buildroot}%{archlib}/Unicode +rm %{buildroot}%{_mandir}/man3/Unicode::Normalize.* + +# version +rm %{buildroot}%{privlib}/version.pm +rm %{buildroot}%{privlib}/version.pod +rm -rf %{buildroot}%{privlib}/version/ +rm %{buildroot}%{_mandir}/man3/version.3* +rm %{buildroot}%{_mandir}/man3/version::Internals.3* +%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 +# Main perl package is an empty meta package. + +%files interpreter +%{_bindir}/perl +%{_bindir}/perl%{perl_version} +%{_mandir}/man1/perl.1* +%{_mandir}/man1/perlrun.1* +%dir %{privlib}/pod +%{privlib}/pod/perl.pod +%{privlib}/pod/perlrun.pod + +%files libs +%license Artistic Copying +%doc AUTHORS README Changes +%dir %{archlib} +%{archlib}/attributes.pm +%dir %{archlib}/auto +%dir %{archlib}/auto/attributes +%{archlib}/auto/attributes/attributes.so +%dir %{archlib}/auto/File +%dir %{archlib}/auto/File/Glob +%{archlib}/auto/File/Glob/Glob.so +%{archlib}/auto/PerlIO +%{archlib}/auto/re +%{archlib}/auto/SDBM_File +%{archlib}/Config.* +%{archlib}/Config_git.pl +%{archlib}/Config_heavy.pl +%dir %{archlib}/CORE +%{archlib}/CORE/libperl.so +%dir %{archlib}/File +%{archlib}/File/Glob.pm +%{archlib}/PerlIO +%{archlib}/re.pm +%{archlib}/SDBM_File.pm +%{_libdir}/libperl.so.* +%dir %{perl_vendorarch} +%dir %{perl_vendorarch}/auto +%dir %{privlib} +%{privlib}/AnyDBM_File.pm +%{privlib}/bytes.pm +%{privlib}/bytes_heavy.pl +%{privlib}/_charnames.pm +%{privlib}/charnames.pm +%{privlib}/CORE.pod +%{privlib}/feature.pm +%{privlib}/integer.pm +%{privlib}/Internals.pod +%{privlib}/PerlIO.pm +%{privlib}/strict.pm +%{privlib}/unicore +%{privlib}/UNIVERSAL.pm +%{privlib}/utf8.pm +%{privlib}/warnings +%{privlib}/warnings.pm +%dir %{privlib}/Tie +%{privlib}/Tie/Hash.pm +%dir %{privlib}/Tie/Hash +%{privlib}/Tie/Hash/NamedCapture.pm +%{privlib}/XSLoader.pm +%dir %{perl_vendorlib} +%{_mandir}/man3/AnyDBM_File.* +%{_mandir}/man3/attributes.* +%{_mandir}/man3/bytes.* +%{_mandir}/man3/charnames.* +%{_mandir}/man3/Config.* +%{_mandir}/man3/CORE.* +%{_mandir}/man3/feature.3* +%{_mandir}/man3/File::Glob.* +%{_mandir}/man3/integer.* +%{_mandir}/man3/Internals.* +%{_mandir}/man3/PerlIO.* +%{_mandir}/man3/PerlIO::encoding.* +%{_mandir}/man3/PerlIO::mmap.* +%{_mandir}/man3/PerlIO::scalar.* +%{_mandir}/man3/PerlIO::via.* +%{_mandir}/man3/re.* +%{_mandir}/man3/SDBM_File.3* +%{_mandir}/man3/strict.* +%{_mandir}/man3/Tie::Hash.* +%{_mandir}/man3/Tie::Hash::* +%{_mandir}/man3/utf8.* +%{_mandir}/man3/warnings.* +%{_mandir}/man3/warnings::* +%{_mandir}/man3/UNIVERSAL.* +%{_mandir}/man3/XSLoader.* + +%files devel +%{_bindir}/h2xs +%{_mandir}/man1/h2xs* +%{_bindir}/perlivp +%{_mandir}/man1/perlivp* +%{archlib}/CORE/*.h +%dir %{privlib}/ExtUtils +%{privlib}/ExtUtils/typemap +%{_libdir}/libperl.so +%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 +%dir %{privlib}/pod +%{privlib}/pod/perlutil.pod +%{_mandir}/man1/h2ph.* +%{_mandir}/man1/perlbug.* +%{_mandir}/man1/perlthanks.* +%{_mandir}/man1/perlutil.* +%{_mandir}/man1/pl2pm.* + +%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 + +%files AutoLoader +%{privlib}/AutoLoader.pm +%{_mandir}/man3/AutoLoader.3* + +%files AutoSplit +%{privlib}/AutoSplit.pm +%{_mandir}/man3/AutoSplit.3* + +%files autouse +%{privlib}/autouse.pm +%{_mandir}/man3/autouse.3* + +%files B +%{archlib}/auto/B +%{archlib}/B +%{archlib}/B.pm +%{archlib}/O.pm +%{privlib}/B +%{_mandir}/man3/B.* +%{_mandir}/man3/B::* +%{_mandir}/man3/O.* + +%files base +%{privlib}/base.pm +%{_mandir}/man3/base.3* + +%files Benchmark +%{privlib}/Benchmark.pm +%{_mandir}/man3/Benchmark.* + +%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.* +%endif + +%files blib +%{privlib}/blib.pm +%{_mandir}/man3/blib.* + +%if %{dual_life} || %{rebuild_from_scratch} +%files Carp +%{privlib}/Carp +%{privlib}/Carp.* +%{_mandir}/man3/Carp.* +%endif + +%files Class-Struct +%{privlib}/Class +%{_mandir}/man3/Class::Struct.* + +%if %{dual_life} || %{rebuild_from_scratch} +%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* +%endif + +%if %{dual_life} || %{rebuild_from_scratch} +%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 + +%files Config-Extensions +%dir %{privlib}/Config +%{privlib}/Config/Extensions.pm +%{_mandir}/man3/Config::Extensions.* + +%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 DBM_Filter +%{privlib}/DBM_Filter +%{privlib}/DBM_Filter.pm +%{_mandir}/man3/DBM_Filter.* +%{_mandir}/man3/DBM_Filter::* + +%files debugger +%{privlib}/DB.pm +%{privlib}/dumpvar.pl +%{privlib}/perl5db.pl +%dir %{privlib}/pod +%{privlib}/pod/perldebug.pod +%{_mandir}/man1/perldebug.* +%{_mandir}/man3/DB.* + +%files deprecate +%{privlib}/deprecate.pm +%{_mandir}/man3/deprecate.* + +%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.* + +%files diagnostics +%{_bindir}/splain +%{privlib}/diagnostics.pm +%dir %{privlib}/pod +%{privlib}/pod/perldiag.pod +%{_mandir}/man1/perldiag.* +%{_mandir}/man1/splain.* +%{_mandir}/man3/diagnostics.* + +%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 + +%files DirHandle +%{privlib}/DirHandle.pm +%{_mandir}/man3/DirHandle.3* + +%files doc +%dir %{privlib}/pod +%{privlib}/pod/perl5*delta.pod +%{privlib}/pod/perlaix.pod +%{privlib}/pod/perlamiga.pod +%{privlib}/pod/perlandroid.pod +%{privlib}/pod/perlapi.pod +%{privlib}/pod/perlapio.pod +%{privlib}/pod/perlartistic.pod +%{privlib}/pod/perlbook.pod +%{privlib}/pod/perlboot.pod +%{privlib}/pod/perlbot.pod +%{privlib}/pod/perlbs2000.pod +%{privlib}/pod/perlcall.pod +%{privlib}/pod/perlcheat.pod +%{privlib}/pod/perlclib.pod +%{privlib}/pod/perlcn.pod +%{privlib}/pod/perlcommunity.pod +%{privlib}/pod/perlcygwin.pod +%{privlib}/pod/perldata.pod +%{privlib}/pod/perldbmfilter.pod +%{privlib}/pod/perldebguts.pod +%{privlib}/pod/perldebtut.pod +%{privlib}/pod/perldelta.pod +%{privlib}/pod/perldeprecation.pod +%{privlib}/pod/perldos.pod +%{privlib}/pod/perldsc.pod +%{privlib}/pod/perldtrace.pod +%{privlib}/pod/perlebcdic.pod +%{privlib}/pod/perlembed.pod +%{privlib}/pod/perlexperiment.pod +%{privlib}/pod/perlfork.pod +%{privlib}/pod/perlform.pod +%{privlib}/pod/perlfreebsd.pod +%{privlib}/pod/perlfunc.pod +%{privlib}/pod/perlgit.pod +%{privlib}/pod/perlgov.pod +%{privlib}/pod/perlgpl.pod +%{privlib}/pod/perlguts.pod +%{privlib}/pod/perlhack.pod +%{privlib}/pod/perlhacktips.pod +%{privlib}/pod/perlhacktut.pod +%{privlib}/pod/perlhaiku.pod +%{privlib}/pod/perlhist.pod +%{privlib}/pod/perlhpux.pod +%{privlib}/pod/perlhurd.pod +%{privlib}/pod/perlintern.pod +%{privlib}/pod/perlinterp.pod +%{privlib}/pod/perlintro.pod +%{privlib}/pod/perliol.pod +%{privlib}/pod/perlipc.pod +%{privlib}/pod/perlirix.pod +%{privlib}/pod/perljp.pod +%{privlib}/pod/perlko.pod +%{privlib}/pod/perllexwarn.pod +%{privlib}/pod/perllinux.pod +%{privlib}/pod/perllocale.pod +%{privlib}/pod/perllol.pod +%{privlib}/pod/perlmacos.pod +%{privlib}/pod/perlmacosx.pod +%{privlib}/pod/perlmod.pod +%{privlib}/pod/perlmodinstall.pod +%{privlib}/pod/perlmodlib.pod +%{privlib}/pod/perlmodstyle.pod +%{privlib}/pod/perlmroapi.pod +%{privlib}/pod/perlnetware.pod +%{privlib}/pod/perlnewmod.pod +%{privlib}/pod/perlnumber.pod +%{privlib}/pod/perlobj.pod +%{privlib}/pod/perlootut.pod +%{privlib}/pod/perlop.pod +%{privlib}/pod/perlopenbsd.pod +%{privlib}/pod/perlopentut.pod +%{privlib}/pod/perlos2.pod +%{privlib}/pod/perlos390.pod +%{privlib}/pod/perlos400.pod +%{privlib}/pod/perlpacktut.pod +%{privlib}/pod/perlperf.pod +%{privlib}/pod/perlplan9.pod +%{privlib}/pod/perlpod.pod +%{privlib}/pod/perlpodspec.pod +%{privlib}/pod/perlpolicy.pod +%{privlib}/pod/perlport.pod +%{privlib}/pod/perlpragma.pod +%{privlib}/pod/perlqnx.pod +%{privlib}/pod/perlre.pod +%{privlib}/pod/perlreapi.pod +%{privlib}/pod/perlrebackslash.pod +%{privlib}/pod/perlrecharclass.pod +%{privlib}/pod/perlref.pod +%{privlib}/pod/perlreftut.pod +%{privlib}/pod/perlreguts.pod +%{privlib}/pod/perlrepository.pod +%{privlib}/pod/perlrequick.pod +%{privlib}/pod/perlreref.pod +%{privlib}/pod/perlretut.pod +%{privlib}/pod/perlriscos.pod +%{privlib}/pod/perlsec.pod +%{privlib}/pod/perlsecpolicy.pod +%{privlib}/pod/perlsolaris.pod +%{privlib}/pod/perlsource.pod +%{privlib}/pod/perlstyle.pod +%{privlib}/pod/perlsub.pod +%{privlib}/pod/perlsymbian.pod +%{privlib}/pod/perlsyn.pod +%{privlib}/pod/perlsynology.pod +%{privlib}/pod/perlthrtut.pod +%{privlib}/pod/perltie.pod +%{privlib}/pod/perltoc.pod +%{privlib}/pod/perltodo.pod +%{privlib}/pod/perltooc.pod +%{privlib}/pod/perltoot.pod +%{privlib}/pod/perltrap.pod +%{privlib}/pod/perltru64.pod +%{privlib}/pod/perltw.pod +%{privlib}/pod/perlunicode.pod +%{privlib}/pod/perlunicook.pod +%{privlib}/pod/perlunifaq.pod +%{privlib}/pod/perluniintro.pod +%{privlib}/pod/perluniprops.pod +%{privlib}/pod/perlunitut.pod +%{privlib}/pod/perlvar.pod +%{privlib}/pod/perlvms.pod +%{privlib}/pod/perlvos.pod +%{privlib}/pod/perlwin32.pod +%{_mandir}/man1/perl5*delta.* +%{_mandir}/man1/perlaix.* +%{_mandir}/man1/perlamiga.* +%{_mandir}/man1/perlandroid.* +%{_mandir}/man1/perlapi.* +%{_mandir}/man1/perlapio.* +%{_mandir}/man1/perlartistic.* +%{_mandir}/man1/perlbook.* +%{_mandir}/man1/perlboot.* +%{_mandir}/man1/perlbot.* +%{_mandir}/man1/perlbs2000.* +%{_mandir}/man1/perlcall.* +%{_mandir}/man1/perlcheat.* +%{_mandir}/man1/perlclib.* +%{_mandir}/man1/perlcn.* +%{_mandir}/man1/perlcommunity.* +%{_mandir}/man1/perlcygwin.* +%{_mandir}/man1/perldata.* +%{_mandir}/man1/perldbmfilter.* +%{_mandir}/man1/perldebguts.* +%{_mandir}/man1/perldebtut.* +%{_mandir}/man1/perldelta.* +%{_mandir}/man1/perldeprecation.* +%{_mandir}/man1/perldos.* +%{_mandir}/man1/perldsc.* +%{_mandir}/man1/perldtrace.* +%{_mandir}/man1/perlebcdic.* +%{_mandir}/man1/perlembed.* +%{_mandir}/man1/perlexperiment.* +%{_mandir}/man1/perlfork.* +%{_mandir}/man1/perlform.* +%{_mandir}/man1/perlfreebsd.* +%{_mandir}/man1/perlfunc.* +%{_mandir}/man1/perlgit.* +%{_mandir}/man1/perlgov.* +%{_mandir}/man1/perlgpl.* +%{_mandir}/man1/perlguts.* +%{_mandir}/man1/perlhack.* +%{_mandir}/man1/perlhacktips.* +%{_mandir}/man1/perlhacktut.* +%{_mandir}/man1/perlhaiku.* +%{_mandir}/man1/perlhist.* +%{_mandir}/man1/perlhpux.* +%{_mandir}/man1/perlhurd.* +%{_mandir}/man1/perlintern.* +%{_mandir}/man1/perlinterp.* +%{_mandir}/man1/perlintro.* +%{_mandir}/man1/perliol.* +%{_mandir}/man1/perlipc.* +%{_mandir}/man1/perlirix.* +%{_mandir}/man1/perljp.* +%{_mandir}/man1/perlko.* +%{_mandir}/man1/perllexwarn.* +%{_mandir}/man1/perllinux.* +%{_mandir}/man1/perllocale.* +%{_mandir}/man1/perllol.* +%{_mandir}/man1/perlmacos.* +%{_mandir}/man1/perlmacosx.* +%{_mandir}/man1/perlmod.* +%{_mandir}/man1/perlmodinstall.* +%{_mandir}/man1/perlmodlib.* +%{_mandir}/man1/perlmodstyle.* +%{_mandir}/man1/perlmroapi.* +%{_mandir}/man1/perlnetware.* +%{_mandir}/man1/perlnewmod.* +%{_mandir}/man1/perlnumber.* +%{_mandir}/man1/perlobj.* +%{_mandir}/man1/perlootut.* +%{_mandir}/man1/perlop.* +%{_mandir}/man1/perlopenbsd.* +%{_mandir}/man1/perlopentut.* +%{_mandir}/man1/perlos2.* +%{_mandir}/man1/perlos390.* +%{_mandir}/man1/perlos400.* +%{_mandir}/man1/perlpacktut.* +%{_mandir}/man1/perlperf.* +%{_mandir}/man1/perlplan9.* +%{_mandir}/man1/perlpod.* +%{_mandir}/man1/perlpodspec.* +%{_mandir}/man1/perlpolicy.* +%{_mandir}/man1/perlport.* +%{_mandir}/man1/perlpragma.* +%{_mandir}/man1/perlqnx.* +%{_mandir}/man1/perlre.* +%{_mandir}/man1/perlreapi.* +%{_mandir}/man1/perlrebackslash.* +%{_mandir}/man1/perlrecharclass.* +%{_mandir}/man1/perlref.* +%{_mandir}/man1/perlreftut.* +%{_mandir}/man1/perlreguts.* +%{_mandir}/man1/perlrepository.* +%{_mandir}/man1/perlrequick.* +%{_mandir}/man1/perlreref.* +%{_mandir}/man1/perlretut.* +%{_mandir}/man1/perlriscos.* +%{_mandir}/man1/perlsec.* +%{_mandir}/man1/perlsecpolicy.* +%{_mandir}/man1/perlsolaris.* +%{_mandir}/man1/perlsource.* +%{_mandir}/man1/perlstyle.* +%{_mandir}/man1/perlsub.* +%{_mandir}/man1/perlsymbian.* +%{_mandir}/man1/perlsyn.* +%{_mandir}/man1/perlsynology.* +%{_mandir}/man1/perlthrtut.* +%{_mandir}/man1/perltie.* +%{_mandir}/man1/perltoc.* +%{_mandir}/man1/perltodo.* +%{_mandir}/man1/perltooc.* +%{_mandir}/man1/perltoot.* +%{_mandir}/man1/perltrap.* +%{_mandir}/man1/perltru64.* +%{_mandir}/man1/perltw.* +%{_mandir}/man1/perlunicode.* +%{_mandir}/man1/perlunicook.* +%{_mandir}/man1/perlunifaq.* +%{_mandir}/man1/perluniintro.* +%{_mandir}/man1/perluniprops.* +%{_mandir}/man1/perlunitut.* +%{_mandir}/man1/perlvar.* +%{_mandir}/man1/perlvms.* +%{_mandir}/man1/perlvos.* +%{_mandir}/man1/perlwin32.* + +%files Dumpvalue +%{privlib}/Dumpvalue.pm +%{_mandir}/man3/Dumpvalue.3* + +%files DynaLoader +%{archlib}/DynaLoader.pm +%{_mandir}/man3/DynaLoader.3* + +%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* +%endif + +%if %{dual_life} || %{rebuild_from_scratch} +%files encoding +%{archlib}/encoding.pm +%{_mandir}/man3/encoding.3* +%endif + +%if %{dual_life} || %{rebuild_from_scratch} +%files Encode-devel +%{_bindir}/enc2xs +%dir %{privlib}/Encode +%{privlib}/Encode/*.e2x +%{privlib}/Encode/encode.h +%{_mandir}/man1/enc2xs.1* +%endif + +%files encoding-warnings +%dir %{privlib}/encoding +%{privlib}/encoding/warnings.pm +%{_mandir}/man3/encoding::warnings.3* + +%files English +%{privlib}/English.pm +%{_mandir}/man3/English.3* + +%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 + +%files ExtUtils-Constant +%dir %{privlib}/ExtUtils +%{privlib}/ExtUtils/Constant +%{privlib}/ExtUtils/Constant.pm +%{_mandir}/man3/ExtUtils::Constant::* +%{_mandir}/man3/ExtUtils::Constant.3* + +%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 +%dir %{privlib}/pod +%{privlib}/pod/perlxs.pod +%{privlib}/pod/perlxstut.pod +%{privlib}/pod/perlxstypemap.pod +%{_bindir}/xsubpp +%{_mandir}/man1/perlxs* +%{_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 + +%files Fcntl +%{archlib}/Fcntl.pm +%{archlib}/auto/Fcntl +%{_mandir}/man3/Fcntl.3* + +%files fields +%{privlib}/fields.pm +%{_mandir}/man3/fields.3* + +%files File-Basename +%dir %{privlib}/File +%{privlib}/File/Basename.pm +%{_mandir}/man3/File::Basename.3* + +%files File-Compare +%dir %{privlib}/File +%{privlib}/File/Compare.pm +%{_mandir}/man3/File::Compare.3* + +%files File-Copy +%dir %{privlib}/File +%{privlib}/File/Copy.pm +%{_mandir}/man3/File::Copy.3* + +%files File-DosGlob +%dir %{archlib}/File +%{archlib}/File/DosGlob.pm +%dir %{archlib}/auto/File +%{archlib}/auto/File/DosGlob +%{_mandir}/man3/File::DosGlob.3* + +%if %{dual_life} || %{rebuild_from_scratch} +%files File-Fetch +%dir %{privlib}/File +%{privlib}/File/Fetch.pm +%{_mandir}/man3/File::Fetch.3* +%endif + +%files File-Find +%dir %{privlib}/File +%{privlib}/File/Find.pm +%{_mandir}/man3/File::Find.3* + +%if %{dual_life} || %{rebuild_from_scratch} +%files File-Path +%dir %{privlib}/File +%{privlib}/File/Path.pm +%{_mandir}/man3/File::Path.3* +%endif + +%files File-stat +%dir %{privlib}/File +%{privlib}/File/stat.pm +%{_mandir}/man3/File::stat.3* + +%if %{dual_life} || %{rebuild_from_scratch} +%files File-Temp +%dir %{privlib}/File +%{privlib}/File/Temp.pm +%{_mandir}/man3/File::Temp.3* +%endif + +%files FileCache +%{privlib}/FileCache.pm +%{_mandir}/man3/FileCache.3* + +%files FileHandle +%{privlib}/FileHandle.pm +%{_mandir}/man3/FileHandle.3* + +%files filetest +%{privlib}/filetest.pm +%{_mandir}/man3/filetest.3* + +%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 + +%files FindBin +%{privlib}/FindBin.pm +%{_mandir}/man3/FindBin.* + +%if %{with gdbm} +%files GDBM_File +%{archlib}/GDBM_File.pm +%{archlib}/auto/GDBM_File +%{_mandir}/man3/GDBM_File.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 Getopt-Std +%dir %{privlib}/Getopt +%{privlib}/Getopt/Std.pm +%{_mandir}/man3/Getopt::Std.3* + +%files Hash-Util +%dir %{archlib}/Hash +%{archlib}/Hash/Util.pm +%dir %{archlib}/auto/Hash +%dir %{archlib}/auto/Hash/Util +%{archlib}/auto/Hash/Util/Util.so +%{_mandir}/man3/Hash::Util.3* + +%files Hash-Util-FieldHash +%dir %{archlib}/auto/Hash +%dir %{archlib}/auto/Hash/Util +%{archlib}/auto/Hash/Util/FieldHash +%dir %{archlib}/Hash +%dir %{archlib}/Hash/Util +%{archlib}/Hash/Util/FieldHash.pm +%{_mandir}/man3/Hash::Util::FieldHash.3* + +%files if +%{privlib}/if.pm +%{_mandir}/man3/if.3* + +%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}/streamzip +%{_bindir}/zipdetails +%dir %{privlib}/IO +%dir %{privlib}/IO/Compress +%{privlib}/IO/Compress/FAQ.pod +%{_mandir}/man1/streamzip.* +%{_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 +%{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 +%{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 +%{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 + +%if %{dual_life} || %{rebuild_from_scratch} +%files IO-Zlib +%dir %{privlib}/IO +%{privlib}/IO/Zlib.pm +%{_mandir}/man3/IO::Zlib.* +%endif + +%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 + +%files IPC-Open3 +%dir %{privlib}/IPC +%{privlib}/IPC/Open2.pm +%{privlib}/IPC/Open3.pm +%{_mandir}/man3/IPC::Open2.3* +%{_mandir}/man3/IPC::Open3.3* + +%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 + +%files I18N-Collate +%dir %{privlib}/I18N +%{privlib}/I18N/Collate.pm +%{_mandir}/man3/I18N::Collate.* + +%files I18N-Langinfo +%{archlib}/auto/I18N +%{archlib}/I18N +%{_mandir}/man3/I18N::Langinfo.* + +%files I18N-LangTags +%dir %{privlib}/I18N +%{privlib}/I18N/LangTags +%{privlib}/I18N/LangTags.pm +%{_mandir}/man3/I18N::LangTags.* +%{_mandir}/man3/I18N::LangTags::* + +%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 + +%files less +%{privlib}/less.pm +%{_mandir}/man3/less.* + +%files lib +%{archlib}/lib.pm +%{_mandir}/man3/lib.* + +%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* + +%files locale +%{privlib}/locale.pm +%{_mandir}/man3/locale.* + +%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.* +%endif + +%if %{dual_life} || %{rebuild_from_scratch} +%files Math-BigInt-FastCalc +%{archlib}/Math +%{archlib}/auto/Math +%{_mandir}/man3/Math::BigInt::FastCalc.* +%endif + +%if %{dual_life} || %{rebuild_from_scratch} +%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.* + +%files meta-notation +%{privlib}/meta_notation.pm + +%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* +%endif + +%if %{dual_life} || %{rebuild_from_scratch} +%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 mro +%{archlib}/auto/mro +%{archlib}/mro.pm +%{_mandir}/man3/mro.3* + +%if %{with gdbm} +%files NDBM_File +%{archlib}/NDBM_File.pm +%{archlib}/auto/NDBM_File +%{_mandir}/man3/NDBM_File.3* +%endif + +%files Net +%dir %{privlib}/Net +%{privlib}/Net/hostent.pm +%{privlib}/Net/netent.pm +%{privlib}/Net/protoent.pm +%{privlib}/Net/servent.pm +%{_mandir}/man3/Net::hostent.3* +%{_mandir}/man3/Net::netent.3* +%{_mandir}/man3/Net::protoent.3* +%{_mandir}/man3/Net::servent.3* + +%if %{dual_life} || %{rebuild_from_scratch} +%files Net-Ping +%dir %{privlib}/Net +%{privlib}/Net/Ping.pm +%{_mandir}/man3/Net::Ping.* +%endif + +%files NEXT +%{privlib}/NEXT.pm +%{_mandir}/man3/NEXT.* + +%if %{with gdbm} +%files ODBM_File +%{archlib}/ODBM_File.pm +%{archlib}/auto/ODBM_File +%{_mandir}/man3/ODBM_File.3* +%endif + +%files open +%{privlib}/open.pm +%{_mandir}/man3/open.3* + +%files Opcode +%{archlib}/auto/Opcode +%{archlib}/Opcode.pm +%{archlib}/ops.pm +%{_mandir}/man3/Opcode.3* +%{_mandir}/man3/ops.3* + +%files overload +%{privlib}/overload.pm +%{_mandir}/man3/overload.3* + +%files overloading +%dir %{privlib}/overload +%{privlib}/overload/numbers.pm +%{privlib}/overloading.pm +%{_mandir}/man3/overloading.3* + +%if %{dual_life} || %{rebuild_from_scratch} +%files parent +%{privlib}/parent.pm +%{_mandir}/man3/parent.3* +%endif + +%if %{dual_life} || %{rebuild_from_scratch} +%files Params-Check +%{privlib}/Params/ +%{_mandir}/man3/Params::Check* +%endif + +%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 Perl-OSType +%dir %{privlib}/Perl +%{privlib}/Perl/OSType.pm +%{_mandir}/man3/Perl::OSType.3pm* +%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 + +%files ph +%{archlib}/asm +%{archlib}/asm-generic +%{archlib}/bits +%{archlib}/features*.ph +%{archlib}/gnu +%{archlib}/_h2ph_pre.ph +%ifnarch ppc64le +%{archlib}/linux +%endif +%{archlib}/stdc-predef.ph +%{archlib}/sys +%{archlib}/syscall.ph + +%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-Functions +%dir %{privlib}/Pod +%{privlib}/Pod/Functions.pm + +%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-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 + +%files POSIX +%{archlib}/auto/POSIX +%{archlib}/POSIX.* +%{_mandir}/man3/POSIX.* + +%files Safe +%{privlib}/Safe.pm +%{_mandir}/man3/Safe.* + +%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 Search-Dict +%{privlib}/Search +%{_mandir}/man3/Search::* + +%files SelectSaver +%{privlib}/SelectSaver.pm +%{_mandir}/man3/SelectSaver.* + +%files SelfLoader +%{privlib}/SelfLoader.pm +%{_mandir}/man3/SelfLoader.* + +%files sigtrap +%{privlib}/sigtrap.pm +%{_mandir}/man3/sigtrap.* + +%if %{dual_life} || %{rebuild_from_scratch} +%files Socket +%dir %{archlib}/auto/Socket +%{archlib}/auto/Socket/Socket.* +%{archlib}/Socket.pm +%{_mandir}/man3/Socket.3* +%endif + +%files sort +%{privlib}/sort.pm +%{_mandir}/man3/sort.* + +%if %{dual_life} || %{rebuild_from_scratch} +%files Storable +%{archlib}/Storable.pm +%{archlib}/auto/Storable +%{_mandir}/man3/Storable.* +%endif + +%files subs +%{privlib}/subs.pm +%{_mandir}/man3/subs.* + +%files Symbol +%{privlib}/Symbol.pm +%{_mandir}/man3/Symbol.* + +%files Sys-Hostname +%dir %{archlib}/auto/Sys +%{archlib}/auto/Sys/Hostname +%dir %{archlib}/Sys +%{archlib}/Sys/Hostname.pm +%{_mandir}/man3/Sys::Hostname.* + +%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 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 Term-Complete +%dir %{privlib}/Term +%{privlib}/Term/Complete.pm +%{_mandir}/man3/Term::Complete.* + +%files Term-ReadLine +%dir %{privlib}/Term +%{privlib}/Term/ReadLine.pm +%{_mandir}/man3/Term::ReadLine.* + +%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 + +%files Text-Abbrev +%dir %{privlib}/Text +%{privlib}/Text/Abbrev.pm +%{_mandir}/man3/Text::Abbrev.* + +%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 + +%files Thread +%{privlib}/Thread.pm +%{_mandir}/man3/Thread.* + +%if %{dual_life} || %{rebuild_from_scratch} +%files Thread-Queue +%dir %{privlib}/Thread +%{privlib}/Thread/Queue.pm +%{_mandir}/man3/Thread::Queue.* +%endif + +%files Thread-Semaphore +%dir %{privlib}/Thread +%{privlib}/Thread/Semaphore.pm +%{_mandir}/man3/Thread::Semaphore.* + +%files Tie +%dir %{privlib}/Tie +%{privlib}/Tie/Array.pm +%{privlib}/Tie/Handle.pm +%{privlib}/Tie/Scalar.pm +%{privlib}/Tie/StdHandle.pm +%{privlib}/Tie/SubstrHash.pm +%{_mandir}/man3/Tie::Array.* +%{_mandir}/man3/Tie::Handle.* +%{_mandir}/man3/Tie::Scalar.* +%{_mandir}/man3/Tie::StdHandle.* +%{_mandir}/man3/Tie::SubstrHash.* + +%files Tie-File +%dir %{privlib}/Tie +%{privlib}/Tie/File.pm +%{_mandir}/man3/Tie::File.* + +%files Tie-Memoize +%dir %{privlib}/Tie +%{privlib}/Tie/Memoize.pm +%{_mandir}/man3/Tie::Memoize.* + +%if %{dual_life} || %{rebuild_from_scratch} +%files Tie-RefHash +%dir %{privlib}/Tie +%{privlib}/Tie/RefHash.pm +%{_mandir}/man3/Tie::RefHash.* +%endif + +%files Time +%dir %{privlib}/Time +%{privlib}/Time/gmtime.pm +%{privlib}/Time/localtime.pm +%{privlib}/Time/tm.pm +%{_mandir}/man3/Time::gmtime.* +%{_mandir}/man3/Time::localtime.* +%{_mandir}/man3/Time::tm.* + +%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 + +%files Unicode-UCD +%dir %{privlib}/Unicode +%{privlib}/Unicode/UCD.pm +%{_mandir}/man3/Unicode::UCD.* + +%files User-pwent +%{privlib}/User +%{_mandir}/man3/User::* + +%files vars +%{privlib}/vars.pm +%{_mandir}/man3/vars.* + +%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 + +%files vmsish +%{privlib}/vmsish.pm +%{_mandir}/man3/vmsish.* + +# Old changelog entries are preserved in CVS. +%changelog +* Mon Aug 09 2021 Mohan Boddu - 4:5.32.1-479 +- Rebuilt for IMA sigs, glibc 2.34, aarch64 flags + Related: rhbz#1991688 + +* Fri Aug 6 2021 Florian Weimer - 4:5.32.1-478 +- Rebuild to pick up new build flags from redhat-rpm-config (#1984652) + +* Wed Jun 23 2021 Jitka Plesnikova - 4:5.32.1-477 +- Updated list of *.ph files (bug#1975106) + +* Thu May 27 2021 Jitka Plesnikova - 4:5.32.1-476 +- Added perl-autouse and perl-ExtUtils-MM-Utils to perl run-requires + (BZ#1965295) + +* Fri Apr 16 2021 Mohan Boddu - 4:5.32.1-475 +- Rebuilt for RHEL 9 BETA on Apr 15th 2021. Related: rhbz#1947937 + +* Wed Mar 31 2021 Petr Pisar - 4:5.32.1-474 +- Fix dumping a hash entry of PL_strtab type +- Fix an arithmetic left shift of a minimal integer value (GH#18639) + +* Thu Mar 04 2021 Jitka Plesnikova - 4:5.32.1-473 +- Remove files excluded from dual-lived subpackages + +* Thu Mar 04 2021 Petr Pisar - 4:5.32.1-472 +- Protect locale tests from LANGUAGE environment variable +- Prevent the number of buckets in a hash from getting too large +- Fix a memory leak when compiling a regular expression (GH#18604) + +* Tue Feb 09 2021 Petr Pisar - 4:5.32.1-471 +- Make accessing environment by DynaLoader thread-safe +- Use duplocale() if available +- Fix fc() in Turkish locale +- Fix croaking on "my $_" when "use utf8" is in effect (GH#18449) +- Fix PERL_UNUSED_ARG() definition in XSUB.h +- Add missing entries to perldiag (GH#18276) + +* Tue Jan 26 2021 Fedora Release Engineering - 4:5.32.1-470 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Mon Jan 25 2021 Jitka Plesnikova - 4:5.32.1-469 +- 5.32.1 bump (see + or release notes) + +* Wed Dec 02 2020 Jitka Plesnikova - 4:5.32.0-468 +- Run-require perl(Encode) by perl-libs + +* Thu Nov 19 2020 Petr Pisar - 4:5.32.0-467 +- Fix a crash in optimizing split() (GH#18232) +- Disable a dual-lived perl-Net-Ping (bug #1898132) + +* Thu Nov 12 2020 Petr Pisar - 4:5.32.0-466 +- Fix un undefined behavior in Perl_custom_op_get_field() +- Fix Config variable names in in t/op tests +- Fix fetching a magic on the stacked file test operators + +* Wed Oct 14 2020 Petr Pisar - 4:5.32.0-465 +- Fix sv_collxfrm macro to respect locale +- Fix an iterator signedness in handling an mro exception (GH#18155) +- Fix a code flow in Perl_sv_inc_nomg() +- Disable a dual-lived perl-Tie-RefHash subpackage (bug #1887937) + +* Fri Sep 25 2020 Petr Pisar - 4:5.32.0-464 +- Update perl-IO-Zlib metadata +- Disable dual-lived perl-IO-Zlib (bug #1882415) + +* Wed Sep 23 2020 Petr Pisar - 4:5.32.0-463 +- Run-require complete perl by perl-CPAN +- Remove a useless post-install dependency on perl-macros from + perl-interpreter +- Fix ownership of /usr/share/perl5/{ExtUtils,File,Module,Text,Time} directories +- Fix a buffer overflow when compiling a regular expression with a bracketed + character class with a white space +- Fix a mismatch with the recursive subpatterns (GH#18096) + +* Thu Aug 27 2020 Petr Pisar - 4:5.32.0-462 +- Fix inheritance resolution of lexial objects in a debugger (GH#17661) +- Fix a misoptimization when assignig a list in a list context (GH#17816) +- Fix handling left-hand-side undef when assigning a list (GH#16685) +- Fix a memory leak when compiling a long regular expression (GH#18054) +- Fix handling exceptions in a global destruction (GH#18063) +- Fix sorting with a block that calls return (GH#18081) + +* Fri Aug 21 2020 Jeff Law - 4:5.32.0-461 +- Re-enable LTO + +* Thu Aug 06 2020 Petr Pisar - 4:5.32.0-460 +- Fix an IO::Handle spurious error reported for regular file handles (GH#18019) + +* Wed Aug 05 2020 Petr Pisar - 4:5.32.0-459 +- Do not use C compiler reserved identifiers +- Fix SvUV_nomg() macro definition +- Fix SvTRUE() documentation +- Fix ext/XS-APItest/t/utf8_warn_base.pl tests +- Fix IO::Handle::error() to report write errors (GH#6799) +- Fix a link to Unicode Technical Standard #18 (GH#17881) +- Fix setting a non-blocking mode in IO::Socket::UNIX (GH#17787) +- Fix running actions after stepping in a debugger (GH#17901) +- Fix a buffer size for asctime_r() and ctime_r() functions +- Prevent from an integer overflow in RenewDouble() macro +- Fix a buffer overread in when reallocating formats (GH#17844) +- Fix a number of arguments passed to a BOOT XS subroutine (GH#17755) + +* Tue Jul 28 2020 Fedora Release Engineering - 4:5.32.0-458 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Tue Jun 30 2020 Jeff Law - 4:5.32.0-457 +- Disable LTO + +* Fri Jun 26 2020 Jitka Plesnikova - 4:5.32.0-456 +- Perl 5.32 re-rebuild of bootstrapped packages + +* Mon Jun 22 2020 Jitka Plesnikova - 4:5.32.0-455 +- 5.32.0 bump (see + or release notes) + +* Tue Jun 02 2020 Jitka Plesnikova - 4:5.30.3-454 +- 5.30.3 bump (see + for release notes) +- Security release fixes CVE-2020-10543, CVE-2020-10878 and CVE-2020-12723 + +* Fri Mar 27 2020 Petr Pisar - 4:5.30.2-453 +- Make perl-macros package noarch +- Fix a directory ownership in perl-Sys-Hostname +- Work around a glibc bug in caching LC_MESSAGES (GH#17081) +- Fix POSIX:setlocale() documentation +- Prevent from an integer overflow in POSIX::SigSet() +- Fix thread-safety of IO::Handle (GH#14816) +- Close :unix PerlIO layers properly (bug #987118) +- Fix sorting tied arrays (GH#17496) +- Fix a spurious warning about a multidimensional syntax (GH#16535) +- Normalize "#!/perl" shebangs in the tests +- Fix a warning about an uninitialized value in B::Deparse (GH#17537) + +* Mon Mar 16 2020 Jitka Plesnikova - 4:5.30.2-452 +- 5.30.2 bump (see + for release notes) + +* Mon Feb 03 2020 Petr Pisar - 4:5.30.1-451 +- Subpackage AutoLoader and AutoSplit +- Subpackage ExtUtils-Constant +- Subpackage NEXT +- Subpackage Tie-RefHash +- Subpackage autouse +- Subpackage base and fields +- Subpackage Dumpvalue +- Subpackage encoding-warnings +- Subpackage if +- Subpackage I18N-Collate +- Subpackage I18N-LangTags +- Subpackage lib +- Subpackage Safe +- Subpackage Search-Dict +- Subpackage Term-Complete +- Subpackage Term-ReadLine +- Subpackage Text-Abbrev +- Subpackage Thread-Semaphore +- Subpackage Tie-File +- Move attributes module into perl-libs +- Subpackage GDBM_File +- Subpackage NDBM_File +- Subpackage ODBM_File +- Move File::Glob module into perl-libs +- Subpackage File-DosGlob +- Subpackage File-Find +- Subpackage IPC-Open3 +- Subpackage B +- Subpackage Fcntl +- Subpackage FileCache +- Subpackage Hash-Util +- Subpackage Hash-Util-FieldHash +- Subpackage I18N-Langinfo +- Subpackage mro +- Subpackage Opcode +- Move PerlIO to perl-libs +- Subpackage POSIX +- Subpackage Sys-Hostname +- Move Tie::Hash::NamedCapture to perl-libs +- Subpackage Tie-Memoize +- Subpackage Benchmark +- Subpackage blib +- Move charnames to perl-libs +- Subpackage File-stat +- Subpackage Class-Struct +- Subpackage Net::*ent modules into perl-Net +- Subpackage User::* modules into perl-User-pwent +- Subpackage Time +- Subpackage base Tie::* modules into perl-Tie +- Move Config to perl-libs +- Move warnings::register to perl-libs +- Subpackage DBM_Filter modules +- Subpackage FileHandle +- Subpackage Thread +- Subpackage Unicode::UCD +- Subpackage diagnostics and move splain tool from perl-utils there +- Subpackage FindBin +- Subpackage File::Basename +- Subpackage File::Compare +- Subpackage File::Copy +- Subpackage overload +- Subpackage overloading +- Subpackage Config::Extensions +- Subpackage English +- Subpackage Getopt::Std +- Subpackage locale +- Subpackage deprecate +- Move AnyDBM_File, SDBM_File, Tie::Hash to perl-libs because of dbmopen function +- Subpackage DirHandle +- Subpackage Symbol +- Subpackage SelectSaver +- Move UNIVERSAL to perl-libs +- Subpackage DynaLoader +- Subpackage filetest +- Subpackage less +- Subpackage meta_notation +- Subpackage sigtrap +- Subpackage sort +- Subpackage subs +- Subpackage vars +- Subpackage vmsish +- Subpackage Pod-Functions +- Move feature to perl-libs +- Move debugger files into perl-debugger +- Move perlxs* POD to perl-ExtUtils-ParseXS +- Move ExtUtils/typemap to perl-devel +- Remove ExtUtils::XSSymSet manual without the code (GH#17424) +- Reduce and move remaining ph files to perl-ph +- Move most of the generic POD files to perl-doc + +* Wed Jan 29 2020 Fedora Release Engineering - 4:5.30.1-450 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Fri Nov 29 2019 Petr Pisar - 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 - 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 - 4:5.30.1-447 +- 5.30.1 bump (see + for release notes) + +* Wed Sep 11 2019 Petr Pisar - 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 - 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 - 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 - 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 - 4:5.30.0-442 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Wed Jul 17 2019 Petr Pisar - 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 - 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 - 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 - 4:5.30.0-438 +- Perl 5.30 re-rebuild of bootstrapped packages + +* Wed May 22 2019 Jitka Plesnikova , Petr Pisar - 4:5.30.0-437 +- 5.30.0 bump (see + 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 - 4:5.28.2-436 +- 5.28.2 bump (see + for release notes) + +* Fri Apr 05 2019 Petr Pisar - 4:5.28.1-435 +- Fix a leak when compiling a typed hash dereference +- Fix a buffer overread when handling a scope error in qr/\(?{/ (RT#133879) +- 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 - 4:5.28.1-434 +- Add explicit Requires: libxcrypt-devel to devel sub-package (bug #1666098) + +* Fri Feb 22 2019 Petr Pisar - 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 - 4:5.28.1-432 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Wed Jan 16 2019 Petr Pisar - 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 - 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 an 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 - 4:5.28.1-429 +- Rebuilt for libcrypt.so.2 (#1666033) + +* Sun Jan 13 2019 Björn Esser - 4:5.28.1-428 +- Add BuildRequires: gcc-c++ for tests + +* Fri Nov 30 2018 Petr Pisar - 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 - 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 - 4:5.28.0-425 +- Install Encode developmental files when installing complete Perl + +* Thu Oct 25 2018 Jitka Plesnikova - 4:5.28.0-424 +- Fix annocheck failure by passing CFLAGS to dtrace + +* Mon Sep 24 2018 Petr Pisar - 4:5.28.0-423 +- Fix upack "u" of invalid data (RT#132655) + +* Mon Sep 10 2018 Petr Pisar - 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 - 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 - 4:5.28.0-420 +- Fix a file descriptor leak in in-place edits (RT#133314) + +* Tue Jul 17 2018 Petr Pisar - 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 - 4:5.28.0-418 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Mon Jul 09 2018 Petr Pisar - 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 - 4:5.28.0-416 +- Stop providing old perl(MODULE_COMPAT_5.26.*) + +* Tue Jun 26 2018 Jitka Plesnikova - 4:5.28.0-415 +- 5.28.0 bump (see + for release notes) + +* Fri May 25 2018 Petr Pisar - 4:5.26.2-414 +- Fix an infinite loop in the regular expression compiler (RT#133185) + +* Fri May 18 2018 Jitka Plesnikova - 4:5.26.2-413 +- Correct license tags of perl-libs (bug #1579524) + +* Thu Apr 19 2018 Petr Pisar - 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 - 4:5.26.2-411 +- 5.26.2 bump + +* Mon Mar 26 2018 Petr Pisar - 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 - 4:5.26.1-409 +- Rebuild to pick up new build flags from redhat-rpm-config + +* Fri Feb 09 2018 Igor Gnatenko - 4:5.26.1-408 +- Escape macros in %%changelog + +* Tue Feb 06 2018 Petr Pisar - 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 - 4:5.26.1-406 +- Correct shell bangs in tests + +* Mon Jan 29 2018 Petr Pisar - 4:5.26.1-405 +- Link XS modules to pthread library to fix linking with -z defs + +* Sat Jan 20 2018 Björn Esser - 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 - 4:5.26.1-403 +- Rebuild against glibc without nsl library + +* Tue Jan 09 2018 Petr Pisar - 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 - 4:5.26.1-401 +- Update perl(:MODULE_COMPAT) + +* Mon Sep 25 2017 Jitka Plesnikova - 4:5.26.1-400 +- 5.26.1 bump (see + for release notes) + +* Tue Aug 22 2017 Petr Pisar - 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 - 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 - 4:5.26.0-397 +- Enable separate debuginfo back + +* Thu Jul 27 2017 Fedora Release Engineering - 4:5.26.0-396 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Wed Jun 28 2017 Petr Pisar - 4:5.26.0-395 +- perl package installs all core modules, interpreter moved to + perl-interpreter package, perl-core package is obsolete + + (bug #1464903) + +* Mon Jun 19 2017 Petr Pisar - 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 + + +* Tue Jun 06 2017 Jitka Plesnikova - 4:5.26.0-393 +- Stop providing old perl(MODULE_COMPAT_5.24.*) + +* Thu Jun 01 2017 Jitka Plesnikova - 4:5.26.0-392 +- 5.26.0 bump (see + 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 - 4:5.24.1-391 +- Introduce build-conditions for groff, systemtap, syslog tests, and tcsh + +* Wed Mar 08 2017 Petr Pisar - 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 - 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 - 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 - 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 - 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 - 4:5.24.1-385 +- 5.24.1 bump (see + for release notes) + +* Thu Jan 12 2017 Igor Gnatenko - 4:5.24.0-384 +- Rebuild for readline 7.x + +* Fri Jan 06 2017 Petr Pisar - 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 - 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 - 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 - 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 - 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 - 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 - 4:5.24.0-377 +- Avoid loading of modules from current directory, CVE-2016-1238, (bug #1360425) + +* Thu Jul 28 2016 Petr Pisar - 4:5.24.0-376 +- Fix handling \N{} in tr for characters in range 128--255 (RT#128734) + +* Tue Jul 26 2016 Petr Pisar - 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 - 4:5.24.0-374 +- Fix a crash in lexical scope warnings (RT#128597) + +* Fri Jul 08 2016 Petr Pisar - 4:5.24.0-373 +- Fix a crash in "Subroutine redefined" warning (RT#128257) + +* Thu Jul 07 2016 Petr Pisar - 4:5.24.0-372 +- Fix a crash when vivifying a stub in a deleted package (RT#128532) + +* Thu Jul 07 2016 Jitka Plesnikova - 4:5.24.0-371 +- Do not let XSLoader load relative paths (CVE-2016-6185) + +* Mon Jul 04 2016 Petr Pisar - 4:5.24.0-370 +- Fix line numbers with perl -x (RT#128508) + +* Fri Jun 24 2016 Petr Pisar - 4:5.24.0-369 +- Do not crash when inserting a non-stash into a stash (RT#128238) + +* Wed Jun 22 2016 Petr Pisar - 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 - 4:5.24.0-367 +- Fix compiling regular expressions like /\X*(?0)/ (RT#128109) + +* Thu Jun 16 2016 Petr Pisar - 4:5.24.0-366 +- Do not mangle errno from failed socket calls (RT#128316) + +* Tue Jun 14 2016 Petr Pisar - 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 - 4:5.24.0-364 +- Remove reflexive dependencies +- Use pregenerated dependencies on bootstrapping +- Specify more build-time dependencies + +* Wed May 18 2016 Jitka Plesnikova - 4:5.24.0-363 +- Stop providing old perl(MODULE_COMPAT_5.22.*) +- Update license tags + +* Wed May 11 2016 Jitka Plesnikova - 4:5.24.0-362 +- 5.24.0 bump (see + for release notes) +- Update sub-packages; Update or remove patches + +* Mon May 02 2016 Jitka Plesnikova - 4:5.22.6-361 +- 5.22.2 bump (see + for release notes) + +* Mon Apr 18 2016 Petr Pisar - 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 - 4:5.22.1-359 +- Do not filter FCGI dependency, CGI is non-core now + +* Fri Mar 04 2016 Petr Pisar - 4:5.22.1-358 +- Remove bundled perl-IPC-SysV (bug #1308527) + +* Wed Mar 02 2016 Petr Pisar - 4:5.22.1-357 +- Fix CVE-2016-2381 (ambiguous environment variables handling) (bug #1313702) + +* Thu Feb 04 2016 Fedora Release Engineering - 4:5.22.1-356 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild + +* Tue Dec 15 2015 Petr Pisar - 4:5.22.1-355 +- Remove bundled Math-BigInt (bug #1277203) + +* Mon Dec 14 2015 Jitka Plesnikova - 5.22.1-354 +- 5.22.1 bump (see + for release notes) + +* Tue Oct 20 2015 Petr Pisar - 4:5.22.0-353 +- Rebuild to utilize perl(:VERSION) dependency symbol + +* Tue Oct 13 2015 Petr Pisar - 4:5.22.0-352 +- Do not own IO::Socket::IP manual page by perl-IO + +* Fri Oct 09 2015 Petr Pisar - 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 - 4:5.22.0-350 +- Sub-package Memoize +- Sub-package Net-Ping +- Sub-package Pod-Html + +* Thu Jul 16 2015 Petr Pisar - 4:5.22.0-349 +- Disable hardening due to some run-time failures (bug #1238804) + +* Mon Jul 13 2015 Petr Pisar - 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 - 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 - 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 - 4:5.22.0-345 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild + +* Wed Jun 10 2015 Jitka Plesnikova - 4:5.22.0-244 +- Stop providing old perl(MODULE_COMPAT_5.20.*) + +* Thu Jun 04 2015 Jitka Plesnikova - 4:5.22.0-243 +- Move ok and Test::Use::ok to perl-Test-Simple + +* Wed Jun 03 2015 Jitka Plesnikova - 4:5.22.0-242 +- Move bin/encguess to perl-Encode + +* Mon Jun 01 2015 Jitka Plesnikova - 4:5.22.0-241 +- 5.22.0 bump (see + 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 - 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 - 4:5.20.2-327 +- Bump to make koji happy + +* Thu Apr 02 2015 Petr Šabata - 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 - 4:5.20.2-325 +- Sub-package Text-Tabs+Wrap (bug #910798) + +* Thu Mar 19 2015 Lubomir Rintel - 4:5.20.2-324 +- Add systemtap probes for new dtrace markers + +* Mon Mar 16 2015 Petr Pisar - 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 - 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 - 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 - 4:5.20.2-320 +- 5.20.2 bump (see + for release notes) +- Regenerate a2p.c (BZ#1177672) + +* Mon Feb 16 2015 Petr Pisar - 4:5.20.1-319 +- Improve h2ph fix for GCC 5.0 + +* Thu Feb 12 2015 Petr Pisar - 4:5.20.1-318 +- Fix regressions with GCC 5.0 + +* Tue Feb 03 2015 Jitka Plesnikova - 4:5.20.1-317 +- Sub-package inc-latest module + +* Fri Jan 23 2015 Petr Pisar - 4:5.20.1-316 +- Delete dual-living programs clashing on debuginfo files (bug #878863) + +* Mon Dec 01 2014 Petr Pisar - 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 - 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 - 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 - 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 - 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 - 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 - 4:5.20.1-309 +- Provide 5.20.0 MODULE_COMPAT + +* Mon Sep 15 2014 Jitka Plesnikova - 4:5.20.1-308 +- 5.20.1 bump (see + for release notes) +- Sub-package perl-ExtUtils-Miniperl (bug #1141222) + +* Wed Sep 10 2014 Petr Pisar - 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 - 4:5.20.0-306 +- Stop providing old perl(MODULE_COMPAT_5.18.*) + +* Mon Aug 18 2014 Jitka Plesnikova - 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 - 4:5.18.2-304 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild + +* Fri Aug 08 2014 Petr Pisar - 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 - 4:5.18.2-302 +- Sub-package perl-Term-ANSIColor and remove it (bug #1121924) + +* Fri Jun 27 2014 Petr Pisar - 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 - 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 - 4:5.18.2-299 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild + +* Thu Apr 10 2014 Petr Pisar - 4:5.18.2-298 +- Pass -fwrapv to stricter GCC 4.9 (bug #1082957) + +* Fri Apr 04 2014 Petr Pisar - 4:5.18.2-297 +- Fix t/comp/parser.t not to load system modules (bug #1084399) + +* Mon Feb 03 2014 Petr Pisar - 4:5.18.2-296 +- Move macro files into %%{_rpmconfigdir}/macros.d + +* Wed Jan 29 2014 Petr Pisar - 4:5.18.2-295 +- Provide perl(CPAN::Meta::Requirements) with six decimal places + +* Tue Jan 21 2014 Petr Pisar - 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 - 4:5.18.2-293 +- Use a macro to cover all 64-bit PowerPC architectures (bug #1052709) + +* Tue Jan 14 2014 Petr Pisar - 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 - 4:5.18.2-291 +- 5.18.2 bump (see + for release notes) + +* Mon Dec 02 2013 Petr Pisar - 4:5.18.1-290 +- Document Math::BigInt::CalcEmu requires Math::BigInt (bug #959096) + +* Tue Oct 22 2013 Petr Pisar - 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 - 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 - 4:5.18.1-287 +- 5.18.1 bump (see + 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 - 4:5.18.0-286 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild + +* Mon Jul 15 2013 Petr Pisar - 4:5.18.0-285 +- Stop providing old perl(MODULE_COMPAT_5.16.*) + +* Fri Jul 12 2013 Petr Pisar - 4:5.18.0-284 +- Perl 5.18 rebuild + +* Tue Jul 09 2013 Petr Pisar - 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 - 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 - 4:5.18.0-281 +- Update to Perl 5.18.0 +- Clean patches, not needed with new version + +* Wed Jun 26 2013 Petr Pisar - 4:5.16.3-280 +- Edit local patch level before compilation + +* Fri Jun 14 2013 Petr Pisar - 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 - 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 - 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 - 4:5.16.3-276 +- Require $Config{libs} providers (bug #905482) + +* Thu May 30 2013 Petr Pisar - 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 - 4:5.16.3-274 +- Sub-package Storable (bug #966865) + +* Mon May 13 2013 Petr Pisar - 4:5.16.3-273 +- Use lib64 directories on aarch64 architecture (bug #961900) + +* Fri May 10 2013 Petr Pisar - 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 - 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 - 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 - 4:5.16.3-269 +- Sub-package Sys-Syslog (bug #950057) + +* Fri Apr 05 2013 Petr Pisar - 4:5.16.3-268 +- Sub-package Getopt-Long (bug #948855) +- Sub-package Locale-Maketext (bug #948974) + +* Fri Apr 05 2013 Petr Pisar - 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 - 4:5.16.3-266 +- Filter provides from *.pl files (bug #924938) + +* Fri Mar 22 2013 Petr Pisar - 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 - 4:5.16.3-264 +- Sub-package constant (bug #924169) +- Sub-package DB_File (bug #924351) + +* Tue Mar 19 2013 Petr Pisar - 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 - 4:5.16.3-262 +- Correct dependencies of perl-HTTP-Tiny +- Sub-package Time-Local (bug #922054) + +* Thu Mar 14 2013 Petr Pisar - 4:5.16.3-261 +- 5.16.3 bump (see + 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 - 4:5.16.2-260 +- Fix CVE-2013-1667 (DoS in rehashing code) (bug #918008) + +* Mon Feb 18 2013 Petr Pisar - 4:5.16.2-259 +- Sub-package autodie (bug #911226) +- Add NAME headings to CPAN modules (bug #908113) + +* Thu Feb 14 2013 Petr Pisar - 4:5.16.2-258 +- Fix perl-Encode-devel dependency declaration + +* Thu Feb 14 2013 Petr Pisar - 4:5.16.2-257 +- Sub-package Thread-Queue (bug #911062) + +* Wed Feb 13 2013 Petr Pisar - 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 - 4:5.16.2-255 +- Remove bundled Log-Message +- Remove bundled Term-UI + +* Thu Feb 07 2013 Petr Pisar - 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 - 4:5.16.2-253 +- Sub-package Pod-Checker and Pod-Usage (bugs #907546, #907550) + +* Mon Feb 04 2013 Petr Pisar - 4:5.16.2-252 +- Remove bundled PathTools + +* Wed Jan 30 2013 Petr Pisar - 4:5.16.2-251 +- Sub-package B-Lint (bug #906015) + +* Wed Jan 30 2013 Petr Pisar - 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 - 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 - 4:5.16.2-248 +- Sub-package Pod-LaTeX (bug #904085) + +* Wed Jan 16 2013 Petr Pisar - 4:5.16.2-247 +- Remove bundled Pod-Parser + +* Fri Jan 11 2013 Petr Pisar - 4:5.16.2-246 +- Fix CVE-2012-6329 (misparsing of maketext strings) (bug #884354) + +* Thu Jan 10 2013 Petr Pisar - 4:5.16.2-245 +- Do not package App::Cpan(3pm) to perl-Test-Harness (bug #893768) + +* Tue Dec 18 2012 Petr Pisar - 4:5.16.2-244 +- Remove bundled Archive-Tar +- Remove bundled CPAN-Meta-YAML +- Remove bundled Module-Metadata + +* Tue Dec 18 2012 Petr Pisar - 4:5.16.2-243 +- Remove bundled Filter modules + +* Mon Nov 05 2012 Jitka Plesnikova - 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 - 4:5.16.1-241 +- Remove bundled podlators (bug #856516) + +* Wed Oct 17 2012 Jitka Plesnikova - 4:5.16.1-240 +- Do not crash when vivifying $| (bug #865296) + +* Mon Sep 24 2012 Petr Pisar - 4:5.16.1-239 +- Conflict perl-podlators with perl before sub-packaging (bug #856516) + +* Fri Sep 21 2012 Petr Pisar - 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 - 4:5.16.1-237 +- Put perl-podlators into perl-core list (bug #856516) + +* Tue Sep 18 2012 Petr Pisar - 4:5.16.1-236 +- Remove bundled perl-ExtUtils-Manifest +- perl-PathTools uses Carp + +* Fri Sep 14 2012 Petr Pisar - 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 - 4:5.16.1-234 +- Sub-package perl-podlators (bug #856516) + +* Tue Sep 11 2012 Petr Pisar - 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 - 4:5.16.1-232 +- Move App::Cpan from perl-Test-Harness to perl-CPAN (bug #854577) + +* Fri Aug 24 2012 Petr Pisar - 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á - 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á - 4:5.16.0-229 +- apply conditionals for dual life patches + +* Thu Aug 09 2012 Jitka Plesnikova 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 - 4:5.16.0-227 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild + +* Fri Jul 13 2012 Paul Howarth 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 4:5.16.0-225 +- Fix broken atof (bug #835452) + +* Wed Jun 27 2012 Petr Pisar - 4:5.16.0-224 +- perl-Pod-Perldoc must require groff-base because Pod::Perldoc::ToMan executes + roff + +* Mon Jun 25 2012 Petr Pisar - 4:5.16.0-223 +- Test::Build requires Data::Dumper +- Sub-package perl-Pod-Parser + +* Thu Jun 07 2012 Petr Pisar - 4:5.16.0-222 +- Remove MODULE_COMPAT_5.14.* Provides + +* Wed Jun 06 2012 Petr Pisar - 4:5.16.0-221 +- Perl 5.16 rebuild + +* Wed Jun 06 2012 Petr Pisar - 4:5.16.0-220 +- perl_bootstrap macro is distributed in perl-srpm-macros now + +* Fri Jun 01 2012 Petr Pisar - 4:5.16.0-219 +- Own zipdetails and IO::Compress::FAQ by perl-IO-Compress + +* Fri Jun 1 2012 Jitka Plesnikova - 4:5.16.0-218 +- Fix find2perl to translate ? glob properly (bug #825701) + +* Thu May 31 2012 Petr Pisar - 4:5.16.0-218 +- Shorten perl-Module-Build version to 2 digits to follow upstream + +* Fri May 25 2012 Marcela Mašláňová - 4:5.16.0-217 +- upload the stable 5.16.0 + +* Wed May 16 2012 Marcela Mašláňová - 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 - 4:5.14.2-216 +- Enable usesitecustomize + +* Thu Apr 19 2012 Petr Pisar - 4:5.14.2-215 +- Rebuild perl against Berkeley database version 5 (bug #768846) + +* Fri Apr 13 2012 Petr Pisar - 4:5.14.2-214 +- perl-Data-Dumper requires Scalar::Util (bug #811239) + +* Tue Apr 10 2012 Petr Pisar - 4:5.14.2-213 +- Sub-package Data::Dumper (bug #811239) + +* Tue Feb 21 2012 Petr Pisar - 4:5.14.2-212 +- Sub-package Filter (bug #790349) + +* Mon Feb 06 2012 Petr Pisar - 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 - 4:5.14.2-210 +- Rebuild again now that perl dependency generator is fixed (#772632, #772699) + +* Fri Jan 06 2012 Iain Arnell -4:5.14.2-209 +- perl-ExtUtils-MakeMaker sub-package requires ExtUtils::Install + +* Fri Jan 6 2012 Paul Howarth - 4:5.14.2-208 +- Rebuild for gcc 4.7 + +* Tue Dec 20 2011 Petr Pisar - 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 - 4:5.14.2-206 +- Fix leak with non-matching named captures (bug #767597) + +* Tue Nov 29 2011 Petr Pisar - 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ä - 4:5.14.2-204 +- Add $RPM_LD_FLAGS to lddlflags. + +* Wed Nov 23 2011 Petr Pisar - 4:5.14.2-203 +- Sub-package Socket + +* Mon Nov 21 2011 Petr Pisar - 4:5.14.2-202 +- Sub-package Pod::Perldoc + +* Fri Nov 18 2011 Petr Pisar - 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á - 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 - 4:5.14.2-199 +- Provide perl(DB) by perl + +* Mon Oct 24 2011 Petr Pisar - 4:5.14.2-198 +- Do not warn about missing site directories (bug #732799) + +* Thu Oct 20 2011 Marcela Mašláňová - 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 - 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 - 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 4:5.14.2-194 +- add provide for perl(:MODULE_COMPAT_5.14.2) + +* Mon Oct 03 2011 Petr Pisar - 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 - 4:5.14.1-192 +- Enable GDBM support again to build against new gdbm 1.9.1 + +* Fri Sep 30 2011 Petr Pisar - 4:5.14.1-191 +- Disable NDBM support temporarily too as it's provided by gdbm package + +* Wed Sep 21 2011 Petr Pisar - 4:5.14.1-190 +- Disable GDBM support temporarily to build new GDBM + +* Thu Sep 15 2011 Petr Pisar - 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 - 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 - 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 4:5.14.1-186 +- perl needs to own vendorarch/auto directory + +* Fri Aug 05 2011 Petr Sabata - 4:5.14.1-185 +- Move xsubpp to ExtUtils::ParseXS (#728393) + +* Fri Jul 29 2011 Iain Arnell 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á - 4:5.14.1-183 +- remove from provides MODULE_COMPAT 5.12.* + +* Fri Jul 22 2011 Paul Howarth - 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 - 4:5.14.1-181 +- Temporarily provide 5.12.* MODULE_COMPAT + +* Sat Jul 16 2011 Iain Arnell 4:5.14.1-180 +- fix escaping of the __provides_exclude_from macro + +* Wed Jul 13 2011 Iain Arnell 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á - 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á - 4:5.14.1-175 +- remove from macros BSD, because there exists BSD::Resources + +* Tue Jun 21 2011 Marcela Mašláňová - 4:5.14.1-174 +- remove old MODULE_COMPATs + +* Mon Jun 20 2011 Iain Arnell 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 - 4:5.14.1-172 +- add provide for perl(:MODULE_COMPAT_5.14.1) + +* Mon Jun 20 2011 Marcela Mašláňová - 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á - 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á - 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á - 4:5.14.0-167 +- Perl 5.14 mass rebuild, bump release, remove releases in subpackages + +* Thu Jun 09 2011 Marcela Mašláňová - 4:5.14.0-165 +- Perl 5.14 mass rebuild + +* Thu Jun 09 2011 Marcela Mašláňová - 4:5.14.0-163 +- Perl 5.14 mass rebuild + +* Thu Jun 9 2011 Marcela Mašláňová - 4:5.14.0-162 +- add new sub-packages, remove BR in them + +* Wed Jun 1 2011 Marcela Mašláňová - 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á - 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á - 4:5.12.3-160 +- add provides UNIVERSAL and DB back into perl + +* Thu Apr 07 2011 Petr Pisar - 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á - 4:5.12.3-158 +- 692900 - lc launders tainted flag, RT #87336 + +* Fri Apr 1 2011 Robin Lee - 4:5.12.3-157 +- Cwd.so go to the PathTools sub-package + +* Tue Mar 15 2011 Marcela Mašláňová - 4:5.12.3-156 +- sub-package Path-Tools + +* Sat Feb 19 2011 Iain Arnell 4:5.12.3-154 +- sub-package Scalar-List-Utils + +* Tue Feb 08 2011 Fedora Release Engineering - 4:5.12.3-153 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild + +* Thu Jan 27 2011 Petr Pisar - 4:5.12.3-152 +- Document ExtUtils::ParseXS upgrade in local patch tracking + +* Wed Jan 26 2011 Tom Callaway - 4:5.12.3-151 +- update ExtUtils::ParseXS to 2.2206 (current) to fix Wx build + +* Wed Jan 26 2011 Petr Pisar - 4:5.12.3-150 +- Make %%global perl_default_filter lazy +- Do not hard-code tapsetdir path + +* Tue Jan 25 2011 Lukas Berk - 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á - 4:5.12.3-148 +- stable update 5.12.3 +- add COMPAT + +* Thu Dec 9 2010 Marcela Mašláňová - 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á - 4:5.12.2-145 +- required systemtap-sdt-devel on request in 661553 + +* Mon Nov 29 2010 Marcela Mašláňová - 4:5.12.2-144 +- create sub-package for CGI 3.49 + +* Tue Nov 09 2010 Petr Pisar - 4:5.12.2-143 +- Sub-package perl-Class-ISA (bug #651317) + +* Mon Nov 08 2010 Petr Pisar - 4:5.12.2-142 +- Make perl(ExtUtils::ParseXS) version 4 digits long (bug #650882) + +* Tue Oct 19 2010 Marcela Mašláňová - 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 - 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á - 4:5.12.2-139 +- remove removal of NDBM + +* Tue Oct 05 2010 Petr Pisar - 4:5.12.2-138 +- Consolidate Requires filtering +- Consolidate libperl.so* Provides + +* Fri Oct 1 2010 Marcela Mašláňová - 4:5.12.2-137 +- filter useless requires, provide libperl.so + +* Fri Oct 01 2010 Petr Pisar - 4:5.12.2-136 +- Reformat perl-threads description +- Fix threads directories ownership + +* Thu Sep 30 2010 Marcela Mašláňová - 4:5.12.2-135 +- sub-package threads + +* Thu Sep 23 2010 Marcela Mašláňová - 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 - 4:5.12.2-133 +- Do not leak when destroying thread (RT #77352, RHBZ #630667) + +* Tue Sep 7 2010 Petr Sabata - 5:5.12.2-132 +- Fixing release number for modules + +* Tue Sep 7 2010 Petr Sabata - 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á - 4:5.12.1-131 +- run Configure with -Dusedtrace for systemtap support + +* Wed Aug 18 2010 Petr Pisar - 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á - 4:5.12.1-129 +- 617956 move perlxs* docs files into perl-devel + +* Thu Jul 15 2010 Marcela Mašláňová - 4:5.12.1-128 +- 614662 wrong perl-suidperl version in obsolete + +* Sun Jul 11 2010 Dan Horák - 4:5.12.1-127 +- add temporary compat provides needed on s390(x) + +* Fri Jul 09 2010 Petr Pisar - 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á - 4:5.12.1-125 +- 607505 add another dir into Module::Build (thanks to Paul Howarth) + +* Mon Jun 28 2010 Ralf Corsépius - 4:5.12.1-124 +- Address perl-Compress-Raw directory ownership (BZ 607881). + +* Thu Jun 10 2010 Marcela Mašláňová - 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á - 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á - 4:5.12.0-121 +- rebuild with tests in test buildroot + +* Fri Apr 23 2010 Marcela Mašláňová - 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á - 4:5.12.0-119.1 +- rebuild 5.12.0 without MODULE_COMPAT + +* Wed Apr 14 2010 Marcela Mašláňová - 4:5.12.0-119 +- initial 5.12.0 build + +* Tue Apr 6 2010 Marcela Mašláňová - 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 - 4:5.10.1-117 +- package tests in their own subpackage + +* Mon Mar 15 2010 Marcela Mašláňová - 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 - 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á - 4:5.10.1-114 +- clean spec a little more +- rebuild with new gdbm + +* Fri Mar 5 2010 Marcela Mašláňová - 4:5.10.1-112 +- fix license according to advice from legal +- clean unused patches + +* Wed Feb 24 2010 Chris Weyl - 4:5.10.1-111 +- update subpackage tests macros to handle packages with an epoch properly + +* Fri Feb 05 2010 Chris Weyl - 4:5.10.1-110 +- add initial EXPERIMENTAL tests subpackage rpm macros to macros.perl + +* Tue Dec 22 2009 Marcela Mašláňová - 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 - 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 - 4:5.10.1-106 +- exclude "parent". + +* Fri Dec 18 2009 Ralf Corsépius - 4:5.10.1-105 +- exclude Parse-CPAN-Meta. + +* Mon Dec 7 2009 Stepan Kasal - 4:5.10.1-104 +- do not pack Bzip2 manpages either (#544582) + +* Mon Dec 7 2009 Stepan Kasal - 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 - 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 - 4:5.10.1-101 +- be more careful with the libperl.so compatibility symlink (#543936) + +* Wed Dec 2 2009 Stepan Kasal - 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 - 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á - 4:5.10.0-86 +- 542645 update IO-Compress-Base + +* Tue Nov 24 2009 Stepan Kasal - 4:5.10.0-85 +- back out perl-5.10.0-spamassassin.patch (#528572) + +* Thu Oct 01 2009 Chris Weyl - 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 - 4:5.10.0-83 +- update Storable to 2.21 + +* Mon Aug 31 2009 Chris Weyl - 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 - 4:5.10.0-81 +- fix macros.perl *sigh* + +* Mon Aug 24 2009 Stepan Kasal - 4:5.10.0-80 +- Remove -DDEBUGGING=-g, we are not ready yet. + +* Fri Aug 21 2009 Chris Weyl - 4:5.10.0-79 +- add helper filtering macros to -devel, for perl-* package invocation + (#502402) + +* Fri Jul 31 2009 Stepan Kasal - 4:5.10.0-78 +- Add configure option -DDEBUGGING=-g (#156113) + +* Tue Jul 28 2009 arcela Mašláňová - 4:5.10.0-77 +- 510127 spam assassin suffer from tainted bug + +* Mon Jul 27 2009 Marcela Mašláňová - 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 - 4:5.10.0-75 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild + +* Fri Jul 10 2009 Stepan Kasal - 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 - 4:5.10.0-73 +- re-enable tests + +* Tue Jul 7 2009 Stepan Kasal - 4:5.10.0-72 +- move -DPERL_USE_SAFE_PUTENV to ccflags (#508496) + +* Mon Jun 8 2009 Marcela Mašláňová - 4:5.10.0-71 +- #504386 update of Compress::Raw::Zlib 2.020 + +* Thu Jun 4 2009 Marcela Mašláňová - 4:5.10.0-70 +- update File::Spec (PathTools) to 3.30 + +* Wed Jun 3 2009 Stepan Kasal - 4:5.10.0-69 +- fix #221113, $! wrongly set when EOF is reached + +* Fri Apr 10 2009 Marcela Mašláňová - 4:5.10.0-68 +- do not use quotes in patchlevel.h; it breaks installation from cpan (#495183) + +* Tue Apr 7 2009 Stepan Kasal - 4:5.10.0-67 +- update CGI to 3.43, dropping upstreamed perl-CGI-escape.patch + +* Tue Apr 7 2009 Stepan Kasal - 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 - 4:5.10.0-65 +- Move the gargantuan Changes* collection to -devel (#492605) + +* Tue Mar 24 2009 Stepan Kasal - 4:5.10.0-64 +- update module autodie + +* Mon Mar 23 2009 Stepan Kasal - 4:5.10.0-63 +- update Digest::SHA (fixes 489221) + +* Wed Mar 11 2009 Tom "spot" Callaway - 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 - 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 - 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 - 4:5.10.0-59 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild + +* Mon Feb 16 2009 Tom "spot" Callaway - 4:5.10.0-58 +- add /usr/lib/perl5/site_perl to otherlibs (bz 484053) + +* Mon Feb 16 2009 Dennis Gilmore - 4:5.10.0-57 +- build sparc64 without _smp_mflags + +* Sat Feb 07 2009 Dennis Gilmore - 4:5.10.0-56 +- limit sparc builds to -j12 + +* Tue Feb 3 2009 Marcela Mašláňová - 4:5.10.0-55 +- update IPC::Cmd to v 0.42 + +* Mon Jan 19 2009 Marcela Mašláňová - 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á - 4:5.10.0-53 +- add missing XHTML.pm into Pod::Simple + +* Fri Dec 12 2008 Marcela Mašláňová - 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 - 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á - 4:5.10.0-50 +- change summary according to RFC fix summary discussion at fedora-devel :) + +* Thu Oct 23 2008 Tom "spot" Callaway - 4:5.10.0-49 +- update File::Temp to 0.20 + +* Sun Oct 12 2008 Lubomir Rintel - 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á 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 - 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 4:5.10.0-45 +- give Changes*.gz the same datetime to avoid multilib conflict + +* Wed Sep 17 2008 Marcela Maslanova 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 4:5.10.0-43.fc10 +- 462444 update Test::Simple to 0.80 + +* Thu Aug 14 2008 Stepan Kasal - 4:5.10.0-42.fc10 +- move libnet to the right directory, along Net/Config.pm + +* Wed Aug 13 2008 Stepan Kasal - 4:5.10.0-41.fc10 +- do not create directory .../%%{version}/auto + +* Tue Aug 5 2008 Marcela Maslanova 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 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 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 4:5.10.0-36 +- rebuild for new db4 4.7 + +* Wed Jul 9 2008 Stepan Kasal 4:5.10.0-35 +- remove db4 require, it is handled automatically + +* Thu Jul 3 2008 Stepan Kasal 4:5.10.0-34 +- 453646 use -DPERL_USE_SAFE_PUTENV. Without fail some modules f.e. readline. + +* Tue Jul 1 2008 Marcela Maslanova 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 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 4:5.10.0-28 +- CVE-2008-2827 perl: insecure use of chmod in rmtree + +* Wed Jun 11 2008 Marcela Maslanova 4:5.10.0-27 +- 447371 wrong access permission rt49003 + +* Tue Jun 10 2008 Stepan Kasal 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 4:5.10.0-25 +- 449577 rebuild for FTBFS + +* Mon May 26 2008 Marcela Maslanova 4:5.10.0-24 +- 448392 upstream fix for assertion + +* Thu May 22 2008 Tom "spot" Callaway 4:5.10.0-23 +- sparc64 breaks with the rpath hack patch applied + +* Mon May 19 2008 Marcela Maslanova +- 447142 upgrade CGI to 3.37 (this actually happened in -21 in rawhide.) + +* Sat May 17 2008 Tom "spot" Callaway 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 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 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 4:5.10.0-18 +- forgot to create the auto directory for multilib vendor_perl dirs + +* Tue Mar 18 2008 Tom "spot" Callaway 4:5.10.0-17 +- own multilib vendor_perl directories +- mark Module::CoreList patch in patchlevel.h + +* Tue Mar 18 2008 Marcela Maslanova 4:5.10.0-16 +- 437817: RFE: Upgrade Module::CoreList to 2.14 + +* Wed Mar 12 2008 Marcela Maslanova 4:5.10.0-15 +- xsubpp now lives in perl-devel instead of perl. + +* Sat Mar 8 2008 Tom "spot" Callaway 4:5.10.0-14 +- back out Archive::Extract patch, causing odd test failure + +* Sat Mar 8 2008 Tom "spot" Callaway 4:5.10.0-13 +- add missing lzma test file + +* Fri Mar 7 2008 Tom "spot" Callaway 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 4:5.10.0-11 +- only do it once, and do it for all our patches + +* Fri Mar 7 2008 Tom "spot" Callaway 4:5.10.0-10 +- note 32891 in patchlevel.h + +* Fri Mar 7 2008 Tom "spot" Callaway 4:5.10.0-9 +- get rid of bad conflicts on perl-File-Temp + +* Fri Mar 7 2008 Tom "spot" Callaway 4:5.10.0-8 +- use /usr/local for sitelib/sitearch dirs +- patch 32891 for significant performance improvement + +* Fri Feb 22 2008 Stepan Kasal - 4:5.10.0-7 +- Add perl-File-Temp provides/obsoletes/conflicts (#433836), + reported by Bill McGonigle +- escape the macros in Jan 30 entry + +* Tue Feb 19 2008 Fedora Release Engineering - 4:5.10.0-6 +- Autorebuild for GCC 4.3 + +* Wed Jan 30 2008 Tom "spot" Callaway - 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 - 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 - 4:5.10.0-3 +- Update Sys::Syslog to 0.24, to fix test failures + +* Wed Jan 9 2008 Tom "spot" Callaway - 4:5.10.0-2 +- add some BR for tests + +* Tue Jan 8 2008 Tom "spot" Callaway - 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 - 4:5.10.0_RC2-0.1 +- first attempt at building 5.10.0 + +