Varioous matters
Hi Michael I'd like to discuss several issues re ExtUtils::MakeMaker, so I'll number the sections for clarity. All this is on `uname -all`: SunOS ssapp0117 5.9 Generic_117171-15 sun4u sparc SUNW,Sun-Fire-V890 with 24 Gb of RAM. My test box has got 64 Gb (heh heh heh). (1) I install all modules in my own dir, so here's how I get the version number: $PERL -I$INSTALL -MExtUtils::MakeMaker -e 'print $ExtUtils::MakeMaker::VERSION\n' No surprise there. Now, 2 outputs from installing V 6.31, separated by lines of equal signs. In the first case I unpacked the distro, cd'ed into the dir, and run the command which follows. In the second case I ran the same command (cut-and-paste) from within a batch file. The test outputs are different. This confuses me. The batch file includes unpacking the distro. It's true that I don't have ExtUtils::CBuilder installed, and there is no compiler. Also, I've included the output of manually running (and killing) dos2unix in case it helps. = 526 ExtUtils-MakeMaker-6.31 $PERL -I$INSTALL Makefile.PL PREFIX=$INSTALL LIB=$INSTALL Writing Makefile for ExtUtils::MakeMaker 527 ExtUtils-MakeMaker-6.31 make cp inc/ExtUtils/Manifest.pm blib/lib/ExtUtils/Manifest.pm cp lib/ExtUtils/MM_VOS.pm blib/lib/ExtUtils/MM_VOS.pm cp lib/ExtUtils/Mksymlists.pm blib/lib/ExtUtils/Mksymlists.pm cp lib/ExtUtils/MM.pm blib/lib/ExtUtils/MM.pm cp lib/ExtUtils/MM_UWIN.pm blib/lib/ExtUtils/MM_UWIN.pm cp lib/ExtUtils/testlib.pm blib/lib/ExtUtils/testlib.pm cp lib/ExtUtils/MM_Cygwin.pm blib/lib/ExtUtils/MM_Cygwin.pm cp lib/ExtUtils/MakeMaker/vmsish.pm blib/lib/ExtUtils/MakeMaker/vmsish.pm cp lib/ExtUtils/MM_DOS.pm blib/lib/ExtUtils/MM_DOS.pm cp lib/ExtUtils/MM_Win95.pm blib/lib/ExtUtils/MM_Win95.pm cp lib/ExtUtils/Liblist.pm blib/lib/ExtUtils/Liblist.pm cp lib/ExtUtils/MM_AIX.pm blib/lib/ExtUtils/MM_AIX.pm cp lib/ExtUtils/Liblist/Kid.pm blib/lib/ExtUtils/Liblist/Kid.pm cp lib/ExtUtils/Mkbootstrap.pm blib/lib/ExtUtils/Mkbootstrap.pm cp lib/ExtUtils/MakeMaker/FAQ.pod blib/lib/ExtUtils/MakeMaker/FAQ.pod cp inc/ExtUtils/MANIFEST.SKIP blib/lib/ExtUtils/MANIFEST.SKIP cp lib/ExtUtils/MakeMaker/bytes.pm blib/lib/ExtUtils/MakeMaker/bytes.pm cp lib/ExtUtils/MM_NW5.pm blib/lib/ExtUtils/MM_NW5.pm cp inc/ExtUtils/Command.pm blib/lib/ExtUtils/Command.pm cp lib/ExtUtils/MakeMaker.pm blib/lib/ExtUtils/MakeMaker.pm cp lib/ExtUtils/MM_OS2.pm blib/lib/ExtUtils/MM_OS2.pm cp lib/ExtUtils/MM_Unix.pm blib/lib/ExtUtils/MM_Unix.pm cp lib/ExtUtils/MM_Win32.pm blib/lib/ExtUtils/MM_Win32.pm cp inc/ExtUtils/Installed.pm blib/lib/ExtUtils/Installed.pm cp inc/ExtUtils/Packlist.pm blib/lib/ExtUtils/Packlist.pm cp lib/ExtUtils/MY.pm blib/lib/ExtUtils/MY.pm cp lib/ExtUtils/MM_MacOS.pm blib/lib/ExtUtils/MM_MacOS.pm cp lib/ExtUtils/MM_VMS.pm blib/lib/ExtUtils/MM_VMS.pm cp lib/ExtUtils/MM_BeOS.pm blib/lib/ExtUtils/MM_BeOS.pm cp lib/ExtUtils/MakeMaker/Tutorial.pod blib/lib/ExtUtils/MakeMaker/Tutorial.pod cp lib/ExtUtils/MM_QNX.pm blib/lib/ExtUtils/MM_QNX.pm cp lib/ExtUtils/Command/MM.pm blib/lib/ExtUtils/Command/MM.pm cp inc/ExtUtils/Install.pm blib/lib/ExtUtils/Install.pm cp lib/ExtUtils/MakeMaker/Config.pm blib/lib/ExtUtils/MakeMaker/Config.pm cp lib/ExtUtils/MM_Any.pm blib/lib/ExtUtils/MM_Any.pm cp bin/instmodsh blib/script/instmodsh /opt/eHealth/web/aview/perl/bin/perl -Ilib -MExtUtils::MY -e MY-fixin(shift) blib/script/instmodsh 528 ExtUtils-MakeMaker-6.31 make test PERL_DL_NONLAZY=1 /opt/eHealth/web/aview/perl/bin/perl -Ilib -MExtUtils::Command::MM -e test_harness(0, 'blib/lib', 'blib/arch') t/*.t t/00compile.ok t/backwards.ok t/basic.ok t/build_man.ok 3/9 t/build_man.NOK 4# Failed test in t/build_man.t at line 45. t/build_man.ok 9/9# Looks like you failed 1 test of 9. t/build_man.dubious Test returned status 1 (wstat 256, 0x100) DIED. FAILED test 4 Failed 1/9 tests, 88.89% okay t/bytes.ok t/Command...ok t/configok t/dir_targetok t/FIRST_MAKEFILEok t/hints.ok t/INST..ok t/INST_PREFIX...ok 7/52 skipped: various reasons t/Install...ok t/INSTALL_BASE..ok t/Installed.ok 10/46 skipped: various reasons t/Liblist...ok t/make..ok t/Manifest..ok t/Mkbootstrap...ok t/MM_Anyok t/MM_BeOS...skipped all skipped: This is not BeOS t/MM_Cygwin.skipped all skipped: This is not cygwin t/MM_NW5skipped all skipped: This is not NW5 t/MM_OS2skipped all skipped: This is not OS/2 t/MM_Unix...ok t/MM_VMSskipped all skipped: This is not VMS t/MM_Win32..skipped all skipped: This is not Win32 t/oneliner..ok t/Packlist..ok
Re: Varioous matters
Ron Savage wrote: Hi Michael I'd like to discuss several issues re ExtUtils::MakeMaker, so I'll number the sections for clarity. All this is on `uname -all`: SunOS ssapp0117 5.9 Generic_117171-15 sun4u sparc SUNW,Sun-Fire-V890 with 24 Gb of RAM. My test box has got 64 Gb (heh heh heh). (1) I install all modules in my own dir, so here's how I get the version number: $PERL -I$INSTALL -MExtUtils::MakeMaker -e 'print $ExtUtils::MakeMaker::VERSION\n' No surprise there. Now, 2 outputs from installing V 6.31, separated by lines of equal signs. In the first case I unpacked the distro, cd'ed into the dir, and run the command which follows. In the second case I ran the same command I'm going to deal with this in a separate post since it looks complicated. (2) When I install a module which depends on another module, and the latter is already installed in my dir, my command $PERL -I$INSTALL Makefile.PL PREFIX=$INSTALL LIB=$INSTALL works in terms of finding the dependency, but does not work when running the tests. It seems -I$INSTALL is not passed thru to the testing phase. Is this correct? I read the docs for ExtUtils::MakeMaker and the FAQ but could not see anything referring to this matter. Is there something I can do to humour 'make test'? Yes, this is correct. The @INC from Makefile.PL does not get passed along to your tests. You should instead be setting the PERL5LIB environment variable to your $INSTALL directory. This will have the additional benefit in that you no longer have to put -I$INSTALL on all your perl commands to find your installed modules. (3) The FAQ, under Module Installation, says: perl Makefile.PL INSTALL_BASE=~ It'd help Windows users if this was added: Under MS Windows, use instead: perl Makefile.PL INSTALL_BASE=\perl-modules Then a few lines down: use lib $ENV{HOME}/lib/perl5; would become: use lib /perl-modules/lib/perl5; I'm inclined to say that if your pointy hat isn't high enough to figure that out you shouldn't be installing Perl modules. If there's one Unix-centric thing a Windows programmer is likely to run into its ~ as its such a convenient shorthand. But I'll remove some of the tildes. (4) The FAQ, under Philosophy and History, says: pure perl. no make, no shell commands This makes me uneasy, since I believe now that M::B depends on a module which requires a compiler, so, although strictly true, your can't install M::B without a compiler. Sigh. Is that worth clarifying? Module::Build still does not require anything which needs to be compiled. http://search.cpan.org/src/KWILLIAMS/Module-Build-0.2805/META.yml requires: Cwd: 0 Data::Dumper: 0 ExtUtils::Install: 0 ExtUtils::Manifest: 0 ExtUtils::Mkbootstrap: 0 File::Basename: 0 File::Compare: 0 File::Copy: 0 File::Find: 0 File::Path: 0 File::Spec: 0.82 Getopt::Long: 0 IO::File: 0 Test::Harness: 0 Text::Abbrev: 0 Text::ParseWords: 0 perl: 5.005_03 And amongst what it recommends I believe they can all be installed without a compiler. recommends: Archive::Tar: 1.08 ExtUtils::CBuilder: 0.15 ExtUtils::Install: 0.3 ExtUtils::ParseXS: 1.02 Module::Signature: 0.21 Pod::Readme: 0.04 version: 0.661
Re: Varioous matters
Ron Savage wrote: Hi Michael I'd like to discuss several issues re ExtUtils::MakeMaker, so I'll number the sections for clarity. All this is on `uname -all`: SunOS ssapp0117 5.9 Generic_117171-15 sun4u sparc SUNW,Sun-Fire-V890 with 24 Gb of RAM. My test box has got 64 Gb (heh heh heh). Let's see your perl -V, please. (1) I install all modules in my own dir, so here's how I get the version number: $PERL -I$INSTALL -MExtUtils::MakeMaker -e 'print $ExtUtils::MakeMaker::VERSION\n' No surprise there. Now, 2 outputs from installing V 6.31, separated by lines of equal signs. In the first case I unpacked the distro, cd'ed into the dir, and run the command which follows. In the second case I ran the same command (cut-and-paste) from within a batch file. The test outputs are different. This confuses me. The batch file includes unpacking the distro. Its possible the batch file is setting some environment variables which are confusing the MakeMaker tests. Can you show the output of `env` from within that batch file just before the tests are run? And can I see that batch file? t/build_man.ok 3/9 t/build_man.NOK 4# Failed test in t/build_man.t at line 45. t/build_man.ok 9/9# Looks like you failed 1 test of 9. t/build_man.dubious Test returned status 1 (wstat 256, 0x100) DIED. FAILED test 4 Failed 1/9 tests, 88.89% okay I've seen this failure before on Cygwin and I think I've figured it out. You've turned off man page generation and the tests assume its on. Can I see: perl -MConfig -wle 'print $Config{installman3dir}' And give the latest repo version a try. I've fixed the test to remove this assumption. svn co http://svn.schwern.org/CPAN/ExtUtils-MakeMaker/trunk