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