module-build-general Mailing List for Module::Build (Page 167)
Status: Beta
Brought to you by:
kwilliams
You can subscribe to this list here.
| 2002 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(24) |
Sep
(2) |
Oct
(18) |
Nov
(36) |
Dec
(17) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2003 |
Jan
(3) |
Feb
(96) |
Mar
(82) |
Apr
(63) |
May
(90) |
Jun
(52) |
Jul
(94) |
Aug
(89) |
Sep
(75) |
Oct
(118) |
Nov
(101) |
Dec
(111) |
| 2004 |
Jan
(159) |
Feb
(155) |
Mar
(65) |
Apr
(121) |
May
(62) |
Jun
(68) |
Jul
(54) |
Aug
(45) |
Sep
(78) |
Oct
(80) |
Nov
(271) |
Dec
(205) |
| 2005 |
Jan
(128) |
Feb
(96) |
Mar
(83) |
Apr
(113) |
May
(46) |
Jun
(120) |
Jul
(146) |
Aug
(47) |
Sep
(93) |
Oct
(118) |
Nov
(116) |
Dec
(60) |
| 2006 |
Jan
(130) |
Feb
(330) |
Mar
(228) |
Apr
(203) |
May
(97) |
Jun
(15) |
Jul
(6) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
|
From: Dave R. <au...@ur...> - 2003-06-21 04:47:36
|
The patch below my sig does three things: 1. Fix MANIFEST to include INSTALL.txt, not INSTALL 2. Make the distsign action depend on distdir unless $self->dist_dir already exists. Otherwise the sequence of "perl Build.PL", "./Build distsign" fails, which is almost certainly a bug. 3. Adds a verify action which verifies a signature. -dave /*======================= House Absolute Consulting www.houseabsolute.com =======================*/ ? t/Sample/SIGNATURE ? t/Sample/Sample-0.01.tar.gz Index: MANIFEST =================================================================== RCS file: /cvsroot/module-build/Module-Build/MANIFEST,v retrieving revision 1.18 diff -u -r1.18 MANIFEST --- MANIFEST 22 May 2003 17:19:04 -0000 1.18 +++ MANIFEST 21 Jun 2003 04:44:11 -0000 @@ -1,6 +1,6 @@ Build.PL Changes -INSTALL +INSTALL.txt MANIFEST META.yml Makefile.PL Index: lib/Module/Build.pm =================================================================== RCS file: /cvsroot/module-build/Module-Build/lib/Module/Build.pm,v retrieving revision 1.76 diff -u -r1.76 Build.pm --- lib/Module/Build.pm 17 Jun 2003 06:19:13 -0000 1.76 +++ lib/Module/Build.pm 21 Jun 2003 04:44:11 -0000 @@ -141,8 +141,8 @@ distclean skipcheck distdir test distsign testdb - disttest versioninstall - fakeinstall + disttest verify + fakeinstall versioninstall You can run the 'help' action for a complete list of actions. @@ -877,6 +877,10 @@ This is a synonym for the 'test' action with the C<debugger=1> argument. + +=item verify + +Verifies the signatures found in the distribution's SIGNATURE file. =item clean Index: lib/Module/Build/Base.pm =================================================================== RCS file: /cvsroot/module-build/Module-Build/lib/Module/Build/Base.pm,v retrieving revision 1.129 diff -u -r1.129 Base.pm --- lib/Module/Build/Base.pm 17 Jun 2003 19:19:21 -0000 1.129 +++ lib/Module/Build/Base.pm 21 Jun 2003 04:44:16 -0000 @@ -819,6 +819,23 @@ return [sort @tests]; } +sub ACTION_verify { + my ($self) = @_; + + $self->_load_module_signature('verify') or return; + + # We protect the verify with an eval{} to make sure we get back to + # the right directory after a signature failure. + + chdir $self->dist_dir or die "Can't chdir() to " . $self->dist_dir . ": $!"; + my $ok = eval {Module::Signature::verify() == Module::Signature::SIGNATURE_OK()}; + my @err = $@ ? ($@) : (); + chdir $self->base_dir or push @err, "Can't chdir() back to " . $self->base_dir . ": $!"; + die join "\n", @err if @err; + + print "Signature is", ($ok ? "" : " not"), " valid\n"; +} + sub ACTION_testdb { my ($self) = @_; local $self->{properties}{debugger} = 1; @@ -1144,11 +1161,10 @@ sub ACTION_distsign { my ($self) = @_; - - unless (eval { require Module::Signature; 1 }) { - warn "Couldn't load Module::Signature for 'distsign' action:\n $@\n"; - return; - } + + $self->_load_module_signature('distsign') or return; + + $self->depends_on('distdir') unless -d $self->dist_dir; # We protect the signing with an eval{} to make sure we get back to # the right directory after a signature failure. @@ -1160,7 +1176,16 @@ die join "\n", @err if @err; } +sub _load_module_signature { + my ($self, $action) = @_; + unless (eval { require Module::Signature; 1 }) { + warn "Couldn't load Module::Signature for '$action' action:\n $@\n"; + return; + } + + return 1; +} sub ACTION_skipcheck { my ($self) = @_; |
|
From: Dave R. <au...@ur...> - 2003-06-21 04:32:35
|
I believe it was Mark Fowler who brought this issue up at the M::B BOF at YAPC. His basic problem was that he had a subclass of M::B that he wanted to use in various modules he might distribute on CPAN. This leads to the question of how to specify this prerequisite. I think this needs a new prereq specification for "bootstrap" modules, so we can do something like this: use Module::Build; Module::Build->boostrap_requires( 'Module::Build::Foo' => 0.15, ... ); require Module::Build::Foo; Module::Build::Foo->new( ... )->create_build_script; This wouldn't be too hard to implement but I wanted to discuss the API before creating a patch. So what do others think? -dave /*======================= House Absolute Consulting www.houseabsolute.com =======================*/ |
|
From: Ken W. <ke...@ma...> - 2003-06-20 19:30:05
|
Hi Andrew,
Sorry it's taken a while to get back to you, I've been ruminating on
what a proper solution would look like. I think I may have said
previously that putting those files under pm_files would be the way to
go, but I think I have to retract that statement. =( Those files
aren't actually .pm files, and calling them .pm files will mean that
we'll scan them for packages and so on.
I think what you want to do is add an additional installation object
type called 'eye', whose default installation directory is the same as
the pm_files default. I've tried to make the installation map
extensible, but at this point I'm not sure there's enough API to
actually do the extending.
-Ken
On Monday, June 9, 2003, at 04:00 AM, Andrew Savige wrote:
> This is my current Build.PL, the idea being to essentially to treat
> files with a '.eye' suffix the same as those with a '.pm' suffix.
>
> use Module::Build;
> my $class = Module::Build->subclass(
> class => 'My::Builder',
> code => q{
> sub find_pm_files {
> my $self = shift;
> $self->{properties}{pm_files} ||
> $self->rscan_dir('lib', qr{\.(?:eye|pm)$});
> }
> }
> );
> my $m = $class->new(
> module_name => 'Acme::EyeDrops',
> license => 'perl',
> requires => { perl => '5.005' },
> build_requires => { 'Module::Build' => 0.17 }
> );
> $m->create_build_script;
>
> This no longer works in M::B v0.18_02, failing on "Perl Build" with:
> Can't coerce array into hash at G:\Perl\site\lib/Module/Build/Base.pm
> line 894.
>
> Should I update the find_pm_files function above or use the new
> pm_files attribute?
>
> Is this correct use of the pm_files attribute?
> pm_files => { 'lib/Acme/EyeDrops.pm' => 'lib/Acme/EyeDrops.pm',
> 'lib/Acme/camel.eye' => 'lib/Acme/camel.eye',
> # ... and so on
> }
> Do I have to explicitly list every file or is there some shorthand
> to say "treat .eye files the same as .pm files"?
>
> /-\
>
>
> http://mobile.yahoo.com.au - Yahoo! Mobile
> - Check & compose your email via SMS on your Telstra or Vodafone
> mobile.
>
>
> -------------------------------------------------------
> This SF.net email is sponsored by: Etnus, makers of TotalView, The
> best
> thread debugger on the planet. Designed with thread debugging features
> you've never dreamed of, try TotalView 6 free at www.etnus.com.
> _______________________________________________
> Module-build-general mailing list
> Mod...@li...
> https://lists.sourceforge.net/lists/listinfo/module-build-general
>
-Ken
|
|
From: Ken W. <ke...@ma...> - 2003-06-18 04:25:17
|
On Tuesday, June 17, 2003, at 08:00 PM, Mr. Lindsay Morris wrote:
> Thank you, Ken!
> Did that;
> ./Build dist gave me an empty .tar.gz file;
> by an inspired leap I tried ./Build manifest first,
> THEN ./Build dist did right.
>
> Maybe Build dist could automatically Build manifest? or at least say
> "you
> dummy..."?
Yeah, good idea - I'll add a warning if no files were found in the
MANIFEST. We can't auto-create the MANIFEST at that stage because the
MANIFEST drives the distdir process.
> Of course there's alwasy another problem...
> I put the tar.gz file on my windows box, and realize I don't know how
> to
> install the distribution.
>
> I try th obvious things:
> ./Build
> perl Build
> perl Build.PL
> perl Makefile.PL
It's this sequence:
perl Build.PL
perl Build
perl Build test
perl Build install
> But nothing works - details below if you care to look...
> I had hopes for "perl Build.PL" but it complains it can't find module
> Build - maybe I'm getting confused with Module::Install, but I thought
> everything I needed would get packaged up in the distro
> and installed from there.
Nope, Module::Build is just a standard prerequisite that you (and your
users) need to install the usual way. You're indeed thinking of
Module::Install. I think you actually could use Module::Install to
bundle Module::Build, but I haven't tried it.
-Ken
> ============================================================
> after untarring distro on windows:
>
> C:\tmp\SGlicense-1.02>./Build
> '.' is not recognized as an internal or external command,
> operable program or batch file.
>
> C:\tmp\SGlicense-1.02>Build dist
> 'Build' is not recognized as an internal or external command,
> operable program or batch file.
>
> C:\tmp\SGlicense-1.02>ls -l
> total 30
> -rwxr-xr-x 1 Lindsay None 693 Jun 17 09:47 Build
> -rw-r--r-- 1 Lindsay None 246 Jun 17 07:17 Build.PL
> -rw-r--r-- 1 Lindsay None 154 Jun 17 03:45 Changes
> -rw-r--r-- 1 Lindsay None 458 Jun 17 09:49 MANIFEST
> -rw-r--r-- 1 Lindsay None 1150 Jun 17 09:50 META.yml
> -rwxr-xr-x 1 Lindsay None 18330 Jun 17 16:55 Makefile
> -rw-r--r-- 1 Lindsay None 350 Jun 17 07:13 Makefile.PL
> -rw-r--r-- 1 Lindsay None 1069 Jun 17 03:45 README
> -rw-r--r-- 1 Lindsay None 2977 Jun 17 03:56 SGlicense.pm
> drwxr-xr-x+ 2 Lindsay None 0 Jun 17 09:50 _build
> drwxr-xr-x+ 4 Lindsay None 0 Jun 17 13:55 blib
> drwxr-xr-x+ 5 Lindsay None 0 Jun 17 19:51 inc
> drwxr-xr-x+ 2 Lindsay None 0 Jun 17 09:50 lib
> -rwxr-xr-x 1 Lindsay None 0 Jun 17 13:55 pm_to_blib
> drwxr-xr-x+ 2 Lindsay None 0 Jun 17 19:51 t
>
> C:\tmp\SGlicense-1.02>type Build
> #!/usr/bin/perl
>
> BEGIN {
> $^W = 1; # Use warnings
> chdir('/tmp/SGlicense') or die 'Cannot chdir to /tmp/SGlicense: '.$!;
> @INC = ('/usr/lib/perl5/5.8.0/i386-linux-thread-multi',
> '/usr/lib/perl5/5.8.0',
> '/usr/lib/perl5/site_perl/5.8.0/i386-linux-thread-
> multi', '/usr/lib/perl5/site_perl/5.8.0', '/usr/lib/perl5/site_perl',
> '/usr/lib/perl5/vendor_perl/5.8.0/i386-linux-thread-multi', '/
> usr/lib/perl5/vendor_perl/5.8.0', '/usr/lib/perl5/vendor_perl', '.');
> }
>
> use Module::Build;
>
> # This should have just enough arguments to be able to bootstrap the
> rest.
> my $build = resume Module::Build (
> properties => {
> config_dir => '_build',
> build_script => 'Build',
> },
> );
>
> $build->dispatch;
>
> C:\tmp\SGlicense-1.02>perl Build
> Cannot chdir to /tmp/SGlicense: No such file or directory at Build
> line 5.
> BEGIN failed--compilation aborted at Build line 7.
>
> C:\tmp\SGlicense-1.02>perl Build.PL
> Can't locate Module/Build.pm in @INC (@INC contains: c:/Perl/lib
> c:/Perl/site/lib .) at Build.PL line 1.
> BEGIN failed--compilation aborted at Build.PL line 1.
>
> C:\tmp\SGlicense-1.02>perl Makefile.PL
> Can't locate Module/Build.pm in @INC (@INC contains: inc c:/Perl/lib
> c:/Perl/site/lib .) at inc/Module/Install/Build.pm - /usr/lib/p
> erl5/site_perl/5.8.0/Module/Install/Build.pm line 35.
>
> C:\tmp\SGlicense-1.02>ls -l inc
> total 13
> drwxr-xr-x+ 2 Lindsay None 0 Jun 17 19:51 Crypt
> drwxr-xr-x+ 3 Lindsay None 0 Jun 17 03:57 Filter
> drwxr-xr-x+ 3 Lindsay None 0 Jun 17 19:51 Module
> -rw-r--r-- 1 Lindsay None 12857 Jun 17 07:18 warnings.pm
>
>
>
|
|
From: Ken W. <ke...@ma...> - 2003-06-17 23:41:53
|
On Tuesday, June 17, 2003, at 05:54 PM, Mr. Lindsay Morris wrote:
> Ken, not sure you're on pa...@pe..., so I'm sending you this directly.
> I know you're busy - there's probably an obvious answer,
> so if you have time, I'd appreciate any hints.
Hi Lindsay,
You're right, I'm not on pa...@pe....
> ===========================================================
> lmorris - /tmp/SGlic >cat Build.PL
> use Module::Build;
> my $build = new Module::Build
> (
> module_name => 'SGlic',
> license => 'perl',
> requires => {
> perl => '5.6.1',
> Crypt::CapnMidNite => '1.00',
> Filter::Util::Call => 1.00,
> },
> );
> $build->create_build_script;
>
> lmorris - /tmp/SGlic >fgrep VERSION SGlic.pm
> our $VERSION = '1.02';
>
> lmorris - /tmp/SGlic >perl Build.PL
> Checking whether your kit is complete...
> Looks good
> Can't open 'lib/SGlic.pm' for version: No such file or directory at
> /usr/lib/perl5/site_perl/5.8.0/Module/Build/Base.pm line 274.
> ===========================================================
It's telling the truth. =) You should create a lib/ directory and put
the SGlic.pm file in there.
This is one of the layouts that works with MakeMaker. It's the default
layout in Module::Build. Alternate layouts need to be specified
explicitly, because the aggressive behavior of MakeMaker in finding &
installing modules wherever it can has been deemed undesirable in M::B.
-Ken
|
|
From: Ken W. <ke...@ma...> - 2003-06-17 15:20:42
|
On Monday, June 16, 2003, at 01:58 PM, Stephen R. Wilcoxon wrote:
> It appears that there is a bug in Module::Build when perl was compiled
> in a
> user directory. It tries installing in
> ~user/lib/perl5/site_perl/5.6.1,
> but instead of installing in $HOME/lib/perl5/site_perl/5.6.1 (assuming
> running as user) it really installs in '~user' under the current
> directory.
This might be fixed in the latest Module::Build betas/CVS. It should
be using $Config{installsitelib} and the like, but in older versions it
uses $Config{sitelib} and the like. The former should have the path
already expanded.
You can self-patch in the install_map() method if you'd like to fix
your current version. Let me know if it doesn't work.
-Ken
|
|
From: Stephen R. W. <wil...@br...> - 2003-06-16 17:58:29
|
It appears that there is a bug in Module::Build when perl was compiled in a user directory. It tries installing in ~user/lib/perl5/site_perl/5.6.1, but instead of installing in $HOME/lib/perl5/site_perl/5.6.1 (assuming running as user) it really installs in '~user' under the current directory. |
|
From: <ajs...@ya...> - 2003-06-12 08:09:56
|
Ken Williams wrote: > There's a change in t/Sample/test.pl that should print out "Done.\n" > at the end, did you get that copied over? Thanks, got it. All tests now pass with Microsoft NMAKE. ^.^ Since I can't afford to buy Lucent NMAKE, I leave testing with that product as an exercise for Ken "Lucent NMAKE" Williams. ;-) BTW, given the quality, ubiquity and free availability of GNU make, I'm puzzled as to why anyone would actually want to pay money for Lucent NMAKE (notwithstanding their clever marketing ploy of choosing the same name as Microsoft). /-\ http://mobile.yahoo.com.au - Yahoo! Mobile - Check & compose your email via SMS on your Telstra or Vodafone mobile. |
|
From: Ken W. <ke...@ma...> - 2003-06-11 19:42:55
|
Hey, The M::B list is now listed on http://lists.perl.org/ . The archive URL is wrong, but I've sent in a correction for it. The correct URL is accessible via the list-info page. -Ken |
|
From: Ken W. <ke...@ma...> - 2003-06-11 14:38:32
|
On Wednesday, June 11, 2003, at 03:59 AM, Andrew Savige wrote: > > Just curious, I notice you are using, for example: > G:\Perl\bin\perl.exe .\Build realclean > Why not use: > G:\Perl\bin\perl.exe Build realclean > i.e. Under what circumstances will 'perl ./Build' work and > 'perl Build' fail? The latter seems preferable to me because > some systems (unlike Unix and Windows) may have no understanding > that '.' means current working directory. You're right - that's a holdover from when I had just "./Build foo" instead of "$perl Build foo". I'll make the change. > Anyway, I downloaded Base.pm/Compat.pm/basic.t/compat.t from CVS > and copied on top of M::B v0.18_02. > All tests then passed except test 21 of t/compat.t. There's a change in t/Sample/test.pl that should print out "Done.\n" at the end, did you get that copied over? -Ken |
|
From: <ajs...@ya...> - 2003-06-11 08:59:29
|
> I've committed this change to CVS. Can you access that? I've just
> written a bunch of tests in t/compat.t to exercise this stuff
> automatically, it would be great if you could run the tests and see
> what happens.
Just curious, I notice you are using, for example:
G:\Perl\bin\perl.exe .\Build realclean
Why not use:
G:\Perl\bin\perl.exe Build realclean
i.e. Under what circumstances will 'perl ./Build' work and
'perl Build' fail? The latter seems preferable to me because
some systems (unlike Unix and Windows) may have no understanding
that '.' means current working directory.
Anyway, I downloaded Base.pm/Compat.pm/basic.t/compat.t from CVS
and copied on top of M::B v0.18_02.
All tests then passed except test 21 of t/compat.t.
Detailed result of compat.t follow:
t/compat........1..23
ok 1
Checking whether your kit is complete...
Looks good
ok 2
G:\Perl\bin\perl.exe Makefile.PL
G:\Perl\bin\perl.exe Build.PL
Checking whether your kit is complete...
Looks good
Creating new 'Build' script for 'Sample' version '0.01'
ok 3
ok 4
nmake
Microsoft (R) Program Maintenance Utility Version 6.00.8168.0
Copyright (C) Microsoft Corp 1988-1998. All rights reserved.
G:\Perl\bin\perl.exe .\Build
lib/Sample.pm -> blib\lib/Sample.pm
script -> blib\script\script
G:\Perl\bin\pl2bat.bat < blib\script\script > blib\script\script.bat
ok 5
Microsoft (R) Program Maintenance Utility Version 6.00.8168.0
Copyright (C) Microsoft Corp 1988-1998. All rights reserved.
ok 6
ok 7
nmake realclean
Microsoft (R) Program Maintenance Utility Version 6.00.8168.0
Copyright (C) Microsoft Corp 1988-1998. All rights reserved.
G:\Perl\bin\perl.exe .\Build realclean
Deleting blib
Deleting _build
Deleting Build
G:\Perl\bin\perl.exe -e unlink -e shift Makefile
ok 8
Deleting Makefile.PL
ok 9
G:\Perl\bin\perl.exe Makefile.PL
G:\Perl\bin\perl.exe Build.PL
Checking whether your kit is complete...
Looks good
Creating new 'Build' script for 'Sample' version '0.01'
ok 10
ok 11
nmake
Microsoft (R) Program Maintenance Utility Version 6.00.8168.0
Copyright (C) Microsoft Corp 1988-1998. All rights reserved.
G:\Perl\bin\perl.exe .\Build
lib/Sample.pm -> blib\lib/Sample.pm
script -> blib\script\script
G:\Perl\bin\pl2bat.bat < blib\script\script > blib\script\script.bat
ok 12
Microsoft (R) Program Maintenance Utility Version 6.00.8168.0
Copyright (C) Microsoft Corp 1988-1998. All rights reserved.
ok 13
ok 14
nmake realclean
Microsoft (R) Program Maintenance Utility Version 6.00.8168.0
Copyright (C) Microsoft Corp 1988-1998. All rights reserved.
G:\Perl\bin\perl.exe .\Build realclean
Deleting blib
Deleting _build
Deleting Build
G:\Perl\bin\perl.exe -e unlink -e shift Makefile
ok 15
Deleting Makefile.PL
ok 16
G:\Perl\bin\perl.exe Makefile.PL
Checking if your kit is complete...
Looks good
Warning: Guessing NAME [Sample] from current directory name.
Writing Makefile for Sample
ok 17
ok 18
nmake
Microsoft (R) Program Maintenance Utility Version 6.00.8168.0
Copyright (C) Microsoft Corp 1988-1998. All rights reserved.
cp lib/Sample.pm blib\lib\Sample.pm
ok 19
Microsoft (R) Program Maintenance Utility Version 6.00.8168.0
Copyright (C) Microsoft Corp 1988-1998. All rights reserved.
# Test 21 got: 'NMAKE TEST
G:\PERL\BIN\PERL.EXE "-IBLIB\LIB" "-IBLIB\ARCH" TEST.PL
1..2
OK 1
$INC{'MODULE/BUILD.PM'}:
G:\TMP\MODULE-BUILD-0.18_02\BLIB\LIB/MODULE/BUILD.PM
OK 2
' (t/compat.t at line 40 fail #3)
# Expected: qr{(?-xism:DONE\.|SUCCESS)}
ok 20
not ok 21
nmake realclean
Microsoft (R) Program Maintenance Utility Version 6.00.8168.0
Copyright (C) Microsoft Corp 1988-1998. All rights reserved.
G:\Perl\bin\perl.exe -MExtUtils::Command -e rm_rf ./blib
Makefile.aperl blib\arch\auto\Sample/extralibs.all perlmain.c tmon.out
mon.out so_locations pm_to_blib *.obj *.lib perl.exe perl perl.exe
Sample.bso Sample.def libSample.def Sample.exp Sample.x core
core.*perl.*.? *perl.core core.[0-9] core.[0-9][0-9]
core.[0-9][0-9][0-9] core.[0-9][0-9][0-9][0-9]
core.[0-9][0-9][0-9][0-9][0-9]
G:\Perl\bin\perl.exe -MExtUtils::Command -e mv Makefile Makefile.old >
NUL
G:\Perl\bin\perl.exe -MExtUtils::Command -e rm_f *.pdb
G:\Perl\bin\perl.exe -MExtUtils::Command -e rm_rf blib\lib\auto\Sample
blib\arch\auto\Sample
G:\Perl\bin\perl.exe -MExtUtils::Command -e rm_rf Sample-0.01
G:\Perl\bin\perl.exe -MExtUtils::Command -e rm_f Makefile.old
Makefile
ok 22
Deleting Makefile.PL
ok 23
FAILED test 21
Failed 1/23 tests, 95.65% okay
http://mobile.yahoo.com.au - Yahoo! Mobile
- Check & compose your email via SMS on your Telstra or Vodafone mobile.
|
|
From: Ken W. <ke...@ma...> - 2003-06-10 15:54:39
|
On Tuesday, June 10, 2003, at 03:53 AM, Andrew Savige wrote: > AFAICT, .PHONY is GNU make special, not supported by Microsoft NMAKE. > May not be supported other makes also. Ditto for .DEFAULT. Drat. Well, let's not use it then. > Alas, that is Lucent NMAKE, no relation to Microsoft NMAKE! > From http://www.bell-labs.com/project/nmake/faq/MS.html: > "Microsoft also has a development tool called nmake. > The Microsoft nmake has no relation to Lucent nmake and the two > should not be confused. The two tools are not compatible ..." Drat! What, there weren't enough letters in the world? They both had to use 'n'?? > I think we need to solve this problem in a lowest common denominator > way without relying on GNU make extensions. Untested, but I think > something like the following should work everywhere: [snip] I've committed this change to CVS. Can you access that? I've just written a bunch of tests in t/compat.t to exercise this stuff automatically, it would be great if you could run the tests and see what happens. The change log for 1.19 is growing so long! Over 130 lines! -Ken |
|
From: <ajs...@ya...> - 2003-06-10 08:54:00
|
Ken Williams wrote: >On Sunday, June 8, 2003, at 09:15 PM, Andrew Savige wrote: >> I tried installing Module::Build 0.18_02 on Windows XP, via: >> perl Makefile.PL >> nmake >> nmake test >> nmake install >> but, alas, the "nmake test" step failed with: >> "Don't know how to to make test" >> It seems that Windows NMAKE does not like .DEFAULT very much (?). >> Please bear in mind that I am a bit of a make ignoramus. > > I am too, unfortunately. It might just be that the $@ variable > needs to be written as $(@) though - does that help? No. Microsoft NMAKE understands $@ just fine (see below). >> There is another problem: the Module::Build distribution contains >> a file INSTALL, yet Windows is case insensitive, so a target of >> install : >> says, annoyingly, "'install' is up-to-date" when you try a >> 'nmake install'. Curiously, using a target of: >> install :: >> seems to fix this, but I don't understand why (explanations and >> alternative workarounds welcome). > > One workaround is just to move the INSTALL file to INSTALL.txt. > I've just done that in CVS. It should probably be addressed in the > code too though, to help other people with files called 'INSTALL'. > > Hmm, this was supposed to be addressed by the .PHONY line. AFAICT, .PHONY is GNU make special, not supported by Microsoft NMAKE. May not be supported other makes also. Ditto for .DEFAULT. > According to > http://www.bell-labs.com/project/nmake/faq/gmake.html ... Alas, that is Lucent NMAKE, no relation to Microsoft NMAKE! From http://www.bell-labs.com/project/nmake/faq/MS.html: "Microsoft also has a development tool called nmake. The Microsoft nmake has no relation to Lucent nmake and the two should not be confused. The two tools are not compatible ..." Here is a URL for Microsoft NMAKE: http://msdn.microsoft.com/library/default.asp? rl=/library/en-us/vcug98/html/_asug_dot_directives.asp and I can find no mention of .PHONY or .DEFAULT. I think we need to solve this problem in a lowest common denominator way without relying on GNU make extensions. Untested, but I think something like the following should work everywhere: all : force_do_it $^X .\Build realclean : force_do_it $^X .\Build realclean $^X -e unlink -e shift Makefile force_do_it : build : force_do_it $^X .\Build build clean : force_do_it $^X .\Build clean ... with a line for every valid target Note the use of the dummy target "force_do_it" to force the action even if a file with the same name exists; I think this trick should work everywhere. I hope when you are generating the Makefile you know all valid targets (via "known_actions" method?), so it should be fairly easy to generate something like the above (?). /-\ http://mobile.yahoo.com.au - Yahoo! Mobile - Check & compose your email via SMS on your Telstra or Vodafone mobile. |
|
From: Ken W. <ke...@ma...> - 2003-06-09 16:24:15
|
Hi Andrew, nice to hear from you again. On Sunday, June 8, 2003, at 09:15 PM, Andrew Savige wrote: > I tried installing Module::Build 0.18_02 on Windows XP, via: > perl Makefile.PL > nmake > nmake test > nmake install > but, alas, the "nmake test" step failed with: > "Don't know how to to make test" > It seems that Windows NMAKE does not like .DEFAULT very much (?). > Please bear in mind that I am a bit of a make ignoramus. I am too, unfortunately. It might just be that the $@ variable needs to be written as $(@) though - does that help? (See below.) > > There is another problem: the Module::Build distribution contains a > file INSTALL, yet Windows is case insensitive, so a target of > install : > says, annoyingly, "'install' is up-to-date" when you try a > 'nmake install'. Curiously, using a target of: > install :: > seems to fix this, but I don't understand why (explanations and > alternative workarounds welcome). One workaround is just to move the INSTALL file to INSTALL.txt. I've just done that in CVS. It should probably be addressed in the code too though, to help other people with files called 'INSTALL'. > > Anyway, I was able to get it to work on both Windows and Linux by > adding the following 4 lines to sub fake_makefile in Compat.pm, > right after the 'all' target: > > test :: > $^X $build test > install :: > $^X $build install Hmm, this was supposed to be addressed by the .PHONY line. According to http://www.bell-labs.com/project/nmake/faq/gmake.html , maybe we can just use .VIRTUAL when $Config{make} eq 'nmake'. Unfortunately that URL doesn't say anything about .DEFAULT, but it does say that all variables need parentheses in nmake Makefiles. What if you apply the patch below? -Ken --- lib/Module/Build/Compat.pm 15 May 2003 21:28:32 -0000 1.23 +++ lib/Module/Build/Compat.pm 9 Jun 2003 16:12:39 -0000 @@ -115,6 +115,7 @@ sub fake_makefile { my $makefile = $_[1]; my $build = File::Spec->catfile( '.', 'Build' ); + my $phony = $Config{make} =~ /nmake/ ? '.VIRTUAL' : '.PHONY'; return <<"EOF"; all : @@ -123,8 +124,8 @@ $^X $build realclean $^X -e unlink -e shift $makefile .DEFAULT : - $^X $build \$@ -.PHONY : install manifest + $^X $build \$(\@) +$phony : install manifest EOF } |
|
From: <ajs...@ya...> - 2003-06-09 08:00:06
|
This is my current Build.PL, the idea being to essentially to treat
files with a '.eye' suffix the same as those with a '.pm' suffix.
use Module::Build;
my $class = Module::Build->subclass(
class => 'My::Builder',
code => q{
sub find_pm_files {
my $self = shift;
$self->{properties}{pm_files} ||
$self->rscan_dir('lib', qr{\.(?:eye|pm)$});
}
}
);
my $m = $class->new(
module_name => 'Acme::EyeDrops',
license => 'perl',
requires => { perl => '5.005' },
build_requires => { 'Module::Build' => 0.17 }
);
$m->create_build_script;
This no longer works in M::B v0.18_02, failing on "Perl Build" with:
Can't coerce array into hash at G:\Perl\site\lib/Module/Build/Base.pm
line 894.
Should I update the find_pm_files function above or use the new
pm_files attribute?
Is this correct use of the pm_files attribute?
pm_files => { 'lib/Acme/EyeDrops.pm' => 'lib/Acme/EyeDrops.pm',
'lib/Acme/camel.eye' => 'lib/Acme/camel.eye',
# ... and so on
}
Do I have to explicitly list every file or is there some shorthand
to say "treat .eye files the same as .pm files"?
/-\
http://mobile.yahoo.com.au - Yahoo! Mobile
- Check & compose your email via SMS on your Telstra or Vodafone mobile.
|
|
From: <ajs...@ya...> - 2003-06-09 02:15:23
|
I tried installing Module::Build 0.18_02 on Windows XP, via: perl Makefile.PL nmake nmake test nmake install but, alas, the "nmake test" step failed with: "Don't know how to to make test" It seems that Windows NMAKE does not like .DEFAULT very much (?). Please bear in mind that I am a bit of a make ignoramus. There is another problem: the Module::Build distribution contains a file INSTALL, yet Windows is case insensitive, so a target of install : says, annoyingly, "'install' is up-to-date" when you try a 'nmake install'. Curiously, using a target of: install :: seems to fix this, but I don't understand why (explanations and alternative workarounds welcome). Anyway, I was able to get it to work on both Windows and Linux by adding the following 4 lines to sub fake_makefile in Compat.pm, right after the 'all' target: test :: $^X $build test install :: $^X $build install /-\ http://mobile.yahoo.com.au - Yahoo! Mobile - Check & compose your email via SMS on your Telstra or Vodafone mobile. |
|
From: Jeroen L. <cpa...@ca...> - 2003-06-07 00:58:13
|
At 10:04 6-6-2003 -0500, Ken Williams wrote:
>Looks like Module::Signature is failing for you. I think
>Crypt::OpenPGP can't find any keyblocks. How about running
>
> ./Build test test_files=t/signature.t verbose=1
>
>to see if there's any more output? I'm not sure whether that'll help
>or not, but it's worth a shot. Do you know whether Crypt::OpenPGP
>works on its own?
t/signature....1..6
# Running under perl version 5.008 for linux
# Current time local: Sat Jun 7 02:55:32 2003
# Current time GMT: Sat Jun 7 00:55:32 2003
# Using Test.pm version 1.23
Checking whether your kit is complete...
Looks good
Scanning lib/Sample.pm for packages
not ok 1
# Test 1 got: 'Died at
/usr/local/lib/perl5/site_perl/5.8.0/Module/Signature.pm line 455.
' (t/signature.t at line 24)
# Expected: ''
# t/signature.t line 24 is: ok $@, '';
not ok 2
# Failed test 2 in t/signature.t at line 25
# t/signature.t line 25 is: ok -e File::Spec->catfile($build->dist_dir,
'SIGNATURE');
Subroutine Module::Signature::sign redefined at t/signature.t line 32.
Subroutine Module::Build::Base::ACTION_distmeta redefined at t/signature.t
line 33.
Deleting Sample-0.01
ok 3
ok 4
ok 5
Deleting Sample-0.01
ok 6
FAILED tests 1-2
Failed 2/6 tests, 66.67% okay
Failed Test Stat Wstat Total Fail Failed List of Failed
-------------------------------------------------------------------------------
t/signature.t 6 2 33.33% 1-2
Failed 1/1 test scripts, 0.00% okay. 2/6 subtests failed, 66.67% okay.
Module::Signature seems to be working fine though. The version installed is
0.22.
I believe it is indeed working without external programs.
Jeroen
>>Summary of my perl5 (revision 5.0 version 8 subversion 0)
>>configuration:
>> Platform:
>> osname=linux, osvers=2.2.16c32_iii, archname=i586-linux
>> uname='linux www.arens.nl 2.2.16c32_iii #1 fri nov 9 21:54:54 pst
>>2001 i586 unknown '
>> config_args='-Uinstallusrbinperl -ds'
>> hint=recommended, useposix=true, d_sigaction=define
>> usethreads=undef use5005threads=undef useithreads=undef
>>usemultiplicity=undef
>> useperlio=define d_sfio=undef uselargefiles=define usesocks=undef
>> use64bitint=undef use64bitall=undef uselongdouble=undef
>> usemymalloc=n, bincompat5005=undef
>> Compiler:
>> cc='cc', ccflags ='-fno-strict-aliasing -I/usr/local/include
>>-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/include/gdbm',
>> optimize='-O3',
>> cppflags='-fno-strict-aliasing -I/usr/local/include
>>-I/usr/include/gdbm'
>> ccversion='', gccversion='2.95.3 20010315 (release)',
>>gccosandvers=''
>> intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=1234
>> d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=12
>> ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='off_t',
>>lseeksize=8
>> alignbytes=4, prototype=define
>> Linker and Libraries:
>> ld='cc', ldflags =' -L/usr/local/lib'
>> libpth=/usr/local/lib /lib /usr/lib
>> libs=-lnsl -lndbm -lgdbm -ldb -ldl -lm -lc -lposix -lcrypt -lutil
>> perllibs=-lnsl -ldl -lm -lc -lposix -lcrypt -lutil
>> libc=/lib/libc-2.1.3.so, so=so, useshrplib=false, libperl=libperl.a
>> gnulibc_version='2.1.3'
>> Dynamic Linking:
>> dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef,
>>ccdlflags='-rdynamic'
>> cccdlflags='-fpic', lddlflags='-shared -L/usr/local/lib'
|
|
From: Ken W. <ke...@ma...> - 2003-06-06 15:04:30
|
[cc-ing to Module::Build list] Hi Jeroen, Looks like Module::Signature is failing for you. I think Crypt::OpenPGP can't find any keyblocks. How about running ./Build test test_files=t/signature.t verbose=1 to see if there's any more output? I'm not sure whether that'll help or not, but it's worth a shot. Do you know whether Crypt::OpenPGP works on its own? -Ken On Friday, June 6, 2003, at 09:48 AM, Jeroen Latour wrote: > This distribution has been tested as part of the cpan-testers > effort to test as many new uploads to CPAN as possible. See > http://testers.cpan.org/ > > Please cc any replies to cpa...@pe... to keep other > test volunteers informed and to prevent any duplicate effort. > > -- > This is an error report generated automatically by CPANPLUS, > version 0.042. > > Below is the error stack during 'make test': > > /home/local/bin/perl5.8.0 ./Build test > t/basic.........ok > t/compat........ok > t/runthrough....ok > t/signature.....# Test 1 got: 'Died at > /usr/local/lib/perl5/site_perl/5.8.0/Module/Signature.pm line 455. > ' (t/signature.t at line 24) > # Expected: '' > # t/signature.t line 24 is: ok $@, ''; > # Failed test 2 in t/signature.t at line 25 > # t/signature.t line 25 is: ok -e > File::Spec->catfile($build->dist_dir, 'SIGNATURE'); > Subroutine Module::Signature::sign redefined at t/signature.t line 32. > Subroutine Module::Build::Base::ACTION_distmeta redefined at > t/signature.t line 33. > FAILED tests 1-2 > Failed 2/6 tests, 66.67% okay > t/xs............ok > Failed Test Stat Wstat Total Fail Failed List of Failed > ----------------------------------------------------------------------- > ------------------------------------------------------------ > t/signature.t 6 2 33.33% 1-2 > Failed 1/5 test scripts, 80.00% okay. 2/62 subtests failed, 96.77% > okay. > make: *** [test] Error 29 > > > Additional comments: > > -- > > Summary of my perl5 (revision 5.0 version 8 subversion 0) > configuration: > Platform: > osname=linux, osvers=2.2.16c32_iii, archname=i586-linux > uname='linux www.arens.nl 2.2.16c32_iii #1 fri nov 9 21:54:54 pst > 2001 i586 unknown ' > config_args='-Uinstallusrbinperl -ds' > hint=recommended, useposix=true, d_sigaction=define > usethreads=undef use5005threads=undef useithreads=undef > usemultiplicity=undef > useperlio=define d_sfio=undef uselargefiles=define usesocks=undef > use64bitint=undef use64bitall=undef uselongdouble=undef > usemymalloc=n, bincompat5005=undef > Compiler: > cc='cc', ccflags ='-fno-strict-aliasing -I/usr/local/include > -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/include/gdbm', > optimize='-O3', > cppflags='-fno-strict-aliasing -I/usr/local/include > -I/usr/include/gdbm' > ccversion='', gccversion='2.95.3 20010315 (release)', > gccosandvers='' > intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=1234 > d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=12 > ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='off_t', > lseeksize=8 > alignbytes=4, prototype=define > Linker and Libraries: > ld='cc', ldflags =' -L/usr/local/lib' > libpth=/usr/local/lib /lib /usr/lib > libs=-lnsl -lndbm -lgdbm -ldb -ldl -lm -lc -lposix -lcrypt -lutil > perllibs=-lnsl -ldl -lm -lc -lposix -lcrypt -lutil > libc=/lib/libc-2.1.3.so, so=so, useshrplib=false, libperl=libperl.a > gnulibc_version='2.1.3' > Dynamic Linking: > dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, > ccdlflags='-rdynamic' > cccdlflags='-fpic', lddlflags='-shared -L/usr/local/lib' > |
|
From: Ken W. <ke...@ma...> - 2003-06-03 04:33:33
|
On Sunday, June 1, 2003, at 06:31 PM, Ken Williams wrote: > > Several of the other problems (but maybe not all) have already been > fixed in CVS since 0.18_01, so I think it's time to release a 0.18_02 > for people to test out. I'll do so now. PAUSE was down earlier, but I've just made the 0.18_02 release. It's making its way through CPAN, or available at https://sourceforge.net/projects/module-build/ . Testing of it is most welcome. -Ken |
|
From: Ken W. <ke...@ma...> - 2003-06-01 23:47:47
|
On Sunday, June 1, 2003, at 06:42 PM, Ron Savage wrote: > On Sun, 1 Jun 2003 18:31:04 -0500, Ken Williams wrote: >> Several of the other problems (but maybe not all) have already been >> fixed in CVS since 0.18_01, so I think it's time to release a >> 0.18_02 >> for people to test out. I'll do so now. > > Good. And, umm, is 0.19 not acceptable for some reason? Yeah, these are pre-releases toward an eventual 0.19. > Also, I install all Perl modules - if possible - via a home-grown > CGI script. It does not work with your setup - perl Build X - so I'm > wondering if there is some way (if I don't continue to use nmake X) > to auto-detect the fact you operate differently. Any ideas? I'm > hoping nmake X will continue to work, except for install scripts > which ask questions :-(. If people provide Makefile.PLs in their distributions, which Module::Build::Compat can help them them create, then 'nmake' should work fine. -Ken |
|
From: Ken W. <ke...@ma...> - 2003-06-01 23:31:15
|
Hi Ron,
I think the t/compat.t tests are failing because I'm just using "make"
instead of $Config{make} (which on Win32 is usually "nmake", right?) in
that test file. I'll make the fix in CVS.
Several of the other problems (but maybe not all) have already been
fixed in CVS since 0.18_01, so I think it's time to release a 0.18_02
for people to test out. I'll do so now.
-Ken
> From: Ron Savage <ro...@sa...>
> Date: Sat May 31, 2003 10:24:35 PM US/Central
> To: Ken Williams <ke...@ma...>
> Subject: Module::Build V 0.18_01
>
> Hi Ken
>
> I've just managed to install this module under Win2K, and would like
> to report a few things:
>
> 1) The docs state that the mantra
> shell>perl Makefile.PL
> shell>nmake
> shell>nmake test
> shell>nmake install
> should work, but it doesn't. Log below.
>
> 2) I notice in the output strings like:
> make: C:Perlbinperl.exe: Command not found
> wherein the slashes of one sort or another have been lost.
>
> -----><8-----
> C:\Perl-modules>cd Module-Build-0.18_01
>
> C:\Perl-modules\Module-Build-0.18_01>perl Makefile.PL
> C:\Perl\bin\perl.exe Build.PL
> Checking whether your kit is complete...
> Looks good
> Creating new 'Build' script for 'Module-Build' version '0.18_01'
>
> C:\Perl-modules\Module-Build-0.18_01>nmake
>
> Microsoft (R) Program Maintenance Utility Version 6.00.8168.0
> Copyright (C) Microsoft Corp 1988-1998. All rights reserved.
>
> C:\Perl\bin\perl.exe .\Build
> lib/Module/Build/Platform/Unix.pm ->
> blib\lib/Module/Build/Platform/Unix.pm
> lib/Module/Build/Platform/darwin.pm ->
> blib\lib/Module/Build/Platform/darwin.pm
> lib/Module/Build/Platform/MacOS.pm ->
> blib\lib/Module/Build/Platform/MacOS.pm
> lib/Module/Build/Platform/Amiga.pm ->
> blib\lib/Module/Build/Platform/Amiga.pm
> lib/Module/Build/Compat.pm -> blib\lib/Module/Build/Compat.pm
> lib/Module/Build/Base.pm -> blib\lib/Module/Build/Base.pm
> lib/Module/Build/Platform/VMS.pm ->
> blib\lib/Module/Build/Platform/VMS.pm
> lib/Module/Build/Platform/MPEiX.pm ->
> blib\lib/Module/Build/Platform/MPEiX.pm
> lib/Module/Build/Platform/EBCDIC.pm ->
> blib\lib/Module/Build/Platform/EBCDIC.pm
> lib/Module/Build/Platform/RiscOS.pm ->
> blib\lib/Module/Build/Platform/RiscOS.pm
> lib/Module/Build/PPMMaker.pm -> blib\lib/Module/Build/PPMMaker.pm
> lib/Module/Build.pm -> blib\lib/Module/Build.pm
> lib/Module/Build/Platform/Default.pm ->
> blib\lib/Module/Build/Platform/Default.p
> m
> lib/Module/Build/Platform/VOS.pm ->
> blib\lib/Module/Build/Platform/VOS.pm
> lib/Module/Build/Platform/Windows.pm ->
> blib\lib/Module/Build/Platform/Windows.p
> m
>
> C:\Perl-modules\Module-Build-0.18_01>nmake test
>
> Microsoft (R) Program Maintenance Utility Version 6.00.8168.0
> Copyright (C) Microsoft Corp 1988-1998. All rights reserved.
>
> NMAKE : fatal error U1073: don't know how to make 'test'
> Stop.
>
> C:\Perl-modules\Module-Build-0.18_01>nmake install
>
> Microsoft (R) Program Maintenance Utility Version 6.00.8168.0
> Copyright (C) Microsoft Corp 1988-1998. All rights reserved.
>
> 'install' is up-to-date
>
> C:\Perl-modules\Module-Build-0.18_01>dir
> Volume in drive C has no label.
> Volume Serial Number is 8CCA-DAF7
>
> Directory of C:\Perl-modules\Module-Build-0.18_01
>
> 01/06/2003 01:12p <DIR> .
> 01/06/2003 01:12p <DIR> ..
> 01/06/2003 01:12p <DIR> _build
> 01/06/2003 01:12p <DIR> blib
> 01/06/2003 01:12p 676 Build
> 01/06/2003 01:12p 1,030 Build.PL
> 01/06/2003 01:12p 25,978 Changes
> 01/06/2003 01:12p 1,038 INSTALL
> 01/06/2003 01:12p <DIR> lib
> 01/06/2003 01:12p 456 Makefile
> 01/06/2003 01:12p 343 Makefile.PL
> 01/06/2003 01:12p 880 MANIFEST
> 01/06/2003 01:12p 2,155 META.yml
> 01/06/2003 01:12p 40,390 README
> 01/06/2003 01:12p <DIR> t
> 9 File(s) 72,946 bytes
> 6 Dir(s) 25,438,863,360 bytes free
>
> C:\Perl-modules\Module-Build-0.18_01>perl Build.PL
> Checking whether your kit is complete...
> Looks good
> Deleting Build
> Removed previous script 'Build'
> Creating new 'Build' script for 'Module-Build' version '0.18_01'
>
> C:\Perl-modules\Module-Build-0.18_01>perl Build test
> t/basic.........ok
> t/compat........ok 3/11make: C:Perlbinperl.exe: Command not found
> t/compat........NOK 4# Failed test 4 in t/compat.t at line 28
> # t/compat.t line 28 is: ok $build->do_system('make',
> 'realclean');
> t/compat........ok 6/11make: C:Perlbinperl.exe: Command not found
> t/compat........NOK 7# Failed test 7 in t/compat.t at line 28 fail #2
> t/compat........ok 9/11Makefile:293: *** target pattern contains no
> `%'. Stop.
> t/compat........NOK 10# Failed test 10 in t/compat.t at line 28 fail
> #3
> t/compat........FAILED tests 4, 7, 10
> Failed 3/11 tests, 72.73% okay
> t/runthrough....NOK 17# Test 17 got: 'mkdir
> C:\Perl-modules\Module-Build-0.18_01
> \t\install_test\C:\: No such file or directory at
> C:\Perl\lib/ExtUtils/Install.p
> m line 80
> ' (t/runthrough.t at line 100)
> # Expected: ''
> # t/runthrough.t line 100 is: ok $@, '';
> t/runthrough....NOK 18# Failed test 18 in t/runthrough.t at line 104
> # t/runthrough.t line 104 is: ok -e $install_to;
> t/runthrough....NOK 19# Test 19 got: 'mkdir
> C:\Perl-modules\Module-Build-0.18_01
> \t\install_test\C:\: No such file or directory at
> C:\Perl\lib/ExtUtils/Install.p
> m line 80
> ' (t/runthrough.t at line 107)
> # Expected: ''
> # t/runthrough.t line 107 is: ok $@, '';
> t/runthrough....NOK 20# Failed test 20 in t/runthrough.t at line 111
> # t/runthrough.t line 111 is: ok -e $install_to;
> t/runthrough....FAILED tests 17-20
> Failed 4/22 tests, 81.82% okay
> t/signature.....Bareword "File::Spec" not allowed while "strict subs"
> in use at
> t/signature.t line 16.
> Execution of t/signature.t aborted due to compilation errors.
> t/signature.....dubious
> Test returned status 255 (wstat 65280, 0xff00)
> t/xs............ok
> Failed Test Stat Wstat Total Fail Failed List of Failed
> ----------------------------------------------------------------------
> ---------
> t/compat.t 11 3 27.27% 4 7 10
> t/runthrough.t 22 4 18.18% 17-20
> t/signature.t 255 65280 ?? ?? % ??
> Failed 3/5 test scripts, 40.00% okay. 7/56 subtests failed, 87.50%
> okay.
>
> C:\Perl-modules\Module-Build-0.18_01>perl Build install
> Installing C:\Perl\site\lib\Module\Build.pm
> Installing C:\Perl\site\lib\Module\Build\Compat.pm
> Installing C:\Perl\site\lib\Module\Build\Base.pm
> Installing C:\Perl\site\lib\Module\Build\PPMMaker.pm
> Installing C:\Perl\site\lib\Module\Build\Platform\Unix.pm
> Installing C:\Perl\site\lib\Module\Build\Platform\darwin.pm
> Installing C:\Perl\site\lib\Module\Build\Platform\MacOS.pm
> Installing C:\Perl\site\lib\Module\Build\Platform\Amiga.pm
> Installing C:\Perl\site\lib\Module\Build\Platform\VMS.pm
> Installing C:\Perl\site\lib\Module\Build\Platform\MPEiX.pm
> Installing C:\Perl\site\lib\Module\Build\Platform\EBCDIC.pm
> Installing C:\Perl\site\lib\Module\Build\Platform\RiscOS.pm
> Installing C:\Perl\site\lib\Module\Build\Platform\Default.pm
> Installing C:\Perl\site\lib\Module\Build\Platform\VOS.pm
> Installing C:\Perl\site\lib\Module\Build\Platform\Windows.pm
>
> C:\Perl-modules\Module-Build-0.18_01>
> -----><8-----
>
> --
> Cheers
> Ron Savage, ro...@sa... on 01/06/2003
> http://savage.net.au/index.html
|
|
From: Ken W. <ke...@ma...> - 2003-06-01 22:46:27
|
Forwarding this message to the list until I get a chance to reply...
-Ken
Begin forwarded message:
From: Ron Savage <ro...@sa...>
Date: Sat May 31, 2003 10:24:35 PM US/Central
To: Ken Williams <ke...@ma...>
Subject: Module::Build V 0.18_01
Hi Ken
I've just managed to install this module under Win2K, and would like
to report a few things:
1) The docs state that the mantra
shell>perl Makefile.PL
shell>nmake
shell>nmake test
shell>nmake install
should work, but it doesn't. Log below.
2) I notice in the output strings like:
make: C:Perlbinperl.exe: Command not found
wherein the slashes of one sort or another have been lost.
-----><8-----
C:\Perl-modules>cd Module-Build-0.18_01
C:\Perl-modules\Module-Build-0.18_01>perl Makefile.PL
C:\Perl\bin\perl.exe Build.PL
Checking whether your kit is complete...
Looks good
Creating new 'Build' script for 'Module-Build' version '0.18_01'
C:\Perl-modules\Module-Build-0.18_01>nmake
Microsoft (R) Program Maintenance Utility Version 6.00.8168.0
Copyright (C) Microsoft Corp 1988-1998. All rights reserved.
C:\Perl\bin\perl.exe .\Build
lib/Module/Build/Platform/Unix.pm ->
blib\lib/Module/Build/Platform/Unix.pm
lib/Module/Build/Platform/darwin.pm ->
blib\lib/Module/Build/Platform/darwin.pm
lib/Module/Build/Platform/MacOS.pm ->
blib\lib/Module/Build/Platform/MacOS.pm
lib/Module/Build/Platform/Amiga.pm ->
blib\lib/Module/Build/Platform/Amiga.pm
lib/Module/Build/Compat.pm -> blib\lib/Module/Build/Compat.pm
lib/Module/Build/Base.pm -> blib\lib/Module/Build/Base.pm
lib/Module/Build/Platform/VMS.pm ->
blib\lib/Module/Build/Platform/VMS.pm
lib/Module/Build/Platform/MPEiX.pm ->
blib\lib/Module/Build/Platform/MPEiX.pm
lib/Module/Build/Platform/EBCDIC.pm ->
blib\lib/Module/Build/Platform/EBCDIC.pm
lib/Module/Build/Platform/RiscOS.pm ->
blib\lib/Module/Build/Platform/RiscOS.pm
lib/Module/Build/PPMMaker.pm -> blib\lib/Module/Build/PPMMaker.pm
lib/Module/Build.pm -> blib\lib/Module/Build.pm
lib/Module/Build/Platform/Default.pm ->
blib\lib/Module/Build/Platform/Default.p
m
lib/Module/Build/Platform/VOS.pm ->
blib\lib/Module/Build/Platform/VOS.pm
lib/Module/Build/Platform/Windows.pm ->
blib\lib/Module/Build/Platform/Windows.p
m
C:\Perl-modules\Module-Build-0.18_01>nmake test
Microsoft (R) Program Maintenance Utility Version 6.00.8168.0
Copyright (C) Microsoft Corp 1988-1998. All rights reserved.
NMAKE : fatal error U1073: don't know how to make 'test'
Stop.
C:\Perl-modules\Module-Build-0.18_01>nmake install
Microsoft (R) Program Maintenance Utility Version 6.00.8168.0
Copyright (C) Microsoft Corp 1988-1998. All rights reserved.
'install' is up-to-date
C:\Perl-modules\Module-Build-0.18_01>dir
Volume in drive C has no label.
Volume Serial Number is 8CCA-DAF7
Directory of C:\Perl-modules\Module-Build-0.18_01
01/06/2003 01:12p <DIR> .
01/06/2003 01:12p <DIR> ..
01/06/2003 01:12p <DIR> _build
01/06/2003 01:12p <DIR> blib
01/06/2003 01:12p 676 Build
01/06/2003 01:12p 1,030 Build.PL
01/06/2003 01:12p 25,978 Changes
01/06/2003 01:12p 1,038 INSTALL
01/06/2003 01:12p <DIR> lib
01/06/2003 01:12p 456 Makefile
01/06/2003 01:12p 343 Makefile.PL
01/06/2003 01:12p 880 MANIFEST
01/06/2003 01:12p 2,155 META.yml
01/06/2003 01:12p 40,390 README
01/06/2003 01:12p <DIR> t
9 File(s) 72,946 bytes
6 Dir(s) 25,438,863,360 bytes free
C:\Perl-modules\Module-Build-0.18_01>perl Build.PL
Checking whether your kit is complete...
Looks good
Deleting Build
Removed previous script 'Build'
Creating new 'Build' script for 'Module-Build' version '0.18_01'
C:\Perl-modules\Module-Build-0.18_01>perl Build test
t/basic.........ok
t/compat........ok 3/11make: C:Perlbinperl.exe: Command not found
t/compat........NOK 4# Failed test 4 in t/compat.t at line 28
# t/compat.t line 28 is: ok $build->do_system('make',
'realclean');
t/compat........ok 6/11make: C:Perlbinperl.exe: Command not found
t/compat........NOK 7# Failed test 7 in t/compat.t at line 28 fail #2
t/compat........ok 9/11Makefile:293: *** target pattern contains no
`%'. Stop.
t/compat........NOK 10# Failed test 10 in t/compat.t at line 28 fail
#3
t/compat........FAILED tests 4, 7, 10
Failed 3/11 tests, 72.73% okay
t/runthrough....NOK 17# Test 17 got: 'mkdir
C:\Perl-modules\Module-Build-0.18_01
\t\install_test\C:\: No such file or directory at
C:\Perl\lib/ExtUtils/Install.p
m line 80
' (t/runthrough.t at line 100)
# Expected: ''
# t/runthrough.t line 100 is: ok $@, '';
t/runthrough....NOK 18# Failed test 18 in t/runthrough.t at line 104
# t/runthrough.t line 104 is: ok -e $install_to;
t/runthrough....NOK 19# Test 19 got: 'mkdir
C:\Perl-modules\Module-Build-0.18_01
\t\install_test\C:\: No such file or directory at
C:\Perl\lib/ExtUtils/Install.p
m line 80
' (t/runthrough.t at line 107)
# Expected: ''
# t/runthrough.t line 107 is: ok $@, '';
t/runthrough....NOK 20# Failed test 20 in t/runthrough.t at line 111
# t/runthrough.t line 111 is: ok -e $install_to;
t/runthrough....FAILED tests 17-20
Failed 4/22 tests, 81.82% okay
t/signature.....Bareword "File::Spec" not allowed while "strict subs"
in use at
t/signature.t line 16.
Execution of t/signature.t aborted due to compilation errors.
t/signature.....dubious
Test returned status 255 (wstat 65280, 0xff00)
t/xs............ok
Failed Test Stat Wstat Total Fail Failed List of Failed
----------------------------------------------------------------------
---------
t/compat.t 11 3 27.27% 4 7 10
t/runthrough.t 22 4 18.18% 17-20
t/signature.t 255 65280 ?? ?? % ??
Failed 3/5 test scripts, 40.00% okay. 7/56 subtests failed, 87.50%
okay.
C:\Perl-modules\Module-Build-0.18_01>perl Build install
Installing C:\Perl\site\lib\Module\Build.pm
Installing C:\Perl\site\lib\Module\Build\Compat.pm
Installing C:\Perl\site\lib\Module\Build\Base.pm
Installing C:\Perl\site\lib\Module\Build\PPMMaker.pm
Installing C:\Perl\site\lib\Module\Build\Platform\Unix.pm
Installing C:\Perl\site\lib\Module\Build\Platform\darwin.pm
Installing C:\Perl\site\lib\Module\Build\Platform\MacOS.pm
Installing C:\Perl\site\lib\Module\Build\Platform\Amiga.pm
Installing C:\Perl\site\lib\Module\Build\Platform\VMS.pm
Installing C:\Perl\site\lib\Module\Build\Platform\MPEiX.pm
Installing C:\Perl\site\lib\Module\Build\Platform\EBCDIC.pm
Installing C:\Perl\site\lib\Module\Build\Platform\RiscOS.pm
Installing C:\Perl\site\lib\Module\Build\Platform\Default.pm
Installing C:\Perl\site\lib\Module\Build\Platform\VOS.pm
Installing C:\Perl\site\lib\Module\Build\Platform\Windows.pm
C:\Perl-modules\Module-Build-0.18_01>
-----><8-----
--
Cheers
Ron Savage, ro...@sa... on 01/06/2003
http://savage.net.au/index.html
|
|
From: Ken W. <ke...@ma...> - 2003-05-27 15:34:03
|
On Tuesday, May 27, 2003, at 09:43 AM, Ken Williams wrote: > Hi list, > > I got the following failure report from a Win32 user (I've snipped out > the boring parts). The two problems are: > > 1) 'destdir' doesn't work properly when the installation directories > and the destdir parameter are both given as absolute paths with volume > letters. Note that it's trying to create > "E:\new\Module-Build- > 0.18_01\t\install_test\C:\Perl\site\lib\Sample.pm", which clearly > doesn't make sense. What should be the correct behavior in this case? > Just drop the the volume from the second one, using > File::Spec->splitpath() or something? > > 2) Something's happening in the t/compat.t test that's causing 'make > realclean' to fail. That usually means some file is still open when > we try to delete it. Not sure whether that's happening here, or if it > is, which file is open. I've checked in a fix for the 'destdir' problem. Not sure yet what's causing the other problem, but I have to leave it for now to do other stuff. I also don't have a Win32 box to try it on - anyone else able to track it down? -Ken |
|
From: Ken W. <ke...@ma...> - 2003-05-27 14:44:01
|
Hi list, I got the following failure report from a Win32 user (I've snipped out the boring parts). The two problems are: 1) 'destdir' doesn't work properly when the installation directories and the destdir parameter are both given as absolute paths with volume letters. Note that it's trying to create "E:\new\Module-Build- 0.18_01\t\install_test\C:\Perl\site\lib\Sample.pm", which clearly doesn't make sense. What should be the correct behavior in this case? Just drop the the volume from the second one, using File::Spec->splitpath() or something? 2) Something's happening in the t/compat.t test that's causing 'make realclean' to fail. That usually means some file is still open when we try to delete it. Not sure whether that's happening here, or if it is, which file is open. -Ken Begin forwarded message: > From: DH <cra...@ya...> > Date: Tue May 27, 2003 2:49:00 AM US/Central > To: cpa...@pe... > Cc: ke...@ma... > Subject: FAIL Module-Build-0.18_01 MSWin32-x86-multi-thread 4.0 > > This distribution has been tested as part of the cpan-testers > effort to test as many new uploads to CPAN as possible. See > http://testers.cpan.org/ > > Please cc any replies to cpa...@pe... to keep other > test volunteers informed and to prevent any duplicate effort. > > -- > > E:\new\Module-Build-0.18_01>perl Build.pl > Checking whether your kit is complete... > Looks good > Deleting Build > Removed previous script 'Build' > Creating new 'Build' script for 'Module-Build' version '0.18_01' > > E:\new\Module-Build-0.18_01>perl Build test verbose=1 > [snip] > t/compat........1..11 > # Running under perl version 5.006001 for MSWin32 > # Win32::BuildNumber 633 > # Current time local: Tue May 27 00:59:39 2003 > # Current time GMT: Tue May 27 07:59:39 2003 > # Using Test.pm version 1.24 > ok 1 > Checking whether your kit is complete... > Looks good > ok 2 > C:\Perl\bin\perl.exe Makefile.PL > C:\Perl\bin\perl.exe Build.PL > Checking whether your kit is complete... > Looks good > Creating new 'Build' script for 'Sample' version '0.01' > ok 3 > make realclean > C:\Perl\bin\perl.exe .\Build realclean > make: *** [realclean] Error 255 > not ok 4 > # Failed test 4 in t/compat.t at line 28 > # t/compat.t line 28 is: ok $build->do_system('make', 'realclean'); > Deleting Makefile.PL > Deleting _build > Deleting Build > ok 5 > C:\Perl\bin\perl.exe Makefile.PL > C:\Perl\bin\perl.exe Build.PL > Checking whether your kit is complete... > Looks good > Creating new 'Build' script for 'Sample' version '0.01' > ok 6 > make realclean > C:\Perl\bin\perl.exe .\Build realclean > make: *** [realclean] Error 255 > not ok 7 > # Failed test 7 in t/compat.t at line 28 fail #2 > Deleting Makefile.PL > Deleting _build > Deleting Build > ok 8 > C:\Perl\bin\perl.exe Makefile.PL > Warning: Guessing NAME [Sample] from current directory name. > Writing Makefile for Sample > ok 9 > make realclean > Makefile:659: *** missing separator. Stop. > not ok 10 > # Failed test 10 in t/compat.t at line 28 fail #3 > Deleting Makefile.PL > ok 11 > FAILED tests 4, 7, 10 > Failed 3/11 tests, 72.73% okay > t/runthrough....1..22 > # Running under perl version 5.006001 for MSWin32 > # Win32::BuildNumber 633 > # Current time local: Tue May 27 00:59:40 2003 > # Current time GMT: Tue May 27 07:59:40 2003 > # Using Test.pm version 1.24 > ok 1 > Checking whether your kit is complete... > Looks good > ok 2 > Creating new 'Build' script for 'Sample' version '0.01' > ok 3 > ok 4 > ok 5 > ok 6 > ok 7 > ok 8 > vvvvvvvvvvvvvvvvvvvvv Sample/test.pl output vvvvvvvvvvvvvvvvvvvvv > | lib/Sample.pm -> blib\lib/Sample.pm > | script -> blib\script\script > | C:\Perl\bin\pl2bat.bat < blib\script\script > blib\script\script.bat > | test....1..2 > | # Running under perl version 5.006001 for MSWin32 > | # Win32::BuildNumber 633 > | # Current time local: Tue May 27 00:59:41 2003 > | # Current time GMT: Tue May 27 07:59:41 2003 > | # Using Test.pm version 1.24 > | ok 1 > | $INC{'Module/Build.pm'}: > E:\new\Module-Build-0.18_01\blib\lib/Module/Build.pm > | ok 2 > | ok > | All tests successful. > | Files=1, Tests=2, 0 wallclock secs ( 0.00 cusr + 0.00 csys = 0.00 > CPU) > ^^^^^^^^^^^^^^^^^^^^^ Sample/test.pl output ^^^^^^^^^^^^^^^^^^^^^ > Scanning lib\Sample.pm for packages > C:\Perl\bin\perl.exe Build.PL > Checking whether your kit is complete... > Looks good > Creating new 'Build' script for 'Sample' version '0.01' > C:\Perl\bin\perl.exe Build > lib/Sample.pm -> blib\lib/Sample.pm > script -> blib\script\script > C:\Perl\bin\pl2bat.bat < blib\script\script > blib\script\script.bat > C:\Perl\bin\perl.exe Build test > test....ok > All tests successful. > Files=1, Tests=2, 0 wallclock secs ( 0.00 cusr + 0.00 csys = 0.00 > CPU) > ok 9 > ok 10 > Deleting Sample-0.01 > ok 11 > o# Test 17 got: 'mkdir E:\new\Module-Build-0.18_01\t\install_test\C:\: > Invalid argument at > C:\Perl\lib/ExtUtils/Install.pm line 80 > ' (t/runthrough.t at line 100) > # Expected: '' > # t/runthrough.t line 100 is: ok $@, ''; > k 12 > ok 13 > ok 14 > o# Failed test 18 in t/runthrough.t at line 104 > # t/runthrough.t line 104 is: ok -e $install_to; > # Test 19 got: 'mkdir E:\new\Module-Build-0.18_01\t\install_test\C:\: > Invalid argument at > C:\Perl\lib/ExtUtils/Install.pm line 80 > ' (t/runthrough.t at line 107) > k 15 > # rewritten shebang? > #!C:\Perl\bin\perl.exe -w > o# Expected: '' > # t/runthrough.t line 107 is: ok $@, ''; > # Failed test 20 in t/runthrough.t at line 111 > k 16 > not ok 17 > Should have installed to > E:\new\Module-Build-0.18_01\t\install_test\C:\Perl\site\lib\Sample.pm > n# t/runthrough.t line 111 is: ok -e $install_to; > ot ok 18 > not ok 19 > Should have installed to > E:\new\Module-Build-0.18_01\t\install_test\C:\Perl\lib\Sample.pm > not ok 20 > ok 21 > Deleting Sample-0.01 > Deleting Sample.ppd > Deleting blib > Deleting save_out > Deleting _build > Deleting Build > ok 22 > FAILED tests 17-20 > Failed 4/22 tests, 81.82% okay > [snip] > Failed Test Stat Wstat Total Fail Failed List of Failed > ----------------------------------------------------------------------- > -------- > t/compat.t 11 3 27.27% 4 7 10 > t/runthrough.t 22 4 18.18% 17-20 > 1 test skipped. |
|
From: Ken W. <ke...@ma...> - 2003-05-26 14:14:06
|
On Monday, May 26, 2003, at 07:03 AM, Scott Bolte wrote: > On Sun, 25 May 2003 21:37:52 -0500, Ken Williams wrote: >> >> I'm not sure I understand - you've got a #!/perl line at the beginning >> of a module file? That's kind of weird, usually you do that in >> scripts, not modules. Or is there some other way to turn on >> taint-checking that I don't know about? > > You are right it is weird. Now that I think about it, it's > also a no-op. I forgot that in the hand built makefiles I'm > trying to replace I explicitly add -T when I invoke each > module's self test. (e.g. perl -T -I. -MX -eX::_self_test). > > I now see Test::Harness will observe -T (or -t) if that is > the first line of a test script. I'll migrate to that and > remove the -T lines in the modules proper. Sounds like a good solution. Glad it's worked out. -Ken |