Compare commits

...

No commits in common. "c8-stream-5.3" and "c8" have entirely different histories.

13 changed files with 1048 additions and 78 deletions

2
.gitignore vendored
View File

@ -1 +1 @@
SOURCES/CPAN-2.27.tar.gz
SOURCES/CPAN-2.16.tar.gz

View File

@ -1 +1 @@
f14e6be485bff20faa2028a73ee73429c32f0bea SOURCES/CPAN-2.27.tar.gz
353f0d6590743bcd113fd39050f6182c96449e43 SOURCES/CPAN-2.16.tar.gz

View File

@ -0,0 +1,117 @@
From 582ed99d657fb10750e31e942f88b6ddc0259e01 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= <ppisar@redhat.com>
Date: Wed, 10 May 2017 16:44:06 +0200
Subject: [PATCH] Rebase to 2.18 from perl-5.25.12
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Signed-off-by: Petr Písař <ppisar@redhat.com>
---
lib/CPAN.pm | 2 +-
lib/CPAN/Bundle.pm | 7 ++++++-
lib/CPAN/Distribution.pm | 8 +++++++-
3 files changed, 14 insertions(+), 3 deletions(-)
diff --git a/lib/CPAN.pm b/lib/CPAN.pm
index 1fba5c1..4f02850 100644
--- a/lib/CPAN.pm
+++ b/lib/CPAN.pm
@@ -2,7 +2,7 @@
# vim: ts=4 sts=4 sw=4:
use strict;
package CPAN;
-$CPAN::VERSION = '2.16';
+$CPAN::VERSION = '2.18';
$CPAN::VERSION =~ s/_//;
# we need to run chdir all over and we would get at wrong libraries
diff --git a/lib/CPAN/Bundle.pm b/lib/CPAN/Bundle.pm
index 3f17b54..3b4e93d 100644
--- a/lib/CPAN/Bundle.pm
+++ b/lib/CPAN/Bundle.pm
@@ -8,7 +8,7 @@ use CPAN::Module;
use vars qw(
$VERSION
);
-$VERSION = "5.5002";
+$VERSION = "5.5003";
sub look {
my $self = shift;
@@ -21,6 +21,11 @@ sub undelay {
delete $self->{later};
for my $c ( $self->contains ) {
my $obj = CPAN::Shell->expandany($c) or next;
+ if ($obj->id eq $self->id){
+ my $id = $obj->id;
+ $CPAN::Frontend->mywarn("$id seems to contain itself, skipping\n");
+ next;
+ }
$obj->undelay;
}
}
diff --git a/lib/CPAN/Distribution.pm b/lib/CPAN/Distribution.pm
index b5744fd..64976eb 100644
--- a/lib/CPAN/Distribution.pm
+++ b/lib/CPAN/Distribution.pm
@@ -8,7 +8,7 @@ use CPAN::InfoObj;
use File::Path ();
@CPAN::Distribution::ISA = qw(CPAN::InfoObj);
use vars qw($VERSION);
-$VERSION = "2.16";
+$VERSION = "2.18";
# no prepare, because prepare is not a command on the shell command line
# TODO: clear instance cache on reload
@@ -377,6 +377,7 @@ sub get {
? $ENV{PERL5LIB}
: ($ENV{PERLLIB} || "");
local $ENV{PERL5OPT} = defined $ENV{PERL5OPT} ? $ENV{PERL5OPT} : "";
+ # local $ENV{PERL_USE_UNSAFE_INC} = exists $ENV{PERL_USE_UNSAFE_INC} ? $ENV{PERL_USE_UNSAFE_INC} : 1; # get
$CPAN::META->set_perl5lib;
local $ENV{MAKEFLAGS}; # protect us from outer make calls
@@ -1302,6 +1303,7 @@ Could not determine which directory to use for looking at $dist.
: ($ENV{PERLLIB} || "");
local $ENV{PERL5OPT} = defined $ENV{PERL5OPT} ? $ENV{PERL5OPT} : "";
+ # local $ENV{PERL_USE_UNSAFE_INC} = exists $ENV{PERL_USE_UNSAFE_INC} ? $ENV{PERL_USE_UNSAFE_INC} : 1; # look
$CPAN::META->set_perl5lib;
local $ENV{MAKEFLAGS}; # protect us from outer make calls
@@ -1821,6 +1823,7 @@ sub prepare {
? $ENV{PERL5LIB}
: ($ENV{PERLLIB} || "");
local $ENV{PERL5OPT} = defined $ENV{PERL5OPT} ? $ENV{PERL5OPT} : "";
+ local $ENV{PERL_USE_UNSAFE_INC} = exists $ENV{PERL_USE_UNSAFE_INC} ? $ENV{PERL_USE_UNSAFE_INC} : 1; # prepare
$CPAN::META->set_perl5lib;
local $ENV{MAKEFLAGS}; # protect us from outer make calls
@@ -2115,6 +2118,7 @@ is part of the perl-%s distribution. To install that, you need to run
? $ENV{PERL5LIB}
: ($ENV{PERLLIB} || "");
local $ENV{PERL5OPT} = defined $ENV{PERL5OPT} ? $ENV{PERL5OPT} : "";
+ local $ENV{PERL_USE_UNSAFE_INC} = exists $ENV{PERL_USE_UNSAFE_INC} ? $ENV{PERL_USE_UNSAFE_INC} : 1; # make
$CPAN::META->set_perl5lib;
local $ENV{MAKEFLAGS}; # protect us from outer make calls
@@ -3482,6 +3486,7 @@ sub test {
: ($ENV{PERLLIB} || "");
local $ENV{PERL5OPT} = defined $ENV{PERL5OPT} ? $ENV{PERL5OPT} : "";
+ local $ENV{PERL_USE_UNSAFE_INC} = exists $ENV{PERL_USE_UNSAFE_INC} ? $ENV{PERL_USE_UNSAFE_INC} : 1; # test
$CPAN::META->set_perl5lib;
local $ENV{MAKEFLAGS}; # protect us from outer make calls
local $ENV{PERL_MM_USE_DEFAULT} = 1 if $CPAN::Config->{use_prompt_default};
@@ -3955,6 +3960,7 @@ sub install {
: ($ENV{PERLLIB} || "");
local $ENV{PERL5OPT} = defined $ENV{PERL5OPT} ? $ENV{PERL5OPT} : "";
+ local $ENV{PERL_USE_UNSAFE_INC} = exists $ENV{PERL_USE_UNSAFE_INC} ? $ENV{PERL_USE_UNSAFE_INC} : 1; # install
$CPAN::META->set_perl5lib;
local $ENV{PERL_MM_USE_DEFAULT} = 1 if $CPAN::Config->{use_prompt_default};
local $ENV{NONINTERACTIVE_TESTING} = 1 if $CPAN::Config->{use_prompt_default};
--
2.9.3

View File

@ -0,0 +1,22 @@
Add notes about the first configuration and about creating site repository
which is specific for Fedora/RHEL.
diff -up CPAN-2.16/scripts/cpan.orig CPAN-2.16/scripts/cpan
--- CPAN-2.16/scripts/cpan.orig 2025-02-28 10:03:24.046432731 +0100
+++ CPAN-2.16/scripts/cpan 2025-02-28 10:51:34.442369826 +0100
@@ -297,6 +297,15 @@ not control. For now, the exit codes are
8 A module failed to install
+=head1 NOTES
+
+If the configuration is not defined when C<cpan> is used for the first
+time, CPAN::Config initialization is triggered using L<CPAN::FirstTime>.
+This step is skipped only when using the C<-h> option.
+
+If the user has write permissions to /usr/local, site library repositories
+may also be created.
+
=head1 TO DO
* one shot configuration values from the command line

View File

@ -33,7 +33,7 @@ index 531c115..8d82795 100644
+ $CPAN::Frontend->mywarn(sprintf(
+ qq{Perl site library directory "%s" does not exist.\n},
+ $_));
+ File::Path::make_path($_, { error => \my $failure });
+ File::Path::make_path($_, { error => \my $failure, chmod => 0755 });
+ if (@$failure) {
+ $CPAN::Frontend->mywarn(sprintf(
+ qq{Perl site library directory "%s" } .

View File

@ -0,0 +1,52 @@
From be1fa8db08d1995779592880cfe156f4351a89d5 Mon Sep 17 00:00:00 2001
From: brian d foy <brian.d.foy@gmail.com>
Date: Tue, 18 Oct 2016 16:02:51 -0400
Subject: [PATCH] For cpan -j, make the file an absolute path
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This is an additional fix for rt.cpan.org #116507.
Since . will not be in @INC, we can't assume we are
loading from the current directory (although that's
a very likely situation for -j). Take whatever
argument we get and expand it to an absolute path.
Signed-off-by: Petr Písař <ppisar@redhat.com>
---
lib/App/Cpan.pm | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/lib/App/Cpan.pm b/lib/App/Cpan.pm
index 3ddcbe8..bc22cbc 100644
--- a/lib/App/Cpan.pm
+++ b/lib/App/Cpan.pm
@@ -289,7 +289,7 @@ use CPAN 1.80 (); # needs no test
use Config;
use autouse Cwd => qw(cwd);
use autouse 'Data::Dumper' => qw(Dumper);
-use File::Spec::Functions;
+use File::Spec::Functions qw(catfile file_name_is_absolute rel2abs);
use File::Basename;
use Getopt::Std;
@@ -1093,12 +1093,14 @@ sub _shell
sub _load_config # -j
{
- my $file = shift || '';
+ my $argument = shift;
+
+ my $file = file_name_is_absolute( $argument ) ? $argument : rel2abs( $argument );
+ croak( "cpan config file [$file] for -j does not exist!\n" ) unless -e $file;
# should I clear out any existing config here?
$CPAN::Config = {};
delete $INC{'CPAN/Config.pm'};
- croak( "Config file [$file] does not exist!\n" ) unless -e $file;
my $rc = eval "require '$file'";
--
2.13.6

View File

@ -95,7 +95,7 @@ diff --git a/lib/CPAN.pm b/lib/CPAN.pm
index 4f02850..2c117b4 100644
--- a/lib/CPAN.pm
+++ b/lib/CPAN.pm
@@ -1745,7 +1745,7 @@ restarting the whole get/make/test/install procedure from scratch.
@@ -1736,7 +1736,7 @@ restarting the whole get/make/test/install procedure from scratch.
=item Lockfile
@ -104,7 +104,7 @@ index 4f02850..2c117b4 100644
Batch jobs can run without a lockfile and not disturb each other.
The shell offers to run in I<downgraded mode> when another process is
@@ -1819,7 +1819,7 @@ C<install_tested>.
@@ -1810,7 +1810,7 @@ C<install_tested>.
=head2 mkmyconfig
@ -113,7 +113,7 @@ index 4f02850..2c117b4 100644
directory so that you can save your own preferences instead of the
system-wide ones.
@@ -2034,7 +2034,7 @@ in a file CPAN/Config.pm.
@@ -2025,7 +2025,7 @@ in a file CPAN/Config.pm.
Default values defined in the CPAN/Config.pm file can be
overridden in a user specific file: CPAN/MyConfig.pm. Such a file is
@ -122,7 +122,7 @@ index 4f02850..2c117b4 100644
added to the search path of the CPAN module before the use() or
require() statements. The mkmyconfig command writes this file for you.
@@ -3729,8 +3729,8 @@ there is too much output to keep track of.
@@ -3720,8 +3720,8 @@ there is too much output to keep track of.
You may want to configure something like

View File

@ -0,0 +1,12 @@
diff -up CPAN-2.16/lib/App/Cpan.pm.orig CPAN-2.16/lib/App/Cpan.pm
--- CPAN-2.16/lib/App/Cpan.pm.orig 2025-02-03 13:29:33.472958227 +0100
+++ CPAN-2.16/lib/App/Cpan.pm 2025-02-03 13:31:58.261873354 +0100
@@ -429,7 +429,7 @@ sub _process_setup_options
$Method_table{j}[ $Method_table_index{code} ]->( $options->{j} );
delete $options->{j};
}
- else
+ elsif ( ! $options->{h} ) # h "ignores all of the other options and arguments"
{
# this is what CPAN.pm would do otherwise
local $CPAN::Be_Silent = 1;

View File

@ -0,0 +1,630 @@
From b1ebffb54069c33bd88403862ed4870767469bde Mon Sep 17 00:00:00 2001
From: Andreas Koenig <andk@cpan.org>
Date: Sun, 21 Nov 2021 21:35:41 +0100
Subject: [PATCH 331/338] Add PAUSE2022 key
---
MANIFEST | 1 +
PAUSE2022.pub | 598 ++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 599 insertions(+)
create mode 100644 PAUSE2022.pub
diff --git a/MANIFEST b/MANIFEST
index 3a41a910..9a8ba22d 100644
--- a/MANIFEST
+++ b/MANIFEST
@@ -531,6 +531,7 @@ PAUSE2011.pub
PAUSE2009.pub
PAUSE2011.pub
PAUSE2015.pub
+PAUSE2022.pub
README
scripts/cpan
scripts/cpan-mirrors
diff --git a/PAUSE2022.pub b/PAUSE2022.pub
new file mode 100644
index 00000000..728e4bad
--- /dev/null
+++ b/PAUSE2022.pub
@@ -0,0 +1,598 @@
+gpg --export --armor 450F89EC
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+
+mQGiBD4+cJARBACxOByY0SJBBuJoFrH2hoqRFny423gY6V3jq1uTgGY/PPaxP+Sq
+r3RzxPct4vJcsoo48pwBsMHLrWfORq26zb6eKgmMq/CQo2gzaRbeRxCi3ke4KBmu
+aREi6RjaZSU94yABtDmspUBrpYV8zfZMv5ZIQlg9W1Tu66BFOUrrNeDpKwCgosCp
+9dtNAMhHkzxs8UJH5i3Uzb0D/0VLoAE8sOfUXqjc38rxiHuGBFSNC70Ih4mzGUCJ
+MGT4z1X3K6uUawnXMoc8XqPaYnEgOzztMymydtr+urjUwcGnuXDSpV6nulE5irxh
+zlikSTJy/42QzTMcrdRynffmJo9PRgymMI8GgWaYG5g3zzGAhi5BA6G8JKfC93IV
+xiRPBACXJpLBYQljqJY9UDNJuq8nHhKiWHBXdZzrC3LM0FSF3PKuP/ugc+KBIKXm
+clNPNFKla/SRbH6dMHsGIy8wnGPI5AtTS0roNQrttv3/ghRT7+OKXrGmBxZ/KHVr
+v3PVgiRA5MDr1mIsovfuc9WQnFu2TkgnN/F3pDcrVVSi5b+rZLQzUEFVU0UgQmF0
+Y2ggU2lnbmluZyBLZXkgMjAwOSA8cGF1c2VAcGF1c2UucGVybC5vcmc+iGYEExEC
+ACYFAkl43/ECGwMFCQ/OdIAGCwkIBwMCBBUCCAMEFgIDAQIeAQIXgAAKCRAyjahn
+RQ+J7IDEAJ40F0fyg6NTAZ2nWizs/C/RSPYPsgCfSqnVpaqF6k0H/5AabfdNbcS2
+Wm6IRgQQEQIABgUCSXwU9wAKCRDsgDnwoxfBXQBsAJsEku5xBZsf7EYYkWeSEiXn
+p2kLtQCg0V2hlzJnDCFFqf/WsMqL2glkDjOIRgQQEQIABgUCS4xI1gAKCRA0rq6z
+PNGwzHiqAJ0dtAvhlqh/mH7rk1zV5d6MKUKBZQCg5lO06lB5gPX+RrxJrJ/2ThyQ
+auGIRgQREQIABgUCScuA1AAKCRA2zBWk41ll/N3WAJ9aV3ZzqMCiXbFrQwKLAtyr
+h6wI3wCfYKAvs67QENDfq4bvTHk0N61MA1eIRgQTEQIABgUCSpht5gAKCRDp1n4q
+3kFyFnQ7AKCaTGJjbuTiGwPjxRSYLdWahh9q3gCfTYZNWq1+9I4I01veU166Nh7G
+1KGIZgQTEQIAJgIbAwYLCQgHAwIEFQIIAwQWAgMBAh4BAheABQJNc/PEBQkTkilo
+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
+55YO2ILV37fmSQ57ezqz1yw=
+=NaWa
+-----END PGP PUBLIC KEY BLOCK-----
--
2.49.0

View File

@ -0,0 +1,16 @@
diff -u -r CPAN-2.16.orig/lib/CPAN/FirstTime.pm CPAN-2.16/lib/CPAN/FirstTime.pm
--- CPAN-2.16.orig/lib/CPAN/FirstTime.pm 2025-05-07 12:36:57.566381277 +0200
+++ CPAN-2.16/lib/CPAN/FirstTime.pm 2025-05-07 12:39:42.957929331 +0200
@@ -1283,7 +1283,11 @@
);
}
else {
- $CPAN::Config->{urllist} = [ 'http://www.cpan.org/' ];
+ # Hint: as of 2021-11: to get http, use http://www.cpan.org/
+ $CPAN::Config->{urllist} = [ 'https://www.cpan.org/' ];
+ $CPAN::Frontend->myprint(
+ "We initialized your 'urllist' to @{$CPAN::Config->{urllist}}. Type 'o conf init urllist' to change it.\n"
+ );
}
}
elsif (!$matcher || "urllist" =~ $matcher) {

View File

@ -0,0 +1,59 @@
diff -u -r CPAN-2.16.orig2/lib/CPAN/Distribution.pm CPAN-2.16/lib/CPAN/Distribution.pm
--- CPAN-2.16.orig2/lib/CPAN/Distribution.pm 2017-02-14 16:28:12.000000000 +0100
+++ CPAN-2.16/lib/CPAN/Distribution.pm 2025-05-07 13:15:06.672972235 +0200
@@ -1487,20 +1487,44 @@
$file = $self->{localfile};
$basename = File::Basename::basename($file);
+ my($signed_data);
my $fh = FileHandle->new;
- if (open $fh, $chk_file) {
- local($/);
- my $eval = <$fh>;
- $eval =~ s/\015?\012/\n/g;
- close $fh;
- my($compmt) = Safe->new();
- $cksum = $compmt->reval($eval);
- if ($@) {
- rename $chk_file, "$chk_file.bad";
- Carp::confess($@) if $@;
+ if ($check_sigs) {
+ my $tempdir;
+ if ($CPAN::META->has_usable("File::Temp")) {
+ $tempdir = File::Temp::tempdir("CHECKSUMS-XXXX", CLEANUP => 1, DIR => "/tmp" );
+ } else {
+ $tempdir = File::Spec->catdir(File::Spec->tmpdir, "CHECKSUMS-$$");
+ File::Path::mkpath($tempdir);
}
+ my $tempfile = File::Spec->catfile($tempdir, "CHECKSUMS.$$");
+ unlink $tempfile; # ignore missing file
+ my $devnull = File::Spec->devnull;
+ my $gpg = $CPAN::Config->{gpg} or
+ $CPAN::Frontend->mydie("Your configuration suggests that you do not have 'gpg' installed. This is needed to verify checksums with the config variable 'check_sigs' on. Please configure it with 'o conf init gpg'");
+ my $system = qq{"$gpg" --verify --batch --no-tty --output "$tempfile" "$chk_file" 2> "$devnull"};
+ 0 == system $system or $CPAN::Frontend->mydie("gpg run was failing, cannot continue: $system");
+ open $fh, $tempfile or $CPAN::Frontend->mydie("Could not open $tempfile: $!");
+ local $/;
+ $signed_data = <$fh>;
+ close $fh;
+ File::Path::rmtree($tempdir);
} else {
- Carp::carp "Could not open $chk_file for reading";
+ my $fh = FileHandle->new;
+ if (open $fh, $chk_file) {
+ local($/);
+ $signed_data = <$fh>;
+ } else {
+ $CPAN::Frontend->mydie("Could not open $chk_file for reading");
+ }
+ close $fh;
+ }
+ $signed_data =~ s/\015?\012/\n/g;
+ my($compmt) = Safe->new();
+ $cksum = $compmt->reval($signed_data);
+ if ($@) {
+ rename $chk_file, "$chk_file.bad";
+ Carp::confess($@) if $@;
}
if (! ref $cksum or ref $cksum ne "HASH") {

View File

@ -0,0 +1,11 @@
diff -up CPAN-2.16/lib/CPAN/HTTP/Client.pm.orig CPAN-2.16/lib/CPAN/HTTP/Client.pm
--- CPAN-2.16/lib/CPAN/HTTP/Client.pm.orig 2024-01-17 13:58:05.321031493 +0100
+++ CPAN-2.16/lib/CPAN/HTTP/Client.pm 2024-01-17 14:07:36.657874287 +0100
@@ -32,6 +32,7 @@ sub mirror {
my $want_proxy = $self->_want_proxy($uri);
my $http = HTTP::Tiny->new(
+ verify_SSL => 1,
$want_proxy ? (proxy => $self->{proxy}) : ()
);

View File

@ -8,28 +8,47 @@
%bcond_with perl_CPAN_enables_optional_test
%endif
%global cpan_version 2.16
Name: perl-CPAN
Version: 2.27
Release: 2%{?dist}
Version: 2.18
Release: 402%{?dist}
Summary: Query, download and build perl modules from CPAN sites
License: GPL+ or Artistic
URL: https://metacpan.org/release/CPAN
Source0: https://cpan.metacpan.org/authors/id/A/AN/ANDK/CPAN-%{version}.tar.gz
URL: http://search.cpan.org/dist/CPAN/
Source0: http://www.cpan.org/authors/id/A/AN/ANDK/CPAN-%{cpan_version}.tar.gz
# Upgrade to CPAN-2.18 as provided in perl-5.25.12 to properly dual-live after
# upgrading perl to 5.26
Patch0: CPAN-2.16-Rebase-to-2.18-from-perl-5.25.12.patch
# Create site paths for the first time, bug #1158873, CPAN RT#99905
Patch0: CPAN-2.18-Attemp-to-create-site-library-directories-on-first-t.patch
Patch1: CPAN-2.18-Attemp-to-create-site-library-directories-on-first-t.patch
# Change configuration directory name
Patch1: CPAN-2.18-Replace-configuration-directory-string-with-a-marke.patch
Patch2: CPAN-2.18-Replace-configuration-directory-string-with-a-marke.patch
# Do not search cpan -j file in @INC, CPAN RT#116507, proposed in
# <https://github.com/andk/cpanpm/pull/105>
Patch3: CPAN-2.18-For-cpan-j-make-the-file-an-absolute-path.patch
# CVE-2023-31484 - Add verify_SSL => 1
Patch4: CPAN-2.35-Add-verify-SSL.patch
# Fix the option h now really ignores all other options and arguments
# in upstream since 2.25
Patch5: CPAN-2.25-Fix-option-h-really-ignores-all-other-options-and-arguments.patch
# Update man page to provide notes about first run
Patch6: CPAN-2.18-Add-notes-about-first-configuration.patch
# Change default urllist to HTTPS
Patch7: CPAN-2.29-Change_default_urllist_to_https.patch
# use gpg --verify --output ... to disentangle data and signature
Patch8: CPAN-2.33-Add_verification_of_CHECKSUMS_signature.patch
Patch9: CPAN-2.29-Add-PAUSE2022-key.patch
BuildArch: noarch
BuildRequires: coreutils
BuildRequires: findutils
BuildRequires: make
BuildRequires: perl-generators
BuildRequires: perl-interpreter
BuildRequires: perl-generators
BuildRequires: perl(Config)
BuildRequires: perl(ExtUtils::MakeMaker) >= 6.76
BuildRequires: perl(ExtUtils::MakeMaker)
BuildRequires: perl(File::Basename)
BuildRequires: perl(File::Path)
# Module::Signature not used
BuildRequires: perl(strict)
BuildRequires: perl(vars)
BuildRequires: sed
@ -55,7 +74,6 @@ BuildRequires: perl(Data::Dumper)
# Devel::Size not used at tests
BuildRequires: perl(DirHandle)
BuildRequires: perl(Dumpvalue)
BuildRequires: perl(Errno)
BuildRequires: perl(Exporter)
# ExtUtils::Manifest not used at tests
BuildRequires: perl(Fcntl)
@ -70,8 +88,6 @@ BuildRequires: perl(Getopt::Std)
# HTTP::Request is optional
BuildRequires: perl(HTTP::Tiny) >= 0.005
BuildRequires: perl(if)
# YAML::XS or YAML::Syck or JSON::PP, we already use YAML::Syck at a different
# place, keep JSON::PP optional
BuildRequires: perl(lib)
# local::lib is optional
# LWP is optional, prefer HTTP::Tiny and Net::FTP
@ -81,10 +97,8 @@ BuildRequires: perl(lib)
# Module::Signature is optional
# Net::Config not used at tests
# Net::FTP not used at tests
# Net::Ping is required but >= 2.13 version is a soft dependency
BuildRequires: perl(Net::Ping)
BuildRequires: perl(overload)
# Pod::Perldoc is optional
BuildRequires: perl(POSIX)
BuildRequires: perl(Safe)
BuildRequires: perl(Sys::Hostname)
@ -98,14 +112,10 @@ BuildRequires: perl(Text::Wrap)
# User::pwent not used at tests
BuildRequires: perl(warnings)
# Optional:
#%%if !%%{defined perl_bootstrap}
# CPAN::DistnameInfo not used at tests
#%%endif
BuildRequires: perl(CPAN::Meta) >= 2.110350
# Crypt::OpenPGP not used at tests
# Digest::MD5 not used at tests
BuildRequires: perl(Digest::SHA)
# Keep Log::Log4perl optional
# Keep MIME::Base64 optional
%if !%{defined perl_bootstrap}
BuildRequires: perl(Module::Build)
@ -117,13 +127,11 @@ BuildRequires: perl(blib)
BuildRequires: perl(FindBin)
BuildRequires: perl(Pod::Usage)
BuildRequires: perl(Test::More)
BuildRequires: perl(version)
%if %{with perl_CPAN_enables_optional_test}
# Optional tests:
%if %{with perl_CPAN_enables_gnupg_test}
BuildRequires: %{_bindir}/gpg
# CPAN::Perl::Releases is helpfull only on RC or TRIAL Perl interpreters
# Digest::SHA1 not needed if Digest::SHA is available
# Digest::SHA::PurePerl not needed if Digest::SHA is available
%endif
@ -138,7 +146,6 @@ BuildRequires: perl(Module::Signature) >= 0.66
%endif
BuildRequires: perl(Perl::Version)
%endif
BuildRequires: perl(Pod::Perldoc::ToMan)
%if %{with perl_CPAN_enables_gnupg_test}
BuildRequires: perl(Socket)
%endif
@ -154,10 +161,15 @@ BuildRequires: perl(YAML) >= 0.60
Requires: make
Requires: perl(:MODULE_COMPAT_%(eval "`perl -V:version`"; echo $version))
# Some subpackages modules are not dual-lived. E.g. "open". If a distribution
# on CPAN declares a dependency on such a module, CPAN client will fail
# because the only provider is perl distribution.
# Another issue is with dual-lived modules whose distribution actually does
# not declare all needed core dependencies and the installation would also
# fail.
# As a result, any CPAN client must run-require the complete perl.
Requires: perl
Requires: perl(Archive::Tar) >= 1.50
%if !%{defined perl_bootstrap}
Recommends: perl(CPAN::DistnameInfo)
%endif
Requires: perl(CPAN::Meta::Requirements) >= 2.121
Requires: perl(Data::Dumper)
%if !%{defined perl_bootstrap}
@ -168,12 +180,7 @@ Requires: perl(ExtUtils::Manifest)
Requires: perl(File::HomeDir) >= 0.65
%endif
Requires: perl(File::Temp) >= 0.16
# YAML::XS or YAML::Syck or JSON::PP, we already use YAML::Syck at a different
# place, keep JSON::PP optional
Requires: perl(lib)
%if !%{defined perl_bootstrap}
Suggests: perl(Log::Log4perl)
%endif
Requires: perl(Net::Config)
Requires: perl(Net::FTP)
Requires: perl(POSIX)
@ -204,15 +211,12 @@ Requires: perl(local::lib)
%endif
%if ! %{defined perl_bootstrap}
Requires: perl(Module::Build)
%endif
Recommends: perl(Pod::Perldoc)
%if ! %{defined perl_bootstrap}
Recommends: perl(Term::ReadKey)
Requires: perl(Text::Glob)
# Text::Levenshtein::XS or Text::Levenshtein::Damerau::XS or Text::Levenshtein
# or Text::Levenshtein::Damerau::PP
Suggests: perl(Text::Levenshtein::Damerau::XS)
# YAML::Syck or YAML or Data::Dumper or overload
# YAML::Syck or YAML or Data::Dumper
Suggests: perl(YAML::Syck)
%endif
Provides: cpan = %{version}
@ -221,7 +225,10 @@ Provides: cpan = %{version}
%global __requires_exclude %{?__requires_exclude:%__requires_exclude|}^perl\\(Mac::BuildTools\\)
# Filter under-specified dependencies
%global __requires_exclude %{?__requires_exclude:%__requires_exclude|}^perl\\(CPAN::Meta::Requirements\\)
# Filter modules bundled for tests
%global __provides_exclude_from %{?__provides_exclude_from:%__provides_exclude_from|}^%{_libexecdir}
%global __requires_exclude %{__requires_exclude}|^perl\\(CPAN::MyConfig\\)
%global __requires_exclude %{__requires_exclude}|^perl\\(local_utils\\)
%description
The CPAN module automates or at least simplifies the make and install of
@ -229,24 +236,81 @@ 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.
%package tests
Summary: Tests for %{name}
Requires: %{name} = %{?epoch:%{epoch}:}%{version}-%{release}
Requires: perl-Test-Harness
Requires: tar
%description tests
Tests from %{name}. Execute them
with "%{_libexecdir}/%{name}/test".
%prep
%setup -q -n CPAN-%{version}
%patch0 -p1
%patch1 -p1
%setup -q -n CPAN-%{cpan_version}
%patch -P0 -p1
%patch -P1 -p1
%patch -P2 -p1
%patch -P3 -p1
%patch -P4 -p1
%patch -P5 -p1
%patch -P6 -p1
%patch -P7 -p1
%patch -P8 -p1
%patch -P9 -p1
# Change configuration name
find -type f -exec sed -i -e 's/XCPANCONFIGNAMEX/cpan/g' {} \;
# Remove bundled modules
rm -r ./inc/*
sed -i -e '/inc\//d' MANIFEST
# Help generators to recognize Perl scripts
for F in t/*.t; do
perl -i -MConfig -ple 'print $Config{startperl} if $. == 1 && !s{\A#!.*perl\b}{$Config{startperl}}' "$F"
chmod +x "$F"
done
%build
perl Makefile.PL INSTALLDIRS=vendor NO_PACKLIST=1 NO_PERLLOCAL=1
%{make_build}
perl Makefile.PL INSTALLDIRS=vendor
make %{?_smp_mflags}
%install
%{make_install}
make pure_install DESTDIR=$RPM_BUILD_ROOT
find $RPM_BUILD_ROOT -type f -name .packlist -delete
%{_fixperms} $RPM_BUILD_ROOT/*
# Install tests
mkdir -p %{buildroot}%{_libexecdir}/%{name}
cp -a t distroprefs %{buildroot}%{_libexecdir}/%{name}
# Does not work with system module
rm %{buildroot}%{_libexecdir}/%{name}/t/5*pod*.t
# Remove the tests which need ./lib and ./blib
rm %{buildroot}%{_libexecdir}/%{name}/t/03pkgs.t
rm %{buildroot}%{_libexecdir}/%{name}/t/04clean_load.t
# Needed internet connection
rm %{buildroot}%{_libexecdir}/%{name}/t/31sessions.t
# Use system modules for tests
perl -i -ple 's{-Mblib}{}' %{buildroot}%{_libexecdir}/%{name}/t/97-return_values.t
mkdir -p %{buildroot}%{_libexecdir}/%{name}/blib/script
ln -s %{_bindir}/cpan %{buildroot}%{_libexecdir}/%{name}/blib/script
cat > %{buildroot}%{_libexecdir}/%{name}/test << 'EOF'
#!/bin/sh
set -e
unset AUTHOR_TEST CPAN_EXPECT_TIMEOUT CPAN_RUN_SHELL_TEST_WITHOUT_EXPECT \
ftp_proxy http_proxy no_proxy \
PERL5_CPAN_IS_RUNNING PERL5_CPAN_IS_RUNNING_IN_RECURSION PERL_CORE VERBOSE
# Some tests write into temporary files/directories. The easiest solution
# is to copy the tests into a writable directory and execute them from there.
DIR=$(mktemp -d)
pushd "$DIR"
cp -a %{_libexecdir}/%{name}/* ./
cp t/CPAN/TestConfig.pm t/CPAN/MyConfig.pm
prove -I .
popd
rm -rf "$DIR"
EOF
chmod +x %{buildroot}%{_libexecdir}/%{name}/test
%check
unset AUTHOR_TEST CPAN_EXPECT_TIMEOUT CPAN_RUN_SHELL_TEST_WITHOUT_EXPECT \
ftp_proxy http_proxy no_proxy \
@ -260,42 +324,29 @@ make test
%{_mandir}/man1/*
%{_mandir}/man3/*
%files tests
%{_libexecdir}/%{name}
%changelog
* Fri Jul 26 2019 Fedora Release Engineering <releng@fedoraproject.org> - 2.27-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
* Wed May 07 2025 Michal Josef Špaček <mspacek@redhat.com> - 2.18-402
- Resolves: RHEL-9605
- Add 2022 PAUSE public key.
- Change default value for urllist to https://www.cpan.org
- Use gpg --verify --output ... to disentangle data and signature
* Thu Jul 04 2019 Petr Pisar <ppisar@redhat.com> - 2.27-1
- 2.27 bump
* Fri Feb 28 2025 Jitka Plesnikova <jplesnik@redhat.com> - 2.18-401
- Resolves: RHEL-77186 - Update man page
* Sun Jun 02 2019 Jitka Plesnikova <jplesnik@redhat.com> - 2.26-3
- Perl 5.30 re-rebuild of bootstrapped packages
* Tue Feb 18 2025 Jitka Plesnikova <jplesnik@redhat.com> - 2.18-400
- Resolves: RHEL-77186
- Fix permission for creating site directories
* Thu May 30 2019 Jitka Plesnikova <jplesnik@redhat.com> - 2.26-2
- Perl 5.30 rebuild
* Mon Feb 05 2024 Jitka Plesnikova <jplesnik@redhat.com> - 2.18-399
- Fix tests to run in correct order
* Tue Mar 19 2019 Petr Pisar <ppisar@redhat.com> - 2.26-1
- 2.26 bump
* Mon Mar 04 2019 Petr Pisar <ppisar@redhat.com> - 2.25-1
- 2.25 bump
* Fri Feb 01 2019 Fedora Release Engineering <releng@fedoraproject.org> - 2.22-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
* Wed Jan 02 2019 Petr Pisar <ppisar@redhat.com> - 2.22-1
- 2.22 bump
* Fri Jul 13 2018 Fedora Release Engineering <releng@fedoraproject.org> - 2.20-418
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
* Sun Jul 01 2018 Jitka Plesnikova <jplesnik@redhat.com> - 2.20-417
- Perl 5.28 re-rebuild of bootstrapped packages
* Tue Jun 26 2018 Jitka Plesnikova <jplesnik@redhat.com> - 2.20-416
- Increase release to favour standalone package
* Wed May 23 2018 Jitka Plesnikova <jplesnik@redhat.com> - 2.20-1
- Upgrade to 2.20 as provided in perl-5.28.0
* Thu Jan 18 2024 Jitka Plesnikova <jplesnik@redhat.com> - 2.18-398
- Fix CVE-2023-31484
- Package tests
* Thu Feb 08 2018 Fedora Release Engineering <releng@fedoraproject.org> - 2.18-397
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild