Skip Menu |

This queue is for tickets about the Module-Build CPAN distribution.

Report information
The Basics
Id: 68056
Status: resolved
Priority: 0/
Queue: Module-Build

People
Owner: Nobody in particular
Requestors: APOCAL [...] cpan.org
Cc:
AdminCc:

Bug Information
Severity: Critical
Broken in: (no value)
Fixed in: (no value)



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:~#
Subject: Re: [rt.cpan.org #68056] MB::Compat error with ARGV values
Date: Tue, 10 May 2011 11:14:54 +1000
To: bug-Module-Build [...] rt.cpan.org
From: Michael G Schwern <schwern [...] pobox.com>
On 2011.5.10 8:04 AM, Apocalypse via RT wrote: Show quoted text
> 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.
I believe that is the unfortunate default of CPANPLUS at the version Ubuntu ships with, 0.88. Still, it would be nice if Ubuntu changed it if nothing else so that CPAN and CPANPLUS install the same way. Could you report that to them downstream please? Show quoted text
> 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!
I have a freshly installed Ubuntu and it installed IO::Handle::Record (some random dual build module I picked) with CPANPLUS fine using make. CPANPLUS went through and installed the latest Module::Build as part of its bootstrap process. Could you please check if is this with a stock Ubuntu Module::Build or the latest from CPAN? -- "I went to college, which is a lot like being in the Army, except when stupid people yell at me for stupid things, I can hit them." -- Jonathan Schwarz
Le 2011-05-10 03:15:09, schwern@pobox.com a écrit : Show quoted text
> > v0.02 and had prefer_makefile=1 set in CPANPLUS.
> > I believe that is the unfortunate default of CPANPLUS at the version
Ubuntu Show quoted text
> ships with, 0.88. Still, it would be nice if Ubuntu changed it if nothing > else so that CPAN and CPANPLUS install the same way.
The prefer_makefile=1 is a CPANPLUS issue: I have the same bahavior on Windows on a clean install of CPANPLUS: prefer_makefile=1 is the default value of CPANPLUS. In its interactive setup, CPANPLUS suggests to set prefer_makefile=1 because it knows how to uninstall MM installs but not MB installs. Show quoted text
> Could you report that to them downstream please?
What do you consider downstream? CPANPLUS? Ubuntu? -- Olivier Mengué - http://search.cpan.org/~dolmen/ http://github.com/dolmen/
Subject: Re: [rt.cpan.org #68056] MB::Compat error with ARGV values
Date: Thu, 12 May 2011 13:01:47 +1000
To: bug-Module-Build [...] rt.cpan.org
From: Michael G Schwern <schwern [...] pobox.com>
On 2011.5.12 10:22 AM, Olivier 'dolmen' Mengué via RT wrote: Show quoted text
> The prefer_makefile=1 is a CPANPLUS issue: I have the same bahavior on > Windows on a clean install of CPANPLUS: prefer_makefile=1 is the default > value of CPANPLUS.
Recent versions (0.90 and up) are supposed to prefer MB for 5.10.1 and up (which come with MB). Show quoted text
> In its interactive setup, CPANPLUS suggests to set prefer_makefile=1 > because it knows how to uninstall MM installs but not MB installs.
That's not a particularly strong rationale. It's a bit more important that they *install* rather than worrying about uninstalling. CPANPLUS and MB have had a very rocky relationship, but with BingOS running the show now maybe that can be fixed. Show quoted text
>> Could you report that to them downstream please?
> > What do you consider downstream? CPANPLUS? Ubuntu?
Ubuntu. -- Hating the web since 1994.
Closing this ticket as it's a downstream issue.