Skip Menu |

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

Report information
The Basics
Id: 69815
Status: resolved
Priority: 0/
Queue: ExtUtils-MakeMaker

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

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



Subject: tests require File::Temp 0.19
t/metafile_data.t failed because File::Temp was too old (Debian 5 ships Perl 5.10 with File::Temp 0.18). The failure in t/basic.t might be because of my partly broken Perl installation caused by a perl-modules debian package upgrade that effectively downgraded the core modules. Installing ExtUtils::MM_NW5 (6.58) Running [/usr/bin/make test]... PERL_DL_NONLAZY=1 /usr/bin/perl "-Iblib/arch" "-Iblib/lib" "-MExtUtils::Command::MM" "-e" "test_harness(0, 'blib/lib', 'blib/arch')" t/*.t t/00compile.t ............. ok t/arch_check.t ............ ok t/backwards.t ............. ok # Failed test 'distdir' # at t/basic.t line 351. # got: '512' # expected: '0' # make[1]: Entering directory `/home/ahartmai/.cpanplus/5.10.0/build/ExtUtils-MakeMaker-6.58/t/Big-Dummy' # rm -rf Big-Dummy-0.01 # /usr/bin/perl "-MExtUtils::Manifest=manicopy,maniread" \ # -e "manicopy(maniread(),'Big-Dummy-0.01', 'best');" # -e: MYMETA.json not found at -e line 1 # Can't read MYMETA.json: No such file or directory # mkdir Big-Dummy-0.01 # mkdir Big-Dummy-0.01/bin # mkdir Big-Dummy-0.01/lib # mkdir Big-Dummy-0.01/lib/Big # make[1]: *** [create_distdir] Error 2 # make[1]: Leaving directory `/home/ahartmai/.cpanplus/5.10.0/build/ExtUtils-MakeMaker-6.58/t/Big-Dummy' # Failed test 'META.yml generation not suppressed by NO_MYMETA' # at t/basic.t line 354. # Failed test 'META.json generation not suppressed by NO_MYMETA' # at t/basic.t line 355. # Failed test 'MYMETA.yml not yet generated in distdir' # at t/basic.t line 367. # Failed test 'MYMETA.json generated in distdir' # at t/basic.t line 368. # Looks like you failed 5 tests of 171. t/basic.t ................. Dubious, test returned 5 (wstat 1280, 0x500) Failed 5/171 subtests t/build_man.t ............. ok t/cd.t .................... ok t/config.t ................ ok t/dir_target.t ............ ok t/FIRST_MAKEFILE.t ........ ok t/fix_libs.t .............. ok t/fixin.t ................. ok t/hints.t ................. ok t/INST.t .................. ok t/INST_PREFIX.t ........... ok t/INSTALL_BASE.t .......... ok t/installed_file.t ........ ok t/is_of_type.t ............ ok t/Liblist.t ............... ok t/Liblist_Kid.t ........... ok t/make.t .................. ok t/MakeMaker_Parameters.t .. ok t/maketext_filter.t ....... ok t/meta_convert.t .......... ok Can't locate object method "newdir" via package "File::Temp" at t/metafile_data.t line 17. # Looks like you planned 19 tests but ran 13. # Looks like your test exited with 9 just after 13. t/metafile_data.t ......... Dubious, test returned 9 (wstat 2304, 0x900) Failed 6/19 subtests t/metafile_file.t ......... ok t/min_perl_version.t ...... ok t/miniperl.t .............. skipped: miniperl test only necessary for the perl core t/Mkbootstrap.t ........... ok t/MM_Any.t ................ ok t/MM_BeOS.t ............... skipped: This is not BeOS t/MM_Cygwin.t ............. skipped: This is not cygwin t/MM_NW5.t ................ skipped: This is not NW5 t/MM_OS2.t ................ skipped: This is not OS/2 t/MM_Unix.t ............... ok t/MM_VMS.t ................ skipped: This is not VMS t/MM_Win32.t .............. skipped: This is not Win32 t/oneliner.t .............. ok t/parse_abstract.t ........ ok t/parse_version.t ......... ok t/PL_FILES.t .............. ok t/pm.t .................... ok t/pm_to_blib.t ............ ok t/pod2man.t ............... ok t/postamble.t ............. ok t/prefixify.t ............. ok t/prereq.t ................ ok t/prereq_print.t .......... ok t/problems.t .............. ok t/prompt.t ................ ok t/recurs.t ................ ok t/revision.t .............. ok t/several_authors.t ....... ok t/split_command.t ......... ok t/test_boilerplate.t ...... ok t/testlib.t ............... ok t/VERSION_FROM.t .......... ok t/WriteEmptyMakefile.t .... ok t/writemakefile_args.t .... ok t/xs.t .................... ok Test Summary Report ------------------- t/basic.t (Wstat: 1280 Tests: 171 Failed: 5) Failed tests: 144, 147-148, 153-154 Non-zero exit status: 5 t/metafile_data.t (Wstat: 2304 Tests: 13 Failed: 0) Non-zero exit status: 9 Parse errors: Bad plan. You planned 19 tests but ran 13. Files=59, Tests=934, 34 wallclock secs ( 0.43 usr 0.43 sys + 20.57 cusr 9.72 csys = 31.15 CPU) Result: FAIL Failed 2/59 test programs. 5/934 subtests failed. make: *** [test_dynamic] Error 255
Subject: Re: [rt.cpan.org #69815] tests require File::Temp 0.19
Date: Wed, 27 Jul 2011 10:03:00 -0700
To: bug-ExtUtils-MakeMaker [...] rt.cpan.org
From: Michael G Schwern <schwern [...] pobox.com>
On 2011.7.26 5:43 AM, Alexander Hartmaier via RT wrote: Show quoted text
> t/metafile_data.t failed because File::Temp was too old (Debian 5 ships > Perl 5.10 with File::Temp 0.18). > The failure in t/basic.t might be because of my partly broken Perl > installation caused by a perl-modules debian package upgrade that > effectively downgraded the core modules.
Thanks for your report. MakeMaker bundles File::Temp 0.22, so something must have gone wrong with that mechanism... and I think I see what it is. The bundled modules go into blib/lib and "make test" adds blib/lib to @INC as a relative directory. metafile_data.t changes directory, which means blib/lib won't work any more. MakeMaker loads CPAN::Meta as late as possible, after the chdir. CPAN::Meta loads File::Temp and the whole thing doesn't work. The same sort of thing may be breaking basic.t... however, I'm a bit surprised I can't reproduce this on a clean 5.6.2 which is missing CPAN::Meta and File::Spec. I'll look into it. As a temporary fix, I'll make the chdir's smarter in the tests. As a permanent fix, MakeMaker should make blib/lib absolute, because this sort of thing has happened before with everybody's modules. It might cause minor incompatibilities with people who do @INC tricks in their tests and builds... but it's worth it to make dists less brittle moving forward. -- "Clutter and overload are not an attribute of information, they are failures of design" -- Edward Tufte
Thanks for the extensive investigation!
I checked and MakeMaker already does add blib/lib and blib/arch as absolute paths (there's redundant versions which are relative). It Works For Me™ using a version of Perl with an older File::Temp and I checked it's loading the proper version. Could you check if blib/lib/File/Temp.pm exists and what version it is? Also please check what version of File::Temp you have installed. "perldoc -m File::Temp | grep VERSION" will do.
I claim this is now obsolete since the problem has already been fixed and requestor did not answer RFI.
Sorry, seems the email notification didn't reach my mailbox as I only have the initial one. You can close the ticket as I don't have the Debian 5 box on which the problem came up any more.