Varioous matters

2006-10-27 Thread Ron Savage
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

2006-10-27 Thread Michael G Schwern
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

2006-10-27 Thread Michael G Schwern
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