Subject: | MB::Compat error with ARGV values |
Hello,
While I know everyone hates MB::Compat, I think this is a critical
issue worth fixing. I was installing Perl::Critic::PetPeeves::JTRAMMELL
v0.02 and had prefer_makefile=1 set in CPANPLUS. This is on a new Ubuntu
11.04 system so it also configured the makemakerflags="INSTALLDIRS=site"
option.
That resulted in this spectacular FAIL:
[ERROR] Could not run '/usr/bin/perl Makefile.PL': Can't use string
("INSTALLDIRS=site") as an ARRAY ref while "strict refs" in use at
/usr/local/share/perl/5.10.1/Module/Build/Compat.pm line 339.
Attached is the full log and some checks I tried to do. Normally I
would ignore any problems with MB::Compat but since this is the default
Ubuntu settings I thought it would affect *ANY* dist that used
MB::Compat and is trying to install via Makefile.PL :(
Please let me know if you need my help to reproduce this. Thanks!
--
~Apocalypse
Subject: | perl-critic-petpeeves-jtrammell.txt |
[MSG] Checksum matches for 'Perl-Critic-PetPeeves-JTRAMMELL-0.02.tar.gz'
[MSG] Extracted 'Perl-Critic-PetPeeves-JTRAMMELL-0.02'
[MSG] Extracted 'Perl-Critic-PetPeeves-JTRAMMELL-0.02/META.yml'
[MSG] Extracted 'Perl-Critic-PetPeeves-JTRAMMELL-0.02/Changes'
[MSG] Extracted 'Perl-Critic-PetPeeves-JTRAMMELL-0.02/MANIFEST'
[MSG] Extracted 'Perl-Critic-PetPeeves-JTRAMMELL-0.02/Build.PL'
[MSG] Extracted 'Perl-Critic-PetPeeves-JTRAMMELL-0.02/Makefile.PL'
[MSG] Extracted 'Perl-Critic-PetPeeves-JTRAMMELL-0.02/README'
[MSG] Extracted 'Perl-Critic-PetPeeves-JTRAMMELL-0.02/t'
[MSG] Extracted 'Perl-Critic-PetPeeves-JTRAMMELL-0.02/t/boilerplate.t'
[MSG] Extracted 'Perl-Critic-PetPeeves-JTRAMMELL-0.02/t/0load.t'
[MSG] Extracted 'Perl-Critic-PetPeeves-JTRAMMELL-0.02/t/pod-coverage.t'
[MSG] Extracted 'Perl-Critic-PetPeeves-JTRAMMELL-0.02/t/array.t'
[MSG] Extracted 'Perl-Critic-PetPeeves-JTRAMMELL-0.02/t/pod.t'
[MSG] Extracted 'Perl-Critic-PetPeeves-JTRAMMELL-0.02/t/scalar.t'
[MSG] Extracted 'Perl-Critic-PetPeeves-JTRAMMELL-0.02/t/lib'
[MSG] Extracted 'Perl-Critic-PetPeeves-JTRAMMELL-0.02/t/lib/PerlCriticTestUtils.pm'
[MSG] Extracted 'Perl-Critic-PetPeeves-JTRAMMELL-0.02/lib'
[MSG] Extracted 'Perl-Critic-PetPeeves-JTRAMMELL-0.02/lib/Perl'
[MSG] Extracted 'Perl-Critic-PetPeeves-JTRAMMELL-0.02/lib/Perl/Critic'
[MSG] Extracted 'Perl-Critic-PetPeeves-JTRAMMELL-0.02/lib/Perl/Critic/Policy'
[MSG] Extracted 'Perl-Critic-PetPeeves-JTRAMMELL-0.02/lib/Perl/Critic/Policy/Variables'
[MSG] Extracted 'Perl-Critic-PetPeeves-JTRAMMELL-0.02/lib/Perl/Critic/Policy/Variables/ProhibitUselessInitialization.pm'
[MSG] Extracted 'Perl-Critic-PetPeeves-JTRAMMELL-0.02/lib/Perl/Critic/PetPeeves'
[MSG] Extracted 'Perl-Critic-PetPeeves-JTRAMMELL-0.02/lib/Perl/Critic/PetPeeves/JTRAMMELL.pm'
[MSG] Extracted 'Perl::Critic::PetPeeves::JTRAMMELL' to '/root/.cpanplus/5.10.1/build/Perl-Critic-PetPeeves-JTRAMMELL-0.02'
Running [/usr/bin/perl /usr/local/bin/cpanp-run-perl /root/.cpanplus/5.10.1/build/Perl-Critic-PetPeeves-JTRAMMELL-0.02/Makefile.PL INSTALLDIRS=site]...
Can't use string ("INSTALLDIRS=site") as an ARRAY ref while "strict refs" in use at /usr/local/share/perl/5.10.1/Module/Build/Compat.pm line 339.
BEGIN failed--compilation aborted at /usr/local/bin/cpanp-run-perl line 8.
[ERROR] Could not run '/usr/bin/perl Makefile.PL': Can't use string ("INSTALLDIRS=site") as an ARRAY ref while "strict refs" in use at /usr/local/share/perl/5.10.1/Module/Build/Compat.pm line 339.
BEGIN failed--compilation aborted at /usr/local/bin/cpanp-run-perl line 8.
-- cannot continue
[ERROR] Unable to create a new distribution object for 'Perl::Critic::PetPeeves::JTRAMMELL' -- cannot continue
[ERROR] Failed to install 'Perl::Critic::PetPeeves::JTRAMMELL' as prerequisite for 'Task::Perl::Critic'
[ERROR] Unable to satisfy prerequisites for 'Task::Perl::Critic' -- aborting install
root@blackhole:~# cpanp z Perl::Critic::PetPeeves::JTRAMMELL
[MSG] Checking if source files are up to date
[MSG] Retrieving /root/.cpanplus/sourcefiles.s2.25.c0.9105.stored
[MSG] Using cached file '/root/.cpanplus/authors/id/J/JT/JTRAMMELL/CHECKSUMS' on disk; ttl (3600s) is not exceeded
[MSG] Checksum matches for 'Perl-Critic-PetPeeves-JTRAMMELL-0.02.tar.gz'
[MSG] Extracted 'Perl-Critic-PetPeeves-JTRAMMELL-0.02'
[MSG] Extracted 'Perl-Critic-PetPeeves-JTRAMMELL-0.02/META.yml'
[MSG] Extracted 'Perl-Critic-PetPeeves-JTRAMMELL-0.02/Changes'
[MSG] Extracted 'Perl-Critic-PetPeeves-JTRAMMELL-0.02/MANIFEST'
[MSG] Extracted 'Perl-Critic-PetPeeves-JTRAMMELL-0.02/Build.PL'
[MSG] Extracted 'Perl-Critic-PetPeeves-JTRAMMELL-0.02/Makefile.PL'
[MSG] Extracted 'Perl-Critic-PetPeeves-JTRAMMELL-0.02/README'
[MSG] Extracted 'Perl-Critic-PetPeeves-JTRAMMELL-0.02/t'
[MSG] Extracted 'Perl-Critic-PetPeeves-JTRAMMELL-0.02/t/boilerplate.t'
[MSG] Extracted 'Perl-Critic-PetPeeves-JTRAMMELL-0.02/t/0load.t'
[MSG] Extracted 'Perl-Critic-PetPeeves-JTRAMMELL-0.02/t/pod-coverage.t'
[MSG] Extracted 'Perl-Critic-PetPeeves-JTRAMMELL-0.02/t/array.t'
[MSG] Extracted 'Perl-Critic-PetPeeves-JTRAMMELL-0.02/t/pod.t'
[MSG] Extracted 'Perl-Critic-PetPeeves-JTRAMMELL-0.02/t/scalar.t'
[MSG] Extracted 'Perl-Critic-PetPeeves-JTRAMMELL-0.02/t/lib'
[MSG] Extracted 'Perl-Critic-PetPeeves-JTRAMMELL-0.02/t/lib/PerlCriticTestUtils.pm'
[MSG] Extracted 'Perl-Critic-PetPeeves-JTRAMMELL-0.02/lib'
[MSG] Extracted 'Perl-Critic-PetPeeves-JTRAMMELL-0.02/lib/Perl'
[MSG] Extracted 'Perl-Critic-PetPeeves-JTRAMMELL-0.02/lib/Perl/Critic'
[MSG] Extracted 'Perl-Critic-PetPeeves-JTRAMMELL-0.02/lib/Perl/Critic/Policy'
[MSG] Extracted 'Perl-Critic-PetPeeves-JTRAMMELL-0.02/lib/Perl/Critic/Policy/Variables'
[MSG] Extracted 'Perl-Critic-PetPeeves-JTRAMMELL-0.02/lib/Perl/Critic/Policy/Variables/ProhibitUselessInitialization.pm'
[MSG] Extracted 'Perl-Critic-PetPeeves-JTRAMMELL-0.02/lib/Perl/Critic/PetPeeves'
[MSG] Extracted 'Perl-Critic-PetPeeves-JTRAMMELL-0.02/lib/Perl/Critic/PetPeeves/JTRAMMELL.pm'
[MSG] Extracted 'Perl::Critic::PetPeeves::JTRAMMELL' to '/root/.cpanplus/5.10.1/build/Perl-Critic-PetPeeves-JTRAMMELL-0.02'
root@blackhole:~/.cpanplus/5.10.1/build/Perl-Critic-PetPeeves-JTRAMMELL-0.02# cat Makefile.PL
use Module::Build::Compat;
Module::Build::Compat->run_build_pl(args => @ARGV);
Module::Build::Compat->write_makefile(build_class => 'Module::Build');
root@blackhole:~/.cpanplus/5.10.1/build/Perl-Critic-PetPeeves-JTRAMMELL-0.02# exit
exit
root@blackhole:~# cpanp i Module::Build
[MSG] Checking if source files are up to date
[MSG] Retrieving /root/.cpanplus/sourcefiles.s2.25.c0.9105.stored
Installing Module::Build (0.3800)
[MSG] Module 'Module::Build' already up to date, won't install without force
Module 'Module::Build' installed successfully
No errors installing all modules
root@blackhole:~#