module-build-general Mailing List for Module::Build (Page 170)
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: Dominic M. <do...@se...> - 2003-05-11 18:14:59
|
I've just found an interesting problem. If you don't already have a module installed, then Module::Info can fail when you do "make dist". For example, I've just found that I don't have Test::XML on my workstation. This shouldn't be a problem, but when I tried to do "make dist", I got this error message: Scanning lib/Test/XML/SAX.pm for packages B::Module::Info,packages use failed with 2 saying: Can't locate Test/XML.pm in @INC (@INC contains: /home/dom/libexec/perl /home/dom/libs /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 .) at /home/dom/work/Test-XML/lib/Test/XML/SAX.pm line 9. Test::XML::SAX is a module that depends upon Test::XML, both of which are included in my distribution. I would guess that to fix this, you probably need to include blib/lib and blib/arch in @INC somehow. However, this would mean that you need to run a build before you make a dist. I'm not entirely sure that this is the right answer, though... Just to confirm, I can manually fix the problem by doing: % perl Build % env PERL5LIB="$PWD/blib/arch:$PWD/blib/lib" perl Build dist -Dom |
|
From: jk <bil...@fa...> - 2003-05-10 22:55:11
|
Ken Williams wrote:
>
> On Friday, May 9, 2003, at 05:05 PM, jk wrote:
>
>> 1) When I ran "./Build test" I got a couple of tests fail,
>> indicating they could not find Module::Info.pm. I do have it
>> installed locally (in the /home/me/data/perl58/ tree), and I do
>> have the PERL5LIB environmental variable set to indicate it... is it
>> possible that Module::Build doesn't know about PERL5LIB and doesn't
>> add it to the @INC array?
>
>
> Nope, not possible - but I did figure out what the problem is here.
> I'd seen this problem show up in a couple different ways, and the
> reason is that we chdir() a few times in the testing code, and any
> relative paths in @INC will be messed up if we load modules after that.
>
> The fix for this, which I've applied in CVS, is to convert all the
> @INC paths to absolute paths.
I may be misunderstanding you--if I am, just ignore this--but the paths
specified in my PERL5LIB aren't relative. And as you can see, they
didn't appear to be getting added to @INC, at least that isn't indicated
in the output below.
===========screen output starts here==============
[me@mcc Module-Build-0.18]$ ./Build test
t/basic.........ok
t/runthrough....ok 4/13B::Module::Info,packages use failed with 2 saying:
Can't locate B/Module/Info.pm in @INC (@INC contains:
/home/me/.cpan/sources/authors/id/K/KW/KWILLIAMS/Module-Build-0.18/blib/lib
/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
/usr/lib/perl5/5.8.0/i386-linux-thread-multi /usr/lib/perl5/5.8.0 .) at
(eval 1) line 18.
BEGIN failed--compilation aborted at (eval 1) line 18.
BEGIN failed--compilation aborted.
t/runthrough....ok 6/13B::Module::Info,packages use failed with 2 saying:
Can't locate B/Module/Info.pm in @INC (@INC contains:
/home/me/.cpan/sources/authors/id/K/KW/KWILLIAMS/Module-Build-0.18/blib/lib
/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
/usr/lib/perl5/5.8.0/i386-linux-thread-multi /usr/lib/perl5/5.8.0 .) at
(eval 1) line 18.
[me@mcc me]$ env | grep PERL
PERL5LIB=/home/me/data/perl58/lib/perl5/site_perl/5.8.0:/home/me/data/perl58/lib/perl5/site_perl/5.8.0/i386-linux-thread-multi:/home/me/data/perl58/lib/perl5/5.8.0:/home/me/data/perl58/lib/perl5/5.8.0/i386-linux-thread-multi
[me@mcc me]$
============end of screen output================
>
>
>> 2) I originally tried to install Module::Build and various other
>> modules using the CPAN.pm module, but this didn't work because the
>> version of CPAN.pm I have doesn't know anything about using Build.pm
>> rather than make. It would be good to give the CPAN.pm people a
>> heads up about Build.pm so they can support it (this may already
>> have been done).
>
>
> Yeah, as Dave said, this should have worked fine. What happened?
>
>
>
Actually, the CPAN problems could just be due to it not using the
"config=" string prior to the "sitelib=" string on the command line and
problem 1 above.
I tried it again using CPAN and here are the results below. Note that I
am using CPAN version 1.61, I don't know if the Module::Build problems
still exist in the most recent version of CPAN.
The problems appear to be: 1) a couple of the tests fail, and it looks
like the @INC doesn't include the paths from my PERL5LIB variable (same
as above); and
2) It tries to install into the system directory rather than the
local directory as specified in my CPAN config file (other modules
install successfully to the local directory).
Hope this helps.
============cpan output below===========
[me@mcc me]$ !974
perl -MCPAN -e shell
cpan shell -- CPAN exploration and modules installation (v1.61)
ReadLine support available (try 'install Bundle::CPAN')
cpan> install Module::Build
CPAN: Storable loaded ok
Going to read /home/me/.cpan/Metadata
Database was generated on Thu, 08 May 2003 14:13:17 GMT
CPAN: LWP::UserAgent loaded ok
Fetching with LWP:
ftp://cpan.digisle.net/pub/CPAN/authors/01mailrc.txt.gz
Going to read /home/me/.cpan/sources/authors/01mailrc.txt.gz
Fetching with LWP:
ftp://cpan.digisle.net/pub/CPAN/modules/02packages.details.txt.gz
Going to read /home/me/.cpan/sources/modules/02packages.details.txt.gz
Database was generated on Sat, 10 May 2003 13:13:28 GMT
There's a new CPAN.pm version (v1.70) available!
[Current version is v1.61]
You might want to try
install Bundle::CPAN
reload cpan
without quitting the current session. It should be a seamless upgrade
while we are running...
Fetching with LWP:
ftp://cpan.digisle.net/pub/CPAN/modules/03modlist.data.gz
Going to read /home/me/.cpan/sources/modules/03modlist.data.gz
Going to write /home/me/.cpan/Metadata
Running install for module Module::Build
Running make for K/KW/KWILLIAMS/Module-Build-0.18.tar.gz
CPAN: Digest::MD5 loaded ok
Checksum for
/home/me/.cpan/sources/authors/id/K/KW/KWILLIAMS/Module-Build-0.18.tar.gz ok
Scanning cache /home/me/.cpan/build for sizes
Module-Build-0.18/
Module-Build-0.18/Build.PL
Module-Build-0.18/Changes
Module-Build-0.18/INSTALL
Module-Build-0.18/lib/
Module-Build-0.18/lib/Module/
Module-Build-0.18/lib/Module/Build/
Module-Build-0.18/lib/Module/Build/Base.pm
Module-Build-0.18/lib/Module/Build/Compat.pm
Module-Build-0.18/lib/Module/Build/Platform/
Module-Build-0.18/lib/Module/Build/Platform/Amiga.pm
Module-Build-0.18/lib/Module/Build/Platform/darwin.pm
Module-Build-0.18/lib/Module/Build/Platform/Default.pm
Module-Build-0.18/lib/Module/Build/Platform/EBCDIC.pm
Module-Build-0.18/lib/Module/Build/Platform/MacOS.pm
Module-Build-0.18/lib/Module/Build/Platform/MPEiX.pm
Module-Build-0.18/lib/Module/Build/Platform/RiscOS.pm
Module-Build-0.18/lib/Module/Build/Platform/Unix.pm
Module-Build-0.18/lib/Module/Build/Platform/VMS.pm
Module-Build-0.18/lib/Module/Build/Platform/VOS.pm
Module-Build-0.18/lib/Module/Build/Platform/Windows.pm
Module-Build-0.18/lib/Module/Build.pm
Module-Build-0.18/Makefile.PL
Module-Build-0.18/MANIFEST
Module-Build-0.18/META.yml
Module-Build-0.18/README
Module-Build-0.18/t/
Module-Build-0.18/t/basic.t
Module-Build-0.18/t/common.pl
Module-Build-0.18/t/lib/
Module-Build-0.18/t/lib/ModuleBuildOne.pm
Module-Build-0.18/t/MANIFEST
Module-Build-0.18/t/runthrough.t
Module-Build-0.18/t/Sample/
Module-Build-0.18/t/Sample/Build.PL
Module-Build-0.18/t/Sample/lib/
Module-Build-0.18/t/Sample/lib/Sample.pm
Module-Build-0.18/t/Sample/MANIFEST
Module-Build-0.18/t/Sample/META.yml
Module-Build-0.18/t/Sample/script
Module-Build-0.18/t/Sample/test.pl
Module-Build-0.18/t/xs.t
Module-Build-0.18/t/XSTest/
Module-Build-0.18/t/XSTest/Build.PL
Module-Build-0.18/t/XSTest/Changes
Module-Build-0.18/t/XSTest/lib/
Module-Build-0.18/t/XSTest/lib/XSTest.pm
Module-Build-0.18/t/XSTest/lib/XSTest.xs
Module-Build-0.18/t/XSTest/MANIFEST
Module-Build-0.18/t/XSTest/test.pl
Removing previously used /home/me/.cpan/build/Module-Build-0.18
CPAN.pm: Going to build K/KW/KWILLIAMS/Module-Build-0.18.tar.gz
/usr/bin/perl Build.PL prefix=/home/me/data/perl58
Checking whether your kit is complete...
Looks good
Creating new 'Build' script for 'Module-Build' version '0.18'
Warning: PREREQ_PM mentions ExtUtils::Install more than once, last
mention wins at /usr/lib/perl5/5.8.0/CPAN.pm line 4607, <GEN15> line 1.
/usr/bin/perl ./Build
lib/Module/Build.pm -> blib/lib/Module/Build.pm
lib/Module/Build/Base.pm -> blib/lib/Module/Build/Base.pm
lib/Module/Build/Compat.pm -> blib/lib/Module/Build/Compat.pm
lib/Module/Build/Platform/Amiga.pm ->
blib/lib/Module/Build/Platform/Amiga.pm
lib/Module/Build/Platform/darwin.pm ->
blib/lib/Module/Build/Platform/darwin.pm
lib/Module/Build/Platform/Default.pm ->
blib/lib/Module/Build/Platform/Default.pm
lib/Module/Build/Platform/EBCDIC.pm ->
blib/lib/Module/Build/Platform/EBCDIC.pm
lib/Module/Build/Platform/MacOS.pm ->
blib/lib/Module/Build/Platform/MacOS.pm
lib/Module/Build/Platform/MPEiX.pm ->
blib/lib/Module/Build/Platform/MPEiX.pm
lib/Module/Build/Platform/RiscOS.pm ->
blib/lib/Module/Build/Platform/RiscOS.pm
lib/Module/Build/Platform/Unix.pm -> blib/lib/Module/Build/Platform/Unix.pm
lib/Module/Build/Platform/VMS.pm -> blib/lib/Module/Build/Platform/VMS.pm
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.pm
/usr/bin/make -- OK
Running make test
/usr/bin/perl ./Build test
t/basic.........ok
t/runthrough....ok 4/13B::Module::Info,packages use failed with 2 saying:
Can't locate B/Module/Info.pm in @INC (@INC contains:
/home/me/.cpan/build/Module-Build-0.18/blib/lib
/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
/usr/lib/perl5/5.8.0/i386-linux-thread-multi /usr/lib/perl5/5.8.0 .) at
(eval 1) line 18.
BEGIN failed--compilation aborted at (eval 1) line 18.
BEGIN failed--compilation aborted.
t/runthrough....ok 6/13B::Module::Info,packages use failed with 2 saying:
Can't locate B/Module/Info.pm in @INC (@INC contains:
/home/me/.cpan/build/Module-Build-0.18/blib/lib
/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
/usr/lib/perl5/5.8.0/i386-linux-thread-multi /usr/lib/perl5/5.8.0 .) at
(eval 1) line 18.
BEGIN failed--compilation aborted at (eval 1) line 18.
BEGIN failed--compilation aborted.
t/runthrough....ok
t/xs............ok
All tests successful.
Files=3, Tests=32, 10 wallclock secs ( 4.89 cusr + 0.45 csys = 5.34 CPU)
/usr/bin/make test -- OK
Running make install
/usr/bin/perl ./Build install
Warning: You do not have permissions to install into
/usr/lib/perl5/site_perl/5.8.0 at
/usr/lib/perl5/5.8.0/ExtUtils/Install.pm line 84.
mkdir /usr/lib/perl5/site_perl/5.8.0/Module: Permission denied at
/usr/lib/perl5/5.8.0/ExtUtils/Install.pm line 137
make: *** [install] Error 255
/usr/bin/make install -- NOT OK
You may have to su to root to install the package
cpan>
|
|
From: Ken W. <ke...@ma...> - 2003-05-10 21:06:46
|
On Saturday, May 10, 2003, at 01:10 PM, Dave Rolsky wrote: > On Sat, 10 May 2003, Ken Williams wrote: > >> >> On Friday, May 9, 2003, at 05:54 PM, Dave Rolsky wrote: >> >>> On Fri, 9 May 2003, Ken Williams wrote: >>> >>>> I've committed this with a bunch of changes. I put most of the code >>>> into a new Module::Build::PPMMaker module. >>> >>> No, actually you put it in a file called PPD.pm, so it can't find it >>> ;) >> >> Erm, I really did mean to do PPMMaker, but didn't commit the name >> change. Try again now (also a couple other bugs fixed, I think). > > I think it gets too much stuff when looking for the author (try it on > Module::Build to see). A patch to reduce this is below. I think I'm not sure what the Author field is supposed to look like, actually - the http://www.xav.com/perl/site/lib/XML/PPD.html#author and http://search.cpan.org/author/MURRAY/PPM-2.1.6/docs/ppd.pod seem to have different ideas about how to represent the information. -Ken |
|
From: Ken W. <ke...@ma...> - 2003-05-10 20:50:40
|
On Friday, May 9, 2003, at 05:05 PM, jk wrote: > 1) When I ran "./Build test" I got a couple of tests fail, indicating > they could not find Module::Info.pm. I do have it installed locally > (in the /home/me/data/perl58/ tree), and I do have the PERL5LIB > environmental variable set to indicate it... is it possible that > Module::Build doesn't know about PERL5LIB and doesn't add it to the > @INC array? Nope, not possible - but I did figure out what the problem is here. I'd seen this problem show up in a couple different ways, and the reason is that we chdir() a few times in the testing code, and any relative paths in @INC will be messed up if we load modules after that. The fix for this, which I've applied in CVS, is to convert all the @INC paths to absolute paths. > 2) I originally tried to install Module::Build and various other > modules using the CPAN.pm module, but this didn't work because the > version of CPAN.pm I have doesn't know anything about using Build.pm > rather than make. It would be good to give the CPAN.pm people a > heads up about Build.pm so they can support it (this may already have > been done). Yeah, as Dave said, this should have worked fine. What happened? -Ken |
|
From: Dave R. <au...@ur...> - 2003-05-10 18:12:03
|
On Sat, 10 May 2003, Ken Williams wrote: > > On Friday, May 9, 2003, at 05:54 PM, Dave Rolsky wrote: > > > On Fri, 9 May 2003, Ken Williams wrote: > > > >> I've committed this with a bunch of changes. I put most of the code > >> into a new Module::Build::PPMMaker module. > > > > No, actually you put it in a file called PPD.pm, so it can't find it ;) > > Erm, I really did mean to do PPMMaker, but didn't commit the name > change. Try again now (also a couple other bugs fixed, I think). I think it gets too much stuff when looking for the author (try it on Module::Build to see). A patch to reduce this is below. /*======================= House Absolute Consulting www.houseabsolute.com =======================*/ --- Base.pm.~1.116.~ 2003-05-10 13:03:57.000000000 -0500 +++ Base.pm 2003-05-10 13:10:24.000000000 -0500 @@ -290,11 +290,12 @@ my @author; while (<$fh>) { next unless /^=head1\s+AUTHOR/ ... /^=/; - push @author, $_; + push @author, $_ if /\S/ && ! /^=/; + last if @author && /\n|\r/; } return unless @author; - my $author = join '', @author[1..$#author-1]; + my $author = join '', @author; $author =~ s/^\s+|\s+$//g; return $p->{dist_author} = $author; } |
|
From: Ken W. <ke...@ma...> - 2003-05-10 17:41:23
|
On Friday, May 9, 2003, at 05:54 PM, Dave Rolsky wrote: > On Fri, 9 May 2003, Ken Williams wrote: > >> I've committed this with a bunch of changes. I put most of the code >> into a new Module::Build::PPMMaker module. > > No, actually you put it in a file called PPD.pm, so it can't find it ;) Erm, I really did mean to do PPMMaker, but didn't commit the name change. Try again now (also a couple other bugs fixed, I think). -Ken |
|
From: Dave R. <au...@ur...> - 2003-05-10 09:26:58
|
On Fri, 9 May 2003, jk wrote: > 2) I originally tried to install Module::Build and various other modules > using the CPAN.pm module, but this didn't work because the version of > CPAN.pm I have doesn't know anything about using Build.pm rather than > make. It would be good to give the CPAN.pm people a heads up about > Build.pm so they can support it (this may already have been done). Module::Build comes with a Makefile.PL and CPAN.pm should execute it without any trouble. I sent a patch to the CPAN.pm maintainer to add real support for Module::Build to CPAN.pm, but even without that Module::Build itself should install without a hitch. -dave /*======================= House Absolute Consulting www.houseabsolute.com =======================*/ |
|
From: Iain T. <tmd...@de...> - 2003-05-10 02:56:36
|
* Dave Rolsky (au...@ur...) [10 May 2003 05:13]: [...] > Patch below sig. I think the "values %hash" construct didn't make > aliases in 5.00503. I can confirm it doesn't. Found that out when testing DateTime::Format::Builder under 5.005_03. cheers, -- Iain. |
|
From: Dave R. <au...@ur...> - 2003-05-09 22:55:57
|
On Fri, 9 May 2003, Ken Williams wrote: > I've committed this with a bunch of changes. I put most of the code > into a new Module::Build::PPMMaker module. No, actually you put it in a file called PPD.pm, so it can't find it ;) > Care to try it out? Patch after sig ;) -dave /*======================= House Absolute Consulting www.houseabsolute.com =======================*/ Index: lib/Module/Build/Base.pm =================================================================== RCS file: /cvsroot/module-build/Module-Build/lib/Module/Build/Base.pm,v retrieving revision 1.116 diff -u -r1.116 Base.pm --- lib/Module/Build/Base.pm 9 May 2003 22:28:53 -0000 1.116 +++ lib/Module/Build/Base.pm 9 May 2003 22:54:29 -0000 @@ -1104,8 +1104,8 @@ sub ACTION_ppd { my ($self) = @_; - require Module::Build::PPMMaker; - my $ppd = Module::Build::PPMMaker->new(archname => $self->{config}{archname}); + require Module::Build::PPD; + my $ppd = Module::Build::PPD->new(archname => $self->{config}{archname}); my $file = $ppd->make_ppd(%{$self->{args}}, build => $self); $self->add_to_cleanup($file); } Index: lib/Module/Build/PPD.pm =================================================================== RCS file: /cvsroot/module-build/Module-Build/lib/Module/Build/PPD.pm,v retrieving revision 1.1 diff -u -r1.1 PPD.pm --- lib/Module/Build/PPD.pm 9 May 2003 21:17:40 -0000 1.1 +++ lib/Module/Build/PPD.pm 9 May 2003 22:54:30 -0000 @@ -1,4 +1,4 @@ -package Module::Build::PPMMaker; +package Module::Build::PPD; use strict; @@ -74,7 +74,7 @@ # unfortunately, seems to indicate that a module works with _only_ # that version of Perl, and so is only appropriate when a module # uses XS. - if (keys %{$self->find_xs_files}) { + if (keys %{$build->find_xs_files}) { my $perl_version = $self->_ppd_version($build->perl_version); $ppd .= sprintf(<<'EOF', $perl_version, $^O, $self->{archname}); <PERLCORE VERSION="%s" /> @@ -144,7 +144,7 @@ =head1 NAME -Module::Build::PPMMaker - Perl Package Manager file creation +Module::Build::PPD - Perl Package Manager file creation =head1 SYNOPSIS Index: t/xs.t =================================================================== RCS file: /cvsroot/module-build/Module-Build/t/xs.t,v retrieving revision 1.7 diff -u -r1.7 xs.t --- t/xs.t 9 May 2003 22:29:13 -0000 1.7 +++ t/xs.t 9 May 2003 22:54:30 -0000 @@ -41,7 +41,7 @@ my $ppd = slurp('XSTest.ppd'); - my $perl_version = Module::Build::PPMMaker->_ppd_version($m->perl_version); + my $perl_version = Module::Build::PPD->_ppd_version($m->perl_version); # This test is quite a hack since with XML you don't really want to # do a strict string comparison, but absent an XML parser it's the |
|
From: Ken W. <ke...@ma...> - 2003-05-09 22:30:48
|
On Thursday, April 24, 2003, at 03:30 PM, Dave Rolsky wrote: > This patch adds support a "Build ppd" action, along with tests for it. > The PPD generating code is mostly from EU::MM_Unix in the 6.10_03 > distro, > except that I don't add the OS or ARCHITECTURE tags unless the module > includes XS, though I really don't know if that's right. > I've committed this with a bunch of changes. I put most of the code into a new Module::Build::PPMMaker module. Care to try it out? -Ken |
|
From: jk <bil...@fa...> - 2003-05-09 22:03:58
|
Ken Williams wrote: > > On Thursday, May 8, 2003, at 07:14 PM, jk wrote: > >> I wanted to install Module::Build on my computer. I keep my perl >> modules in /home/me/data/perl58, so I did this: >> >> perl Build.PL sitelib=/home/me/data/perl58/ >> ./Build >> ./Build test >> ./Build install >> >> ...but it still trys to install into /usr/lib/perl5/site_perl/5.8.0/ >> (where it has no permissions) rather than /home/me/data/perl58/ as I >> asked. >> >> Using a standard RedHat 9 Linux box with perl 5.8. >> >> Please let me know if I'm doing something wrong. Thanks for the help. > > > Hi jk, > > The local-directory support for Module::Build is still woefully > inadequate. It's a goal for version 0.19. One way (the only way?) to > install locally with 0.18 is this: > > perl Build.PL config=sitelib=/home/me/data/perl58/ > ./Build > ./Build test > ./Build fakeinstall (to check what it'll do in 'install') > ./Build install > > I swear we'll try to make this better soon. > > -Ken > > Thanks Ken! This worked and Module::Build is now installed locally where it should be. I guess as Dave observed the docs should be updated. A couple other observations that might be helpful: 1) When I ran "./Build test" I got a couple of tests fail, indicating they could not find Module::Info.pm. I do have it installed locally (in the /home/me/data/perl58/ tree), and I do have the PERL5LIB environmental variable set to indicate it... is it possible that Module::Build doesn't know about PERL5LIB and doesn't add it to the @INC array? The relevant error messages are here: ===================================================================== [me@mcc Module-Build-0.18]$ ./Build test t/basic.........ok t/runthrough....ok 4/13B::Module::Info,packages use failed with 2 saying: Can't locate B/Module/Info.pm in @INC (@INC contains: /home/me/.cpan/sources/authors/id/K/KW/KWILLIAMS/Module-Build-0.18/blib/lib /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 /usr/lib/perl5/5.8.0/i386-linux-thread-multi /usr/lib/ perl5/5.8.0 .) at (eval 1) line 18. BEGIN failed--compilation aborted at (eval 1) line 18. BEGIN failed--compilation aborted. t/runthrough....ok 6/13B::Module::Info,packages use failed with 2 saying: Can't locate B/Module/Info.pm in @INC (@INC contains: /home/me/.cpan/sources/authors/id/K/KW/KWILLIAMS/Module-Build-0.18/blib/lib /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 /usr/lib/perl5/5.8.0/i386-linux-thread-multi /usr/lib/perl5/5.8.0 .) at (eval 1) line 18. BEGIN failed--compilation aborted at (eval 1) line 18. BEGIN failed--compilation aborted. t/runthrough....ok t/xs............ok All tests successful. Files=3, Tests=32, 9 wallclock secs ( 5.20 cusr + 0.49 csys = 5.69 CPU) [me@mcc Module-Build-0.18]$ [me@mcc me]$ env | grep PERL PERL5LIB=/home/me/data/perl58/lib/perl5/site_perl/5.8.0:/home/me/data/perl58/lib/perl5/site_perl/5.8.0/i386-linux-thread-multi:/home/me/data/perl58/lib/perl5/5.8.0:/home/me/data/perl58/lib/perl5/5.8.0/i386-linux-thread-multi [me@mcc me]$ ===================================================================== 2) I originally tried to install Module::Build and various other modules using the CPAN.pm module, but this didn't work because the version of CPAN.pm I have doesn't know anything about using Build.pm rather than make. It would be good to give the CPAN.pm people a heads up about Build.pm so they can support it (this may already have been done). Thanks for the help, and thanks for making Module::Build. Looking forward to using it. jk |
|
From: Ken W. <ke...@ma...> - 2003-05-09 21:03:43
|
On Friday, May 9, 2003, at 02:10 PM, Dave Rolsky wrote: > On Fri, 9 May 2003, Ken Williams wrote: > >> What's it look like with this & 5.005 now? > > Same test fails, runthrough.t #18. > > Patch below sig. I think the "values %hash" construct didn't make > aliases > in 5.00503. Ugh, applied. -Ken |
|
From: Dave R. <au...@ur...> - 2003-05-09 19:11:41
|
On Fri, 9 May 2003, Ken Williams wrote: > What's it look like with this & 5.005 now? Same test fails, runthrough.t #18. Patch below sig. I think the "values %hash" construct didn't make aliases in 5.00503. -dave /*======================= House Absolute Consulting www.houseabsolute.com =======================*/ --- Base.pm.~1.111.~ 2003-05-09 14:07:10.000000000 -0500 +++ Base.pm 2003-05-09 14:10:06.000000000 -0500 @@ -1253,11 +1253,13 @@ } if (length(my $destdir = $self->{properties}{destdir} || '')) { - $_ = File::Spec->catdir($destdir, $_) foreach values %map; + foreach (keys %map) { + $map{$_} = File::Spec->catdir($destdir, $map{$_}); + } } $map{read} = ''; # To keep ExtUtils::Install quiet - + return \%map; } |
|
From: Ken W. <ke...@ma...> - 2003-05-09 19:02:28
|
On Friday, May 9, 2003, at 01:53 PM, Dave Rolsky wrote: > On Fri, 9 May 2003, Ken Williams wrote: > >> Does someone have a perl 5.005 that they could test the current >> Module::Build from CVS on? I'd like to close bug 2302 at >> http://rt.cpan.org/Ticket/Display.html?id=2302 . > > I do, but the current CVS is quite broken. Oops, I'd meant to back out a change I accidentally committed before. Here's a patch: ========================================= --- lib/Module/Build/Base.pm 8 May 2003 14:22:24 -0000 1.110 +++ lib/Module/Build/Base.pm 9 May 2003 18:58:49 -0000 @@ -614,10 +614,9 @@ sub dispatch { my $self = shift; - local $self->{action} = shift; if (@_) { - my %p = @_; + ($self->{action}, my %p) = @_; my $args = $p{args} ? delete($p{args}) : {}; $self->{args} = {%{$self->{args}}, %$args}; ========================================= I've committed this now. What's it look like with this & 5.005 now? -Ken |
|
From: Dave R. <au...@ur...> - 2003-05-09 18:57:20
|
Besides the patch I just sent, there's another problem with the arg handling in dispatch. Try "./Build test verbose=1" and you get an odd number of values assigned to hash error. In dispatch, it just assign @_ to %p after shifting off the action, but that doesn't really work. I think you need to call cull_args here, but I don't understand the bits in dispatch about args vs. properties. -dave /*======================= House Absolute Consulting www.houseabsolute.com =======================*/ |
|
From: Dave R. <au...@ur...> - 2003-05-09 18:54:14
|
On Fri, 9 May 2003, Ken Williams wrote: > Does someone have a perl 5.005 that they could test the current > Module::Build from CVS on? I'd like to close bug 2302 at > http://rt.cpan.org/Ticket/Display.html?id=2302 . I do, but the current CVS is quite broken. With the patch below sig it gives this with 5.00503: t/basic.........ok t/compat........ok t/runthrough....ok 8/19Module::Info was not available, no 'provides' will be created in META.yml at blib/lib/Module/Build/Base.pm line 1186. Use of uninitialized value at /home/autarch/Module-Build/blib/lib/Module/Build/Base.pm line 627. Use of uninitialized value at /home/autarch/Module-Build/blib/lib/Module/Build/Base.pm line 628. t/runthrough....ok 10/19Module::Info was not available, no 'provides' will be created in META.yml at blib/lib/Module/Build/Base.pm line 1186. t/runthrough....ok 16/19Warning: You do not have permissions to install into /usr/local/perl5.00503/lib/site_perl/5.005 at /usr/local/perl5.00503/lib/5.00503/ExtUtils/Install.pm line 61. t/runthrough....FAILED test 18 Failed 1/19 tests, 94.74% okay t/xs............ok Everything passes with 5.8.0, but I still get an uninit warning at line 628. /*======================= House Absolute Consulting www.houseabsolute.com =======================*/ --- Base.pm.~1.110.~ 2003-05-08 11:50:30.000000000 -0500 +++ Base.pm 2003-05-09 13:50:32.000000000 -0500 @@ -569,7 +569,7 @@ }, ); -\$build->dispatch; +\$build->dispatch(\@ARGV); EOF } |
|
From: Ken W. <ke...@ma...> - 2003-05-09 18:44:35
|
Hi, Does someone have a perl 5.005 that they could test the current Module::Build from CVS on? I'd like to close bug 2302 at http://rt.cpan.org/Ticket/Display.html?id=2302 . -Ken |
|
From: Ken W. <ke...@ma...> - 2003-05-09 18:28:45
|
On Friday, May 9, 2003, at 01:11 PM, Dave Rolsky wrote: > On Fri, 9 May 2003, Ken Williams wrote: > >> perl Build.PL config=sitelib=/home/me/data/perl58/ >> ./Build >> ./Build test >> ./Build fakeinstall (to check what it'll do in 'install') >> ./Build install > > I couldn't even figure out how to do this by reading the damn code! > And > the docs say you can just do "perl Build.PL sitelib=..." > > I might take a stab at this. Beware that I haven't even specced it out yet. I'm hoping we can "simplify" the MakeMaker approach. One thing to look at is the install_map(), install_types(), and install_destination() routines, which I kind of like. Right now there are three kinds of 'install_types' items, qw(lib arch script). In the future there will also be qw(man) or qw(man1 man3). The idea is that everything to install is of a certain "type", and then when you're installing you can issue various incantations to say "stuff of this type should go here". MakeMaker has this idea of certain predefined configuration sets, switchable by selecting INSTALLDIRS to 'perl', 'site', or 'vendor'. Assuming we also support this in M::B, I would like to keep it distinct from manually selecting a place to install stuff. Note that the 'destdir' parameter already does the "prefix everything with this string" thing for helping rpm/deb/etc. package managers. -Ken |
|
From: Dave R. <au...@ur...> - 2003-05-09 18:13:06
|
On Fri, 9 May 2003, Ken Williams wrote: > perl Build.PL config=sitelib=/home/me/data/perl58/ > ./Build > ./Build test > ./Build fakeinstall (to check what it'll do in 'install') > ./Build install I couldn't even figure out how to do this by reading the damn code! And the docs say you can just do "perl Build.PL sitelib=..." I might take a stab at this. -dave /*======================= House Absolute Consulting www.houseabsolute.com =======================*/ |
|
From: Ken W. <ke...@ma...> - 2003-05-09 17:55:40
|
On Thursday, May 8, 2003, at 07:14 PM, jk wrote: > I wanted to install Module::Build on my computer. I keep my perl > modules in /home/me/data/perl58, so I did this: > > perl Build.PL sitelib=/home/me/data/perl58/ > ./Build > ./Build test > ./Build install > > ...but it still trys to install into /usr/lib/perl5/site_perl/5.8.0/ > (where it has no permissions) rather than /home/me/data/perl58/ as I > asked. > > Using a standard RedHat 9 Linux box with perl 5.8. > > Please let me know if I'm doing something wrong. Thanks for the help. Hi jk, The local-directory support for Module::Build is still woefully inadequate. It's a goal for version 0.19. One way (the only way?) to install locally with 0.18 is this: perl Build.PL config=sitelib=/home/me/data/perl58/ ./Build ./Build test ./Build fakeinstall (to check what it'll do in 'install') ./Build install I swear we'll try to make this better soon. -Ken |
|
From: jk <bil...@fa...> - 2003-05-09 00:12:44
|
I wanted to install Module::Build on my computer. I keep my perl modules in /home/me/data/perl58, so I did this: perl Build.PL sitelib=/home/me/data/perl58/ ./Build ./Build test ./Build install ...but it still trys to install into /usr/lib/perl5/site_perl/5.8.0/ (where it has no permissions) rather than /home/me/data/perl58/ as I asked. Using a standard RedHat 9 Linux box with perl 5.8. Please let me know if I'm doing something wrong. Thanks for the help. |
|
From: Ken W. <ke...@ma...> - 2003-05-08 14:22:36
|
On Thursday, May 8, 2003, at 02:45 AM, Richard Clamp wrote: > On Wed, May 07, 2003 at 05:32:33PM -0500, Ken Williams wrote: >> I've also added these docs about the method: >> >> -------------------------------------------------------- >> =item copy_if_modified() > > It just be my early-morning decaffeinated state, but that doesn't > scream named parameters to me. I think it's that the brackets are > empty > > =item copy_if_modified(%parameters) > > Would just make it easier for my brain to grasp. Yeah, I'll buy that. I'll make the change here and in a couple related places. -Ken |
|
From: Richard C. <ric...@un...> - 2003-05-08 07:45:31
|
On Wed, May 07, 2003 at 05:32:33PM -0500, Ken Williams wrote: > I've also added these docs about the method: > > -------------------------------------------------------- > =item copy_if_modified() It just be my early-morning decaffeinated state, but that doesn't scream named parameters to me. I think it's that the brackets are empty =item copy_if_modified(%parameters) Would just make it easier for my brain to grasp. Apologies for the bikeshedding, but it did jar. -- Richard Clamp <ric...@un...> |
|
From: Ken W. <ke...@ma...> - 2003-05-07 22:50:46
|
On Sunday, April 27, 2003, at 04:05 PM, Dominic Mitchell wrote:
> I've got a .PL file that I'm trying to get run as part of my build.
>
> Module::Build->new(
> module_name => 'MyModule',
> PL_files => {
> 'lib/mkconst.PL' => [],
> },
> );
>
> However, the mkconst.PL script is not getting run at all. The docs
> appear to indicate that it would get run, and that there would be
> nothing to clean up, based on what I've specified. Is that right?
> Looking at process_PL_files(), it would seem that things only get run
> if
> there's something in the list.
>
> However, taking a step or two back....
>
> What I'm trying to do is rebuild the file lib/Constants.pm from
> lib/Constants.pm.in only if it's out of date. Using
> ExtUtils::MakeMaker, this was (relatively) easy. What's the best way
> to
> do this using Module::Build? I started looking at .PL files to sort it
> out, but I don't think that's the right answer. Would it be better to
> subclass Module::Build and override ACTION_build to do the right thing?
Hi Dominic,
Sorry to take a while to get back to you. The PL_files stuff wasn't
really very well thought-out when you sent your message, but I think
it's in a better state now.
I think the proper answer to your question is to do something like this:
Module::Build->new(
module_name => 'MyModule',
PL_files => {
'lib/Constants.pm.PL' => 'lib/Constants.pm',
},
);
The constants' definitions would be right in lib/Constants.pm.PL. Then
whenever Constants.pm.PL is newer than lib/Constants.pm, the .pm will
get rebuilt.
If you do want to subclass, look at the up_to_date() method in
Module::Build, which will help you know when to re-run the script.
Something like:
my $subclass = Module::Build->subclass( code => <<'EOF' );
sub ACTION_build {
my $self = shift;
$self->SUPER::ACTION_build;
$self->run_perl_script('lib/mkconst.PL', ...arguments...)
unless $self->up_to_date(['lib/mkconst.PL', 'lib/Constants.in'],
'lib/Constants.pm');
}
EOF
$subclass->new( ... )->create_build_script;
-Ken
|
|
From: Ken W. <ke...@ma...> - 2003-05-07 22:39:49
|
I just committed some changes for alternative layouts, and added this
to the Changes file:
- Alternative distribution layouts are now supported via the
'pm_files', 'pod_files', 'xs_files', 'PL_files', and 'script_files'
parameters to new(). This should help people transition from
MakeMaker, and might even help us write an automatic transition
tool.
Here I probably mean s/us/someone else/, of course.
-Ken
|