Blame SOURCES/Module-Install-1.19-Fix-Perl-version-lookup-with-Module-CoreList.patch

f016bc
From d4b0f5dd2665dfe0124623379bfb6ce233cdd075 Mon Sep 17 00:00:00 2001
f016bc
From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= <ppisar@redhat.com>
f016bc
Date: Mon, 6 May 2019 15:22:32 +0200
f016bc
Subject: [PATCH] Fix Perl version lookup with Module::CoreList
f016bc
MIME-Version: 1.0
f016bc
Content-Type: text/plain; charset=UTF-8
f016bc
Content-Transfer-Encoding: 8bit
f016bc
f016bc
If a distribution declares a dependency on '5.010' Perl,
f016bc
inc::Module::Install dies in
f016bc
Module::Install::Admin::ScanDeps::scan_dependencies() with:
f016bc
f016bc
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.
f016bc
f016bc
This is because %Module::CoreList::version is indiced only with some
f016bc
arbitrary versions and normalized numeral versions only. E.g. it
f016bc
contains an entry for 5.005, 5.005000 and 5.010000 but no entry of 5.010.
f016bc
f016bc
This patch fixes the lookup by converting a version string into
f016bc
a numeral.
f016bc
f016bc
https://rt.cpan.org/Public/Bug/Display.html?id=71565
f016bc
https://github.com/Perl-Toolchain-Gang/Module-Install/pull/47
f016bc
Signed-off-by: Petr Písař <ppisar@redhat.com>
f016bc
---
f016bc
 lib/Module/Install/Admin/ScanDeps.pm |  1 +
f016bc
 t/35_perl_version.t                  | 23 +++++++++++++++++++++++
f016bc
 2 files changed, 24 insertions(+)
f016bc
 create mode 100644 t/35_perl_version.t
f016bc
f016bc
diff --git a/lib/Module/Install/Admin/ScanDeps.pm b/lib/Module/Install/Admin/ScanDeps.pm
f016bc
index a75ba6e..9cee31e 100644
f016bc
--- a/lib/Module/Install/Admin/ScanDeps.pm
f016bc
+++ b/lib/Module/Install/Admin/ScanDeps.pm
f016bc
@@ -18,6 +18,7 @@ Please first specify a required perl version, like this:
f016bc
     perl_version('5.005');
f016bc
 END_MESSAGE
f016bc
     $perl_version =~ s{^(\d+)\.(\d+)\.(\d+)}{$1 + $2/1_000 + $3/1_000_000}e;
f016bc
+    $perl_version = 0 + $perl_version;
f016bc
 
f016bc
     require Module::ScanDeps;
f016bc
     require Module::CoreList;
f016bc
diff --git a/t/35_perl_version.t b/t/35_perl_version.t
f016bc
new file mode 100644
f016bc
index 0000000..888b8c0
f016bc
--- /dev/null
f016bc
+++ b/t/35_perl_version.t
f016bc
@@ -0,0 +1,23 @@
f016bc
+use strict;
f016bc
+BEGIN {
f016bc
+	$|  = 1;
f016bc
+	$^W = 1;
f016bc
+}
f016bc
+use Test::More;
f016bc
+
f016bc
+my @existing_versions = ( qw(5.005 5.01 5.010 5.0100 5.01000 5.010000 5.10.0
f016bc
+    5.010.000) );
f016bc
+my @missing_versions = ( qw(5.005002 5.5.2) );
f016bc
+plan tests => 1 + @existing_versions + @missing_versions;
f016bc
+
f016bc
+require_ok( 'Module::Install::Admin::ScanDeps' );
f016bc
+my $m = Module::Install::Admin::ScanDeps->new;
f016bc
+
f016bc
+for my $version (@existing_versions) {
f016bc
+    eval { $m->scan_dependencies(q{Carp}, $version, q{0}) };
f016bc
+	ok(!$@, "scan_dependencies() can query core modules for $version Perl");
f016bc
+}
f016bc
+for my $version (@missing_versions) {
f016bc
+    eval { $m->scan_dependencies(q{Carp}, $version, q{0}) };
f016bc
+	ok($@, "scan_dependencies() cannot query core modules for $version Perl");
f016bc
+}
f016bc
-- 
f016bc
2.20.1
f016bc