diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..5d245cb --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +SOURCES/perl-5.26.1.tar.bz2 diff --git a/.rh-perl526-perl.metadata b/.rh-perl526-perl.metadata new file mode 100644 index 0000000..d051b72 --- /dev/null +++ b/.rh-perl526-perl.metadata @@ -0,0 +1 @@ +fadec45b7b48a06b3d2adab91c13f568dce717cd SOURCES/perl-5.26.1.tar.bz2 diff --git a/README.md b/README.md deleted file mode 100644 index 98f42b4..0000000 --- a/README.md +++ /dev/null @@ -1,4 +0,0 @@ -The master branch has no content - -Look at the c7 branch if you are working with CentOS-7, or the c4/c5/c6 branch for CentOS-4, 5 or 6 -If you find this file in a distro specific branch, it means that no content has been checked in yet 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..6b2c147 --- /dev/null +++ b/SOURCES/gendep.macros @@ -0,0 +1,2045 @@ +%global gendep_perl \ +%{nil} +%global gendep_perl_Attribute_Handlers \ +Requires: %{?scl_prefix}perl(:VERSION) >= 5.6.0 \ +Requires: %{?scl_prefix}perl(Carp) \ +Requires: %{?scl_prefix}perl(strict) \ +Requires: %{?scl_prefix}perl(vars) \ +Requires: %{?scl_prefix}perl(warnings) \ +Provides: %{?scl_prefix}perl(Attribute::Handlers) = 0.99 \ +%{nil} +%global gendep_perl_B_Debug \ +Requires: %{?scl_prefix}perl(:VERSION) >= 5.6.0 \ +Requires: %{?scl_prefix}perl(B) \ +Requires: %{?scl_prefix}perl(Config) \ +Requires: %{?scl_prefix}perl(strict) \ +Provides: %{?scl_prefix}perl(B::Debug) = 1.24 \ +%{nil} +%global gendep_perl_CPAN \ +Requires: %{?scl_prefix}perl(:VERSION) >= 5.6.0 \ +Requires: %{?scl_prefix}perl(App::Cpan) \ +Requires: %{?scl_prefix}perl(CPAN) >= 1.80 \ +Requires: %{?scl_prefix}perl(CPAN::Author) \ +Requires: %{?scl_prefix}perl(CPAN::Bundle) \ +Requires: %{?scl_prefix}perl(CPAN::CacheMgr) \ +Requires: %{?scl_prefix}perl(CPAN::Complete) \ +Requires: %{?scl_prefix}perl(CPAN::Debug) \ +Requires: %{?scl_prefix}perl(CPAN::DeferredCode) \ +Requires: %{?scl_prefix}perl(CPAN::Distribution) \ +Requires: %{?scl_prefix}perl(CPAN::Distroprefs) \ +Requires: %{?scl_prefix}perl(CPAN::Distrostatus) \ +Requires: %{?scl_prefix}perl(CPAN::Exception::RecursiveDependency) \ +Requires: %{?scl_prefix}perl(CPAN::Exception::yaml_not_installed) \ +Requires: %{?scl_prefix}perl(CPAN::Exception::yaml_process_error) \ +Requires: %{?scl_prefix}perl(CPAN::FTP) \ +Requires: %{?scl_prefix}perl(CPAN::FTP::netrc) \ +Requires: %{?scl_prefix}perl(CPAN::HTTP::Credentials) \ +Requires: %{?scl_prefix}perl(CPAN::HandleConfig) \ +Requires: %{?scl_prefix}perl(CPAN::Index) >= 1.93 \ +Requires: %{?scl_prefix}perl(CPAN::InfoObj) \ +Requires: %{?scl_prefix}perl(CPAN::LWP::UserAgent) \ +Requires: %{?scl_prefix}perl(CPAN::Mirrors) \ +Requires: %{?scl_prefix}perl(CPAN::Module) \ +Requires: %{?scl_prefix}perl(CPAN::Prompt) \ +Requires: %{?scl_prefix}perl(CPAN::Queue) \ +Requires: %{?scl_prefix}perl(CPAN::Shell) \ +Requires: %{?scl_prefix}perl(CPAN::Tarzip) \ +Requires: %{?scl_prefix}perl(CPAN::URL) \ +Requires: %{?scl_prefix}perl(CPAN::Version) \ +Requires: %{?scl_prefix}perl(Carp) \ +Requires: %{?scl_prefix}perl(Config) \ +Requires: %{?scl_prefix}perl(Cwd) \ +Requires: %{?scl_prefix}perl(DirHandle) \ +Requires: %{?scl_prefix}perl(Exporter) \ +Requires: %{?scl_prefix}perl(ExtUtils::MakeMaker) \ +Requires: %{?scl_prefix}perl(Fcntl) \ +Requires: %{?scl_prefix}perl(File::Basename) \ +Requires: %{?scl_prefix}perl(File::Copy) \ +Requires: %{?scl_prefix}perl(File::Find) \ +Requires: %{?scl_prefix}perl(File::Path) \ +Requires: %{?scl_prefix}perl(File::Spec) \ +Requires: %{?scl_prefix}perl(File::Spec::Functions) \ +Requires: %{?scl_prefix}perl(FileHandle) \ +Requires: %{?scl_prefix}perl(Getopt::Std) \ +Requires: %{?scl_prefix}perl(HTTP::Tiny) >= 0.005 \ +Requires: %{?scl_prefix}perl(Net::Ping) \ +Requires: %{?scl_prefix}perl(Safe) \ +Requires: %{?scl_prefix}perl(Sys::Hostname) \ +Requires: %{?scl_prefix}perl(Text::ParseWords) \ +Requires: %{?scl_prefix}perl(Text::Wrap) \ +Requires: %{?scl_prefix}perl(autouse) \ +Requires: %{?scl_prefix}perl(constant) \ +Requires: %{?scl_prefix}perl(if) \ +Requires: %{?scl_prefix}perl(overload) \ +Requires: %{?scl_prefix}perl(strict) \ +Requires: %{?scl_prefix}perl(vars) \ +Requires: %{?scl_prefix}perl(warnings) \ +Provides: %{?scl_prefix}perl(App::Cpan) = 1.66 \ +Provides: %{?scl_prefix}perl(CPAN) = 2.18 \ +Provides: %{?scl_prefix}perl(CPAN::Author) = 5.5002 \ +Provides: %{?scl_prefix}perl(CPAN::Bundle) = 5.5003 \ +Provides: %{?scl_prefix}perl(CPAN::CacheMgr) = 5.5002 \ +Provides: %{?scl_prefix}perl(CPAN::Complete) = 5.5001 \ +Provides: %{?scl_prefix}perl(CPAN::Debug) = 5.5001 \ +Provides: %{?scl_prefix}perl(CPAN::DeferredCode) = 5.50 \ +Provides: %{?scl_prefix}perl(CPAN::Distribution) = 2.18 \ +Provides: %{?scl_prefix}perl(CPAN::Distroprefs) = 6.0001 \ +Provides: %{?scl_prefix}perl(CPAN::Distroprefs::Iterator) \ +Provides: %{?scl_prefix}perl(CPAN::Distroprefs::Pref) \ +Provides: %{?scl_prefix}perl(CPAN::Distroprefs::Result) \ +Provides: %{?scl_prefix}perl(CPAN::Distroprefs::Result::Error) \ +Provides: %{?scl_prefix}perl(CPAN::Distroprefs::Result::Fatal) \ +Provides: %{?scl_prefix}perl(CPAN::Distroprefs::Result::Success) \ +Provides: %{?scl_prefix}perl(CPAN::Distroprefs::Result::Warning) \ +Provides: %{?scl_prefix}perl(CPAN::Distrostatus) = 5.5 \ +Provides: %{?scl_prefix}perl(CPAN::Eval) \ +Provides: %{?scl_prefix}perl(CPAN::Exception::RecursiveDependency) = 5.5001 \ +Provides: %{?scl_prefix}perl(CPAN::Exception::RecursiveDependency::na) \ +Provides: %{?scl_prefix}perl(CPAN::Exception::blocked_urllist) = 1.001 \ +Provides: %{?scl_prefix}perl(CPAN::Exception::yaml_not_installed) = 5.5 \ +Provides: %{?scl_prefix}perl(CPAN::Exception::yaml_process_error) = 5.5 \ +Provides: %{?scl_prefix}perl(CPAN::FTP) = 5.5008 \ +Provides: %{?scl_prefix}perl(CPAN::FTP::netrc) = 1.01 \ +Provides: %{?scl_prefix}perl(CPAN::FirstTime) = 5.5310 \ +Provides: %{?scl_prefix}perl(CPAN::HTTP::Client) = 1.9601 \ +Provides: %{?scl_prefix}perl(CPAN::HTTP::Credentials) = 1.9601 \ +Provides: %{?scl_prefix}perl(CPAN::HandleConfig) = 5.5008 \ +Provides: %{?scl_prefix}perl(CPAN::Index) = 2.12 \ +Provides: %{?scl_prefix}perl(CPAN::InfoObj) = 5.5 \ +Provides: %{?scl_prefix}perl(CPAN::Kwalify) = 5.50 \ +Provides: %{?scl_prefix}perl(CPAN::LWP::UserAgent) = 1.9601 \ +Provides: %{?scl_prefix}perl(CPAN::Mirrored::By) \ +Provides: %{?scl_prefix}perl(CPAN::Mirrors) = 2.12 \ +Provides: %{?scl_prefix}perl(CPAN::Module) = 5.5003 \ +Provides: %{?scl_prefix}perl(CPAN::Nox) = 5.5001 \ +Provides: %{?scl_prefix}perl(CPAN::Plugin) = 0.96 \ +Provides: %{?scl_prefix}perl(CPAN::Plugin::Specfile) = 0.01 \ +Provides: %{?scl_prefix}perl(CPAN::Prompt) = 5.5 \ +Provides: %{?scl_prefix}perl(CPAN::Queue) = 5.5002 \ +Provides: %{?scl_prefix}perl(CPAN::Queue::Item) \ +Provides: %{?scl_prefix}perl(CPAN::Shell) = 5.5006 \ +Provides: %{?scl_prefix}perl(CPAN::Tarzip) = 5.5012 \ +Provides: %{?scl_prefix}perl(CPAN::URL) = 5.5 \ +Provides: %{?scl_prefix}perl(CPAN::Version) = 5.5003 \ +%{nil} +%global gendep_perl_CPAN_Meta \ +Requires: %{?scl_prefix}perl(:VERSION) >= 5.6.0 \ +Requires: %{?scl_prefix}perl(:VERSION) >= 5.8.1 \ +Requires: %{?scl_prefix}perl(CPAN::Meta::Converter) >= 2.141170 \ +Requires: %{?scl_prefix}perl(CPAN::Meta::Feature) \ +Requires: %{?scl_prefix}perl(CPAN::Meta::Prereqs) \ +Requires: %{?scl_prefix}perl(CPAN::Meta::Requirements) >= 2.121 \ +Requires: %{?scl_prefix}perl(CPAN::Meta::Validator) \ +Requires: %{?scl_prefix}perl(Carp) \ +Requires: %{?scl_prefix}perl(Exporter) \ +Requires: %{?scl_prefix}perl(Parse::CPAN::Meta) >= 1.4400 \ +Requires: %{?scl_prefix}perl(Parse::CPAN::Meta) >= 1.4414 \ +Requires: %{?scl_prefix}perl(Scalar::Util) \ +Requires: %{?scl_prefix}perl(strict) \ +Requires: %{?scl_prefix}perl(warnings) \ +Provides: %{?scl_prefix}perl(CPAN::Meta) = 2.150010 \ +Provides: %{?scl_prefix}perl(CPAN::Meta::Converter) = 2.150010 \ +Provides: %{?scl_prefix}perl(CPAN::Meta::Feature) = 2.150010 \ +Provides: %{?scl_prefix}perl(CPAN::Meta::History) = 2.150010 \ +Provides: %{?scl_prefix}perl(CPAN::Meta::Merge) = 2.150010 \ +Provides: %{?scl_prefix}perl(CPAN::Meta::Prereqs) = 2.150010 \ +Provides: %{?scl_prefix}perl(CPAN::Meta::Spec) = 2.150010 \ +Provides: %{?scl_prefix}perl(CPAN::Meta::Validator) = 2.150010 \ +Provides: %{?scl_prefix}perl(Parse::CPAN::Meta) = 2.150010 \ +%{nil} +%global gendep_perl_CPAN_Meta_Requirements \ +Requires: %{?scl_prefix}perl(:VERSION) >= 5.6.0 \ +Requires: %{?scl_prefix}perl(Carp) \ +Requires: %{?scl_prefix}perl(strict) \ +Requires: %{?scl_prefix}perl(warnings) \ +Provides: %{?scl_prefix}perl(CPAN::Meta::Requirements) = 2.140000 \ +%{nil} +%global gendep_perl_CPAN_Meta_YAML \ +Requires: %{?scl_prefix}perl(:VERSION) >= 5.8.1 \ +Requires: %{?scl_prefix}perl(B) \ +Requires: %{?scl_prefix}perl(Exporter) \ +Requires: %{?scl_prefix}perl(Scalar::Util) \ +Requires: %{?scl_prefix}perl(strict) \ +Requires: %{?scl_prefix}perl(warnings) \ +Provides: %{?scl_prefix}perl(CPAN::Meta::YAML) = 0.018 \ +%{nil} +%global gendep_perl_Carp \ +Requires: %{?scl_prefix}perl(Carp) \ +Requires: %{?scl_prefix}perl(Exporter) \ +Requires: %{?scl_prefix}perl(strict) \ +Requires: %{?scl_prefix}perl(warnings) \ +Provides: %{?scl_prefix}perl(Carp) = 1.42 \ +Provides: %{?scl_prefix}perl(Carp::Heavy) = 1.42 \ +Provides: %{?scl_prefix}perl(Carp::Heavy) = 1.42 \ +%{nil} +%global gendep_perl_Compress_Raw_Bzip2 \ +Requires: %{?scl_prefix}perl(:VERSION) >= 5.6.0 \ +Requires: %{?scl_prefix}perl(Carp) \ +Requires: %{?scl_prefix}perl(Exporter) \ +Requires: %{?scl_prefix}perl(bytes) \ +Requires: %{?scl_prefix}perl(constant) \ +Requires: %{?scl_prefix}perl(strict) \ +Requires: %{?scl_prefix}perl(warnings) \ +Provides: %{?scl_prefix}perl(Compress::Raw::Bzip2) = 2.074 \ +%{nil} +%global gendep_perl_Compress_Raw_Zlib \ +Requires: %{?scl_prefix}perl(:VERSION) >= 5.6.0 \ +Requires: %{?scl_prefix}perl(Carp) \ +Requires: %{?scl_prefix}perl(Exporter) \ +Requires: %{?scl_prefix}perl(bytes) \ +Requires: %{?scl_prefix}perl(constant) \ +Requires: %{?scl_prefix}perl(strict) \ +Requires: %{?scl_prefix}perl(warnings) \ +Provides: %{?scl_prefix}perl(Compress::Raw::Zlib) = 2.074 \ +%{nil} +%global gendep_perl_Config_Perl_V \ +Requires: %{?scl_prefix}perl(Config) \ +Requires: %{?scl_prefix}perl(Exporter) \ +Requires: %{?scl_prefix}perl(strict) \ +Requires: %{?scl_prefix}perl(vars) \ +Requires: %{?scl_prefix}perl(warnings) \ +Provides: %{?scl_prefix}perl(Config::Perl::V) = 0.28 \ +%{nil} +%global gendep_perl_DB_File \ +Requires: %{?scl_prefix}perl(:VERSION) >= 5.8.3 \ +Requires: %{?scl_prefix}perl(Carp) \ +Requires: %{?scl_prefix}perl(Exporter) \ +Requires: %{?scl_prefix}perl(File::Spec) \ +Requires: %{?scl_prefix}perl(Tie::Hash) \ +Requires: %{?scl_prefix}perl(strict) \ +Requires: %{?scl_prefix}perl(warnings) \ +Provides: %{?scl_prefix}perl(DB_File) = 1.840 \ +Provides: %{?scl_prefix}perl(DB_File::BTREEINFO) \ +Provides: %{?scl_prefix}perl(DB_File::HASHINFO) \ +Provides: %{?scl_prefix}perl(DB_File::RECNOINFO) \ +%{nil} +%global gendep_perl_Data_Dumper \ +Requires: %{?scl_prefix}perl(:VERSION) >= 5.6.0 \ +Requires: %{?scl_prefix}perl(Carp) \ +Requires: %{?scl_prefix}perl(Exporter) \ +Requires: %{?scl_prefix}perl(constant) \ +Provides: %{?scl_prefix}perl(Data::Dumper) = 2.167 \ +%{nil} +%global gendep_perl_Devel_PPPort \ +Requires: %{?scl_prefix}perl(strict) \ +Requires: %{?scl_prefix}perl(vars) \ +Provides: %{?scl_prefix}perl(Devel::PPPort) = 3.35 \ +%{nil} +%global gendep_perl_Devel_Peek \ +Requires: %{?scl_prefix}perl(Exporter) \ +Requires: %{?scl_prefix}perl(XSLoader) \ +Provides: %{?scl_prefix}perl(Devel::Peek) = 1.26 \ +%{nil} +%global gendep_perl_Devel_SelfStubber \ +Requires: %{?scl_prefix}perl(File::Spec) \ +Requires: %{?scl_prefix}perl(SelfLoader) \ +Provides: %{?scl_prefix}perl(Devel::SelfStubber) = 1.06 \ +%{nil} +%global gendep_perl_Digest \ +Requires: %{?scl_prefix}perl(Carp) \ +Requires: %{?scl_prefix}perl(Digest) \ +Requires: %{?scl_prefix}perl(Exporter) \ +Requires: %{?scl_prefix}perl(strict) \ +Requires: %{?scl_prefix}perl(vars) \ +Provides: %{?scl_prefix}perl(Digest) = 1.17 \ +Provides: %{?scl_prefix}perl(Digest::base) = 1.16 \ +Provides: %{?scl_prefix}perl(Digest::file) = 1.16 \ +%{nil} +%global gendep_perl_Digest_MD5 \ +Requires: %{?scl_prefix}perl(Exporter) \ +Requires: %{?scl_prefix}perl(strict) \ +Requires: %{?scl_prefix}perl(vars) \ +Provides: %{?scl_prefix}perl(Digest::MD5) = 2.55 \ +%{nil} +%global gendep_perl_Digest_SHA \ +Requires: %{?scl_prefix}perl(:VERSION) >= 5.3.0 \ +Requires: %{?scl_prefix}perl(DynaLoader) \ +Requires: %{?scl_prefix}perl(Exporter) \ +Requires: %{?scl_prefix}perl(Fcntl) \ +Requires: %{?scl_prefix}perl(Getopt::Long) \ +Requires: %{?scl_prefix}perl(integer) \ +Requires: %{?scl_prefix}perl(strict) \ +Requires: %{?scl_prefix}perl(vars) \ +Requires: %{?scl_prefix}perl(warnings) \ +Provides: %{?scl_prefix}perl(Digest::SHA) = 5.96 \ +%{nil} +%global gendep_perl_Encode \ +Requires: %{?scl_prefix}perl(:VERSION) >= 5.8.0 \ +Requires: %{?scl_prefix}perl(:VERSION) >= 5.8.1 \ +Requires: %{?scl_prefix}perl(Carp) \ +Requires: %{?scl_prefix}perl(Encode) \ +Requires: %{?scl_prefix}perl(Encode::Alias) \ +Requires: %{?scl_prefix}perl(Encode::CJKConstants) \ +Requires: %{?scl_prefix}perl(Encode::CN::HZ) \ +Requires: %{?scl_prefix}perl(Encode::Config) \ +Requires: %{?scl_prefix}perl(Encode::Encoding) \ +Requires: %{?scl_prefix}perl(Encode::Guess) \ +Requires: %{?scl_prefix}perl(Encode::JP::JIS7) \ +Requires: %{?scl_prefix}perl(Encode::KR::2022_KR) \ +Requires: %{?scl_prefix}perl(Encode::MIME::Header) \ +Requires: %{?scl_prefix}perl(Encode::Unicode) \ +Requires: %{?scl_prefix}perl(Exporter) >= 5.57 \ +Requires: %{?scl_prefix}perl(File::Basename) \ +Requires: %{?scl_prefix}perl(Getopt::Long) \ +Requires: %{?scl_prefix}perl(Getopt::Std) \ +Requires: %{?scl_prefix}perl(MIME::Base64) \ +Requires: %{?scl_prefix}perl(XSLoader) \ +Requires: %{?scl_prefix}perl(bytes) \ +Requires: %{?scl_prefix}perl(constant) \ +Requires: %{?scl_prefix}perl(overload) \ +Requires: %{?scl_prefix}perl(parent) \ +Requires: %{?scl_prefix}perl(re) \ +Requires: %{?scl_prefix}perl(strict) \ +Requires: %{?scl_prefix}perl(utf8) \ +Requires: %{?scl_prefix}perl(vars) \ +Requires: %{?scl_prefix}perl(warnings) \ +Provides: %{?scl_prefix}perl(Encode) = 2.88 \ +Provides: %{?scl_prefix}perl(Encode::Alias) = 2.21 \ +Provides: %{?scl_prefix}perl(Encode::Byte) = 2.4 \ +Provides: %{?scl_prefix}perl(Encode::CJKConstants) = 2.2 \ +Provides: %{?scl_prefix}perl(Encode::CN) = 2.3 \ +Provides: %{?scl_prefix}perl(Encode::CN::HZ) = 2.8 \ +Provides: %{?scl_prefix}perl(Encode::Config) = 2.5 \ +Provides: %{?scl_prefix}perl(Encode::EBCDIC) = 2.2 \ +Provides: %{?scl_prefix}perl(Encode::Encoder) = 2.3 \ +Provides: %{?scl_prefix}perl(Encode::Encoding) = 2.7 \ +Provides: %{?scl_prefix}perl(Encode::GSM0338) = 2.5 \ +Provides: %{?scl_prefix}perl(Encode::Guess) = 2.6 \ +Provides: %{?scl_prefix}perl(Encode::Internal) \ +Provides: %{?scl_prefix}perl(Encode::JP) = 2.4 \ +Provides: %{?scl_prefix}perl(Encode::JP::H2Z) = 2.2 \ +Provides: %{?scl_prefix}perl(Encode::JP::JIS7) = 2.5 \ +Provides: %{?scl_prefix}perl(Encode::KR) = 2.3 \ +Provides: %{?scl_prefix}perl(Encode::KR::2022_KR) = 2.3 \ +Provides: %{?scl_prefix}perl(Encode::MIME::Header) = 2.24 \ +Provides: %{?scl_prefix}perl(Encode::MIME::Header::ISO_2022_JP) = 1.7 \ +Provides: %{?scl_prefix}perl(Encode::MIME::Name) = 1.2 \ +Provides: %{?scl_prefix}perl(Encode::Symbol) = 2.2 \ +Provides: %{?scl_prefix}perl(Encode::TW) = 2.3 \ +Provides: %{?scl_prefix}perl(Encode::UTF_EBCDIC) \ +Provides: %{?scl_prefix}perl(Encode::Unicode) = 2.15 \ +Provides: %{?scl_prefix}perl(Encode::Unicode::UTF7) = 2.8 \ +Provides: %{?scl_prefix}perl(Encode::XS) \ +Provides: %{?scl_prefix}perl(Encode::utf8) \ +%{nil} +%global gendep_perl_Encode_devel \ +Requires: %{?scl_prefix}perl(Config) \ +Requires: %{?scl_prefix}perl(File::Find) \ +Requires: %{?scl_prefix}perl(Getopt::Std) \ +Requires: %{?scl_prefix}perl(constant) \ +Requires: %{?scl_prefix}perl(strict) \ +Requires: %{?scl_prefix}perl(vars) \ +Requires: %{?scl_prefix}perl(warnings) \ +%{nil} +%global gendep_perl_Env \ +Requires: %{?scl_prefix}perl(Config) \ +Requires: %{?scl_prefix}perl(Tie::Array) \ +Provides: %{?scl_prefix}perl(Env) = 1.04 \ +Provides: %{?scl_prefix}perl(Env::Array) \ +Provides: %{?scl_prefix}perl(Env::Array::VMS) \ +%{nil} +%global gendep_perl_Errno \ +Requires: %{?scl_prefix}perl(Config) \ +Requires: %{?scl_prefix}perl(Exporter) \ +Requires: %{?scl_prefix}perl(strict) \ +Provides: %{?scl_prefix}perl(Errno) = 1.28 \ +%{nil} +%global gendep_perl_Exporter \ +Requires: %{?scl_prefix}perl(:VERSION) >= 5.6.0 \ +Requires: %{?scl_prefix}perl(Exporter) \ +Requires: %{?scl_prefix}perl(strict) \ +Provides: %{?scl_prefix}perl(Exporter) = 5.72 \ +Provides: %{?scl_prefix}perl(Exporter::Heavy) \ +%{nil} +%global gendep_perl_ExtUtils_CBuilder \ +Requires: %{?scl_prefix}perl(Config) \ +Requires: %{?scl_prefix}perl(Cwd) \ +Requires: %{?scl_prefix}perl(ExtUtils::CBuilder::Base) \ +Requires: %{?scl_prefix}perl(ExtUtils::CBuilder::Platform::Unix) \ +Requires: %{?scl_prefix}perl(File::Basename) \ +Requires: %{?scl_prefix}perl(File::Path) \ +Requires: %{?scl_prefix}perl(File::Spec) \ +Requires: %{?scl_prefix}perl(File::Spec::Functions) \ +Requires: %{?scl_prefix}perl(File::Temp) \ +Requires: %{?scl_prefix}perl(IO::File) \ +Requires: %{?scl_prefix}perl(IPC::Cmd) \ +Requires: %{?scl_prefix}perl(Perl::OSType) \ +Requires: %{?scl_prefix}perl(Text::ParseWords) \ +Requires: %{?scl_prefix}perl(strict) \ +Requires: %{?scl_prefix}perl(vars) \ +Requires: %{?scl_prefix}perl(warnings) \ +Provides: %{?scl_prefix}perl(ExtUtils::CBuilder) = 0.280225 \ +Provides: %{?scl_prefix}perl(ExtUtils::CBuilder::Base) = 0.280225 \ +Provides: %{?scl_prefix}perl(ExtUtils::CBuilder::Platform::Unix) = 0.280225 \ +Provides: %{?scl_prefix}perl(ExtUtils::CBuilder::Platform::VMS) = 0.280225 \ +Provides: %{?scl_prefix}perl(ExtUtils::CBuilder::Platform::Windows) = 0.280225 \ +Provides: %{?scl_prefix}perl(ExtUtils::CBuilder::Platform::Windows::BCC) = 0.280225 \ +Provides: %{?scl_prefix}perl(ExtUtils::CBuilder::Platform::Windows::GCC) = 0.280225 \ +Provides: %{?scl_prefix}perl(ExtUtils::CBuilder::Platform::Windows::MSVC) = 0.280225 \ +Provides: %{?scl_prefix}perl(ExtUtils::CBuilder::Platform::aix) = 0.280225 \ +Provides: %{?scl_prefix}perl(ExtUtils::CBuilder::Platform::android) = 0.280225 \ +Provides: %{?scl_prefix}perl(ExtUtils::CBuilder::Platform::cygwin) = 0.280225 \ +Provides: %{?scl_prefix}perl(ExtUtils::CBuilder::Platform::darwin) = 0.280225 \ +Provides: %{?scl_prefix}perl(ExtUtils::CBuilder::Platform::dec_osf) = 0.280225 \ +Provides: %{?scl_prefix}perl(ExtUtils::CBuilder::Platform::linux) = 0.280206 \ +Provides: %{?scl_prefix}perl(ExtUtils::CBuilder::Platform::os2) = 0.280225 \ +%{nil} +%global gendep_perl_ExtUtils_Command \ +Requires: %{?scl_prefix}perl(:VERSION) >= 5.5.30 \ +Requires: %{?scl_prefix}perl(Exporter) \ +Requires: %{?scl_prefix}perl(strict) \ +Requires: %{?scl_prefix}perl(vars) \ +Provides: %{?scl_prefix}perl(ExtUtils::Command) = 7.24 \ +%{nil} +%global gendep_perl_ExtUtils_Embed \ +Requires: %{?scl_prefix}perl(Config) \ +Requires: %{?scl_prefix}perl(Exporter) \ +Requires: %{?scl_prefix}perl(File::Spec) \ +Requires: %{?scl_prefix}perl(strict) \ +Requires: %{?scl_prefix}perl(vars) \ +Provides: %{?scl_prefix}perl(ExtUtils::Embed) = 1.34 \ +%{nil} +%global gendep_perl_ExtUtils_Install \ +Requires: %{?scl_prefix}perl(:VERSION) >= 5.5.30 \ +Requires: %{?scl_prefix}perl(AutoSplit) \ +Requires: %{?scl_prefix}perl(Carp) \ +Requires: %{?scl_prefix}perl(Config) \ +Requires: %{?scl_prefix}perl(Cwd) \ +Requires: %{?scl_prefix}perl(Exporter) \ +Requires: %{?scl_prefix}perl(ExtUtils::MakeMaker) \ +Requires: %{?scl_prefix}perl(ExtUtils::Packlist) \ +Requires: %{?scl_prefix}perl(File::Basename) \ +Requires: %{?scl_prefix}perl(File::Compare) \ +Requires: %{?scl_prefix}perl(File::Copy) \ +Requires: %{?scl_prefix}perl(File::Find) \ +Requires: %{?scl_prefix}perl(File::Path) \ +Requires: %{?scl_prefix}perl(File::Spec) \ +Requires: %{?scl_prefix}perl(strict) \ +Requires: %{?scl_prefix}perl(vars) \ +Provides: %{?scl_prefix}perl(ExtUtils::Install) = 2.04 \ +Provides: %{?scl_prefix}perl(ExtUtils::Install::Warn) \ +Provides: %{?scl_prefix}perl(ExtUtils::Installed) = 2.04 \ +Provides: %{?scl_prefix}perl(ExtUtils::Packlist) = 2.04 \ +%{nil} +%global gendep_perl_ExtUtils_MM_Utils \ +Requires: %{?scl_prefix}perl(:VERSION) >= 5.6.0 \ +Requires: %{?scl_prefix}perl(strict) \ +Requires: %{?scl_prefix}perl(vars) \ +Provides: %{?scl_prefix}perl(ExtUtils::MM::Utils) = 7.11 \ +%{nil} +%global gendep_perl_ExtUtils_MakeMaker \ +Requires: %{?scl_prefix}perl(:VERSION) >= 5.6.0 \ +Requires: %{?scl_prefix}perl(:VERSION) >= 5.6.1 \ +Requires: %{?scl_prefix}perl(Carp) \ +Requires: %{?scl_prefix}perl(Config) \ +Requires: %{?scl_prefix}perl(Cwd) \ +Requires: %{?scl_prefix}perl(Encode) \ +Requires: %{?scl_prefix}perl(Encode::Alias) \ +Requires: %{?scl_prefix}perl(Exporter) \ +Requires: %{?scl_prefix}perl(ExtUtils::Installed) \ +Requires: %{?scl_prefix}perl(ExtUtils::Liblist) \ +Requires: %{?scl_prefix}perl(ExtUtils::Liblist::Kid) \ +Requires: %{?scl_prefix}perl(ExtUtils::MM) \ +Requires: %{?scl_prefix}perl(ExtUtils::MM_Any) \ +Requires: %{?scl_prefix}perl(ExtUtils::MM_Unix) \ +Requires: %{?scl_prefix}perl(ExtUtils::MM_Win32) \ +Requires: %{?scl_prefix}perl(ExtUtils::MY) \ +Requires: %{?scl_prefix}perl(ExtUtils::MakeMaker) \ +Requires: %{?scl_prefix}perl(ExtUtils::MakeMaker::Config) \ +Requires: %{?scl_prefix}perl(ExtUtils::MakeMaker::version) \ +Requires: %{?scl_prefix}perl(ExtUtils::Packlist) \ +Requires: %{?scl_prefix}perl(File::Basename) \ +Requires: %{?scl_prefix}perl(File::Path) \ +Requires: %{?scl_prefix}perl(File::Spec) \ +Requires: %{?scl_prefix}perl(IO::File) \ +Requires: %{?scl_prefix}perl(base) \ +Requires: %{?scl_prefix}perl(lib) \ +Requires: %{?scl_prefix}perl(strict) \ +Requires: %{?scl_prefix}perl(vars) \ +Requires: %{?scl_prefix}perl(warnings) \ +Provides: %{?scl_prefix}perl(ExtUtils::Command::MM) = 7.24 \ +Provides: %{?scl_prefix}perl(ExtUtils::Liblist) = 7.24 \ +Provides: %{?scl_prefix}perl(ExtUtils::Liblist::Kid) = 7.24 \ +Provides: %{?scl_prefix}perl(ExtUtils::MM) = 7.24 \ +Provides: %{?scl_prefix}perl(ExtUtils::MM_AIX) = 7.24 \ +Provides: %{?scl_prefix}perl(ExtUtils::MM_Any) = 7.24 \ +Provides: %{?scl_prefix}perl(ExtUtils::MM_BeOS) = 7.24 \ +Provides: %{?scl_prefix}perl(ExtUtils::MM_Cygwin) = 7.24 \ +Provides: %{?scl_prefix}perl(ExtUtils::MM_DOS) = 7.24 \ +Provides: %{?scl_prefix}perl(ExtUtils::MM_Darwin) = 7.24 \ +Provides: %{?scl_prefix}perl(ExtUtils::MM_MacOS) = 7.24 \ +Provides: %{?scl_prefix}perl(ExtUtils::MM_NW5) = 7.24 \ +Provides: %{?scl_prefix}perl(ExtUtils::MM_OS2) = 7.24 \ +Provides: %{?scl_prefix}perl(ExtUtils::MM_QNX) = 7.24 \ +Provides: %{?scl_prefix}perl(ExtUtils::MM_UWIN) = 7.24 \ +Provides: %{?scl_prefix}perl(ExtUtils::MM_Unix) = 7.24 \ +Provides: %{?scl_prefix}perl(ExtUtils::MM_VMS) = 7.24 \ +Provides: %{?scl_prefix}perl(ExtUtils::MM_VOS) = 7.24 \ +Provides: %{?scl_prefix}perl(ExtUtils::MM_Win32) = 7.24 \ +Provides: %{?scl_prefix}perl(ExtUtils::MM_Win95) = 7.24 \ +Provides: %{?scl_prefix}perl(ExtUtils::MY) = 7.24 \ +Provides: %{?scl_prefix}perl(ExtUtils::MakeMaker) = 7.24 \ +Provides: %{?scl_prefix}perl(ExtUtils::MakeMaker::Config) = 7.24 \ +Provides: %{?scl_prefix}perl(ExtUtils::MakeMaker::Locale) = 7.24 \ +Provides: %{?scl_prefix}perl(ExtUtils::MakeMaker::version) = 7.24 \ +Provides: %{?scl_prefix}perl(ExtUtils::Mkbootstrap) = 7.24 \ +Provides: %{?scl_prefix}perl(ExtUtils::Mksymlists) = 7.24 \ +Provides: %{?scl_prefix}perl(ExtUtils::testlib) = 7.24 \ +Provides: %{?scl_prefix}perl(MM) \ +Provides: %{?scl_prefix}perl(MY) \ +%{nil} +%global gendep_perl_ExtUtils_Manifest \ +Requires: %{?scl_prefix}perl(Carp) \ +Requires: %{?scl_prefix}perl(Config) \ +Requires: %{?scl_prefix}perl(Exporter) \ +Requires: %{?scl_prefix}perl(File::Basename) \ +Requires: %{?scl_prefix}perl(File::Copy) \ +Requires: %{?scl_prefix}perl(File::Find) \ +Requires: %{?scl_prefix}perl(File::Spec) >= 0.8 \ +Requires: %{?scl_prefix}perl(strict) \ +Requires: %{?scl_prefix}perl(warnings) \ +Provides: %{?scl_prefix}perl(ExtUtils::Manifest) = 1.70 \ +%{nil} +%global gendep_perl_ExtUtils_Miniperl \ +Requires: %{?scl_prefix}perl(Exporter) \ +Requires: %{?scl_prefix}perl(ExtUtils::Embed) >= 1.31 \ +Requires: %{?scl_prefix}perl(strict) \ +Requires: %{?scl_prefix}perl(vars) \ +Provides: %{?scl_prefix}perl(ExtUtils::Miniperl) = 1.06 \ +%{nil} +%global gendep_perl_ExtUtils_ParseXS \ +Requires: %{?scl_prefix}perl(:VERSION) >= 5.6.0 \ +Requires: %{?scl_prefix}perl(:VERSION) >= 5.6.1 \ +Requires: %{?scl_prefix}perl(Config) \ +Requires: %{?scl_prefix}perl(Cwd) \ +Requires: %{?scl_prefix}perl(Exporter) \ +Requires: %{?scl_prefix}perl(ExtUtils::ParseXS) \ +Requires: %{?scl_prefix}perl(ExtUtils::ParseXS::Constants) \ +Requires: %{?scl_prefix}perl(ExtUtils::ParseXS::CountLines) \ +Requires: %{?scl_prefix}perl(ExtUtils::ParseXS::Eval) \ +Requires: %{?scl_prefix}perl(ExtUtils::ParseXS::Utilities) \ +Requires: %{?scl_prefix}perl(ExtUtils::Typemaps) \ +Requires: %{?scl_prefix}perl(ExtUtils::Typemaps::InputMap) \ +Requires: %{?scl_prefix}perl(ExtUtils::Typemaps::OutputMap) \ +Requires: %{?scl_prefix}perl(ExtUtils::Typemaps::Type) \ +Requires: %{?scl_prefix}perl(File::Basename) \ +Requires: %{?scl_prefix}perl(File::Spec) \ +Requires: %{?scl_prefix}perl(Getopt::Long) \ +Requires: %{?scl_prefix}perl(Symbol) \ +Requires: %{?scl_prefix}perl(re) \ +Requires: %{?scl_prefix}perl(strict) \ +Requires: %{?scl_prefix}perl(warnings) \ +Provides: %{?scl_prefix}perl(ExtUtils::ParseXS) = 3.34 \ +Provides: %{?scl_prefix}perl(ExtUtils::ParseXS::Constants) = 3.34 \ +Provides: %{?scl_prefix}perl(ExtUtils::ParseXS::CountLines) = 3.34 \ +Provides: %{?scl_prefix}perl(ExtUtils::ParseXS::Eval) = 3.34 \ +Provides: %{?scl_prefix}perl(ExtUtils::ParseXS::Utilities) = 3.34 \ +Provides: %{?scl_prefix}perl(ExtUtils::Typemaps) = 3.34 \ +Provides: %{?scl_prefix}perl(ExtUtils::Typemaps::Cmd) = 3.34 \ +Provides: %{?scl_prefix}perl(ExtUtils::Typemaps::InputMap) = 3.34 \ +Provides: %{?scl_prefix}perl(ExtUtils::Typemaps::OutputMap) = 3.34 \ +Provides: %{?scl_prefix}perl(ExtUtils::Typemaps::Type) = 3.34 \ +%{nil} +%global gendep_perl_File_Fetch \ +Requires: %{?scl_prefix}perl(Carp) \ +Requires: %{?scl_prefix}perl(Cwd) \ +Requires: %{?scl_prefix}perl(File::Basename) \ +Requires: %{?scl_prefix}perl(File::Copy) \ +Requires: %{?scl_prefix}perl(File::Path) \ +Requires: %{?scl_prefix}perl(File::Spec) \ +Requires: %{?scl_prefix}perl(File::Spec::Unix) \ +Requires: %{?scl_prefix}perl(File::Temp) \ +Requires: %{?scl_prefix}perl(FileHandle) \ +Requires: %{?scl_prefix}perl(IPC::Cmd) \ +Requires: %{?scl_prefix}perl(Locale::Maketext::Simple) \ +Requires: %{?scl_prefix}perl(Module::Load::Conditional) \ +Requires: %{?scl_prefix}perl(Params::Check) \ +Requires: %{?scl_prefix}perl(constant) \ +Requires: %{?scl_prefix}perl(strict) \ +Requires: %{?scl_prefix}perl(vars) \ +Provides: %{?scl_prefix}perl(File::Fetch) = 0.52 \ +%{nil} +%global gendep_perl_File_Path \ +Requires: %{?scl_prefix}perl(:VERSION) >= 5.5.0 \ +Requires: %{?scl_prefix}perl(Cwd) \ +Requires: %{?scl_prefix}perl(Exporter) \ +Requires: %{?scl_prefix}perl(File::Basename) \ +Requires: %{?scl_prefix}perl(File::Spec) \ +Requires: %{?scl_prefix}perl(strict) \ +Requires: %{?scl_prefix}perl(vars) \ +Provides: %{?scl_prefix}perl(File::Path) = 2.12 \ +%{nil} +%global gendep_perl_File_Temp \ +Requires: %{?scl_prefix}perl(:VERSION) >= 5.6.0 \ +Requires: %{?scl_prefix}perl(Carp) \ +Requires: %{?scl_prefix}perl(Cwd) \ +Requires: %{?scl_prefix}perl(Errno) \ +Requires: %{?scl_prefix}perl(Exporter) >= 5.57 \ +Requires: %{?scl_prefix}perl(Fcntl) >= 1.03 \ +Requires: %{?scl_prefix}perl(File::Path) >= 2.06 \ +Requires: %{?scl_prefix}perl(File::Spec) >= 0.8 \ +Requires: %{?scl_prefix}perl(IO::Handle) \ +Requires: %{?scl_prefix}perl(IO::Seekable) \ +Requires: %{?scl_prefix}perl(Scalar::Util) \ +Requires: %{?scl_prefix}perl(Symbol) \ +Requires: %{?scl_prefix}perl(constant) \ +Requires: %{?scl_prefix}perl(overload) \ +Requires: %{?scl_prefix}perl(parent) >= 0.221 \ +Requires: %{?scl_prefix}perl(strict) \ +Requires: %{?scl_prefix}perl(vars) \ +Provides: %{?scl_prefix}perl(File::Temp) = 0.2304 \ +Provides: %{?scl_prefix}perl(File::Temp::Dir) \ +%{nil} +%global gendep_perl_Filter \ +Requires: %{?scl_prefix}perl(:VERSION) >= 5.5.0 \ +Requires: %{?scl_prefix}perl(Carp) \ +Requires: %{?scl_prefix}perl(DynaLoader) \ +Requires: %{?scl_prefix}perl(Exporter) \ +Requires: %{?scl_prefix}perl(strict) \ +Requires: %{?scl_prefix}perl(vars) \ +Requires: %{?scl_prefix}perl(warnings) \ +Provides: %{?scl_prefix}perl(Filter::Util::Call) = 1.55 \ +%{nil} +%global gendep_perl_Filter_Simple \ +Requires: %{?scl_prefix}perl(Carp) \ +Requires: %{?scl_prefix}perl(Filter::Util::Call) \ +Requires: %{?scl_prefix}perl(Text::Balanced) \ +Requires: %{?scl_prefix}perl(vars) \ +Provides: %{?scl_prefix}perl(Filter::Simple) = 0.93 \ +%{nil} +%global gendep_perl_Getopt_Long \ +Requires: %{?scl_prefix}perl(:VERSION) >= 5.4.0 \ +Requires: %{?scl_prefix}perl(Exporter) \ +Requires: %{?scl_prefix}perl(constant) \ +Requires: %{?scl_prefix}perl(overload) \ +Requires: %{?scl_prefix}perl(strict) \ +Requires: %{?scl_prefix}perl(vars) \ +Provides: %{?scl_prefix}perl(Getopt::Long) = 2.49 \ +Provides: %{?scl_prefix}perl(Getopt::Long::CallBack) \ +Provides: %{?scl_prefix}perl(Getopt::Long::Parser) \ +%{nil} +%global gendep_perl_HTTP_Tiny \ +Requires: %{?scl_prefix}perl(Errno) \ +Requires: %{?scl_prefix}perl(IO::Socket) \ +Requires: %{?scl_prefix}perl(Socket) \ +Requires: %{?scl_prefix}perl(strict) \ +Requires: %{?scl_prefix}perl(warnings) \ +Provides: %{?scl_prefix}perl(HTTP::Tiny) = 0.070 \ +%{nil} +%global gendep_perl_interpreter \ +Requires: %{?scl_prefix}perl(:VERSION) >= 5.0.0 \ +Requires: %{?scl_prefix}perl(:VERSION) >= 5.10.1 \ +Requires: %{?scl_prefix}perl(:VERSION) >= 5.24.0 \ +Requires: %{?scl_prefix}perl(:VERSION) >= 5.3.0 \ +Requires: %{?scl_prefix}perl(:VERSION) >= 5.5.0 \ +Requires: %{?scl_prefix}perl(:VERSION) >= 5.6.0 \ +Requires: %{?scl_prefix}perl(:VERSION) >= 5.7.0 \ +Requires: %{?scl_prefix}perl(:VERSION) >= 5.7.3 \ +Requires: %{?scl_prefix}perl(:VERSION) >= 5.8.0 \ +Requires: %{?scl_prefix}perl(:VERSION) >= 5.9.1 \ +Requires: %{?scl_prefix}perl(:VERSION) >= 5.9.4 \ +Requires: %{?scl_prefix}perl(B) \ +Requires: %{?scl_prefix}perl(B::Concise) \ +Requires: %{?scl_prefix}perl(B::Op_private) \ +Requires: %{?scl_prefix}perl(B::Terse) \ +Requires: %{?scl_prefix}perl(Carp) \ +Requires: %{?scl_prefix}perl(Class::Struct) \ +Requires: %{?scl_prefix}perl(Config) \ +Requires: %{?scl_prefix}perl(Cwd) \ +Requires: %{?scl_prefix}perl(Exporter) \ +Requires: %{?scl_prefix}perl(ExtUtils::Constant::Base) \ +Requires: %{?scl_prefix}perl(ExtUtils::Constant::Utils) \ +Requires: %{?scl_prefix}perl(ExtUtils::Constant::XS) \ +Requires: %{?scl_prefix}perl(Fcntl) \ +Requires: %{?scl_prefix}perl(File::Basename) \ +Requires: %{?scl_prefix}perl(File::Path) \ +Requires: %{?scl_prefix}perl(File::Spec) \ +Requires: %{?scl_prefix}perl(File::Spec::Functions) \ +Requires: %{?scl_prefix}perl(I18N::LangTags) \ +Requires: %{?scl_prefix}perl(IO::File) \ +Requires: %{?scl_prefix}perl(IPC::Open3) \ +Requires: %{?scl_prefix}perl(Opcode) >= 1.01 \ +Requires: %{?scl_prefix}perl(POSIX) \ +Requires: %{?scl_prefix}perl(Scalar::Util) >= 1.10 \ +Requires: %{?scl_prefix}perl(Symbol) \ +Requires: %{?scl_prefix}perl(Text::Tabs) \ +Requires: %{?scl_prefix}perl(Text::Wrap) \ +Requires: %{?scl_prefix}perl(Tie::Handle) \ +Requires: %{?scl_prefix}perl(Tie::Hash) \ +Requires: %{?scl_prefix}perl(Tie::StdHandle) \ +Requires: %{?scl_prefix}perl(Time::tm) \ +Requires: %{?scl_prefix}perl(Unicode::Normalize) \ +Requires: %{?scl_prefix}perl(XSLoader) \ +Requires: %{?scl_prefix}perl(_charnames) \ +Requires: %{?scl_prefix}perl(bytes) \ +Requires: %{?scl_prefix}perl(charnames) \ +Requires: %{?scl_prefix}perl(constant) \ +Requires: %{?scl_prefix}perl(feature) \ +Requires: %{?scl_prefix}perl(if) \ +Requires: %{?scl_prefix}perl(integer) \ +Requires: %{?scl_prefix}perl(overload) \ +Requires: %{?scl_prefix}perl(parent) \ +Requires: %{?scl_prefix}perl(re) \ +Requires: %{?scl_prefix}perl(strict) \ +Requires: %{?scl_prefix}perl(subs) \ +Requires: %{?scl_prefix}perl(threads) \ +Requires: %{?scl_prefix}perl(threads::shared) \ +Requires: %{?scl_prefix}perl(unicore::Name) \ +Requires: %{?scl_prefix}perl(utf8) \ +Requires: %{?scl_prefix}perl(vars) \ +Requires: %{?scl_prefix}perl(warnings) \ +Requires: %{?scl_prefix}perl(warnings::register) \ +Provides: %{?scl_prefix}perl(AnyDBM_File) = 1.01 \ +Provides: %{?scl_prefix}perl(AutoLoader) = 5.74 \ +Provides: %{?scl_prefix}perl(AutoSplit) = 1.06 \ +Provides: %{?scl_prefix}perl(B) = 1.68 \ +Provides: %{?scl_prefix}perl(B::Concise) = 0.999 \ +Provides: %{?scl_prefix}perl(B::Deparse) = 1.40 \ +Provides: %{?scl_prefix}perl(B::OBJECT) \ +Provides: %{?scl_prefix}perl(B::Op_private) = 5.026000 \ +Provides: %{?scl_prefix}perl(B::Showlex) = 1.05 \ +Provides: %{?scl_prefix}perl(B::Terse) = 1.07 \ +Provides: %{?scl_prefix}perl(B::Xref) = 1.06 \ +Provides: %{?scl_prefix}perl(Benchmark) = 1.22 \ +Provides: %{?scl_prefix}perl(Class::Struct) = 0.65 \ +Provides: %{?scl_prefix}perl(Class::Struct::Tie_ISA) \ +Provides: %{?scl_prefix}perl(Config) = 5.026000 \ +Provides: %{?scl_prefix}perl(Config::Extensions) = 0.01 \ +Provides: %{?scl_prefix}perl(DB) = 1.08 \ +Provides: %{?scl_prefix}perl(DBM_Filter) = 0.06 \ +Provides: %{?scl_prefix}perl(DBM_Filter::compress) = 0.03 \ +Provides: %{?scl_prefix}perl(DBM_Filter::encode) = 0.03 \ +Provides: %{?scl_prefix}perl(DBM_Filter::int32) = 0.03 \ +Provides: %{?scl_prefix}perl(DBM_Filter::null) = 0.03 \ +Provides: %{?scl_prefix}perl(DBM_Filter::utf8) = 0.03 \ +Provides: %{?scl_prefix}perl(DirHandle) = 1.04 \ +Provides: %{?scl_prefix}perl(Dumpvalue) = 1.18 \ +Provides: %{?scl_prefix}perl(DynaLoader) = 1.42 \ +Provides: %{?scl_prefix}perl(EVERY::LAST) \ +Provides: %{?scl_prefix}perl(English) = 1.10 \ +Provides: %{?scl_prefix}perl(ExtUtils::Constant) = 0.23 \ +Provides: %{?scl_prefix}perl(ExtUtils::Constant::Base) = 0.05 \ +Provides: %{?scl_prefix}perl(ExtUtils::Constant::ProxySubs) = 0.08 \ +Provides: %{?scl_prefix}perl(ExtUtils::Constant::Utils) = 0.03 \ +Provides: %{?scl_prefix}perl(ExtUtils::Constant::XS) = 0.03 \ +Provides: %{?scl_prefix}perl(Fcntl) = 1.13 \ +Provides: %{?scl_prefix}perl(File::Basename) = 2.85 \ +Provides: %{?scl_prefix}perl(File::Compare) = 1.1006 \ +Provides: %{?scl_prefix}perl(File::Copy) = 2.32 \ +Provides: %{?scl_prefix}perl(File::DosGlob) = 1.12 \ +Provides: %{?scl_prefix}perl(File::Find) = 1.34 \ +Provides: %{?scl_prefix}perl(File::Glob) = 1.28 \ +Provides: %{?scl_prefix}perl(File::stat) = 1.07 \ +Provides: %{?scl_prefix}perl(FileCache) = 1.09 \ +Provides: %{?scl_prefix}perl(FileHandle) = 2.03 \ +Provides: %{?scl_prefix}perl(FindBin) = 1.51 \ +Provides: %{?scl_prefix}perl(GDBM_File) = 1.15 \ +Provides: %{?scl_prefix}perl(Getopt::Std) = 1.12 \ +Provides: %{?scl_prefix}perl(Hash::Util) = 0.22 \ +Provides: %{?scl_prefix}perl(Hash::Util::FieldHash) = 1.19 \ +Provides: %{?scl_prefix}perl(I18N::Collate) = 1.02 \ +Provides: %{?scl_prefix}perl(I18N::LangTags) = 0.42 \ +Provides: %{?scl_prefix}perl(I18N::LangTags::Detect) = 1.06 \ +Provides: %{?scl_prefix}perl(I18N::LangTags::List) = 0.39 \ +Provides: %{?scl_prefix}perl(I18N::Langinfo) = 0.13 \ +Provides: %{?scl_prefix}perl(IPC::Open2) = 1.04 \ +Provides: %{?scl_prefix}perl(IPC::Open3) = 1.20 \ +Provides: %{?scl_prefix}perl(NDBM_File) = 1.14 \ +Provides: %{?scl_prefix}perl(NEXT) = 0.67 \ +Provides: %{?scl_prefix}perl(NEXT::ACTUAL) \ +Provides: %{?scl_prefix}perl(NEXT::ACTUAL::DISTINCT) \ +Provides: %{?scl_prefix}perl(NEXT::ACTUAL::UNSEEN) \ +Provides: %{?scl_prefix}perl(NEXT::DISTINCT) \ +Provides: %{?scl_prefix}perl(NEXT::DISTINCT::ACTUAL) \ +Provides: %{?scl_prefix}perl(NEXT::UNSEEN) \ +Provides: %{?scl_prefix}perl(NEXT::UNSEEN::ACTUAL) \ +Provides: %{?scl_prefix}perl(Net::hostent) = 1.01 \ +Provides: %{?scl_prefix}perl(Net::netent) = 1.00 \ +Provides: %{?scl_prefix}perl(Net::protoent) = 1.00 \ +Provides: %{?scl_prefix}perl(Net::servent) = 1.01 \ +Provides: %{?scl_prefix}perl(O) = 1.01 \ +Provides: %{?scl_prefix}perl(ODBM_File) = 1.14 \ +Provides: %{?scl_prefix}perl(Opcode) = 1.39 \ +Provides: %{?scl_prefix}perl(POSIX) = 1.76 \ +Provides: %{?scl_prefix}perl(POSIX::SigAction) \ +Provides: %{?scl_prefix}perl(POSIX::SigRt) \ +Provides: %{?scl_prefix}perl(POSIX::SigSet) \ +Provides: %{?scl_prefix}perl(PerlIO) = 1.10 \ +Provides: %{?scl_prefix}perl(PerlIO::encoding) = 0.25 \ +Provides: %{?scl_prefix}perl(PerlIO::mmap) = 0.016 \ +Provides: %{?scl_prefix}perl(PerlIO::scalar) = 0.26 \ +Provides: %{?scl_prefix}perl(PerlIO::via) = 0.16 \ +Provides: %{?scl_prefix}perl(Pod::Functions) = 1.11 \ +Provides: %{?scl_prefix}perl(SDBM_File) = 1.14 \ +Provides: %{?scl_prefix}perl(Safe) = 2.40 \ +Provides: %{?scl_prefix}perl(Search::Dict) = 1.07 \ +Provides: %{?scl_prefix}perl(SelectSaver) = 1.02 \ +Provides: %{?scl_prefix}perl(Symbol) = 1.08 \ +Provides: %{?scl_prefix}perl(Sys::Hostname) = 1.20 \ +Provides: %{?scl_prefix}perl(Term::Complete) = 1.403 \ +Provides: %{?scl_prefix}perl(Term::ReadLine) = 1.16 \ +Provides: %{?scl_prefix}perl(Term::ReadLine::Stub) \ +Provides: %{?scl_prefix}perl(Term::ReadLine::TermCap) \ +Provides: %{?scl_prefix}perl(Term::ReadLine::Tk) \ +Provides: %{?scl_prefix}perl(Text::Abbrev) = 1.02 \ +Provides: %{?scl_prefix}perl(Thread) = 3.04 \ +Provides: %{?scl_prefix}perl(Thread::Semaphore) = 2.13 \ +Provides: %{?scl_prefix}perl(Tie::Array) = 1.06 \ +Provides: %{?scl_prefix}perl(Tie::ExtraHash) \ +Provides: %{?scl_prefix}perl(Tie::File) = 1.02 \ +Provides: %{?scl_prefix}perl(Tie::File::Cache) \ +Provides: %{?scl_prefix}perl(Tie::File::Heap) \ +Provides: %{?scl_prefix}perl(Tie::Handle) = 4.2 \ +Provides: %{?scl_prefix}perl(Tie::Hash) \ +Provides: %{?scl_prefix}perl(Tie::Hash) = 1.05 \ +Provides: %{?scl_prefix}perl(Tie::Hash::NamedCapture) = 0.10 \ +Provides: %{?scl_prefix}perl(Tie::Memoize) = 1.1 \ +Provides: %{?scl_prefix}perl(Tie::RefHash) = 1.39 \ +Provides: %{?scl_prefix}perl(Tie::RefHash::Nestable) \ +Provides: %{?scl_prefix}perl(Tie::Scalar) = 1.04 \ +Provides: %{?scl_prefix}perl(Tie::StdArray) \ +Provides: %{?scl_prefix}perl(Tie::StdHandle) = 4.4 \ +Provides: %{?scl_prefix}perl(Tie::StdHash) \ +Provides: %{?scl_prefix}perl(Tie::StdScalar) \ +Provides: %{?scl_prefix}perl(Tie::SubstrHash) = 1.00 \ +Provides: %{?scl_prefix}perl(Time::gmtime) = 1.03 \ +Provides: %{?scl_prefix}perl(Time::localtime) = 1.02 \ +Provides: %{?scl_prefix}perl(Time::tm) = 1.00 \ +Provides: %{?scl_prefix}perl(UNIVERSAL) = 1.13 \ +Provides: %{?scl_prefix}perl(Unicode::UCD) = 0.68 \ +Provides: %{?scl_prefix}perl(User::grent) = 1.01 \ +Provides: %{?scl_prefix}perl(User::pwent) = 1.00 \ +Provides: %{?scl_prefix}perl(_charnames) = 1.44 \ +Provides: %{?scl_prefix}perl(arybase) = 0.12 \ +Provides: %{?scl_prefix}perl(attributes) = 0.29 \ +Provides: %{?scl_prefix}perl(autouse) = 1.11 \ +Provides: %{?scl_prefix}perl(base) = 2.25 \ +Provides: %{?scl_prefix}perl(blib) = 1.06 \ +Provides: %{?scl_prefix}perl(bytes) = 1.05 \ +Provides: %{?scl_prefix}perl(bytes_heavy.pl) \ +Provides: %{?scl_prefix}perl(charnames) = 1.44 \ +Provides: %{?scl_prefix}perl(deprecate) = 0.03 \ +Provides: %{?scl_prefix}perl(diagnostics) = 1.36 \ +Provides: %{?scl_prefix}perl(dumpvar.pl) \ +Provides: %{?scl_prefix}perl(encoding::warnings) = 0.13 \ +Provides: %{?scl_prefix}perl(feature) = 1.47 \ +Provides: %{?scl_prefix}perl(fields) = 2.23 \ +Provides: %{?scl_prefix}perl(filetest) = 1.03 \ +Provides: %{?scl_prefix}perl(if) = 0.0606 \ +Provides: %{?scl_prefix}perl(less) = 0.03 \ +Provides: %{?scl_prefix}perl(lib) = 0.64 \ +Provides: %{?scl_prefix}perl(locale) = 1.09 \ +Provides: %{?scl_prefix}perl(mro) = 1.20 \ +Provides: %{?scl_prefix}perl(ops) = 1.02 \ +Provides: %{?scl_prefix}perl(overload) = 1.28 \ +Provides: %{?scl_prefix}perl(overload::numbers) \ +Provides: %{?scl_prefix}perl(overloading) = 0.02 \ +Provides: %{?scl_prefix}perl(perl5db.pl) \ +Provides: %{?scl_prefix}perl(sigtrap) = 1.08 \ +Provides: %{?scl_prefix}perl(sort) = 2.02 \ +Provides: %{?scl_prefix}perl(subs) = 1.02 \ +Provides: %{?scl_prefix}perl(vars) = 1.03 \ +Provides: %{?scl_prefix}perl(vmsish) = 1.04 \ +Provides: %{?scl_prefix}perl(warnings::register) = 1.04 \ +%{nil} +%global gendep_perl_Archive_Tar \ +Requires: %{?scl_prefix}perl(:VERSION) >= 5.5.0 \ +Requires: %{?scl_prefix}perl(Archive::Tar) \ +Requires: %{?scl_prefix}perl(Archive::Tar::Constant) \ +Requires: %{?scl_prefix}perl(Archive::Tar::File) \ +Requires: %{?scl_prefix}perl(Carp) \ +Requires: %{?scl_prefix}perl(Config) \ +Requires: %{?scl_prefix}perl(Cwd) \ +Requires: %{?scl_prefix}perl(Data::Dumper) \ +Requires: %{?scl_prefix}perl(Exporter) \ +Requires: %{?scl_prefix}perl(File::Basename) \ +Requires: %{?scl_prefix}perl(File::Find) \ +Requires: %{?scl_prefix}perl(File::Path) \ +Requires: %{?scl_prefix}perl(File::Spec) \ +Requires: %{?scl_prefix}perl(File::Spec::Unix) \ +Requires: %{?scl_prefix}perl(Getopt::Long) \ +Requires: %{?scl_prefix}perl(Getopt::Std) \ +Requires: %{?scl_prefix}perl(IO::File) \ +Requires: %{?scl_prefix}perl(IO::Handle) \ +Requires: %{?scl_prefix}perl(IO::Zlib) \ +Requires: %{?scl_prefix}perl(Pod::Usage) \ +Requires: %{?scl_prefix}perl(constant) \ +Requires: %{?scl_prefix}perl(strict) \ +Requires: %{?scl_prefix}perl(vars) \ +Requires: %{?scl_prefix}perl(warnings) \ +Provides: %{?scl_prefix}perl(Archive::Tar) = 2.24 \ +Provides: %{?scl_prefix}perl(Archive::Tar::Constant) = 2.24 \ +Provides: %{?scl_prefix}perl(Archive::Tar::File) = 2.24 \ +%{nil} +%global gendep_perl_IO \ +Requires: %{?scl_prefix}perl(:VERSION) >= 5.6.0 \ +Requires: %{?scl_prefix}perl(Carp) \ +Requires: %{?scl_prefix}perl(Errno) \ +Requires: %{?scl_prefix}perl(Exporter) \ +Requires: %{?scl_prefix}perl(Fcntl) \ +Requires: %{?scl_prefix}perl(File::Spec) \ +Requires: %{?scl_prefix}perl(File::stat) \ +Requires: %{?scl_prefix}perl(IO) \ +Requires: %{?scl_prefix}perl(IO::File) \ +Requires: %{?scl_prefix}perl(IO::Handle) \ +Requires: %{?scl_prefix}perl(IO::Seekable) \ +Requires: %{?scl_prefix}perl(IO::Socket) \ +Requires: %{?scl_prefix}perl(IO::Socket::INET) \ +Requires: %{?scl_prefix}perl(IO::Socket::UNIX) \ +Requires: %{?scl_prefix}perl(SelectSaver) \ +Requires: %{?scl_prefix}perl(Socket) >= 1.3 \ +Requires: %{?scl_prefix}perl(Symbol) \ +Requires: %{?scl_prefix}perl(Tie::Hash) \ +Requires: %{?scl_prefix}perl(XSLoader) \ +Requires: %{?scl_prefix}perl(strict) \ +Requires: %{?scl_prefix}perl(vars) \ +Requires: %{?scl_prefix}perl(warnings) \ +Requires: %{?scl_prefix}perl(warnings::register) \ +Provides: %{?scl_prefix}perl(IO) = 1.38 \ +Provides: %{?scl_prefix}perl(IO::Dir) = 1.10 \ +Provides: %{?scl_prefix}perl(IO::File) = 1.16 \ +Provides: %{?scl_prefix}perl(IO::Handle) = 1.36 \ +Provides: %{?scl_prefix}perl(IO::Pipe) = 1.15 \ +Provides: %{?scl_prefix}perl(IO::Pipe::End) \ +Provides: %{?scl_prefix}perl(IO::Poll) = 0.10 \ +Provides: %{?scl_prefix}perl(IO::Seekable) = 1.10 \ +Provides: %{?scl_prefix}perl(IO::Select) = 1.22 \ +Provides: %{?scl_prefix}perl(IO::Socket) = 1.38 \ +Provides: %{?scl_prefix}perl(IO::Socket::INET) = 1.35 \ +Provides: %{?scl_prefix}perl(IO::Socket::UNIX) = 1.26 \ +%{nil} +%global gendep_perl_IO_Compress \ +Requires: %{?scl_prefix}perl(:VERSION) >= 5.6.0 \ +Requires: %{?scl_prefix}perl(Carp) \ +Requires: %{?scl_prefix}perl(Compress::Raw::Bzip2) >= 2.074 \ +Requires: %{?scl_prefix}perl(Compress::Raw::Zlib) >= 2.074 \ +Requires: %{?scl_prefix}perl(Config) \ +Requires: %{?scl_prefix}perl(Encode) \ +Requires: %{?scl_prefix}perl(Exporter) \ +Requires: %{?scl_prefix}perl(Fcntl) \ +Requires: %{?scl_prefix}perl(File::GlobMapper) \ +Requires: %{?scl_prefix}perl(File::Spec) \ +Requires: %{?scl_prefix}perl(IO::Compress::Adapter::Bzip2) >= 2.074 \ +Requires: %{?scl_prefix}perl(IO::Compress::Adapter::Deflate) >= 2.074 \ +Requires: %{?scl_prefix}perl(IO::Compress::Adapter::Identity) >= 2.074 \ +Requires: %{?scl_prefix}perl(IO::Compress::Base) >= 2.074 \ +Requires: %{?scl_prefix}perl(IO::Compress::Base::Common) >= 2.074 \ +Requires: %{?scl_prefix}perl(IO::Compress::Gzip) >= 2.074 \ +Requires: %{?scl_prefix}perl(IO::Compress::Gzip::Constants) >= 2.074 \ +Requires: %{?scl_prefix}perl(IO::Compress::RawDeflate) >= 2.074 \ +Requires: %{?scl_prefix}perl(IO::Compress::Zip::Constants) >= 2.074 \ +Requires: %{?scl_prefix}perl(IO::Compress::Zlib::Constants) >= 2.074 \ +Requires: %{?scl_prefix}perl(IO::Compress::Zlib::Extra) >= 2.074 \ +Requires: %{?scl_prefix}perl(IO::File) \ +Requires: %{?scl_prefix}perl(IO::Handle) \ +Requires: %{?scl_prefix}perl(IO::Uncompress::Adapter::Bunzip2) >= 2.074 \ +Requires: %{?scl_prefix}perl(IO::Uncompress::Adapter::Identity) >= 2.074 \ +Requires: %{?scl_prefix}perl(IO::Uncompress::Adapter::Inflate) >= 2.074 \ +Requires: %{?scl_prefix}perl(IO::Uncompress::Base) >= 2.074 \ +Requires: %{?scl_prefix}perl(IO::Uncompress::Gunzip) >= 2.074 \ +Requires: %{?scl_prefix}perl(IO::Uncompress::Inflate) >= 2.074 \ +Requires: %{?scl_prefix}perl(IO::Uncompress::RawInflate) >= 2.074 \ +Requires: %{?scl_prefix}perl(IO::Uncompress::Unzip) >= 2.074 \ +Requires: %{?scl_prefix}perl(List::Util) \ +Requires: %{?scl_prefix}perl(POSIX) \ +Requires: %{?scl_prefix}perl(Scalar::Util) \ +Requires: %{?scl_prefix}perl(Symbol) \ +Requires: %{?scl_prefix}perl(bytes) \ +Requires: %{?scl_prefix}perl(constant) \ +Requires: %{?scl_prefix}perl(strict) \ +Requires: %{?scl_prefix}perl(utf8) \ +Requires: %{?scl_prefix}perl(warnings) \ +Provides: %{?scl_prefix}perl(Compress::Zlib) = 2.074 \ +Provides: %{?scl_prefix}perl(File::GlobMapper) = 1.000 \ +Provides: %{?scl_prefix}perl(IO::Compress::Adapter::Bzip2) = 2.074 \ +Provides: %{?scl_prefix}perl(IO::Compress::Adapter::Deflate) = 2.074 \ +Provides: %{?scl_prefix}perl(IO::Compress::Adapter::Identity) = 2.074 \ +Provides: %{?scl_prefix}perl(IO::Compress::Base) = 2.074 \ +Provides: %{?scl_prefix}perl(IO::Compress::Base::Common) = 2.074 \ +Provides: %{?scl_prefix}perl(IO::Compress::Bzip2) = 2.074 \ +Provides: %{?scl_prefix}perl(IO::Compress::Deflate) = 2.074 \ +Provides: %{?scl_prefix}perl(IO::Compress::Gzip) = 2.074 \ +Provides: %{?scl_prefix}perl(IO::Compress::Gzip::Constants) = 2.074 \ +Provides: %{?scl_prefix}perl(IO::Compress::RawDeflate) = 2.074 \ +Provides: %{?scl_prefix}perl(IO::Compress::Zip) = 2.074 \ +Provides: %{?scl_prefix}perl(IO::Compress::Zip::Constants) = 2.074 \ +Provides: %{?scl_prefix}perl(IO::Compress::Zlib::Constants) = 2.074 \ +Provides: %{?scl_prefix}perl(IO::Compress::Zlib::Extra) = 2.074 \ +Provides: %{?scl_prefix}perl(IO::Uncompress::Adapter::Bunzip2) = 2.074 \ +Provides: %{?scl_prefix}perl(IO::Uncompress::Adapter::Identity) = 2.074 \ +Provides: %{?scl_prefix}perl(IO::Uncompress::Adapter::Inflate) = 2.074 \ +Provides: %{?scl_prefix}perl(IO::Uncompress::AnyInflate) = 2.074 \ +Provides: %{?scl_prefix}perl(IO::Uncompress::AnyUncompress) = 2.074 \ +Provides: %{?scl_prefix}perl(IO::Uncompress::Base) = 2.074 \ +Provides: %{?scl_prefix}perl(IO::Uncompress::Bunzip2) \ +Provides: %{?scl_prefix}perl(IO::Uncompress::Bunzip2) = 2.074 \ +Provides: %{?scl_prefix}perl(IO::Uncompress::Gunzip) = 2.074 \ +Provides: %{?scl_prefix}perl(IO::Uncompress::Inflate) = 2.074 \ +Provides: %{?scl_prefix}perl(IO::Uncompress::RawInflate) = 2.074 \ +Provides: %{?scl_prefix}perl(IO::Uncompress::Unzip) = 2.074 \ +Provides: %{?scl_prefix}perl(U64) \ +Provides: %{?scl_prefix}perl(Zlib::OldDeflate) \ +Provides: %{?scl_prefix}perl(Zlib::OldInflate) \ +%{nil} +%global gendep_perl_IO_Socket_IP \ +Requires: %{?scl_prefix}perl(Carp) \ +Requires: %{?scl_prefix}perl(Errno) \ +Requires: %{?scl_prefix}perl(IO::Socket) \ +Requires: %{?scl_prefix}perl(IO::Socket::IP) \ +Requires: %{?scl_prefix}perl(POSIX) \ +Requires: %{?scl_prefix}perl(Socket) >= 1.97 \ +Requires: %{?scl_prefix}perl(base) \ +Requires: %{?scl_prefix}perl(constant) \ +Requires: %{?scl_prefix}perl(strict) \ +Requires: %{?scl_prefix}perl(warnings) \ +Provides: %{?scl_prefix}perl(IO::Socket::IP) = 0.38 \ +%{nil} +%global gendep_perl_IO_Zlib \ +Requires: %{?scl_prefix}perl(:VERSION) >= 5.6.0 \ +Requires: %{?scl_prefix}perl(Carp) \ +Requires: %{?scl_prefix}perl(Fcntl) \ +Requires: %{?scl_prefix}perl(Symbol) \ +Requires: %{?scl_prefix}perl(Tie::Handle) \ +Requires: %{?scl_prefix}perl(strict) \ +Requires: %{?scl_prefix}perl(vars) \ +Provides: %{?scl_prefix}perl(IO::Zlib) = 1.10 \ +%{nil} +%global gendep_perl_IPC_Cmd \ +Requires: %{?scl_prefix}perl(Carp) \ +Requires: %{?scl_prefix}perl(Exporter) \ +Requires: %{?scl_prefix}perl(File::Spec) \ +Requires: %{?scl_prefix}perl(Locale::Maketext::Simple) \ +Requires: %{?scl_prefix}perl(Module::Load::Conditional) \ +Requires: %{?scl_prefix}perl(Params::Check) \ +Requires: %{?scl_prefix}perl(Symbol) \ +Requires: %{?scl_prefix}perl(Text::ParseWords) \ +Requires: %{?scl_prefix}perl(constant) \ +Requires: %{?scl_prefix}perl(strict) \ +Requires: %{?scl_prefix}perl(vars) \ +Provides: %{?scl_prefix}perl(IPC::Cmd) = 0.96 \ +%{nil} +%global gendep_perl_IPC_SysV \ +Requires: %{?scl_prefix}perl(Carp) \ +Requires: %{?scl_prefix}perl(Class::Struct) \ +Requires: %{?scl_prefix}perl(Config) \ +Requires: %{?scl_prefix}perl(Exporter) \ +Requires: %{?scl_prefix}perl(IPC::SysV) \ +Requires: %{?scl_prefix}perl(strict) \ +Requires: %{?scl_prefix}perl(vars) \ +Provides: %{?scl_prefix}perl(IPC::Msg) = 2.07 \ +Provides: %{?scl_prefix}perl(IPC::Msg::stat) \ +Provides: %{?scl_prefix}perl(IPC::Semaphore) = 2.07 \ +Provides: %{?scl_prefix}perl(IPC::Semaphore::stat) \ +Provides: %{?scl_prefix}perl(IPC::SharedMem) = 2.07 \ +Provides: %{?scl_prefix}perl(IPC::SharedMem::stat) \ +Provides: %{?scl_prefix}perl(IPC::SysV) = 2.07 \ +%{nil} +%global gendep_perl_JSON_PP \ +Requires: %{?scl_prefix}perl(:VERSION) >= 5.5.0 \ +Requires: %{?scl_prefix}perl(B) \ +Requires: %{?scl_prefix}perl(Carp) \ +Requires: %{?scl_prefix}perl(Exporter) \ +Requires: %{?scl_prefix}perl(Getopt::Long) \ +Requires: %{?scl_prefix}perl(JSON::PP) \ +Requires: %{?scl_prefix}perl(base) \ +Requires: %{?scl_prefix}perl(bytes) \ +Requires: %{?scl_prefix}perl(constant) \ +Requires: %{?scl_prefix}perl(overload) \ +Requires: %{?scl_prefix}perl(strict) \ +Provides: %{?scl_prefix}perl(JSON::PP) = 2.27400 \ +Provides: %{?scl_prefix}perl(JSON::PP::Boolean) \ +Provides: %{?scl_prefix}perl(JSON::PP::IncrParser) = 1.01 \ +%{nil} +%global gendep_perl_Locale_Codes \ +Requires: %{?scl_prefix}perl(:VERSION) >= 5.2.0 \ +Requires: %{?scl_prefix}perl(:VERSION) >= 5.6.0 \ +Requires: %{?scl_prefix}perl(Carp) \ +Requires: %{?scl_prefix}perl(Exporter) \ +Requires: %{?scl_prefix}perl(Locale::Codes) \ +Requires: %{?scl_prefix}perl(Locale::Codes::Constants) \ +Requires: %{?scl_prefix}perl(constant) \ +Requires: %{?scl_prefix}perl(strict) \ +Requires: %{?scl_prefix}perl(utf8) \ +Requires: %{?scl_prefix}perl(warnings) \ +Provides: %{?scl_prefix}perl(Locale::Codes) = 3.25 \ +Provides: %{?scl_prefix}perl(Locale::Codes) = 3.42 \ +Provides: %{?scl_prefix}perl(Locale::Codes::Constants) = 3.42 \ +Provides: %{?scl_prefix}perl(Locale::Codes::Country) = 3.42 \ +Provides: %{?scl_prefix}perl(Locale::Codes::Currency) = 3.42 \ +Provides: %{?scl_prefix}perl(Locale::Codes::LangExt) = 3.42 \ +Provides: %{?scl_prefix}perl(Locale::Codes::LangFam) = 3.42 \ +Provides: %{?scl_prefix}perl(Locale::Codes::LangVar) = 3.42 \ +Provides: %{?scl_prefix}perl(Locale::Codes::Language) = 3.42 \ +Provides: %{?scl_prefix}perl(Locale::Codes::Script) = 3.42 \ +Provides: %{?scl_prefix}perl(Locale::Country) = 3.42 \ +Provides: %{?scl_prefix}perl(Locale::Currency) = 3.42 \ +Provides: %{?scl_prefix}perl(Locale::Language) = 3.42 \ +Provides: %{?scl_prefix}perl(Locale::Script) = 3.42 \ +%{nil} +%global gendep_perl_Locale_Maketext \ +Requires: %{?scl_prefix}perl(Carp) \ +Requires: %{?scl_prefix}perl(I18N::LangTags) \ +Requires: %{?scl_prefix}perl(I18N::LangTags::Detect) \ +Requires: %{?scl_prefix}perl(Locale::Maketext) \ +Requires: %{?scl_prefix}perl(integer) \ +Requires: %{?scl_prefix}perl(strict) \ +Requires: %{?scl_prefix}perl(vars) \ +Provides: %{?scl_prefix}perl(Locale::Maketext) = 1.28 \ +Provides: %{?scl_prefix}perl(Locale::Maketext::Guts) = 1.20 \ +Provides: %{?scl_prefix}perl(Locale::Maketext::GutsLoader) = 1.20 \ +%{nil} +%global gendep_perl_Locale_Maketext_Simple \ +Requires: %{?scl_prefix}perl(:VERSION) >= 5.5.0 \ +Requires: %{?scl_prefix}perl(Locale::Maketext) \ +Requires: %{?scl_prefix}perl(base) \ +Requires: %{?scl_prefix}perl(strict) \ +Provides: %{?scl_prefix}perl(Locale::Maketext::Simple) = 0.21 \ +%{nil} +%global gendep_perl_MIME_Base64 \ +Requires: %{?scl_prefix}perl(Exporter) \ +Requires: %{?scl_prefix}perl(MIME::Base64) \ +Requires: %{?scl_prefix}perl(XSLoader) \ +Requires: %{?scl_prefix}perl(strict) \ +Requires: %{?scl_prefix}perl(vars) \ +Provides: %{?scl_prefix}perl(MIME::Base64) = 3.15 \ +Provides: %{?scl_prefix}perl(MIME::QuotedPrint) = 3.13 \ +%{nil} +%global gendep_perl_Math_BigInt \ +Requires: %{?scl_prefix}perl(:VERSION) >= 5.6.1 \ +Requires: %{?scl_prefix}perl(Carp) \ +Requires: %{?scl_prefix}perl(Exporter) \ +Requires: %{?scl_prefix}perl(Math::BigInt) \ +Requires: %{?scl_prefix}perl(Math::BigInt::Lib) \ +Requires: %{?scl_prefix}perl(constant) \ +Requires: %{?scl_prefix}perl(integer) \ +Requires: %{?scl_prefix}perl(overload) \ +Requires: %{?scl_prefix}perl(strict) \ +Requires: %{?scl_prefix}perl(warnings) \ +Provides: %{?scl_prefix}perl(Math::BigFloat) = 1.999806 \ +Provides: %{?scl_prefix}perl(Math::BigInt) = 1.999806 \ +Provides: %{?scl_prefix}perl(Math::BigInt::Calc) = 1.999806 \ +Provides: %{?scl_prefix}perl(Math::BigInt::CalcEmu) = 1.999806 \ +Provides: %{?scl_prefix}perl(Math::BigInt::Lib) = 1.999806 \ +%{nil} +%global gendep_perl_Math_BigInt_FastCalc \ +Requires: %{?scl_prefix}perl(:VERSION) >= 5.6.0 \ +Requires: %{?scl_prefix}perl(Math::BigInt::Calc) \ +Requires: %{?scl_prefix}perl(XSLoader) \ +Requires: %{?scl_prefix}perl(strict) \ +Requires: %{?scl_prefix}perl(warnings) \ +Provides: %{?scl_prefix}perl(Math::BigInt::FastCalc) = 0.5005 \ +%{nil} +%global gendep_perl_Math_BigRat \ +Requires: %{?scl_prefix}perl(:VERSION) >= 5.6.0 \ +Requires: %{?scl_prefix}perl(Carp) \ +Requires: %{?scl_prefix}perl(Math::BigFloat) \ +Requires: %{?scl_prefix}perl(overload) \ +Requires: %{?scl_prefix}perl(strict) \ +Requires: %{?scl_prefix}perl(warnings) \ +Provides: %{?scl_prefix}perl(Math::BigRat) = 0.2611 \ +%{nil} +%global gendep_perl_Math_Complex \ +Requires: %{?scl_prefix}perl(Config) \ +Requires: %{?scl_prefix}perl(Exporter) \ +Requires: %{?scl_prefix}perl(Math::Complex) >= 1.59 \ +Requires: %{?scl_prefix}perl(Scalar::Util) \ +Requires: %{?scl_prefix}perl(overload) \ +Requires: %{?scl_prefix}perl(strict) \ +Requires: %{?scl_prefix}perl(warnings) \ +Provides: %{?scl_prefix}perl(Math::Complex) = 1.59 \ +Provides: %{?scl_prefix}perl(Math::Trig) = 1.23 \ +%{nil} +%global gendep_perl_Memoize \ +Requires: %{?scl_prefix}perl(Carp) \ +Requires: %{?scl_prefix}perl(Config) \ +Requires: %{?scl_prefix}perl(Exporter) \ +Requires: %{?scl_prefix}perl(NDBM_File) \ +Requires: %{?scl_prefix}perl(SDBM_File) \ +Requires: %{?scl_prefix}perl(Storable) \ +Requires: %{?scl_prefix}perl(strict) \ +Requires: %{?scl_prefix}perl(vars) \ +Provides: %{?scl_prefix}perl(Memoize) = 1.03 \ +Provides: %{?scl_prefix}perl(Memoize::AnyDBM_File) = 1.03 \ +Provides: %{?scl_prefix}perl(Memoize::Expire) = 1.03 \ +Provides: %{?scl_prefix}perl(Memoize::ExpireFile) = 1.03 \ +Provides: %{?scl_prefix}perl(Memoize::ExpireTest) = 1.03 \ +Provides: %{?scl_prefix}perl(Memoize::NDBM_File) = 1.03 \ +Provides: %{?scl_prefix}perl(Memoize::SDBM_File) = 1.03 \ +Provides: %{?scl_prefix}perl(Memoize::Storable) = 1.03 \ +%{nil} +%global gendep_perl_Module_CoreList \ +Requires: %{?scl_prefix}perl(Module::CoreList) \ +Requires: %{?scl_prefix}perl(strict) \ +Requires: %{?scl_prefix}perl(vars) \ +Requires: %{?scl_prefix}perl(version) \ +Requires: %{?scl_prefix}perl(warnings) \ +Provides: %{?scl_prefix}perl(Module::CoreList) = 5.20170530 \ +Provides: %{?scl_prefix}perl(Module::CoreList::TieHashDelta) = 5.20170530 \ +Provides: %{?scl_prefix}perl(Module::CoreList::Utils) = 5.20170530 \ +%{nil} +%global gendep_perl_Module_CoreList_tools \ +Requires: %{?scl_prefix}perl(Getopt::Long) \ +Requires: %{?scl_prefix}perl(List::Util) \ +Requires: %{?scl_prefix}perl(Module::CoreList) \ +Requires: %{?scl_prefix}perl(Pod::Usage) \ +Requires: %{?scl_prefix}perl(strict) \ +Requires: %{?scl_prefix}perl(warnings) \ +%{nil} +%global gendep_perl_Module_Load \ +Requires: %{?scl_prefix}perl(File::Spec) \ +Requires: %{?scl_prefix}perl(strict) \ +Requires: %{?scl_prefix}perl(warnings) \ +Provides: %{?scl_prefix}perl(Module::Load) = 0.32 \ +%{nil} +%global gendep_perl_Module_Load_Conditional \ +Requires: %{?scl_prefix}perl(Carp) \ +Requires: %{?scl_prefix}perl(Exporter) \ +Requires: %{?scl_prefix}perl(File::Spec) \ +Requires: %{?scl_prefix}perl(FileHandle) \ +Requires: %{?scl_prefix}perl(Locale::Maketext::Simple) \ +Requires: %{?scl_prefix}perl(Module::Load) \ +Requires: %{?scl_prefix}perl(Module::Metadata) \ +Requires: %{?scl_prefix}perl(Params::Check) \ +Requires: %{?scl_prefix}perl(constant) \ +Requires: %{?scl_prefix}perl(strict) \ +Requires: %{?scl_prefix}perl(vars) \ +Requires: %{?scl_prefix}perl(version) \ +Provides: %{?scl_prefix}perl(Module::Load::Conditional) = 0.68 \ +%{nil} +%global gendep_perl_Module_Loaded \ +Requires: %{?scl_prefix}perl(Carp) \ +Requires: %{?scl_prefix}perl(strict) \ +Requires: %{?scl_prefix}perl(vars) \ +Provides: %{?scl_prefix}perl(Module::Loaded) = 0.08 \ +%{nil} +%global gendep_perl_Module_Metadata \ +Requires: %{?scl_prefix}perl(Carp) \ +Requires: %{?scl_prefix}perl(File::Find) \ +Requires: %{?scl_prefix}perl(File::Spec) \ +Requires: %{?scl_prefix}perl(strict) \ +Requires: %{?scl_prefix}perl(version) >= 0.87 \ +Requires: %{?scl_prefix}perl(warnings) \ +Provides: %{?scl_prefix}perl(Module::Metadata) = 1.000033 \ +%{nil} +%global gendep_perl_Net_Ping \ +Requires: %{?scl_prefix}perl(:VERSION) >= 5.2.0 \ +Requires: %{?scl_prefix}perl(Carp) \ +Requires: %{?scl_prefix}perl(Exporter) \ +Requires: %{?scl_prefix}perl(Fcntl) \ +Requires: %{?scl_prefix}perl(FileHandle) \ +Requires: %{?scl_prefix}perl(POSIX) \ +Requires: %{?scl_prefix}perl(Socket) \ +Requires: %{?scl_prefix}perl(Time::HiRes) \ +Requires: %{?scl_prefix}perl(constant) \ +Requires: %{?scl_prefix}perl(strict) \ +Requires: %{?scl_prefix}perl(vars) \ +Provides: %{?scl_prefix}perl(Net::Ping) = 2.55 \ +%{nil} +%global gendep_perl_Params_Check \ +Requires: %{?scl_prefix}perl(Carp) \ +Requires: %{?scl_prefix}perl(Exporter) \ +Requires: %{?scl_prefix}perl(Locale::Maketext::Simple) \ +Requires: %{?scl_prefix}perl(strict) \ +Requires: %{?scl_prefix}perl(vars) \ +Provides: %{?scl_prefix}perl(Params::Check) = 0.38 \ +%{nil} +%global gendep_perl_PathTools \ +Requires: %{?scl_prefix}perl(Exporter) \ +Requires: %{?scl_prefix}perl(File::Spec) \ +Requires: %{?scl_prefix}perl(File::Spec::Unix) \ +Requires: %{?scl_prefix}perl(constant) \ +Requires: %{?scl_prefix}perl(strict) \ +Requires: %{?scl_prefix}perl(vars) \ +Provides: %{?scl_prefix}perl(Cwd) = 3.67 \ +Provides: %{?scl_prefix}perl(File::Spec) = 3.67 \ +Provides: %{?scl_prefix}perl(File::Spec::AmigaOS) = 3.67 \ +Provides: %{?scl_prefix}perl(File::Spec::Cygwin) = 3.67 \ +Provides: %{?scl_prefix}perl(File::Spec::Epoc) = 3.67 \ +Provides: %{?scl_prefix}perl(File::Spec::Functions) = 3.67 \ +Provides: %{?scl_prefix}perl(File::Spec::Mac) = 3.67 \ +Provides: %{?scl_prefix}perl(File::Spec::OS2) = 3.67 \ +Provides: %{?scl_prefix}perl(File::Spec::Unix) = 3.67 \ +Provides: %{?scl_prefix}perl(File::Spec::Win32) = 3.67 \ +%{nil} +%global gendep_perl_Perl_OSType \ +Requires: %{?scl_prefix}perl(Exporter) \ +Requires: %{?scl_prefix}perl(strict) \ +Requires: %{?scl_prefix}perl(warnings) \ +Provides: %{?scl_prefix}perl(Perl::OSType) = 1.010 \ +%{nil} +%global gendep_perl_PerlIO_via_QuotedPrint \ +Requires: %{?scl_prefix}perl(MIME::QuotedPrint) \ +Requires: %{?scl_prefix}perl(strict) \ +Provides: %{?scl_prefix}perl(PerlIO::via::QuotedPrint) = 0.08 \ +%{nil} +%global gendep_perl_Pod_Checker \ +Requires: %{?scl_prefix}perl(Carp) \ +Requires: %{?scl_prefix}perl(Exporter) \ +Requires: %{?scl_prefix}perl(Getopt::Long) \ +Requires: %{?scl_prefix}perl(Pod::Checker) \ +Requires: %{?scl_prefix}perl(Pod::Simple::Methody) \ +Requires: %{?scl_prefix}perl(Pod::Usage) \ +Requires: %{?scl_prefix}perl(base) \ +Requires: %{?scl_prefix}perl(strict) \ +Requires: %{?scl_prefix}perl(warnings) \ +Provides: %{?scl_prefix}perl(Pod::Checker) = 1.73 \ +%{nil} +%global gendep_perl_Pod_Escapes \ +Requires: %{?scl_prefix}perl(:VERSION) >= 5.6.0 \ +Requires: %{?scl_prefix}perl(Exporter) \ +Requires: %{?scl_prefix}perl(strict) \ +Requires: %{?scl_prefix}perl(vars) \ +Requires: %{?scl_prefix}perl(warnings) \ +Provides: %{?scl_prefix}perl(Pod::Escapes) = 1.07 \ +%{nil} +%global gendep_perl_Pod_Html \ +Requires: %{?scl_prefix}perl(Carp) \ +Requires: %{?scl_prefix}perl(Config) \ +Requires: %{?scl_prefix}perl(Cwd) \ +Requires: %{?scl_prefix}perl(Exporter) \ +Requires: %{?scl_prefix}perl(File::Basename) \ +Requires: %{?scl_prefix}perl(File::Spec) \ +Requires: %{?scl_prefix}perl(File::Spec::Unix) \ +Requires: %{?scl_prefix}perl(Getopt::Long) \ +Requires: %{?scl_prefix}perl(Pod::Html) \ +Requires: %{?scl_prefix}perl(Pod::Simple::Search) \ +Requires: %{?scl_prefix}perl(Pod::Simple::XHTML) \ +Requires: %{?scl_prefix}perl(locale) \ +Requires: %{?scl_prefix}perl(parent) \ +Requires: %{?scl_prefix}perl(strict) \ +Requires: %{?scl_prefix}perl(vars) \ +Requires: %{?scl_prefix}perl(warnings) \ +Provides: %{?scl_prefix}perl(Pod::Html) = 1.2202 \ +Provides: %{?scl_prefix}perl(Pod::Simple::XHTML::LocalPodLinks) \ +%{nil} +%global gendep_perl_Pod_Parser \ +Requires: %{?scl_prefix}perl(:VERSION) >= 5.5.0 \ +Requires: %{?scl_prefix}perl(Carp) \ +Requires: %{?scl_prefix}perl(Cwd) \ +Requires: %{?scl_prefix}perl(Exporter) \ +Requires: %{?scl_prefix}perl(File::Find) \ +Requires: %{?scl_prefix}perl(File::Spec) \ +Requires: %{?scl_prefix}perl(Getopt::Long) \ +Requires: %{?scl_prefix}perl(Pod::InputObjects) \ +Requires: %{?scl_prefix}perl(Pod::Parser) >= 1.04 \ +Requires: %{?scl_prefix}perl(Pod::Select) \ +Requires: %{?scl_prefix}perl(Pod::Usage) \ +Requires: %{?scl_prefix}perl(strict) \ +Requires: %{?scl_prefix}perl(vars) \ +Provides: %{?scl_prefix}perl(Pod::Cache) \ +Provides: %{?scl_prefix}perl(Pod::Cache::Item) \ +Provides: %{?scl_prefix}perl(Pod::Find) = 1.63 \ +Provides: %{?scl_prefix}perl(Pod::Hyperlink) \ +Provides: %{?scl_prefix}perl(Pod::InputObjects) = 1.63 \ +Provides: %{?scl_prefix}perl(Pod::InputSource) \ +Provides: %{?scl_prefix}perl(Pod::InteriorSequence) \ +Provides: %{?scl_prefix}perl(Pod::List) \ +Provides: %{?scl_prefix}perl(Pod::Paragraph) \ +Provides: %{?scl_prefix}perl(Pod::ParseTree) \ +Provides: %{?scl_prefix}perl(Pod::ParseUtils) = 1.63 \ +Provides: %{?scl_prefix}perl(Pod::Parser) = 1.63 \ +Provides: %{?scl_prefix}perl(Pod::PlainText) = 2.07 \ +Provides: %{?scl_prefix}perl(Pod::Select) = 1.63 \ +%{nil} +%global gendep_perl_Pod_Perldoc \ +Requires: %{?scl_prefix}perl(:VERSION) >= 5.0.0 \ +Requires: %{?scl_prefix}perl(:VERSION) >= 5.6.0 \ +Requires: %{?scl_prefix}perl(Carp) \ +Requires: %{?scl_prefix}perl(Config) \ +Requires: %{?scl_prefix}perl(Encode) \ +Requires: %{?scl_prefix}perl(Fcntl) \ +Requires: %{?scl_prefix}perl(File::Basename) \ +Requires: %{?scl_prefix}perl(File::Spec::Functions) \ +Requires: %{?scl_prefix}perl(IO::Select) \ +Requires: %{?scl_prefix}perl(Pod::Man) >= 2.18 \ +Requires: %{?scl_prefix}perl(Pod::Perldoc) \ +Requires: %{?scl_prefix}perl(Pod::Perldoc::BaseTo) \ +Requires: %{?scl_prefix}perl(Pod::Perldoc::GetOptsOO) \ +Requires: %{?scl_prefix}perl(Pod::Simple::RTF) \ +Requires: %{?scl_prefix}perl(Pod::Simple::XMLOutStream) \ +Requires: %{?scl_prefix}perl(Pod::Text) \ +Requires: %{?scl_prefix}perl(Pod::Text::Color) \ +Requires: %{?scl_prefix}perl(Pod::Text::Termcap) \ +Requires: %{?scl_prefix}perl(parent) \ +Requires: %{?scl_prefix}perl(strict) \ +Requires: %{?scl_prefix}perl(vars) \ +Requires: %{?scl_prefix}perl(warnings) \ +Provides: %{?scl_prefix}perl(Pod::Perldoc) = 3.28 \ +Provides: %{?scl_prefix}perl(Pod::Perldoc::BaseTo) = 3.28 \ +Provides: %{?scl_prefix}perl(Pod::Perldoc::GetOptsOO) = 3.28 \ +Provides: %{?scl_prefix}perl(Pod::Perldoc::ToANSI) = 3.28 \ +Provides: %{?scl_prefix}perl(Pod::Perldoc::ToChecker) = 3.28 \ +Provides: %{?scl_prefix}perl(Pod::Perldoc::ToMan) = 3.28 \ +Provides: %{?scl_prefix}perl(Pod::Perldoc::ToNroff) = 3.28 \ +Provides: %{?scl_prefix}perl(Pod::Perldoc::ToPod) = 3.28 \ +Provides: %{?scl_prefix}perl(Pod::Perldoc::ToRtf) = 3.28 \ +Provides: %{?scl_prefix}perl(Pod::Perldoc::ToTerm) = 3.28 \ +Provides: %{?scl_prefix}perl(Pod::Perldoc::ToText) = 3.28 \ +Provides: %{?scl_prefix}perl(Pod::Perldoc::ToTk) = 3.28 \ +Provides: %{?scl_prefix}perl(Pod::Perldoc::ToXml) = 3.28 \ +%{nil} +%global gendep_perl_Pod_Simple \ +Requires: %{?scl_prefix}perl(:VERSION) >= 5.0.0 \ +Requires: %{?scl_prefix}perl(:VERSION) >= 5.5.0 \ +Requires: %{?scl_prefix}perl(:VERSION) >= 5.8.0 \ +Requires: %{?scl_prefix}perl(Carp) \ +Requires: %{?scl_prefix}perl(Config) \ +Requires: %{?scl_prefix}perl(Cwd) \ +Requires: %{?scl_prefix}perl(Encode) \ +Requires: %{?scl_prefix}perl(File::Basename) \ +Requires: %{?scl_prefix}perl(File::Spec) \ +Requires: %{?scl_prefix}perl(Getopt::Long) \ +Requires: %{?scl_prefix}perl(Pod::Escapes) >= 1.04 \ +Requires: %{?scl_prefix}perl(Pod::Simple) \ +Requires: %{?scl_prefix}perl(Pod::Simple::BlackBox) \ +Requires: %{?scl_prefix}perl(Pod::Simple::HTML) \ +Requires: %{?scl_prefix}perl(Pod::Simple::LinkSection) \ +Requires: %{?scl_prefix}perl(Pod::Simple::Methody) \ +Requires: %{?scl_prefix}perl(Pod::Simple::PullParser) \ +Requires: %{?scl_prefix}perl(Pod::Simple::PullParserEndToken) \ +Requires: %{?scl_prefix}perl(Pod::Simple::PullParserStartToken) \ +Requires: %{?scl_prefix}perl(Pod::Simple::PullParserTextToken) \ +Requires: %{?scl_prefix}perl(Pod::Simple::PullParserToken) \ +Requires: %{?scl_prefix}perl(Pod::Simple::Search) \ +Requires: %{?scl_prefix}perl(Symbol) \ +Requires: %{?scl_prefix}perl(Text::Wrap) >= 98.112902 \ +Requires: %{?scl_prefix}perl(integer) \ +Requires: %{?scl_prefix}perl(overload) \ +Requires: %{?scl_prefix}perl(strict) \ +Requires: %{?scl_prefix}perl(vars) \ +Provides: %{?scl_prefix}perl(Pod::Simple) = 3.35 \ +Provides: %{?scl_prefix}perl(Pod::Simple::BlackBox) = 3.35 \ +Provides: %{?scl_prefix}perl(Pod::Simple::Checker) = 3.35 \ +Provides: %{?scl_prefix}perl(Pod::Simple::Debug) = 3.35 \ +Provides: %{?scl_prefix}perl(Pod::Simple::DumpAsText) = 3.35 \ +Provides: %{?scl_prefix}perl(Pod::Simple::DumpAsXML) = 3.35 \ +Provides: %{?scl_prefix}perl(Pod::Simple::HTML) = 3.35 \ +Provides: %{?scl_prefix}perl(Pod::Simple::HTMLBatch) = 3.35 \ +Provides: %{?scl_prefix}perl(Pod::Simple::HTMLLegacy) = 5.01 \ +Provides: %{?scl_prefix}perl(Pod::Simple::LinkSection) = 3.35 \ +Provides: %{?scl_prefix}perl(Pod::Simple::Methody) = 3.35 \ +Provides: %{?scl_prefix}perl(Pod::Simple::Progress) = 3.35 \ +Provides: %{?scl_prefix}perl(Pod::Simple::PullParser) = 3.35 \ +Provides: %{?scl_prefix}perl(Pod::Simple::PullParserEndToken) = 3.35 \ +Provides: %{?scl_prefix}perl(Pod::Simple::PullParserStartToken) = 3.35 \ +Provides: %{?scl_prefix}perl(Pod::Simple::PullParserTextToken) = 3.35 \ +Provides: %{?scl_prefix}perl(Pod::Simple::PullParserToken) = 3.35 \ +Provides: %{?scl_prefix}perl(Pod::Simple::RTF) = 3.35 \ +Provides: %{?scl_prefix}perl(Pod::Simple::Search) = 3.35 \ +Provides: %{?scl_prefix}perl(Pod::Simple::SimpleTree) = 3.35 \ +Provides: %{?scl_prefix}perl(Pod::Simple::Text) = 3.35 \ +Provides: %{?scl_prefix}perl(Pod::Simple::TextContent) = 3.35 \ +Provides: %{?scl_prefix}perl(Pod::Simple::TiedOutFH) = 3.35 \ +Provides: %{?scl_prefix}perl(Pod::Simple::Transcode) = 3.35 \ +Provides: %{?scl_prefix}perl(Pod::Simple::TranscodeDumb) = 3.35 \ +Provides: %{?scl_prefix}perl(Pod::Simple::TranscodeSmart) = 3.35 \ +Provides: %{?scl_prefix}perl(Pod::Simple::XHTML) = 3.35 \ +Provides: %{?scl_prefix}perl(Pod::Simple::XMLOutStream) = 3.35 \ +%{nil} +%global gendep_perl_Pod_Usage \ +Requires: %{?scl_prefix}perl(:VERSION) >= 5.6.0 \ +Requires: %{?scl_prefix}perl(Carp) \ +Requires: %{?scl_prefix}perl(Config) \ +Requires: %{?scl_prefix}perl(Exporter) \ +Requires: %{?scl_prefix}perl(File::Spec) \ +Requires: %{?scl_prefix}perl(Getopt::Long) \ +Requires: %{?scl_prefix}perl(Pod::Usage) \ +Requires: %{?scl_prefix}perl(strict) \ +Requires: %{?scl_prefix}perl(vars) \ +Provides: %{?scl_prefix}perl(Pod::Usage) = 1.69 \ +%{nil} +%global gendep_perl_Scalar_List_Utils \ +Requires: %{?scl_prefix}perl(Exporter) \ +Requires: %{?scl_prefix}perl(List::Util) \ +Requires: %{?scl_prefix}perl(XSLoader) \ +Requires: %{?scl_prefix}perl(strict) \ +Requires: %{?scl_prefix}perl(warnings) \ +Provides: %{?scl_prefix}perl(List::Util) = 1.46 \ +Provides: %{?scl_prefix}perl(List::Util::XS) = 1.46 \ +Provides: %{?scl_prefix}perl(Scalar::Util) = 1.46 \ +Provides: %{?scl_prefix}perl(Sub::Util) = 1.46 \ +%{nil} +%global gendep_perl_SelfLoader \ +Requires: %{?scl_prefix}perl(:VERSION) >= 5.8.0 \ +Requires: %{?scl_prefix}perl(Exporter) \ +Requires: %{?scl_prefix}perl(IO::Handle) \ +Requires: %{?scl_prefix}perl(strict) \ +Requires: %{?scl_prefix}perl(vars) \ +Provides: %{?scl_prefix}perl(SelfLoader) = 1.23 \ +%{nil} +%global gendep_perl_Socket \ +Requires: %{?scl_prefix}perl(Carp) \ +Requires: %{?scl_prefix}perl(Exporter) \ +Requires: %{?scl_prefix}perl(XSLoader) \ +Requires: %{?scl_prefix}perl(strict) \ +Requires: %{?scl_prefix}perl(warnings::register) \ +Provides: %{?scl_prefix}perl(Socket) = 2.020 \ +%{nil} +%global gendep_perl_Storable \ +Requires: %{?scl_prefix}perl(Exporter) \ +Requires: %{?scl_prefix}perl(XSLoader) \ +Requires: %{?scl_prefix}perl(vars) \ +Provides: %{?scl_prefix}perl(Storable) = 2.62 \ +%{nil} +%global gendep_perl_Sys_Syslog \ +Requires: %{?scl_prefix}perl(:VERSION) >= 5.5.0 \ +Requires: %{?scl_prefix}perl(Carp) \ +Requires: %{?scl_prefix}perl(Config) \ +Requires: %{?scl_prefix}perl(Exporter) \ +Requires: %{?scl_prefix}perl(File::Basename) \ +Requires: %{?scl_prefix}perl(POSIX) \ +Requires: %{?scl_prefix}perl(Socket) \ +Requires: %{?scl_prefix}perl(constant) \ +Requires: %{?scl_prefix}perl(strict) \ +Requires: %{?scl_prefix}perl(vars) \ +Requires: %{?scl_prefix}perl(warnings) \ +Requires: %{?scl_prefix}perl(warnings::register) \ +Provides: %{?scl_prefix}perl(Sys::Syslog) = 0.35 \ +%{nil} +%global gendep_perl_Term_ANSIColor \ +Requires: %{?scl_prefix}perl(:VERSION) >= 5.6.0 \ +Requires: %{?scl_prefix}perl(Exporter) \ +Requires: %{?scl_prefix}perl(strict) \ +Requires: %{?scl_prefix}perl(warnings) \ +Provides: %{?scl_prefix}perl(Term::ANSIColor) = 4.06 \ +%{nil} +%global gendep_perl_Term_Cap \ +Requires: %{?scl_prefix}perl(strict) \ +Requires: %{?scl_prefix}perl(vars) \ +Provides: %{?scl_prefix}perl(Term::Cap) = 1.17 \ +%{nil} +%global gendep_perl_Test \ +Requires: %{?scl_prefix}perl(:VERSION) >= 5.4.0 \ +Requires: %{?scl_prefix}perl(Carp) \ +Requires: %{?scl_prefix}perl(Exporter) \ +Requires: %{?scl_prefix}perl(strict) \ +Requires: %{?scl_prefix}perl(vars) \ +Provides: %{?scl_prefix}perl(Test) = 1.30 \ +%{nil} +%global gendep_perl_Test_Harness \ +Requires: %{?scl_prefix}perl(:VERSION) >= 5.6.0 \ +Requires: %{?scl_prefix}perl(App::Prove) \ +Requires: %{?scl_prefix}perl(App::Prove::State) \ +Requires: %{?scl_prefix}perl(App::Prove::State::Result) \ +Requires: %{?scl_prefix}perl(App::Prove::State::Result::Test) \ +Requires: %{?scl_prefix}perl(Benchmark) \ +Requires: %{?scl_prefix}perl(Carp) \ +Requires: %{?scl_prefix}perl(Config) \ +Requires: %{?scl_prefix}perl(Exporter) \ +Requires: %{?scl_prefix}perl(File::Basename) \ +Requires: %{?scl_prefix}perl(File::Find) \ +Requires: %{?scl_prefix}perl(File::Path) \ +Requires: %{?scl_prefix}perl(File::Spec) \ +Requires: %{?scl_prefix}perl(Getopt::Long) \ +Requires: %{?scl_prefix}perl(IO::Handle) \ +Requires: %{?scl_prefix}perl(IO::Select) \ +Requires: %{?scl_prefix}perl(POSIX) \ +Requires: %{?scl_prefix}perl(TAP::Base) \ +Requires: %{?scl_prefix}perl(TAP::Formatter::Base) \ +Requires: %{?scl_prefix}perl(TAP::Formatter::Console::Session) \ +Requires: %{?scl_prefix}perl(TAP::Formatter::File::Session) \ +Requires: %{?scl_prefix}perl(TAP::Formatter::Session) \ +Requires: %{?scl_prefix}perl(TAP::Harness) \ +Requires: %{?scl_prefix}perl(TAP::Harness::Env) \ +Requires: %{?scl_prefix}perl(TAP::Object) \ +Requires: %{?scl_prefix}perl(TAP::Parser::Aggregator) \ +Requires: %{?scl_prefix}perl(TAP::Parser::Grammar) \ +Requires: %{?scl_prefix}perl(TAP::Parser::Iterator) \ +Requires: %{?scl_prefix}perl(TAP::Parser::Iterator::Array) \ +Requires: %{?scl_prefix}perl(TAP::Parser::Iterator::Process) \ +Requires: %{?scl_prefix}perl(TAP::Parser::Iterator::Stream) \ +Requires: %{?scl_prefix}perl(TAP::Parser::IteratorFactory) \ +Requires: %{?scl_prefix}perl(TAP::Parser::Result) \ +Requires: %{?scl_prefix}perl(TAP::Parser::Result::Bailout) \ +Requires: %{?scl_prefix}perl(TAP::Parser::Result::Comment) \ +Requires: %{?scl_prefix}perl(TAP::Parser::Result::Plan) \ +Requires: %{?scl_prefix}perl(TAP::Parser::Result::Pragma) \ +Requires: %{?scl_prefix}perl(TAP::Parser::Result::Test) \ +Requires: %{?scl_prefix}perl(TAP::Parser::Result::Unknown) \ +Requires: %{?scl_prefix}perl(TAP::Parser::Result::Version) \ +Requires: %{?scl_prefix}perl(TAP::Parser::Result::YAML) \ +Requires: %{?scl_prefix}perl(TAP::Parser::ResultFactory) \ +Requires: %{?scl_prefix}perl(TAP::Parser::Scheduler::Job) \ +Requires: %{?scl_prefix}perl(TAP::Parser::Scheduler::Spinner) \ +Requires: %{?scl_prefix}perl(TAP::Parser::Source) \ +Requires: %{?scl_prefix}perl(TAP::Parser::SourceHandler) \ +Requires: %{?scl_prefix}perl(TAP::Parser::SourceHandler::Executable) \ +Requires: %{?scl_prefix}perl(TAP::Parser::SourceHandler::File) \ +Requires: %{?scl_prefix}perl(TAP::Parser::SourceHandler::Handle) \ +Requires: %{?scl_prefix}perl(TAP::Parser::SourceHandler::Perl) \ +Requires: %{?scl_prefix}perl(TAP::Parser::SourceHandler::RawTAP) \ +Requires: %{?scl_prefix}perl(TAP::Parser::YAMLish::Reader) \ +Requires: %{?scl_prefix}perl(TAP::Parser::YAMLish::Writer) \ +Requires: %{?scl_prefix}perl(Text::ParseWords) \ +Requires: %{?scl_prefix}perl(base) \ +Requires: %{?scl_prefix}perl(constant) \ +Requires: %{?scl_prefix}perl(strict) \ +Requires: %{?scl_prefix}perl(warnings) \ +Provides: %{?scl_prefix}perl(App::Prove) = 3.38 \ +Provides: %{?scl_prefix}perl(App::Prove::State) = 3.38 \ +Provides: %{?scl_prefix}perl(App::Prove::State::Result) = 3.38 \ +Provides: %{?scl_prefix}perl(App::Prove::State::Result::Test) = 3.38 \ +Provides: %{?scl_prefix}perl(TAP::Base) = 3.38 \ +Provides: %{?scl_prefix}perl(TAP::Formatter::Base) = 3.38 \ +Provides: %{?scl_prefix}perl(TAP::Formatter::Color) = 3.38 \ +Provides: %{?scl_prefix}perl(TAP::Formatter::Console) = 3.38 \ +Provides: %{?scl_prefix}perl(TAP::Formatter::Console::ParallelSession) = 3.38 \ +Provides: %{?scl_prefix}perl(TAP::Formatter::Console::Session) = 3.38 \ +Provides: %{?scl_prefix}perl(TAP::Formatter::File) = 3.38 \ +Provides: %{?scl_prefix}perl(TAP::Formatter::File::Session) = 3.38 \ +Provides: %{?scl_prefix}perl(TAP::Formatter::Session) = 3.38 \ +Provides: %{?scl_prefix}perl(TAP::Harness) = 3.38 \ +Provides: %{?scl_prefix}perl(TAP::Harness::Env) = 3.38 \ +Provides: %{?scl_prefix}perl(TAP::Object) = 3.38 \ +Provides: %{?scl_prefix}perl(TAP::Parser) = 3.38 \ +Provides: %{?scl_prefix}perl(TAP::Parser::Aggregator) = 3.38 \ +Provides: %{?scl_prefix}perl(TAP::Parser::Grammar) = 3.38 \ +Provides: %{?scl_prefix}perl(TAP::Parser::Iterator) = 3.38 \ +Provides: %{?scl_prefix}perl(TAP::Parser::Iterator::Array) = 3.38 \ +Provides: %{?scl_prefix}perl(TAP::Parser::Iterator::Process) = 3.38 \ +Provides: %{?scl_prefix}perl(TAP::Parser::Iterator::Stream) = 3.38 \ +Provides: %{?scl_prefix}perl(TAP::Parser::IteratorFactory) = 3.38 \ +Provides: %{?scl_prefix}perl(TAP::Parser::Multiplexer) = 3.38 \ +Provides: %{?scl_prefix}perl(TAP::Parser::Result) = 3.38 \ +Provides: %{?scl_prefix}perl(TAP::Parser::Result::Bailout) = 3.38 \ +Provides: %{?scl_prefix}perl(TAP::Parser::Result::Comment) = 3.38 \ +Provides: %{?scl_prefix}perl(TAP::Parser::Result::Plan) = 3.38 \ +Provides: %{?scl_prefix}perl(TAP::Parser::Result::Pragma) = 3.38 \ +Provides: %{?scl_prefix}perl(TAP::Parser::Result::Test) = 3.38 \ +Provides: %{?scl_prefix}perl(TAP::Parser::Result::Unknown) = 3.38 \ +Provides: %{?scl_prefix}perl(TAP::Parser::Result::Version) = 3.38 \ +Provides: %{?scl_prefix}perl(TAP::Parser::Result::YAML) = 3.38 \ +Provides: %{?scl_prefix}perl(TAP::Parser::ResultFactory) = 3.38 \ +Provides: %{?scl_prefix}perl(TAP::Parser::Scheduler) = 3.38 \ +Provides: %{?scl_prefix}perl(TAP::Parser::Scheduler::Job) = 3.38 \ +Provides: %{?scl_prefix}perl(TAP::Parser::Scheduler::Spinner) = 3.38 \ +Provides: %{?scl_prefix}perl(TAP::Parser::Source) = 3.38 \ +Provides: %{?scl_prefix}perl(TAP::Parser::SourceHandler) = 3.38 \ +Provides: %{?scl_prefix}perl(TAP::Parser::SourceHandler::Executable) = 3.38 \ +Provides: %{?scl_prefix}perl(TAP::Parser::SourceHandler::File) = 3.38 \ +Provides: %{?scl_prefix}perl(TAP::Parser::SourceHandler::Handle) = 3.38 \ +Provides: %{?scl_prefix}perl(TAP::Parser::SourceHandler::Perl) = 3.38 \ +Provides: %{?scl_prefix}perl(TAP::Parser::SourceHandler::RawTAP) = 3.38 \ +Provides: %{?scl_prefix}perl(TAP::Parser::YAMLish::Reader) = 3.38 \ +Provides: %{?scl_prefix}perl(TAP::Parser::YAMLish::Writer) = 3.38 \ +Provides: %{?scl_prefix}perl(Test::Harness) = 3.38 \ +%{nil} +%global gendep_perl_Test_Simple \ +Requires: %{?scl_prefix}perl(:VERSION) >= 5.5.0 \ +Requires: %{?scl_prefix}perl(:VERSION) >= 5.6.0 \ +Requires: %{?scl_prefix}perl(Carp) \ +Requires: %{?scl_prefix}perl(Config) \ +Requires: %{?scl_prefix}perl(Exporter) \ +Requires: %{?scl_prefix}perl(File::Spec) \ +Requires: %{?scl_prefix}perl(File::Temp) \ +Requires: %{?scl_prefix}perl(IO::Handle) \ +Requires: %{?scl_prefix}perl(POSIX) \ +Requires: %{?scl_prefix}perl(PerlIO) \ +Requires: %{?scl_prefix}perl(Scalar::Util) \ +Requires: %{?scl_prefix}perl(Storable) \ +Requires: %{?scl_prefix}perl(Symbol) \ +Requires: %{?scl_prefix}perl(Test2::API) \ +Requires: %{?scl_prefix}perl(Test2::API::Context) \ +Requires: %{?scl_prefix}perl(Test2::API::Instance) \ +Requires: %{?scl_prefix}perl(Test2::API::Stack) \ +Requires: %{?scl_prefix}perl(Test2::Event::Bail) \ +Requires: %{?scl_prefix}perl(Test2::Event::Diag) \ +Requires: %{?scl_prefix}perl(Test2::Event::Exception) \ +Requires: %{?scl_prefix}perl(Test2::Event::Note) \ +Requires: %{?scl_prefix}perl(Test2::Event::Ok) \ +Requires: %{?scl_prefix}perl(Test2::Event::Plan) \ +Requires: %{?scl_prefix}perl(Test2::Event::Skip) \ +Requires: %{?scl_prefix}perl(Test2::Event::Subtest) \ +Requires: %{?scl_prefix}perl(Test2::Event::Waiting) \ +Requires: %{?scl_prefix}perl(Test2::Hub) \ +Requires: %{?scl_prefix}perl(Test2::Hub::Interceptor) \ +Requires: %{?scl_prefix}perl(Test2::Hub::Interceptor::Terminator) \ +Requires: %{?scl_prefix}perl(Test2::Hub::Subtest) \ +Requires: %{?scl_prefix}perl(Test2::Util) \ +Requires: %{?scl_prefix}perl(Test2::Util::ExternalMeta) \ +Requires: %{?scl_prefix}perl(Test2::Util::HashBase) \ +Requires: %{?scl_prefix}perl(Test2::Util::Trace) \ +Requires: %{?scl_prefix}perl(Test::Builder) \ +Requires: %{?scl_prefix}perl(Test::Builder::Formatter) \ +Requires: %{?scl_prefix}perl(Test::Builder::Module) \ +Requires: %{?scl_prefix}perl(Test::Builder::Tester) \ +Requires: %{?scl_prefix}perl(Test::Builder::TodoDiag) \ +Requires: %{?scl_prefix}perl(Test::More) \ +Requires: %{?scl_prefix}perl(Test::Tester::Capture) \ +Requires: %{?scl_prefix}perl(Test::Tester::CaptureRunner) \ +Requires: %{?scl_prefix}perl(Test::Tester::Delegate) \ +Requires: %{?scl_prefix}perl(strict) \ +Requires: %{?scl_prefix}perl(vars) \ +Requires: %{?scl_prefix}perl(warnings) \ +Provides: %{?scl_prefix}perl(Test2) = 1.302073 \ +Provides: %{?scl_prefix}perl(Test2::API) = 1.302073 \ +Provides: %{?scl_prefix}perl(Test2::API::Breakage) = 1.302073 \ +Provides: %{?scl_prefix}perl(Test2::API::Context) = 1.302073 \ +Provides: %{?scl_prefix}perl(Test2::API::Instance) = 1.302073 \ +Provides: %{?scl_prefix}perl(Test2::API::Stack) = 1.302073 \ +Provides: %{?scl_prefix}perl(Test2::Event) = 1.302073 \ +Provides: %{?scl_prefix}perl(Test2::Event::Bail) = 1.302073 \ +Provides: %{?scl_prefix}perl(Test2::Event::Diag) = 1.302073 \ +Provides: %{?scl_prefix}perl(Test2::Event::Encoding) = 1.302073 \ +Provides: %{?scl_prefix}perl(Test2::Event::Exception) = 1.302073 \ +Provides: %{?scl_prefix}perl(Test2::Event::Generic) = 1.302073 \ +Provides: %{?scl_prefix}perl(Test2::Event::Info) = 1.302073 \ +Provides: %{?scl_prefix}perl(Test2::Event::Note) = 1.302073 \ +Provides: %{?scl_prefix}perl(Test2::Event::Ok) = 1.302073 \ +Provides: %{?scl_prefix}perl(Test2::Event::Plan) = 1.302073 \ +Provides: %{?scl_prefix}perl(Test2::Event::Skip) = 1.302073 \ +Provides: %{?scl_prefix}perl(Test2::Event::Subtest) = 1.302073 \ +Provides: %{?scl_prefix}perl(Test2::Event::TAP::Version) = 1.302073 \ +Provides: %{?scl_prefix}perl(Test2::Event::Waiting) = 1.302073 \ +Provides: %{?scl_prefix}perl(Test2::Formatter) = 1.302073 \ +Provides: %{?scl_prefix}perl(Test2::Formatter::TAP) = 1.302073 \ +Provides: %{?scl_prefix}perl(Test2::Hub) = 1.302073 \ +Provides: %{?scl_prefix}perl(Test2::Hub::Interceptor) = 1.302073 \ +Provides: %{?scl_prefix}perl(Test2::Hub::Interceptor::Terminator) = 1.302073 \ +Provides: %{?scl_prefix}perl(Test2::Hub::Subtest) = 1.302073 \ +Provides: %{?scl_prefix}perl(Test2::IPC) = 1.302073 \ +Provides: %{?scl_prefix}perl(Test2::IPC::Driver) = 1.302073 \ +Provides: %{?scl_prefix}perl(Test2::IPC::Driver::Files) = 1.302073 \ +Provides: %{?scl_prefix}perl(Test2::Tools::Tiny) = 1.302073 \ +Provides: %{?scl_prefix}perl(Test2::Util) = 1.302073 \ +Provides: %{?scl_prefix}perl(Test2::Util::ExternalMeta) = 1.302073 \ +Provides: %{?scl_prefix}perl(Test2::Util::HashBase) = 0.002 \ +Provides: %{?scl_prefix}perl(Test2::Util::Trace) = 1.302073 \ +Provides: %{?scl_prefix}perl(Test::Builder) = 1.302073 \ +Provides: %{?scl_prefix}perl(Test::Builder::Formatter) = 1.302073 \ +Provides: %{?scl_prefix}perl(Test::Builder::IO::Scalar) = 2.113 \ +Provides: %{?scl_prefix}perl(Test::Builder::Module) = 1.302073 \ +Provides: %{?scl_prefix}perl(Test::Builder::Tester) = 1.302073 \ +Provides: %{?scl_prefix}perl(Test::Builder::Tester::Color) = 1.302073 \ +Provides: %{?scl_prefix}perl(Test::Builder::Tester::Tie) \ +Provides: %{?scl_prefix}perl(Test::Builder::TodoDiag) = 1.302073 \ +Provides: %{?scl_prefix}perl(Test::More) = 1.302073 \ +Provides: %{?scl_prefix}perl(Test::Simple) = 1.302073 \ +Provides: %{?scl_prefix}perl(Test::Tester) = 1.302073 \ +Provides: %{?scl_prefix}perl(Test::Tester::Capture) = 1.302073 \ +Provides: %{?scl_prefix}perl(Test::Tester::CaptureRunner) = 1.302073 \ +Provides: %{?scl_prefix}perl(Test::Tester::Delegate) = 1.302073 \ +Provides: %{?scl_prefix}perl(Test::use::ok) = 1.302073 \ +Provides: %{?scl_prefix}perl(ok) = 1.302073 \ +%{nil} +%global gendep_perl_Text_Balanced \ +Requires: %{?scl_prefix}perl(:VERSION) >= 5.5.0 \ +Requires: %{?scl_prefix}perl(Carp) \ +Requires: %{?scl_prefix}perl(Exporter) \ +Requires: %{?scl_prefix}perl(SelfLoader) \ +Requires: %{?scl_prefix}perl(overload) \ +Requires: %{?scl_prefix}perl(strict) \ +Requires: %{?scl_prefix}perl(vars) \ +Provides: %{?scl_prefix}perl(Text::Balanced) = 2.03 \ +Provides: %{?scl_prefix}perl(Text::Balanced::ErrorMsg) \ +Provides: %{?scl_prefix}perl(Text::Balanced::Extractor) \ +%{nil} +%global gendep_perl_Text_ParseWords \ +Requires: %{?scl_prefix}perl(:VERSION) >= 5.6.0 \ +Requires: %{?scl_prefix}perl(Exporter) \ +Requires: %{?scl_prefix}perl(strict) \ +Provides: %{?scl_prefix}perl(Text::ParseWords) = 3.30 \ +%{nil} +%global gendep_perl_Text_Tabs_Wrap \ +Requires: %{?scl_prefix}perl(:VERSION) >= 5.10.0 \ +Requires: %{?scl_prefix}perl(Exporter) \ +Requires: %{?scl_prefix}perl(Text::Tabs) \ +Requires: %{?scl_prefix}perl(re) \ +Requires: %{?scl_prefix}perl(strict) \ +Requires: %{?scl_prefix}perl(vars) \ +Requires: %{?scl_prefix}perl(warnings::register) \ +Provides: %{?scl_prefix}perl(Text::Tabs) = 2013.0523 \ +Provides: %{?scl_prefix}perl(Text::Wrap) = 2013.0523 \ +%{nil} +%global gendep_perl_Thread_Queue \ +Requires: %{?scl_prefix}perl(Scalar::Util) >= 1.10 \ +Requires: %{?scl_prefix}perl(strict) \ +Requires: %{?scl_prefix}perl(threads::shared) >= 1.21 \ +Requires: %{?scl_prefix}perl(warnings) \ +Provides: %{?scl_prefix}perl(Thread::Queue) = 3.12 \ +%{nil} +%global gendep_perl_Time_HiRes \ +Requires: %{?scl_prefix}perl(DynaLoader) \ +Requires: %{?scl_prefix}perl(Exporter) \ +Requires: %{?scl_prefix}perl(strict) \ +Provides: %{?scl_prefix}perl(Time::HiRes) = 1.9741 \ +%{nil} +%global gendep_perl_Time_Local \ +Requires: %{?scl_prefix}perl(Carp) \ +Requires: %{?scl_prefix}perl(Exporter) \ +Requires: %{?scl_prefix}perl(constant) \ +Requires: %{?scl_prefix}perl(parent) \ +Requires: %{?scl_prefix}perl(strict) \ +Provides: %{?scl_prefix}perl(Time::Local) = 1.25 \ +%{nil} +%global gendep_perl_Time_Piece \ +Requires: %{?scl_prefix}perl(Carp) \ +Requires: %{?scl_prefix}perl(DynaLoader) \ +Requires: %{?scl_prefix}perl(Exporter) >= 5.57 \ +Requires: %{?scl_prefix}perl(Time::Local) \ +Requires: %{?scl_prefix}perl(Time::Seconds) \ +Requires: %{?scl_prefix}perl(constant) \ +Requires: %{?scl_prefix}perl(integer) \ +Requires: %{?scl_prefix}perl(overload) \ +Requires: %{?scl_prefix}perl(strict) \ +Provides: %{?scl_prefix}perl(Time::Piece) = 1.31 \ +Provides: %{?scl_prefix}perl(Time::Seconds) = 1.31 \ +%{nil} +%global gendep_perl_Unicode_Collate \ +Requires: %{?scl_prefix}perl(:VERSION) >= 5.6.0 \ +Requires: %{?scl_prefix}perl(Carp) \ +Requires: %{?scl_prefix}perl(DynaLoader) \ +Requires: %{?scl_prefix}perl(File::Spec) \ +Requires: %{?scl_prefix}perl(Unicode::Collate) \ +Requires: %{?scl_prefix}perl(base) \ +Requires: %{?scl_prefix}perl(constant) \ +Requires: %{?scl_prefix}perl(strict) \ +Requires: %{?scl_prefix}perl(warnings) \ +Provides: %{?scl_prefix}perl(Unicode::Collate) = 1.19 \ +Provides: %{?scl_prefix}perl(Unicode::Collate::CJK::Big5) = 1.19 \ +Provides: %{?scl_prefix}perl(Unicode::Collate::CJK::GB2312) = 1.19 \ +Provides: %{?scl_prefix}perl(Unicode::Collate::CJK::JISX0208) = 1.19 \ +Provides: %{?scl_prefix}perl(Unicode::Collate::CJK::Korean) = 1.19 \ +Provides: %{?scl_prefix}perl(Unicode::Collate::CJK::Pinyin) = 1.19 \ +Provides: %{?scl_prefix}perl(Unicode::Collate::CJK::Stroke) = 1.19 \ +Provides: %{?scl_prefix}perl(Unicode::Collate::CJK::Zhuyin) = 1.19 \ +Provides: %{?scl_prefix}perl(Unicode::Collate::Locale) = 1.19 \ +%{nil} +%global gendep_perl_Unicode_Normalize \ +Requires: %{?scl_prefix}perl(:VERSION) >= 5.6.0 \ +Requires: %{?scl_prefix}perl(Carp) \ +Requires: %{?scl_prefix}perl(DynaLoader) \ +Requires: %{?scl_prefix}perl(Exporter) \ +Requires: %{?scl_prefix}perl(strict) \ +Requires: %{?scl_prefix}perl(warnings) \ +Provides: %{?scl_prefix}perl(Unicode::Normalize) = 1.25 \ +%{nil} +%global gendep_perl_autodie \ +Requires: %{?scl_prefix}perl(:VERSION) >= 5.8.0 \ +Requires: %{?scl_prefix}perl(Carp) \ +Requires: %{?scl_prefix}perl(Config) \ +Requires: %{?scl_prefix}perl(Exporter) >= 5.57 \ +Requires: %{?scl_prefix}perl(Fatal) \ +Requires: %{?scl_prefix}perl(Scalar::Util) \ +Requires: %{?scl_prefix}perl(Tie::RefHash) \ +Requires: %{?scl_prefix}perl(autodie::Scope::Guard) \ +Requires: %{?scl_prefix}perl(autodie::Scope::GuardStack) \ +Requires: %{?scl_prefix}perl(autodie::Util) \ +Requires: %{?scl_prefix}perl(autodie::exception) \ +Requires: %{?scl_prefix}perl(constant) \ +Requires: %{?scl_prefix}perl(lib) \ +Requires: %{?scl_prefix}perl(overload) \ +Requires: %{?scl_prefix}perl(parent) \ +Requires: %{?scl_prefix}perl(strict) \ +Requires: %{?scl_prefix}perl(warnings) \ +Provides: %{?scl_prefix}perl(Fatal) = 2.29 \ +Provides: %{?scl_prefix}perl(autodie) = 2.29 \ +Provides: %{?scl_prefix}perl(autodie::Scope::Guard) = 2.29 \ +Provides: %{?scl_prefix}perl(autodie::Scope::GuardStack) = 2.29 \ +Provides: %{?scl_prefix}perl(autodie::Util) = 2.29 \ +Provides: %{?scl_prefix}perl(autodie::exception) = 2.29 \ +Provides: %{?scl_prefix}perl(autodie::exception::system) = 2.29 \ +Provides: %{?scl_prefix}perl(autodie::hints) = 2.29 \ +Provides: %{?scl_prefix}perl(autodie::skip) = 2.29 \ +%{nil} +%global gendep_perl_bignum \ +Requires: %{?scl_prefix}perl(:VERSION) >= 5.6.0 \ +Requires: %{?scl_prefix}perl(Exporter) \ +Requires: %{?scl_prefix}perl(Math::BigFloat) \ +Requires: %{?scl_prefix}perl(Math::BigInt) \ +Requires: %{?scl_prefix}perl(bigint) \ +Requires: %{?scl_prefix}perl(constant) \ +Requires: %{?scl_prefix}perl(overload) \ +Requires: %{?scl_prefix}perl(strict) \ +Requires: %{?scl_prefix}perl(warnings) \ +Provides: %{?scl_prefix}perl(Math::BigFloat::Trace) = 0.47 \ +Provides: %{?scl_prefix}perl(Math::BigInt::Trace) = 0.47 \ +Provides: %{?scl_prefix}perl(bigint) = 0.47 \ +Provides: %{?scl_prefix}perl(bignum) = 0.47 \ +Provides: %{?scl_prefix}perl(bigrat) = 0.47 \ +%{nil} +%global gendep_perl_constant \ +Requires: %{?scl_prefix}perl(:VERSION) >= 5.8.0 \ +Requires: %{?scl_prefix}perl(strict) \ +Requires: %{?scl_prefix}perl(warnings::register) \ +Provides: %{?scl_prefix}perl(constant) = 1.33 \ +%{nil} +%global gendep_perl_debuginfo \ +%{nil} +%global gendep_perl_devel \ +Requires: %{?scl_prefix}perl(Config) \ +Requires: %{?scl_prefix}perl(ExtUtils::Constant) \ +Requires: %{?scl_prefix}perl(ExtUtils::Installed) \ +Requires: %{?scl_prefix}perl(File::Compare) \ +Requires: %{?scl_prefix}perl(File::Path) \ +Requires: %{?scl_prefix}perl(File::Spec) \ +Requires: %{?scl_prefix}perl(Getopt::Long) \ +Requires: %{?scl_prefix}perl(Text::Wrap) \ +Requires: %{?scl_prefix}perl(strict) \ +Requires: %{?scl_prefix}perl(vars) \ +Requires: %{?scl_prefix}perl(warnings) \ +%{nil} +%global gendep_perl_encoding \ +Requires: %{?scl_prefix}perl(Encode) \ +Requires: %{?scl_prefix}perl(constant) \ +Requires: %{?scl_prefix}perl(strict) \ +Requires: %{?scl_prefix}perl(warnings) \ +Provides: %{?scl_prefix}perl(encoding) = 2.19 \ +%{nil} +%global gendep_perl_experimental \ +Requires: %{?scl_prefix}perl(Carp) \ +Requires: %{?scl_prefix}perl(feature) \ +Requires: %{?scl_prefix}perl(strict) \ +Requires: %{?scl_prefix}perl(version) \ +Requires: %{?scl_prefix}perl(warnings) \ +Provides: %{?scl_prefix}perl(experimental) = 0.016 \ +%{nil} +%global gendep_perl_libnet \ +Requires: %{?scl_prefix}perl(:VERSION) >= 5.8.1 \ +Requires: %{?scl_prefix}perl(Carp) \ +Requires: %{?scl_prefix}perl(Errno) \ +Requires: %{?scl_prefix}perl(Exporter) \ +Requires: %{?scl_prefix}perl(Fcntl) \ +Requires: %{?scl_prefix}perl(FileHandle) \ +Requires: %{?scl_prefix}perl(IO::Select) \ +Requires: %{?scl_prefix}perl(IO::Socket) \ +Requires: %{?scl_prefix}perl(Net::Cmd) \ +Requires: %{?scl_prefix}perl(Net::Config) \ +Requires: %{?scl_prefix}perl(Net::FTP::I) \ +Requires: %{?scl_prefix}perl(Net::FTP::dataconn) \ +Requires: %{?scl_prefix}perl(Socket) \ +Requires: %{?scl_prefix}perl(Symbol) \ +Requires: %{?scl_prefix}perl(Time::Local) \ +Requires: %{?scl_prefix}perl(constant) \ +Requires: %{?scl_prefix}perl(strict) \ +Requires: %{?scl_prefix}perl(warnings) \ +Provides: %{?scl_prefix}perl(Net::Cmd) = 3.10 \ +Provides: %{?scl_prefix}perl(Net::Config) = 3.10 \ +Provides: %{?scl_prefix}perl(Net::Domain) = 3.10 \ +Provides: %{?scl_prefix}perl(Net::FTP) = 3.10 \ +Provides: %{?scl_prefix}perl(Net::FTP::A) = 3.10 \ +Provides: %{?scl_prefix}perl(Net::FTP::E) = 3.10 \ +Provides: %{?scl_prefix}perl(Net::FTP::I) = 3.10 \ +Provides: %{?scl_prefix}perl(Net::FTP::L) = 3.10 \ +Provides: %{?scl_prefix}perl(Net::FTP::_SSL_SingleSessionCache) \ +Provides: %{?scl_prefix}perl(Net::FTP::dataconn) = 3.10 \ +Provides: %{?scl_prefix}perl(Net::NNTP) = 3.10 \ +Provides: %{?scl_prefix}perl(Net::NNTP::_SSL) \ +Provides: %{?scl_prefix}perl(Net::Netrc) = 3.10 \ +Provides: %{?scl_prefix}perl(Net::POP3) = 3.10 \ +Provides: %{?scl_prefix}perl(Net::POP3::_SSL) \ +Provides: %{?scl_prefix}perl(Net::SMTP) = 3.10 \ +Provides: %{?scl_prefix}perl(Net::SMTP::_SSL) \ +Provides: %{?scl_prefix}perl(Net::Time) = 3.10 \ +%{nil} +%global gendep_perl_libnetcfg \ +Requires: %{?scl_prefix}perl(ExtUtils::MakeMaker) \ +Requires: %{?scl_prefix}perl(File::Spec) \ +Requires: %{?scl_prefix}perl(Getopt::Std) \ +Requires: %{?scl_prefix}perl(IO::File) \ +Requires: %{?scl_prefix}perl(strict) \ +Requires: %{?scl_prefix}perl(vars) \ +%{nil} +%global gendep_perl_libs \ +Requires: %{?scl_prefix}perl(integer) \ +Requires: %{?scl_prefix}perl(strict) \ +Requires: %{?scl_prefix}perl(warnings) \ +Provides: %{?scl_prefix}perl(:MODULE_COMPAT_5.24.0) \ +Provides: %{?scl_prefix}perl(:MODULE_COMPAT_5.24.1) \ +Provides: %{?scl_prefix}perl(:MODULE_COMPAT_5.26.0) \ +Provides: %{?scl_prefix}perl(:VERSION) = 5.26.0 \ +Provides: %{?scl_prefix}perl(:WITH_ITHREADS) \ +Provides: %{?scl_prefix}perl(:WITH_LARGEFILES) \ +Provides: %{?scl_prefix}perl(:WITH_PERLIO) \ +Provides: %{?scl_prefix}perl(:WITH_THREADS) \ +Provides: %{?scl_prefix}perl(XSLoader) = 0.27 \ +Provides: %{?scl_prefix}perl(integer) = 1.01 \ +Provides: %{?scl_prefix}perl(re) = 0.34 \ +Provides: %{?scl_prefix}perl(strict) = 1.11 \ +Provides: %{?scl_prefix}perl(unicore::Name) \ +Provides: %{?scl_prefix}perl(utf8) = 1.19 \ +Provides: %{?scl_prefix}perl(utf8_heavy.pl) \ +Provides: %{?scl_prefix}perl(warnings) = 1.37 \ +%{nil} +%global gendep_perl_macros \ +%{nil} +%global gendep_perl_open \ +Requires: %{?scl_prefix}perl(:VERSION) >= 5.8.1 \ +Requires: %{?scl_prefix}perl(warnings) \ +Provides: %{?scl_prefix}perl(open) = 1.11 \ +%{nil} +%global gendep_perl_parent \ +Requires: %{?scl_prefix}perl(strict) \ +Requires: %{?scl_prefix}perl(vars) \ +Provides: %{?scl_prefix}perl(parent) = 0.236 \ +%{nil} +%global gendep_perl_perlfaq \ +Requires: %{?scl_prefix}perl(strict) \ +Requires: %{?scl_prefix}perl(warnings) \ +Provides: %{?scl_prefix}perl(perlfaq) = 5.021011 \ +%{nil} +%global gendep_perl_podlators \ +Requires: %{?scl_prefix}perl(:VERSION) >= 5.6.0 \ +Requires: %{?scl_prefix}perl(Carp) \ +Requires: %{?scl_prefix}perl(Encode) \ +Requires: %{?scl_prefix}perl(Exporter) \ +Requires: %{?scl_prefix}perl(Getopt::Long) \ +Requires: %{?scl_prefix}perl(POSIX) \ +Requires: %{?scl_prefix}perl(Pod::Man) \ +Requires: %{?scl_prefix}perl(Pod::Simple) \ +Requires: %{?scl_prefix}perl(Pod::Text) \ +Requires: %{?scl_prefix}perl(Pod::Usage) \ +Requires: %{?scl_prefix}perl(Term::ANSIColor) \ +Requires: %{?scl_prefix}perl(Term::Cap) \ +Requires: %{?scl_prefix}perl(strict) \ +Requires: %{?scl_prefix}perl(subs) \ +Requires: %{?scl_prefix}perl(vars) \ +Requires: %{?scl_prefix}perl(warnings) \ +Provides: %{?scl_prefix}perl(Pod::Man) = 4.09 \ +Provides: %{?scl_prefix}perl(Pod::ParseLink) = 4.09 \ +Provides: %{?scl_prefix}perl(Pod::Text) = 4.09 \ +Provides: %{?scl_prefix}perl(Pod::Text::Color) = 4.09 \ +Provides: %{?scl_prefix}perl(Pod::Text::Overstrike) = 4.09 \ +Provides: %{?scl_prefix}perl(Pod::Text::Termcap) = 4.09 \ +%{nil} +%global gendep_perl_tests \ +%{nil} +%global gendep_perl_threads \ +Requires: %{?scl_prefix}perl(:VERSION) >= 5.8.0 \ +Requires: %{?scl_prefix}perl(Config) \ +Requires: %{?scl_prefix}perl(XSLoader) \ +Requires: %{?scl_prefix}perl(overload) \ +Requires: %{?scl_prefix}perl(strict) \ +Requires: %{?scl_prefix}perl(warnings) \ +Provides: %{?scl_prefix}perl(threads) = 2.15 \ +%{nil} +%global gendep_perl_threads_shared \ +Requires: %{?scl_prefix}perl(:VERSION) >= 5.8.0 \ +Requires: %{?scl_prefix}perl(Scalar::Util) \ +Requires: %{?scl_prefix}perl(strict) \ +Requires: %{?scl_prefix}perl(warnings) \ +Provides: %{?scl_prefix}perl(threads::shared) = 1.56 \ +%{nil} +%global gendep_perl_utils \ +Requires: %{?scl_prefix}perl(:VERSION) >= 5.9.1 \ +Requires: %{?scl_prefix}perl(Carp) \ +Requires: %{?scl_prefix}perl(Config) \ +Requires: %{?scl_prefix}perl(File::Basename) \ +Requires: %{?scl_prefix}perl(File::Path) \ +Requires: %{?scl_prefix}perl(File::Spec) \ +Requires: %{?scl_prefix}perl(Getopt::Std) \ +Requires: %{?scl_prefix}perl(Text::Tabs) \ +Requires: %{?scl_prefix}perl(re) \ +Requires: %{?scl_prefix}perl(strict) \ +Requires: %{?scl_prefix}perl(vars) \ +Requires: %{?scl_prefix}perl(warnings) \ +%{nil} +%global gendep_perl_version \ +Requires: %{?scl_prefix}perl(:VERSION) >= 5.6.2 \ +Requires: %{?scl_prefix}perl(strict) \ +Requires: %{?scl_prefix}perl(vars) \ +Requires: %{?scl_prefix}perl(version::regex) \ +Requires: %{?scl_prefix}perl(warnings::register) \ +Provides: %{?scl_prefix}perl(version) = 0.9917 \ +Provides: %{?scl_prefix}perl(version::regex) = 0.9917 \ +%{nil} diff --git a/SOURCES/macros.perl b/SOURCES/macros.perl new file mode 100644 index 0000000..4d68bf7 --- /dev/null +++ b/SOURCES/macros.perl @@ -0,0 +1,159 @@ +# 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} + +%@scl@perl_ext_env_unset %{expand: +unset PERL_MM_OPT MODULEBUILDRC PERL5INC +export PERL_AUTOINSTALL="--defaultdeps" +export PERL_MM_USE_DEFAULT=1 +} + +############################################################################# +# Filtering macro incantations + +# keep track of what "revision" of the filtering we're at. Each time we +# change the filter we should increment this. + +%@scl@perl_default_filter_revision 3 + +# Perl provides/requeries are generated by external generators. +%global @scl@__perl_provides /usr/lib/rpm/perl.prov +%global @scl@__perl_requires /usr/lib/rpm/perl.req + +# 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. + +%@scl@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|}^%{?scl_prefix}perl\\\\(VMS|^%{?scl_prefix}perl\\\\(Win32|^%{?scl_prefix}perl\\\\(DB\\\\)|^%{?scl_prefix}perl\\\\(UNIVERSAL\\\\) +%global __requires_exclude %{?__requires_exclude:%__requires_exclude|}^%{?scl_prefix}perl\\\\(VMS|^%{?scl_prefix}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. + +%@scl@perl_version %(eval "`%{__perl} -V:version`"; echo $version) +%@scl@perl_testdir %{_libexecdir}/perl5-tests +%@scl@cpan_dist_name %(eval echo %{name} | %{__sed} -e 's/^perl-//') + +# easily mark something as required by -tests and BR to the main package +%@scl@tests_req() %{expand:\ +BuildRequires: %*\ +%%@scl@tests_subpackage_requires %*\ +} + +# macro %%{__perl} contains the definition of LD_LIBRARY_PATH and it could +# not be used for shbang +%@scl@__perl %{?_scl_root}/usr/bin/perl + +# fixup (and create if needed) the shbang lines in tests, so they work and +# rpmlint doesn't (correctly) have a fit +%@scl@fix_shbang_line() \ +TMPHEAD=`mktemp`\ +TMPBODY=`mktemp`\ +for file in %* ; do \ + head -1 $file > $TMPHEAD\ + tail -n +2 $file > $TMPBODY\ + %{__perl} -pi -e '$f = /^#!/ ? "" : "#!%{@scl@__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 +%@scl@tests_subpackage_requires() %{expand: \ +%global @scl@__tests_spkg_req %{?@scl@__tests_spkg_req} %* \ +} + +# additional -tests subpackage provides, if any +%@scl@tests_subpackage_provides() %{expand: \ +%global @scl@__tests_spkg_prov %{?@scl@__tests_spkg_prov} %* \ +} + +# +# Runs after the body of %check completes. +# + +%@scl@__perl_check_pre %{expand: \ +%{?__spec_check_pre} \ +pushd %{buildsubdir} \ +%define @scl@perl_br_testdir %{buildroot}%{@scl@perl_testdir}/%{@scl@cpan_dist_name} \ +%{__mkdir_p} %{@scl@perl_br_testdir} \ +%{__tar} -cf - %{__perl_test_dirs} | ( cd %{@scl@perl_br_testdir} && %{__tar} -xf - ) \ +find . -maxdepth 1 -type f -name '*META*' -exec %{__cp} -vp {} %{@scl@perl_br_testdir} ';' \ +find %{@scl@perl_br_testdir} -type f -exec %{__chmod} -c -x {} ';' \ +T_FILES=`find %{@scl@perl_br_testdir} -type f -name '*.t'` \ +%@scl@fix_shbang_line $T_FILES \ +%{__chmod} +x $T_FILES \ +%{_fixperms} %{@scl@perl_br_testdir} \ +popd \ +} + +# +# The actual invoked macro +# + +%@scl@perl_subpackage_tests() %{expand: \ +%global __perl_package 1\ +%global __perl_test_dirs %* \ +%global __spec_check_pre %{expand:%{@scl@__perl_check_pre}} \ +%package tests\ +Summary: Test suite for package %{name}\ +Group: Development/Debug\ +Requires: %{name} = %{?epoch:%{epoch}:}%{version}-%{release}\ +Requires: %{?_scl_root}/usr/bin/prove \ +%{?@scl@__tests_spkg_req:Requires: %@scl@__tests_spkg_req}\ +%{?@scl@__tests_spkg_prov:Provides: %@scl@__tests_spkg_prov}\ +AutoReqProv: 0 \ +%description tests\ +This package provides the test suite for package %{name}.\ +%files tests\ +%defattr(-,root,root,-)\ +%{@scl@perl_testdir}\ +} + +# shortcut sugar +%@scl@perl_default_subpackage_tests %@scl@perl_subpackage_tests t/ + diff --git a/SOURCES/perl-5.10.0-libresolv.patch b/SOURCES/perl-5.10.0-libresolv.patch new file mode 100644 index 0000000..a844a28 --- /dev/null +++ b/SOURCES/perl-5.10.0-libresolv.patch @@ -0,0 +1,12 @@ +diff -up perl-5.10.0/Configure.didi perl-5.10.0/Configure +--- perl-5.10.0/Configure.didi 2007-12-18 11:47:07.000000000 +0100 ++++ perl-5.10.0/Configure 2008-07-21 10:51:16.000000000 +0200 +@@ -1479,7 +1479,7 @@ archname='' + usereentrant='undef' + : List of libraries we want. + : If anyone needs extra -lxxx, put those in a hint file. +-libswanted="cl pthread socket bind inet nsl ndbm gdbm dbm db malloc dl ld" ++libswanted="cl pthread socket resolv inet nsl ndbm gdbm dbm db malloc dl ld" + libswanted="$libswanted sun m crypt sec util c cposix posix ucb bsd BSD" + : We probably want to search /usr/shlib before most other libraries. + : This is only used by the lib/ExtUtils/MakeMaker.pm routine extliblist. diff --git a/SOURCES/perl-5.10.0-x86_64-io-test-failure.patch b/SOURCES/perl-5.10.0-x86_64-io-test-failure.patch new file mode 100644 index 0000000..08adda8 --- /dev/null +++ b/SOURCES/perl-5.10.0-x86_64-io-test-failure.patch @@ -0,0 +1,12 @@ +diff -up perl-5.10.0/t/io/fs.t.BAD perl-5.10.0/t/io/fs.t +--- perl-5.10.0/t/io/fs.t.BAD 2008-01-30 13:36:43.000000000 -0500 ++++ perl-5.10.0/t/io/fs.t 2008-01-30 13:41:27.000000000 -0500 +@@ -227,7 +227,7 @@ isnt($atime, 500000000, 'atime'); + isnt($mtime, 500000000 + $delta, 'mtime'); + + SKIP: { +- skip "no futimes", 6 unless ($Config{d_futimes} || "") eq "define"; ++ skip "no futimes", 6; + open(my $fh, "<", 'b'); + $foo = (utime 500000000,500000000 + $delta, $fh); + is($foo, 1, "futime"); diff --git a/SOURCES/perl-5.14.1-offtest.patch b/SOURCES/perl-5.14.1-offtest.patch new file mode 100644 index 0000000..45294c8 --- /dev/null +++ b/SOURCES/perl-5.14.1-offtest.patch @@ -0,0 +1,17 @@ +diff -up perl-5.14.1/cpan/File-Temp/t/fork.t.off perl-5.14.1/cpan/File-Temp/t/fork.t +--- perl-5.14.1/cpan/File-Temp/t/fork.t.off 2011-04-13 13:36:34.000000000 +0200 ++++ perl-5.14.1/cpan/File-Temp/t/fork.t 2011-06-20 10:29:31.536282611 +0200 +@@ -12,12 +12,8 @@ BEGIN { + $Config::Config{useithreads} and + $Config::Config{ccflags} =~ /-DPERL_IMPLICIT_SYS/ + ); +- if ( $can_fork ) { +- print "1..8\n"; +- } else { +- print "1..0 # Skip No fork available\n"; ++ print "1..0 # Skip Koji doesn't work with Perl fork tests\n"; + exit; +- } + } + + use File::Temp; diff --git a/SOURCES/perl-5.16.3-Link-XS-modules-to-libperl.so-with-EU-CBuilder-on-Li.patch b/SOURCES/perl-5.16.3-Link-XS-modules-to-libperl.so-with-EU-CBuilder-on-Li.patch new file mode 100644 index 0000000..d87aca7 --- /dev/null +++ b/SOURCES/perl-5.16.3-Link-XS-modules-to-libperl.so-with-EU-CBuilder-on-Li.patch @@ -0,0 +1,65 @@ +From b598ba3f2d4b8347c6621cff022b8e2329b79ea5 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= +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 +@@ -3093,6 +3093,7 @@ dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder/Platform/aix.pm CBuilder methods fo + dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder/Platform/cygwin.pm CBuilder methods for cygwin + dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder/Platform/darwin.pm CBuilder methods for darwin + dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder/Platform/dec_osf.pm CBuilder methods for OSF ++dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder/Platform/linux.pm CBuilder methods for Linux + dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder/Platform/os2.pm CBuilder methods for OS/2 + dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder/Platform/Unix.pm CBuilder methods for Unix + dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder/Platform/VMS.pm CBuilder methods for VMS +diff --git a/dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder/Platform/linux.pm b/dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder/Platform/linux.pm +new file mode 100644 +index 0000000..e3251c4 +--- /dev/null ++++ b/dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder/Platform/linux.pm +@@ -0,0 +1,26 @@ ++package ExtUtils::CBuilder::Platform::linux; ++ ++use strict; ++use ExtUtils::CBuilder::Platform::Unix; ++use File::Spec; ++ ++use vars qw($VERSION @ISA); ++$VERSION = '0.280206'; ++@ISA = qw(ExtUtils::CBuilder::Platform::Unix); ++ ++sub link { ++ my ($self, %args) = @_; ++ my $cf = $self->{config}; ++ ++ # Link XS modules to libperl.so explicitly because multiple ++ # dlopen(, RTLD_LOCAL) hides libperl symbols from XS module. ++ local $cf->{lddlflags} = $cf->{lddlflags}; ++ if ($ENV{PERL_CORE}) { ++ $cf->{lddlflags} .= ' -L' . $self->perl_inc(); ++ } ++ $cf->{lddlflags} .= ' -lperl'; ++ ++ return $self->SUPER::link(%args); ++} ++ ++1; +-- +1.8.1.4 + diff --git a/SOURCES/perl-5.16.3-Link-XS-modules-to-libperl.so-with-EU-MM-on-Linux.patch b/SOURCES/perl-5.16.3-Link-XS-modules-to-libperl.so-with-EU-MM-on-Linux.patch new file mode 100644 index 0000000..e8ae658 --- /dev/null +++ b/SOURCES/perl-5.16.3-Link-XS-modules-to-libperl.so-with-EU-MM-on-Linux.patch @@ -0,0 +1,52 @@ +From fc1f8ac36c34c35bad84fb7b99a26ab83c9ba075 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= +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 +@@ -31,6 +31,7 @@ BEGIN { + $Is{IRIX} = $^O eq 'irix'; + $Is{NetBSD} = $^O eq 'netbsd'; + $Is{Interix} = $^O eq 'interix'; ++ $Is{Linux} = $^O eq 'linux'; + $Is{SunOS4} = $^O eq 'sunos'; + $Is{Solaris} = $^O eq 'solaris'; + $Is{SunOS} = $Is{SunOS4} || $Is{Solaris}; +@@ -932,7 +933,7 @@ $(INST_DYNAMIC): $(OBJECT) $(MYEXTLIB) $(BOOTSTRAP) $(INST_ARCHAUTODIR)$(DFSEP). + push(@m," \$(RM_F) \$\@\n"); + + my $libs = '$(LDLOADLIBS)'; +- if (($Is{NetBSD} || $Is{Interix} || $Is{Android}) && $Config{'useshrplib'} eq 'true') { ++ if (($Is{Linux} || $Is{NetBSD} || $Is{Interix} || $Is{Android}) && $Config{'useshrplib'} eq 'true') { + # Use nothing on static perl platforms, and to the flags needed + # to link against the shared libperl library on shared perl + # platforms. We peek at lddlflags to see if we need -Wl,-R +@@ -941,6 +942,11 @@ $(INST_DYNAMIC): $(OBJECT) $(MYEXTLIB) $(BOOTSTRAP) $(INST_ARCHAUTODIR)$(DFSEP). + # The Android linker will not recognize symbols from + # libperl unless the module explicitly depends on it. + $libs .= ' "-L$(PERL_INC)" -lperl'; ++ } else { ++ if ($ENV{PERL_CORE}) { ++ $libs .= ' "-L$(PERL_INC)"'; ++ } ++ $libs .= ' -lperl'; + } + } + +-- +1.8.1.4 + diff --git a/SOURCES/perl-5.16.3-create_libperl_soname.patch b/SOURCES/perl-5.16.3-create_libperl_soname.patch new file mode 100644 index 0000000..b93cd02 --- /dev/null +++ b/SOURCES/perl-5.16.3-create_libperl_soname.patch @@ -0,0 +1,52 @@ +From fa2f0dd5a7767223df10149d3f16d7ed7013e16f Mon Sep 17 00:00:00 2001 +From: Torsten Veller +Date: Sat, 14 Apr 2012 13:49:18 +0200 +Subject: Set libperl soname + +Bug-Gentoo: https://bugs.gentoo.org/286840 + +Patch-Name: gentoo/create_libperl_soname.diff +--- + Makefile.SH | 9 +++++++-- + 1 file changed, 7 insertions(+), 2 deletions(-) + +diff --git a/Makefile.SH b/Makefile.SH +index d1da0a0..7733a32 100755 +--- a/Makefile.SH ++++ b/Makefile.SH +@@ -58,7 +58,7 @@ true) + ${api_revision}.${api_version}.${api_subversion} \ + -current_version \ + ${revision}.${patchlevel}.${subversion} \ +- -install_name \$(shrpdir)/\$@" ++ -install_name \$(shrpdir)/libperl.@scl@${revision}.${patchlevel}.dylib" + ;; + cygwin*) + shrpldflags="$shrpldflags -Wl,--out-implib=libperl.dll.a -Wl,--image-base,0x52000000" +@@ -66,13 +66,15 @@ true) + ;; + sunos*) + linklibperl="-lperl" ++ shrpldflags="$shrpldflags -Wl,-soname -Wl,libperl.so.@scl@${revision}.${patchlevel}" + ;; + netbsd*|freebsd[234]*|openbsd*|dragonfly*|bitrig*) + linklibperl="-L. -lperl" ++ shrpldflags="$shrpldflags -Wl,-soname -Wl,libperl.so.@scl@${revision}.${patchlevel}" + ;; + interix*) + linklibperl="-L. -lperl" +- shrpldflags="$shrpldflags -Wl,--image-base,0x57000000" ++ shrpldflags="$shrpldflags -Wl,--image-base,0x57000000 -Wl,-soname -Wl,libperl.so.@scl@${revision}.${patchlevel}" + ;; + aix*) + case "$cc" in +@@ -110,6 +112,9 @@ true) + linklibperl='libperl.x' + DPERL_EXTERNAL_GLOB='' + ;; ++ linux*) ++ shrpldflags="$shrpldflags -Wl,-soname -Wl,libperl.so.@scl@${revision}.${patchlevel}" ++ ;; + esac + case "$ldlibpthname" in + '') ;; diff --git a/SOURCES/perl-5.16.3-perlvar-pod.patch b/SOURCES/perl-5.16.3-perlvar-pod.patch new file mode 100644 index 0000000..a2a30e6 --- /dev/null +++ b/SOURCES/perl-5.16.3-perlvar-pod.patch @@ -0,0 +1,20 @@ +--- perl-5.16.3/pod/perlvar.pod.orig 2013-04-26 14:24:18.372682967 +0200 ++++ perl-5.16.3/pod/perlvar.pod 2013-04-26 14:25:46.969324030 +0200 +@@ -835,7 +835,7 @@ + + =item $PREMATCH + +-=item $` ++=item C<$`> + X<$`> X<$PREMATCH> X<${^PREMATCH}> + + The string preceding whatever was matched by the last successful +@@ -867,7 +867,7 @@ + + =item $POSTMATCH + +-=item $' ++=item C<$'> + X<$'> X<$POSTMATCH> X<${^POSTMATCH}> X<@-> + + The string following whatever was matched by the last successful diff --git a/SOURCES/perl-5.18.1-Document-Math-BigInt-CalcEmu-requires-Math-BigInt.patch b/SOURCES/perl-5.18.1-Document-Math-BigInt-CalcEmu-requires-Math-BigInt.patch new file mode 100644 index 0000000..bed0adc --- /dev/null +++ b/SOURCES/perl-5.18.1-Document-Math-BigInt-CalcEmu-requires-Math-BigInt.patch @@ -0,0 +1,30 @@ +From 862c89c81d26dae0dcef138e19df8b45615e69c9 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= +Date: Mon, 2 Dec 2013 10:10:56 +0100 +Subject: [PATCH] Document Math::BigInt::CalcEmu requires Math::BigInt +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + + + +Signed-off-by: Petr Písař +--- + dist/Math-BigInt/lib/Math/BigInt/CalcEmu.pm | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/dist/Math-BigInt/lib/Math/BigInt/CalcEmu.pm b/dist/Math-BigInt/lib/Math/BigInt/CalcEmu.pm +index c82e153..0c0b496 100644 +--- a/cpan/Math-BigInt/lib/Math/BigInt/CalcEmu.pm ++++ b/cpan/Math-BigInt/lib/Math/BigInt/CalcEmu.pm +@@ -290,6 +290,7 @@ Math::BigInt::CalcEmu - Emulate low-level math with BigInt code + + =head1 SYNOPSIS + ++ use Math::BigInt; + use Math::BigInt::CalcEmu; + + =head1 DESCRIPTION +-- +1.8.3.1 + diff --git a/SOURCES/perl-5.18.2-Destroy-GDBM-NDBM-ODBM-SDBM-_File-objects-only-from-.patch b/SOURCES/perl-5.18.2-Destroy-GDBM-NDBM-ODBM-SDBM-_File-objects-only-from-.patch new file mode 100644 index 0000000..9b503c6 --- /dev/null +++ b/SOURCES/perl-5.18.2-Destroy-GDBM-NDBM-ODBM-SDBM-_File-objects-only-from-.patch @@ -0,0 +1,233 @@ +From f793042f2bac2ace9a5c0030b47b41c4db561a5b Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= +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 ; +@@ -89,6 +90,7 @@ gdbm_TIEHASH(dbtype, name, read_write, mode) + if ((dbp = gdbm_open(name, GDBM_BLOCKSIZE, read_write, mode, + (FATALFUNC) croak_string))) { + RETVAL = (GDBM_File)safecalloc(1, sizeof(GDBM_File_type)) ; ++ RETVAL->owner = aTHX; + RETVAL->dbp = dbp ; + } + +@@ -109,12 +111,14 @@ gdbm_DESTROY(db) + PREINIT: + int i = store_value; + CODE: +- gdbm_close(db); +- do { +- if (db->filter[i]) +- SvREFCNT_dec(db->filter[i]); +- } while (i-- > 0); +- safefree(db); ++ if (db && db->owner == aTHX) { ++ gdbm_close(db); ++ do { ++ if (db->filter[i]) ++ SvREFCNT_dec(db->filter[i]); ++ } while (i-- > 0); ++ safefree(db); ++ } + + #define gdbm_FETCH(db,key) gdbm_fetch(db->dbp,key) + datum_value +diff --git a/ext/NDBM_File/NDBM_File.xs b/ext/NDBM_File/NDBM_File.xs +index 52e60fc..af223e5 100644 +--- a/ext/NDBM_File/NDBM_File.xs ++++ b/ext/NDBM_File/NDBM_File.xs +@@ -33,6 +33,7 @@ END_EXTERN_C + #define store_value 3 + + typedef struct { ++ tTHX owner; + DBM * dbp ; + SV * filter[4]; + int filtering ; +@@ -71,6 +72,7 @@ ndbm_TIEHASH(dbtype, filename, flags, mode) + RETVAL = NULL ; + if ((dbp = dbm_open(filename, flags, mode))) { + RETVAL = (NDBM_File)safecalloc(1, sizeof(NDBM_File_type)); ++ RETVAL->owner = aTHX; + RETVAL->dbp = dbp ; + } + +@@ -84,12 +86,14 @@ ndbm_DESTROY(db) + PREINIT: + int i = store_value; + CODE: +- dbm_close(db->dbp); +- do { +- if (db->filter[i]) +- SvREFCNT_dec(db->filter[i]); +- } while (i-- > 0); +- safefree(db); ++ if (db && db->owner == aTHX) { ++ dbm_close(db->dbp); ++ do { ++ if (db->filter[i]) ++ SvREFCNT_dec(db->filter[i]); ++ } while (i-- > 0); ++ safefree(db); ++ } + + #define ndbm_FETCH(db,key) dbm_fetch(db->dbp,key) + datum_value +diff --git a/ext/ODBM_File/ODBM_File.xs b/ext/ODBM_File/ODBM_File.xs +index d1ece7f..f7e00a0 100644 +--- a/ext/ODBM_File/ODBM_File.xs ++++ b/ext/ODBM_File/ODBM_File.xs +@@ -45,6 +45,7 @@ datum nextkey(datum key); + #define store_value 3 + + typedef struct { ++ tTHX owner; + void * dbp ; + SV * filter[4]; + int filtering ; +@@ -112,6 +113,7 @@ odbm_TIEHASH(dbtype, filename, flags, mode) + } + dbp = (void*)(dbminit(filename) >= 0 ? &dbmrefcnt : 0); + RETVAL = (ODBM_File)safecalloc(1, sizeof(ODBM_File_type)); ++ RETVAL->owner = aTHX; + RETVAL->dbp = dbp ; + } + OUTPUT: +@@ -124,13 +126,15 @@ DESTROY(db) + dMY_CXT; + int i = store_value; + CODE: +- dbmrefcnt--; +- dbmclose(); +- do { +- if (db->filter[i]) +- SvREFCNT_dec(db->filter[i]); +- } while (i-- > 0); +- safefree(db); ++ if (db && db->owner == aTHX) { ++ dbmrefcnt--; ++ dbmclose(); ++ do { ++ if (db->filter[i]) ++ SvREFCNT_dec(db->filter[i]); ++ } while (i-- > 0); ++ safefree(db); ++ } + + datum_value + odbm_FETCH(db, key) +diff --git a/ext/SDBM_File/SDBM_File.xs b/ext/SDBM_File/SDBM_File.xs +index 291e41b..0bdae9a 100644 +--- a/ext/SDBM_File/SDBM_File.xs ++++ b/ext/SDBM_File/SDBM_File.xs +@@ -10,6 +10,7 @@ + #define store_value 3 + + typedef struct { ++ tTHX owner; + DBM * dbp ; + SV * filter[4]; + int filtering ; +@@ -49,6 +50,7 @@ sdbm_TIEHASH(dbtype, filename, flags, mode) + } + if (dbp) { + RETVAL = (SDBM_File)safecalloc(1, sizeof(SDBM_File_type)); ++ RETVAL->owner = aTHX; + RETVAL->dbp = dbp ; + } + +@@ -60,7 +62,7 @@ void + sdbm_DESTROY(db) + SDBM_File db + CODE: +- if (db) { ++ if (db && db->owner == aTHX) { + int i = store_value; + sdbm_close(db->dbp); + do { +diff --git a/t/lib/dbmt_common.pl b/t/lib/dbmt_common.pl +index 5d4098c..a0a4d52 100644 +--- a/t/lib/dbmt_common.pl ++++ b/t/lib/dbmt_common.pl +@@ -511,5 +511,40 @@ unlink , $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..6d43814 --- /dev/null +++ b/SOURCES/perl-5.22.0-Install-libperl.so-to-shrpdir-on-Linux.patch @@ -0,0 +1,61 @@ +From 9644657c4 10326749fd321d9c24944ec25afad2f Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= +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 +@@ -8249,7 +8249,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 +@@ -1045,6 +1045,7 @@ cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_OS2.pm MakeMaker methods for OS/2 + cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_OS2.pm MakeMaker methods for OS/2 + cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_QNX.pm MakeMaker methods for QNX + cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm MakeMaker methods for Unix ++cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM/Utils.pm Independed MM methods + cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_UWIN.pm MakeMaker methods for U/WIN + cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_VMS.pm MakeMaker methods for VMS + cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_VOS.pm MakeMaker methods for VOS +diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM/Utils.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM/Utils.pm +new file mode 100644 +index 0000000..6bbc0d8 +--- /dev/null ++++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM/Utils.pm +@@ -0,0 +1,68 @@ ++package ExtUtils::MM::Utils; ++ ++require 5.006; ++ ++use strict; ++use vars qw($VERSION); ++$VERSION = '7.11_06'; ++$VERSION = eval $VERSION; ## no critic [BuiltinFunctions::ProhibitStringyEval] ++ ++=head1 NAME ++ ++ExtUtils::MM::Utils - ExtUtils::MM methods without dependency on ExtUtils::MakeMaker ++ ++=head1 SYNOPSIS ++ ++ require ExtUtils::MM::Utils; ++ MM->maybe_command($file); ++ ++=head1 DESCRIPTION ++ ++This is a collection of L 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..572d37e --- /dev/null +++ b/SOURCES/perl-5.22.1-Replace-EU-MM-dependnecy-with-EU-MM-Utils-in-IPC-Cmd.patch @@ -0,0 +1,34 @@ +From 216ddd39adb0043930acad70ff242c30a1b0c6cf Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= +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 +@@ -230,7 +230,7 @@ sub can_run { + } + + require File::Spec; +- require ExtUtils::MakeMaker; ++ require ExtUtils::MM::Utils; + + my @possibles; + +-- +2.5.5 + diff --git a/SOURCES/perl-5.26.0-Time-HiRes-Fix-unreliable-t-usleep.t-and-t-utime.t.patch b/SOURCES/perl-5.26.0-Time-HiRes-Fix-unreliable-t-usleep.t-and-t-utime.t.patch new file mode 100644 index 0000000..206aeea --- /dev/null +++ b/SOURCES/perl-5.26.0-Time-HiRes-Fix-unreliable-t-usleep.t-and-t-utime.t.patch @@ -0,0 +1,73 @@ +From 8985b12868f07d9ef501580d600e49fe8f230eb4 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= +Date: Tue, 22 Aug 2017 09:49:42 +0200 +Subject: [PATCH] Time-HiRes: Fix unreliable t/usleep.t and t/utime.t +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Ported from Time-HiRes-1.9746. + +The tests randomly failed on loaded machines because a CPU scheduler +could add unpredictable delays. + +CPAN RT#122819 + +Signed-off-by: Petr Písař +--- + dist/Time-HiRes/t/usleep.t | 4 ++-- + dist/Time-HiRes/t/utime.t | 9 +++++---- + 2 files changed, 7 insertions(+), 6 deletions(-) + +diff --git a/dist/Time-HiRes/t/usleep.t b/dist/Time-HiRes/t/usleep.t +index 9322458..bb66cbe 100644 +--- a/dist/Time-HiRes/t/usleep.t ++++ b/dist/Time-HiRes/t/usleep.t +@@ -32,7 +32,7 @@ SKIP: { + Time::HiRes::usleep(500_000); + my $f2 = Time::HiRes::time(); + my $d = $f2 - $f; +- ok $d > 0.4 && $d < 0.9 or print("# slept $d secs $f to $f2\n"); ++ ok $d > 0.49 or print("# slept $d secs $f to $f2\n"); + } + + SKIP: { +@@ -40,7 +40,7 @@ SKIP: { + my $r = [ Time::HiRes::gettimeofday() ]; + Time::HiRes::sleep( 0.5 ); + my $f = Time::HiRes::tv_interval $r; +- ok $f > 0.4 && $f < 0.9 or print("# slept $f instead of 0.5 secs.\n"); ++ ok $f > 0.49 or print("# slept $f instead of 0.5 secs.\n"); + } + + SKIP: { +diff --git a/dist/Time-HiRes/t/utime.t b/dist/Time-HiRes/t/utime.t +index 22fd48e..c5c7e55 100644 +--- a/dist/Time-HiRes/t/utime.t ++++ b/dist/Time-HiRes/t/utime.t +@@ -106,17 +106,18 @@ print "# utime undef sets time to now\n"; + my ($fh2, $filename2) = tempfile( "Time-HiRes-utime-XXXXXXXXX", UNLINK => 1 ); + + my $now = Time::HiRes::time; ++ sleep(1); + is Time::HiRes::utime(undef, undef, $filename1, $fh2), 2, "Two files changed"; + + { + my ($got_atime, $got_mtime) = ( Time::HiRes::stat($fh1) )[8, 9]; +- cmp_ok abs( $got_atime - $now), '<', 0.1, "File 1 atime set correctly"; +- cmp_ok abs( $got_mtime - $now), '<', 0.1, "File 1 mtime set correctly"; ++ cmp_ok $got_atime, '>=', $now, "File 1 atime set correctly"; ++ cmp_ok $got_mtime, '>=', $now, "File 1 mtime set correctly"; + } + { + my ($got_atime, $got_mtime) = ( Time::HiRes::stat($filename2) )[8, 9]; +- cmp_ok abs( $got_atime - $now), '<', 0.1, "File 2 atime set correctly"; +- cmp_ok abs( $got_mtime - $now), '<', 0.1, "File 2 mtime set correctly"; ++ cmp_ok $got_atime, '>=', $now, "File 2 atime set correctly"; ++ cmp_ok $got_mtime, '>=', $now, "File 2 mtime set correctly"; + } + }; + +-- +2.9.5 + diff --git a/SOURCES/perl-5.26.0-perl-131263-clear-the-UTF8-flag-on-a-glob-if-it-isn-.patch b/SOURCES/perl-5.26.0-perl-131263-clear-the-UTF8-flag-on-a-glob-if-it-isn-.patch new file mode 100644 index 0000000..0ba657a --- /dev/null +++ b/SOURCES/perl-5.26.0-perl-131263-clear-the-UTF8-flag-on-a-glob-if-it-isn-.patch @@ -0,0 +1,72 @@ +From 7b3e03bd309fcc48a135123a60678ae2596b1c38 Mon Sep 17 00:00:00 2001 +From: Tony Cook +Date: Wed, 7 Jun 2017 15:00:26 +1000 +Subject: [PATCH] clear the UTF8 flag on a glob if it isn't UTF8 +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Ported to 5.26.0: + +commit 1097da16b21fe0a2257dba9937e55c0cca18f7e1 +Author: Tony Cook +Date: Wed Jun 7 15:00:26 2017 +1000 + + [perl #131263] clear the UTF8 flag on a glob if it isn't UTF8 + + Previously sv_2pv_flags() would set the UTF8 flag on a glob if it + had a UTF8 name, but wouldn't clear tha flag if it didn't. + + This meant a name change, eg. if assigned another glob, from a UTF8 + name to a non-UTF8 name would leave the flag set. + +Signed-off-by: Petr Písař +--- + sv.c | 2 ++ + t/op/gv.t | 10 +++++++++- + 2 files changed, 11 insertions(+), 1 deletion(-) + +diff --git a/sv.c b/sv.c +index 9f3e28e..ae3dc95 100644 +--- a/sv.c ++++ b/sv.c +@@ -3179,6 +3179,8 @@ Perl_sv_2pv_flags(pTHX_ SV *const sv, STRLEN *const lp, const I32 flags) + assert(SvPOK(buffer)); + if (SvUTF8(buffer)) + SvUTF8_on(sv); ++ else ++ SvUTF8_off(sv); + if (lp) + *lp = SvCUR(buffer); + return SvPVX(buffer); +diff --git a/t/op/gv.t b/t/op/gv.t +index 4fe6b00..670ccf6 100644 +--- a/t/op/gv.t ++++ b/t/op/gv.t +@@ -12,7 +12,7 @@ BEGIN { + + use warnings; + +-plan(tests => 280); ++plan(tests => 282); + + # type coercion on assignment + $foo = 'foo'; +@@ -1170,6 +1170,14 @@ SKIP: { + is ($? & 127, 0,"[perl #128597] No crash when gp_free calls ckWARN_d"); + } + ++{ ++ # [perl #131263] ++ *sym = "\N{U+0080}"; ++ ok(*sym eq "*main::\N{U+0080}", "utf8 flag properly set"); ++ *sym = "\xC3\x80"; ++ ok(*sym eq "*main::\xC3\x80", "utf8 flag properly cleared"); ++} ++ + # test gv_try_downgrade() + # If a GV can be stored in a stash in a compact, non-GV form, then + # whenever ops are freed which reference the GV, an attempt is made to +-- +2.9.4 + diff --git a/SOURCES/perl-5.26.0-perl-131588-be-a-little-more-careful-in-arybase-_tie.patch b/SOURCES/perl-5.26.0-perl-131588-be-a-little-more-careful-in-arybase-_tie.patch new file mode 100644 index 0000000..3749874 --- /dev/null +++ b/SOURCES/perl-5.26.0-perl-131588-be-a-little-more-careful-in-arybase-_tie.patch @@ -0,0 +1,61 @@ +From cb2fda94b02c5b7e8d16582410034f5a3dae526f Mon Sep 17 00:00:00 2001 +From: Tony Cook +Date: Tue, 25 Jul 2017 16:21:22 +1000 +Subject: [PATCH] (perl #131588) be a little more careful in arybase::_tie_it() +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Original patch by John Leitch +Petr Pisar: Ported to 5.26.0. + +Signed-off-by: Petr Písař +--- + ext/arybase/arybase.xs | 10 ++++++---- + ext/arybase/t/arybase.t | 4 +++- + 2 files changed, 9 insertions(+), 5 deletions(-) + +diff --git a/ext/arybase/arybase.xs b/ext/arybase/arybase.xs +index 880bbe3..216442a 100644 +--- a/ext/arybase/arybase.xs ++++ b/ext/arybase/arybase.xs +@@ -438,10 +438,12 @@ _tie_it(SV *sv) + INIT: + GV * const gv = (GV *)sv; + CODE: +- if (GvSV(gv)) +- /* This is *our* scalar now! */ +- sv_unmagic(GvSV(gv), PERL_MAGIC_sv); +- tie(aTHX_ GvSVn(gv), NULL, GvSTASH(CvGV(cv))); ++ if (isGV(gv)) { ++ if (GvSV(gv)) ++ /* This is *our* scalar now! */ ++ sv_unmagic(GvSV(gv), PERL_MAGIC_sv); ++ tie(aTHX_ GvSVn(gv), NULL, GvSTASH(CvGV(cv))); ++ } + + void + FETCH(...) +diff --git a/ext/arybase/t/arybase.t b/ext/arybase/t/arybase.t +index f3d3287..41e90df 100644 +--- a/ext/arybase/t/arybase.t ++++ b/ext/arybase/t/arybase.t +@@ -4,7 +4,7 @@ + # plus miscellaneous bug fix tests + + no warnings 'deprecated'; +-use Test::More tests => 7; ++use Test::More tests => 8; + + sub outside_base_scope { return "${'['}" } + +@@ -34,4 +34,6 @@ is $@, "That use of \$[ is unsupported at $f line $l.\n", + + sub foo { my $x; $x = wait } # compilation of this routine used to crash + ++ok eval { arybase::_tie_it(1); 1 }, "don't crash on bad call to _tie_it()"; ++ + 1; +-- +2.9.4 + diff --git a/SOURCES/perl-5.26.0-t-op-hash.t-fixup-intermittently-failing-test.patch b/SOURCES/perl-5.26.0-t-op-hash.t-fixup-intermittently-failing-test.patch new file mode 100644 index 0000000..9463079 --- /dev/null +++ b/SOURCES/perl-5.26.0-t-op-hash.t-fixup-intermittently-failing-test.patch @@ -0,0 +1,37 @@ +From 37268580c0cfbf190ff9aa7859a604713cb366ee Mon Sep 17 00:00:00 2001 +From: Yves Orton +Date: Tue, 27 Jun 2017 16:36:57 +0200 +Subject: [PATCH] t/op/hash.t: fixup intermittently failing test +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Port to 5.26.0: + +commit b2ac59d1d0fda74d6612701d8316fe8dfb6a1b90 +Author: Yves Orton +Date: Tue Jun 27 16:36:57 2017 +0200 + + t/op/hash.t: fixup intermittently failing test + +Signed-off-by: Petr Písař +--- + t/op/hash.t | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/t/op/hash.t b/t/op/hash.t +index a0e79c7..b941c57 100644 +--- a/t/op/hash.t ++++ b/t/op/hash.t +@@ -206,7 +206,7 @@ sub torture_hash { + my $keys = pop @groups; + ++$h->{$_} foreach @$keys; + my (undef, $total) = validate_hash("$desc " . keys %$h, $h); +- is($total, $total0, "bucket count is constant when rebuilding"); ++ ok($total == $total0 || $total == ($total0*2), "bucket count is expected size when rebuilding"); + is(scalar %$h, pop @groups, "scalar keys is identical when rebuilding"); + ++$h1->{$_} foreach @$keys; + validate_hash("$desc copy " . keys %$h1, $h1); +-- +2.9.4 + diff --git a/SOURCES/perl-5.26.1-fix-TRIE_READ_CHAR-and-DECL_TRIE_TYPE-to-acco.patch b/SOURCES/perl-5.26.1-fix-TRIE_READ_CHAR-and-DECL_TRIE_TYPE-to-acco.patch new file mode 100644 index 0000000..71c909f --- /dev/null +++ b/SOURCES/perl-5.26.1-fix-TRIE_READ_CHAR-and-DECL_TRIE_TYPE-to-acco.patch @@ -0,0 +1,78 @@ +From d58a6811d830c2f2f850a03a18129c38cb732791 Mon Sep 17 00:00:00 2001 +From: Yves Orton +Date: Tue, 13 Feb 2018 16:11:55 +1100 +Subject: 5.26.1: fix TRIE_READ_CHAR and DECL_TRIE_TYPE to account for non-utf8 + target + +--- + regexec.c | 14 ++++++++++---- + t/re/re_tests | 1 + + 2 files changed, 11 insertions(+), 4 deletions(-) + +diff --git a/regexec.c b/regexec.c +index fa888823bd..cf81b07e30 100644 +--- a/regexec.c ++++ b/regexec.c +@@ -1472,7 +1472,7 @@ Perl_re_intuit_start(pTHX_ + #define DECL_TRIE_TYPE(scan) \ + const enum { trie_plain, trie_utf8, trie_utf8_fold, trie_latin_utf8_fold, \ + trie_utf8_exactfa_fold, trie_latin_utf8_exactfa_fold, \ +- trie_utf8l, trie_flu8 } \ ++ trie_utf8l, trie_flu8, trie_flu8_latin } \ + trie_type = ((scan->flags == EXACT) \ + ? (utf8_target ? trie_utf8 : trie_plain) \ + : (scan->flags == EXACTL) \ +@@ -1482,10 +1482,12 @@ Perl_re_intuit_start(pTHX_ + ? trie_utf8_exactfa_fold \ + : trie_latin_utf8_exactfa_fold) \ + : (scan->flags == EXACTFLU8 \ +- ? trie_flu8 \ ++ ? (utf8_target \ ++ ? trie_flu8 \ ++ : trie_flu8_latin) \ + : (utf8_target \ + ? trie_utf8_fold \ +- : trie_latin_utf8_fold))) ++ : trie_latin_utf8_fold))) + + /* 'uscan' is set to foldbuf, and incremented, so below the end of uscan is + * 'foldbuf+sizeof(foldbuf)' */ +@@ -1496,7 +1498,7 @@ STMT_START { + switch (trie_type) { \ + case trie_flu8: \ + _CHECK_AND_WARN_PROBLEMATIC_LOCALE; \ +- if (utf8_target && UTF8_IS_ABOVE_LATIN1(*uc)) { \ ++ if (UTF8_IS_ABOVE_LATIN1(*uc)) { \ + _CHECK_AND_OUTPUT_WIDE_LOCALE_UTF8_MSG(uc, uc_end - uc); \ + } \ + goto do_trie_utf8_fold; \ +@@ -1519,10 +1521,14 @@ STMT_START { + uscan = foldbuf + skiplen; \ + } \ + break; \ ++ case trie_flu8_latin: \ ++ _CHECK_AND_WARN_PROBLEMATIC_LOCALE; \ ++ goto do_trie_latin_utf8_fold; \ + case trie_latin_utf8_exactfa_fold: \ + flags |= FOLD_FLAGS_NOMIX_ASCII; \ + /* FALLTHROUGH */ \ + case trie_latin_utf8_fold: \ ++ do_trie_latin_utf8_fold: \ + if ( foldlen>0 ) { \ + uvc = utf8n_to_uvchr( (const U8*) uscan, foldlen, &len, uniflags ); \ + foldlen -= len; \ +diff --git a/t/re/re_tests b/t/re/re_tests +index 410fceadac..78baed6ffc 100644 +--- a/t/re/re_tests ++++ b/t/re/re_tests +@@ -1985,6 +1985,7 @@ AB\s+\x{100} AB \x{100}X y - - + /(?x)[a b]/xx \N{SPACE} yS $& # Note a space char here + /(?xx)[a b]/x \N{SPACE} n - - + /(?-x:[a b])/xx \N{SPACE} yS $& # Note a space char here ++(?il)\x{100}|\x{100}|\x{FF} \xFF y $& \xFF + + # Keep these lines at the end of the file + # vim: softtabstop=0 noexpandtab +-- +2.11.0 + diff --git a/SOURCES/perl-5.26.1-perl-132063-Heap-buffer-overflow.patch b/SOURCES/perl-5.26.1-perl-132063-Heap-buffer-overflow.patch new file mode 100644 index 0000000..c093f05 --- /dev/null +++ b/SOURCES/perl-5.26.1-perl-132063-Heap-buffer-overflow.patch @@ -0,0 +1,132 @@ +From 7dc63e39d2d84920efd005092bc4d03b6ab24e1c Mon Sep 17 00:00:00 2001 +From: Karl Williamson +Date: Tue, 6 Feb 2018 14:50:48 -0700 +Subject: [perl #132063]: Heap buffer overflow + +The proximal cause is several instances in regexec.c of the code +assuming that the input was valid UTF-8, whereas the input was too short +for what the start byte claimed it would be. + +I grepped through the core for any other similar uses, and did not find +any. +--- + regexec.c | 33 ++++++++++++++++++--------------- + t/lib/warnings/regexec | 7 +++++++ + 2 files changed, 25 insertions(+), 15 deletions(-) + +diff --git a/regexec.c b/regexec.c +index 134b196fc4..fa888823bd 100644 +--- a/regexec.c ++++ b/regexec.c +@@ -1487,7 +1487,9 @@ Perl_re_intuit_start(pTHX_ + ? trie_utf8_fold \ + : trie_latin_utf8_fold))) + +-#define REXEC_TRIE_READ_CHAR(trie_type, trie, widecharmap, uc, uscan, len, uvc, charid, foldlen, foldbuf, uniflags) \ ++/* 'uscan' is set to foldbuf, and incremented, so below the end of uscan is ++ * 'foldbuf+sizeof(foldbuf)' */ ++#define REXEC_TRIE_READ_CHAR(trie_type, trie, widecharmap, uc, uc_end, uscan, len, uvc, charid, foldlen, foldbuf, uniflags) \ + STMT_START { \ + STRLEN skiplen; \ + U8 flags = FOLD_FLAGS_FULL; \ +@@ -1495,7 +1497,7 @@ STMT_START { + case trie_flu8: \ + _CHECK_AND_WARN_PROBLEMATIC_LOCALE; \ + if (utf8_target && UTF8_IS_ABOVE_LATIN1(*uc)) { \ +- _CHECK_AND_OUTPUT_WIDE_LOCALE_UTF8_MSG(uc, uc + UTF8SKIP(uc)); \ ++ _CHECK_AND_OUTPUT_WIDE_LOCALE_UTF8_MSG(uc, uc_end - uc); \ + } \ + goto do_trie_utf8_fold; \ + case trie_utf8_exactfa_fold: \ +@@ -1504,14 +1506,14 @@ STMT_START { + case trie_utf8_fold: \ + do_trie_utf8_fold: \ + if ( foldlen>0 ) { \ +- uvc = utf8n_to_uvchr( (const U8*) uscan, UTF8_MAXLEN, &len, uniflags ); \ ++ uvc = utf8n_to_uvchr( (const U8*) uscan, foldlen, &len, uniflags ); \ + foldlen -= len; \ + uscan += len; \ + len=0; \ + } else { \ +- len = UTF8SKIP(uc); \ +- uvc = _toFOLD_utf8_flags( (const U8*) uc, uc + len, foldbuf, &foldlen, \ ++ uvc = _toFOLD_utf8_flags( (const U8*) uc, uc_end, foldbuf, &foldlen, \ + flags); \ ++ len = UTF8SKIP(uc); \ + skiplen = UVCHR_SKIP( uvc ); \ + foldlen -= skiplen; \ + uscan = foldbuf + skiplen; \ +@@ -1522,7 +1524,7 @@ STMT_START { + /* FALLTHROUGH */ \ + case trie_latin_utf8_fold: \ + if ( foldlen>0 ) { \ +- uvc = utf8n_to_uvchr( (const U8*) uscan, UTF8_MAXLEN, &len, uniflags ); \ ++ uvc = utf8n_to_uvchr( (const U8*) uscan, foldlen, &len, uniflags ); \ + foldlen -= len; \ + uscan += len; \ + len=0; \ +@@ -1541,7 +1543,7 @@ STMT_START { + } \ + /* FALLTHROUGH */ \ + case trie_utf8: \ +- uvc = utf8n_to_uvchr( (const U8*) uc, UTF8_MAXLEN, &len, uniflags ); \ ++ uvc = utf8n_to_uvchr( (const U8*) uc, uc_end - uc, &len, uniflags ); \ + break; \ + case trie_plain: \ + uvc = (UV)*uc; \ +@@ -2623,10 +2625,10 @@ S_find_byclass(pTHX_ regexp * prog, const regnode *c, char *s, + } + points[pointpos++ % maxlen]= uc; + if (foldlen || uc < (U8*)strend) { +- REXEC_TRIE_READ_CHAR(trie_type, trie, +- widecharmap, uc, +- uscan, len, uvc, charid, foldlen, +- foldbuf, uniflags); ++ REXEC_TRIE_READ_CHAR(trie_type, trie, widecharmap, uc, ++ (U8 *) strend, uscan, len, uvc, ++ charid, foldlen, foldbuf, ++ uniflags); + DEBUG_TRIE_EXECUTE_r({ + dump_exec_pos( (char *)uc, c, strend, + real_start, s, utf8_target, 0); +@@ -5686,8 +5688,9 @@ S_regmatch(pTHX_ regmatch_info *reginfo, char *startpos, regnode *prog) + if ( base && (foldlen || uc < (U8*)(reginfo->strend))) { + I32 offset; + REXEC_TRIE_READ_CHAR(trie_type, trie, widecharmap, uc, +- uscan, len, uvc, charid, foldlen, +- foldbuf, uniflags); ++ (U8 *) reginfo->strend, uscan, ++ len, uvc, charid, foldlen, ++ foldbuf, uniflags); + charcount++; + if (foldlen>0) + ST.longfold = TRUE; +@@ -5822,8 +5825,8 @@ S_regmatch(pTHX_ regmatch_info *reginfo, char *startpos, regnode *prog) + while (foldlen) { + if (!--chars) + break; +- uvc = utf8n_to_uvchr(uscan, UTF8_MAXLEN, &len, +- uniflags); ++ uvc = utf8n_to_uvchr(uscan, foldlen, &len, ++ uniflags); + uscan += len; + foldlen -= len; + } +diff --git a/t/lib/warnings/regexec b/t/lib/warnings/regexec +index 900dd6ee7f..6635142dea 100644 +--- a/t/lib/warnings/regexec ++++ b/t/lib/warnings/regexec +@@ -260,3 +260,10 @@ setlocale(&POSIX::LC_CTYPE, $utf8_locale); + "k" =~ /(?[ \N{KELVIN SIGN} ])/i; + ":" =~ /(?[ \: ])/; + EXPECT ++######## ++# NAME perl #132063, read beyond buffer end ++# OPTION fatal ++"\xff" =~ /(?il)\x{100}|\x{100}/; ++EXPECT ++Malformed UTF-8 character: \xff (too short; 1 byte available, need 13) in pattern match (m//) at - line 2. ++Malformed UTF-8 character (fatal) at - line 2. +-- +2.11.0 + diff --git a/SOURCES/perl-5.26.1-perl-132063-we-should-no-longer-warn-for-this-code.patch b/SOURCES/perl-5.26.1-perl-132063-we-should-no-longer-warn-for-this-code.patch new file mode 100644 index 0000000..c8f5789 --- /dev/null +++ b/SOURCES/perl-5.26.1-perl-132063-we-should-no-longer-warn-for-this-code.patch @@ -0,0 +1,30 @@ +From 3c4ea4886efdb477335f6931d0a553e818ee172f Mon Sep 17 00:00:00 2001 +From: Tony Cook +Date: Mon, 19 Feb 2018 15:11:42 +1100 +Subject: (perl #132063) we should no longer warn for this code + +The first patch for 132063 prevented the buffer read overflow when +dumping the warning but didn't fix the underlying problem. + +The next change treats the supplied buffer correctly, preventing the +non-UTF-8 SV from being treated as UTF-8, preventing the warning. +--- + t/lib/warnings/regexec | 3 --- + 1 file changed, 3 deletions(-) + +diff --git a/t/lib/warnings/regexec b/t/lib/warnings/regexec +index 6635142dea..c370ddc3c7 100644 +--- a/t/lib/warnings/regexec ++++ b/t/lib/warnings/regexec +@@ -262,8 +262,5 @@ setlocale(&POSIX::LC_CTYPE, $utf8_locale); + EXPECT + ######## + # NAME perl #132063, read beyond buffer end +-# OPTION fatal + "\xff" =~ /(?il)\x{100}|\x{100}/; + EXPECT +-Malformed UTF-8 character: \xff (too short; 1 byte available, need 13) in pattern match (m//) at - line 2. +-Malformed UTF-8 character (fatal) at - line 2. +-- +2.11.0 + diff --git a/SOURCES/perl-5.26.1-perl-132227-restart-a-node-if-we-change-to-uni-rules.patch b/SOURCES/perl-5.26.1-perl-132227-restart-a-node-if-we-change-to-uni-rules.patch new file mode 100644 index 0000000..5325334 --- /dev/null +++ b/SOURCES/perl-5.26.1-perl-132227-restart-a-node-if-we-change-to-uni-rules.patch @@ -0,0 +1,37 @@ +From 6041b59a21326bd9c2d58034943f07233d5ac1ec Mon Sep 17 00:00:00 2001 +From: Karl Williamson +Date: Fri, 2 Feb 2018 15:14:27 -0700 +Subject: (perl #132227) restart a node if we change to uni rules within the + node and encounter a sharp S + +This could lead to a buffer overflow. +--- + regcomp.c | 12 ++++++++++++ + 1 file changed, 12 insertions(+) + +diff --git a/regcomp.c b/regcomp.c +index b2de7f05e1..943029b154 100644 +--- a/regcomp.c ++++ b/regcomp.c +@@ -13538,6 +13538,18 @@ S_regatom(pTHX_ RExC_state_t *pRExC_state, I32 *flagp, U32 depth) + * /u. This includes the multi-char fold SHARP S to + * 'ss' */ + if (UNLIKELY(ender == LATIN_SMALL_LETTER_SHARP_S)) { ++ ++ /* If the node started out having uni rules, we ++ * wouldn't have gotten here. So this means ++ * something in the middle has changed it, but ++ * didn't think it needed to reparse. But this ++ * sharp s now does indicate the need for ++ * reparsing. */ ++ if (RExC_uni_semantics) { ++ p = oldp; ++ goto loopdone; ++ } ++ + RExC_seen_unfolded_sharp_s = 1; + maybe_exactfu = FALSE; + } +-- +2.11.0 + diff --git a/SOURCES/perl-5.26.1-utf8.c-Don-t-dump-malformation-past-first-NUL.patch b/SOURCES/perl-5.26.1-utf8.c-Don-t-dump-malformation-past-first-NUL.patch new file mode 100644 index 0000000..8315a5c --- /dev/null +++ b/SOURCES/perl-5.26.1-utf8.c-Don-t-dump-malformation-past-first-NUL.patch @@ -0,0 +1,67 @@ +From d72ba890c8d8ac800c9d00a1f542deca11551f33 Mon Sep 17 00:00:00 2001 +From: Karl Williamson +Date: Tue, 13 Feb 2018 07:03:43 -0700 +Subject: utf8.c: Don't dump malformation past first NUL + +When a UTF-8 string contains a malformation, the bytes are dumped out as +a debugging aid. One should exercise caution, however, and not dump out +bytes that are actually past the end of the string. Commit 99a765e9e37 +from 2016 added the capability to signal to the dumping routines that +we're not sure where the string ends, and to dump the minimal possible. + +It occurred to me that an additional safety measure can be easily added, +which this commit does. And that is, in the dumping routines to stop at +the first NUL. All strings automatically get a traiing NUL added, even +if they contain embedded NULs. A NUL can never be part of a +malformation, and so its presence likely signals the end of the string. +--- + utf8.c | 16 ++++++++++++++-- + 1 file changed, 14 insertions(+), 2 deletions(-) + +diff --git a/utf8.c b/utf8.c +index a3d5f61b64..61346f0cb6 100644 +--- a/utf8.c ++++ b/utf8.c +@@ -810,7 +810,7 @@ Perl__byte_dump_string(pTHX_ const U8 * s, const STRLEN len, const bool format) + PERL_STATIC_INLINE char * + S_unexpected_non_continuation_text(pTHX_ const U8 * const s, + +- /* How many bytes to print */ ++ /* Max number of bytes to print */ + STRLEN print_len, + + /* Which one is the non-continuation */ +@@ -826,6 +826,8 @@ S_unexpected_non_continuation_text(pTHX_ const U8 * const s, + ? "immediately" + : Perl_form(aTHX_ "%d bytes", + (int) non_cont_byte_pos); ++ const U8 * x = s + non_cont_byte_pos; ++ const U8 * e = s + print_len; + + PERL_ARGS_ASSERT_UNEXPECTED_NON_CONTINUATION_TEXT; + +@@ -833,10 +835,20 @@ S_unexpected_non_continuation_text(pTHX_ const U8 * const s, + * calculated, it's likely faster to pass it; verify under DEBUGGING */ + assert(expect_len == UTF8SKIP(s)); + ++ /* As a defensive coding measure, don't output anything past a NUL. Such ++ * bytes shouldn't be in the middle of a malformation, and could mark the ++ * end of the allocated string, and what comes after is undefined */ ++ for (; x < e; x++) { ++ if (*x == '\0') { ++ x++; /* Output this particular NUL */ ++ break; ++ } ++ } ++ + return Perl_form(aTHX_ "%s: %s (unexpected non-continuation byte 0x%02x," + " %s after start byte 0x%02x; need %d bytes, got %d)", + malformed_text, +- _byte_dump_string(s, print_len, 0), ++ _byte_dump_string(s, x - s, 0), + *(s + non_cont_byte_pos), + where, + *s, +-- +2.11.0 + diff --git a/SOURCES/perl-5.27.0-perl-129183-don-t-treat-as-an-escape-in-PATH-for-S.patch b/SOURCES/perl-5.27.0-perl-129183-don-t-treat-as-an-escape-in-PATH-for-S.patch new file mode 100644 index 0000000..8889451 --- /dev/null +++ b/SOURCES/perl-5.27.0-perl-129183-don-t-treat-as-an-escape-in-PATH-for-S.patch @@ -0,0 +1,32 @@ +From e80af1fd276d83858d27742ea887415e3263960b Mon Sep 17 00:00:00 2001 +From: Tony Cook +Date: Wed, 12 Oct 2016 10:42:47 +1100 +Subject: [PATCH] (perl 129183) don't treat \ as an escape in PATH for -S +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Signed-off-by: Petr Písař +--- + util.c | 5 ++--- + 1 file changed, 2 insertions(+), 3 deletions(-) + +diff --git a/util.c b/util.c +index 5bb0dfc..6bc2fe5 100644 +--- a/util.c ++++ b/util.c +@@ -3352,9 +3352,8 @@ Perl_find_script(pTHX_ const char *scriptname, bool dosearch, + if (len < sizeof tmpbuf) + tmpbuf[len] = '\0'; + # else +- s = delimcpy(tmpbuf, tmpbuf + sizeof tmpbuf, s, bufend, +- ':', +- &len); ++ s = delimcpy_no_escape(tmpbuf, tmpbuf + sizeof tmpbuf, s, bufend, ++ ':', &len); + # endif + if (s < bufend) + s++; +-- +2.9.4 + diff --git a/SOURCES/perl-5.27.0-perl-131211-fixup-File-Glob-degenerate-matching.patch b/SOURCES/perl-5.27.0-perl-131211-fixup-File-Glob-degenerate-matching.patch new file mode 100644 index 0000000..c52d790 --- /dev/null +++ b/SOURCES/perl-5.27.0-perl-131211-fixup-File-Glob-degenerate-matching.patch @@ -0,0 +1,258 @@ +From 0db967b2e6a4093a6a5f649190159767e5d005e0 Mon Sep 17 00:00:00 2001 +From: Yves Orton +Date: Tue, 25 Apr 2017 15:17:06 +0200 +Subject: [PATCH] [perl #131211] fixup File::Glob degenerate matching +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +The old code would go quadratic with recursion and backtracking +when doing patterns like "a*a*a*a*a*a*a*x" on a file like +"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa". + +This patch changes the code to not recurse, and to not backtrack, +as per this article from Russ Cox: https://research.swtch.com/glob + +It also adds a micro-optimisation for M_ONE and M_SET under the new code. + +Thanks to Avar and Russ Cox for helping with this patch, along with +Jilles Tjoelker and the rest of the FreeBSD community. + +Signed-off-by: Petr Písař +--- + MANIFEST | 1 + + ext/File-Glob/bsd_glob.c | 64 +++++++++++++++++++++++-------- + ext/File-Glob/t/rt131211.t | 94 ++++++++++++++++++++++++++++++++++++++++++++++ + 3 files changed, 144 insertions(+), 15 deletions(-) + create mode 100644 ext/File-Glob/t/rt131211.t + +diff --git a/MANIFEST b/MANIFEST +index b7b6e74..af0da6c 100644 +--- a/MANIFEST ++++ b/MANIFEST +@@ -3948,6 +3948,7 @@ ext/File-Glob/t/basic.t See if File::Glob works + ext/File-Glob/t/case.t See if File::Glob works + ext/File-Glob/t/global.t See if File::Glob works + ext/File-Glob/t/rt114984.t See if File::Glob works ++ext/File-Glob/t/rt131211.t See if File::Glob works + ext/File-Glob/t/taint.t See if File::Glob works + ext/File-Glob/t/threads.t See if File::Glob + threads works + ext/File-Glob/TODO File::Glob extension todo list +diff --git a/ext/File-Glob/bsd_glob.c b/ext/File-Glob/bsd_glob.c +index 821ef20..e96fb73 100644 +--- a/ext/File-Glob/bsd_glob.c ++++ b/ext/File-Glob/bsd_glob.c +@@ -563,8 +563,12 @@ glob0(const Char *pattern, glob_t *pglob) + break; + case BG_STAR: + pglob->gl_flags |= GLOB_MAGCHAR; +- /* collapse adjacent stars to one, +- * to avoid exponential behavior ++ /* Collapse adjacent stars to one. ++ * This is required to ensure that a pattern like ++ * "a**" matches a name like "a", as without this ++ * check when the first star matched everything it would ++ * cause the second star to return a match fail. ++ * As long ** is folded here this does not happen. + */ + if (bufnext == patbuf || bufnext[-1] != M_ALL) + *bufnext++ = M_ALL; +@@ -909,35 +913,56 @@ globextend(const Char *path, glob_t *pglob, size_t *limitp) + + + /* +- * pattern matching function for filenames. Each occurrence of the * +- * pattern causes a recursion level. ++ * pattern matching function for filenames using state machine to avoid ++ * recursion. We maintain a "nextp" and "nextn" to allow us to backtrack ++ * without additional callframes, and to do cleanly prune the backtracking ++ * state when multiple '*' (start) matches are included in the patter. ++ * ++ * Thanks to Russ Cox for the improved state machine logic to avoid quadratic ++ * matching on failure. ++ * ++ * https://research.swtch.com/glob ++ * ++ * An example would be a pattern ++ * ("a*" x 100) . "y" ++ * against a file name like ++ * ("a" x 100) . "x" ++ * + */ + static int + match(Char *name, Char *pat, Char *patend, int nocase) + { + int ok, negate_range; + Char c, k; ++ Char *nextp = NULL; ++ Char *nextn = NULL; + ++ loop: + while (pat < patend) { + c = *pat++; + switch (c & M_MASK) { + case M_ALL: + if (pat == patend) + return(1); +- do +- if (match(name, pat, patend, nocase)) +- return(1); +- while (*name++ != BG_EOS) +- ; +- return(0); ++ if (*name == BG_EOS) ++ return 0; ++ nextn = name + 1; ++ nextp = pat - 1; ++ break; + case M_ONE: ++ /* since * matches leftmost-shortest first * ++ * if we encounter the EOS then backtracking * ++ * will not help, so we can exit early here. */ + if (*name++ == BG_EOS) +- return(0); ++ return 0; + break; + case M_SET: + ok = 0; ++ /* since * matches leftmost-shortest first * ++ * if we encounter the EOS then backtracking * ++ * will not help, so we can exit early here. */ + if ((k = *name++) == BG_EOS) +- return(0); ++ return 0; + if ((negate_range = ((*pat & M_MASK) == M_NOT)) != BG_EOS) + ++pat; + while (((c = *pat++) & M_MASK) != M_END) +@@ -953,16 +978,25 @@ match(Char *name, Char *pat, Char *patend, int nocase) + } else if (nocase ? (tolower(c) == tolower(k)) : (c == k)) + ok = 1; + if (ok == negate_range) +- return(0); ++ goto fail; + break; + default: + k = *name++; + if (nocase ? (tolower(k) != tolower(c)) : (k != c)) +- return(0); ++ goto fail; + break; + } + } +- return(*name == BG_EOS); ++ if (*name == BG_EOS) ++ return 1; ++ ++ fail: ++ if (nextn) { ++ pat = nextp; ++ name = nextn; ++ goto loop; ++ } ++ return 0; + } + + /* Free allocated data belonging to a glob_t structure. */ +diff --git a/ext/File-Glob/t/rt131211.t b/ext/File-Glob/t/rt131211.t +new file mode 100644 +index 0000000..c1bcbe0 +--- /dev/null ++++ b/ext/File-Glob/t/rt131211.t +@@ -0,0 +1,94 @@ ++use strict; ++use warnings; ++use v5.16.0; ++use File::Temp 'tempdir'; ++use File::Spec::Functions; ++use Test::More; ++use Time::HiRes qw(time); ++ ++plan tests => 13; ++ ++my $path = tempdir uc cleanup => 1; ++my @files= ( ++ "x".("a" x 50)."b", # 0 ++ "abbbbbbbbbbbbc", # 1 ++ "abbbbbbbbbbbbd", # 2 ++ "aaabaaaabaaaabc", # 3 ++ "pq", # 4 ++ "r", # 5 ++ "rttiiiiiii", # 6 ++ "wewewewewewe", # 7 ++ "weeeweeeweee", # 8 ++ "weewweewweew", # 9 ++ "wewewewewewewewewewewewewewewewewq", # 10 ++ "wtttttttetttttttwr", # 11 ++); ++ ++ ++foreach (@files) { ++ open(my $f, ">", catfile $path, $_); ++} ++ ++my $elapsed_fail= 0; ++my $elapsed_match= 0; ++my @got_files; ++my @no_files; ++my $count = 0; ++ ++while (++$count < 10) { ++ $elapsed_match -= time; ++ @got_files= glob catfile $path, "x".("a*" x $count) . "b"; ++ $elapsed_match += time; ++ ++ $elapsed_fail -= time; ++ @no_files= glob catfile $path, "x".("a*" x $count) . "c"; ++ $elapsed_fail += time; ++ last if $elapsed_fail > $elapsed_match * 100; ++} ++ ++is $count,10, ++ "tried all the patterns without bailing out"; ++ ++cmp_ok $elapsed_fail/$elapsed_match,"<",2, ++ "time to fail less than twice the time to match"; ++is "@got_files", catfile($path, $files[0]), ++ "only got the expected file for xa*..b"; ++is "@no_files", "", "shouldnt have files for xa*..c"; ++ ++ ++@got_files= glob catfile $path, "a*b*b*b*bc"; ++is "@got_files", catfile($path, $files[1]), ++ "only got the expected file for a*b*b*b*bc"; ++ ++@got_files= sort glob catfile $path, "a*b*b*bc"; ++is "@got_files", catfile($path, $files[3])." ".catfile($path,$files[1]), ++ "got the expected two files for a*b*b*bc"; ++ ++@got_files= sort glob catfile $path, "p*"; ++is "@got_files", catfile($path, $files[4]), ++ "p* matches pq"; ++ ++@got_files= sort glob catfile $path, "r*???????"; ++is "@got_files", catfile($path, $files[6]), ++ "r*??????? works as expected"; ++ ++@got_files= sort glob catfile $path, "w*e*w??e"; ++is "@got_files", join(" ", sort map { catfile($path, $files[$_]) } (7,8)), ++ "w*e*w??e works as expected"; ++ ++@got_files= sort glob catfile $path, "w*e*we??"; ++is "@got_files", join(" ", sort map { catfile($path, $files[$_]) } (7,8,9,10)), ++ "w*e*we?? works as expected"; ++ ++@got_files= sort glob catfile $path, "w**e**w"; ++is "@got_files", join(" ", sort map { catfile($path, $files[$_]) } (9)), ++ "w**e**w works as expected"; ++ ++@got_files= sort glob catfile $path, "*wee*"; ++is "@got_files", join(" ", sort map { catfile($path, $files[$_]) } (8,9)), ++ "*wee* works as expected"; ++ ++@got_files= sort glob catfile $path, "we*"; ++is "@got_files", join(" ", sort map { catfile($path, $files[$_]) } (7,8,9,10)), ++ "we* works as expected"; ++ +-- +2.9.4 + diff --git a/SOURCES/perl-5.27.0-perl-131221-improve-duplication-of-via-handles.patch b/SOURCES/perl-5.27.0-perl-131221-improve-duplication-of-via-handles.patch new file mode 100644 index 0000000..37da371 --- /dev/null +++ b/SOURCES/perl-5.27.0-perl-131221-improve-duplication-of-via-handles.patch @@ -0,0 +1,299 @@ +From 99b847695211f825df6299aa9da91f9494f741e2 Mon Sep 17 00:00:00 2001 +From: Tony Cook +Date: Thu, 1 Jun 2017 15:11:27 +1000 +Subject: [PATCH] [perl #131221] improve duplication of :via handles +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Previously duplication (as with open ... ">&...") would fail +unless the user supplied a GETARG, which wasn't documented, and +resulted in an attempt to free and unreferened scalar if supplied. + +Cloning on thread creation was simply broken. + +We now handle GETARG correctly, and provide a useful default if it +returns nothing. + +Cloning on thread creation now duplicates the appropriate parts of the +parent thread's handle. + +Signed-off-by: Petr Písař +--- + MANIFEST | 1 + + ext/PerlIO-via/t/thread.t | 73 +++++++++++++++++++++++++++++++++++++++++++++++ + ext/PerlIO-via/t/via.t | 56 +++++++++++++++++++++++++++++++++++- + ext/PerlIO-via/via.pm | 2 +- + ext/PerlIO-via/via.xs | 55 +++++++++++++++++++++++++++++++---- + 5 files changed, 179 insertions(+), 8 deletions(-) + create mode 100644 ext/PerlIO-via/t/thread.t + +diff --git a/MANIFEST b/MANIFEST +index 8c4950e..d39f992 100644 +--- a/MANIFEST ++++ b/MANIFEST +@@ -4056,6 +4056,7 @@ ext/PerlIO-scalar/scalar.xs PerlIO layer for scalars + ext/PerlIO-scalar/t/scalar.t See if PerlIO::scalar works + ext/PerlIO-scalar/t/scalar_ungetc.t Tests for PerlIO layer for scalars + ext/PerlIO-via/hints/aix.pl Hint for PerlIO::via for named architecture ++ext/PerlIO-via/t/thread.t See if PerlIO::via works with threads + ext/PerlIO-via/t/via.t See if PerlIO::via works + ext/PerlIO-via/via.pm PerlIO layer for layers in perl + ext/PerlIO-via/via.xs PerlIO layer for layers in perl +diff --git a/ext/PerlIO-via/t/thread.t b/ext/PerlIO-via/t/thread.t +new file mode 100644 +index 0000000..e4358f9 +--- /dev/null ++++ b/ext/PerlIO-via/t/thread.t +@@ -0,0 +1,73 @@ ++#!perl ++BEGIN { ++ unless (find PerlIO::Layer 'perlio') { ++ print "1..0 # Skip: not perlio\n"; ++ exit 0; ++ } ++ require Config; ++ unless ($Config::Config{'usethreads'}) { ++ print "1..0 # Skip -- need threads for this test\n"; ++ exit 0; ++ } ++ if (($Config::Config{'extensions'} !~ m!\bPerlIO/via\b!) ){ ++ print "1..0 # Skip -- Perl configured without PerlIO::via module\n"; ++ exit 0; ++ } ++} ++ ++use strict; ++use warnings; ++use threads; ++ ++my $tmp = "via$$"; ++ ++END { ++ 1 while unlink $tmp; ++} ++ ++use Test::More tests => 2; ++ ++our $push_count = 0; ++ ++{ ++ open my $fh, ">:via(Test1)", $tmp ++ or die "Cannot open $tmp: $!"; ++ $fh->autoflush; ++ ++ print $fh "AXAX"; ++ ++ # previously this would crash ++ threads->create( ++ sub { ++ print $fh "XZXZ"; ++ })->join; ++ ++ print $fh "BXBX"; ++ close $fh; ++ ++ open my $in, "<", $tmp; ++ my $line = <$in>; ++ close $in; ++ ++ is($line, "AYAYYZYZBYBY", "check thread data delivered"); ++ ++ is($push_count, 1, "PUSHED not called for dup on thread creation"); ++} ++ ++package PerlIO::via::Test1; ++ ++sub PUSHED { ++ my ($class) = @_; ++ ++$main::push_count; ++ bless {}, $class; ++} ++ ++sub WRITE { ++ my ($self, $data, $fh) = @_; ++ $data =~ tr/X/Y/; ++ $fh->autoflush; ++ print $fh $data; ++ return length $data; ++} ++ ++ +diff --git a/ext/PerlIO-via/t/via.t b/ext/PerlIO-via/t/via.t +index 6787e11..80577df 100644 +--- a/ext/PerlIO-via/t/via.t ++++ b/ext/PerlIO-via/t/via.t +@@ -17,7 +17,7 @@ use warnings; + + my $tmp = "via$$"; + +-use Test::More tests => 18; ++use Test::More tests => 26; + + my $fh; + my $a = join("", map { chr } 0..255) x 10; +@@ -84,6 +84,60 @@ is( $obj, 'Foo', 'search for package Foo' ); + open $fh, '<:via(Bar)', "bar"; + is( $obj, 'PerlIO::via::Bar', 'search for package PerlIO::via::Bar' ); + ++{ ++ # [perl #131221] ++ ok(open(my $fh1, ">", $tmp), "open $tmp"); ++ ok(binmode($fh1, ":via(XXX)"), "binmode :via(XXX) onto it"); ++ ok(open(my $fh2, ">&", $fh1), "dup it"); ++ close $fh1; ++ close $fh2; ++ ++ # make sure the old workaround still works ++ ok(open($fh1, ">", $tmp), "open $tmp"); ++ ok(binmode($fh1, ":via(YYY)"), "binmode :via(YYY) onto it"); ++ ok(open($fh2, ">&", $fh1), "dup it"); ++ print $fh2 "XZXZ"; ++ close $fh1; ++ close $fh2; ++ ++ ok(open($fh1, "<", $tmp), "open $tmp for check"); ++ { local $/; $b = <$fh1> } ++ close $fh1; ++ is($b, "XZXZ", "check result is from non-filtering class"); ++ ++ package PerlIO::via::XXX; ++ ++ sub PUSHED { ++ my $class = shift; ++ bless {}, $class; ++ } ++ ++ sub WRITE { ++ my ($self, $buffer, $handle) = @_; ++ ++ print $handle $buffer; ++ return length($buffer); ++ } ++ package PerlIO::via::YYY; ++ ++ sub PUSHED { ++ my $class = shift; ++ bless {}, $class; ++ } ++ ++ sub WRITE { ++ my ($self, $buffer, $handle) = @_; ++ ++ $buffer =~ tr/X/Y/; ++ print $handle $buffer; ++ return length($buffer); ++ } ++ ++ sub GETARG { ++ "XXX"; ++ } ++} ++ + END { + 1 while unlink $tmp; + } +diff --git a/ext/PerlIO-via/via.pm b/ext/PerlIO-via/via.pm +index e477dcc..30083fe 100644 +--- a/ext/PerlIO-via/via.pm ++++ b/ext/PerlIO-via/via.pm +@@ -1,5 +1,5 @@ + package PerlIO::via; +-our $VERSION = '0.16'; ++our $VERSION = '0.17'; + require XSLoader; + XSLoader::load(); + 1; +diff --git a/ext/PerlIO-via/via.xs b/ext/PerlIO-via/via.xs +index 8a7f1fc..61953c8 100644 +--- a/ext/PerlIO-via/via.xs ++++ b/ext/PerlIO-via/via.xs +@@ -38,6 +38,8 @@ typedef struct + CV *UTF8; + } PerlIOVia; + ++static const MGVTBL PerlIOVia_tag = { 0, 0, 0, 0, 0, 0, 0, 0 }; ++ + #define MYMethod(x) #x,&s->x + + static CV * +@@ -131,8 +133,14 @@ PerlIOVia_pushed(pTHX_ PerlIO * f, const char *mode, SV * arg, + PerlIO_funcs * tab) + { + IV code = PerlIOBase_pushed(aTHX_ f, mode, Nullsv, tab); ++ ++ if (SvTYPE(arg) >= SVt_PVMG ++ && mg_findext(arg, PERL_MAGIC_ext, &PerlIOVia_tag)) { ++ return code; ++ } ++ + if (code == 0) { +- PerlIOVia *s = PerlIOSelf(f, PerlIOVia); ++ PerlIOVia *s = PerlIOSelf(f, PerlIOVia); + if (!arg) { + if (ckWARN(WARN_LAYER)) + Perl_warner(aTHX_ packWARN(WARN_LAYER), +@@ -583,20 +591,55 @@ static SV * + PerlIOVia_getarg(pTHX_ PerlIO * f, CLONE_PARAMS * param, int flags) + { + PerlIOVia *s = PerlIOSelf(f, PerlIOVia); +- PERL_UNUSED_ARG(param); ++ SV *arg; + PERL_UNUSED_ARG(flags); +- return PerlIOVia_method(aTHX_ f, MYMethod(GETARG), G_SCALAR, Nullsv); ++ ++ /* During cloning, return an undef token object so that _pushed() knows ++ * that it should not call methods and wait for _dup() to actually dup the ++ * object. */ ++ if (param) { ++ SV *sv = newSV(0); ++ sv_magicext(sv, NULL, PERL_MAGIC_ext, &PerlIOVia_tag, 0, 0); ++ return sv; ++ } ++ ++ arg = PerlIOVia_method(aTHX_ f, MYMethod(GETARG), G_SCALAR, Nullsv); ++ if (arg) { ++ /* arg is a temp, and PerlIOBase_dup() will explicitly free it */ ++ SvREFCNT_inc(arg); ++ } ++ else { ++ arg = newSVpvn(HvNAME(s->stash), HvNAMELEN(s->stash)); ++ } ++ ++ return arg; + } + + static PerlIO * + PerlIOVia_dup(pTHX_ PerlIO * f, PerlIO * o, CLONE_PARAMS * param, + int flags) + { +- if ((f = PerlIOBase_dup(aTHX_ f, o, param, flags))) { +- /* Most of the fields will lazily set themselves up as needed +- stash and obj have been set up by the implied push ++ if ((f = PerlIOBase_dup(aTHX_ f, o, param, flags)) && param) { ++ /* For a non-interpreter dup stash and obj have been set up ++ by the implied push. ++ ++ But if this is a clone for a new interpreter we need to ++ translate the objects to their dups. + */ ++ ++ PerlIOVia *fs = PerlIOSelf(f, PerlIOVia); ++ PerlIOVia *os = PerlIOSelf(o, PerlIOVia); ++ ++ fs->obj = sv_dup_inc(os->obj, param); ++ fs->stash = (HV*)sv_dup((SV*)os->stash, param); ++ fs->var = sv_dup_inc(os->var, param); ++ fs->cnt = os->cnt; ++ ++ /* fh, io, cached CVs left as NULL, PerlIOVia_method() ++ will reinitialize them if needed */ + } ++ /* for a non-threaded dup fs->obj and stash should be set by _pushed() */ ++ + return f; + } + +-- +2.9.4 + diff --git a/SOURCES/perl-5.27.0-perl-131221-sv_dup-sv_dup_inc-are-only-available-und.patch b/SOURCES/perl-5.27.0-perl-131221-sv_dup-sv_dup_inc-are-only-available-und.patch new file mode 100644 index 0000000..f0e89da --- /dev/null +++ b/SOURCES/perl-5.27.0-perl-131221-sv_dup-sv_dup_inc-are-only-available-und.patch @@ -0,0 +1,71 @@ +From 7b3443d31f11c15859593e5b710c301795a6de01 Mon Sep 17 00:00:00 2001 +From: Tony Cook +Date: Thu, 8 Jun 2017 11:06:39 +1000 +Subject: [PATCH] [perl #131221] sv_dup/sv_dup_inc are only available under + threads +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Signed-off-by: Petr Písař +--- + ext/PerlIO-via/via.xs | 42 +++++++++++++++++++++++------------------- + 1 file changed, 23 insertions(+), 19 deletions(-) + +diff --git a/ext/PerlIO-via/via.xs b/ext/PerlIO-via/via.xs +index 61953c8..d91c685 100644 +--- a/ext/PerlIO-via/via.xs ++++ b/ext/PerlIO-via/via.xs +@@ -619,26 +619,30 @@ static PerlIO * + PerlIOVia_dup(pTHX_ PerlIO * f, PerlIO * o, CLONE_PARAMS * param, + int flags) + { +- if ((f = PerlIOBase_dup(aTHX_ f, o, param, flags)) && param) { +- /* For a non-interpreter dup stash and obj have been set up +- by the implied push. +- +- But if this is a clone for a new interpreter we need to +- translate the objects to their dups. +- */ +- +- PerlIOVia *fs = PerlIOSelf(f, PerlIOVia); +- PerlIOVia *os = PerlIOSelf(o, PerlIOVia); +- +- fs->obj = sv_dup_inc(os->obj, param); +- fs->stash = (HV*)sv_dup((SV*)os->stash, param); +- fs->var = sv_dup_inc(os->var, param); +- fs->cnt = os->cnt; +- +- /* fh, io, cached CVs left as NULL, PerlIOVia_method() +- will reinitialize them if needed */ ++ if ((f = PerlIOBase_dup(aTHX_ f, o, param, flags))) { ++#ifdef USE_ITHREADS ++ if (param) { ++ /* For a non-interpreter dup stash and obj have been set up ++ by the implied push. ++ ++ But if this is a clone for a new interpreter we need to ++ translate the objects to their dups. ++ */ ++ ++ PerlIOVia *fs = PerlIOSelf(f, PerlIOVia); ++ PerlIOVia *os = PerlIOSelf(o, PerlIOVia); ++ ++ fs->obj = sv_dup_inc(os->obj, param); ++ fs->stash = (HV*)sv_dup((SV*)os->stash, param); ++ fs->var = sv_dup_inc(os->var, param); ++ fs->cnt = os->cnt; ++ ++ /* fh, io, cached CVs left as NULL, PerlIOVia_method() ++ will reinitialize them if needed */ ++ } ++#endif ++ /* for a non-threaded dup fs->obj and stash should be set by _pushed() */ + } +- /* for a non-threaded dup fs->obj and stash should be set by _pushed() */ + + return f; + } +-- +2.9.4 + diff --git a/SOURCES/perl-5.27.1-File-Glob-tweak-rt131211.t-to-be-less-sensitive-on-w.patch b/SOURCES/perl-5.27.1-File-Glob-tweak-rt131211.t-to-be-less-sensitive-on-w.patch new file mode 100644 index 0000000..6407a06 --- /dev/null +++ b/SOURCES/perl-5.27.1-File-Glob-tweak-rt131211.t-to-be-less-sensitive-on-w.patch @@ -0,0 +1,45 @@ +From b4d257e2d408f0f1c6686dcdc112f3ebfec68f44 Mon Sep 17 00:00:00 2001 +From: Yves Orton +Date: Tue, 27 Jun 2017 10:22:23 +0200 +Subject: [PATCH] File::Glob - tweak rt131211.t to be less sensitive on wonky + boxes +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +make the test less senstive and avoid divide by zero errors, +also we skip the test if either elapsed_match or elapsed_fail is +true, as we can not rely on the timings then. For the operations +we are doing we should get a non-zero timing from Time::HiRes. + +This should mean that running this test on boxes with heavy +load, etc, will no longer result in false positives. + +Signed-off-by: Petr Písař +--- + ext/File-Glob/t/rt131211.t | 9 +++++++-- + 1 file changed, 7 insertions(+), 2 deletions(-) + +diff --git a/ext/File-Glob/t/rt131211.t b/ext/File-Glob/t/rt131211.t +index c1bcbe0..b29cd04 100644 +--- a/ext/File-Glob/t/rt131211.t ++++ b/ext/File-Glob/t/rt131211.t +@@ -49,8 +49,13 @@ while (++$count < 10) { + is $count,10, + "tried all the patterns without bailing out"; + +-cmp_ok $elapsed_fail/$elapsed_match,"<",2, +- "time to fail less than twice the time to match"; ++SKIP: { ++ skip "unstable timing", 1 unless $elapsed_match && $elapsed_fail; ++ ok $elapsed_fail <= 10 * $elapsed_match, ++ "time to fail less than 10x the time to match" ++ or diag("elapsed_match=$elapsed_match elapsed_fail=$elapsed_fail"); ++} ++ + is "@got_files", catfile($path, $files[0]), + "only got the expected file for xa*..b"; + is "@no_files", "", "shouldnt have files for xa*..c"; +-- +2.9.4 + diff --git a/SOURCES/perl-5.27.1-Parse-caret-vars-with-subscripts-the-same-as-normal-.patch b/SOURCES/perl-5.27.1-Parse-caret-vars-with-subscripts-the-same-as-normal-.patch new file mode 100644 index 0000000..a8398c3 --- /dev/null +++ b/SOURCES/perl-5.27.1-Parse-caret-vars-with-subscripts-the-same-as-normal-.patch @@ -0,0 +1,141 @@ +From 4f08ed80a1ad3deb06ce5d8d20cc2d176dcbced0 Mon Sep 17 00:00:00 2001 +From: Yves Orton +Date: Thu, 29 Jun 2017 11:31:14 +0200 +Subject: [PATCH] Parse caret vars with subscripts the same as normal vars + inside of ${..} escaping +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +This behavior is discussed in perl #131664, which complains that +"${^CAPTURE}[0]" does not work as expected. Abigail explains the +behavior is by design and Eirik Berg Hanssen expands on that explanation +pointing out that what /should/ work, "${^CAPTURE[0]}" does not, +which Sawyer then ruled was a bug. + +So this patch makes "${^CAPTURE[0]}" (and "${^CAPTURE [0]}" [hi +abigial]) work the same as they would if the var was called @foo. + +Signed-off-by: Petr Písař +--- + t/base/lex.t | 28 +++++++++++++++++++++++++++- + toke.c | 46 +++++++++++++++++++++++++--------------------- + 2 files changed, 52 insertions(+), 22 deletions(-) + +diff --git a/t/base/lex.t b/t/base/lex.t +index e154aca..89d46df 100644 +--- a/t/base/lex.t ++++ b/t/base/lex.t +@@ -1,6 +1,6 @@ + #!./perl + +-print "1..109\n"; ++print "1..116\n"; + + $x = 'x'; + +@@ -154,6 +154,32 @@ my $test = 31; + print "not " unless index ($@, 'Can\'t use global $^XYZ in "my"') > -1; + print "ok $test\n"; $test++; + # print "($@)\n" if $@; ++# ++ ${^TEST}= "splat"; ++ @{^TEST}= ("foo", "bar"); ++ %{^TEST}= ("foo" => "FOO", "bar" => "BAR" ); ++ ++ print "not " if "${^TEST}" ne "splat"; ++ print "ok $test\n"; $test++; ++ ++ print "not " if "${^TEST}[0]" ne "splat[0]"; ++ print "ok $test\n"; $test++; ++ ++ print "not " if "${^TEST[0]}" ne "foo"; ++ print "ok $test\n"; $test++; ++ ++ print "not " if "${ ^TEST [1] }" ne "bar"; ++ print "ok $test\n"; $test++; ++ ++ print "not " if "${^TEST}{foo}" ne "splat{foo}"; ++ print "ok $test\n"; $test++; ++ ++ print "not " if "${^TEST{foo}}" ne "FOO"; ++ print "ok $test\n"; $test++; ++ ++ print "not " if "${ ^TEST {bar} }" ne "BAR"; ++ print "ok $test\n"; $test++; ++ + + # Now let's make sure that caret variables are all forced into the main package. + package Someother; +diff --git a/toke.c b/toke.c +index 0dcf623..ace92e3 100644 +--- a/toke.c ++++ b/toke.c +@@ -9352,19 +9352,36 @@ S_scan_ident(pTHX_ char *s, char *dest, STRLEN destlen, I32 ck_uni) + bool skip; + char *s2; + /* If we were processing {...} notation then... */ +- if (isIDFIRST_lazy_if_safe(d, e, is_utf8)) { +- /* if it starts as a valid identifier, assume that it is one. +- (the later check for } being at the expected point will trap +- cases where this doesn't pan out.) */ +- d += is_utf8 ? UTF8SKIP(d) : 1; +- parse_ident(&s, &d, e, 1, is_utf8, TRUE); +- *d = '\0'; ++ if (isIDFIRST_lazy_if_safe(d, e, is_utf8) ++ || (!isPRINT(*d) /* isCNTRL(d), plus all non-ASCII */ ++ && isWORDCHAR(*s)) ++ ) { ++ /* note we have to check for a normal identifier first, ++ * as it handles utf8 symbols, and only after that has ++ * been ruled out can we look at the caret words */ ++ if (isIDFIRST_lazy_if_safe(d, e, is_utf8) ) { ++ /* if it starts as a valid identifier, assume that it is one. ++ (the later check for } being at the expected point will trap ++ cases where this doesn't pan out.) */ ++ d += is_utf8 ? UTF8SKIP(d) : 1; ++ parse_ident(&s, &d, e, 1, is_utf8, TRUE); ++ *d = '\0'; ++ } ++ else { /* caret word: ${^Foo} ${^CAPTURE[0]} */ ++ d++; ++ while (isWORDCHAR(*s) && d < e) { ++ *d++ = *s++; ++ } ++ if (d >= e) ++ Perl_croak(aTHX_ "%s", ident_too_long); ++ *d = '\0'; ++ } + tmp_copline = CopLINE(PL_curcop); + if (s < PL_bufend && isSPACE(*s)) { + s = skipspace(s); + } + if ((*s == '[' || (*s == '{' && strNE(dest, "sub")))) { +- /* ${foo[0]} and ${foo{bar}} notation. */ ++ /* ${foo[0]} and ${foo{bar}} and ${^CAPTURE[0]} notation. */ + if (ckWARN(WARN_AMBIGUOUS) && keyword(dest, d - dest, 0)) { + const char * const brack = + (const char *) +@@ -9383,19 +9400,6 @@ S_scan_ident(pTHX_ char *s, char *dest, STRLEN destlen, I32 ck_uni) + return s; + } + } +- /* Handle extended ${^Foo} variables +- * 1999-02-27 mjd-perl-patch@plover.com */ +- else if (! isPRINT(*d) /* isCNTRL(d), plus all non-ASCII */ +- && isWORDCHAR(*s)) +- { +- d++; +- while (isWORDCHAR(*s) && d < e) { +- *d++ = *s++; +- } +- if (d >= e) +- Perl_croak(aTHX_ "%s", ident_too_long); +- *d = '\0'; +- } + + if ( !tmp_copline ) + tmp_copline = CopLINE(PL_curcop); +-- +2.9.4 + diff --git a/SOURCES/perl-5.27.1-RT-130907-Fix-the-Unicode-Bug-in-split.patch b/SOURCES/perl-5.27.1-RT-130907-Fix-the-Unicode-Bug-in-split.patch new file mode 100644 index 0000000..d1543f0 --- /dev/null +++ b/SOURCES/perl-5.27.1-RT-130907-Fix-the-Unicode-Bug-in-split.patch @@ -0,0 +1,226 @@ +From 5aca16e032861ea3dfcc96ad417ea87e2b1552e5 Mon Sep 17 00:00:00 2001 +From: Aaron Crane +Date: Sat, 4 Mar 2017 12:50:58 +0000 +Subject: [PATCH] RT #130907: Fix the Unicode Bug in split " " +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Ported to 5.26.0: + +commit 20ae58f7a9bbf84d043d6e90f5988b6e3ca4ee3d +Author: Aaron Crane +Date: Sat Mar 4 12:50:58 2017 +0000 + + RT #130907: Fix the Unicode Bug in split " " + +Signed-off-by: Petr Písař +--- + lib/feature.pm | 5 +++-- + pod/perldelta.pod | 9 +++++++++ + pod/perlfunc.pod | 8 ++++++++ + pod/perlunicode.pod | 11 +++++++++++ + pod/perluniintro.pod | 5 +++-- + pp.c | 13 +++++++++++++ + regen/feature.pl | 5 +++-- + t/op/split.t | 20 +++++++++++++++++++- + 8 files changed, 69 insertions(+), 7 deletions(-) + +diff --git a/lib/feature.pm b/lib/feature.pm +index ed13273..93e020b 100644 +--- a/lib/feature.pm ++++ b/lib/feature.pm +@@ -175,8 +175,9 @@ C subpragma is B recommended. + + This feature is available starting with Perl 5.12; was almost fully + implemented in Perl 5.14; and extended in Perl 5.16 to cover C; +-and extended further in Perl 5.26 to cover L. ++was extended further in Perl 5.26 to cover L; and was extended again in Perl 5.28 to ++cover L. + + =head2 The 'unicode_eval' and 'evalbytes' features + +#diff --git a/pod/perldelta.pod b/pod/perldelta.pod +#index 06dcd1d..d31335f 100644 +#--- a/pod/perldelta.pod +#+++ b/pod/perldelta.pod +#@@ -3206,6 +3206,15 @@ calls. +# Parsing bad POSIX charclasses no longer leaks memory. +# L<[perl #128313]|https://rt.perl.org/Public/Bug/Display.html?id=128313> +# +#+=item * +#+ +#+C now correctly handles the argument being split when in the +#+scope of the L<< C|feature/"The 'unicode_strings' feature" +#+>> feature. Previously, when a string using the single-byte internal +#+representation contained characters that are whitespace by Unicode rules but +#+not by ASCII rules, it treated those characters as part of fields rather +#+than as field separators. [perl #130907] +#+ +# =back +# +# =head1 Known Problems +diff --git a/pod/perlfunc.pod b/pod/perlfunc.pod +index b8dca6e..9abadf4 100644 +--- a/pod/perlfunc.pod ++++ b/pod/perlfunc.pod +@@ -7616,6 +7616,14 @@ special case was restricted to the use of a plain S> as the + pattern argument to split; in Perl 5.18.0 and later this special case is + triggered by any expression which evaluates to the simple string S>. + ++As of Perl 5.28, this special-cased whitespace splitting works as expected in ++the scope of L<< S>|feature/The ++'unicode_strings' feature >>. In previous versions, and outside the scope of ++that feature, it exhibits L: characters that are ++whitespace according to Unicode rules but not according to ASCII rules can be ++treated as part of fields rather than as field separators, depending on the ++string's internal encoding. ++ + If omitted, PATTERN defaults to a single space, S>, triggering + the previously described I emulation. + +diff --git a/pod/perlunicode.pod b/pod/perlunicode.pod +index 9c13c35..2e84e95 100644 +--- a/pod/perlunicode.pod ++++ b/pod/perlunicode.pod +@@ -1835,6 +1835,17 @@ outside its scope, it could produce strings whose length in characters + exceeded that of the right-hand side, where the right-hand side took up more + bytes than the correct range endpoint. + ++=item * ++ ++In L<< C's special-case whitespace splitting|perlfunc/split >>. ++ ++Starting in Perl 5.28.0, the C function with a pattern specified as ++a string containing a single space handles whitespace characters consistently ++within the scope of of C. Prior to that, or outside its scope, ++characters that are whitespace according to Unicode rules but not according to ++ASCII rules were treated as field contents rather than field separators when ++they appear in byte-encoded strings. ++ + =back + + You can see from the above that the effect of C +diff --git a/pod/perluniintro.pod b/pod/perluniintro.pod +index d35de34..595ec46 100644 +--- a/pod/perluniintro.pod ++++ b/pod/perluniintro.pod +@@ -151,11 +151,12 @@ serious Unicode work. The maintenance release 5.6.1 fixed many of the + problems of the initial Unicode implementation, but for example + regular expressions still do not work with Unicode in 5.6.1. + Perl v5.14.0 is the first release where Unicode support is +-(almost) seamlessly integrable without some gotchas. (There are two ++(almost) seamlessly integrable without some gotchas. (There are a few + exceptions. Firstly, some differences in L + were fixed starting in Perl 5.16.0. Secondly, some differences in + L were fixed starting in +-Perl 5.26.0.) ++Perl 5.26.0. Thirdly, some differences in L were fixed ++started in Perl 5.28.0.) + + To enable this + seamless support, you should C (which is +diff --git a/pp.c b/pp.c +index cc4cb59..d9dd005 100644 +--- a/pp.c ++++ b/pp.c +@@ -5740,6 +5740,7 @@ PP(pp_split) + STRLEN len; + const char *s = SvPV_const(sv, len); + const bool do_utf8 = DO_UTF8(sv); ++ const bool in_uni_8_bit = IN_UNI_8_BIT; + const char *strend = s + len; + PMOP *pm = cPMOPx(PL_op); + REGEXP *rx; +@@ -5826,6 +5827,10 @@ PP(pp_split) + while (s < strend && isSPACE_LC(*s)) + s++; + } ++ else if (in_uni_8_bit) { ++ while (s < strend && isSPACE_L1(*s)) ++ s++; ++ } + else { + while (s < strend && isSPACE(*s)) + s++; +@@ -5857,6 +5862,10 @@ PP(pp_split) + { + while (m < strend && !isSPACE_LC(*m)) + ++m; ++ } ++ else if (in_uni_8_bit) { ++ while (m < strend && !isSPACE_L1(*m)) ++ ++m; + } else { + while (m < strend && !isSPACE(*m)) + ++m; +@@ -5891,6 +5900,10 @@ PP(pp_split) + { + while (s < strend && isSPACE_LC(*s)) + ++s; ++ } ++ else if (in_uni_8_bit) { ++ while (s < strend && isSPACE_L1(*s)) ++ ++s; + } else { + while (s < strend && isSPACE(*s)) + ++s; +diff --git a/regen/feature.pl b/regen/feature.pl +index 579120e..8a4ce63 100755 +--- a/regen/feature.pl ++++ b/regen/feature.pl +@@ -485,8 +485,9 @@ C subpragma is B recommended. + + This feature is available starting with Perl 5.12; was almost fully + implemented in Perl 5.14; and extended in Perl 5.16 to cover C; +-and extended further in Perl 5.26 to cover L. ++was extended further in Perl 5.26 to cover L; and was extended again in Perl 5.28 to ++cover L. + + =head2 The 'unicode_eval' and 'evalbytes' features + +diff --git a/t/op/split.t b/t/op/split.t +index d60bcaf..038c5d7 100644 +--- a/t/op/split.t ++++ b/t/op/split.t +@@ -7,7 +7,7 @@ BEGIN { + set_up_inc('../lib'); + } + +-plan tests => 163; ++plan tests => 172; + + $FS = ':'; + +@@ -480,6 +480,24 @@ is($cnt, scalar(@ary)); + qq{split(\$cond ? qr/ / : " ", "$exp") behaves as expected over repeated similar patterns}; + } + ++SKIP: { ++ # RT #130907: unicode_strings feature doesn't work with split ' ' ++ ++ my ($sp) = grep /\s/u, map chr, reverse 128 .. 255 # prefer \xA0 over \x85 ++ or skip 'no unicode whitespace found in high-8-bit range', 9; ++ ++ for (["$sp$sp. /", "leading unicode whitespace"], ++ [".$sp$sp/", "unicode whitespace separator"], ++ [". /$sp$sp", "trailing unicode whitespace"]) { ++ my ($str, $desc) = @$_; ++ use feature "unicode_strings"; ++ my @got = split " ", $str; ++ is @got, 2, "whitespace split: $desc: field count"; ++ is $got[0], '.', "whitespace split: $desc: field 0"; ++ is $got[1], '/', "whitespace split: $desc: field 1"; ++ } ++} ++ + { + # 'RT #116086: split "\x20" does not work as documented'; + my @results; +-- +2.9.4 + diff --git a/SOURCES/perl-5.27.1-add-an-additional-test-for-whitespace-tolerance-in-c.patch b/SOURCES/perl-5.27.1-add-an-additional-test-for-whitespace-tolerance-in-c.patch new file mode 100644 index 0000000..2df1317 --- /dev/null +++ b/SOURCES/perl-5.27.1-add-an-additional-test-for-whitespace-tolerance-in-c.patch @@ -0,0 +1,43 @@ +From 9b7d3fdf8458e3581b4fb3a6c557b4db4e1f31e8 Mon Sep 17 00:00:00 2001 +From: Yves Orton +Date: Thu, 29 Jun 2017 13:20:49 +0200 +Subject: [PATCH] add an additional test for whitespace tolerance in caret + word-vars +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Signed-off-by: Petr Písař +--- + t/base/lex.t | 7 +++++-- + 1 file changed, 5 insertions(+), 2 deletions(-) + +diff --git a/t/base/lex.t b/t/base/lex.t +index 89d46df..de33e7a 100644 +--- a/t/base/lex.t ++++ b/t/base/lex.t +@@ -1,6 +1,6 @@ + #!./perl + +-print "1..116\n"; ++print "1..117\n"; + + $x = 'x'; + +@@ -158,9 +158,12 @@ my $test = 31; + ${^TEST}= "splat"; + @{^TEST}= ("foo", "bar"); + %{^TEST}= ("foo" => "FOO", "bar" => "BAR" ); +- ++ + print "not " if "${^TEST}" ne "splat"; + print "ok $test\n"; $test++; ++ ++ print "not " if "${ ^TEST }" ne "splat"; ++ print "ok $test\n"; $test++; + + print "not " if "${^TEST}[0]" ne "splat[0]"; + print "ok $test\n"; $test++; +-- +2.9.4 + diff --git a/SOURCES/perl-5.27.1-perl-131679-Fix-our-sub-foo-bar-message.patch b/SOURCES/perl-5.27.1-perl-131679-Fix-our-sub-foo-bar-message.patch new file mode 100644 index 0000000..e9b9bf4 --- /dev/null +++ b/SOURCES/perl-5.27.1-perl-131679-Fix-our-sub-foo-bar-message.patch @@ -0,0 +1,51 @@ +From b9a58d500dd75ba783abac92a56e57d41227f62b Mon Sep 17 00:00:00 2001 +From: Father Chrysostomos +Date: Sun, 2 Jul 2017 11:35:20 -0700 +Subject: [PATCH] =?UTF-8?q?[perl=20#131679]=20Fix=20=E2=80=98our=20sub=20f?= + =?UTF-8?q?oo::bar=E2=80=99=20message?= +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +It should say subroutine, not variable. + +Signed-off-by: Petr Písař +--- + t/lib/croak/toke | 6 ++++++ + toke.c | 3 ++- + 2 files changed, 8 insertions(+), 1 deletion(-) + +diff --git a/t/lib/croak/toke b/t/lib/croak/toke +index 7aa15ef..2603224 100644 +--- a/t/lib/croak/toke ++++ b/t/lib/croak/toke +@@ -133,6 +133,12 @@ state sub; + EXPECT + Missing name in "state sub" at - line 2. + ######## ++# NAME our sub pack::foo ++our sub foo::bar; ++EXPECT ++No package name allowed for subroutine &foo::bar in "our" at - line 1, near "our sub foo::bar" ++Execution of - aborted due to compilation errors. ++######## + # NAME my sub pack::foo + use feature 'lexical_subs', 'state'; + my sub foo::bar; +diff --git a/toke.c b/toke.c +index ace92e3..6aa5f26 100644 +--- a/toke.c ++++ b/toke.c +@@ -8848,7 +8848,8 @@ S_pending_ident(pTHX) + if (PL_in_my == KEY_our) { /* "our" is merely analogous to "my" */ + if (has_colon) + yyerror_pv(Perl_form(aTHX_ "No package name allowed for " +- "variable %s in \"our\"", ++ "%se %s in \"our\"", ++ *PL_tokenbuf=='&' ?"subroutin":"variabl", + PL_tokenbuf), UTF ? SVf_UTF8 : 0); + tmp = allocmy(PL_tokenbuf, tokenbuf_len, UTF ? SVf_UTF8 : 0); + } +-- +2.9.4 + diff --git a/SOURCES/perl-5.27.1-t-lib-warnings-utf8-Fix-test.patch b/SOURCES/perl-5.27.1-t-lib-warnings-utf8-Fix-test.patch new file mode 100644 index 0000000..d134a07 --- /dev/null +++ b/SOURCES/perl-5.27.1-t-lib-warnings-utf8-Fix-test.patch @@ -0,0 +1,30 @@ +From 97e57bec1f0ba4f0c3b1dc18ee146632010e3373 Mon Sep 17 00:00:00 2001 +From: Karl Williamson +Date: Sat, 15 Jul 2017 19:36:25 -0600 +Subject: [PATCH] t/lib/warnings/utf8: Fix test +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +There is some randomness to this test added to fix [perl #131646]. +Change what passes to be a pattern that matches the correct template + +Signed-off-by: Petr Písař +--- + t/lib/warnings/utf8 | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/t/lib/warnings/utf8 b/t/lib/warnings/utf8 +index 9066308..dfc58c1 100644 +--- a/t/lib/warnings/utf8 ++++ b/t/lib/warnings/utf8 +@@ -781,4 +781,5 @@ no warnings; + use warnings 'utf8'; + for(uc 0..t){0~~pack"UXc",exp} + EXPECT +-Malformed UTF-8 character: \xc2\x00 (unexpected non-continuation byte 0x00, immediately after start byte 0xc2; need 2 bytes, got 1) in smart match at - line 9. ++OPTIONS regex ++Malformed UTF-8 character: \\x([[:xdigit:]]{2})\\x([[:xdigit:]]{2}) \(unexpected non-continuation byte 0x\2, immediately after start byte 0x\1; need 2 bytes, got 1\) in smart match at - line 9. +-- +2.9.4 + diff --git a/SOURCES/perl-5.27.1-utf8n_to_uvchr-Don-t-display-too-many-bytes-in-msg.patch b/SOURCES/perl-5.27.1-utf8n_to_uvchr-Don-t-display-too-many-bytes-in-msg.patch new file mode 100644 index 0000000..1b7bd8b --- /dev/null +++ b/SOURCES/perl-5.27.1-utf8n_to_uvchr-Don-t-display-too-many-bytes-in-msg.patch @@ -0,0 +1,43 @@ +From 05b9033b464ce8dd2c9b33238f9aa14755d7a91a Mon Sep 17 00:00:00 2001 +From: Karl Williamson +Date: Sat, 17 Jun 2017 17:56:10 -0600 +Subject: [PATCH] utf8n_to_uvchr(): Don't display too many bytes in msg +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +When raising a message about malformed UTF-8, we shouldn't display bytes +from the next character, unless those bytes were expected to have been +part of the current one. Tests for this will be added in future commits +in ext/XS-APItest/t/utf8_warn_base.pl + +Signed-off-by: Petr Písař +--- + utf8.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/utf8.c b/utf8.c +index ee5405f..e55a6f1 100644 +--- a/utf8.c ++++ b/utf8.c +@@ -1428,7 +1428,7 @@ Perl_utf8n_to_uvchr_error(pTHX_ const U8 *s, + if (pack_warn) { + message = Perl_form(aTHX_ "%s: %s (overflows)", + malformed_text, +- _byte_dump_string(s0, send - s0, 0)); ++ _byte_dump_string(s0, curlen, 0)); + } + } + } +@@ -1554,7 +1554,7 @@ Perl_utf8n_to_uvchr_error(pTHX_ const U8 *s, + "%s: %s (overlong; instead use %s to represent" + " U+%0*" UVXf ")", + malformed_text, +- _byte_dump_string(s0, send - s0, 0), ++ _byte_dump_string(s0, curlen, 0), + _byte_dump_string(tmpbuf, e - tmpbuf, 0), + ((uv < 256) ? 2 : 4), /* Field width of 2 for + small code points */ +-- +2.9.4 + diff --git a/SOURCES/perl-5.27.2-Avoid-compiler-warnings-due-to-mismatched-types-in-p.patch b/SOURCES/perl-5.27.2-Avoid-compiler-warnings-due-to-mismatched-types-in-p.patch new file mode 100644 index 0000000..d5593b6 --- /dev/null +++ b/SOURCES/perl-5.27.2-Avoid-compiler-warnings-due-to-mismatched-types-in-p.patch @@ -0,0 +1,45 @@ +From 357c35e6f18e65f372e7a1b22ee39a3c7c9e5810 Mon Sep 17 00:00:00 2001 +From: Robin Barker +Date: Mon, 17 Dec 2012 18:20:14 +0100 +Subject: [PATCH] Avoid compiler warnings due to mismatched types in *printf + format strings. +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +gcc (and probably others) was warning about a mismatch for between `int` +(implied by the format %d) and the actual type passed, `line_t`. Avoid this +by explicitly casting to UV, and using UVuf. + +CPAN #63832 + +Signed-off-by: Petr Písař +--- + cpan/ExtUtils-Constant/lib/ExtUtils/Constant/ProxySubs.pm | 7 ++++--- + 1 file changed, 4 insertions(+), 3 deletions(-) + +diff --git a/cpan/ExtUtils-Constant/lib/ExtUtils/Constant/ProxySubs.pm b/cpan/ExtUtils-Constant/lib/ExtUtils/Constant/ProxySubs.pm +index 545d322..c7e6d05 100644 +--- a/cpan/ExtUtils-Constant/lib/ExtUtils/Constant/ProxySubs.pm ++++ b/cpan/ExtUtils-Constant/lib/ExtUtils/Constant/ProxySubs.pm +@@ -629,13 +629,14 @@ EOA + if ((C_ARRAY_LENGTH(values_for_notfound) > 1) + ? hv_exists_ent(${c_subname}_missing, sv, 0) : 0) { + sv = newSVpvf("Your vendor has not defined $package_sprintf_safe macro %" SVf +- ", used at %" COP_FILE_F " line %d\\n", sv, +- COP_FILE(cop), CopLINE(cop)); ++ ", used at %" COP_FILE_F " line %" UVuf "\\n", ++ sv, COP_FILE(cop), (UV)CopLINE(cop)); + } else + #endif + { + sv = newSVpvf("%"SVf" is not a valid $package_sprintf_safe macro at %" +- COP_FILE_F " line %d\\n", sv, COP_FILE(cop), CopLINE(cop)); ++ COP_FILE_F " line %" UVuf "\\n", ++ sv, COP_FILE(cop), (UV)CopLINE(cop)); + } + croak_sv(sv_2mortal(sv)); + EOC +-- +2.9.4 + diff --git a/SOURCES/perl-5.27.2-EU-Constant-avoid-uninit-warning.patch b/SOURCES/perl-5.27.2-EU-Constant-avoid-uninit-warning.patch new file mode 100644 index 0000000..e330518 --- /dev/null +++ b/SOURCES/perl-5.27.2-EU-Constant-avoid-uninit-warning.patch @@ -0,0 +1,69 @@ +From 389f3ef2fdfbba2c2816e7334a69a5f540c0a33d Mon Sep 17 00:00:00 2001 +From: David Mitchell +Date: Mon, 15 Dec 2014 16:14:13 +0000 +Subject: [PATCH] EU::Constant: avoid 'uninit' warning +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +The code generated by ExtUtils::Constant can look something like: + +static int +constant (..., IV *iv_return) { + switch (...) { + case ...: + *iv_return = ...; + return PERL_constant_ISIV; + ... + } +} + +{ + int type; + IV iv; + type = constant(..., &iv); + switch (type) { + case PERL_constant_ISIV: + PUSHi(iv); + ... + } +} + +and the compiler isn't clever enough to realise that the value of iv +is only used in the code path where its been set. + +So initialise it to zero to shut gcc up. Ditto nv and pv. + +Signed-off-by: Petr Písař +--- + cpan/ExtUtils-Constant/lib/ExtUtils/Constant.pm | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/cpan/ExtUtils-Constant/lib/ExtUtils/Constant.pm b/cpan/ExtUtils-Constant/lib/ExtUtils/Constant.pm +index 0dc9258..cf0e1ca 100644 +--- a/cpan/ExtUtils-Constant/lib/ExtUtils/Constant.pm ++++ b/cpan/ExtUtils-Constant/lib/ExtUtils/Constant.pm +@@ -198,17 +198,17 @@ $XS_subname(sv) + EOT + + if ($params->{IV}) { +- $xs .= " IV iv;\n"; ++ $xs .= " IV iv = 0; /* avoid uninit var warning */\n"; + } else { + $xs .= " /* IV\t\tiv;\tUncomment this if you need to return IVs */\n"; + } + if ($params->{NV}) { +- $xs .= " NV nv;\n"; ++ $xs .= " NV nv = 0.0; /* avoid uninit var warning */\n"; + } else { + $xs .= " /* NV\t\tnv;\tUncomment this if you need to return NVs */\n"; + } + if ($params->{PV}) { +- $xs .= " const char *pv;\n"; ++ $xs .= " const char *pv = NULL; /* avoid uninit var warning */\n"; + } else { + $xs .= + " /* const char\t*pv;\tUncomment this if you need to return PVs */\n"; +-- +2.9.4 + diff --git a/SOURCES/perl-5.8.0-libdir64.patch b/SOURCES/perl-5.8.0-libdir64.patch new file mode 100644 index 0000000..0ab67a0 --- /dev/null +++ b/SOURCES/perl-5.8.0-libdir64.patch @@ -0,0 +1,46 @@ +--- perl-5.8.0/Configure.orig 2002-09-09 11:31:19.000000000 -0400 ++++ perl-5.8.0/Configure 2002-09-09 11:40:37.000000000 -0400 +@@ -6458,8 +6458,8 @@ + : Reproduce behavior of 5.005 and earlier, maybe drop that in 5.7. + case "$installstyle" in + '') case "$prefix" in +- *perl*) dflt='lib';; +- *) dflt='lib/perl5' ;; ++ *perl*) dflt='lib64';; ++ *) dflt='lib64/perl5' ;; + esac + ;; + *) dflt="$installstyle" ;; +@@ -6475,8 +6475,8 @@ + : /opt/perl/lib/perl5... would be redundant. + : The default "style" setting is made in installstyle.U + case "$installstyle" in +-*lib/perl5*) set dflt privlib lib/$package/$version ;; +-*) set dflt privlib lib/$version ;; ++*lib64/perl5*) set dflt privlib lib64/$package/$version ;; ++*) set dflt privlib lib64/$version ;; + esac + eval $prefixit + $cat <_PRINT_PREREQ; +- } ++ } ++ ++ # USE_MM_LD_RUN_PATH - another RedHatism to disable automatic RPATH generation ++ if ( ( ! $self->{USE_MM_LD_RUN_PATH} ) ++ &&( ("@ARGV" =~ /\bUSE_MM_LD_RUN_PATH(=([01]))?\b/) ++ ||( exists( $ENV{USE_MM_LD_RUN_PATH} ) ++ &&( $ENV{USE_MM_LD_RUN_PATH} =~ /([01])?$/ ) ++ ) ++ ) ++ ) ++ { ++ my $v = $1; ++ if( $v ) ++ { ++ $v = ($v=~/=([01])$/)[0]; ++ }else ++ { ++ $v = 1; ++ }; ++ $self->{USE_MM_LD_RUN_PATH}=$v; ++ }; + + print "MakeMaker (v$VERSION)\n" if $Verbose; + if (-f "MANIFEST" && ! -f "Makefile" && ! $UNDER_CORE){ +@@ -2352,6 +2372,40 @@ precedence. A typemap in the current di + precedence, even if it isn't listed in TYPEMAPS. The default system + typemap has lowest precedence. + ++=item USE_MM_LD_RUN_PATH ++ ++boolean ++The Fedora perl MakeMaker distribution differs from the standard ++upstream release in that it disables use of the MakeMaker generated ++LD_RUN_PATH by default, UNLESS this attribute is specified , or the ++USE_MM_LD_RUN_PATH environment variable is set during the MakeMaker run. ++ ++The upstream MakeMaker will set the ld(1) environment variable LD_RUN_PATH ++to the concatenation of every -L ld(1) option directory in which a -l ld(1) ++option library is found, which is used as the ld(1) -rpath option if none ++is specified. This means that, if your application builds shared libraries ++and your MakeMaker application links to them, that the absolute paths of the ++libraries in the build tree will be inserted into the RPATH header of all ++MakeMaker generated binaries, and that such binaries will be unable to link ++to these libraries if they do not still reside in the build tree directories ++(unlikely) or in the system library directories (/lib or /usr/lib), regardless ++of any LD_LIBRARY_PATH setting. So if you specified -L../mylib -lmylib , and ++ your 'libmylib.so' gets installed into /some_directory_other_than_usr_lib, ++ your MakeMaker application will be unable to link to it, even if LD_LIBRARY_PATH ++is set to include /some_directory_other_than_usr_lib, because RPATH overrides ++LD_LIBRARY_PATH. ++ ++So for Fedora MakeMaker builds LD_RUN_PATH is NOT generated by default for ++every link. You can still use explicit -rpath ld options or the LD_RUN_PATH ++environment variable during the build to generate an RPATH for the binaries. ++ ++You can set the USE_MM_LD_RUN_PATH attribute to 1 on the MakeMaker command ++line or in the WriteMakefile arguments to enable generation of LD_RUN_PATH ++for every link command. ++ ++USE_MM_LD_RUN_PATH will default to 1 (LD_RUN_PATH will be used) IF the ++$USE_MM_LD_RUN_PATH environment variable is set during a MakeMaker run. ++ + =item VENDORPREFIX + + Like PERLPREFIX, but only for the vendor install locations. +diff -up perl-5.14.0/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm.usem perl-5.14.0/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm +--- perl-5.14.0/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm.usem 2011-05-08 05:10:08.000000000 +0200 ++++ perl-5.14.0/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm 2011-05-17 11:14:22.172115972 +0200 +@@ -944,7 +944,7 @@ $(INST_DYNAMIC): $(OBJECT) $(MYEXTLIB) $ + } + + my $ld_run_path_shell = ""; +- if ($self->{LD_RUN_PATH} ne "") { ++ if (($self->{LD_RUN_PATH} ne "") && ($self->{USE_MM_LD_RUN_PATH})) { + $ld_run_path_shell = 'LD_RUN_PATH="$(LD_RUN_PATH)" '; + } + diff --git a/SOURCES/perl-example.stp b/SOURCES/perl-example.stp new file mode 100644 index 0000000..040f8e3 --- /dev/null +++ b/SOURCES/perl-example.stp @@ -0,0 +1,21 @@ +/* + Example of the perl systemtap tapset shows a nested view of perl subroutine + calls and returns across the whole system. + + To run: + stap perl-example.stp (for all perl processes) + For specific perl process: + stap perl-example.stp -c COMMAND +*/ + +probe perl.sub.call +{ + printf("%s => sub: %s, filename: %s, line: %d, package: %s\n", + thread_indent(1), sub, filename, lineno, package) +} + +probe perl.sub.return +{ + printf("%s <= sub: %s, filename: %s, line: %d, package: %s\n", + thread_indent(-1), sub, filename, lineno, package) +} diff --git a/SOURCES/perl-perlbug-tag.patch b/SOURCES/perl-perlbug-tag.patch new file mode 100644 index 0000000..0f96ab3 --- /dev/null +++ b/SOURCES/perl-perlbug-tag.patch @@ -0,0 +1,21 @@ +diff -up perl-5.16.0-RC2/utils/perlbug.PL.fedora perl-5.16.0-RC2/utils/perlbug.PL +--- perl-5.16.0-RC2/utils/perlbug.PL.fedora 2012-05-16 16:15:51.000000000 +0200 ++++ perl-5.16.0-RC2/utils/perlbug.PL 2012-05-16 16:18:36.018894464 +0200 +@@ -271,17 +271,6 @@ sub Init { + $ok = ''; + if ($opt{o}) { + if ($opt{o} eq 'k' or $opt{o} eq 'kay') { +- my $age = time - $patchlevel_date; +- if ($opt{o} eq 'k' and $age > 60 * 24 * 60 * 60 ) { +- my $date = localtime $patchlevel_date; +- print <<"EOF"; +-"perlbug -ok" and "perlbug -nok" do not report on Perl versions which +-are more than 60 days old. This Perl version was constructed on +-$date. If you really want to report this, use +-"perlbug -okay" or "perlbug -nokay". +-EOF +- exit(); +- } + # force these options + unless ($opt{n}) { + $opt{S} = 1; # don't prompt for send diff --git a/SOURCES/perl-scl-use-preload-each-time.patch b/SOURCES/perl-scl-use-preload-each-time.patch new file mode 100644 index 0000000..15da534 --- /dev/null +++ b/SOURCES/perl-scl-use-preload-each-time.patch @@ -0,0 +1,21 @@ +diff -up perl-5.20.1/Makefile.SH.orig perl-5.20.1/Makefile.SH +--- perl-5.20.1/Makefile.SH.orig 2015-01-08 09:03:23.371353023 +0100 ++++ perl-5.20.1/Makefile.SH 2015-01-08 09:04:06.110815452 +0100 +@@ -146,7 +146,7 @@ true) + # INSTALL file, under "Building a shared perl library". + # If there is no pre-existing $libperl, we don't need + # to do anything further. +- if test -f $archlib/CORE/$libperl; then ++ # if test -f $archlib/CORE/$libperl; then + rm -f preload + cat <<'EOT' > preload + #! /bin/sh +@@ -157,7 +157,7 @@ exec "$@" + EOT + chmod 755 preload + ldlibpth="$ldlibpth `pwd`/preload `pwd`/$libperl" +- fi ++ # fi + ;; + os390) test -f /bin/env && ldlibpth="/bin/env $ldlibpth" + ;; 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..77c5f09 --- /dev/null +++ b/SPECS/perl.spec @@ -0,0 +1,6669 @@ +%{?scl:%scl_package perl} + +%global perl_version 5.26.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 +# We can bootstrap without gdbm +%bcond_without gdbm +# Support for groff, bug #135101 +%bcond_without perl_enables_groff +# Run syslog tests +%bcond_with perl_enables_syslog_test +# SystemTap support +%bcond_without perl_enables_systemtap +# <> operator uses File::Glob nowadays. CSH is not needed. +%bcond_with perl_enables_tcsh +# We can skip %%check phase +%bcond_without test + +Name: %{?scl_prefix}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 Artisitc) and BSD +# dist/PathTools/Cwd.xs: (GPL+ or Artisitc) 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/Unicode-Collate/Collate/allkeys.txt: Unicode +# lib/unicore: UCD +# ext/SDBM_File/sdbm.{c,h}: Public domain +# regexec.c, regcomp.c: HSLR +# cpan/Locale-Maketext-Simple/lib/Locale/Maketext/Simple.pm: MIT (with +# exception for Perl) +# time64.c: MIT +# pod/perlpodstyle.pod: MIT +# pod/perlunicook.pod: (GPL+ or Artistic) and Public Domain +# pod/perlgpl.pod: GPL text +# pod/perlartistic.pod: Artistic text +# ext/File-Glob/bsd_glob.{c,h}: BSD +# Other files: GPL+ or Artistic +## Not is a binary package +# cpan/podlators/t/style/minimum-version.t MIT +# cpan/Term-ANSIColor/t/lib/Test/RRA/Config.pm: MIT +## Unbundled +# cpan/Compress-Raw-Bzip2/bzip2-src: BSD +# cpan/Compress-Raw-Zlib/zlib-src: zlib +## perl sub-package notice +# perluniprops.pod is generated from lib/unicore sources: UCD +# +# This sub-subpackage doesn't contain any copyrightable material. +# Nevertheless, it needs a License tag, so we'll use the generic +# "perl" license. +License: GPL+ or Artistic +Epoch: %{perl_epoch} +Version: %{perl_version} +# release number must be even higher, because dual-lived modules will be broken otherwise +Release: 404%{?dist} +Summary: Practical Extraction and Report Language +Url: http://www.perl.org/ +Source0: http://www.cpan.org/src/5.0/perl-%{perl_version}.tar.bz2 +Source3: macros.perl +#Systemtap tapset and example that make use of systemtap-sdt-devel +# build requirement. Written by lberk; Not yet upstream. +Source4: perl.stp +Source5: perl-example.stp +# Tom Christiansen confirms Pod::Html uses the same license as perl +Source6: Pod-Html-license-clarification + +# Pregenerated dependencies for bootstrap. +# If your RPM tool fails on including the source file, then you forgot to +# define _sourcedir macro to point to the directory with the sources. +Source7: gendep.macros +%if %{defined perl_bootstrap} +%include %{SOURCE7} +%endif + +# Removes date check, Fedora/RHEL specific +Patch1: perl-perlbug-tag.patch + +# Fedora/RHEL only (64bit only) +Patch3: perl-5.8.0-libdir64.patch + +# Fedora/RHEL specific (use libresolv instead of libbind), bug #151127 +Patch4: perl-5.10.0-libresolv.patch + +# FIXME: May need the "Fedora" references removed before upstreaming +# patches ExtUtils-MakeMaker +Patch5: perl-USE_MM_LD_RUN_PATH.patch + +# Provide maybe_command independently, bug #1129443 +Patch6: perl-5.22.1-Provide-ExtUtils-MM-methods-as-standalone-ExtUtils-M.patch + +# The Fedora builders started randomly failing this futime test +# only on x86_64, so we just don't run it. Works fine on normal +# systems. +Patch7: perl-5.10.0-x86_64-io-test-failure.patch + +# switch off test, which is failing only on koji (fork) +Patch8: perl-5.14.1-offtest.patch + +# Define SONAME for libperl.so +Patch15: perl-5.16.3-create_libperl_soname.patch + +# Install libperl.so to -Dshrpdir value +Patch16: perl-5.22.0-Install-libperl.so-to-shrpdir-on-Linux.patch + +# Document Math::BigInt::CalcEmu requires Math::BigInt, rhbz#959096, +# CPAN RT#85015 +Patch22: perl-5.18.1-Document-Math-BigInt-CalcEmu-requires-Math-BigInt.patch + +# Make *DBM_File desctructors thread-safe, bug #1107543, RT#61912 +Patch26: perl-5.18.2-Destroy-GDBM-NDBM-ODBM-SDBM-_File-objects-only-from-.patch + +# Replace ExtUtils::MakeMaker dependency with ExtUtils::MM::Utils. +# This allows not to require perl-devel. Bug #1129443 +Patch30: perl-5.22.1-Replace-EU-MM-dependnecy-with-EU-MM-Utils-in-IPC-Cmd.patch + +# Make File::Glob more resistant against degenerative matching, RT#131211, +# in upstream after 5.27.0 +Patch31: perl-5.27.0-perl-131211-fixup-File-Glob-degenerate-matching.patch + +# Fix cloning :via handles on thread creation, RT#131221, +# in upstream after 5.27.0 +Patch34: perl-5.27.0-perl-131221-improve-duplication-of-via-handles.patch +Patch35: perl-5.27.0-perl-131221-sv_dup-sv_dup_inc-are-only-available-und.patch + +# Fix glob UTF-8 flag on a glob reassignment, RT#131263, +# in upstream after 5.27.0 +Patch36: perl-5.26.0-perl-131263-clear-the-UTF8-flag-on-a-glob-if-it-isn-.patch + +# Fix handling backslashes in PATH environment variable when executing +# "perl -S", RT#129183, in upstream after 5.27.0 +Patch38: perl-5.27.0-perl-129183-don-t-treat-as-an-escape-in-PATH-for-S.patch + +# Fix reporting malformed UTF-8 character, RT#131646, in upstream after 5.27.1 +Patch43: perl-5.27.1-t-lib-warnings-utf8-Fix-test.patch + +# Fix File::Glob rt131211.t test random failures, in upstream after 5.27.1 +Patch45: perl-5.27.1-File-Glob-tweak-rt131211.t-to-be-less-sensitive-on-w.patch + +# Fix t/op/hash.t test random failures, in upstream after 5.27.1 +Patch46: perl-5.26.0-t-op-hash.t-fixup-intermittently-failing-test.patch + +# Parse caret variables with subscripts as normal variables inside ${...} +# escaping, RT#131664, in upstream after 5.27.1 +Patch47: perl-5.27.1-Parse-caret-vars-with-subscripts-the-same-as-normal-.patch +Patch48: perl-5.27.1-add-an-additional-test-for-whitespace-tolerance-in-c.patch + +# Do not display too many bytes when reporting malformed UTF-8 character, +# in upstream after 5.27.1 +Patch49: perl-5.27.1-utf8n_to_uvchr-Don-t-display-too-many-bytes-in-msg.patch + +# Fix error message for "our sub foo::bar", RT#131679, in upstream after 5.27.1 +Patch51: perl-5.27.1-perl-131679-Fix-our-sub-foo-bar-message.patch + +# Fix executing arybase::_tie_it() in Safe compartement, RT#131588, +# not yet accepted by upstream +Patch52: perl-5.26.0-perl-131588-be-a-little-more-careful-in-arybase-_tie.patch + +# Fix splitting non-ASCII strings if unicode_strings feature is enabled, +# RT#130907 in upstream after 5.27.1 +Patch54: perl-5.27.1-RT-130907-Fix-the-Unicode-Bug-in-split.patch + +# Fix compiler warnings in code generated by ExtUtils::Constant, CPAN RT#63832, +# in upstream after 5.27.2 +Patch55: perl-5.27.2-Avoid-compiler-warnings-due-to-mismatched-types-in-p.patch + +# Fix compiler warnings in code generated by ExtUtils::Constant, CPAN RT#101487, +# in upstream after 5.27.2 +Patch56: perl-5.27.2-EU-Constant-avoid-uninit-warning.patch + +# Fix unreliable Time-HiRes tests, CPAN RT#122819, in Time-HiRes-1.9746 +Patch58: perl-5.26.0-Time-HiRes-Fix-unreliable-t-usleep.t-and-t-utime.t.patch + +# Fix CVE-2018-6798 (heap read overflow in regexec.c), bug #1561100, RT#132063, +# in upstream after 5.26.1 +Patch59: perl-5.26.1-perl-132063-Heap-buffer-overflow.patch +Patch60: perl-5.26.1-fix-TRIE_READ_CHAR-and-DECL_TRIE_TYPE-to-acco.patch +Patch61: perl-5.26.1-perl-132063-we-should-no-longer-warn-for-this-code.patch +Patch62: perl-5.26.1-utf8.c-Don-t-dump-malformation-past-first-NUL.patch + +# Fix CVE-2018-6797 (heap write overflow in regcomp.c), bug #1561100, RT#132227, +# in upstream after 5.26.1 +Patch63: perl-5.26.1-perl-132227-restart-a-node-if-we-change-to-uni-rules.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 + +# SCL specific patches +# Fix perlvar pod rhbz#957079 +Patch300: perl-5.16.3-perlvar-pod.patch + +# Patch makefile to create preload for each build +Patch301: perl-scl-use-preload-each-time.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: %{?scl_prefix}perl-interpreter +BuildRequires: %{?scl_prefix}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 +%{?scl:BuildRequires: %{scl}-runtime} +%{?scl:BuildRequires: %{scl}-build} + +# For tests +%if %{with test} +BuildRequires: procps +%if %{with perl_enables_syslog_test} +BuildRequires: rsyslog +%endif +%endif + + +# compat macro needed for rebuild +%global perl_compat %{?scl_prefix}perl(:MODULE_COMPAT_5.26.1) + +Requires: %perl_compat +Requires: %{?scl_prefix}perl-interpreter%{?_isa} = %{perl_epoch}:%{perl_version}-%{release} +Requires: %{?scl_prefix}perl-libs%{?_isa} = %{perl_epoch}:%{perl_version}-%{release} +Requires: %{?scl_prefix}perl-devel%{?_isa} = %{perl_epoch}:%{perl_version}-%{release} +Requires: %{?scl_prefix}perl-macros +Requires: %{?scl_prefix}perl-utils +%if %{defined perl_bootstrap} +%gendep_perl +%endif + +Requires: %{?scl_prefix}perl-Archive-Tar, %{?scl_prefix}perl-Attribute-Handlers, %{?scl_prefix}perl-autodie, +Requires: %{?scl_prefix}perl-B-Debug, %{?scl_prefix}perl-bignum +Requires: %{?scl_prefix}perl-Compress-Raw-Bzip2, +Requires: %{?scl_prefix}perl-Carp, %{?scl_prefix}perl-Compress-Raw-Zlib, %{?scl_prefix}perl-Config-Perl-V, +Requires: %{?scl_prefix}perl-constant, +Requires: %{?scl_prefix}perl-CPAN, %{?scl_prefix}perl-CPAN-Meta, %{?scl_prefix}perl-CPAN-Meta-Requirements, +Requires: %{?scl_prefix}perl-CPAN-Meta-YAML, %{?scl_prefix}perl-Encode, %{?scl_prefix}perl-encoding +Requires: %{?scl_prefix}perl-Data-Dumper, %{?scl_prefix}perl-DB_File, +Requires: %{?scl_prefix}perl-Devel-Peek, %{?scl_prefix}perl-Devel-PPPort, %{?scl_prefix}perl-Devel-SelfStubber, +Requires: %{?scl_prefix}perl-Digest, %{?scl_prefix}perl-Digest-MD5, +Requires: %{?scl_prefix}perl-Digest-SHA, +Requires: %{?scl_prefix}perl-Env, %{?scl_prefix}perl-Errno, %{?scl_prefix}perl-Exporter, %{?scl_prefix}perl-experimental +Requires: %{?scl_prefix}perl-ExtUtils-CBuilder, %{?scl_prefix}perl-ExtUtils-Command, +Requires: %{?scl_prefix}perl-ExtUtils-Embed, +Requires: %{?scl_prefix}perl-ExtUtils-Install, %{?scl_prefix}perl-ExtUtils-MakeMaker +Requires: %{?scl_prefix}perl-ExtUtils-Manifest, %{?scl_prefix}perl-ExtUtils-Miniperl +Requires: %{?scl_prefix}perl-ExtUtils-ParseXS, %{?scl_prefix}perl-File-Fetch +Requires: %{?scl_prefix}perl-File-Path, %{?scl_prefix}perl-File-Temp, %{?scl_prefix}perl-Filter, +Requires: %{?scl_prefix}perl-Filter-Simple, %{?scl_prefix}perl-Getopt-Long +Requires: %{?scl_prefix}perl-HTTP-Tiny, +Requires: %{?scl_prefix}perl-IO, %{?scl_prefix}perl-IO-Compress, %{?scl_prefix}perl-IO-Socket-IP +Requires: %{?scl_prefix}perl-IO-Zlib, %{?scl_prefix}perl-IPC-Cmd, %{?scl_prefix}perl-IPC-SysV, %{?scl_prefix}perl-JSON-PP +Requires: %{?scl_prefix}perl-libnet, %{?scl_prefix}perl-libnetcfg, +Requires: %{?scl_prefix}perl-Locale-Codes, %{?scl_prefix}perl-Locale-Maketext, +Requires: %{?scl_prefix}perl-Locale-Maketext-Simple +Requires: %{?scl_prefix}perl-Math-BigInt, %{?scl_prefix}perl-Math-BigInt-FastCalc, %{?scl_prefix}perl-Math-BigRat, +Requires: %{?scl_prefix}perl-Math-Complex, %{?scl_prefix}perl-Memoize, +Requires: %{?scl_prefix}perl-MIME-Base64, +Requires: %{?scl_prefix}perl-Module-CoreList, +Requires: %{?scl_prefix}perl-Module-CoreList-tools, %{?scl_prefix}perl-Module-Load +Requires: %{?scl_prefix}perl-Module-Load-Conditional, %{?scl_prefix}perl-Module-Loaded, +Requires: %{?scl_prefix}perl-Module-Metadata, %{?scl_prefix}perl-Net-Ping, +Requires: %{?scl_prefix}perl-open, %{?scl_prefix}perl-PathTools +Requires: %{?scl_prefix}perl-Params-Check +Requires: %{?scl_prefix}perl-perlfaq, +Requires: %{?scl_prefix}perl-PerlIO-via-QuotedPrint, %{?scl_prefix}perl-Perl-OSType +Requires: %{?scl_prefix}perl-Pod-Checker, %{?scl_prefix}perl-Pod-Escapes, %{?scl_prefix}perl-Pod-Html, +Requires: %{?scl_prefix}perl-Pod-Parser, %{?scl_prefix}perl-Pod-Perldoc, %{?scl_prefix}perl-Pod-Usage +Requires: %{?scl_prefix}perl-podlators, %{?scl_prefix}perl-Pod-Simple, %{?scl_prefix}perl-Scalar-List-Utils +Requires: %{?scl_prefix}perl-SelfLoader, %{?scl_prefix}perl-Socket, %{?scl_prefix}perl-Storable, %{?scl_prefix}perl-Sys-Syslog, +Requires: %{?scl_prefix}perl-Term-ANSIColor, %{?scl_prefix}perl-Term-Cap, +Requires: %{?scl_prefix}perl-Test, %{?scl_prefix}perl-Test-Harness, %{?scl_prefix}perl-Test-Simple +Requires: %{?scl_prefix}perl-Text-Balanced, %{?scl_prefix}perl-Text-ParseWords, %{?scl_prefix}perl-Text-Tabs+Wrap, +Requires: %{?scl_prefix}perl-Thread-Queue +Requires: %{?scl_prefix}perl-Time-HiRes +Requires: %{?scl_prefix}perl-Time-Local, %{?scl_prefix}perl-Time-Piece +Requires: %{?scl_prefix}perl-Unicode-Collate, %{?scl_prefix}perl-Unicode-Normalize, +Requires: %{?scl_prefix}perl-version, %{?scl_prefix}perl-threads, %{?scl_prefix}perl-threads-shared, %{?scl_prefix}perl-parent + +# Full EVR is for compatibility with systems that swapped perl and perl-core +# , +# bug #1464903. +Provides: %{?scl_prefix}perl-core = %{perl_version}-%{release} +Provides: %{?scl_prefix}perl-core%{?_isa} = %{perl_version}-%{release} +# perl was renamed to perl-interpreter and perl-core renamed to perl +Obsoletes: %{?scl_prefix}perl-core < 5.26.0-395 + + +%description +Perl is a high-level programming language with roots in C, sed, awk and shell +scripting. Perl is good at handling processes and files, and is especially +good at handling text. Perl's hallmarks are practicality and efficiency. +While it is used to do a lot of different things, Perl's most common +applications are system administration utilities and web programming. + +This is a metapackage with all the Perl bits and core modules that can be +found in the upstream tarball from perl.org. + +If you need only a specific feature, you can install a specific package +instead. E.g. to handle Perl scripts with %{_bindir}/perl interpreter, +install perl-interpreter package. See perl-interpreter description for more +details on the Perl decomposition into packages. + + +%package interpreter +Summary: Standalone executable Perl interpreter +License: (GPL+ or Artistic) and (GPLv2+ or Artistic) and BSD and Public Domain and UCD +# perl-interpreter denotes a package with the perl executable. +# Full EVR is for compatibility with systems that swapped perl and perl-core +# , +# bug #1464903. +Version: %{perl_version} +Epoch: %{perl_epoch} + +Requires: %{?scl_prefix}perl-libs%{?_isa} = %{perl_epoch}:%{perl_version}-%{release} +# Require this till perl-interpreter sub-package provides any modules +Requires: %perl_compat +%if %{defined perl_bootstrap} +%gendep_perl_interpreter +%endif + +# We need this to break the dependency loop, and ensure that perl-libs +# gets installed before perl-interpreter. +Requires(post): %{?scl_prefix}perl-libs +# Same as perl-libs. We need macros in basic buildroot, where Perl is only +# because of git. +Requires(post): %{?scl_prefix}perl-macros + +# File provides +Provides: %{?scl_prefix}perl(bytes_heavy.pl) +Provides: %{?scl_prefix}perl(dumpvar.pl) +Provides: %{?scl_prefix}perl(perl5db.pl) + +# suidperl isn't created by upstream since 5.12.0 +Obsoletes: %{?scl_prefix}perl-suidperl <= 4:5.12.2 +# perl was renamed to perl-interpreter and perl-core renamed to perl +# , +# bug #1464903. +Obsoletes: %{?scl_prefix}perl < 4:5.26.0-395 + + +%description interpreter +This is a Perl interpreter as a standalone executable %{_bindir}/perl +required for handling Perl scripts. It does not provide all the other Perl +modules or tools. + +Install this package if you want to program in Perl or enable your system to +handle Perl scripts with %{_bindir}/perl interpreter. + +If your script requires some Perl modules, you can install them with +"perl(MODULE)" where "MODULE" is a name of required module. E.g. install +"perl(Test::More)" to make Test::More Perl module available. + +If you need all the Perl modules that come with upstream Perl sources, so +called core modules, install perl package. + +If you only need perl run-time as a shared library, i.e. Perl interpreter +embedded into another application, the only essential package is perl-libs. + +Perl header files can be found in perl-devel package. + +Perl utils like "splain" or "perlbug" can be found in perl-utils package. + + +%package libs +Summary: The libraries for the perl run-time +License: (GPL+ or Artistic) and HSLR and MIT and UCD +# Compat provides +Provides: %perl_compat +Provides: %{?scl_prefix}perl(:MODULE_COMPAT_5.26.0) +# Interpreter version to fulfil required genersted from "require 5.006;" +Provides: %{?scl_prefix}perl(:VERSION) = %{perl_version} +# Integeres are 64-bit on all platforms +Provides: %{?scl_prefix}perl(:WITH_64BIT) +# Threading provides +Provides: %{?scl_prefix}perl(:WITH_ITHREADS) +Provides: %{?scl_prefix}perl(:WITH_THREADS) +# Largefile provides +Provides: %{?scl_prefix}perl(:WITH_LARGEFILES) +# PerlIO provides +Provides: %{?scl_prefix}perl(:WITH_PERLIO) +# Loaded by charnames, unicore/Name.pm does not declare unicore::Name module +Provides: %{?scl_prefix}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: %{?scl_prefix}perl(utf8_heavy.pl) +# utf8 and utf8_heavy.pl require Carp, re, strict, warnings, XSLoader +Requires: %{?scl_prefix}perl(Carp) +Requires: %{?scl_prefix}perl(Exporter) +# Term::Cap is optional +Requires: %{?scl_prefix}perl(XSLoader) +%if %{defined perl_bootstrap} +%gendep_perl_libs +%endif +%{?scl:Requires: %{scl_name}-runtime} + +# 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|}^%{?scl_prefix}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: %{?scl_prefix}perl(ExtUtils::ParseXS) +Requires: %perl_compat +# Match library and header files when downgrading releases +Requires: %{?scl_prefix}perl-libs%{?_isa} = %{perl_epoch}:%{perl_version}-%{release} +%if %{defined perl_bootstrap} +%gendep_perl_devel +%endif + +%description devel +This package contains header files and development modules. +Most perl packages will need to install perl-devel to build. + + +%package macros +Summary: Macros for rpmbuild +License: GPL+ or Artistic +Requires: %perl_compat +%if %{defined perl_bootstrap} +%gendep_perl_macros +%endif + +%description macros +Macros for rpmbuild are needed during build of srpm in koji. This +sub-package must be installed into buildroot, so it will be needed +by perl. Perl is needed because of git. + + +%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: %{?scl_prefix}perl +%if %{defined perl_bootstrap} +%gendep_perl_tests +%endif + +%description tests +This package contains the test suite included with Perl %{perl_version}. + +Install this if you want to test your Perl installation (binary and core +modules). + + +%package utils +Summary: Utilities packaged with the Perl distribution +License: GPL+ or Artistic +Epoch: 0 +Version: %{perl_version} +BuildArch: noarch +# Match library exactly for splain messages +Requires: %{?scl_prefix}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: %{?scl_prefix}perl < 4:5.22.0-351 + +%description utils +Several utilities which come with Perl distribution like h2ph, perlbug, +perlthanks, pl2pm, and splain. Some utilities are provided by more specific +packages like perldoc by perl-Pod-Perldoc. + + +%if %{dual_life} || %{rebuild_from_scratch} +%package Archive-Tar +Summary: A module for Perl manipulation of .tar files +License: GPL+ or Artistic +Epoch: 0 +Version: 2.24 +BuildArch: noarch +Requires: %perl_compat +Requires: %{?scl_prefix}perl(IO::Zlib) >= 1.01 +# Optional run-time: +Requires: %{?scl_prefix}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: %{?scl_prefix}perl(IO::Uncompress::Bunzip2) >= 2.015 +%if !%{defined perl_bootstrap} +Requires: %{?scl_prefix}perl(Text::Diff) +%endif +%if %{defined perl_bootstrap} +%gendep_perl_Archive_Tar +%endif + +%description Archive-Tar +Archive::Tar provides an object oriented mechanism for handling tar files. It +provides class methods for quick and easy files handling while also allowing +for the creation of tar file objects for custom manipulation. If you have the +IO::Zlib module installed, Archive::Tar will also support compressed or +gzipped tar files. +%endif + +%package Attribute-Handlers +Summary: Simpler definition of attribute handlers +License: GPL+ or Artistic +Epoch: 0 +Version: 0.99 +BuildArch: noarch +Requires: %perl_compat +%if %{defined perl_bootstrap} +%gendep_perl_Attribute_Handlers +%endif +Conflicts: %{?scl_prefix}perl < 4:5.22.0-351 + +%description Attribute-Handlers +This Perl module, when inherited by a package, allows that package's class to +define attribute handler subroutines for specific attributes. Variables and +subroutines subsequently defined in that package, or in packages derived from +that package may be given attributes with the same names as the attribute +handler subroutines, which will then be called in one of the compilation +phases (i.e. in a "BEGIN", "CHECK", "INIT", or "END" block). + +%if %{dual_life} || %{rebuild_from_scratch} +%package autodie +Summary: Replace functions with ones that succeed or die +License: GPL+ or Artistic +Epoch: 0 +Version: 2.29 +Requires: %perl_compat +BuildArch: noarch +Requires: %{?scl_prefix}perl(B) +Requires: %{?scl_prefix}perl(Fcntl) +Requires: %{?scl_prefix}perl(overload) +Requires: %{?scl_prefix}perl(POSIX) +%if %{defined perl_bootstrap} +%gendep_perl_autodie +%endif +Conflicts: %{?scl_prefix}perl < 4:5.16.2-259 + +%description autodie +The "autodie" and "Fatal" pragma provides a convenient way to replace +functions that normally return false on failure with equivalents that throw an +exception on failure. + +However "Fatal" has been obsoleted by the new autodie pragma. Please use +autodie in preference to "Fatal". +%endif + +%if %{dual_life} || %{rebuild_from_scratch} +%package B-Debug +Summary: Walk Perl syntax tree, print debug information about op-codes +License: GPL+ or Artistic +Epoch: 0 +Version: 1.24 +Requires: %perl_compat +BuildArch: noarch +%if %{defined perl_bootstrap} +%gendep_perl_B_Debug +%endif +Conflicts: %{?scl_prefix}perl < 4:5.20.1-310 + +%description B-Debug +Walk Perl syntax tree and print debug information about op-codes. See +B::Concise and B::Terse for other details. + +%package bignum +Summary: Transparent big number support for Perl +License: GPL+ or Artistic +Epoch: 0 +Version: 0.47 +Requires: %perl_compat +Requires: %{?scl_prefix}perl(Carp) +# Math::BigInt::Lite is optional +Requires: %{?scl_prefix}perl(Math::BigRat) +Requires: %{?scl_prefix}perl(warnings) +BuildArch: noarch +%if %{defined perl_bootstrap} +%gendep_perl_bignum +%endif +Conflicts: %{?scl_prefix}perl < 4:5.22.0-348 + +%description bignum +This package attempts to make it easier to write scripts that use BigInts and +BigFloats in a transparent way. + +%package Carp +Summary: Alternative warn and die for modules +Epoch: 0 +# Real version 1.42 +Version: 1.42 +License: GPL+ or Artistic +Requires: %perl_compat +Provides: %{?scl_prefix}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|}^%{?scl_prefix}perl\\(Carp\\)\\s*$ + +%description Carp +The Carp routines are useful in your own modules because they act like +die() or warn(), but with a message which is more likely to be useful to a +user of your module. In the case of cluck, confess, and longmess that +context is a summary of every call in the call-stack. For a shorter message +you can use carp or croak which report the error as being from where your +module was called. There is no guarantee that that is where the error was, +but it is a good educated guess. +%endif + +%if %{dual_life} || %{rebuild_from_scratch} +%package Compress-Raw-Bzip2 +Summary: Low-Level Interface to bzip2 compression library +License: GPL+ or Artistic +Epoch: 0 +Version: 2.074 +Requires: %{?scl_prefix}perl(Exporter), %{?scl_prefix}perl(File::Temp) +%if %{defined perl_bootstrap} +%gendep_perl_Compress_Raw_Bzip2 +%endif + +%description Compress-Raw-Bzip2 +This module provides a Perl interface to the bzip2 compression library. +It is used by IO::Compress::Bzip2. + +%package Compress-Raw-Zlib +Summary: Low-Level Interface to the zlib compression library +License: (GPL+ or Artistic) and zlib +Epoch: 0 +Version: 2.074 +Requires: %perl_compat +%if %{defined perl_bootstrap} +%gendep_perl_Compress_Raw_Zlib +%endif + +%description Compress-Raw-Zlib +This module provides a Perl interface to the zlib compression library. +It is used by IO::Compress::Zlib. +%endif + +%if %{dual_life} || %{rebuild_from_scratch} +%package Config-Perl-V +Summary: Structured data retrieval of perl -V output +License: GPL+ or Artistic +Epoch: 0 +Version: 0.28 +Requires: %perl_compat +%if %{defined perl_bootstrap} +%gendep_perl_Config_Perl_V +%endif +BuildArch: noarch +Conflicts: %{?scl_prefix}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: %{?scl_prefix}perl(Carp) +%if %{defined perl_bootstrap} +%gendep_perl_constant +%endif +BuildArch: noarch +Conflicts: %{?scl_prefix}perl < 4:5.16.3-264 + +%description constant +This pragma allows you to declare constants at compile-time: + +use constant PI => 4 * atan2(1, 1); + +When you declare a constant such as "PI" using the method shown above, +each machine your script runs upon can have as many digits of accuracy +as it can use. Also, your program will be easier to read, more likely +to be maintained (and maintained correctly), and far less likely to +send a space probe to the wrong planet because nobody noticed the one +equation in which you wrote 3.14195. + +When a constant is used in an expression, Perl replaces it with its +value at compile time, and may then optimize the expression further. +In particular, any code in an "if (CONSTANT)" block will be optimized +away if the constant is false. +%endif + +%if %{dual_life} || %{rebuild_from_scratch} +%package CPAN +Summary: Query, download and build perl modules from CPAN sites +License: GPL+ or Artistic +Epoch: 0 +Version: 2.18 +Requires: make +# Prefer Archive::Tar and Compress::Zlib over tar and gzip +Requires: %{?scl_prefix}perl(Archive::Tar) >= 1.50 +Requires: %{?scl_prefix}perl(base) +Requires: %{?scl_prefix}perl(Data::Dumper) +%if !%{defined perl_bootstrap} +Requires: %{?scl_prefix}perl(Devel::Size) +%endif +Requires: %{?scl_prefix}perl(ExtUtils::Manifest) +%if !%{defined perl_bootstrap} +Requires: %{?scl_prefix}perl(File::HomeDir) >= 0.65 +%endif +Requires: %{?scl_prefix}perl(File::Temp) >= 0.16 +Requires: %{?scl_prefix}perl(lib) +Requires: %{?scl_prefix}perl(Net::Config) +Requires: %{?scl_prefix}perl(Net::FTP) +Requires: %{?scl_prefix}perl(POSIX) +Requires: %{?scl_prefix}perl(Term::ReadLine) +%if !%{defined perl_bootstrap} +Requires: %{?scl_prefix}perl(URI) +Requires: %{?scl_prefix}perl(URI::Escape) +%endif +Requires: %{?scl_prefix}perl(User::pwent) +# Optional but higly recommended: +%if !%{defined perl_bootstrap} +Requires: %{?scl_prefix}perl(Archive::Zip) +Requires: %{?scl_prefix}perl(Compress::Bzip2) +Requires: %{?scl_prefix}perl(CPAN::Meta) >= 2.110350 +%endif +Requires: %{?scl_prefix}perl(Compress::Zlib) +Requires: %{?scl_prefix}perl(Digest::MD5) +# CPAN encourages Digest::SHA strongly because of integrity checks +Requires: %{?scl_prefix}perl(Digest::SHA) +Requires: %{?scl_prefix}perl(Dumpvalue) +Requires: %{?scl_prefix}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: %{?scl_prefix}perl(local::lib) +Requires: %{?scl_prefix}perl(Module::Build) +Requires: %{?scl_prefix}perl(Text::Glob) +%endif +Requires: %perl_compat +Provides: %{?scl_prefix}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: %{?scl_prefix}perl(CPAN::Meta::YAML) >= 0.011 +Requires: %{?scl_prefix}perl(Encode) +Requires: %{?scl_prefix}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|}^%{?scl_prefix}perl\\(CPAN::Meta::Requirements\\) +Provides: %{?scl_prefix}perl(CPAN::Meta::Requirements) = %{version}000 +%if %{defined perl_bootstrap} +%gendep_perl_CPAN_Meta_Requirements +%endif + +%description CPAN-Meta-Requirements +A CPAN::Meta::Requirements object models a set of version constraints like +those specified in the META.yml or META.json files in CPAN distributions. +It can be built up by adding more and more constraints, and it will reduce +them to the simplest representation. +%endif + +%if %{dual_life} || %{rebuild_from_scratch} +%package CPAN-Meta-YAML +Version: 0.018 +Epoch: 0 +Summary: Read and write a subset of YAML for CPAN Meta files +License: GPL+ or Artistic +BuildArch: noarch +Requires: %perl_compat +%if %{defined perl_bootstrap} +%gendep_perl_CPAN_Meta_YAML +%endif + +%description CPAN-Meta-YAML +This module implements a subset of the YAML specification for use in reading +and writing CPAN metadata files like META.yml and MYMETA.yml. It should not be +used for any other general YAML parsing or generation task. +%endif + + +%if %{dual_life} || %{rebuild_from_scratch} +%package Data-Dumper +Summary: Stringify perl data structures, suitable for printing and eval +License: GPL+ or Artistic +Epoch: 0 +Version: 2.167 +Requires: %perl_compat +Requires: %{?scl_prefix}perl(Scalar::Util) +Requires: %{?scl_prefix}perl(XSLoader) +%if %{defined perl_bootstrap} +%gendep_perl_Data_Dumper +%endif + +%description Data-Dumper +Given a list of scalars or reference variables, writes out their contents +in perl syntax. The references can also be objects. The content of each +variable is output in a single Perl statement. Handles self-referential +structures correctly. +%endif + +%if %{dual_life} || %{rebuild_from_scratch} +%package DB_File +Summary: Perl5 access to Berkeley DB version 1.x +License: GPL+ or Artistic +Epoch: 0 +Version: 1.840 +Requires: %perl_compat +Requires: %{?scl_prefix}perl(Fcntl) +Requires: %{?scl_prefix}perl(XSLoader) +%if %{defined perl_bootstrap} +%gendep_perl_DB_File +%endif +Conflicts: %{?scl_prefix}perl < 4:5.16.3-264 + +%description DB_File +DB_File is a module which allows Perl programs to make use of the facilities +provided by Berkeley DB version 1.x (if you have a newer version of DB, you +will be limited to functionality provided by interface of version 1.x). The +interface defined here mirrors the Berkeley DB interface closely. +%endif + +%package Devel-Peek +Summary: A data debugging tool for the XS programmer +License: GPL+ or Artistic +Epoch: 0 +Version: 1.26 +Requires: %perl_compat +%if %{defined perl_bootstrap} +%gendep_perl_Devel_Peek +%endif +Conflicts: %{?scl_prefix}perl < 4:5.22.0-351 + +%description Devel-Peek +Devel::Peek contains functions which allows raw Perl datatypes to be +manipulated from a Perl script. This is used by those who do XS programming to +check that the data they are sending from C to Perl looks as they think it +should look. + +%if %{dual_life} || %{rebuild_from_scratch} +%package Devel-PPPort +Summary: Perl Pollution Portability header generator +License: GPL+ or Artistic +Epoch: 0 +Version: 3.35 +Requires: %perl_compat +%if %{defined perl_bootstrap} +%gendep_perl_Devel_PPPort +%endif +Conflicts: %{?scl_prefix}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: %{?scl_prefix}perl < 4:5.22.0-351 + +%description Devel-SelfStubber +Devel::SelfStubber prints the stubs you need to put in the module before the +__DATA__ token (or you can get it to print the entire module with stubs +correctly placed). The stubs ensure that if a method is called, it will get +loaded. They are needed specifically for inherited autoloaded methods. + +%if %{dual_life} || %{rebuild_from_scratch} +%package Digest +Summary: Modules that calculate message digests +License: GPL+ or Artistic +# Epoch bump for clean upgrade over old standalone package +Epoch: 0 +Version: 1.17 +BuildArch: noarch +Requires: %perl_compat +Requires: %{?scl_prefix}perl(MIME::Base64) +%if %{defined perl_bootstrap} +%gendep_perl_Digest +%endif + +%description Digest +The Digest:: modules calculate digests, also called "fingerprints" or +"hashes", of some data, called a message. The digest is (usually) +some small/fixed size string. The actual size of the digest depend of +the algorithm used. The message is simply a sequence of arbitrary +bytes or bits. +%endif + +%if %{dual_life} || %{rebuild_from_scratch} +%package Digest-MD5 +Summary: Perl interface to the MD5 Algorithm +License: (GPL+ or Artistic) and BSD +# Epoch bump for clean upgrade over old standalone package +Epoch: 0 +Version: 2.55 +Requires: %perl_compat +Requires: %{?scl_prefix}perl(XSLoader) +# Recommended +Requires: %{?scl_prefix}perl(Digest::base) >= 1.00 +%if %{defined perl_bootstrap} +%gendep_perl_Digest_MD5 +%endif + +%description Digest-MD5 +The Digest::MD5 module allows you to use the RSA Data Security Inc. MD5 +Message Digest algorithm from within Perl programs. The algorithm takes as +input a message of arbitrary length and produces as output a 128-bit +"fingerprint" or "message digest" of the input. +%endif + +%if %{dual_life} || %{rebuild_from_scratch} +%package Digest-SHA +Summary: Perl extension for SHA-1/224/256/384/512 +License: GPL+ or Artistic +# Epoch bump for clean upgrade over old standalone package +Epoch: 1 +Version: 5.96 +Requires: %perl_compat +Requires: %{?scl_prefix}perl(Carp) +# Recommended +Requires: %{?scl_prefix}perl(Digest::base) +%if %{defined perl_bootstrap} +%gendep_perl_Digest_SHA +%endif + +%description Digest-SHA +Digest::SHA is a complete implementation of the NIST Secure Hash +Standard. It gives Perl programmers a convenient way to calculate +SHA-1, SHA-224, SHA-256, SHA-384, and SHA-512 message digests. The +module can handle all types of input, including partial-byte data. +%endif + +%if %{dual_life} || %{rebuild_from_scratch} +%package Encode +Summary: Character encodings in Perl +License: (GPL+ or Artistic) and Artistic 2.0 and UCD +Epoch: 4 +Version: 2.88 +Requires: %perl_compat +%if %{defined perl_bootstrap} +%gendep_perl_Encode +%endif +Conflicts: %{?scl_prefix}perl < 4:5.16.2-256 + +%description Encode +The Encode module provides the interface between Perl strings and the rest +of the system. Perl strings are sequences of characters. + +%package encoding +Summary: Write your Perl script in non-ASCII or non-UTF-8 +License: GPL+ or Artistic +Epoch: 4 +Version: 2.19 +# Keeping this sub-package arch-specific because it installs files into +# arch-specific directories. +Requires: %perl_compat +Requires: %{?scl_prefix}perl(Carp) +# Config not needed on perl ≥ 5.008 +# Consider Filter::Util::Call as mandatory, bug #1165183, CPAN RT#100427 +Requires: %{?scl_prefix}perl(Filter::Util::Call) +# I18N::Langinfo is optional +# PerlIO::encoding is optional +Requires: %{?scl_prefix}perl(utf8) +%if %{defined perl_bootstrap} +%gendep_perl_encoding +%endif +Conflicts: %{?scl_prefix}perl-Encode < 2:2.60-314 + +%description encoding +With the encoding pragma, you can write your Perl script in any encoding you +like (so long as the Encode module supports it) and still enjoy Unicode +support. + +However, this encoding module is deprecated under perl 5.18. It uses +a mechanism provided by perl that is deprecated under 5.18 and higher, and may +be removed in a future version. + +The easiest and the best alternative is to write your script in UTF-8. + +%package Encode-devel +Summary: Character encodings in Perl +License: (GPL+ or Artistic) and UCD +Epoch: 4 +Version: 2.88 +Requires: %perl_compat +Requires: %{name}-Encode = %{epoch}:%{version}-%{release} +Requires: %{?scl_prefix}perl-devel +%if %{defined perl_bootstrap} +%gendep_perl_Encode_devel +%endif +BuildArch: noarch + +%description Encode-devel +enc2xs builds a Perl extension for use by Encode from either Unicode Character +Mapping files (.ucm) or Tcl Encoding Files (.enc). You can use enc2xs to add +your own encoding to perl. No knowledge of XS is necessary. +%endif + +%if %{dual_life} || %{rebuild_from_scratch} +%package Env +Summary: Perl module that imports environment variables as scalars or arrays +License: GPL+ or Artistic +Epoch: 0 +Version: 1.04 +Requires: %perl_compat +%if %{defined perl_bootstrap} +%gendep_perl_Env +%endif +BuildArch: noarch +Conflicts: %{?scl_prefix}perl < 4:5.16.2-265 + +%description Env +Perl maintains environment variables in a special hash named %%ENV. For when +this access method is inconvenient, the Perl module Env allows environment +variables to be treated as scalar or array variables. +%endif + +%package Errno +Summary: System errno constants +License: GPL+ or Artistic +Epoch: 0 +Version: 1.28 +Requires: %perl_compat +# Errno.pm bakes in kernel version at build time and compares it against +# $Config{osvers} at run time. Match exact interpreter build. Bug #1393421. +Requires: %{?scl_prefix}perl-libs%{?_isa} = %{perl_epoch}:%{perl_version}-%{release} +Requires: %{?scl_prefix}perl(Carp) +%if %{defined perl_bootstrap} +%gendep_perl_Errno +%endif +Conflicts: %{?scl_prefix}perl < 4:5.22.0-351 + +%description Errno +"Errno" defines and conditionally exports all the error constants defined in +your system "errno.h" include file. It has a single export tag, ":POSIX", +which will export all POSIX defined error numbers. + +%if %{dual_life} || %{rebuild_from_scratch} +%package experimental +Summary: Experimental features made easy +License: GPL+ or Artistic +Epoch: 0 +Version: 0.016 +Requires: %perl_compat +%if %{defined perl_bootstrap} +%gendep_perl_experimental +%endif +BuildArch: noarch +Conflicts: %{?scl_prefix}perl < 4:5.20.0-303 + +%description experimental +This pragma provides an easy and convenient way to enable or disable +experimental features. +%endif + +%if %{dual_life} || %{rebuild_from_scratch} +%package Exporter +Summary: Implements default import method for modules +License: GPL+ or Artistic +Epoch: 0 +Version: 5.72 +Requires: %perl_compat +Requires: %{?scl_prefix}perl(Carp) >= 1.05 +%if %{defined perl_bootstrap} +%gendep_perl_Exporter +%endif +BuildArch: noarch +Conflicts: %{?scl_prefix}perl < 4:5.16.2-265 + +%description Exporter +The Exporter module implements an import method which allows a module to +export functions and variables to its users' name spaces. Many modules use +Exporter rather than implementing their own import method because Exporter +provides a highly flexible interface, with an implementation optimized for +the common case. +%endif + +%if %{dual_life} || %{rebuild_from_scratch} +%package ExtUtils-CBuilder +Summary: Compile and link C code for Perl modules +License: GPL+ or Artistic +# Epoch bump for clean upgrade over old standalone package +Epoch: 1 +Version: 0.280225 +BuildArch: noarch +Requires: %{?scl_prefix}perl-devel +Requires: %perl_compat +Requires: %{?scl_prefix}perl(DynaLoader) +Requires: %{?scl_prefix}perl(ExtUtils::Mksymlists) +Requires: %{?scl_prefix}perl(File::Spec) >= 3.13 +Requires: %{?scl_prefix}perl(Perl::OSType) >= 1 +%if %{defined perl_bootstrap} +%gendep_perl_ExtUtils_CBuilder +%endif + +%description ExtUtils-CBuilder +This module can build the C portions of Perl modules by invoking the +appropriate compilers and linkers in a cross-platform manner. It was motivated +by the Module::Build project, but may be useful for other purposes as well. +%endif + +%if %{dual_life} || %{rebuild_from_scratch} +%package ExtUtils-Command +Summary: Perl routines to replace common UNIX commands in Makefiles +License: GPL+ or Artistic +Epoch: 1 +Version: 7.24 +BuildArch: noarch +Requires: %perl_compat +Conflicts: %{?scl_prefix}perl < 4:5.20.1-312 +Requires: %{?scl_prefix}perl(File::Find) +%if %{defined perl_bootstrap} +%gendep_perl_ExtUtils_Command +%endif + +%description ExtUtils-Command +This Perl module is used to replace common UNIX commands. In all cases the +functions work with @ARGV rather than taking arguments. This makes them +easier to deal with in Makefiles. +%endif + +%package ExtUtils-Embed +Summary: Utilities for embedding Perl in C/C++ applications +License: GPL+ or Artistic +Epoch: 0 +Version: 1.34 +Requires: %{?scl_prefix}perl-devel +Requires: %perl_compat +%if %{defined perl_bootstrap} +%gendep_perl_ExtUtils_Embed +%endif +BuildArch: noarch + +%description ExtUtils-Embed +Utilities for embedding Perl in C/C++ applications. + + +%if %{dual_life} || %{rebuild_from_scratch} +%package ExtUtils-Install +Summary: Install files from here to there +License: GPL+ or Artistic +Epoch: 0 +Version: 2.04 +BuildArch: noarch +Requires: %perl_compat +Requires: %{?scl_prefix}perl(Data::Dumper) +%if %{defined perl_bootstrap} +%gendep_perl_ExtUtils_Install +%endif + +%description ExtUtils-Install +Handles the installing and uninstalling of perl modules, scripts, man +pages, etc. +%endif + +%if %{dual_life} || %{rebuild_from_scratch} +%package ExtUtils-MakeMaker +Summary: Create a module Makefile +License: GPL+ or Artistic +Epoch: 1 +Version: 7.24 +# If an XS module is built, code generated from XS will be compiled and it +# includes Perl header files. +# TODO: This dependency will be weaken in order to relieve building noarch +# packages from perl-devel and gcc. +Requires: %{?scl_prefix}perl-devel +Requires: %perl_compat +Requires: %{?scl_prefix}perl(Data::Dumper) +Requires: %{?scl_prefix}perl(DynaLoader) +Requires: %{?scl_prefix}perl(ExtUtils::Command) +Requires: %{?scl_prefix}perl(ExtUtils::Install) +Requires: %{?scl_prefix}perl(ExtUtils::Manifest) +Requires: %{?scl_prefix}perl(File::Find) +Requires: %{?scl_prefix}perl(Getopt::Long) +# Optional Pod::Man is needed for generating manual pages from POD +Requires: %{?scl_prefix}perl(Pod::Man) +Requires: %{?scl_prefix}perl(POSIX) +Requires: %{?scl_prefix}perl(Test::Harness) +Requires: %{?scl_prefix}perl(version) +# If an XS module is compiled, xsubpp(1) is needed +Requires: %{?scl_prefix}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|}^%{?scl_prefix}perl\\(DynaLoader\\)\\s*$ +%global __provides_exclude %__provides_exclude|^%{?scl_prefix}perl\\(ExtUtils::MakeMaker::_version\\) + +%description ExtUtils-MakeMaker +Create a module Makefile. +%endif + +%if %{dual_life} || %{rebuild_from_scratch} +%package ExtUtils-Manifest +Summary: Utilities to write and check a MANIFEST file +License: GPL+ or Artistic +Epoch: 0 +Version: 1.70 +Requires: %perl_compat +Requires: %{?scl_prefix}perl(File::Path) +%if %{defined perl_bootstrap} +%gendep_perl_ExtUtils_Manifest +%endif +BuildArch: noarch + +%description ExtUtils-Manifest +%{summary}. +%endif + +%package ExtUtils-Miniperl +Summary: Write the C code for perlmain.c +License: GPL+ or Artistic +Epoch: 0 +Version: 1.06 +Requires: %{?scl_prefix}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 filename to open for ouput. Any other +reference is used as the filehandle to write to. Otherwise output defaults to +STDOUT. + +%if %{dual_life} || %{rebuild_from_scratch} +%package ExtUtils-MM-Utils +Summary: ExtUtils::MM methods without dependency on ExtUtils::MakeMaker +License: GPL+ or Artistic +Epoch: 1 +# Real version 7.11 +# Dual-life ExtUtils-MakeMaker generate it with its version +Version: 7.24 +BuildArch: noarch +Requires: %perl_compat +%if %{defined perl_bootstrap} +%gendep_perl_ExtUtils_MM_Utils +%endif + +%description ExtUtils-MM-Utils +This is a collection of ExtUtils::MM subroutines that are used by many +other modules but that do not need full-featured ExtUtils::MakeMaker. The +issue with ExtUtils::MakeMaker is it pulls in Perl header files and that +is an overkill for small subroutines. +%endif + +%if %{dual_life} || %{rebuild_from_scratch} +%package ExtUtils-ParseXS +Summary: Module and a script for converting Perl XS code into C code +License: GPL+ or Artistic +# Epoch bump for clean upgrade over old standalone package +Epoch: 1 +Version: 3.34 +Requires: %perl_compat +%if %{defined perl_bootstrap} +%gendep_perl_ExtUtils_ParseXS +%endif +BuildArch: noarch + +%description ExtUtils-ParseXS +ExtUtils::ParseXS will compile XS code into C code by embedding the constructs +necessary to let C functions manipulate Perl values and creates the glue +necessary to let Perl access those functions. +%endif + + +%if %{dual_life} || %{rebuild_from_scratch} +%package File-Fetch +Summary: Generic file fetching mechanism +License: GPL+ or Artistic +Epoch: 0 +Version: 0.52 +Requires: %{?scl_prefix}perl(IPC::Cmd) >= 0.36 +Requires: %{?scl_prefix}perl(Module::Load::Conditional) >= 0.04 +Requires: %{?scl_prefix}perl(Params::Check) >= 0.07 +Requires: %perl_compat +%if %{defined perl_bootstrap} +%gendep_perl_File_Fetch +%endif +BuildArch: noarch + +%description File-Fetch +File::Fetch is a generic file fetching mechanism. +%endif + +%if %{dual_life} || %{rebuild_from_scratch} +%package File-Path +Summary: Create or remove directory trees +License: GPL+ or Artistic +Epoch: 0 +Version: 2.12 +Requires: %perl_compat +Requires: %{?scl_prefix}perl(Carp) +%if %{defined perl_bootstrap} +%gendep_perl_File_Path +%endif +BuildArch: noarch +Conflicts: %{?scl_prefix}perl < 4:5.16.2-265 + +%description File-Path +This module provides a convenient way to create directories of arbitrary +depth and to delete an entire directory subtree from the file system. +%endif + +%if %{dual_life} || %{rebuild_from_scratch} +%package File-Temp +Summary: Return name and handle of a temporary file safely +License: GPL+ or Artistic +Epoch: 0 +# Normalized version +Version: 0.230.400 +Requires: %perl_compat +BuildArch: noarch +Requires: %{?scl_prefix}perl(File::Path) >= 2.06 +Requires: %{?scl_prefix}perl(POSIX) +%if %{defined perl_bootstrap} +%gendep_perl_File_Temp +%endif +Conflicts: %{?scl_prefix}perl < 4:5.16.2-265 + +%description File-Temp +File::Temp can be used to create and open temporary files in a safe way. +There is both a function interface and an object-oriented interface. The +File::Temp constructor or the tempfile() function can be used to return the +name and the open file handle of a temporary file. The tempdir() function +can be used to create a temporary directory. +%endif + +%if %{dual_life} || %{rebuild_from_scratch} +# FIXME Filter-Simple? version? +%package Filter +Summary: Perl source filters +License: GPL+ or Artistic +Epoch: 2 +Version: 1.55 +Requires: %perl_compat +%if %{defined perl_bootstrap} +%gendep_perl_Filter +%endif + +%description Filter +Source filters alter the program text of a module before Perl sees it, much as +a C preprocessor alters the source text of a C program before the compiler +sees it. +%endif + +%if %{dual_life} || %{rebuild_from_scratch} +%package Filter-Simple +Summary: Simplified Perl source filtering +License: GPL+ or Artistic +Epoch: 0 +Version: 0.93 +BuildArch: noarch +Requires: %perl_compat +Conflicts: %{?scl_prefix}perl < 4:5.20.1-312 +Requires: %{?scl_prefix}perl(Text::Balanced) >= 1.97 +Requires: %{?scl_prefix}perl(warnings) +%if %{defined perl_bootstrap} +%gendep_perl_Filter_Simple +%endif + +%description Filter-Simple +The Filter::Simple Perl module provides a simplified interface to +Filter::Util::Call; one that is sufficient for most common cases. +%endif + +%if %{dual_life} || %{rebuild_from_scratch} +%package Getopt-Long +Summary: Extended processing of command line options +License: GPLv2+ or Artistic +Epoch: 1 +Version: 2.49 +Requires: %perl_compat +Requires: %{?scl_prefix}perl(overload) +Requires: %{?scl_prefix}perl(Text::ParseWords) +# Recommended: +Requires: %{?scl_prefix}perl(Pod::Usage) >= 1.14 +%if %{defined perl_bootstrap} +%gendep_perl_Getopt_Long +%endif +BuildArch: noarch +Conflicts: %{?scl_prefix}perl < 4:5.16.3-268 + +%description Getopt-Long +The Getopt::Long module implements an extended getopt function called +GetOptions(). It parses the command line from @ARGV, recognizing and removing +specified options and their possible values. It adheres to the POSIX syntax +for command line options, with GNU extensions. In general, this means that +options have long names instead of single letters, and are introduced with +a double dash "--". Support for bundling of command line options, as was the +case with the more traditional single-letter approach, is provided but not +enabled by default. +%endif + +%package IO +Summary: Perl input/output modules +License: GPL+ or Artistic +Epoch: 0 +Version: 1.38 +Requires: %perl_compat +%if %{defined perl_bootstrap} +%gendep_perl_IO +%endif +Conflicts: %{?scl_prefix}perl < 4:5.22.0-351 + +%description IO +This is a collection of Perl input/output modules. + +%if %{dual_life} || %{rebuild_from_scratch} +%package IO-Compress +Summary: IO::Compress wrapper for modules +License: GPL+ or Artistic +Epoch: 0 +Version: 2.074 +Requires: %perl_compat +Obsoletes: %{?scl_prefix}perl-Compress-Zlib <= 2.020 +Provides: %{?scl_prefix}perl(IO::Uncompress::Bunzip2) +%if %{defined perl_bootstrap} +%gendep_perl_IO_Compress +%endif +BuildArch: noarch + +%description IO-Compress +This module is the base class for all IO::Compress and IO::Uncompress modules. +This module is not intended for direct use in application code. Its sole +purpose is to to be sub-classed by IO::Compress modules. +%endif + +%if %{dual_life} || %{rebuild_from_scratch} +%package IO-Socket-IP +Summary: Drop-in replacement for IO::Socket::INET supporting both IPv4 and IPv6 +License: GPL+ or Artistic +Epoch: 0 +Version: 0.38 +Requires: %perl_compat +%if %{defined perl_bootstrap} +%gendep_perl_IO_Socket_IP +%endif +BuildArch: noarch +Conflicts: %{?scl_prefix}perl < 4:5.20.0-303 + +%description IO-Socket-IP +This module provides a protocol-independent way to use IPv4 and IPv6 +sockets, as a drop-in replacement for IO::Socket::INET. Most constructor +arguments and methods are provided in a backward-compatible way. +%endif + +%package IO-Zlib +Summary: Perl IO:: style interface to Compress::Zlib +License: GPL+ or Artistic +# Epoch bump for clean upgrade over old standalone package +Epoch: 1 +Version: 1.10 +Requires: %{?scl_prefix}perl(Compress::Zlib) +Requires: %perl_compat +%if %{defined perl_bootstrap} +%gendep_perl_IO_Zlib +%endif +BuildArch: noarch + +%description IO-Zlib +This modules provides an IO:: style interface to the Compress::Zlib package. +The main advantage is that you can use an IO::Zlib object in much the same way +as an IO::File object so you can have common code that doesn't know which sort +of file it is using. + + +%if %{dual_life} || %{rebuild_from_scratch} +%package IPC-Cmd +Summary: Finding and running system commands made easy +License: GPL+ or Artistic +# Epoch bump for clean upgrade over old standalone package +Epoch: 2 +Version: 0.96 +Requires: %{?scl_prefix}perl(ExtUtils::MM::Utils) +Requires: %perl_compat +%if %{defined perl_bootstrap} +%gendep_perl_IPC_Cmd +%endif +BuildArch: noarch + +%description IPC-Cmd +IPC::Cmd allows you to run commands, interactively if desired, in a platform +independent way, but have them still work. +%endif + +%if %{dual_life} || %{rebuild_from_scratch} +%package IPC-SysV +Summary: Object interface to System V IPC +License: GPL+ or Artistic +Epoch: 0 +Version: 2.07 +Requires: %perl_compat +Requires: %{?scl_prefix}perl(DynaLoader) +%if %{defined perl_bootstrap} +%gendep_perl_IPC_SysV +%endif +Conflicts: %{?scl_prefix}perl < 4:5.22.0-351 + +%description IPC-SysV +This is an object interface for System V messages, semaphores, and +inter-process calls. +%endif + +%if %{dual_life} || %{rebuild_from_scratch} +%package HTTP-Tiny +Summary: A small, simple, correct HTTP/1.1 client +License: GPL+ or Artistic +Epoch: 0 +Version: 0.070 +Requires: %{?scl_prefix}perl(bytes) +Requires: %{?scl_prefix}perl(Carp) +Requires: %{?scl_prefix}perl(IO::Socket) +Requires: %{?scl_prefix}perl(Time::Local) +%if %{defined perl_bootstrap} +%gendep_perl_HTTP_Tiny +%endif +BuildArch: noarch + +%description HTTP-Tiny +This is a very simple HTTP/1.1 client, designed primarily for doing simple GET +requests without the overhead of a large framework like LWP::UserAgent. +It is more correct and more complete than HTTP::Lite. It supports proxies +(currently only non-authenticating ones) and redirection. It also correctly +resumes after EINTR. +%endif + +%if %{dual_life} || %{rebuild_from_scratch} +%package JSON-PP +Summary: JSON::XS compatible pure-Perl module +Epoch: 1 +# Real version 2.27400 +Version: 2.27.400 +License: GPL+ or Artistic +BuildArch: noarch +Requires: %perl_compat +Requires: %{?scl_prefix}perl(Data::Dumper) +Requires: %{?scl_prefix}perl(Encode) +Requires: %{?scl_prefix}perl(Math::BigFloat) +Requires: %{?scl_prefix}perl(Math::BigInt) +Requires: %{?scl_prefix}perl(Scalar::Util) +Requires: %{?scl_prefix}perl(subs) +%if %{defined perl_bootstrap} +%gendep_perl_JSON_PP +%endif +Conflicts: %{?scl_prefix}perl-JSON < 2.50 + +%description JSON-PP +JSON::XS is the fastest and most proper JSON module on CPAN. It is written by +Marc Lehmann in C, so must be compiled and installed in the used environment. +JSON::PP is a pure-Perl module and is compatible with JSON::XS. +%endif + +%if %{dual_life} || %{rebuild_from_scratch} +%package libnet +Summary: Perl clients for various network protocols +License: GPL+ or Artistic +Epoch: 0 +Version: 3.10 +Requires: %perl_compat +Requires: %{?scl_prefix}perl(File::Basename) +Requires: %{?scl_prefix}perl(IO::Socket) >= 1.05 +# Prefer IO::Socket::IP over IO::Socket::INET6 and IO::Socket::INET +Requires: %{?scl_prefix}perl(IO::Socket::IP) >= 0.20 +Requires: %{?scl_prefix}perl(POSIX) +Requires: %{?scl_prefix}perl(Socket) >= 2.016 +Requires: %{?scl_prefix}perl(utf8) +%if %{defined perl_bootstrap} +%gendep_perl_libnet +%endif +BuildArch: noarch +Conflicts: %{?scl_prefix}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: %{?scl_prefix}perl-devel < 4:5.22.0-347 + +%description libnetcfg +The libnetcfg utility can be used to configure the libnet. + +%if %{dual_life} || %{rebuild_from_scratch} +%package Locale-Codes +Summary: Distribution of modules to handle locale codes +Epoch: 0 +Version: 3.25 +License: GPL+ or Artistic +Requires: %perl_compat +Requires: %{?scl_prefix}perl(constant) +Provides: %{?scl_prefix}perl(Locale::Codes) = %{version} +%if %{defined perl_bootstrap} +%gendep_perl_Locale_Codes +%endif +BuildArch: noarch + +# Do not export unversioned module +%global __provides_exclude %{?__provides_exclude:%__provides_exclude|}^%{?scl_prefix}perl\\(Locale::Codes\\)\\s*$ + +# Filter dependencies on private modules. Generator: +# for F in $(find lib -type f); do perl -e '$/ = undef; $_ = <>; if (/^package #\R([\w:]*);/m) { print qq{|^%{?scl_prefix}perl\\\\($1\\\\)} }' "$F"; done +%global __requires_exclude %{?__requires_exclude:%__requires_exclude|}^%{?scl_prefix}perl\\(Locale::Codes::Country_Retired\\)|^%{?scl_prefix}perl\\(Locale::Codes::LangFam_Retired\\)|^%{?scl_prefix}perl\\(Locale::Codes::Script_Retired\\)|^%{?scl_prefix}perl\\(Locale::Codes::LangExt_Codes\\)|^%{?scl_prefix}perl\\(Locale::Codes::LangFam_Codes\\)|^%{?scl_prefix}perl\\(Locale::Codes::Script_Codes\\)|^%{?scl_prefix}perl\\(Locale::Codes::Language_Codes\\)|^%{?scl_prefix}perl\\(Locale::Codes::LangExt_Retired\\)|^%{?scl_prefix}perl\\(Locale::Codes::Currency_Codes\\)|^%{?scl_prefix}perl\\(Locale::Codes::LangVar_Retired\\)|^%{?scl_prefix}perl\\(Locale::Codes::Language_Retired\\)|^%{?scl_prefix}perl\\(Locale::Codes::Country_Codes\\)|^%{?scl_prefix}perl\\(Locale::Codes::LangVar_Codes\\)|^%{?scl_prefix}perl\\(Locale::Codes::Currency_Retired\\) + +%description Locale-Codes +Locale-Codes is a distribution containing a set of modules. The modules +each deal with different types of codes which identify parts of the locale +including languages, countries, currency, etc. +%endif + +%if %{dual_life} || %{rebuild_from_scratch} +%package Locale-Maketext +Summary: Framework for localization +License: GPL+ or Artistic +Epoch: 0 +Version: 1.28 +Requires: %perl_compat +%if %{defined perl_bootstrap} +%gendep_perl_Locale_Maketext +%endif +BuildArch: noarch +Conflicts: %{?scl_prefix}perl < 4:5.16.3-268 + +%description Locale-Maketext +It is a common feature of applications (whether run directly, or via the Web) +for them to be "localized" -- i.e., for them to present an English interface +to an English-speaker, a German interface to a German-speaker, and so on for +all languages it's programmed with. Locale::Maketext is a framework for +software localization; it provides you with the tools for organizing and +accessing the bits of text and text-processing code that you need for +producing localized applications. +%endif + +%package Locale-Maketext-Simple +Summary: Simple interface to Locale::Maketext::Lexicon +License: MIT +# Epoch bump for clean upgrade over old standalone package +Epoch: 1 +Version: 0.21 +Requires: %perl_compat +%if %{defined perl_bootstrap} +%gendep_perl_Locale_Maketext_Simple +%endif +BuildArch: noarch + +%description Locale-Maketext-Simple +This module is a simple wrapper around Locale::Maketext::Lexicon, designed +to alleviate the need of creating Language Classes for module authors. + +%if %{dual_life} || %{rebuild_from_scratch} +%package Math-BigInt +Summary: Arbitrary-size integer and float mathematics +License: GPL+ or Artistic +Epoch: 1 +# Real version 1.999806 +Version: 1.9998.06 +Requires: %perl_compat +Requires: %{?scl_prefix}perl(Carp) +# File::Spec not used on recent perl +%if %{defined perl_bootstrap} +%gendep_perl_Math_BigInt +%endif +BuildArch: noarch +Conflicts: %{?scl_prefix}perl < 4:5.22.0-347 + +# Do not export unversioned module +%global __provides_exclude %{?__provides_exclude:%__provides_exclude|}^%{?scl_prefix}perl\\(Math::BigInt\\)\\s*$ + +%description Math-BigInt +This provides Perl modules for arbitrary-size integer and float mathematics. + +%package Math-BigInt-FastCalc +Summary: Math::BigInt::Calc XS implementation +License: GPL+ or Artistic +Epoch: 0 +# Version normalized to dot format +# Real version 0.5005 +Version: 0.500.500 +Requires: %perl_compat +%if %{defined perl_bootstrap} +%gendep_perl_Math_BigInt_FastCalc +%endif +Conflicts: %{?scl_prefix}perl < 4:5.22.0-348 + +%description Math-BigInt-FastCalc +This package provides support for faster big integer calculations. + +%package Math-BigRat +Summary: Arbitrary big rational numbers +License: GPL+ or Artistic +Epoch: 0 +# Real version 0.2611 +Version: 0.2611 +Requires: %perl_compat +Requires: %{?scl_prefix}perl(Math::BigInt) +%if %{defined perl_bootstrap} +%gendep_perl_Math_BigRat +%endif +BuildArch: noarch +Conflicts: %{?scl_prefix}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: %{?scl_prefix}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: %{?scl_prefix}perl < 4:5.22.0-350 + +%description Memoize +Memoizing a function makes it faster by trading space for time. It does +this by caching the return values of the function in a table. If you call +the function again with the same arguments, memoize jumps in and gives +you the value out of the table, instead of letting the function compute +the value all over again. + +%if %{dual_life} || %{rebuild_from_scratch} +%package MIME-Base64 +Summary: Encoding and decoding of Base64 and quoted-printable strings +# cpan/MIME-Base64/Base64.xs: (GPL+ or Artistic) and MIT (Bellcore's part) +# Other files: GPL+ or Artistic +License: (GPL+ or Artistic) and MIT +Epoch: 0 +Version: 3.15 +Requires: %perl_compat +%if %{defined perl_bootstrap} +%gendep_perl_MIME_Base64 +%endif +Conflicts: %{?scl_prefix}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.20170922 +Requires: %perl_compat +Requires: %{?scl_prefix}perl(List::Util) +Requires: %{?scl_prefix}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.20170922 +Requires: %perl_compat +Requires: %{?scl_prefix}perl(feature) +Requires: %{?scl_prefix}perl(version) >= 0.88 +Requires: %{?scl_prefix}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: %{?scl_prefix}perl-Module-CoreList < 1:5.020001-310 +BuildArch: noarch + +%description Module-CoreList-tools +This package provides a corelist(1) tool which can be used to query what +modules were shipped with given perl version. +%endif + + +%if %{dual_life} || %{rebuild_from_scratch} +%package Module-Load +Summary: Runtime require of both modules and files +License: GPL+ or Artistic +# Epoch bump for clean upgrade over old standalone package +Epoch: 1 +Version: 0.32 +Requires: %perl_compat +%if %{defined perl_bootstrap} +%gendep_perl_Module_Load +%endif +BuildArch: noarch + +%description Module-Load +Module::Load eliminates the need to know whether you are trying to require +either a file or a module. +%endif + + +%if %{dual_life} || %{rebuild_from_scratch} +%package Module-Load-Conditional +Summary: Looking up module information / loading at runtime +License: GPL+ or Artistic +Epoch: 0 +Version: 0.68 +Requires: %perl_compat +%if %{defined perl_bootstrap} +%gendep_perl_Module_Load_Conditional +%endif +BuildArch: noarch + +%description Module-Load-Conditional +Module::Load::Conditional provides simple ways to query and possibly load any +of the modules you have installed on your system during runtime. +%endif + + +%package Module-Loaded +Summary: Mark modules as loaded or unloaded +License: GPL+ or Artistic +# Epoch bump for clean upgrade over old standalone package +Epoch: 1 +Version: 0.08 +Requires: %perl_compat +%if %{defined perl_bootstrap} +%gendep_perl_Module_Loaded +%endif +BuildArch: noarch + +%description Module-Loaded +When testing applications, often you find yourself needing to provide +functionality in your test environment that would usually be provided by +external modules. Rather than munging the %%INC by hand to mark these external +modules as loaded, so they are not attempted to be loaded by perl, this module +offers you a very simple way to mark modules as loaded and/or unloaded. + + +%if %{dual_life} || %{rebuild_from_scratch} +%package Module-Metadata +Summary: Gather package and POD information from perl module files +Epoch: 0 +Version: 1.000033 +License: GPL+ or Artistic +BuildArch: noarch +Requires: %perl_compat +%if %{defined perl_bootstrap} +%gendep_perl_Module_Metadata +%endif + +%description Module-Metadata +Gather package and POD information from perl module files +%endif + +%package Net-Ping +Summary: Check a remote host for reachability +License: GPL+ or Artistic +Epoch: 0 +Version: 2.55 +Requires: %perl_compat +# Keep Net::Ping::External optional +%if %{defined perl_bootstrap} +%gendep_perl_Net_Ping +%endif +BuildArch: noarch +Conflicts: %{?scl_prefix}perl < 4:5.22.0-350 + +%description Net-Ping +Net::Ping module contains methods to test the reachability of remote hosts on +a network. + +%package open +Summary: Perl pragma to set default PerlIO layers for input and output +License: GPL+ or Artistic +Epoch: 0 +Version: 1.11 +Requires: %perl_compat +Requires: %{?scl_prefix}perl(Carp) +Requires: %{?scl_prefix}perl(Encode) +Requires: %{?scl_prefix}perl(encoding) +%if %{defined perl_bootstrap} +%gendep_perl_open +%endif +Conflicts: %{?scl_prefix}perl < 4:5.20.2-326 +BuildArch: noarch + +%description open +The "open" pragma serves as one of the interfaces to declare default "layers" +(also known as "disciplines") for all I/O. + +%if %{dual_life} || %{rebuild_from_scratch} +%package parent +Summary: Establish an ISA relationship with base classes at compile time +License: GPL+ or Artistic +# Epoch bump for clean upgrade over old standalone package +Epoch: 1 +Version: 0.236 +Requires: %perl_compat +%if %{defined perl_bootstrap} +%gendep_perl_parent +%endif +BuildArch: noarch + +%description parent +parent allows you to both load one or more modules, while setting up +inheritance from those modules at the same time. Mostly similar in effect to: + + package Baz; + + BEGIN { + require Foo; + require Bar; + + push @ISA, qw(Foo Bar); + } +%endif + +%if %{dual_life} || %{rebuild_from_scratch} +%package Params-Check +Summary: Generic input parsing/checking mechanism +License: GPL+ or Artistic +# Epoch bump for clean upgrade over old standalone package +Epoch: 1 +Version: 0.38 +Requires: %perl_compat +%if %{defined perl_bootstrap} +%gendep_perl_Params_Check +%endif +BuildArch: noarch + +%description Params-Check +Params::Check is a generic input parsing/checking mechanism. +%endif + +%if %{dual_life} || %{rebuild_from_scratch} +%package PathTools +Summary: PathTools Perl module (Cwd, File::Spec) +License: (GPL+ or Artistic) and BSD +Epoch: 0 +Version: 3.67 +Requires: %perl_compat +Requires: %{?scl_prefix}perl(Carp) +%if %{defined perl_bootstrap} +%gendep_perl_PathTools +%endif + +%description PathTools +PathTools Perl module (Cwd, File::Spec). +%endif + +%if %{dual_life} || %{rebuild_from_scratch} +%package perlfaq +Summary: Frequently asked questions about Perl +# Code examples are Public Domain +License: (GPL+ or Artistic) and Public Domain +Epoch: 0 +Version: 5.021011 +Requires: %perl_compat +%if %{defined perl_bootstrap} +%gendep_perl_perlfaq +%endif +BuildArch: noarch +Conflicts: %{?scl_prefix}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: %{?scl_prefix}perl < 4:5.22.0-347 + +%description PerlIO-via-QuotedPrint +This module implements a PerlIO layer that works on files encoded in the +quoted-printable format. It will decode from quoted-printable while +reading from a handle, and it will encode as quoted-printable while +writing to a handle. +%endif + +%if %{dual_life} || %{rebuild_from_scratch} +%package Perl-OSType +Summary: Map Perl operating system names to generic types +Version: 1.010 +Epoch: 0 +License: GPL+ or Artistic +Requires: %perl_compat +%if %{defined perl_bootstrap} +%gendep_perl_Perl_OSType +%endif +BuildArch: noarch + +%description Perl-OSType +Modules that provide OS-specific behaviors often need to know if the current +operating system matches a more generic type of operating systems. For example, +'linux' is a type of 'Unix' operating system and so is 'freebsd'. +This module provides a mapping between an operating system name as given by $^O +and a more generic type. The initial version is based on the OS type mappings +provided in Module::Build and ExtUtils::CBuilder (thus, Microsoft operating +systems are given the type 'Windows' rather than 'Win32'). +%endif + +%if %{dual_life} || %{rebuild_from_scratch} +%package Pod-Checker +Summary: Check POD documents for syntax errors +Epoch: 4 +Version: 1.73 +License: GPL+ or Artistic +Requires: %perl_compat +%if %{defined perl_bootstrap} +%gendep_perl_Pod_Checker +%endif +BuildArch: noarch + +%description Pod-Checker +Module and tools to verify POD documentation contents for compliance with the +Plain Old Documentation format specifications. +%endif + +%if %{dual_life} || %{rebuild_from_scratch} +%package Pod-Escapes +Summary: Resolve POD escape sequences +License: GPL+ or Artistic +# Epoch bump for clean upgrade over old standalone package +Epoch: 1 +Version: 1.07 +Requires: %perl_compat +%if %{defined perl_bootstrap} +%gendep_perl_Pod_Escapes +%endif +BuildArch: noarch + +%description Pod-Escapes +This module provides things that are useful in decoding Pod E<...> sequences. +%endif + +%package Pod-Html +Summary: Convert POD files to HTML +License: GPL+ or Artistic +Epoch: 0 +# Real version 1.2202 +Version: 1.22.02 +Requires: %perl_compat +%if %{defined perl_bootstrap} +%gendep_perl_Pod_Html +%endif +BuildArch: noarch +Conflicts: %{?scl_prefix}perl < 4:5.22.0-350 + +%description Pod-Html +This package converts files from POD format (see perlpod) to HTML format. It +can automatically generate indexes and cross-references, and it keeps a cache +of things it knows how to cross-reference. + +%if %{dual_life} || %{rebuild_from_scratch} +%package Pod-Parser +Summary: Basic perl modules for handling Plain Old Documentation (POD) +License: GPL+ or Artistic +Epoch: 0 +Version: 1.63 +Requires: %perl_compat +%if %{defined perl_bootstrap} +%gendep_perl_Pod_Parser +%endif +BuildArch: noarch + +%description Pod-Parser +This software distribution contains the packages for using Perl5 POD (Plain +Old Documentation). See the "perlpod" and "perlsyn" manual pages from your +Perl5 distribution for more information about POD. +%endif + +%if %{dual_life} || %{rebuild_from_scratch} +%package Pod-Perldoc +Summary: Look up Perl documentation in Pod format +License: GPL+ or Artistic +Epoch: 0 +Version: 3.28 +%if %{with perl_enables_groff} +# Pod::Perldoc::ToMan executes roff +Requires: groff-base +%endif +Requires: %perl_compat +Requires: %{?scl_prefix}perl(File::Temp) >= 0.22 +Requires: %{?scl_prefix}perl(HTTP::Tiny) +Requires: %{?scl_prefix}perl(IO::Handle) +Requires: %{?scl_prefix}perl(IPC::Open3) +# POD2::Base is optional +# Pod::Checker is not needed if Pod::Simple::Checker is available +Requires: %{?scl_prefix}perl(Pod::Simple::Checker) +Requires: %{?scl_prefix}perl(Pod::Simple::RTF) >= 3.16 +Requires: %{?scl_prefix}perl(Pod::Simple::XMLOutStream) >= 3.16 +Requires: %{?scl_prefix}perl(Text::ParseWords) +# Tk is optional +Requires: %{?scl_prefix}perl(Symbol) +%if %{defined perl_bootstrap} +%gendep_perl_Pod_Perldoc +%endif +BuildArch: noarch + +%description Pod-Perldoc +perldoc looks up a piece of documentation in .pod format that is embedded +in the perl installation tree or in a perl script, and displays it via +"groff -man | $PAGER". This is primarily used for the documentation for +the perl library modules. +%endif + +%if %{dual_life} || %{rebuild_from_scratch} +%package Pod-Simple +Summary: Framework for parsing POD documentation +License: GPL+ or Artistic +# Epoch bump for clean upgrade over old standalone package +Epoch: 1 +Version: 3.35 +Requires: %perl_compat +%if %{defined perl_bootstrap} +%gendep_perl_Pod_Simple +%endif +BuildArch: noarch + +%description Pod-Simple +Pod::Simple is a Perl library for parsing text in the Pod ("plain old +documentation") markup language that is typically used for writing +documentation for Perl and for Perl modules. +%endif + +%if %{dual_life} || %{rebuild_from_scratch} +%package Pod-Usage +Summary: Print a usage message from embedded pod documentation +License: GPL+ or Artistic +Epoch: 4 +Version: 1.69 +Requires: %perl_compat +# Pod::Usage executes perldoc from perl-Pod-Perldoc by default +Requires: %{?scl_prefix}perl-Pod-Perldoc +Requires: %{?scl_prefix}perl(Pod::Text) +%if %{defined perl_bootstrap} +%gendep_perl_Pod_Usage +%endif +BuildArch: noarch + +%description Pod-Usage +pod2usage will print a usage message for the invoking script (using its +embedded POD documentation) and then exit the script with the desired exit +status. The usage message printed may have any one of three levels of +"verboseness": If the verbose level is 0, then only a synopsis is printed. +If the verbose level is 1, then the synopsis is printed along with a +description (if present) of the command line options and arguments. If the +verbose level is 2, then the entire manual page is printed. +%endif + +%if %{dual_life} || %{rebuild_from_scratch} +%package podlators +Summary: Format POD source into various output formats +License: (GPL+ or Artistic) and MIT +Epoch: 0 +Version: 4.09 +BuildArch: noarch +Requires: %perl_compat +Requires: %{?scl_prefix}perl(File::Spec) >= 0.8 +Requires: %{?scl_prefix}perl(Pod::Simple) >= 3.06 +%if %{defined perl_bootstrap} +%gendep_perl_podlators +%endif +Conflicts: %{?scl_prefix}perl < 4:5.16.1-234 + +%description podlators +This package contains Pod::Man and Pod::Text modules which convert POD input +to *roff source output, suitable for man pages, or plain text. It also +includes several sub-classes of Pod::Text for formatted output to terminals +with various capabilities. +%endif + +%if %{dual_life} || %{rebuild_from_scratch} +%package Scalar-List-Utils +Summary: A selection of general-utility scalar and list subroutines +License: GPL+ or Artistic +Epoch: 3 +# Real version 1.46_02 +Version: 1.46 +Requires: %perl_compat +%if %{defined perl_bootstrap} +%gendep_perl_Scalar_List_Utils +%endif + +%description Scalar-List-Utils +Scalar::Util and List::Util contain a selection of subroutines that people have +expressed would be nice to have in the perl core, but the usage would not +really be high enough to warrant the use of a keyword, and the size so small +such that being individual extensions would be wasteful. +%endif + +%package SelfLoader +Summary: Load functions only on demand +License: GPL+ or Artistic +Epoch: 0 +Version: 1.23 +BuildArch: noarch +Requires: %perl_compat +Requires: %{?scl_prefix}perl(Carp) +%if %{defined perl_bootstrap} +%gendep_perl_SelfLoader +%endif +Conflicts: %{?scl_prefix}perl < 4:5.22.0-351 + +%description SelfLoader +This Perl module tells its users that functions in a package are to be +autoloaded from after the "__DATA__" token. See also "Autoloading" in +perlsub. + +%if %{dual_life} || %{rebuild_from_scratch} +%package Socket +Summary: C socket.h defines and structure manipulators +License: GPL+ or Artistic +Epoch: 4 +Version: 2.020 +Requires: %perl_compat +%if %{defined perl_bootstrap} +%gendep_perl_Socket +%endif + +%description Socket +This module is just a translation of the C socket.h file. Unlike the old +mechanism of requiring a translated socket.ph file, this uses the h2xs program +(see the Perl source distribution) and your native C compiler. This means +that it has a far more likely chance of getting the numbers right. This +includes all of the commonly used pound-defines like AF_INET, SOCK_STREAM, etc. +%endif + +%if %{dual_life} || %{rebuild_from_scratch} +%package Storable +Summary: Persistence for Perl data structures +License: GPL+ or Artistic +Epoch: 1 +Version: 2.62 +Requires: %perl_compat +# Carp substitutes missing Log::Agent +Requires: %{?scl_prefix}perl(Carp) +Requires: %{?scl_prefix}perl(Config) +# Fcntl is optional, but locking is good +Requires: %{?scl_prefix}perl(Fcntl) +Requires: %{?scl_prefix}perl(IO::File) +%if %{defined perl_bootstrap} +%gendep_perl_Storable +%endif +Conflicts: %{?scl_prefix}perl < 4:5.16.3-274 + +%description Storable +The Storable package brings persistence to your Perl data structures +containing scalar, array, hash or reference objects, i.e. anything that +can be conveniently stored to disk and retrieved at a later time. +%endif + +%if %{dual_life} || %{rebuild_from_scratch} +%package Sys-Syslog +Summary: Perl interface to the UNIX syslog(3) calls +License: GPL+ or Artistic +Epoch: 0 +Version: 0.35 +Requires: %perl_compat +Requires: %{?scl_prefix}perl(XSLoader) +%if %{defined perl_bootstrap} +%gendep_perl_Sys_Syslog +%endif +Conflicts: %{?scl_prefix}perl < 4:5.16.3-269 + +%description Sys-Syslog +Sys::Syslog is an interface to the UNIX syslog(3) function. Call syslog() with +a string priority and a list of printf() arguments just like at syslog(3). +%endif + +%if %{dual_life} || %{rebuild_from_scratch} +%package Term-ANSIColor +Summary: Color screen output using ANSI escape sequences +License: GPL+ or Artistic +Epoch: 0 +Version: 4.06 +Requires: %perl_compat +Requires: %{?scl_prefix}perl(Carp) +%if %{defined perl_bootstrap} +%gendep_perl_Term_ANSIColor +%endif +BuildArch: noarch +Conflicts: %{?scl_prefix}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: %{?scl_prefix}perl(Carp) +%if %{defined perl_bootstrap} +%gendep_perl_Term_Cap +%endif +BuildArch: noarch +Conflicts: %{?scl_prefix}perl < 4:5.22.0-347 + +%description Term-Cap +These are low-level functions to extract and use capabilities from a terminal +capability (termcap) database. +%endif + +%package Test +Summary: Simple framework for writing test scripts +License: GPL+ or Artistic +Epoch: 0 +Version: 1.30 +Requires: %perl_compat +# Algorithm::Diff 1.15 is optional +Requires: %{?scl_prefix}perl(File::Temp) +%if %{defined perl_bootstrap} +%gendep_perl_Test +%endif +BuildArch: noarch +Conflicts: %{?scl_prefix}perl < 4:5.22.0-351 + +%description Test +The Test Perl module simplifies the task of writing test files for Perl modules, +such that their output is in the format that Test::Harness expects to see. + +%if %{dual_life} || %{rebuild_from_scratch} +%package Test-Harness +Summary: Run Perl standard test scripts with statistics +License: GPL+ or Artistic +Epoch: 1 +Version: 3.38 +Requires: %perl_compat +%if %{defined perl_bootstrap} +%gendep_perl_Test_Harness +%endif +BuildArch: noarch + +%description Test-Harness +Run Perl standard test scripts with statistics. +Use TAP::Parser, Test::Harness package was whole rewritten. +%endif + +%if %{dual_life} || %{rebuild_from_scratch} +%package Test-Simple +Summary: Basic utilities for writing tests +License: (GPL+ or Artistic) and CC0 and Public Domain +Epoch: 1 +Version: 1.302073 +Requires: %perl_compat +Requires: %{?scl_prefix}perl(Data::Dumper) +%if %{defined perl_bootstrap} +%gendep_perl_Test_Simple +%endif +BuildArch: noarch + +%description Test-Simple +Basic utilities for writing tests. +%endif + +%if %{dual_life} || %{rebuild_from_scratch} +%package Text-Balanced +Summary: Extract delimited text sequences from strings +License: GPL+ or Artistic +Epoch: 0 +Version: 2.03 +Requires: %perl_compat +%if %{defined perl_bootstrap} +%gendep_perl_Text_Balanced +%endif +BuildArch: noarch +Conflicts: %{?scl_prefix}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: %{?scl_prefix}perl(Carp) +%if %{defined perl_bootstrap} +%gendep_perl_Text_ParseWords +%endif +BuildArch: noarch +Conflicts: %{?scl_prefix}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: %{?scl_prefix}perl < 4:5.20.2-325 + +%description Text-Tabs+Wrap +Text::Tabs performs the same job that the UNIX expand(1) and unexpand(1) +commands do: adding or removing tabs from a document. + +Text::Wrap::wrap() will reformat lines into paragraphs. All it does is break +up long lines, it will not join short lines together. +%endif + +%if %{dual_life} || %{rebuild_from_scratch} +%package Thread-Queue +Summary: Thread-safe queues +License: GPL+ or Artistic +Epoch: 0 +Version: 3.12 +Requires: %perl_compat +Requires: %{?scl_prefix}perl(Carp) +%if %{defined perl_bootstrap} +%gendep_perl_Thread_Queue +%endif +BuildArch: noarch +Conflicts: %{?scl_prefix}perl < 4:5.16.2-257 + +%description Thread-Queue +This module provides thread-safe FIFO queues that can be accessed safely by +any number of threads. +%endif + +%if %{dual_life} || %{rebuild_from_scratch} +%package Time-HiRes +Summary: High resolution alarm, sleep, gettimeofday, interval timers +License: GPL+ or Artistic +Epoch: 0 +Version: 1.9741 +Requires: %perl_compat +Requires: %{?scl_prefix}perl(Carp) +%if %{defined perl_bootstrap} +%gendep_perl_Time_HiRes +%endif +Conflicts: %{?scl_prefix}perl < 4:5.16.3-271 + +%description Time-HiRes +The Time::HiRes module implements a Perl interface to the usleep, nanosleep, +ualarm, gettimeofday, and setitimer/getitimer system calls, in other words, +high resolution time and timers. +%endif + +%if %{dual_life} || %{rebuild_from_scratch} +%package Time-Local +Summary: Efficiently compute time from local and GMT time +License: GPL+ or Artistic +Epoch: 0 +# Real version 1.25 +Version: 1.250 +Requires: %perl_compat +%if %{defined perl_bootstrap} +%gendep_perl_Time_Local +%endif +BuildArch: noarch +Conflicts: %{?scl_prefix}perl < 4:5.16.3-262 + +%description Time-Local +This module provides functions that are the inverse of built-in perl functions +localtime() and gmtime(). They accept a date as a six-element array, and +return the corresponding time(2) value in seconds since the system epoch +(Midnight, January 1, 1970 GMT on Unix, for example). This value can be +positive or negative, though POSIX only requires support for positive values, +so dates before the system's epoch may not work on all operating systems. +%endif + +%package Time-Piece +Summary: Time objects from localtime and gmtime +License: (GPL+ or Artistic) and BSD +Epoch: 0 +Version: 1.31 +Requires: %perl_compat +%if %{defined perl_bootstrap} +%gendep_perl_Time_Piece +%endif + +%description Time-Piece +The Time::Piece module replaces the standard localtime and gmtime functions +with implementations that return objects. It does so in a backwards compatible +manner, so that using localtime or gmtime as documented in perlfunc still +behave as expected. + +%if %{dual_life} || %{rebuild_from_scratch} +%package threads +Summary: Perl interpreter-based threads +License: GPL+ or Artistic +Epoch: 1 +Version: 2.15 +Requires: %perl_compat +%if %{defined perl_bootstrap} +%gendep_perl_threads +%endif + +%description threads +Since Perl 5.8, thread programming has been available using a model called +interpreter threads which provides a new Perl interpreter for each thread, +and, by default, results in no data or state information being shared between +threads. + +(Prior to Perl 5.8, 5005threads was available through the Thread.pm API. This +threading model has been deprecated, and was removed as of Perl 5.10.0.) + +As just mentioned, all variables are, by default, thread local. To use shared +variables, you need to also load threads::shared. +%endif + +%if %{dual_life} || %{rebuild_from_scratch} +%package threads-shared +Summary: Perl extension for sharing data structures between threads +License: GPL+ or Artistic +Epoch: 0 +Version: 1.56 +Requires: %perl_compat +%if %{defined perl_bootstrap} +%gendep_perl_threads_shared +%endif + +%description threads-shared +By default, variables are private to each thread, and each newly created thread +gets a private copy of each existing variable. This module allows you to share +variables across different threads (and pseudo-forks on Win32). It is used +together with the threads module. This module supports the sharing of the +following data types only: scalars and scalar refs, arrays and array refs, and +hashes and hash refs. +%endif + +%if %{dual_life} || %{rebuild_from_scratch} +%package Unicode-Collate +Summary: Unicode Collation Algorithm +License: (GPL+ or Artistic) and Unicode +Epoch: 0 +Version: 1.19 +Requires: %perl_compat +Requires: %{?scl_prefix}perl(Unicode::Normalize) +%if %{defined perl_bootstrap} +%gendep_perl_Unicode_Collate +%endif +Conflicts: %{?scl_prefix}perl < 4:5.22.0-347 + +%description Unicode-Collate +This package is Perl implementation of Unicode Technical Standard #10 (Unicode +Collation Algorithm). +%endif + +%if %{dual_life} || %{rebuild_from_scratch} +%package Unicode-Normalize +Summary: Unicode Normalization Forms +License: GPL+ or Artistic +Epoch: 0 +Version: 1.25 +Requires: %perl_compat +# unicore/CombiningClass.pl and unicore/Decomposition.pl from perl, perl is +# auto-detected. +%if %{defined perl_bootstrap} +%gendep_perl_Unicode_Normalize +%endif +Conflicts: %{?scl_prefix}perl < 4:5.22.0-347 + +%description Unicode-Normalize +This package provides Perl functions that can convert strings into various +Unicode normalization forms as defined in Unicode Standard Annex #15. +%endif + +%if %{dual_life} || %{rebuild_from_scratch} +%package version +Summary: Perl extension for Version Objects +License: GPL+ or Artistic +# Epoch bump for clean upgrade over old standalone package +Epoch: 6 +# real version 0.9917 +Version: 0.99.17 +Requires: %perl_compat +%if %{defined perl_bootstrap} +%gendep_perl_version +%endif +BuildArch: noarch + +%description version +Perl extension for Version Objects +%endif + +%prep +%setup -q -n perl-%{perl_version} +%patch1 -p1 +%ifarch %{multilib_64_archs} +%patch3 -p1 +%endif +%patch4 -p1 +%patch5 -p1 +%patch6 -p1 +%patch7 -p1 +%patch8 -p1 +%patch15 -p1 +%patch16 -p1 +%patch22 -p1 +%patch26 -p1 +%patch30 -p1 +%patch31 -p1 +%patch34 -p1 +%patch35 -p1 +%patch36 -p1 +%patch38 -p1 +%patch43 -p1 +%patch45 -p1 +%patch46 -p1 +%patch47 -p1 +%patch48 -p1 +%patch49 -p1 +%patch51 -p1 +%patch52 -p1 +%patch54 -p1 +%patch55 -p1 +%patch56 -p1 +%patch58 -p1 +%patch59 -p1 +%patch60 -p1 +%patch61 -p1 +%patch62 -p1 +%patch63 -p1 +%patch200 -p1 +%patch201 -p1 +%patch300 -p1 +%patch301 -p1 + +# Update libperl soname +%{?scl:sed -i 's|@scl@|%{?scl_prefix}|g' Makefile.SH} +%{!?scl:sed -i 's|@scl@||g' Makefile.SH} + +%if !%{defined perl_bootstrap} +# Local patch tracking +perl -x patchlevel.h \ + 'Fedora Patch1: Removes date check, Fedora/RHEL specific' \ +%ifarch %{multilib_64_archs} \ + 'Fedora Patch3: support for libdir64' \ +%endif \ + 'Fedora Patch4: use libresolv instead of libbind' \ + 'Fedora Patch5: USE_MM_LD_RUN_PATH' \ + 'Fedora Patch6: Provide MM::maybe_command independently (bug #1129443)' \ + 'Fedora Patch7: Dont run one io test due to random builder failures' \ + 'Fedora Patch15: Define SONAME for libperl.so' \ + 'Fedora Patch16: Install libperl.so to -Dshrpdir value' \ + 'Fedora Patch22: Document Math::BigInt::CalcEmu requires Math::BigInt (CPAN RT#85015)' \ + 'Fedora Patch26: Make *DBM_File desctructors thread-safe (RT#61912)' \ + 'Fedora Patch27: Make PadlistNAMES() lvalue again (CPAN RT#101063)' \ + 'Fedora Patch30: Replace EU::MakeMaker dependency with EU::MM::Utils in IPC::Cmd (bug #1129443)' \ + 'Fedora Patch31: Make File::Glob more resistant against degenerative matching (RT#131211)' \ + 'Fedora Patch34: Fix cloning :via handles on thread creation (RT#131221)' \ + 'Fedora Patch36: Fix glob UTF-8 flag on a glob reassignment (RT#131263)' \ + 'Fedora Patch38: Fix handling backslashes in PATH environment variable when executing "perl -S" (RT#129183)' \ + 'Fedora Patch45: Fix File::Glob rt131211.t test random failures' \ + 'Fedora Patch46: Fix t/op/hash.t test random failures' \ + 'Fedora Patch47: Parse caret variables with subscripts as normal variables inside ${...} escaping (RT#131664)' \ + 'Fedora Patch49: Do not display too many bytes when reporting malformed UTF-8 character' \ + 'Fedora Patch51: Fix error message for "our sub foo::bar" (RT#131679)' \ + 'Fedora Patch52: Fix executing arybase::_tie_it() in Safe compartement (RT#131588)' \ + 'Fedora Patch54: Fix splitting non-ASCII strings if unicode_strings feature is enabled (RT#130907)' \ + 'Fedora Patch55: Fix compiler warnings in code generated by ExtUtils::Constant (CPAN RT#63832)' \ + 'Fedora Patch56: Fix compiler warnings in code generated by ExtUtils::Constant (CPAN RT#101487)' \ + 'Fedora Patch58: Fix unreliable Time-HiRes tests (CPAN RT#122819)' \ + 'RHEL Patch59: Fix CVE-2018-6798 (heap read overflow in regexec.c) (RT#132063)' \ + 'RHEL Patch63: Fix CVE-2018-6797 (heap write overflow in regcomp.c) (RT#132227)' \ + 'Fedora Patch200: Link XS modules to libperl.so with EU::CBuilder on Linux' \ + 'Fedora Patch201: Link XS modules to libperl.so with EU::MM on Linux' \ + %{nil} +%endif + +#copy the example script +cp -a %{SOURCE5} . + +#copy Pod-Html license clarification +cp %{SOURCE6} . + +# +# Candidates for doc recoding (need case by case review): +# find . -name "*.pod" -o -name "README*" -o -name "*.pm" | xargs file -i | grep charset= | grep -v '\(us-ascii\|utf-8\)' +recode() +{ + iconv -f "${2:-iso-8859-1}" -t utf-8 < "$1" > "${1}_" + touch -r "$1" "${1}_" + mv -f "${1}_" "$1" +} +# TODO iconv fail on this one +##recode README.tw big5 +#recode pod/perlebcdic.pod +#recode pod/perlhack.pod +#recode pod/perlhist.pod +#recode pod/perlthrtut.pod +#recode AUTHORS + +find . -name \*.orig -exec rm -fv {} \; + +# Configure Compress::Zlib to use system zlib +sed -i 's|BUILD_ZLIB = True|BUILD_ZLIB = False| + s|INCLUDE = ./zlib-src|INCLUDE = %{_root_includedir}| + s|LIB = ./zlib-src|LIB = %{_root_libdir}|' \ + cpan/Compress-Raw-Zlib/config.in + +# Ensure that we never accidentally bundle zlib or bzip2 +rm -rf cpan/Compress-Raw-Zlib/zlib-src +rm -rf cpan/Compress-Raw-Bzip2/bzip2-src +sed -i '/\(bzip2\|zlib\)-src/d' MANIFEST + +%if !%{with gdbm} +# Do not install anything requiring NDBM_File if NDBM is not available. +rm -rf 'cpan/Memoize/Memoize/NDBM_File.pm' +sed -i '\|cpan/Memoize/Memoize/NDBM_File.pm|d' MANIFEST +%endif + + +%build +echo "RPM Build arch: %{_arch}" + +# use "lib", not %%{_lib}, for privlib, sitelib, and vendorlib +# To build production version, we would need -DDEBUGGING=-g + +# Perl INC path (perl -V) in search order: +# - /usr/local/share/perl5 -- for CPAN (site lib) +# - /usr/local/lib[64]/perl5 -- for CPAN (site arch) +# - /usr/share/perl5/vendor_perl -- 3rd party (vendor lib) +# - /usr/lib[64]/perl5/vendor_perl -- 3rd party (vendor arch) +# - /usr/share/perl5 -- Fedora (priv lib) +# - /usr/lib[64]/perl5 -- Fedora (arch lib) + +%global privlib %{_prefix}/share/perl5 +%global archlib %{_libdir}/perl5 + +%global perl_vendorlib %{privlib}/vendor_perl +%global perl_vendorarch %{archlib}/vendor_perl + +# ldflags is not used when linking XS modules. +# Only ldflags is used when linking miniperl. +# Only ccflags and ldflags are used for Configure's compiler checks. +# Set optimize=none to prevent from injecting upstream's value. +/bin/sh Configure -des \ + -Doptimize="none" \ + -Dccflags="$RPM_OPT_FLAGS" \ + -Dldflags="$RPM_LD_FLAGS" \ + -Dccdlflags="-Wl,--enable-new-dtags $RPM_LD_FLAGS" \ + -Dlddlflags="-shared $RPM_LD_FLAGS %{?scl:-L%{_libdir}}" \ + -Dshrpdir="%{_libdir}" \ + -DDEBUGGING=-g \ + -Dversion=%{perl_version} \ + -Dmyhostname=localhost \ + -Dperladmin=root@localhost \ + -Dcc='%{__cc}' \ + -Dcf_by='Red Hat, Inc.' \ + -Dprefix=%{_prefix} \ +%if %{without perl_enables_groff} + -Dman1dir="%{_mandir}/man1" \ + -Dman3dir="%{_mandir}/man3" \ +%endif + -Dvendorprefix=%{_prefix} \ + -Dsiteprefix=%{_prefix}/local \ + -Dsitelib="%{_prefix}/local/share/perl5" \ + -Dsitearch="%{_prefix}/local/%{_lib}/perl5" \ + -Dprivlib="%{privlib}" \ + -Dvendorlib="%{perl_vendorlib}" \ + -Darchlib="%{archlib}" \ + -Dvendorarch="%{perl_vendorarch}" \ + -Darchname=%{perl_archname} \ +%ifarch %{multilib_64_archs} + -Dlibpth="/usr/local/lib64 /lib64 %{_root_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.%{?scl_prefix}%(echo '%{perl_version}' | sed 's/^\\([^.]*\\.[^.]*\\).*/\\1/') +test -L %soname || ln -s libperl.so %soname + +%ifarch sparc64 %{arm} +make +%else +make %{?_smp_mflags} +%endif + +%install +%{?scl:scl enable %{scl} '}make install DESTDIR=$RPM_BUILD_ROOT%{?scl:'} + +%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 + +# create directories in opt +mkdir -p $RPM_BUILD_ROOT%{privlib} +mkdir -p $RPM_BUILD_ROOT%{archlib} + +mkdir -p $RPM_BUILD_ROOT%{perl_vendorlib} +mkdir -p $RPM_BUILD_ROOT%{perl_vendorarch} + +# perl doesn't create the auto subdirectory, but modules put things in it, +# so we need to own it. +mkdir -p -m 755 %{build_archlib}/auto + +# Make proper DSO names, move libperl to standard path. +mv "%{build_archlib}/CORE/libperl.so" \ + "$RPM_BUILD_ROOT%{_libdir}/libperl.so.%{?scl_prefix}%{perl_version}" +ln -s "libperl.so.%{?scl_prefix}%{perl_version}" "$RPM_BUILD_ROOT%{_libdir}/%{soname}" +ln -s "libperl.so.%{?scl_prefix}%{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.%{?scl_prefix}%{perl_version}" "%{build_archlib}/CORE/libperl.so" +# XXX: Remove the soname named file from CORE directory that was created as +# a symlink in build section and installed as a regular file by perl build +# system. +rm -f "%{build_archlib}/CORE/%{soname}" + +install -p -m 755 utils/pl2pm %{build_bindir}/pl2pm + +for i in asm/termios.h syscall.h syslimits.h syslog.h \ + sys/ioctl.h sys/socket.h sys/time.h wait.h +do + %{new_perl} %{build_bindir}/h2ph -a -d %{build_archlib} $i || true +done + +# vendor directories (in this case for third party rpms) +# perl doesn't create the auto subdirectory, but modules put things in it, +# so we need to own it. + +mkdir -p $RPM_BUILD_ROOT%{perl_vendorarch}/auto +mkdir -p $RPM_BUILD_ROOT%{perl_vendorlib} + +# +# perl RPM macros +# +mkdir -p ${RPM_BUILD_ROOT}%{_rpmconfigdir}/macros.d +install -p -m 644 %{SOURCE3} ${RPM_BUILD_ROOT}%{_rpmconfigdir}/macros.d/macros.%{?scl}%{!?scl:perl} +%{?scl:sed -i 's|@scl@|%{scl_macro_prefix}|g' ${RPM_BUILD_ROOT}%{_rpmconfigdir}/macros.d/macros.%{scl}} +%{!?scl:sed -i 's|@scl@||g' ${RPM_BUILD_ROOT}%{_rpmconfigdir}/macros.d/macros.perl} + +# +# 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 + +%if %{with perl_enables_systemtap} +# Systemtap tapset install +mkdir -p %{buildroot}%{tapsetdir} +%ifarch %{multilib_64_archs} +%global libperl_stp libperl%{?scl_prefix}%{perl_version}-64.stp +%else +%global libperl_stp libperl%{?scl_prefix}%{perl_version}-32.stp +%endif + +sed \ + -e "s|LIBRARY_PATH|%{_libdir}/%{soname}|" \ + %{SOURCE4} \ + > %{buildroot}%{tapsetdir}/%{libperl_stp} +%endif + +# TODO: Canonicalize test files (rewrite intrerpreter path, fix permissions) +# XXX: We cannot rewrite ./perl before %%check phase. Otherwise the test +# would run against system perl at build-time. +# See __spec_check_pre global macro in macros.perl. +#T_FILES=`find %%{buildroot}%%{perl5_testdir} -type f -name '*.t'` +#%%fix_shbang_line $T_FILES +#%%{__chmod} +x $T_FILES +#%%{_fixperms} %%{buildroot}%%{perl5_testdir} +# +# lib/perl5db.t will fail if Term::ReadLine::Gnu is available +%check +%if %{with test} +%{new_perl} -I/lib regen/lib_cleanup.pl +pushd t +%{new_perl} -I../lib porting/customized.t --regen +popd +%if %{parallel_tests} + JOBS=$(printf '%%s' "%{?_smp_mflags}" | sed 's/.*-j\([0-9][0-9]*\).*/\1/') + LC_ALL=C TEST_JOBS=$JOBS %{?scl:scl enable %{scl} '}make test_harness%{?scl:'} +%else + LC_ALL=C %{?scl:scl enable %{scl} '}make test%{?scl:'} +%endif +%endif + +%post libs -p /sbin/ldconfig + +%postun libs -p /sbin/ldconfig + +%files +# We sub-package modules from perl-interpreter subpackage. Main perl package +# is a meta package. + +%files interpreter +%{_mandir}/man1/*.1* +%{_mandir}/man3/*.3* +%{_bindir}/* +%{archlib}/* +%{privlib}/* + + +# libs +%exclude %dir %{archlib} +%exclude %dir %{archlib}/auto +%exclude %{archlib}/auto/re +%exclude %dir %{archlib}/CORE +%exclude %{archlib}/CORE/libperl.so +%exclude %{archlib}/re.pm +%exclude %{_libdir}/libperl.so.* +%exclude %dir %{perl_vendorarch} +%exclude %dir %{perl_vendorarch}/auto +%exclude %dir %{privlib} +%exclude %{privlib}/integer.pm +%exclude %{privlib}/strict.pm +%exclude %{privlib}/unicore +%exclude %{privlib}/utf8.pm +%exclude %{privlib}/utf8_heavy.pl +%exclude %{privlib}/warnings.pm +%exclude %{privlib}/XSLoader.pm +%exclude %dir %{perl_vendorlib} +%exclude %{_mandir}/man3/integer.* +%exclude %{_mandir}/man3/re.* +%exclude %{_mandir}/man3/strict.* +%exclude %{_mandir}/man3/utf8.* +%exclude %{_mandir}/man3/warnings.* +%exclude %{_mandir}/man3/XSLoader.* + +# devel +%exclude %{_bindir}/h2xs +%exclude %{_mandir}/man1/h2xs* +%exclude %{_bindir}/perlivp +%exclude %{_mandir}/man1/perlivp* +%exclude %{archlib}/CORE/*.h +%exclude %{_libdir}/libperl.so +%exclude %{_mandir}/man1/perlxs* +%if %{with perl_enables_systemtap} +%exclude %dir %{_datadir}/systemtap +%exclude %dir %{_datadir}/systemtap/tapset +%endif + +# utils +%exclude %{_bindir}/h2ph +%exclude %{_bindir}/perlbug +%exclude %{_bindir}/perlthanks +%exclude %{_bindir}/pl2pm +%exclude %{_bindir}/splain +%exclude %{privlib}/pod/perlutil.pod +%exclude %{_mandir}/man1/h2ph.* +%exclude %{_mandir}/man1/perlbug.* +%exclude %{_mandir}/man1/perlthanks.* +%exclude %{_mandir}/man1/perlutil.* +%exclude %{_mandir}/man1/pl2pm.* +%exclude %{_mandir}/man1/splain.* + +# Archive-Tar +%exclude %{_bindir}/ptar +%exclude %{_bindir}/ptardiff +%exclude %{_bindir}/ptargrep +%exclude %dir %{privlib}/Archive +%exclude %{privlib}/Archive/Tar +%exclude %{privlib}/Archive/Tar.pm +%exclude %{_mandir}/man1/ptar.1* +%exclude %{_mandir}/man1/ptardiff.1* +%exclude %{_mandir}/man1/ptargrep.1* +%exclude %{_mandir}/man3/Archive::Tar* + +# Attribute-Handlers +%exclude %{privlib}/Attribute +%exclude %{_mandir}/man3/Attribute::Handlers.* + +# autodie +%exclude %{privlib}/autodie/ +%exclude %{privlib}/autodie.pm +%exclude %{privlib}/Fatal.pm +%exclude %{_mandir}/man3/autodie.3* +%exclude %{_mandir}/man3/autodie::* +%exclude %{_mandir}/man3/Fatal.3* + +# B-Debug +%exclude %{privlib}/B/Debug.pm +%exclude %{_mandir}/man3/B::Debug.3* + +# bignum +%exclude %{privlib}/bigint.pm +%exclude %{privlib}/bignum.pm +%exclude %{privlib}/bigrat.pm +%exclude %{privlib}/Math/BigFloat +%exclude %{privlib}/Math/BigInt/Trace.pm +%exclude %{_mandir}/man3/bigint.* +%exclude %{_mandir}/man3/bignum.* +%exclude %{_mandir}/man3/bigrat.* + +# Carp +%exclude %{privlib}/Carp +%exclude %{privlib}/Carp.* +%exclude %{_mandir}/man3/Carp.* + +# Config-Perl-V +%exclude %{privlib}/Config/Perl +%exclude %{_mandir}/man3/Config::Perl::V.* + +# constant +%exclude %{privlib}/constant.pm +%exclude %{_mandir}/man3/constant.3* + +# CPAN +%exclude %{_bindir}/cpan +%exclude %dir %{privlib}/App +%exclude %{privlib}/App/Cpan.pm +%exclude %{privlib}/CPAN +%exclude %{privlib}/CPAN.pm +%exclude %{_mandir}/man1/cpan.1* +%exclude %{_mandir}/man3/App::Cpan.* +%exclude %{_mandir}/man3/CPAN.* +%exclude %{_mandir}/man3/CPAN:* + +# CPAN-Meta +%exclude %dir %{privlib}/CPAN +%exclude %{privlib}/CPAN/Meta.pm +%exclude %dir %{privlib}/CPAN/Meta +%exclude %{privlib}/CPAN/Meta/Converter.pm +%exclude %{privlib}/CPAN/Meta/Feature.pm +%exclude %dir %{privlib}/CPAN/Meta/History +%exclude %{privlib}/CPAN/Meta/History.pm +%exclude %{privlib}/CPAN/Meta/Merge.pm +%exclude %{privlib}/CPAN/Meta/Prereqs.pm +%exclude %{privlib}/CPAN/Meta/Spec.pm +%exclude %{privlib}/CPAN/Meta/Validator.pm +%exclude %dir %{privlib}/Parse +%exclude %dir %{privlib}/Parse/CPAN +%exclude %{privlib}/Parse/CPAN/Meta.pm +%exclude %{_mandir}/man3/CPAN::Meta* +%exclude %{_mandir}/man3/Parse::CPAN::Meta.3* + +# CPAN-Meta-Requirements +%exclude %dir %{privlib}/CPAN +%exclude %dir %{privlib}/CPAN/Meta +%exclude %{privlib}/CPAN/Meta/Requirements.pm +%exclude %{_mandir}/man3/CPAN::Meta::Requirements.3* + +# CPAN-Meta-YAML +%exclude %dir %{privlib}/CPAN +%exclude %dir %{privlib}/CPAN/Meta +%exclude %{privlib}/CPAN/Meta/YAML.pm +%exclude %{_mandir}/man3/CPAN::Meta::YAML* + +# Compress-Raw-Bzip2 +%exclude %dir %{archlib}/Compress +%exclude %dir %{archlib}/Compress/Raw +%exclude %{archlib}/Compress/Raw/Bzip2.pm +%exclude %dir %{archlib}/auto/Compress +%exclude %dir %{archlib}/auto/Compress/Raw +%exclude %{archlib}/auto/Compress/Raw/Bzip2 +%exclude %{_mandir}/man3/Compress::Raw::Bzip2* + +# Compress-Raw-Zlib +%exclude %dir %{archlib}/Compress +%exclude %dir %{archlib}/Compress/Raw +%exclude %{archlib}/Compress/Raw/Zlib.pm +%exclude %dir %{archlib}/auto/Compress +%exclude %dir %{archlib}/auto/Compress/Raw +%exclude %{archlib}/auto/Compress/Raw/Zlib +%exclude %{_mandir}/man3/Compress::Raw::Zlib* + +# Data-Dumper +%exclude %dir %{archlib}/auto/Data +%exclude %dir %{archlib}/auto/Data/Dumper +%exclude %{archlib}/auto/Data/Dumper/Dumper.so +%exclude %dir %{archlib}/Data +%exclude %{archlib}/Data/Dumper.pm +%exclude %{_mandir}/man3/Data::Dumper.3* + +# DB_File +%exclude %{archlib}/DB_File.pm +%exclude %dir %{archlib}/auto/DB_File +%exclude %{archlib}/auto/DB_File/DB_File.so +%exclude %{_mandir}/man3/DB_File* + +# Devel-Peek +%dir %exclude %{archlib}/Devel +%exclude %{archlib}/Devel/Peek.pm +%dir %exclude %{archlib}/auto/Devel +%exclude %{archlib}/auto/Devel/Peek +%exclude %{_mandir}/man3/Devel::Peek.* + +# Devel-PPPort +%exclude %{archlib}/Devel/PPPort.pm +%exclude %{_mandir}/man3/Devel::PPPort.3* + +# Devel-SelfStubber +%exclude %dir %{privlib}/Devel +%exclude %{privlib}/Devel/SelfStubber.pm +%exclude %{_mandir}/man3/Devel::SelfStubber.* + +# Digest +%exclude %{privlib}/Digest.pm +%exclude %dir %{privlib}/Digest +%exclude %{privlib}/Digest/base.pm +%exclude %{privlib}/Digest/file.pm +%exclude %{_mandir}/man3/Digest.3* +%exclude %{_mandir}/man3/Digest::base.3* +%exclude %{_mandir}/man3/Digest::file.3* + +# Digest-MD5 +%exclude %dir %{archlib}/Digest +%exclude %{archlib}/Digest/MD5.pm +%exclude %dir %{archlib}/auto/Digest +%exclude %{archlib}/auto/Digest/MD5 +%exclude %{_mandir}/man3/Digest::MD5.3* + +# Digest-SHA +%exclude %{_bindir}/shasum +%exclude %dir %{archlib}/Digest +%exclude %{archlib}/Digest/SHA.pm +%exclude %dir %{archlib}/auto/Digest +%exclude %{archlib}/auto/Digest/SHA +%exclude %{_mandir}/man1/shasum.1* +%exclude %{_mandir}/man3/Digest::SHA.3* + +# Encode +%exclude %{_bindir}/encguess +%exclude %{_bindir}/piconv +%exclude %{archlib}/Encode* +%exclude %{archlib}/auto/Encode* +%exclude %{privlib}/Encode +%exclude %{_mandir}/man1/encguess.1* +%exclude %{_mandir}/man1/piconv.1* +%exclude %{_mandir}/man3/Encode*.3* + +# encoding +%exclude %{archlib}/encoding.pm +%exclude %{_mandir}/man3/encoding.3* + +# Encode-devel +%exclude %{_bindir}/enc2xs +%exclude %dir %{privlib}/Encode +%exclude %{privlib}/Encode/*.e2x +%exclude %{privlib}/Encode/encode.h +%exclude %{_mandir}/man1/enc2xs.1* + +# Env +%exclude %{privlib}/Env.pm +%exclude %{_mandir}/man3/Env.3* + +# Errno +%exclude %{archlib}/Errno.pm +%exclude %{_mandir}/man3/Errno.* + +# Exporter +%exclude %{privlib}/Exporter* +%exclude %{_mandir}/man3/Exporter* + +# experimental +%exclude %{privlib}/experimental* +%exclude %{_mandir}/man3/experimental* + +# ExtUtils-CBuilder +%exclude %{privlib}/ExtUtils/CBuilder +%exclude %{privlib}/ExtUtils/CBuilder.pm +%exclude %{_mandir}/man3/ExtUtils::CBuilder* + +# ExtUtils-Command +%exclude %{privlib}/ExtUtils/Command.pm +%exclude %{_mandir}/man3/ExtUtils::Command.* + +# ExtUtils-Embed +%exclude %{privlib}/ExtUtils/Embed.pm +%exclude %{_mandir}/man3/ExtUtils::Embed* + +# ExtUtils-Install +%exclude %{privlib}/ExtUtils/Install.pm +%exclude %{privlib}/ExtUtils/Installed.pm +%exclude %{privlib}/ExtUtils/Packlist.pm +%exclude %{_mandir}/man3/ExtUtils::Install.3* +%exclude %{_mandir}/man3/ExtUtils::Installed.3* +%exclude %{_mandir}/man3/ExtUtils::Packlist.3* + +# ExtUtils-Manifest +%exclude %{privlib}/ExtUtils/Manifest.pm +%exclude %{privlib}/ExtUtils/MANIFEST.SKIP +%exclude %{_mandir}/man3/ExtUtils::Manifest.3* + +# ExtUtils-MakeMaker +%exclude %{_bindir}/instmodsh +%exclude %{privlib}/ExtUtils/Command +%exclude %{privlib}/ExtUtils/Liblist +%exclude %{privlib}/ExtUtils/Liblist.pm +%exclude %{privlib}/ExtUtils/MakeMaker +%exclude %{privlib}/ExtUtils/MakeMaker.pm +%exclude %{privlib}/ExtUtils/MM.pm +%exclude %{privlib}/ExtUtils/MM_*.pm +%exclude %{privlib}/ExtUtils/MY.pm +%exclude %{privlib}/ExtUtils/Mkbootstrap.pm +%exclude %{privlib}/ExtUtils/Mksymlists.pm +%exclude %{privlib}/ExtUtils/testlib.pm +%exclude %{_mandir}/man1/instmodsh.1* +%exclude %{_mandir}/man3/ExtUtils::Command::MM* +%exclude %{_mandir}/man3/ExtUtils::Liblist.3* +%exclude %{_mandir}/man3/ExtUtils::MM.3* +%exclude %{_mandir}/man3/ExtUtils::MM_* +%exclude %{_mandir}/man3/ExtUtils::MY.3* +%exclude %{_mandir}/man3/ExtUtils::MakeMaker* +%exclude %{_mandir}/man3/ExtUtils::Mkbootstrap.3* +%exclude %{_mandir}/man3/ExtUtils::Mksymlists.3* +%exclude %{_mandir}/man3/ExtUtils::testlib.3* + +# ExtUtils-Miniperl +%exclude %{privlib}/ExtUtils/Miniperl.pm +%exclude %{_mandir}/man3/ExtUtils::Miniperl.3* + +# ExtUtils-MM-Utils +%exclude %dir %{privlib}/ExtUtils/MM +%exclude %{privlib}/ExtUtils/MM/Utils.pm +%exclude %{_mandir}/man3/ExtUtils::MM::Utils.* + +# ExtUtils-ParseXS +%exclude %dir %{privlib}/ExtUtils/ParseXS +%exclude %{privlib}/ExtUtils/ParseXS.pm +%exclude %{privlib}/ExtUtils/ParseXS.pod +%exclude %{privlib}/ExtUtils/ParseXS/Constants.pm +%exclude %{privlib}/ExtUtils/ParseXS/CountLines.pm +%exclude %{privlib}/ExtUtils/ParseXS/Eval.pm +%exclude %{privlib}/ExtUtils/ParseXS/Utilities.pm +%exclude %dir %{privlib}/ExtUtils/Typemaps +%exclude %{privlib}/ExtUtils/Typemaps.pm +%exclude %{privlib}/ExtUtils/Typemaps/Cmd.pm +%exclude %{privlib}/ExtUtils/Typemaps/InputMap.pm +%exclude %{privlib}/ExtUtils/Typemaps/OutputMap.pm +%exclude %{privlib}/ExtUtils/Typemaps/Type.pm +%exclude %{privlib}/ExtUtils/xsubpp +%exclude %{_bindir}/xsubpp +%exclude %{_mandir}/man1/xsubpp* +%exclude %{_mandir}/man3/ExtUtils::ParseXS.3* +%exclude %{_mandir}/man3/ExtUtils::ParseXS::Constants.3* +%exclude %{_mandir}/man3/ExtUtils::ParseXS::Eval.3* +%exclude %{_mandir}/man3/ExtUtils::ParseXS::Utilities.3* +%exclude %{_mandir}/man3/ExtUtils::Typemaps.3* +%exclude %{_mandir}/man3/ExtUtils::Typemaps::Cmd.3* +%exclude %{_mandir}/man3/ExtUtils::Typemaps::InputMap.3* +%exclude %{_mandir}/man3/ExtUtils::Typemaps::OutputMap.3* +%exclude %{_mandir}/man3/ExtUtils::Typemaps::Type.3* + +# File-Fetch +%exclude %{privlib}/File/Fetch.pm +%exclude %{_mandir}/man3/File::Fetch.3* + +# File-Path +%exclude %{privlib}/File/Path.pm +%exclude %{_mandir}/man3/File::Path.3* + +# File-Temp +%exclude %{privlib}/File/Temp.pm +%exclude %{_mandir}/man3/File::Temp.3* + +# Filter +%exclude %dir %{archlib}/auto/Filter +%exclude %{archlib}/auto/Filter/Util +%exclude %dir %{archlib}/Filter +%exclude %{archlib}/Filter/Util +%exclude %{privlib}/pod/perlfilter.pod +%exclude %{_mandir}/man1/perlfilter.* +%exclude %{_mandir}/man3/Filter::Util::* + +# Filter-Simple +%exclude %dir %{privlib}/Filter +%exclude %{privlib}/Filter/Simple.pm +%exclude %{_mandir}/man3/Filter::Simple.3* + +# Getopt-Long +%exclude %{privlib}/Getopt/Long.pm +%exclude %{_mandir}/man3/Getopt::Long.3* + +# IO +%exclude %dir %{archlib}/IO +%exclude %{archlib}/IO.pm +%exclude %{archlib}/IO/Dir.pm +%exclude %{archlib}/IO/File.pm +%exclude %{archlib}/IO/Handle.pm +%exclude %{archlib}/IO/Pipe.pm +%exclude %{archlib}/IO/Poll.pm +%exclude %{archlib}/IO/Seekable.pm +%exclude %{archlib}/IO/Select.pm +%exclude %dir %{archlib}/IO/Socket +%exclude %{archlib}/IO/Socket/INET.pm +%exclude %{archlib}/IO/Socket/UNIX.pm +%exclude %{archlib}/IO/Socket.pm +%exclude %dir %{archlib}/auto/IO +%exclude %{archlib}/auto/IO/IO.so +%exclude %{_mandir}/man3/IO.* +%exclude %{_mandir}/man3/IO::Dir.* +%exclude %{_mandir}/man3/IO::File.* +%exclude %{_mandir}/man3/IO::Handle.* +%exclude %{_mandir}/man3/IO::Pipe.* +%exclude %{_mandir}/man3/IO::Poll.* +%exclude %{_mandir}/man3/IO::Seekable.* +%exclude %{_mandir}/man3/IO::Select.* +%exclude %{_mandir}/man3/IO::Socket::INET.* +%exclude %{_mandir}/man3/IO::Socket::UNIX.* +%exclude %{_mandir}/man3/IO::Socket.* + +# IO-Compress +%exclude %{_bindir}/zipdetails +%exclude %dir %{privlib}/IO +%exclude %dir %{privlib}/IO/Compress +%exclude %{privlib}/IO/Compress/FAQ.pod +%exclude %{_mandir}/man1/zipdetails.* +%exclude %{_mandir}/man3/IO::Compress::FAQ.* +# Compress-Zlib +%exclude %dir %{privlib}/Compress +%exclude %{privlib}/Compress/Zlib.pm +%exclude %{_mandir}/man3/Compress::Zlib* +# IO-Compress-Base +%exclude %{privlib}/File/GlobMapper.pm +%exclude %dir %{privlib}/IO +%exclude %dir %{privlib}/IO/Compress +%exclude %{privlib}/IO/Compress/Base +%exclude %{privlib}/IO/Compress/Base.pm +%exclude %dir %{privlib}/IO/Uncompress +%exclude %{privlib}/IO/Uncompress/AnyUncompress.pm +%exclude %{privlib}/IO/Uncompress/Base.pm +%exclude %{_mandir}/man3/File::GlobMapper.* +%exclude %{_mandir}/man3/IO::Compress::Base.* +%exclude %{_mandir}/man3/IO::Uncompress::AnyUncompress.* +%exclude %{_mandir}/man3/IO::Uncompress::Base.* +# IO-Compress-Zlib +%exclude %dir %{privlib}/IO +%exclude %dir %{privlib}/IO/Compress +%exclude %{privlib}/IO/Compress/Adapter +%exclude %{privlib}/IO/Compress/Deflate.pm +%exclude %{privlib}/IO/Compress/Gzip +%exclude %{privlib}/IO/Compress/Gzip.pm +%exclude %{privlib}/IO/Compress/RawDeflate.pm +%exclude %{privlib}/IO/Compress/Bzip2.pm +%exclude %{privlib}/IO/Compress/Zip +%exclude %{privlib}/IO/Compress/Zip.pm +%exclude %{privlib}/IO/Compress/Zlib +%exclude %dir %{privlib}/IO/Uncompress +%exclude %{privlib}/IO/Uncompress/Adapter +%exclude %{privlib}/IO/Uncompress/AnyInflate.pm +%exclude %{privlib}/IO/Uncompress/Bunzip2.pm +%exclude %{privlib}/IO/Uncompress/Gunzip.pm +%exclude %{privlib}/IO/Uncompress/Inflate.pm +%exclude %{privlib}/IO/Uncompress/RawInflate.pm +%exclude %{privlib}/IO/Uncompress/Unzip.pm +%exclude %{_mandir}/man3/IO::Compress::Deflate* +%exclude %{_mandir}/man3/IO::Compress::Bzip2* +%exclude %{_mandir}/man3/IO::Compress::Gzip* +%exclude %{_mandir}/man3/IO::Compress::RawDeflate* +%exclude %{_mandir}/man3/IO::Compress::Zip* +%exclude %{_mandir}/man3/IO::Uncompress::AnyInflate* +%exclude %{_mandir}/man3/IO::Uncompress::Bunzip2* +%exclude %{_mandir}/man3/IO::Uncompress::Gunzip* +%exclude %{_mandir}/man3/IO::Uncompress::Inflate* +%exclude %{_mandir}/man3/IO::Uncompress::RawInflate* +%exclude %{_mandir}/man3/IO::Uncompress::Unzip* + +# IO-Socket-IP +%exclude %dir %{privlib}/IO +%exclude %dir %{privlib}/IO/Socket +%exclude %{privlib}/IO/Socket/IP.pm +%exclude %{_mandir}/man3/IO::Socket::IP.* + +# IO-Zlib +%exclude %dir %{privlib}/IO +%exclude %{privlib}/IO/Zlib.pm +%exclude %{_mandir}/man3/IO::Zlib.* + +# HTTP-Tiny +%exclude %dir %{privlib}/HTTP +%exclude %{privlib}/HTTP/Tiny.pm +%exclude %{_mandir}/man3/HTTP::Tiny* + +# IPC-Cmd +%exclude %{privlib}/IPC/Cmd.pm +%exclude %{_mandir}/man3/IPC::Cmd.3* + +# IPC-SysV +%exclude %{archlib}/auto/IPC +%exclude %{archlib}/IPC/Msg.pm +%exclude %{archlib}/IPC/Semaphore.pm +%exclude %{archlib}/IPC/SharedMem.pm +%exclude %{archlib}/IPC/SysV.pm +%exclude %{_mandir}/man3/IPC::Msg.* +%exclude %{_mandir}/man3/IPC::Semaphore.* +%exclude %{_mandir}/man3/IPC::SharedMem.* +%exclude %{_mandir}/man3/IPC::SysV.* + +# JSON-PP +%exclude %{_bindir}/json_pp +%exclude %dir %{privlib}/JSON +%exclude %{privlib}/JSON/PP +%exclude %{privlib}/JSON/PP.pm +%exclude %{_mandir}/man1/json_pp.1* +%exclude %{_mandir}/man3/JSON::PP.3* +%exclude %{_mandir}/man3/JSON::PP::Boolean.3pm* + +# libnet +%exclude %{privlib}/Net/Cmd.pm +%exclude %{privlib}/Net/Config.pm +%exclude %{privlib}/Net/Domain.pm +%exclude %{privlib}/Net/FTP +%exclude %{privlib}/Net/FTP.pm +%exclude %{privlib}/Net/libnetFAQ.pod +%exclude %{privlib}/Net/NNTP.pm +%exclude %{privlib}/Net/Netrc.pm +%exclude %{privlib}/Net/POP3.pm +%exclude %{privlib}/Net/SMTP.pm +%exclude %{privlib}/Net/Time.pm +%exclude %{_mandir}/man3/Net::Cmd.* +%exclude %{_mandir}/man3/Net::Config.* +%exclude %{_mandir}/man3/Net::Domain.* +%exclude %{_mandir}/man3/Net::FTP.* +%exclude %{_mandir}/man3/Net::libnetFAQ.* +%exclude %{_mandir}/man3/Net::NNTP.* +%exclude %{_mandir}/man3/Net::Netrc.* +%exclude %{_mandir}/man3/Net::POP3.* +%exclude %{_mandir}/man3/Net::SMTP.* +%exclude %{_mandir}/man3/Net::Time.* + +# libnetcfg +%exclude %{_bindir}/libnetcfg +%exclude %{_mandir}/man1/libnetcfg* + +# Locale-Codes +%exclude %dir %{privlib}/Locale +%exclude %{privlib}/Locale/Codes +%exclude %{privlib}/Locale/Codes.* +%exclude %{privlib}/Locale/Country.* +%exclude %{privlib}/Locale/Currency.* +%exclude %{privlib}/Locale/Language.* +%exclude %{privlib}/Locale/Script.* +%exclude %{_mandir}/man3/Locale::Codes::* +%exclude %{_mandir}/man3/Locale::Codes.* +%exclude %{_mandir}/man3/Locale::Country.* +%exclude %{_mandir}/man3/Locale::Currency.* +%exclude %{_mandir}/man3/Locale::Language.* +%exclude %{_mandir}/man3/Locale::Script.* + +# Locale-Maketext +%exclude %dir %{privlib}/Locale +%exclude %dir %{privlib}/Locale/Maketext +%exclude %{privlib}/Locale/Maketext.* +%exclude %{privlib}/Locale/Maketext/Cookbook.* +%exclude %{privlib}/Locale/Maketext/Guts.* +%exclude %{privlib}/Locale/Maketext/GutsLoader.* +%exclude %{privlib}/Locale/Maketext/TPJ13.* +%exclude %{_mandir}/man3/Locale::Maketext.* +%exclude %{_mandir}/man3/Locale::Maketext::Cookbook.* +%exclude %{_mandir}/man3/Locale::Maketext::Guts.* +%exclude %{_mandir}/man3/Locale::Maketext::GutsLoader.* +%exclude %{_mandir}/man3/Locale::Maketext::TPJ13.* + +# Locale-Maketext-Simple +%exclude %dir %{privlib}/Locale +%exclude %dir %{privlib}/Locale/Maketext +%exclude %{privlib}/Locale/Maketext/Simple.pm +%exclude %{_mandir}/man3/Locale::Maketext::Simple.* + +# Math-BigInt +%exclude %{privlib}/Math/BigFloat.pm +%exclude %{privlib}/Math/BigInt.pm +%exclude %dir %exclude %{privlib}/Math/BigInt +%exclude %{privlib}/Math/BigInt/Calc.pm +%exclude %{privlib}/Math/BigInt/CalcEmu.pm +%exclude %{privlib}/Math/BigInt/Lib.pm +%exclude %{_mandir}/man3/Math::BigFloat.* +%exclude %{_mandir}/man3/Math::BigInt.* +%exclude %{_mandir}/man3/Math::BigInt::Calc.* +%exclude %{_mandir}/man3/Math::BigInt::CalcEmu.* +%exclude %{_mandir}/man3/Math::BigInt::Lib.* + +# Math-BigInt-FastCalc +%exclude %{archlib}/Math +%exclude %{archlib}/auto/Math +%exclude %{_mandir}/man3/Math::BigInt::FastCalc.* + +# Math-BigRat +%exclude %{privlib}/Math/BigRat.pm +%exclude %{_mandir}/man3/Math::BigRat.* + +# Math-Complex +%dir %exclude %{privlib}/Math +%exclude %{privlib}/Math/Complex.pm +%exclude %{privlib}/Math/Trig.pm +%exclude %{_mandir}/man3/Math::Complex.* +%exclude %{_mandir}/man3/Math::Trig.* + +# Memoize +%exclude %{privlib}/Memoize +%exclude %{privlib}/Memoize.pm +%exclude %{_mandir}/man3/Memoize::* +%exclude %{_mandir}/man3/Memoize.* + +# MIME-Base64 +%exclude %{archlib}/auto/MIME +%exclude %{archlib}/MIME +%exclude %{_mandir}/man3/MIME::* + +# Module-CoreList +%exclude %dir %{privlib}/Module +%exclude %{privlib}/Module/CoreList +%exclude %{privlib}/Module/CoreList.pm +%exclude %{privlib}/Module/CoreList.pod +%exclude %{_mandir}/man3/Module::CoreList* + +# Module-CoreList-tools +%exclude %{_bindir}/corelist +%exclude %{_mandir}/man1/corelist* + +# Module-Load +%exclude %dir %{privlib}/Module +%exclude %{privlib}/Module/Load.pm +%exclude %{_mandir}/man3/Module::Load.* + +# Module-Load-Conditional +%exclude %dir %{privlib}/Module +%exclude %{privlib}/Module/Load +%exclude %{_mandir}/man3/Module::Load::Conditional* + +# Module-Loaded +%exclude %dir %{privlib}/Module +%exclude %{privlib}/Module/Loaded.pm +%exclude %{_mandir}/man3/Module::Loaded* + +# Module-Metadata +%exclude %dir %{privlib}/Module +%exclude %{privlib}/Module/Metadata.pm +%exclude %{_mandir}/man3/Module::Metadata.3pm* + +# Net-Ping +%exclude %{privlib}/Net/Ping.pm +%exclude %{_mandir}/man3/Net::Ping.* + +# PathTools +%exclude %{archlib}/Cwd.pm +%exclude %{archlib}/File/Spec* +%exclude %{archlib}/auto/Cwd/ +%exclude %{_mandir}/man3/Cwd* +%exclude %{_mandir}/man3/File::Spec* + +# Params-Check +%exclude %{privlib}/Params/ +%exclude %{_mandir}/man3/Params::Check* + +# perlfaq +%exclude %{privlib}/perlfaq.pm +%exclude %{privlib}/pod/perlfaq* +%exclude %{privlib}/pod/perlglossary.pod +%exclude %{_mandir}/man1/perlfaq* +%exclude %{_mandir}/man1/perlglossary.* + +# PerlIO-via-QuotedPrint +%exclude %{privlib}/PerlIO +%exclude %{_mandir}/man3/PerlIO::via::QuotedPrint.* + +# Perl-OSType +%exclude %dir %{privlib}/Perl +%exclude %{privlib}/Perl/OSType.pm +%exclude %{_mandir}/man3/Perl::OSType.3pm* + +# open +%exclude %{privlib}/open.pm +%exclude %{_mandir}/man3/open.3* + +# parent +%exclude %{privlib}/parent.pm +%exclude %{_mandir}/man3/parent.3* + +# Pod-Checker +%exclude %{_bindir}/podchecker +%exclude %{privlib}/Pod/Checker.pm +%exclude %{_mandir}/man1/podchecker.* +%exclude %{_mandir}/man3/Pod::Checker.* + +# Pod-Escapes +%exclude %{privlib}/Pod/Escapes.pm +%exclude %{_mandir}/man3/Pod::Escapes.* + +# Pod-Html +%exclude %{_bindir}/pod2html +%exclude %{privlib}/Pod/Html.pm +%exclude %{_mandir}/man1/pod2html.1* +%exclude %{_mandir}/man3/Pod::Html.* + +# Pod-Parser +%exclude %{_bindir}/podselect +%exclude %{privlib}/Pod/Find.pm +%exclude %{privlib}/Pod/InputObjects.pm +%exclude %{privlib}/Pod/ParseUtils.pm +%exclude %{privlib}/Pod/Parser.pm +%exclude %{privlib}/Pod/PlainText.pm +%exclude %{privlib}/Pod/Select.pm +%exclude %{_mandir}/man1/podselect.1* +%exclude %{_mandir}/man3/Pod::Find.* +%exclude %{_mandir}/man3/Pod::InputObjects.* +%exclude %{_mandir}/man3/Pod::ParseUtils.* +%exclude %{_mandir}/man3/Pod::Parser.* +%exclude %{_mandir}/man3/Pod::PlainText.* +%exclude %{_mandir}/man3/Pod::Select.* + +# Pod-Perldoc +%exclude %{_bindir}/perldoc +%exclude %{privlib}/pod/perldoc.pod +%exclude %{privlib}/Pod/Perldoc.pm +%exclude %{privlib}/Pod/Perldoc/ +%exclude %{_mandir}/man1/perldoc.1* +%exclude %{_mandir}/man3/Pod::Perldoc* + +# Pod-Usage +%exclude %{_bindir}/pod2usage +%exclude %{privlib}/Pod/Usage.pm +%exclude %{_mandir}/man1/pod2usage.* +%exclude %{_mandir}/man3/Pod::Usage.* + +# podlators +%exclude %{_bindir}/pod2man +%exclude %{_bindir}/pod2text +%exclude %{privlib}/pod/perlpodstyle.pod +%exclude %{privlib}/Pod/Man.pm +%exclude %{privlib}/Pod/ParseLink.pm +%exclude %{privlib}/Pod/Text +%exclude %{privlib}/Pod/Text.pm +%exclude %{_mandir}/man1/pod2man.1* +%exclude %{_mandir}/man1/pod2text.1* +%exclude %{_mandir}/man1/perlpodstyle.1* +%exclude %{_mandir}/man3/Pod::Man* +%exclude %{_mandir}/man3/Pod::ParseLink* +%exclude %{_mandir}/man3/Pod::Text* + +# Pod-Simple +%exclude %{privlib}/Pod/Simple/ +%exclude %{privlib}/Pod/Simple.pm +%exclude %{privlib}/Pod/Simple.pod +%exclude %{_mandir}/man3/Pod::Simple* + +# Scalar-List-Utils +%exclude %{archlib}/List/ +%exclude %{archlib}/Scalar/ +%exclude %{archlib}/Sub/ +%exclude %{archlib}/auto/List/ +%exclude %{_mandir}/man3/List::Util* +%exclude %{_mandir}/man3/Scalar::Util* +%exclude %{_mandir}/man3/Sub::Util* + +# SelfLoader +%exclude %{privlib}/SelfLoader.pm +%exclude %{_mandir}/man3/SelfLoader* + +# Storable +%exclude %{archlib}/Storable.pm +%exclude %{archlib}/auto/Storable/ +%exclude %{_mandir}/man3/Storable.* + +# Sys-Syslog +%exclude %{archlib}/Sys/Syslog.pm +%exclude %{archlib}/auto/Sys/Syslog/ +%exclude %{_mandir}/man3/Sys::Syslog.* + +# Term-ANSIColor +%exclude %{privlib}/Term/ANSIColor.pm +%exclude %{_mandir}/man3/Term::ANSIColor* + +# Term-Cap +%exclude %{privlib}/Term/Cap.pm +%exclude %{_mandir}/man3/Term::Cap.* + +# Test +%exclude %{privlib}/Test.pm +%exclude %{_mandir}/man3/Test.* + +# Test-Harness +%exclude %{_bindir}/prove +%exclude %dir %{privlib}/App +%exclude %{privlib}/App/Prove* +%exclude %{privlib}/TAP* +%exclude %dir %{privlib}/Test +%exclude %{privlib}/Test/Harness* +%exclude %{_mandir}/man1/prove.1* +%exclude %{_mandir}/man3/App::Prove* +%exclude %{_mandir}/man3/TAP* +%exclude %{_mandir}/man3/Test::Harness* + +# Test-Simple +%exclude %{privlib}/ok* +%exclude %dir %{privlib}/Test +%exclude %{privlib}/Test/More* +%exclude %{privlib}/Test/Builder* +%exclude %{privlib}/Test/Tester* +%exclude %{privlib}/Test/Simple* +%exclude %{privlib}/Test/Tutorial* +%exclude %{privlib}/Test/use +%exclude %{privlib}/Test2* +%exclude %{_mandir}/man3/ok* +%exclude %{_mandir}/man3/Test::More* +%exclude %{_mandir}/man3/Test::Builder* +%exclude %{_mandir}/man3/Test::Tester* +%exclude %{_mandir}/man3/Test::Simple* +%exclude %{_mandir}/man3/Test::Tutorial* +%exclude %{_mandir}/man3/Test::use::* +%exclude %{_mandir}/man3/Test2* + +# Text-Balanced +%exclude %{privlib}/Text/Balanced.pm +%exclude %{_mandir}/man3/Text::Balanced.* + +# Text-ParseWords +%exclude %{privlib}/Text/ParseWords.pm +%exclude %{_mandir}/man3/Text::ParseWords.* + +# Text-Tabs+Wrap +%exclude %{privlib}/Text/Tabs.pm +%exclude %{privlib}/Text/Wrap.pm +%exclude %{_mandir}/man3/Text::Tabs.* +%exclude %{_mandir}/man3/Text::Wrap.* + +# Thread-Queue +%exclude %{privlib}/Thread/Queue.pm +%exclude %{_mandir}/man3/Thread::Queue.* + +# Time-HiRes +%exclude %dir %{archlib}/Time +%exclude %{archlib}/Time/HiRes.pm +%exclude %dir %{archlib}/auto/Time +%exclude %{archlib}/auto/Time/HiRes +%exclude %{_mandir}/man3/Time::HiRes.* + +# Time-Local +%exclude %{privlib}/Time/Local.pm +%exclude %{_mandir}/man3/Time::Local.* + +# Time-Piece +%exclude %dir %{archlib}/Time +%exclude %{archlib}/Time/Piece.pm +%exclude %{archlib}/Time/Seconds.pm +%exclude %dir %{archlib}/auto/Time +%exclude %{archlib}/auto/Time/Piece +%exclude %{_mandir}/man3/Time::Piece.3* +%exclude %{_mandir}/man3/Time::Seconds.3* + +# Socket +%exclude %dir %{archlib}/auto/Socket +%exclude %{archlib}/auto/Socket/Socket.* +%exclude %{archlib}/Socket.pm +%exclude %{_mandir}/man3/Socket.3* + +# threads +%dir %exclude %{archlib}/auto/threads +%exclude %{archlib}/auto/threads/threads* +%exclude %{archlib}/threads.pm +%exclude %{_mandir}/man3/threads.3* + +# threads-shared +%exclude %{archlib}/auto/threads/shared* +%exclude %dir %{archlib}/threads +%exclude %{archlib}/threads/shared* +%exclude %{_mandir}/man3/threads::shared* + +# Unicode-Collate +%dir %exclude %{archlib}/auto/Unicode +%exclude %{archlib}/auto/Unicode/Collate +%dir %exclude %{archlib}/Unicode +%exclude %{archlib}/Unicode/Collate +%exclude %{archlib}/Unicode/Collate.pm +%exclude %{privlib}/Unicode/Collate +%exclude %{_mandir}/man3/Unicode::Collate.* +%exclude %{_mandir}/man3/Unicode::Collate::* + +# Unicode-Normalize +%exclude %{archlib}/auto/Unicode/Normalize +%exclude %{archlib}/Unicode/Normalize.pm +%exclude %{_mandir}/man3/Unicode::Normalize.* + +# version +%exclude %{privlib}/version.pm +%exclude %{privlib}/version.pod +%exclude %{privlib}/version/ +%exclude %{_mandir}/man3/version.3* +%exclude %{_mandir}/man3/version::Internals.3* + +%files libs +%doc Artistic Copying +%doc AUTHORS README Changes +%dir %{archlib} +%dir %{archlib}/auto +%{archlib}/auto/re +%dir %{archlib}/CORE +%{archlib}/CORE/libperl.so +%{archlib}/re.pm +%{_libdir}/libperl.so.* +%dir %{perl_vendorarch} +%dir %{perl_vendorarch}/auto +%dir %{privlib} +%{privlib}/integer.pm +%{privlib}/strict.pm +%{privlib}/unicore +%{privlib}/utf8.pm +%{privlib}/utf8_heavy.pl +%{privlib}/warnings.pm +%{privlib}/XSLoader.pm +%dir %{perl_vendorlib} +%{_mandir}/man3/integer.* +%{_mandir}/man3/re.* +%{_mandir}/man3/strict.* +%{_mandir}/man3/utf8.* +%{_mandir}/man3/warnings.* +%{_mandir}/man3/XSLoader.* + +%files devel +%{_bindir}/h2xs +%{_mandir}/man1/h2xs* +%{_bindir}/perlivp +%{_mandir}/man1/perlivp* +%{archlib}/CORE/*.h +%{_libdir}/libperl.so +%{_mandir}/man1/perlxs* +%if %{with perl_enables_systemtap} +%dir %{_datadir}/systemtap +%dir %{_datadir}/systemtap/tapset +%{tapsetdir}/%{libperl_stp} +%doc perl-example.stp +%endif + +%files macros +%{_rpmconfigdir}/macros.d/macros.%{?scl}%{!?scl:perl} + +%files tests +%{perl5_testdir}/ + +%files utils +%{_bindir}/h2ph +%{_bindir}/perlbug +%{_bindir}/perlthanks +%{_bindir}/pl2pm +%{_bindir}/splain +%dir %{privlib}/pod +%{privlib}/pod/perlutil.pod +%{_mandir}/man1/h2ph.* +%{_mandir}/man1/perlbug.* +%{_mandir}/man1/perlthanks.* +%{_mandir}/man1/perlutil.* +%{_mandir}/man1/pl2pm.* +%{_mandir}/man1/splain.* + +%if %{dual_life} || %{rebuild_from_scratch} +%files Archive-Tar +%{_bindir}/ptar +%{_bindir}/ptardiff +%{_bindir}/ptargrep +%dir %{privlib}/Archive +%{privlib}/Archive/Tar +%{privlib}/Archive/Tar.pm +%{_mandir}/man1/ptar.1* +%{_mandir}/man1/ptardiff.1* +%{_mandir}/man1/ptargrep.1* +%{_mandir}/man3/Archive::Tar* +%endif + +%files Attribute-Handlers +%{privlib}/Attribute +%{_mandir}/man3/Attribute::Handlers.* + +%if %{dual_life} || %{rebuild_from_scratch} +%files autodie +%{privlib}/autodie/ +%{privlib}/autodie.pm +%{privlib}/Fatal.pm +%{_mandir}/man3/autodie.3* +%{_mandir}/man3/autodie::* +%{_mandir}/man3/Fatal.3* +%endif + +%if %{dual_life} || %{rebuild_from_scratch} +%files B-Debug +%dir %{privlib}/B +%{privlib}/B/Debug.pm +%{_mandir}/man3/B::Debug.3* + +%files bignum +%{privlib}/bigint.pm +%{privlib}/bignum.pm +%{privlib}/bigrat.pm +%dir %{privlib}/Math +%{privlib}/Math/BigFloat +%dir %{privlib}/Math/BigInt +%{privlib}/Math/BigInt/Trace.pm +%{_mandir}/man3/bigint.* +%{_mandir}/man3/bignum.* +%{_mandir}/man3/bigrat.* + +%files Carp +%{privlib}/Carp +%{privlib}/Carp.* +%{_mandir}/man3/Carp.* + +%files Compress-Raw-Bzip2 +%dir %{archlib}/Compress +%dir %{archlib}/Compress/Raw +%{archlib}/Compress/Raw/Bzip2.pm +%dir %{archlib}/auto/Compress +%dir %{archlib}/auto/Compress/Raw +%{archlib}/auto/Compress/Raw/Bzip2 +%{_mandir}/man3/Compress::Raw::Bzip2* + +%files Compress-Raw-Zlib +%dir %{archlib}/Compress +%dir %{archlib}/Compress/Raw +%{archlib}/Compress/Raw/Zlib.pm +%dir %{archlib}/auto/Compress +%dir %{archlib}/auto/Compress/Raw +%{archlib}/auto/Compress/Raw/Zlib +%{_mandir}/man3/Compress::Raw::Zlib* +%endif + +%if %{dual_life} || %{rebuild_from_scratch} +%files Config-Perl-V +%dir %{privlib}/Config +%{privlib}/Config/Perl +%{_mandir}/man3/Config::Perl::V.* +%endif + +%if %{dual_life} || %{rebuild_from_scratch} +%files constant +%{privlib}/constant.pm +%{_mandir}/man3/constant.3* +%endif + +%if %{dual_life} || %{rebuild_from_scratch} +%files CPAN +%{_bindir}/cpan +%dir %{privlib}/App +%{privlib}/App/Cpan.pm +%{privlib}/CPAN +%{privlib}/CPAN.pm +%{_mandir}/man1/cpan.1* +%{_mandir}/man3/App::Cpan.* +%{_mandir}/man3/CPAN.* +%{_mandir}/man3/CPAN:* +%exclude %{privlib}/CPAN/Meta/ +%exclude %{privlib}/CPAN/Meta.pm +%exclude %{_mandir}/man3/CPAN::Meta* +%endif + +%if %{dual_life} || %{rebuild_from_scratch} +%files CPAN-Meta +%dir %{privlib}/CPAN/Meta +%{privlib}/CPAN/Meta.pm +%{privlib}/CPAN/Meta/Converter.pm +%{privlib}/CPAN/Meta/Feature.pm +%dir %{privlib}/CPAN/Meta/History +%{privlib}/CPAN/Meta/History.pm +%{privlib}/CPAN/Meta/Merge.pm +%{privlib}/CPAN/Meta/Prereqs.pm +%{privlib}/CPAN/Meta/Spec.pm +%{privlib}/CPAN/Meta/Validator.pm +%dir %{privlib}/Parse/ +%dir %{privlib}/Parse/CPAN/ +%{privlib}/Parse/CPAN/Meta.pm +%{_mandir}/man3/CPAN::Meta* +%{_mandir}/man3/Parse::CPAN::Meta.3* +%exclude %{_mandir}/man3/CPAN::Meta::YAML* +%exclude %{_mandir}/man3/CPAN::Meta::Requirements* +%endif + +%if %{dual_life} || %{rebuild_from_scratch} +%files CPAN-Meta-Requirements +%dir %{privlib}/CPAN +%dir %{privlib}/CPAN/Meta +%{privlib}/CPAN/Meta/Requirements.pm +%{_mandir}/man3/CPAN::Meta::Requirements.3* +%endif + +%if %{dual_life} || %{rebuild_from_scratch} +%files CPAN-Meta-YAML +%dir %{privlib}/CPAN +%dir %{privlib}/CPAN/Meta +%{privlib}/CPAN/Meta/YAML.pm +%{_mandir}/man3/CPAN::Meta::YAML* +%endif + +%if %{dual_life} || %{rebuild_from_scratch} +%files Data-Dumper +%dir %{archlib}/auto/Data +%dir %{archlib}/auto/Data/Dumper +%{archlib}/auto/Data/Dumper/Dumper.so +%dir %{archlib}/Data +%{archlib}/Data/Dumper.pm +%{_mandir}/man3/Data::Dumper.3* +%endif + +%if %{dual_life} || %{rebuild_from_scratch} +%files DB_File +%{archlib}/DB_File.pm +%dir %{archlib}/auto/DB_File +%{archlib}/auto/DB_File/DB_File.so +%{_mandir}/man3/DB_File* +%endif + +%files Devel-Peek +%dir %{archlib}/Devel +%{archlib}/Devel/Peek.pm +%dir %{archlib}/auto/Devel +%{archlib}/auto/Devel/Peek +%{_mandir}/man3/Devel::Peek.* + +%if %{dual_life} || %{rebuild_from_scratch} +%files Devel-PPPort +%dir %{archlib}/Devel +%{archlib}/Devel/PPPort.pm +%{_mandir}/man3/Devel::PPPort.3* +%endif + +%files Devel-SelfStubber +%dir %{privlib}/Devel +%{privlib}/Devel/SelfStubber.pm +%{_mandir}/man3/Devel::SelfStubber.* + +%if %{dual_life} || %{rebuild_from_scratch} +%files Digest +%{privlib}/Digest.pm +%dir %{privlib}/Digest +%{privlib}/Digest/base.pm +%{privlib}/Digest/file.pm +%{_mandir}/man3/Digest.3* +%{_mandir}/man3/Digest::base.3* +%{_mandir}/man3/Digest::file.3* +%endif + +%if %{dual_life} || %{rebuild_from_scratch} +%files Digest-MD5 +%dir %{archlib}/Digest +%{archlib}/Digest/MD5.pm +%dir %{archlib}/auto/Digest +%{archlib}/auto/Digest/MD5 +%{_mandir}/man3/Digest::MD5.3* +%endif + +%if %{dual_life} || %{rebuild_from_scratch} +%files Digest-SHA +%{_bindir}/shasum +%dir %{archlib}/Digest +%{archlib}/Digest/SHA.pm +%dir %{archlib}/auto/Digest +%{archlib}/auto/Digest/SHA +%{_mandir}/man1/shasum.1* +%{_mandir}/man3/Digest::SHA.3* +%endif + +%if %{dual_life} || %{rebuild_from_scratch} +%files Encode +%{_bindir}/encguess +%{_bindir}/piconv +%{archlib}/Encode* +%{archlib}/auto/Encode* +%{privlib}/Encode +%exclude %{privlib}/Encode/*.e2x +%exclude %{privlib}/Encode/encode.h +%{_mandir}/man1/encguess.1* +%{_mandir}/man1/piconv.1* +%{_mandir}/man3/Encode*.3* + +%files encoding +%{archlib}/encoding.pm +%{_mandir}/man3/encoding.3* + +%files Encode-devel +%{_bindir}/enc2xs +%dir %{privlib}/Encode +%{privlib}/Encode/*.e2x +%{privlib}/Encode/encode.h +%{_mandir}/man1/enc2xs.1* +%endif + +%if %{dual_life} || %{rebuild_from_scratch} +%files Env +%{privlib}/Env.pm +%{_mandir}/man3/Env.3* +%endif + +%files Errno +%{archlib}/Errno.pm +%{_mandir}/man3/Errno.* + +%if %{dual_life} || %{rebuild_from_scratch} +%files Exporter +%{privlib}/Exporter* +%{_mandir}/man3/Exporter* +%endif + +%if %{dual_life} || %{rebuild_from_scratch} +%files experimental +%{privlib}/experimental* +%{_mandir}/man3/experimental* +%endif + +%if %{dual_life} || %{rebuild_from_scratch} +%files ExtUtils-CBuilder +%dir %{privlib}/ExtUtils +%{privlib}/ExtUtils/CBuilder +%{privlib}/ExtUtils/CBuilder.pm +%{_mandir}/man3/ExtUtils::CBuilder* +%endif + +%if %{dual_life} || %{rebuild_from_scratch} +%files ExtUtils-Command +%dir %{privlib}/ExtUtils +%{privlib}/ExtUtils/Command.pm +%{_mandir}/man3/ExtUtils::Command.* +%endif + +%files ExtUtils-Embed +%dir %{privlib}/ExtUtils +%{privlib}/ExtUtils/Embed.pm +%{_mandir}/man3/ExtUtils::Embed* + +%if %{dual_life} || %{rebuild_from_scratch} +%files ExtUtils-Install +%dir %{privlib}/ExtUtils +%{privlib}/ExtUtils/Install.pm +%{privlib}/ExtUtils/Installed.pm +%{privlib}/ExtUtils/Packlist.pm +%{_mandir}/man3/ExtUtils::Install.3* +%{_mandir}/man3/ExtUtils::Installed.3* +%{_mandir}/man3/ExtUtils::Packlist.3* +%endif + +%if %{dual_life} || %{rebuild_from_scratch} +%files ExtUtils-Manifest +%dir %{privlib}/ExtUtils +%{privlib}/ExtUtils/Manifest.pm +%{privlib}/ExtUtils/MANIFEST.SKIP +%{_mandir}/man3/ExtUtils::Manifest.3* +%endif + +%if %{dual_life} || %{rebuild_from_scratch} +%files ExtUtils-MakeMaker +%{_bindir}/instmodsh +%dir %{privlib}/ExtUtils +%{privlib}/ExtUtils/Command/ +%{privlib}/ExtUtils/Liblist +%{privlib}/ExtUtils/Liblist.pm +%{privlib}/ExtUtils/MakeMaker +%{privlib}/ExtUtils/MakeMaker.pm +%{privlib}/ExtUtils/MM.pm +%{privlib}/ExtUtils/MM_*.pm +%{privlib}/ExtUtils/MY.pm +%{privlib}/ExtUtils/Mkbootstrap.pm +%{privlib}/ExtUtils/Mksymlists.pm +%{privlib}/ExtUtils/testlib.pm +%{_mandir}/man1/instmodsh.1* +%{_mandir}/man3/ExtUtils::Command::MM* +%{_mandir}/man3/ExtUtils::Liblist.3* +%{_mandir}/man3/ExtUtils::MM.3* +%{_mandir}/man3/ExtUtils::MM_* +%{_mandir}/man3/ExtUtils::MY.3* +%{_mandir}/man3/ExtUtils::MakeMaker* +%{_mandir}/man3/ExtUtils::Mkbootstrap.3* +%{_mandir}/man3/ExtUtils::Mksymlists.3* +%{_mandir}/man3/ExtUtils::testlib.3* +%endif + +%files ExtUtils-Miniperl +%dir %{privlib}/ExtUtils +%{privlib}/ExtUtils/Miniperl.pm +%{_mandir}/man3/ExtUtils::Miniperl.3* + +%if %{dual_life} || %{rebuild_from_scratch} +%files ExtUtils-MM-Utils +%dir %{privlib}/ExtUtils +%dir %{privlib}/ExtUtils/MM +%{privlib}/ExtUtils/MM/Utils.pm +%{_mandir}/man3/ExtUtils::MM::Utils.* +%endif + +%if %{dual_life} || %{rebuild_from_scratch} +%files ExtUtils-ParseXS +%dir %{privlib}/ExtUtils +%dir %{privlib}/ExtUtils/ParseXS +%{privlib}/ExtUtils/ParseXS.pm +%{privlib}/ExtUtils/ParseXS.pod +%{privlib}/ExtUtils/ParseXS/Constants.pm +%{privlib}/ExtUtils/ParseXS/CountLines.pm +%{privlib}/ExtUtils/ParseXS/Eval.pm +%{privlib}/ExtUtils/ParseXS/Utilities.pm +%dir %{privlib}/ExtUtils/Typemaps +%{privlib}/ExtUtils/Typemaps.pm +%{privlib}/ExtUtils/Typemaps/Cmd.pm +%{privlib}/ExtUtils/Typemaps/InputMap.pm +%{privlib}/ExtUtils/Typemaps/OutputMap.pm +%{privlib}/ExtUtils/Typemaps/Type.pm +%{privlib}/ExtUtils/xsubpp +%{_bindir}/xsubpp +%{_mandir}/man1/xsubpp* +%{_mandir}/man3/ExtUtils::ParseXS.3* +%{_mandir}/man3/ExtUtils::ParseXS::Constants.3* +%{_mandir}/man3/ExtUtils::ParseXS::Eval.3* +%{_mandir}/man3/ExtUtils::ParseXS::Utilities.3* +%{_mandir}/man3/ExtUtils::Typemaps.3* +%{_mandir}/man3/ExtUtils::Typemaps::Cmd.3* +%{_mandir}/man3/ExtUtils::Typemaps::InputMap.3* +%{_mandir}/man3/ExtUtils::Typemaps::OutputMap.3* +%{_mandir}/man3/ExtUtils::Typemaps::Type.3* +%endif + +%if %{dual_life} || %{rebuild_from_scratch} +%files File-Fetch +%dir %{privlib}/File +%{privlib}/File/Fetch.pm +%{_mandir}/man3/File::Fetch.3* +%endif + +%if %{dual_life} || %{rebuild_from_scratch} +%files File-Path +%dir %{privlib}/File +%{privlib}/File/Path.pm +%{_mandir}/man3/File::Path.3* +%endif + +%if %{dual_life} || %{rebuild_from_scratch} +%files File-Temp +%dir %{privlib}/File +%{privlib}/File/Temp.pm +%{_mandir}/man3/File::Temp.3* +%endif + +%if %{dual_life} || %{rebuild_from_scratch} +%files Filter +%dir %{archlib}/auto/Filter +%{archlib}/auto/Filter/Util +%dir %{archlib}/Filter +%{archlib}/Filter/Util +%{privlib}/pod/perlfilter.pod +%{_mandir}/man1/perlfilter.* +%{_mandir}/man3/Filter::Util::* +%endif + +%if %{dual_life} || %{rebuild_from_scratch} +%files Filter-Simple +%dir %{privlib}/Filter +%{privlib}/Filter/Simple.pm +%{_mandir}/man3/Filter::Simple.3* +%endif + +%if %{dual_life} || %{rebuild_from_scratch} +%files Getopt-Long +%dir %{privlib}/Getopt +%{privlib}/Getopt/Long.pm +%{_mandir}/man3/Getopt::Long.3* +%endif + +%files IO +%dir %{archlib}/IO +%{archlib}/IO.pm +%{archlib}/IO/Dir.pm +%{archlib}/IO/File.pm +%{archlib}/IO/Handle.pm +%{archlib}/IO/Pipe.pm +%{archlib}/IO/Poll.pm +%{archlib}/IO/Seekable.pm +%{archlib}/IO/Select.pm +%dir %{archlib}/IO/Socket +%{archlib}/IO/Socket/INET.pm +%{archlib}/IO/Socket/UNIX.pm +%{archlib}/IO/Socket.pm +%dir %{archlib}/auto/IO +%{archlib}/auto/IO/IO.so +%{_mandir}/man3/IO.* +%{_mandir}/man3/IO::Dir.* +%{_mandir}/man3/IO::File.* +%{_mandir}/man3/IO::Handle.* +%{_mandir}/man3/IO::Pipe.* +%{_mandir}/man3/IO::Poll.* +%{_mandir}/man3/IO::Seekable.* +%{_mandir}/man3/IO::Select.* +%{_mandir}/man3/IO::Socket::INET.* +%{_mandir}/man3/IO::Socket::UNIX.* +%{_mandir}/man3/IO::Socket.* + +%if %{dual_life} || %{rebuild_from_scratch} +%files IO-Compress +# IO-Compress +%{_bindir}/zipdetails +%dir %{privlib}/IO +%dir %{privlib}/IO/Compress +%{privlib}/IO/Compress/FAQ.pod +%{_mandir}/man1/zipdetails.* +%{_mandir}/man3/IO::Compress::FAQ.* +# Compress-Zlib +%dir %{privlib}/Compress +%{privlib}/Compress/Zlib.pm +%{_mandir}/man3/Compress::Zlib* +#IO-Compress-Base +%dir %{privlib}/File +%{privlib}/File/GlobMapper.pm +%dir %{privlib}/IO +%dir %{privlib}/IO/Compress +%{privlib}/IO/Compress/Base +%{privlib}/IO/Compress/Base.pm +%dir %{privlib}/IO/Uncompress +%{privlib}/IO/Uncompress/AnyUncompress.pm +%{privlib}/IO/Uncompress/Base.pm +%{_mandir}/man3/File::GlobMapper.* +%{_mandir}/man3/IO::Compress::Base.* +%{_mandir}/man3/IO::Uncompress::AnyUncompress.* +%{_mandir}/man3/IO::Uncompress::Base.* +# IO-Compress-Zlib +%dir %{privlib}/IO +%dir %{privlib}/IO/Compress +%{privlib}/IO/Compress/Adapter +%{privlib}/IO/Compress/Deflate.pm +%{privlib}/IO/Compress/Bzip2.pm +%{privlib}/IO/Compress/Gzip +%{privlib}/IO/Compress/Gzip.pm +%{privlib}/IO/Compress/RawDeflate.pm +%{privlib}/IO/Compress/Zip +%{privlib}/IO/Compress/Zip.pm +%{privlib}/IO/Compress/Zlib +%dir %{privlib}/IO/Uncompress +%{privlib}/IO/Uncompress/Adapter/ +%{privlib}/IO/Uncompress/AnyInflate.pm +%{privlib}/IO/Uncompress/Bunzip2.pm +%{privlib}/IO/Uncompress/Gunzip.pm +%{privlib}/IO/Uncompress/Inflate.pm +%{privlib}/IO/Uncompress/RawInflate.pm +%{privlib}/IO/Uncompress/Unzip.pm +%{_mandir}/man3/IO::Compress::Deflate* +%{_mandir}/man3/IO::Compress::Gzip* +%{_mandir}/man3/IO::Compress::Bzip2* +%{_mandir}/man3/IO::Compress::RawDeflate* +%{_mandir}/man3/IO::Compress::Zip* +%{_mandir}/man3/IO::Uncompress::AnyInflate* +%{_mandir}/man3/IO::Uncompress::Bunzip2* +%{_mandir}/man3/IO::Uncompress::Gunzip* +%{_mandir}/man3/IO::Uncompress::Inflate* +%{_mandir}/man3/IO::Uncompress::RawInflate* +%{_mandir}/man3/IO::Uncompress::Unzip* +%endif + +%if %{dual_life} || %{rebuild_from_scratch} +%files IO-Socket-IP +%dir %{privlib}/IO +%dir %{privlib}/IO/Socket +%{privlib}/IO/Socket/IP.pm +%{_mandir}/man3/IO::Socket::IP.* +%endif + +%files IO-Zlib +%dir %{privlib}/IO +%{privlib}/IO/Zlib.pm +%{_mandir}/man3/IO::Zlib.* + +%if %{dual_life} || %{rebuild_from_scratch} +%files HTTP-Tiny +%dir %{privlib}/HTTP +%{privlib}/HTTP/Tiny.pm +%{_mandir}/man3/HTTP::Tiny* +%endif + +%if %{dual_life} || %{rebuild_from_scratch} +%files IPC-Cmd +%dir %{privlib}/IPC +%{privlib}/IPC/Cmd.pm +%{_mandir}/man3/IPC::Cmd.3* +%endif + +%if %{dual_life} || %{rebuild_from_scratch} +%files IPC-SysV +%{archlib}/auto/IPC +%dir %{archlib}/IPC +%{archlib}/IPC/Msg.pm +%{archlib}/IPC/Semaphore.pm +%{archlib}/IPC/SharedMem.pm +%{archlib}/IPC/SysV.pm +%{_mandir}/man3/IPC::Msg.* +%{_mandir}/man3/IPC::Semaphore.* +%{_mandir}/man3/IPC::SharedMem.* +%{_mandir}/man3/IPC::SysV.* +%endif + +%if %{dual_life} || %{rebuild_from_scratch} +%files JSON-PP +%{_bindir}/json_pp +%dir %{privlib}/JSON +%{privlib}/JSON/PP +%{privlib}/JSON/PP.pm +%{_mandir}/man1/json_pp.1* +%{_mandir}/man3/JSON::PP.3* +%{_mandir}/man3/JSON::PP::Boolean.3pm* +%endif + +%if %{dual_life} || %{rebuild_from_scratch} +%files libnet +%dir %{privlib}/Net +%{privlib}/Net/Cmd.pm +%{privlib}/Net/Config.pm +%{privlib}/Net/Domain.pm +%{privlib}/Net/FTP +%{privlib}/Net/FTP.pm +%{privlib}/Net/libnetFAQ.pod +%{privlib}/Net/NNTP.pm +%{privlib}/Net/Netrc.pm +%{privlib}/Net/POP3.pm +%{privlib}/Net/SMTP.pm +%{privlib}/Net/Time.pm +%{_mandir}/man3/Net::Cmd.* +%{_mandir}/man3/Net::Config.* +%{_mandir}/man3/Net::Domain.* +%{_mandir}/man3/Net::FTP.* +%{_mandir}/man3/Net::libnetFAQ.* +%{_mandir}/man3/Net::NNTP.* +%{_mandir}/man3/Net::Netrc.* +%{_mandir}/man3/Net::POP3.* +%{_mandir}/man3/Net::SMTP.* +%{_mandir}/man3/Net::Time.* +%endif + +%files libnetcfg +%{_bindir}/libnetcfg +%{_mandir}/man1/libnetcfg* + +%if %{dual_life} || %{rebuild_from_scratch} +%files Locale-Codes +%dir %{privlib}/Locale +%{privlib}/Locale/Codes +%{privlib}/Locale/Codes.* +%{privlib}/Locale/Country.* +%{privlib}/Locale/Currency.* +%{privlib}/Locale/Language.* +%{privlib}/Locale/Script.* +%{_mandir}/man3/Locale::Codes::* +%{_mandir}/man3/Locale::Codes.* +%{_mandir}/man3/Locale::Country.* +%{_mandir}/man3/Locale::Currency.* +%{_mandir}/man3/Locale::Language.* +%{_mandir}/man3/Locale::Script.* +%endif + +%if %{dual_life} || %{rebuild_from_scratch} +%files Locale-Maketext +%dir %{privlib}/Locale +%dir %{privlib}/Locale/Maketext +%{privlib}/Locale/Maketext.* +%{privlib}/Locale/Maketext/Cookbook.* +%{privlib}/Locale/Maketext/Guts.* +%{privlib}/Locale/Maketext/GutsLoader.* +%{privlib}/Locale/Maketext/TPJ13.* +%{_mandir}/man3/Locale::Maketext.* +%{_mandir}/man3/Locale::Maketext::Cookbook.* +%{_mandir}/man3/Locale::Maketext::Guts.* +%{_mandir}/man3/Locale::Maketext::GutsLoader.* +%{_mandir}/man3/Locale::Maketext::TPJ13.* +%endif + +%files Locale-Maketext-Simple +%dir %{privlib}/Locale +%dir %{privlib}/Locale/Maketext +%{privlib}/Locale/Maketext/Simple.pm +%{_mandir}/man3/Locale::Maketext::Simple.* + +%if %{dual_life} || %{rebuild_from_scratch} +%files Math-BigInt +%dir %{privlib}/Math +%{privlib}/Math/BigFloat.pm +%{privlib}/Math/BigInt.pm +%dir %{privlib}/Math/BigInt +%{privlib}/Math/BigInt/Calc.pm +%{privlib}/Math/BigInt/CalcEmu.pm +%{privlib}/Math/BigInt/Lib.pm +%{_mandir}/man3/Math::BigFloat.* +%{_mandir}/man3/Math::BigInt.* +%{_mandir}/man3/Math::BigInt::Calc.* +%{_mandir}/man3/Math::BigInt::CalcEmu.* +%{_mandir}/man3/Math::BigInt::Lib.* + +%files Math-BigInt-FastCalc +%{archlib}/Math +%{archlib}/auto/Math +%{_mandir}/man3/Math::BigInt::FastCalc.* + +%files Math-BigRat +%dir %{privlib}/Math +%{privlib}/Math/BigRat.pm +%{_mandir}/man3/Math::BigRat.* +%endif + +%files Math-Complex +%dir %{privlib}/Math +%{privlib}/Math/Complex.pm +%{privlib}/Math/Trig.pm +%{_mandir}/man3/Math::Complex.* +%{_mandir}/man3/Math::Trig.* + +%files Memoize +%{privlib}/Memoize +%{privlib}/Memoize.pm +%{_mandir}/man3/Memoize::* +%{_mandir}/man3/Memoize.* + +%if %{dual_life} || %{rebuild_from_scratch} +%files MIME-Base64 +%{archlib}/auto/MIME +%{archlib}/MIME +%{_mandir}/man3/MIME::* +%endif + +%if %{dual_life} || %{rebuild_from_scratch} +%files Module-CoreList +%dir %{privlib}/Module +%{privlib}/Module/CoreList +%{privlib}/Module/CoreList.pm +%{privlib}/Module/CoreList.pod +%{_mandir}/man3/Module::CoreList* + +%files Module-CoreList-tools +%{_bindir}/corelist +%{_mandir}/man1/corelist* +%endif + +%if %{dual_life} || %{rebuild_from_scratch} +%files Module-Load +%dir %{privlib}/Module +%{privlib}/Module/Load.pm +%{_mandir}/man3/Module::Load.* +%endif + +%if %{dual_life} || %{rebuild_from_scratch} +%files Module-Load-Conditional +%dir %{privlib}/Module +%{privlib}/Module/Load +%{_mandir}/man3/Module::Load::Conditional* +%endif + +%files Module-Loaded +%dir %{privlib}/Module +%{privlib}/Module/Loaded.pm +%{_mandir}/man3/Module::Loaded* + +%if %{dual_life} || %{rebuild_from_scratch} +%files Module-Metadata +%dir %{privlib}/Module +%{privlib}/Module/Metadata.pm +%{_mandir}/man3/Module::Metadata.3pm* +%endif + +%files Net-Ping +%dir %{privlib}/Net +%{privlib}/Net/Ping.pm +%{_mandir}/man3/Net::Ping.* + +%if %{dual_life} || %{rebuild_from_scratch} +%files PathTools +%{archlib}/Cwd.pm +%dir %{archlib}/File +%{archlib}/File/Spec* +%{archlib}/auto/Cwd +%{_mandir}/man3/Cwd* +%{_mandir}/man3/File::Spec* +%endif + +%if %{dual_life} || %{rebuild_from_scratch} +%files Params-Check +%{privlib}/Params/ +%{_mandir}/man3/Params::Check* +%endif + +%files open +%{privlib}/open.pm +%{_mandir}/man3/open.3* + +%if %{dual_life} || %{rebuild_from_scratch} +%files parent +%{privlib}/parent.pm +%{_mandir}/man3/parent.3* +%endif + +%if %{dual_life} || %{rebuild_from_scratch} +%files perlfaq +%{privlib}/perlfaq.pm +%dir %{privlib}/pod +%{privlib}/pod/perlfaq* +%{privlib}/pod/perlglossary.pod +%{_mandir}/man1/perlfaq* +%{_mandir}/man1/perlglossary.* +%endif + +%if %{dual_life} || %{rebuild_from_scratch} +%files PerlIO-via-QuotedPrint +%{privlib}/PerlIO +%{_mandir}/man3/PerlIO::via::QuotedPrint.* +%endif + +%if %{dual_life} || %{rebuild_from_scratch} +%files Perl-OSType +%dir %{privlib}/Perl +%{privlib}/Perl/OSType.pm +%{_mandir}/man3/Perl::OSType.3pm* +%endif + +%if %{dual_life} || %{rebuild_from_scratch} +%files Pod-Checker +%{_bindir}/podchecker +%dir %{privlib}/Pod +%{privlib}/Pod/Checker.pm +%{_mandir}/man1/podchecker.* +%{_mandir}/man3/Pod::Checker.* +%endif + +%if %{dual_life} || %{rebuild_from_scratch} +%files Pod-Escapes +%dir %{privlib}/Pod +%{privlib}/Pod/Escapes.pm +%{_mandir}/man3/Pod::Escapes.* +%endif + +%files Pod-Html +%doc Pod-Html-license-clarification +%dir %{privlib}/Pod +%{_bindir}/pod2html +%{privlib}/Pod/Html.pm +%{_mandir}/man1/pod2html.1* +%{_mandir}/man3/Pod::Html.* + +%if %{dual_life} || %{rebuild_from_scratch} +%files Pod-Parser +%{_bindir}/podselect +%dir %{privlib}/Pod +%{privlib}/Pod/Find.pm +%{privlib}/Pod/InputObjects.pm +%{privlib}/Pod/ParseUtils.pm +%{privlib}/Pod/Parser.pm +%{privlib}/Pod/PlainText.pm +%{privlib}/Pod/Select.pm +%{_mandir}/man1/podselect.1* +%{_mandir}/man3/Pod::Find.* +%{_mandir}/man3/Pod::InputObjects.* +%{_mandir}/man3/Pod::ParseUtils.* +%{_mandir}/man3/Pod::Parser.* +%{_mandir}/man3/Pod::PlainText.* +%{_mandir}/man3/Pod::Select.* +%endif + +%if %{dual_life} || %{rebuild_from_scratch} +%files Pod-Perldoc +%{_bindir}/perldoc +%{privlib}/pod/perldoc.pod +%dir %{privlib}/Pod +%{privlib}/Pod/Perldoc +%{privlib}/Pod/Perldoc.pm +%{_mandir}/man1/perldoc.1* +%{_mandir}/man3/Pod::Perldoc* +%endif + +%if %{dual_life} || %{rebuild_from_scratch} +%files Pod-Usage +%{_bindir}/pod2usage +%dir %{privlib}/Pod +%{privlib}/Pod/Usage.pm +%{_mandir}/man1/pod2usage.* +%{_mandir}/man3/Pod::Usage.* +%endif + +%if %{dual_life} || %{rebuild_from_scratch} +%files podlators +%{_bindir}/pod2man +%{_bindir}/pod2text +%{privlib}/pod/perlpodstyle.pod +%dir %{privlib}/Pod +%{privlib}/Pod/Man.pm +%{privlib}/Pod/ParseLink.pm +%{privlib}/Pod/Text +%{privlib}/Pod/Text.pm +%{_mandir}/man1/pod2man.1* +%{_mandir}/man1/pod2text.1* +%{_mandir}/man1/perlpodstyle.1* +%{_mandir}/man3/Pod::Man* +%{_mandir}/man3/Pod::ParseLink* +%{_mandir}/man3/Pod::Text* +%endif + +%if %{dual_life} || %{rebuild_from_scratch} +%files Pod-Simple +%dir %{privlib}/Pod +%{privlib}/Pod/Simple +%{privlib}/Pod/Simple.pm +%{privlib}/Pod/Simple.pod +%{_mandir}/man3/Pod::Simple* +%endif + +%if %{dual_life} || %{rebuild_from_scratch} +%files Scalar-List-Utils +%{archlib}/List +%{archlib}/Scalar +%{archlib}/Sub +%{archlib}/auto/List +%{_mandir}/man3/List::Util* +%{_mandir}/man3/Scalar::Util* +%{_mandir}/man3/Sub::Util* +%endif + +%files SelfLoader +%{privlib}/SelfLoader.pm +%{_mandir}/man3/SelfLoader* + +%if %{dual_life} || %{rebuild_from_scratch} +%files Sys-Syslog +%dir %{archlib}/Sys +%{archlib}/Sys/Syslog.pm +%dir %{archlib}/auto/Sys +%{archlib}/auto/Sys/Syslog +%{_mandir}/man3/Sys::Syslog.* +%endif + +%if %{dual_life} || %{rebuild_from_scratch} +%files Socket +%dir %{archlib}/auto/Socket +%{archlib}/auto/Socket/Socket.* +%{archlib}/Socket.pm +%{_mandir}/man3/Socket.3* +%endif + +%if %{dual_life} || %{rebuild_from_scratch} +%files Storable +%{archlib}/Storable.pm +%{archlib}/auto/Storable +%{_mandir}/man3/Storable.* +%endif + +%if %{dual_life} || %{rebuild_from_scratch} +%files Term-ANSIColor +%dir %{privlib}/Term +%{privlib}/Term/ANSIColor.pm +%{_mandir}/man3/Term::ANSIColor* +%endif + +%if %{dual_life} || %{rebuild_from_scratch} +%files Term-Cap +%dir %{privlib}/Term +%{privlib}/Term/Cap.pm +%{_mandir}/man3/Term::Cap.* +%endif + +%files Test +%{privlib}/Test.pm +%{_mandir}/man3/Test.* + +%if %{dual_life} || %{rebuild_from_scratch} +%files Test-Harness +%{_bindir}/prove +%dir %{privlib}/App +%{privlib}/App/Prove* +%{privlib}/TAP* +%dir %{privlib}/Test +%{privlib}/Test/Harness* +%{_mandir}/man1/prove.1* +%{_mandir}/man3/App::Prove* +%{_mandir}/man3/TAP* +%{_mandir}/man3/Test::Harness* +%endif + +%if %{dual_life} || %{rebuild_from_scratch} +%files Test-Simple +%{privlib}/ok* +%dir %{privlib}/Test +%{privlib}/Test/More* +%{privlib}/Test/Builder* +%{privlib}/Test/Tester* +%{privlib}/Test/Simple* +%{privlib}/Test/Tutorial* +%{privlib}/Test/use +%{privlib}/Test2* +%{_mandir}/man3/ok* +%{_mandir}/man3/Test::More* +%{_mandir}/man3/Test::Builder* +%{_mandir}/man3/Test::Tester* +%{_mandir}/man3/Test::Simple* +%{_mandir}/man3/Test::Tutorial* +%{_mandir}/man3/Test::use::* +%{_mandir}/man3/Test2* +%endif + +%if %{dual_life} || %{rebuild_from_scratch} +%files Text-Balanced +%dir %{privlib}/Text +%{privlib}/Text/Balanced.pm +%{_mandir}/man3/Text::Balanced.* +%endif + +%if %{dual_life} || %{rebuild_from_scratch} +%files Text-ParseWords +%dir %{privlib}/Text +%{privlib}/Text/ParseWords.pm +%{_mandir}/man3/Text::ParseWords.* +%endif + +%if %{dual_life} || %{rebuild_from_scratch} +%files Text-Tabs+Wrap +%dir %{privlib}/Text +%{privlib}/Text/Tabs.pm +%{privlib}/Text/Wrap.pm +%{_mandir}/man3/Text::Tabs.* +%{_mandir}/man3/Text::Wrap.* +%endif + +%if %{dual_life} || %{rebuild_from_scratch} +%files Thread-Queue +%dir %{privlib}/Thread +%{privlib}/Thread/Queue.pm +%{_mandir}/man3/Thread::Queue.* +%endif + +%if %{dual_life} || %{rebuild_from_scratch} +%files Time-HiRes +%dir %{archlib}/Time +%{archlib}/Time/HiRes.pm +%dir %{archlib}/auto/Time +%{archlib}/auto/Time/HiRes +%{_mandir}/man3/Time::HiRes.* +%endif + +%if %{dual_life} || %{rebuild_from_scratch} +%files Time-Local +%dir %{privlib}/Time +%{privlib}/Time/Local.pm +%{_mandir}/man3/Time::Local.* +%endif + +%files Time-Piece +%dir %{archlib}/Time +%{archlib}/Time/Piece.pm +%{archlib}/Time/Seconds.pm +%dir %{archlib}/auto/Time +%{archlib}/auto/Time/Piece +%{_mandir}/man3/Time::Piece.3* +%{_mandir}/man3/Time::Seconds.3* + +%if %{dual_life} || %{rebuild_from_scratch} +%files threads +%dir %{archlib}/auto/threads +%{archlib}/auto/threads/threads* +%{archlib}/threads.pm +%{_mandir}/man3/threads.3* +%endif + +%if %{dual_life} || %{rebuild_from_scratch} +%files threads-shared +%dir %{archlib}/auto/threads +%{archlib}/auto/threads/shared* +%dir %{archlib}/threads +%{archlib}/threads/shared* +%{_mandir}/man3/threads::shared* +%endif + +%if %{dual_life} || %{rebuild_from_scratch} +%files Unicode-Collate +%dir %{archlib}/auto/Unicode +%{archlib}/auto/Unicode/Collate +%dir %{archlib}/Unicode +%{archlib}/Unicode/Collate +%{archlib}/Unicode/Collate.pm +%dir %{privlib}/Unicode +%{privlib}/Unicode/Collate +%{_mandir}/man3/Unicode::Collate.* +%{_mandir}/man3/Unicode::Collate::* +%endif + +%if %{dual_life} || %{rebuild_from_scratch} +%files Unicode-Normalize +%dir %{archlib}/auto/Unicode +%{archlib}/auto/Unicode/Normalize +%dir %{archlib}/Unicode +%{archlib}/Unicode/Normalize.pm +%{_mandir}/man3/Unicode::Normalize.* +%endif + +%if %{dual_life} || %{rebuild_from_scratch} +%files version +%{privlib}/version.pm +%{privlib}/version.pod +%{privlib}/version/ +%{_mandir}/man3/version.3* +%{_mandir}/man3/version::Internals.3* +%endif + +# Old changelog entries are preserved in CVS. +%changelog +* Wed Mar 28 2018 Petr Pisar - 4:5.26.1-404 +- Fix CVE-2018-6798 (heap read overflow in regexec.c) (bug #1561100) +- Fix CVE-2018-6797 (heap write overflow in regcomp.c) (bug #1561100) + +* Tue Dec 19 2017 Petr Pisar - 4:5.26.1-403 +- Rebuild without bootstrap + +* Wed Dec 06 2017 Jitka Plesnikova - 4:5.26.1-402 +- SCL + +* 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 + +