diff --git a/Module-Install-1.19-Fix-Perl-version-lookup-with-Module-CoreList.patch b/Module-Install-1.19-Fix-Perl-version-lookup-with-Module-CoreList.patch new file mode 100644 index 0000000..d29ffed --- /dev/null +++ b/Module-Install-1.19-Fix-Perl-version-lookup-with-Module-CoreList.patch @@ -0,0 +1,74 @@ +From d4b0f5dd2665dfe0124623379bfb6ce233cdd075 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= +Date: Mon, 6 May 2019 15:22:32 +0200 +Subject: [PATCH] Fix Perl version lookup with Module::CoreList +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +If a distribution declares a dependency on '5.010' Perl, +inc::Module::Install dies in +Module::Install::Admin::ScanDeps::scan_dependencies() with: + +Module::CoreList has no information on perl 5.010 at /usr/lib/perl5/ site_perl/5.10.1/Module/Install/Admin/ScanDeps.pm line 25. + +This is because %Module::CoreList::version is indiced only with some +arbitrary versions and normalized numeral versions only. E.g. it +contains an entry for 5.005, 5.005000 and 5.010000 but no entry of 5.010. + +This patch fixes the lookup by converting a version string into +a numeral. + +https://rt.cpan.org/Public/Bug/Display.html?id=71565 +https://github.com/Perl-Toolchain-Gang/Module-Install/pull/47 +Signed-off-by: Petr Písař +--- + lib/Module/Install/Admin/ScanDeps.pm | 1 + + t/35_perl_version.t | 23 +++++++++++++++++++++++ + 2 files changed, 24 insertions(+) + create mode 100644 t/35_perl_version.t + +diff --git a/lib/Module/Install/Admin/ScanDeps.pm b/lib/Module/Install/Admin/ScanDeps.pm +index a75ba6e..9cee31e 100644 +--- a/lib/Module/Install/Admin/ScanDeps.pm ++++ b/lib/Module/Install/Admin/ScanDeps.pm +@@ -18,6 +18,7 @@ Please first specify a required perl version, like this: + perl_version('5.005'); + END_MESSAGE + $perl_version =~ s{^(\d+)\.(\d+)\.(\d+)}{$1 + $2/1_000 + $3/1_000_000}e; ++ $perl_version = 0 + $perl_version; + + require Module::ScanDeps; + require Module::CoreList; +diff --git a/t/35_perl_version.t b/t/35_perl_version.t +new file mode 100644 +index 0000000..888b8c0 +--- /dev/null ++++ b/t/35_perl_version.t +@@ -0,0 +1,23 @@ ++use strict; ++BEGIN { ++ $| = 1; ++ $^W = 1; ++} ++use Test::More; ++ ++my @existing_versions = ( qw(5.005 5.01 5.010 5.0100 5.01000 5.010000 5.10.0 ++ 5.010.000) ); ++my @missing_versions = ( qw(5.005002 5.5.2) ); ++plan tests => 1 + @existing_versions + @missing_versions; ++ ++require_ok( 'Module::Install::Admin::ScanDeps' ); ++my $m = Module::Install::Admin::ScanDeps->new; ++ ++for my $version (@existing_versions) { ++ eval { $m->scan_dependencies(q{Carp}, $version, q{0}) }; ++ ok(!$@, "scan_dependencies() can query core modules for $version Perl"); ++} ++for my $version (@missing_versions) { ++ eval { $m->scan_dependencies(q{Carp}, $version, q{0}) }; ++ ok($@, "scan_dependencies() cannot query core modules for $version Perl"); ++} +-- +2.20.1 + diff --git a/perl-Module-Install.spec b/perl-Module-Install.spec index 33b94bc..ad2011e 100644 --- a/perl-Module-Install.spec +++ b/perl-Module-Install.spec @@ -1,10 +1,13 @@ Name: perl-Module-Install Version: 1.19 -Release: 6%{?dist} +Release: 7%{?dist} Summary: Standalone, extensible Perl module installer License: GPL+ or Artistic URL: https://metacpan.org/release/Module-Install Source0: https://cpan.metacpan.org/authors/id/E/ET/ETHER/Module-Install-%{version}.tar.gz +# Fix a crash when looking up 5.010 Perl core modules, CPAN RT#71565, proposed +# to upstream +Patch0: Module-Install-1.19-Fix-Perl-version-lookup-with-Module-CoreList.patch BuildArch: noarch # Build BuildRequires: coreutils @@ -106,6 +109,7 @@ version 5.005 or newer. %prep %setup -q -n Module-Install-%{version} +%patch0 -p1 %build perl Makefile.PL INSTALLDIRS=vendor NO_PACKLIST=1 @@ -125,6 +129,9 @@ make test %{_mandir}/man3/* %changelog +* Mon May 06 2019 Petr Pisar - 1.19-7 +- Fix a crash when looking up 5.010 Perl core modules (CPAN RT#71565) + * Fri Feb 01 2019 Fedora Release Engineering - 1.19-6 - Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild