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