19 10 / 2012

Do not ship modules with Module::Install 1.04

tl;dr: if your module is shipped with Module::Install 1.04 bundled, it will cause issues with perl 5.16 and creates bad MYMETA depending on a devel release of MakeMaker. Package the latest Module::Install and ship to CPAN? kthxbye

A module bundling Module::Install 1.04 (exactly the version 1.04) has a fix from me to detect a correct version of MakeMaker you’re running. Unfortunately that fix uncovered another bug that M::I always tried to add the version of MM the author has into a configure_requires, and also add the version of the end user has to runtime_requires in MYMETA.

To make things worse, as I pointed out in the previous post, the version of MM you have with perl 5.16.[01] is 6.63_02, which is a developer release of the module and EUMM has no later non-developer release, your carton and/or cpanm installation will fail when they find the dependency to MakeMaker: 6.63_02.

Here’s what happens when you have perl 5.16.1 and install modules bundled with Module::Install 1.04.

The bug has been fixed in Module::Install 1.05, so the only fix to this issue is that the author has to reupload the module to CPAN with the later Module::Install bundled.

I processed the visitcpan program to look for the affected modules, which is now available as a gist. I sent our a quick email notifications to the authors of these modules and we’ll see how we can get them fixed quickly.

The bug affected a couple of my distributions and i repacked all of them to CPAN as of this writing.