FAQ
tl;dr: 6.58 can completely break, please test 6.58_01 to ensure that I
didn't screw anything else up fixing it, I'll be shipping 6.59 at 1300
UTC if nobody reports any regressions from 6.58.

EUMM 6.58 currently runs into a nasty hitch on perl 5.8 - in order to
test if CPAN::Meta is available, it does:

eval {
$INC{"CPAN/Meta.pm"} or require CPAN::Meta;
CPAN::Meta->VERSION(...);
};

Unfortunately, the bundled version of CPAN::Meta does

BEGIN { $VERSION = ... }
<many use lines>

due to a (now changed) Dist::Zilla default.

This means that if CPAN::Meta fails to complete loading, $VERSION is still
set.

Since a second or subsequent 'require' on 5.8 does not throw an error, since
%INC is populated when a module die()s (although not if it returns false),
this can result in a false positive where EUMM believes CPAN::Meta is
installed.

The primary problem here is on 5.8.x perls where one of CPAN::Meta's
dependencies has been installed, but is of too old a version. What then
happens is that EUMM installs the newer version, but because EUMM uses
INSTALLDIRS 'perl', that newer version is shadowed by the copy installed
into site_perl and EUMM then becomes unable to successfuly complete a
'perl Makefile.PL' run - see CPAN RT #69465 and #69900 for examples of this.

As such, I've got David Golden to make a CPAN::Meta release that does not
set $VERSION in a BEGIN block, and updated ExtUtils::MakeMaker to bundle
(and require) that version, which eliminates this failure mode.

Yesterday I released 6.58_01 with these changes, and have asked the
affected people to test - I've had two out-of-band (i.e. off RT) acks that
this works, and produced one myself by setting up a CentOS VM on Linode for
testing.

I'm currently building Task::Kensho on that VM with PERL_AUTOINSTALL=--alldeps
set to get a reasonable set of coverage, and BinGOs and omf_ are running
their smokers with 6.58_01 as well.

Since this is currently a critical failure for users in the affected
category, if I don't get any reports indicating that 6.58_01 breaks things
that do currently work on 6.58, I intend to ship it as 6.59 at approximately
midday BST (i.e. 1300 Fri 05 Aug 2011 UTC).

If you're able to test 6.58_01 before then, please do so and report back
if you see any problems.

Note that I have intentionally made these changes as minimal from 6.58 as
possible, and am not currently eliciting feedback on the bundling process
or CPAN::Meta related code themselves - while this is arguably a useful
discussion to have, my priority right now is to have people once again
able to install ExtUtils::MakeMaker and be confident that their toolchain
will be intact afterwards. We can discuss repainting the bikeshed once it's
no longer on fire.

6.58_01 is currently available as

MSTROUT/ExtUtils-MakeMaker-6.58_01.tar.gz

from all good cpan mirrors, and as a fallback from my website as

http://www.trout.me.uk/perl/ExtUtils-MakeMaker-6.58_01.tar.gz

If you're interested in trying to reproduce the original problem, then

cpan> install JPEACOCK/version-0.74.tar.gz
cpan> install MSCHWERN/ExtUtils-MakeMaker-6.58.tar.gz

should do the trick.

--
Matt S Trout - Shadowcat Systems - Perl consulting with a commit bit and a clue

http://shadowcat.co.uk/blog/matt-s-trout/ http://twitter.com/shadowcat_mst/

Email me now on mst (at) shadowcat.co.uk and let's chat about how our Catalyst
commercial support, training and consultancy packages could help your team.

Search Discussions

Related Discussions

Discussion Navigation
viewthread | post
Discussion Overview
groupcpan-workers @
categoriesperl
postedAug 5, '11 at 12:21a
activeAug 5, '11 at 12:21a
posts1
users1
websitecpan.org

1 user in discussion

Matt S Trout: 1 post

People

Translate

site design / logo © 2021 Grokbase