Skip Menu |

This queue is for tickets about the CPANPLUS CPAN distribution.

Report information
The Basics
Id: 55964
Status: resolved
Worked: 30 min
Priority: 0/
Queue: CPANPLUS

People
Owner: BINGOS [...] cpan.org
Requestors:
Cc:
AdminCc:

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



Subject: Makefile.PL not generate Makefile when run from cpanp-run-perl.bat
The problem presents itself trying cpanp i ORLite::Migrate [MSG] Extracted 'ORLite-Migrate-1.07/t/data/trivial/migrate-02.pl' [MSG] Extracted 'ORLite::Migrate' to '*snip*\APPLIC~1\CPANPL~1\5.10.1\build\ORLite-Migrate-1.07' Running [C:\perl\5.10.1\bin\MSWin32-x86-multi-thread\perl.exe C:\perl\5.10.1\bin\cpanp-run-perl.bat *snip*\APPLIC~1\CPANPL~1\5.10.1\build\ORLite-Migrate-1.07\Makefile.PL]... [ERROR] File '*snip*\APPLIC~1\CPANPL~1\5.10.1\build\ORLite-Migrate-1.07\Makefile' is not readable or does not exist at C:/perl/5.10.1/lib/CPANPLUS/Dist/MM.pm line 467 Key 'file' (*snip*\APPLIC~1\CPANPL~1\5.10.1\build\ORLite-Migrate-1.07\Makefile) is of invalid type for 'CPANPLUS::Dist::MM::_find_prereqs' provided by CPANPLUS::Dist::MM::prepare at C:/perl/5.10.1/lib/CPANPLUS/Module.pm line 815 [ERROR] Unable to scan '*snip*\APPLIC~1\CPANPL~1\5.10.1\build\ORLite-Migrate-1.07\Makefile' for prereqs at C:/perl/5.10.1/lib/CPANPLUS/Dist/MM.pm line 424 [ERROR] Unable to create a new distribution object for 'ORLite::Migrate' -- cannot continue at C:/perl/5.10.1/lib/CPANPLUS/Module.pm line 1067 In this situation Makefile.PL wont create Makefile $ C:\perl\5.10.1\bin\MSWin32-x86-multi-thread\perl.exe C:\perl\5.10.1\bin\cpanp-run-perl.bat *snip*\APPLIC~1\CPANPL~1\510~1.1\build\ORLite-Migrate-1.07\Makefile.PL $ dir Makef* Directory of *snip*\APPLIC~1\CPANPL~1\510~1.1\build\ORLite-Migrate-1.07 03/25/2010 02:25 AM 302 Makefile.PL 1 File(s) 302 bytes 0 Dir(s) 4,987,920,384 bytes free $ perl Makefile.PL Checking if your kit is complete... Looks good Writing Makefile for ORLite::Migrate $ dir Makef* Directory of *snip*\APPLIC~1\CPANPL~1\510~1.1\build\ORLite-Migrate-1.07 03/26/2010 03:29 AM 24,753 Makefile 03/25/2010 02:25 AM 302 Makefile.PL 2 File(s) 25,055 bytes 0 Dir(s) 4,987,891,712 bytes free This is cpanp-run-perl.bat @rem = '--*-Perl-*-- @echo off if "%OS%" == "Windows_NT" goto WinNT C:\perl\5.10.1\bin\MSWin32-x86-multi-thread\perl.exe -x -S "%0" %1 %2 %3 %4 %5 %6 %7 %8 %9 goto endofperl :WinNT C:\perl\5.10.1\bin\MSWin32-x86-multi-thread\perl.exe -x -S %0 %* if NOT "%COMSPEC%" == "%SystemRoot%\system32\cmd.exe" goto endofperl if %errorlevel% == 9009 echo You do not have Perl in your PATH. if errorlevel 1 goto script_failed_so_exit_with_non_zero_val 2>nul goto endofperl @rem '; #!perl #line 15 use strict; my $old = select STDERR; $|++; # turn on autoflush select $old; $|++; # turn on autoflush $0 = shift(@ARGV); # rename the script my $rv = do($0); # execute the file die $@ if $@; # die on parse/execute error ### XXX 'do' returns last statement evaluated, which may be ### undef as well. So don't die in that case. #die $! if not defined $rv; # die on execute error __END__ :endofperl
This looks like a CPANPLUS's issue. If not, please reassign to Module::Install. Thanks. On 2010-3-26 Fri 06:30:47, noreply wrote: Show quoted text
> The problem presents itself trying cpanp i ORLite::Migrate > > [MSG] Extracted 'ORLite-Migrate-1.07/t/data/trivial/migrate-02.pl' > [MSG] Extracted 'ORLite::Migrate' to > '*snip*\APPLIC~1\CPANPL~1\5.10.1\build\ORLite-Migrate-1.07' > Running [C:\perl\5.10.1\bin\MSWin32-x86-multi-thread\perl.exe > C:\perl\5.10.1\bin\cpanp-run-perl.bat > *snip*\APPLIC~1\CPANPL~1\5.10.1\build\ORLite-
Migrate-1.07\Makefile.PL]... Show quoted text
> [ERROR] File > '*snip*\APPLIC~1\CPANPL~1\5.10.1\build\ORLite-Migrate-1.07\Makefile'
is Show quoted text
> not readable or does not exist > at C:/perl/5.10.1/lib/CPANPLUS/Dist/MM.pm line 467 > Key 'file' > (*snip*\APPLIC~1\CPANPL~1\5.10.1\build\ORLite-Migrate-1.07\Makefile)
is Show quoted text
> of invalid type for 'CPANPLUS::Dist::MM::_find_prereqs' provided by > CPANPLUS::Dist::MM::prepare at C:/perl/5.10.1/lib/CPANPLUS/Module.pm > line 815 > [ERROR] Unable to scan > '*snip*\APPLIC~1\CPANPL~1\5.10.1\build\ORLite-Migrate-1.07\Makefile'
for Show quoted text
> prereqs > at C:/perl/5.10.1/lib/CPANPLUS/Dist/MM.pm line 424 > [ERROR] Unable to create a new distribution object for > 'ORLite::Migrate' -- cannot continue > at C:/perl/5.10.1/lib/CPANPLUS/Module.pm line 1067 > > > In this situation Makefile.PL wont create Makefile > > > $ C:\perl\5.10.1\bin\MSWin32-x86-multi-thread\perl.exe > C:\perl\5.10.1\bin\cpanp-run-perl.bat > *snip*\APPLIC~1\CPANPL~1\510~1.1\build\ORLite-Migrate-1.07\Makefile.PL > > $ dir Makef* > > Directory of *snip*\APPLIC~1\CPANPL~1\510~1.1\build\ORLite-
Migrate-1.07 Show quoted text
> > 03/25/2010 02:25 AM 302 Makefile.PL > 1 File(s) 302 bytes > 0 Dir(s) 4,987,920,384 bytes free > > $ perl Makefile.PL > Checking if your kit is complete... > Looks good > Writing Makefile for ORLite::Migrate > > $ dir Makef* > > Directory of *snip*\APPLIC~1\CPANPL~1\510~1.1\build\ORLite-
Migrate-1.07 Show quoted text
> > > 03/26/2010 03:29 AM 24,753 Makefile > 03/25/2010 02:25 AM 302 Makefile.PL > 2 File(s) 25,055 bytes > 0 Dir(s) 4,987,891,712 bytes free > > > This is cpanp-run-perl.bat > > @rem = '--*-Perl-*-- > @echo off > if "%OS%" == "Windows_NT" goto WinNT > C:\perl\5.10.1\bin\MSWin32-x86-multi-thread\perl.exe -x -S "%0" %1 > %2 %3 %4 %5 %6 %7 %8 %9 > goto endofperl > :WinNT > C:\perl\5.10.1\bin\MSWin32-x86-multi-thread\perl.exe -x -S %0 %* > if NOT "%COMSPEC%" == "%SystemRoot%\system32\cmd.exe" goto
endofperl Show quoted text
> if %errorlevel% == 9009 echo You do not have Perl in your PATH. > if errorlevel 1 goto script_failed_so_exit_with_non_zero_val 2>nul > goto endofperl > @rem '; > #!perl > #line 15 > use strict; > my $old = select STDERR; $|++; # turn on autoflush > select $old; $|++; # turn on autoflush > $0 = shift(@ARGV); # rename the script > my $rv = do($0); # execute the file > die $@ if $@; # die on parse/execute error > > ### XXX 'do' returns last statement evaluated, which may be > ### undef as well. So don't die in that case. > #die $! if not defined $rv; # die on execute error > > __END__ > :endofperl
On Sun Mar 28 21:15:17 2010, ISHIGAKI wrote: Show quoted text
> This looks like a CPANPLUS's issue. If not, please reassign to > Module::Install. Thanks. >
Huh? Its a recent problem related to inc::Module::Install::DSL in ORLite-Migrate-1.07 ORLite-Migrate-1.06 installed without problems, as did Data-DPath-0.34 which uses inc::Module::Install. Module::Install seems aware of how cpanp-run-perl operates, so i'm pretty sure its something adam kenney will want to fix. If this bug brings up CPANPLUS issues to light, feel free to cross file a report. Thanks
Subject: Re: [rt.cpan.org #55964] Makefile.PL not generate Makefile when run from cpanp-run-perl.bat
Date: Mon, 29 Mar 2010 11:29:33 +0000
To: bug-CPANPLUS [...] rt.cpan.org
From: "Jos I. Boumans" <jos [...] dwim.org>
On 29 Mar 2010, at 03:40, noreply via RT wrote: Show quoted text
> Queue: CPANPLUS > Ticket <URL: https://rt.cpan.org/Ticket/Display.html?id=55964 > > > On Sun Mar 28 21:15:17 2010, ISHIGAKI wrote:
>> This looks like a CPANPLUS's issue. If not, please reassign to >> Module::Install. Thanks. >>
> Huh? > Its a recent problem related to inc::Module::Install::DSL > in ORLite-Migrate-1.07 > ORLite-Migrate-1.06 installed without problems, > as did Data-DPath-0.34 which uses inc::Module::Install. > Module::Install seems aware of how cpanp-run-perl operates, > so i'm pretty sure its something adam kenney will want to fix. > If this bug brings up CPANPLUS issues to light, feel free to cross > file > a report.
cpanp-run-perl is a trivially simple perl script that turns on autoflushing of buffers when running 'perl Makefile.PL': use strict; my $old = select STDERR; $|++; # turn on autoflush select $old; $|++; # turn on autoflush $0 = shift(@ARGV); # rename the script my $rv = do($0); # execute the file die $@ if $@; # die on parse/execute error It doesn't require any knowledge on behalf of the script to-be executed to work. -- Jos Boumans "Never ask a man what computer he uses. If it's a Mac, he'll tell you. If it's not, why embarrass him?" - Tom Clancy
On Mon Mar 29 05:28:13 2010, jos@dwim.org wrote: Show quoted text
> > On 29 Mar 2010, at 03:40, noreply via RT wrote: >
> > Queue: CPANPLUS > > Ticket <URL: https://rt.cpan.org/Ticket/Display.html?id=55964 > > > > > On Sun Mar 28 21:15:17 2010, ISHIGAKI wrote:
> >> This looks like a CPANPLUS's issue. If not, please reassign to > >> Module::Install. Thanks. > >>
> > Huh? > > Its a recent problem related to inc::Module::Install::DSL > > in ORLite-Migrate-1.07 > > ORLite-Migrate-1.06 installed without problems, > > as did Data-DPath-0.34 which uses inc::Module::Install. > > Module::Install seems aware of how cpanp-run-perl operates, > > so i'm pretty sure its something adam kenney will want to fix. > > If this bug brings up CPANPLUS issues to light, feel free to cross > > file > > a report.
> > cpanp-run-perl is a trivially simple perl script that turns on > autoflushing of buffers when running 'perl Makefile.PL': > > use strict; > my $old = select STDERR; $|++; # turn on autoflush > select $old; $|++; # turn on autoflush > $0 = shift(@ARGV); # rename the script > my $rv = do($0); # execute the file > die $@ if $@; # die on parse/execute error > > It doesn't require any knowledge on behalf of the script > to-be executed to work. >
I already included the script in my bug report https://rt.cpan.org/Ticket/Display.html?id=55964 Module::Install checks caller to see if its main, Module::Install::DSL breaks that check.
RT-Send-CC: jos [...] dwim.org
Hi, thanks for reporting this issue. I am glad to say that the issue has now been resolved and a new version of CPANPLUS (0.9004) has been uploaded to CPAN. The resolution involved adding a BEGIN {} block around the code in cpanp-run-perl so that it is guaranteed to be executed before anything in the do(). use strict; BEGIN { my $old = select STDERR; $|++; # turn on autoflush select $old; $|++; # turn on autoflush $0 = shift(@ARGV); # rename the script my $rv = do($0); # execute the file die $@ if $@; # die on parse/execute error } ### XXX 'do' returns last statement evaluated, which may be ### undef as well. So don't die in that case. #die $! if not defined $rv; # die on execute error Cheers.