Skip Menu |

This queue is for tickets about the ExtUtils-MakeMaker CPAN distribution.

Report information
The Basics
Id: 103246
Status: new
Priority: 0/
Queue: ExtUtils-MakeMaker

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

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



Subject: If manifested file is missed, `make dist` warns but continues
If a file listed in MANIFEST is missed, `make dist` prints a warning but continues. Finally, the dist archive will be *successfully* created. How to reproduce: $ h2xs -AX --skip-exporter -n Assa $ cd Assa $ echo "Zoo" >> MANIFEST $ perl Makefile.PL $ make dist rm -rf Assa-0.01 /usr/bin/perl "-MExtUtils::Manifest=manicopy,maniread" \ -e "manicopy(maniread(),'Assa-0.01', 'best');" mkdir Assa-0.01 Zoo not found at -e line 1. mkdir Assa-0.01/t mkdir Assa-0.01/lib Generating META.yml Generating META.json tar cvf Assa-0.01.tar Assa-0.01 Assa-0.01/ Assa-0.01/t/ Assa-0.01/t/Assa.t Assa-0.01/Changes Assa-0.01/README Assa-0.01/lib/ Assa-0.01/lib/Assa.pm Assa-0.01/META.yml Assa-0.01/META.json Assa-0.01/Makefile.PL Assa-0.01/MANIFEST rm -rf Assa-0.01 gzip --best Assa-0.01.tar Created Assa-0.01.tar.gz There a few problems: 1. "Zoo not found at -e line 1." does not look like a warning and not clear enough. It would be better to let user know that "Zoo" is a file listed in MANIFEST. Information about source location "at -e line 1." does not have any value for the user and should be eliminated. 2. Problem (lack of file listed in MANIFEST) is serious enough. Make should be stopped with error to prevent creating broken package.
I tracked down the problem. ExtUtils/Manifest.pm, v1.71, line ~560: sub cp_if_diff { my($from, $to, $how)=@_; if (! -f $from) { carp "$from not found"; return; } Using `carp` for missed file is a bad idea: missed file is not a caller error. I think simple `die` should be used.