Subject: | 'perl' version is preferred |
Date: | Sat, 10 Aug 2013 21:16:32 -0700 |
To: | bug-app-fatpacker <bug-App-FatPacker [...] rt.cpan.org> |
From: | Tatsuhiko Miyagawa <miyagawa [...] gmail.com> |
In perl 5.12.5, you have Parse/CPAN/Meta.pm in two locations:
✗ grep Parse/CPAN/Meta.pm `find ~/.plenv/versions/5.12.5/lib/perl5
-name \.packlist `
/Users/miyagawa/.plenv/versions/5.12.5/lib/perl5/5.12.5/darwin-2level/.packlist:/Users/miyagawa/.plenv/versions/5.12.5/lib/perl5/5.12.5/Parse/CPAN/Meta.pm
type=file
/Users/miyagawa/.plenv/versions/5.12.5/lib/perl5/5.12.5/darwin-2level/auto/ExtUtils/MakeMaker/.packlist:/Users/miyagawa/.plenv/versions/5.12.5/lib/perl5/5.12.5/Parse/CPAN/Meta.pm
/Users/miyagawa/.plenv/versions/5.12.5/lib/perl5/site_perl/5.12.5/darwin-2level/auto/Parse/CPAN/Meta/.packlist:/Users/miyagawa/.plenv/versions/5.12.5/lib/perl5/site_perl/5.12.5/Parse/CPAN/Meta.pm
This is probably due to a bug in MakeMaker at some point, I don't
know, but I ended up having the MakeMaker's packlist containing
Parse/CPAN/Meta.pm in many of my perl installation anyway.
Meanwhile, for FatPacker, I think the one in site_perl should be
preferred, but packlists_containing() apparently prefers the one
contained in MakeMaker dist, which has an old version of the file,
possibly due to the following line:
$pack_rev{$_} = $File::Find::name for lines_of $File::Find::name;
it ends up packing an old version of the file, resulting in a runtime
error. I _think_ changing the = to ||= will fix the problem but not
100% sure.
--
Tatsuhiko Miyagawa