I discovered today that:
https://metacpan.org/source/BOBTFISH/Catalyst-Action-REST-0.98/META.yml
Unintentionally infers a dependency on ExtUtils::MakeMaker 6.63_02 , due to Tom releasing his dist under perl 5.15.8 .
This is decidedly unwanted behaviour, as the latest stable version on ExtUtils::MakeMaker on CPAN is version 6.59, and there's nothing intrinsically special about his dist that makes it need 6.59, and there's nothing magical being done by MI that would suggest EUMM 6.63_02 is really necessary.
So, as a result of discussing this with tom, ribasushi and leont ( on #catalyst and #toolchain ), I was placed under the impression that the "sane" thing to do here is place a fixed requirement on 6.59 , both in the generated build_requires / configure_requires , and in the 'requires' for MI itself.
There was a little umming and aahing as to whether or not to completely strip out the perl 5.005 and lower back-compat code and just state the sane mentality that that platform now is pretty much deemed "broken" anyway, but its been left in anyway.
Attached Patch replaces the "use the current EUMM" logic with "use 6.59" and also places an install dep on EUMM 6.59.
The patch is in git format vs a git-svn'd copy of http://svn.ali.as/cpan/trunk/Module-Install@14948 , but hopefully that doesn't pose any complications.
From ac653519b70a7c6051357f89a301bee07c49b5bf Mon Sep 17 00:00:00 2001
From: Kent Fredric <kentfredric@gmail.com>
Date: Thu, 23 Feb 2012 09:56:03 +1300
Subject: [PATCH] Modify it so if developers are not explicitly stating support for perl 5.005 or lower, then EUMM 5.59 is mandated, instead of mandating that the end user install whatever version of EUMM the developer happened to be using
---
Makefile.PL | 1 +
lib/Module/Install/Makefile.pm | 12 +++++++-----
2 files changed, 8 insertions(+), 5 deletions(-)
diff --git a/Makefile.PL b/Makefile.PL
index 48862ee..fee61e3 100644
--- a/Makefile.PL
+++ b/Makefile.PL
@@ -35,6 +35,7 @@ requires 'ExtUtils::ParseXS' => '2.19';
requires 'Module::Build' => '0.29';
requires 'LWP::UserAgent' => '5.812';
requires 'Module::Metadata' => '1.000007';
+requires 'ExtUtils::MakeMaker' => '6.59';
test_requires 'Test::Harness' => '3.13';
test_requires 'Test::More' => '0.86';
diff --git a/lib/Module/Install/Makefile.pm b/lib/Module/Install/Makefile.pm
index 52df806..b321c82 100644
--- a/lib/Module/Install/Makefile.pm
+++ b/lib/Module/Install/Makefile.pm
@@ -214,11 +214,13 @@ sub write {
require ExtUtils::MakeMaker;
if ( $perl_version and $self->_cmp($perl_version, '5.006') >= 0 ) {
- # MakeMaker can complain about module versions that include
- # an underscore, even though its own version may contain one!
- # Hence the funny regexp to get rid of it. See RT #35800
- # for details.
- my ($v) = $ExtUtils::MakeMaker::VERSION =~ /^(\d+\.\d+)/;
+
+ # Previously the MakeMaker version required was determined based
+ # on whatever you were using when you released the dist, but this is
+ # not sensible, as Module::Install really is the single arbiter
+ # of what version of ExtUtils::MakeMaker we really should need.
+
+ my ($v) = '6.59'; # Minium Version of ExtUtils::MakeMaker
$self->build_requires( 'ExtUtils::MakeMaker' => $v );
$self->configure_requires( 'ExtUtils::MakeMaker' => $v );
} else {
--
1.7.3.4