Skip Menu |

This queue is for tickets about the CPANPLUS CPAN distribution.

Report information
The Basics
Id: 34520
Status: resolved
Priority: 0/
Queue: CPANPLUS

People
Owner: Nobody in particular
Requestors: imacat [...] mail.imacat.idv.tw
Cc:
AdminCc:

Bug Information
Severity: Important
Broken in: 0.84
Fixed in: (no value)



Subject: Dummy Makefile.PL Creation when Download Fails
Dear Jos Boumans, Hi. This is imacat from Taiwan. I found that CPANPLUS still creates dummy Makefile.PL even when download fails and no archive is available. Since no files were downloaded, CPANPLUS fails to chdir() to that extracted directory, creates the dummy Makefile.PL in the current working directory, and leaves several files there. For example, if I want to test S/SE/SENGER/NET-IPFilterSimple_V1.1.tar.gz which shall fail due to rt bug#34519, imacat@rinse /tmp/t % ls -la total 24 drwxr-xr-x 2 imacat users 4096 Mar 29 15:59 . drwxrwxrwt 7 root root 20480 Mar 29 15:59 .. imacat@rinse /tmp/t % /opt/perl/testers/5.8.8/bin/cpanp -t S/SE/SENGER/NET-IPFilterSimple_V1.1.tar.gz [MSG] Checking if source files are up to date [MSG] Retrieving /home/imacat/.cpanplus/sourcefiles.2.18.stored [MSG] No '/home/imacat/.cpanplus/custom-sources' dir, skipping custom sources Testing NET::IPFilterSimple (V1.1) [MSG] Trying to get 'ftp://cpan.cdpa.nsysu.edu.tw/Unix/Lang/CPAN/authors/id/S/SE/SENGER/CHECKSUMS' [MSG] Archive size is not known for 'NET-IPFilterSimple-V1.1.tar.gz' [MSG] No 'md5' checksum known for 'NET-IPFilterSimple-V1.1.tar.gz' Unable to read '/home/imacat/.cpanplus/authors/id/S/SE/SENGER/NET-IPFilterSimple-V1.1.tar.gz': at /opt/perl/testers/5.8.8/lib/site_perl/5.8.8/CPANPLUS/Internals/Extract.pm line 158 [MSG] Extracted 'NET::IPFilterSimple' to '/tmp/t' [ERROR] Unable to find 'Build.PL' or 'Makefile.PL' for 'NET::IPFilterSimple'; Will default to 'CPANPLUS::Dist::MM' but might be unable to install! ==> MISSING Signature file! <== [MSG] No 'Makefile.PL' found - attempting to generate one Running [/opt/perl/testers/5.8.8/bin/perl /opt/perl/testers/5.8.8/bin/cpanp-run-perl /tmp/t/Makefile.PL ]... Writing Makefile for NET::IPFilterSimple Running [/usr/bin/make -j 2]... Running [/usr/bin/make test -j 2]... No tests defined for NET::IPFilterSimple extension. [MSG] Sending test report for 'NET-IPFilterSimple-V1.1' [MSG] Successfully sent 'pass' report for 'NET-IPFilterSimple-V1.1' *** Install log written to: /home/imacat/.cpanplus/install-logs/NET-IPFilterSimple-V1.1-1206777580.log Module 'NET::IPFilterSimple' tested successfully No errors testing all modules imacat@rinse /tmp/t % ls -la total 56 drwxr-xr-x 3 imacat users 4096 Mar 29 15:59 . drwxrwxrwt 7 root root 20480 Mar 29 15:59 .. -rw-r--r-- 1 imacat users 22226 Mar 29 15:59 Makefile -rw-r--r-- 1 imacat users 304 Mar 29 15:59 Makefile.PL drwxr-xr-x 8 imacat users 4096 Mar 29 15:59 blib -rw-r--r-- 1 imacat users 0 Mar 29 15:59 pm_to_blib imacat@rinse /tmp/t % I suppose CPANPLUS shall check if download has succeed and stop if nothing was downloaded for whatever reason. Keep running with non-existing downloaded file is silly. Please tell me if you need any more information, or if I could be of any help. Thank you.
On Sat Mar 29 04:03:17 2008, IMACAT wrote: Show quoted text
> Dear Jos Boumans, > > Hi. This is imacat from Taiwan. I found that CPANPLUS still > creates dummy Makefile.PL even when download fails and no archive is > available. Since no files were downloaded, CPANPLUS fails to chdir() > to > that extracted directory, creates the dummy Makefile.PL in the current > working directory, and leaves several files there. For example, if I > want to test S/SE/SENGER/NET-IPFilterSimple_V1.1.tar.gz which shall > fail > due to rt bug#34519, > > imacat@rinse /tmp/t % ls -la > total 24 > drwxr-xr-x 2 imacat users 4096 Mar 29 15:59 . > drwxrwxrwt 7 root root 20480 Mar 29 15:59 .. > imacat@rinse /tmp/t % /opt/perl/testers/5.8.8/bin/cpanp -t > S/SE/SENGER/NET-IPFilterSimple_V1.1.tar.gz > [MSG] Checking if source files are up to date > [MSG] Retrieving /home/imacat/.cpanplus/sourcefiles.2.18.stored > [MSG] No '/home/imacat/.cpanplus/custom-sources' dir, skipping custom > sources > Testing NET::IPFilterSimple (V1.1) > [MSG] Trying to get > 'ftp://cpan.cdpa.nsysu.edu.tw/Unix/Lang/CPAN/authors/id/S/SE/SENGER/CHECKSUMS' > [MSG] Archive size is not known for 'NET-IPFilterSimple-V1.1.tar.gz' > [MSG] No 'md5' checksum known for 'NET-IPFilterSimple-V1.1.tar.gz' > Unable to read > '/home/imacat/.cpanplus/authors/id/S/SE/SENGER/NET-IPFilterSimple- > V1.1.tar.gz': > at > /opt/perl/testers/5.8.8/lib/site_perl/5.8.8/CPANPLUS/Internals/Extract.pm > line 158 > [MSG] Extracted 'NET::IPFilterSimple' to '/tmp/t' > [ERROR] Unable to find 'Build.PL' or 'Makefile.PL' for > 'NET::IPFilterSimple'; Will default to 'CPANPLUS::Dist::MM' but might > be > unable to install!
I can not reproduce this -- for me, the file fails to download and that's where the process stops. Do you have any custom option set in your configuration that might make it behave differntly? Show quoted text
> > ==> MISSING Signature file! <== > [MSG] No 'Makefile.PL' found - attempting to generate one > Running [/opt/perl/testers/5.8.8/bin/perl > /opt/perl/testers/5.8.8/bin/cpanp-run-perl /tmp/t/Makefile.PL ]... > Writing Makefile for NET::IPFilterSimple > Running [/usr/bin/make -j 2]... > Running [/usr/bin/make test -j 2]... > No tests defined for NET::IPFilterSimple extension. > [MSG] Sending test report for 'NET-IPFilterSimple-V1.1' > [MSG] Successfully sent 'pass' report for 'NET-IPFilterSimple-V1.1' > *** Install log written to: > /home/imacat/.cpanplus/install-logs/NET-IPFilterSimple-V1.1- > 1206777580.log > > Module 'NET::IPFilterSimple' tested successfully > No errors testing all modules > > imacat@rinse /tmp/t % ls -la > total 56 > drwxr-xr-x 3 imacat users 4096 Mar 29 15:59 . > drwxrwxrwt 7 root root 20480 Mar 29 15:59 .. > -rw-r--r-- 1 imacat users 22226 Mar 29 15:59 Makefile > -rw-r--r-- 1 imacat users 304 Mar 29 15:59 Makefile.PL > drwxr-xr-x 8 imacat users 4096 Mar 29 15:59 blib > -rw-r--r-- 1 imacat users 0 Mar 29 15:59 pm_to_blib > imacat@rinse /tmp/t % > > I suppose CPANPLUS shall check if download has succeed and stop if > nothing was downloaded for whatever reason. Keep running with > non-existing downloaded file is silly. > > Please tell me if you need any more information, or if I could be > of > any help. Thank you.
On 2008-04-06 06:37:41 Sun, KANE wrote: Show quoted text
> On Sat Mar 29 04:03:17 2008, IMACAT wrote: > I can not reproduce this -- for me, the file fails to download and > that's where > the process stops.
I do not know. I'm running CPANPLUS 0.84. Are you testing with your development source? If so, you might have already solved this. You may also try the G/GR/GRICHTER/Embperl-1.3.6.tar.gz. It even sends PASS reports for such ghost distributions. macat@rinse /tmp/build % /opt/perl/testers/5.8.8/bin/perl -mCPANPLUS -e'print $CPANPLUS::VERSION;'; echo 0.84 imacat@rinse /tmp/build % ls -a . .. imacat@rinse /tmp/build % /opt/perl/testers/5.8.8/bin/cpanp -t G/GR/GRICHTER/Embperl-1.3.6.tar.gz [MSG] Checking if source files are up to date [MSG] Retrieving /home/imacat/.cpanplus/sourcefiles.2.18.stored Testing Embperl (1.3.6) [MSG] Trying to get 'ftp://cpan.cdpa.nsysu.edu.tw/Unix/Lang/CPAN/authors/id/G/GR/GRICHTER/Embperl-1.3.6.tar.gz' Fetch failed! HTTP response: 404 Not Found [404 File 'Embperl-1.3.6.tar.gz' not found] at /opt/perl/testers/5.8.8/lib/site_perl/5.8.8/CPANPLUS/Internals/Fetch.pm line 362 Could not fetch '/Unix/Lang/CPAN/authors/id/G/GR/GRICHTER/Embperl-1.3.6.tar.gz' from 'cpan.cdpa.nsysu.edu.tw' at /opt/perl/testers/5.8.8/lib/site_perl/5.8.8/CPANPLUS/Internals/Fetch.pm line 362 Command failed: at /opt/perl/testers/5.8.8/lib/site_perl/5.8.8/CPANPLUS/Internals/Fetch.pm line 362 [ERROR] Fetching of 'ftp://cpan.cdpa.nsysu.edu.tw/Unix/Lang/CPAN/authors/id/G/GR/GRICHTER/Embperl-1.3.6.tar.gz' failed: Command failed: [MSG] Trying to get 'http://cpan.cdpa.nsysu.edu.tw/authors/id/G/GR/GRICHTER/Embperl-1.3.6.tar.gz' Fetch failed! HTTP response: 404 Not Found [404 Not Found] at /opt/perl/testers/5.8.8/lib/site_perl/5.8.8/CPANPLUS/Internals/Fetch.pm line 362 Command failed: at /opt/perl/testers/5.8.8/lib/site_perl/5.8.8/CPANPLUS/Internals/Fetch.pm line 362 [MSG] Trying to get 'ftp://cpan.cdpa.nsysu.edu.tw/Unix/Lang/CPAN/authors/id/G/GR/GRICHTER/CHECKSUMS' [MSG] Archive size is not known for 'Embperl-1.3.6.tar.gz' [MSG] No 'md5' checksum known for 'Embperl-1.3.6.tar.gz' Unable to read '/home/imacat/.cpanplus/authors/id/G/GR/GRICHTER/Embperl-1.3.6.tar.gz': at /opt/perl/testers/5.8.8/lib/site_perl/5.8.8/CPANPLUS/Internals/Extract.pm line 158 [MSG] Extracted 'Embperl' to '/tmp/build' [ERROR] Unable to find 'Build.PL' or 'Makefile.PL' for 'Embperl'; Will default to 'CPANPLUS::Dist::MM' but might be unable to install! ==> MISSING Signature file! <== [MSG] No 'Makefile.PL' found - attempting to generate one Running [/opt/perl/testers/5.8.8/bin/perl /opt/perl/testers/5.8.8/bin/cpanp-run-perl /tmp/build/Makefile.PL ]... Writing Makefile for Embperl Running [/usr/bin/make -j 2]... Running [/usr/bin/make test -j 2]... No tests defined for Embperl extension. [MSG] Sending test report for 'Embperl-1.3.6' [MSG] Successfully sent 'pass' report for 'Embperl-1.3.6' *** Install log written to: /home/imacat/.cpanplus/install-logs/Embperl-1.3.6-1207480521.log Module 'Embperl' tested successfully No errors testing all modules imacat@rinse /tmp/build % ls -a . .. Makefile Makefile.PL blib pm_to_blib imacat@rinse /tmp/build % Show quoted text
> Do you have any custom option set in your configuration that might > make it > behave differently?
The difference of my configuration to a newly-generated default configuration is: cpantest => 1 email => imacat@mail.imacat.idv.tw hosts => (mirrors in Taiwan) makeflags => '-j 2' prereqs => 1 verbose => 1 shell => /bin/bash (the default, as what I am using, is /bin/zsh)
Dear Jos Boumans, Hi. This is imacat from Taiwan. I tried to track into the codes. I found that CPANPLUS uses File::Fetch to fetch the file, and that File::Fetch cannot tell if the file is actually returned with lynx. That means File::Fetch treats the "HTTP/1.1 400 Not Found" message as the returning file, and CPANPLUS try to extract and deal with that "HTTP/1.1 400 Not Found" message in turn. This is the reason why CPANPLUS extracts an empty archive and creates dummy Makefile.PL for missing distributions. I have filed RT#35018 on File::Fetch. Hope that this helps. Please tell me if you need any more information, or if I could be of any help. Thank you.
On Mon Apr 14 12:26:44 2008, IMACAT wrote: Show quoted text
> Dear Jos Boumans, > > Hi. This is imacat from Taiwan. I tried to track into the codes. > I found that CPANPLUS uses File::Fetch to fetch the file, and that > File::Fetch cannot tell if the file is actually returned with lynx. > That means File::Fetch treats the "HTTP/1.1 400 Not Found" message as > the returning file, and CPANPLUS try to extract and deal with that > "HTTP/1.1 400 Not Found" message in turn. > > This is the reason why CPANPLUS extracts an empty archive and > creates dummy Makefile.PL for missing distributions. > > I have filed RT#35018 on File::Fetch. Hope that this helps. Please > tell me if you need any more information, or if I could be of any help. > Thank you.
The file::Fetch ticket is addressed, and we've upped the requirement of CPANPLUS on File::Fetch to 0.15_02, which includes the lynx & 404 fix