7bfa2d
# Don not run gnupg1 tests by default, they need network access
7bfa2d
# (Socket::inet_aton('pool.sks-keyservers.net')).
7bfa2d
%bcond_with perl_CPAN_enables_gnupg_test
7bfa2d
# Run optional test
7bfa2d
%if ! (0%{?rhel})
7bfa2d
%bcond_without perl_CPAN_enables_optional_test
7bfa2d
%else
7bfa2d
%bcond_with perl_CPAN_enables_optional_test
7bfa2d
%endif
7bfa2d
7bfa2d
Name:           perl-CPAN
7bfa2d
Version:        2.27
7bfa2d
Release:        2%{?dist}
7bfa2d
Summary:        Query, download and build perl modules from CPAN sites
7bfa2d
License:        GPL+ or Artistic
7bfa2d
URL:            https://metacpan.org/release/CPAN
7bfa2d
Source0:        https://cpan.metacpan.org/authors/id/A/AN/ANDK/CPAN-%{version}.tar.gz
7bfa2d
# Create site paths for the first time, bug #1158873, CPAN RT#99905
7bfa2d
Patch0:         CPAN-2.18-Attemp-to-create-site-library-directories-on-first-t.patch
7bfa2d
# Change configuration directory name
7bfa2d
Patch1:         CPAN-2.18-Replace-configuration-directory-string-with-a-marke.patch
7bfa2d
BuildArch:      noarch
7bfa2d
BuildRequires:  coreutils
7bfa2d
BuildRequires:  findutils
7bfa2d
BuildRequires:  make
7bfa2d
BuildRequires:  perl-generators
7bfa2d
BuildRequires:  perl-interpreter
7bfa2d
BuildRequires:  perl(Config)
7bfa2d
BuildRequires:  perl(ExtUtils::MakeMaker) >= 6.76
7bfa2d
BuildRequires:  perl(File::Basename)
7bfa2d
BuildRequires:  perl(File::Path)
7bfa2d
# Module::Signature not used
7bfa2d
BuildRequires:  perl(strict)
7bfa2d
BuildRequires:  perl(vars)
7bfa2d
BuildRequires:  sed
7bfa2d
# Optional:
7bfa2d
BuildRequires:  perl(File::Spec)
7bfa2d
# YAML::Syck is not used because @ST_PREFS is empty in Makefile.PL
7bfa2d
7bfa2d
# Run-time:
7bfa2d
# Prefer Archive::Tar and Compress::Zlib over tar and gzip
7bfa2d
BuildRequires:  perl(Archive::Tar) >= 1.50
7bfa2d
%if !%{defined perl_bootstrap}
7bfa2d
# Prefer Archive::Zip over unzip
7bfa2d
BuildRequires:  perl(Archive::Zip)
7bfa2d
%endif
7bfa2d
BuildRequires:  perl(autouse)
7bfa2d
BuildRequires:  perl(base)
7bfa2d
BuildRequires:  perl(Carp)
7bfa2d
BuildRequires:  perl(constant)
7bfa2d
BuildRequires:  perl(Compress::Zlib)
7bfa2d
BuildRequires:  perl(CPAN::Meta::Requirements) >= 2.121
7bfa2d
BuildRequires:  perl(Cwd)
7bfa2d
BuildRequires:  perl(Data::Dumper)
7bfa2d
# Devel::Size not used at tests
7bfa2d
BuildRequires:  perl(DirHandle)
7bfa2d
BuildRequires:  perl(Dumpvalue)
7bfa2d
BuildRequires:  perl(Errno)
7bfa2d
BuildRequires:  perl(Exporter)
7bfa2d
# ExtUtils::Manifest not used at tests
7bfa2d
BuildRequires:  perl(Fcntl)
7bfa2d
BuildRequires:  perl(File::Copy)
7bfa2d
BuildRequires:  perl(File::Find)
7bfa2d
# File::HomeDir 0.65 not used at tests
7bfa2d
BuildRequires:  perl(File::Spec::Functions)
7bfa2d
BuildRequires:  perl(File::Temp) >= 0.16
7bfa2d
BuildRequires:  perl(FileHandle)
7bfa2d
BuildRequires:  perl(Getopt::Std)
7bfa2d
# HTTP::Date is optional, prefer in-core Time::Local
7bfa2d
# HTTP::Request is optional
7bfa2d
BuildRequires:  perl(HTTP::Tiny) >= 0.005
7bfa2d
BuildRequires:  perl(if)
7bfa2d
# YAML::XS or YAML::Syck or JSON::PP, we already use YAML::Syck at a different
7bfa2d
# place, keep JSON::PP optional
7bfa2d
BuildRequires:  perl(lib)
7bfa2d
# local::lib is optional
7bfa2d
# LWP is optional, prefer HTTP::Tiny and Net::FTP
7bfa2d
# LWP::UserAgent is optional
7bfa2d
# Mac::BuildTools not needed
7bfa2d
# Mac::Files not needed
7bfa2d
# Module::Signature is optional
7bfa2d
# Net::Config not used at tests
7bfa2d
# Net::FTP not used at tests
7bfa2d
# Net::Ping is required but >= 2.13 version is a soft dependency
7bfa2d
BuildRequires:  perl(Net::Ping)
7bfa2d
BuildRequires:  perl(overload)
7bfa2d
# Pod::Perldoc is optional
7bfa2d
BuildRequires:  perl(POSIX)
7bfa2d
BuildRequires:  perl(Safe)
7bfa2d
BuildRequires:  perl(Sys::Hostname)
7bfa2d
BuildRequires:  perl(Term::ReadLine)
7bfa2d
BuildRequires:  perl(Text::ParseWords)
7bfa2d
BuildRequires:  perl(Text::Wrap)
7bfa2d
# Time::Local not used at tests
7bfa2d
# URI not used at tests
7bfa2d
# URI::Escape not used at tests
7bfa2d
# URI::URL 0.08 is optional 
7bfa2d
# User::pwent not used at tests
7bfa2d
BuildRequires:  perl(warnings)
7bfa2d
# Optional:
7bfa2d
#%%if !%%{defined perl_bootstrap}
7bfa2d
# CPAN::DistnameInfo not used at tests
7bfa2d
#%%endif
7bfa2d
BuildRequires:  perl(CPAN::Meta) >= 2.110350
7bfa2d
# Crypt::OpenPGP not used at tests
7bfa2d
# Digest::MD5 not used at tests
7bfa2d
BuildRequires:  perl(Digest::SHA)
7bfa2d
# Keep Log::Log4perl optional
7bfa2d
# Keep MIME::Base64 optional
7bfa2d
%if !%{defined perl_bootstrap}
7bfa2d
BuildRequires:  perl(Module::Build)
7bfa2d
%endif
7bfa2d
7bfa2d
# Tests:
7bfa2d
BuildRequires:  perl(blib)
7bfa2d
# CPAN::Checksums not used
7bfa2d
BuildRequires:  perl(FindBin)
7bfa2d
BuildRequires:  perl(Pod::Usage)
7bfa2d
BuildRequires:  perl(Test::More)
7bfa2d
BuildRequires:  perl(version)
7bfa2d
7bfa2d
%if %{with perl_CPAN_enables_optional_test}
7bfa2d
# Optional tests:
7bfa2d
%if %{with perl_CPAN_enables_gnupg_test}
7bfa2d
BuildRequires:  %{_bindir}/gpg
7bfa2d
# CPAN::Perl::Releases is helpfull only on RC or TRIAL Perl interpreters
7bfa2d
# Digest::SHA1 not needed if Digest::SHA is available
7bfa2d
# Digest::SHA::PurePerl not needed if Digest::SHA is available
7bfa2d
%endif
7bfa2d
%if !%{defined perl_bootstrap}
7bfa2d
BuildRequires:  perl(Expect)
7bfa2d
%endif
7bfa2d
BuildRequires:  perl(Hash::Util)
7bfa2d
%if !%{defined perl_bootstrap}
7bfa2d
# Kwalify not yet packaged
7bfa2d
%if %{with perl_CPAN_enables_gnupg_test}
7bfa2d
BuildRequires:  perl(Module::Signature) >= 0.66
7bfa2d
%endif
7bfa2d
BuildRequires:  perl(Perl::Version)
7bfa2d
%endif
7bfa2d
BuildRequires:  perl(Pod::Perldoc::ToMan)
7bfa2d
%if %{with perl_CPAN_enables_gnupg_test}
7bfa2d
BuildRequires:  perl(Socket)
7bfa2d
%endif
7bfa2d
%if !%{defined perl_bootstrap}
7bfa2d
BuildRequires:  perl(Sort::Versions)
7bfa2d
# Test::MinimumVersion not used
7bfa2d
# Test::Perl::Critic not used
7bfa2d
BuildRequires:  perl(Test::Pod) >= 1.00
7bfa2d
BuildRequires:  perl(Test::Pod::Coverage) >= 0.18
7bfa2d
BuildRequires:  perl(YAML) >= 0.60
7bfa2d
%endif
7bfa2d
%endif
7bfa2d
7bfa2d
Requires:       make
7bfa2d
Requires:       perl(:MODULE_COMPAT_%(eval "`perl -V:version`"; echo $version))
7bfa2d
Requires:       perl(Archive::Tar) >= 1.50
7bfa2d
%if !%{defined perl_bootstrap}
7bfa2d
Recommends:     perl(CPAN::DistnameInfo)
7bfa2d
%endif
7bfa2d
Requires:       perl(CPAN::Meta::Requirements) >= 2.121
7bfa2d
Requires:       perl(Data::Dumper)
7bfa2d
%if !%{defined perl_bootstrap}
7bfa2d
Requires:       perl(Devel::Size)
7bfa2d
%endif
7bfa2d
Requires:       perl(ExtUtils::Manifest)
7bfa2d
%if !%{defined perl_bootstrap}
7bfa2d
Requires:       perl(File::HomeDir) >= 0.65
7bfa2d
%endif
7bfa2d
Requires:       perl(File::Temp) >= 0.16
7bfa2d
# YAML::XS or YAML::Syck or JSON::PP, we already use YAML::Syck at a different
7bfa2d
# place, keep JSON::PP optional
7bfa2d
Requires:       perl(lib)
7bfa2d
%if !%{defined perl_bootstrap}
7bfa2d
Suggests:       perl(Log::Log4perl)
7bfa2d
%endif
7bfa2d
Requires:       perl(Net::Config)
7bfa2d
Requires:       perl(Net::FTP)
7bfa2d
Requires:       perl(POSIX)
7bfa2d
Requires:       perl(Term::ReadLine)
7bfa2d
Requires:       perl(Time::Local)
7bfa2d
%if !%{defined perl_bootstrap}
7bfa2d
Requires:       perl(URI)
7bfa2d
Requires:       perl(URI::Escape)
7bfa2d
%endif
7bfa2d
Requires:       perl(User::pwent)
7bfa2d
# Optional but highly recommended:
7bfa2d
%if !%{defined perl_bootstrap}
7bfa2d
# Prefer Archive::Zip over unzip
7bfa2d
Requires:       perl(Archive::Zip)
7bfa2d
Requires:       perl(Compress::Bzip2)
7bfa2d
Requires:       perl(CPAN::Meta) >= 2.110350
7bfa2d
%endif
7bfa2d
Requires:       perl(Compress::Zlib)
7bfa2d
Requires:       perl(Digest::MD5)
7bfa2d
# CPAN encourages Digest::SHA strongly because of integrity checks
7bfa2d
Requires:       perl(Digest::SHA)
7bfa2d
Requires:       perl(Dumpvalue)
7bfa2d
Requires:       perl(ExtUtils::CBuilder)
7bfa2d
%if ! %{defined perl_bootstrap}
7bfa2d
# Avoid circular deps local::lib -> Module::Install -> CPAN when bootstraping
7bfa2d
# local::lib recommended by CPAN::FirstTime default choice, bug #1122498
7bfa2d
Requires:       perl(local::lib)
7bfa2d
%endif
7bfa2d
%if ! %{defined perl_bootstrap}
7bfa2d
Requires:       perl(Module::Build)
7bfa2d
%endif
7bfa2d
Recommends:     perl(Pod::Perldoc)
7bfa2d
%if ! %{defined perl_bootstrap}
7bfa2d
Recommends:     perl(Term::ReadKey)
7bfa2d
Requires:       perl(Text::Glob)
7bfa2d
# Text::Levenshtein::XS or Text::Levenshtein::Damerau::XS or Text::Levenshtein
7bfa2d
# or Text::Levenshtein::Damerau::PP
7bfa2d
Suggests:       perl(Text::Levenshtein::Damerau::XS)
7bfa2d
# YAML::Syck or YAML or Data::Dumper or overload
7bfa2d
Suggests:       perl(YAML::Syck)
7bfa2d
%endif
7bfa2d
Provides:       cpan = %{version}
7bfa2d
7bfa2d
# Filter non-Linux dependencies
7bfa2d
%global __requires_exclude %{?__requires_exclude:%__requires_exclude|}^perl\\(Mac::BuildTools\\)
7bfa2d
# Filter under-specified dependencies
7bfa2d
%global __requires_exclude %{?__requires_exclude:%__requires_exclude|}^perl\\(CPAN::Meta::Requirements\\)
7bfa2d
7bfa2d
7bfa2d
%description
7bfa2d
The CPAN module automates or at least simplifies the make and install of
7bfa2d
perl modules and extensions. It includes some primitive searching
7bfa2d
capabilities and knows how to use LWP, HTTP::Tiny, Net::FTP and certain
7bfa2d
external download clients to fetch distributions from the net.
7bfa2d
7bfa2d
%prep
7bfa2d
%setup -q -n CPAN-%{version}
7bfa2d
%patch0 -p1
7bfa2d
%patch1 -p1
7bfa2d
# Change configuration name
7bfa2d
find -type f -exec sed -i -e 's/XCPANCONFIGNAMEX/cpan/g' {} \;
7bfa2d
# Remove bundled modules
7bfa2d
rm -r ./inc/*
7bfa2d
sed -i -e '/inc\//d' MANIFEST
7bfa2d
7bfa2d
%build
7bfa2d
perl Makefile.PL INSTALLDIRS=vendor NO_PACKLIST=1 NO_PERLLOCAL=1
7bfa2d
%{make_build}
7bfa2d
7bfa2d
%install
7bfa2d
%{make_install}
7bfa2d
%{_fixperms} $RPM_BUILD_ROOT/*
7bfa2d
7bfa2d
%check
7bfa2d
unset AUTHOR_TEST CPAN_EXPECT_TIMEOUT CPAN_RUN_SHELL_TEST_WITHOUT_EXPECT \
7bfa2d
    ftp_proxy http_proxy no_proxy \
7bfa2d
    PERL5_CPAN_IS_RUNNING PERL5_CPAN_IS_RUNNING_IN_RECURSION PERL_CORE VERBOSE
7bfa2d
make test
7bfa2d
7bfa2d
%files
7bfa2d
%doc Changes PAUSE*.pub README Todo
7bfa2d
%{_bindir}/*
7bfa2d
%{perl_vendorlib}/*
7bfa2d
%{_mandir}/man1/*
7bfa2d
%{_mandir}/man3/*
7bfa2d
7bfa2d
%changelog
7bfa2d
* Fri Jul 26 2019 Fedora Release Engineering <releng@fedoraproject.org> - 2.27-2
7bfa2d
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
7bfa2d
7bfa2d
* Thu Jul 04 2019 Petr Pisar <ppisar@redhat.com> - 2.27-1
7bfa2d
- 2.27 bump
7bfa2d
7bfa2d
* Sun Jun 02 2019 Jitka Plesnikova <jplesnik@redhat.com> - 2.26-3
7bfa2d
- Perl 5.30 re-rebuild of bootstrapped packages
7bfa2d
7bfa2d
* Thu May 30 2019 Jitka Plesnikova <jplesnik@redhat.com> - 2.26-2
7bfa2d
- Perl 5.30 rebuild
7bfa2d
7bfa2d
* Tue Mar 19 2019 Petr Pisar <ppisar@redhat.com> - 2.26-1
7bfa2d
- 2.26 bump
7bfa2d
7bfa2d
* Mon Mar 04 2019 Petr Pisar <ppisar@redhat.com> - 2.25-1
7bfa2d
- 2.25 bump
7bfa2d
7bfa2d
* Fri Feb 01 2019 Fedora Release Engineering <releng@fedoraproject.org> - 2.22-2
7bfa2d
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
7bfa2d
7bfa2d
* Wed Jan 02 2019 Petr Pisar <ppisar@redhat.com> - 2.22-1
7bfa2d
- 2.22 bump
7bfa2d
7bfa2d
* Fri Jul 13 2018 Fedora Release Engineering <releng@fedoraproject.org> - 2.20-418
7bfa2d
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
7bfa2d
7bfa2d
* Sun Jul 01 2018 Jitka Plesnikova <jplesnik@redhat.com> - 2.20-417
7bfa2d
- Perl 5.28 re-rebuild of bootstrapped packages
7bfa2d
7bfa2d
* Tue Jun 26 2018 Jitka Plesnikova <jplesnik@redhat.com> - 2.20-416
7bfa2d
- Increase release to favour standalone package
7bfa2d
7bfa2d
* Wed May 23 2018 Jitka Plesnikova <jplesnik@redhat.com> - 2.20-1
7bfa2d
- Upgrade to 2.20 as provided in perl-5.28.0
7bfa2d
7bfa2d
* Thu Feb 08 2018 Fedora Release Engineering <releng@fedoraproject.org> - 2.18-397
7bfa2d
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
7bfa2d
7bfa2d
* Tue Dec 19 2017 Petr Pisar <ppisar@redhat.com> - 2.18-396
7bfa2d
- Rebase patches to prevent from installing back-up files
7bfa2d
7bfa2d
* Thu Jul 27 2017 Fedora Release Engineering <releng@fedoraproject.org> - 2.18-395
7bfa2d
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
7bfa2d
7bfa2d
* Wed Jun 07 2017 Jitka Plesnikova <jplesnik@redhat.com> - 2.18-394
7bfa2d
- Perl 5.26 re-rebuild of bootstrapped packages
7bfa2d
7bfa2d
* Sat Jun 03 2017 Jitka Plesnikova <jplesnik@redhat.com> - 2.18-393
7bfa2d
- Perl 5.26 rebuild
7bfa2d
7bfa2d
* Fri May 12 2017 Jitka Plesnikova <jplesnik@redhat.com> - 2.18-2
7bfa2d
- Don't BR: perl(Module::Build) when bootstrapping
7bfa2d
7bfa2d
* Wed May 10 2017 Petr Pisar <ppisar@redhat.com> - 2.18-1
7bfa2d
- Upgrade to CPAN-2.18 as provided in perl-5.25.12
7bfa2d
7bfa2d
* Wed Feb 15 2017 Petr Pisar <ppisar@redhat.com> - 2.16-1
7bfa2d
- 2.16 bump
7bfa2d
7bfa2d
* Sat Feb 11 2017 Fedora Release Engineering <releng@fedoraproject.org> - 2.14-5
7bfa2d
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
7bfa2d
7bfa2d
* Mon Jan 09 2017 Petr Pisar <ppisar@redhat.com> - 2.14-4
7bfa2d
- Use Perl porter's fix for searching cpan -j file (CPAN RT#116507)
7bfa2d
- Fix logging fatal errors (https://github.com/andk/cpanpm/pull/104)
7bfa2d
7bfa2d
* Tue Oct 18 2016 Petr Pisar <ppisar@redhat.com> - 2.14-3
7bfa2d
- Apply remains of CVE-2016-1238 fix from perl (CPAN RT#116507)
7bfa2d
- Do not search cpan -j file in @INC (CPAN RT#116507)
7bfa2d
7bfa2d
* Wed Oct 12 2016 Petr Pisar <ppisar@redhat.com> - 2.14-2
7bfa2d
- Fix CVE-2016-1238 properly (CPAN RT#116507)
7bfa2d
7bfa2d
* Mon Jun 27 2016 Petr Pisar <ppisar@redhat.com> - 2.14-1
7bfa2d
- 2.14 bump
7bfa2d
- Fix installation from a working directory (CPAN RT#115734)
7bfa2d
- Fix "cpan -O" invocation (CPAN RT#115786)
7bfa2d
- Do not use Net::FTP if ftp_proxy variable points to an HTTP server
7bfa2d
  (CPAN RT#110833)
7bfa2d
- Recognize URL schemata disregarding the case
7bfa2d
- Fix CVE-2016-1238 (loading optional modules from current working directory)
7bfa2d
- Recognize exact version dependency operator (CPAN RT#47934)
7bfa2d
- Cope with non-digit version strings
7bfa2d
7bfa2d
* Wed May 18 2016 Jitka Plesnikova <jplesnik@redhat.com> - 2.11-366
7bfa2d
- Perl 5.24 re-rebuild of bootstrapped packages
7bfa2d
7bfa2d
* Sat May 14 2016 Jitka Plesnikova <jplesnik@redhat.com> - 2.11-365
7bfa2d
- Increase release to favour standalone package
7bfa2d
7bfa2d
* Thu Feb 04 2016 Fedora Release Engineering <releng@fedoraproject.org> - 2.11-349
7bfa2d
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
7bfa2d
7bfa2d
* Tue Dec 15 2015 Petr Pisar <ppisar@redhat.com> - 2.11-348
7bfa2d
- Require make package
7bfa2d
7bfa2d
* Thu Jun 18 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.11-347
7bfa2d
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
7bfa2d
7bfa2d
* Wed Jun 10 2015 Jitka Plesnikova <jplesnik@redhat.com> - 2.11-346
7bfa2d
- Perl 5.22 re-rebuild of bootstrapped packages
7bfa2d
7bfa2d
* Thu Jun 04 2015 Jitka Plesnikova <jplesnik@redhat.com> - 2.11-345
7bfa2d
- Increase release to favour standalone package
7bfa2d
7bfa2d
* Thu Jun 04 2015 Jitka Plesnikova <jplesnik@redhat.com> - 2.11-2
7bfa2d
- Perl 5.22 rebuild
7bfa2d
7bfa2d
* Wed May 06 2015 Petr Pisar <ppisar@redhat.com> - 2.11-1
7bfa2d
- 2.11 bump in order to dual-live with perl 5.22
7bfa2d
7bfa2d
* Fri Mar 13 2015 Petr Pisar <ppisar@redhat.com> - 2.10-1
7bfa2d
- 2.10 bump
7bfa2d
7bfa2d
* Wed Jan 28 2015 Petr Pisar <ppisar@redhat.com> - 2.05-309
7bfa2d
- Allow changing the configuration directory name
7bfa2d
7bfa2d
* Thu Oct 30 2014 Petr Pisar <ppisar@redhat.com> - 2.05-308
7bfa2d
- Create site paths for the first time (bug #1158873)
7bfa2d
7bfa2d
* Wed Sep 10 2014 Petr Pisar <ppisar@redhat.com> 2.05-307
7bfa2d
- Synchronize to perl.spec modifications
7bfa2d
- Disable non-core modules when bootstrapping
7bfa2d
7bfa2d
* Tue Apr 22 2014 Petr Pisar <ppisar@redhat.com> 2.05-1
7bfa2d
- Specfile autogenerated by cpanspec 1.78.