Preferred bug tracker

Please visit the preferred bug tracker to report your issue.

This queue is for tickets about the CPANPLUS CPAN distribution.

Report information
The Basics
Id:
55964
Status:
resolved
Worked:
30 minutes
Users:
BINGOS: 30 minutes
Priority:
Low/Low
Queue:

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

BugTracker
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.


This service runs on Request Tracker, is sponsored by The Perl Foundation, and maintained by Best Practical Solutions.

Please report any issues with rt.cpan.org to rt-cpan-admin@bestpractical.com.