module-build-general Mailing List for Module::Build (Page 19)
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: Ken W. <ke...@ma...> - 2006-03-09 01:24:20
|
On Mar 8, 2006, at 2:50 AM, Dominic Dunlop wrote: > On 2006=9603=9607, at 21:37, Randy W. Sims wrote: > >> Unfortunately, I don't have a broken system to test on so I'm =20 >> mostly guessing. I do have an old 633 Mhz Pentium PC laying around =20= >> somewhere that I can install one of the BSD variant on tonight or =20 >> tomorrow. > > That looks like the way to go, as I can't guarantee to respond =20 > quickly when asked to run tests -- and I don't know the code =20 > anyway. Good luck with that install. Alternatively, does anybody on =20= > the M::B list have a Mac with some version of Mac OS X on it lying =20 > around? My main machine (powerbook) runs OS X 10.4.something. Obviously =20 M::B's tests pass for me in its standalone distro, I'll try testing =20 blead. Right now blead is failing to build for me though, because =20 it's missing a constants.xs file for Compress::Zlib or something. =20 I'll try to get creative with symlinks. -Ken |
|
From: David W. <da...@ki...> - 2006-03-08 16:52:34
|
On Mar 4, 2006, at 11:22, Peter Scott wrote:
> my $builder = Module::Build->new
> (
> install_base => '/path/to/install',
> script_files => [ 'dummy' ],
> dist_name => 'dummy',
> dist_version_from => 'dummy',
> );
> $builder->add_property('yml_files'); # Method not found
> $builder->yml_files({ 'config.yml' => $self->install_base . '/etc/
> dummy.yml' });
> $builder->add_build_element('yml');
> $builder->create_build_script;
With Randy's proposal from a few days ago, once he gets 'round to
implementing it (or I do if I have the tuits) after 0.28, you'll be
able to do this:
my $builder = Module::Build->new(
install_base => '/path/to/install',
script_files => [ 'dummy' ],
dist_name => 'dummy',
dist_version_from => 'dummy',
);
$builder->auto_build_elements(
element => 'yml',
filter => 'yml/*.yml',
install_relpath => 'etc',
);
$builder->create_build_script;
Cool, eh?
Best,
David
|
|
From: Peter S. <Pe...@PS...> - 2006-03-08 16:26:16
|
My question about add_property was Warnocked; I'm going to give it one
more go on the theory that folk may have been too busy with the P5P
thread on M::B that started at the same time.
I'm wondering why the add_property() method isn't exposed to the
user? It seems that it would be handy for my case; I have a config.yml
file that I want installed in the etc/ directory off my target, and I'm
hardwiring the install_base here because this is something that gets
used at a client site. I started with:
my $builder = Module::Build->new
(
install_base => '/path/to/install',
script_files => [ 'dummy' ],
yml_files => { 'config.yml' =>
'/path/to/install/etc/dummy.yml' },
dist_name => 'dummy',
dist_version_from => 'dummy',
);
$builder->add_build_element('yml');
$builder->create_build_script;
However, I don't like having to repeat /path/to/install in there. To
remove the duplication I ended up doing:
my $builder = Module::Build->new
(
install_base => '/path/to/install',
script_files => [ 'dummy' ],
dist_name => 'dummy',
dist_version_from => 'dummy',
);
sub Module::Build::find_yml_files {
my $self = shift;
return { map $self->localize_file_path($_),
'config.yml' => $self->install_base . '/etc/dummy.yml'
};
}
$builder->add_build_element('yml');
$builder->create_build_script;
But it seems that if I had been able to call add_property, it would
have been simpler:
my $builder = Module::Build->new
(
install_base => '/path/to/install',
script_files => [ 'dummy' ],
dist_name => 'dummy',
dist_version_from => 'dummy',
);
$builder->add_property('yml_files'); # Method not found
$builder->yml_files({ 'config.yml' => $self->install_base .
'/etc/dummy.yml' });
$builder->add_build_element('yml');
$builder->create_build_script;
--
Peter Scott
Pacific Systems Design Technologies
http://www.perldebugged.com/
http://www.perlmedic.com/
|
|
From: Dominic D. <sho...@ma...> - 2006-03-08 08:50:15
|
On 2006=9603=9607, at 21:37, Randy W. Sims wrote: > Unfortunately, I don't have a broken system to test on so I'm =20 > mostly guessing. I do have an old 633 Mhz Pentium PC laying around =20 > somewhere that I can install one of the BSD variant on tonight or =20 > tomorrow. That looks like the way to go, as I can't guarantee to respond =20 quickly when asked to run tests -- and I don't know the code anyway. =20 Good luck with that install. Alternatively, does anybody on the M::B =20 list have a Mac with some version of Mac OS X on it lying around? --=20 Dominic Dunlop |
|
From: Dominic D. <sho...@ma...> - 2006-03-08 08:38:44
|
On 2006=9603=9607, at 20:34, Yitzchak Scott-Thoennes wrote:
> On Tue, Mar 07, 2006 at 07:58:59PM +0100, Dominic Dunlop wrote:
>> Sorry for the absence.
>>
>> On 2006?03?07, at 18:04, Yitzchak Scott-Thoennes wrote:
>>
>>> Does this help:
>>>
>>> --- lib/Module/Build/Base.pm.orig 2006-03-06 07:43:57.093750000 =20=
>>> -0800
>>> +++ lib/Module/Build/Base.pm 2006-03-07 09:00:28.884844800 =
-0800
>>> @@ -334,7 +334,8 @@
>>> $thisperl .=3D $exe unless $thisperl =3D~ m/$exe$/i;
>>> }
>>>
>>> - foreach my $perl ( $c->{perlpath},
>>> + foreach my $perl ( File::Spec->rel2abs($^X),
>>> + $c->{perlpath},
>>> map File::Spec->catfile($_, $thisperl),
>>> File::Spec->path()
>>> ) {
>>> return $perl if -f $perl and $proto->_perl_is_same($perl);
>>> End of Patch.
>>
>> I think this has been overtaken by events, but no, it doesn't:
>
> Hmm, is $c->{properties}{perl} set correctly at this point?
No.
With this debugging line
warn "Checking $perl: \$^X is $^X, \$c->{properties}{perl} is $c-=20=
>{properties}{perl}, -f \$perl is ", -f $perl;
I get
$ ./TEST ../lib/Module/Build/t/basic.t
t/../lib/Module/Build/t/basic....Warning: Removing existing directory =20=
'/Volumes/Tottie/Other/src/Perl/perl-current-working/t/_tmp/Simple'
Use of uninitialized value in concatenation (.) or string at /Volumes/=20=
Tottie/Other/src/Perl/perl-current-working/t/../lib/Module/Build/=20
Base.pm line 341.
Use of uninitialized value in warn at /Volumes/Tottie/Other/src/Perl/=20
perl-current-working/t/../lib/Module/Build/Base.pm line 341.
Checking /Volumes/Tottie/Other/src/Perl/perl-current-working/t/_tmp/=20
Simple/perl: $^X is ./perl, $c->{properties}{perl} is , -f $perl is =20
at /Volumes/Tottie/Other/src/Perl/perl-current-working/t/../lib/=20
Module/Build/Base.pm line 341.
Use of uninitialized value in concatenation (.) or string at /Volumes/=20=
Tottie/Other/src/Perl/perl-current-working/t/../lib/Module/Build/=20
Base.pm line 341.
Use of uninitialized value in warn at /Volumes/Tottie/Other/src/Perl/=20
perl-current-working/t/../lib/Module/Build/Base.pm line 341.
Checking /usr/local/bin/perl5.9.4: $^X is ./perl, $c->{properties}=20
{perl} is , -f $perl is at /Volumes/Tottie/Other/src/Perl/perl-=20
current-working/t/../lib/Module/Build/Base.pm line 341.
Use of uninitialized value in concatenation (.) or string at /Volumes/=20=
Tottie/Other/src/Perl/perl-current-working/t/../lib/Module/Build/=20
Base.pm line 341.
Use of uninitialized value in warn at /Volumes/Tottie/Other/src/Perl/=20
perl-current-working/t/../lib/Module/Build/Base.pm line 341.
Checking /Users/domo/bin/perl: $^X is ./perl, $c->{properties}{perl} =20
is , -f $perl is at /Volumes/Tottie/Other/src/Perl/perl-current-=20
working/t/../lib/Module/Build/Base.pm line 341.
Use of uninitialized value in concatenation (.) or string at /Volumes/=20=
Tottie/Other/src/Perl/perl-current-working/t/../lib/Module/Build/=20
Base.pm line 341.
Use of uninitialized value in warn at /Volumes/Tottie/Other/src/Perl/=20
perl-current-working/t/../lib/Module/Build/Base.pm line 341.
and so on.
--=20
Dominic Dunlop
|
|
From: John P. <jpe...@ro...> - 2006-03-08 03:12:22
|
Ken Williams wrote: > I actually just released 0.2612 on Sunday. It fixed a YAML issue > there, but I didn't change the dependency spec. We could make another > release with that change if it's warranted - someone should make sure > we actually do work with the latest YAMLs, though. =) Yes, the newer YAML's work fine with the 0.26x releases. In fact the last time I reinstalled 0.2611, I just manually editted the Build.PL so it wouldn't whine at me... ;-) John -- John Peacock Director of Information Research and Technology Rowman & Littlefield Publishing Group 4720 Boston Way Lanham, MD 20706 301-459-3366 x.5010 fax 301-429-5747 |
|
From: Yitzchak Scott-T. <sth...@ef...> - 2006-03-08 00:54:37
|
On Tue, Mar 07, 2006 at 05:36:30PM -0600, Ken Williams wrote:
>
> On Mar 7, 2006, at 2:24 PM, Yitzchak Scott-Thoennes wrote:
>
> >
> >I think just putting code conditional on $ENV{PERL_CORE} in
> >find_perl_interpreter is good enough; no need to modify the tests.
>
> If possible, I'd like to avoid that. The fewer conditionals we have
> on PERL_CORE the better - they make me nervous because I never really
> understand them and I never know if I'm breaking something on blead.
Maybe I'll try to go through and add some comments at some point.
> Also, if we can get this bit working without special-casing, it would
> probably solve the issue for other people too.
Let me mention how a few minutes browsing of the code makes me think
makemaker does things. First, PERL_CORE and PERL_SRC are properties
that can be provided as parameters to Makefile.PL. PERL_CORE defaults
to $ENV{PERL_CORE} or to 0 if that isn't set. PERL_SRC is the
toplevel directory of the perl sources and is required if PERL_CORE is
set; if it isn't set manually, it will be searched for in .., ../..,
etc. (5 levels max).
I'm not sure how this translates into how Module::Build could work,
especially since some of the things makemaker does differently based
on PERL_CORE have been split off MB into CBuilder. But for now, I
think checking $ENV{PERL_CORE} in Base.pm is more of a step forward
than backward.
|
|
From: Ken W. <ke...@ma...> - 2006-03-08 00:29:19
|
On Mar 6, 2006, at 4:44 PM, Randy W. Sims wrote: > Adam Kennedy wrote: >>> It's part of the 1.2 spec: >>> >>> <http://module-build.sourceforge.net/META-spec-v1.2.html#resources> >> On the subject of spec changes, I was wondering what people >> thought of changing the dynamic_config option to become >> static_config or static_metadata. >> It seems silly that the default is 1, and thus the only time you >> need to provide information is when you say >> dynamic_config(0); > What would be the reason for changing it? Just to avoid a double- negative? That's probably not a good enough reason for me. > I've CC'd this to the module-build mailing list as it's probably a > better place to ask. > > I have to admit that I'm not totally sure what this option is for. > There are a number of problems it could be intended to solve, but > I'm not sure which one(s). > > 1) For automated builders/testers, it could indicate that a module > requires user intervention. Eg. it queries the user for input > during install. > > 2) The dependencies listed in META.yml are not static. Maybe a > Win32::* module is required only when run under Windows, but is not > listed in META.yml because there is currently no way to express > conditional dependencies. > > 3) The description in the spec would seem to imply that a static > config indicates that module can be installed without the builder > (i.e. Module::Build)), that the modules could simply be copied into > the proper folders by any tool. This would mean any module with > with XS or compiled code as well as anything under (1) and (2) > above are dynamic? I'd intended it as 1 & 2 but not 3. In other words, whether the information in the META.yml is definitive or not. If it weren't, then a cautious or curious user might want to read the Build.PL before installing. Everything is on the honor system of course, so it's not really a security thing, just a convenience thing. -Ken |
|
From: Ken W. <ke...@ma...> - 2006-03-08 00:24:39
|
On Mar 6, 2006, at 4:51 PM, Randy W. Sims wrote: > Andreas J. Koenig wrote: >> [...] >> Module-Build-0.2612/t/XSTest/lib/XSTest.xs >> Module-Build-0.2612/t/XSTest/MANIFEST >> Module-Build-0.2612/t/XSTest/test.pl >> WARNING: This key is not certified with a trusted signature! >> Primary key fingerprint: ADCB DB05 B40E B2A2 A555 5462 82BB >> CC04 B7EF 9476 >> CPAN.pm: Going to build K/KW/KWILLIAMS/Module-Build-0.2612.tar.gz >> # running Build.PL >> /home/src/perl/repoperls/installed-perls/perl/p4pqpmS/ >> perl-5.8.0@27350/bin/perl -Ilib Build.PL >> Checking whether your kit is complete... >> Looks good >> Feature 'YAML_support' disabled because of the following >> prerequisite failures: >> * Version 0.58 of YAML is installed, but we need version < 0.49 >> If this is not a bug, maybe a comment should be added in the >> Build.PL, >> why it is needed. > > > This was initially due to bugs in YAML version 0.49x. It has been > fixed in M::B developer releases for a while, but I guess it never > made the way back to the 0.26x releases. Ken, are you planning to > release another 0.26x before 0.28? I actually just released 0.2612 on Sunday. It fixed a YAML issue there, but I didn't change the dependency spec. We could make another release with that change if it's warranted - someone should make sure we actually do work with the latest YAMLs, though. =) -Ken |
|
From: Ken W. <ke...@ma...> - 2006-03-08 00:17:52
|
On Mar 6, 2006, at 6:04 PM, Randy W. Sims wrote: > Chris Dolan wrote: >> If you use the "dist_name" style of Build.PL instead of >> "module_name", then you need to include the "dist_abstract" field >> too, or you will see the following error when running "Build >> distmeta": >> ERROR: Missing required field 'abstract' for META.yml >> This is very misleading because it's the "dist_abstract" field >> that's missing, not "abstract". The following simple patch >> changes the error message. I've confirmed that with the patch it >> now says: >> ERROR: Missing required field 'dist_abstract' for META.yml >> but I haven't tested any fields other than "abstract". >> Chris >> diff -u -r1.552 Base.pm >> --- lib/Module/Build/Base.pm 4 Mar 2006 03:59:28 -0000 1.552 >> +++ lib/Module/Build/Base.pm 5 Mar 2006 20:45:41 -0000 > > Thanks, applied. > Ideally I think the message would look something like: ERROR: Missing required data 'abstract' for META.yml, please provide 'dist_abstract' field. -Ken |
|
From: Ken W. <ke...@ma...> - 2006-03-07 23:36:42
|
On Mar 7, 2006, at 2:24 PM, Yitzchak Scott-Thoennes wrote:
>
> I think just putting code conditional on $ENV{PERL_CORE} in
> find_perl_interpreter is good enough; no need to modify the tests.
If possible, I'd like to avoid that. The fewer conditionals we have
on PERL_CORE the better - they make me nervous because I never really
understand them and I never know if I'm breaking something on blead.
Also, if we can get this bit working without special-casing, it would
probably solve the issue for other people too.
-Ken
|
|
From: Randy W. S. <ml...@th...> - 2006-03-07 21:03:19
|
Yitzchak Scott-Thoennes wrote:
> On Tue, Mar 07, 2006 at 12:24:22PM -0800, Yitzchak Scott-Thoennes wrote:
>
>>I think just putting code conditional on $ENV{PERL_CORE} in
>>find_perl_interpreter is good enough; no need to modify the tests.
>>
>>It may take us closer to Rafael's request for support for building
>>modules with an uninstalled perl, ala makemaker.
>
>
> With this, I still get a couple of test failures; will look into why later.
>
> --- /home/sthoenna/modbuild/Module-Build-0.27_08/lib/Module/Build/Base.pm 2006-03-03 19:27:57.000000000 -0800
> +++ Base.pm 2006-03-07 12:26:09.025250000 -0800
> @@ -333,8 +333,15 @@
Thanks, I've applied this in our repository.
Randy.
|
|
From: Yitzchak Scott-T. <sth...@ef...> - 2006-03-07 20:41:48
|
On Tue, Mar 07, 2006 at 12:24:22PM -0800, Yitzchak Scott-Thoennes wrote:
> On Tue, Mar 07, 2006 at 03:10:55PM -0500, Randy W. Sims wrote:
> > Yitzchak Scott-Thoennes wrote:
> > >On Tue, Mar 07, 2006 at 01:32:52PM -0600, Ken Williams wrote:
> > >
> > >>On Mar 7, 2006, at 11:57 AM, Andy Dougherty wrote:
> > >>
> > >>
> > >>>On Tue, 7 Mar 2006, Yitzchak Scott-Thoennes wrote:
> > >>>
> > >>>
> > >>>>Can you try:
> > >>>>
> > >>>>--- lib/Module/Build/Base.pm.orig 2006-03-06 07:43:57.093750000 -0800
> > >>>>+++ lib/Module/Build/Base.pm 2006-03-07 09:00:28.884844800 -0800
> > >>>>@@ -334,7 +334,8 @@
> > >>>> $thisperl .= $exe unless $thisperl =~ m/$exe$/i;
> > >>>> }
> > >>>>
> > >>>>- foreach my $perl ( $c->{perlpath},
> > >>>>+ foreach my $perl ( File::Spec->rel2abs($^X),
> > >>>>+ $c->{perlpath},
> > >>>> map File::Spec->catfile($_, $thisperl),
> > >>>> File::Spec->path()
> > >>>> ) {
> > >>>> return $perl if -f $perl and $proto->_perl_is_same($perl);
> > >>>
> > >>>I'm afraid that didn't help either, since the t/_tmp/Simple/ directory
> > >>>doesn't have a perl executable.
> > >>
> > >>Hmm - so in your case is $^X just 'perl'? If that's the only pointer
> > >>to the currently running perl, we might have to do a PATH search for
> > >>it. Maybe only when it doesn't contain slashes or something.
> > >
> > >
> > >The above code does do a PATH search, but this perl isn't installed.
> > >We might have to do a search up cwd like
> > >ExtUtils::CBuilder::Base::perl_src().
> >
> > I suspect this needs a way to apply the fixup only when running the test
> > && $ENV{PERL_CORE}. The test files are being executed by perl's Makefile
> > or TEST, not being loaded and run from M::B, right? So, when each test
> > file is run it needs (or MBTest.pm needs) to figure out where the perl
> > is that loaded it and apply a fixup. We'll also need to put a hook in
> > M::B to allow the fixup.
> >
> > Randy.
>
> I think just putting code conditional on $ENV{PERL_CORE} in
> find_perl_interpreter is good enough; no need to modify the tests.
>
> It may take us closer to Rafael's request for support for building
> modules with an uninstalled perl, ala makemaker.
With this, I still get a couple of test failures; will look into why later.
--- /home/sthoenna/modbuild/Module-Build-0.27_08/lib/Module/Build/Base.pm 2006-03-03 19:27:57.000000000 -0800
+++ Base.pm 2006-03-07 12:26:09.025250000 -0800
@@ -333,8 +333,15 @@
} elsif (defined $exe) {
$thisperl .= $exe unless $thisperl =~ m/$exe$/i;
}
-
- foreach my $perl ( $c->{perlpath},
+
+ my $uninstperl;
+ if ($ENV{PERL_CORE}) {
+ require ExtUtils::CBuilder;
+ $uninstperl = File::Spec->catfile(ExtUtils::CBuilder::->perl_src, $thisperl);
+ }
+
+ foreach my $perl ( $uninstperl || (),
+ $c->{perlpath},
map File::Spec->catfile($_, $thisperl), File::Spec->path()
) {
return $perl if -f $perl and $proto->_perl_is_same($perl);
|
|
From: Randy W. S. <ml...@th...> - 2006-03-07 20:38:55
|
Yitzchak Scott-Thoennes wrote:
> On Tue, Mar 07, 2006 at 03:10:55PM -0500, Randy W. Sims wrote:
>
>>Yitzchak Scott-Thoennes wrote:
>>
>>>On Tue, Mar 07, 2006 at 01:32:52PM -0600, Ken Williams wrote:
>>>
>>>>Hmm - so in your case is $^X just 'perl'? If that's the only pointer
>>>>to the currently running perl, we might have to do a PATH search for
>>>>it. Maybe only when it doesn't contain slashes or something.
>>>
>>>
>>>The above code does do a PATH search, but this perl isn't installed.
>>>We might have to do a search up cwd like
>>>ExtUtils::CBuilder::Base::perl_src().
>>
>>I suspect this needs a way to apply the fixup only when running the test
>>&& $ENV{PERL_CORE}. The test files are being executed by perl's Makefile
>>or TEST, not being loaded and run from M::B, right? So, when each test
>>file is run it needs (or MBTest.pm needs) to figure out where the perl
>>is that loaded it and apply a fixup. We'll also need to put a hook in
>>M::B to allow the fixup.
>>
>>Randy.
>
>
> I think just putting code conditional on $ENV{PERL_CORE} in
> find_perl_interpreter is good enough; no need to modify the tests.
>
> It may take us closer to Rafael's request for support for building
> modules with an uninstalled perl, ala makemaker.
>
Yeah, I've got that message flagged for follow-up. I guess I was
thinking there may be more context for determining the correct perl from
the test script side.
Unfortunately, I don't have a broken system to test on so I'm mostly
guessing. I do have an old 633 Mhz Pentium PC laying around somewhere
that I can install one of the BSD variant on tonight or tomorrow.
Randy.
|
|
From: Yitzchak Scott-T. <sth...@ef...> - 2006-03-07 20:25:18
|
On Tue, Mar 07, 2006 at 03:10:55PM -0500, Randy W. Sims wrote:
> Yitzchak Scott-Thoennes wrote:
> >On Tue, Mar 07, 2006 at 01:32:52PM -0600, Ken Williams wrote:
> >
> >>On Mar 7, 2006, at 11:57 AM, Andy Dougherty wrote:
> >>
> >>
> >>>On Tue, 7 Mar 2006, Yitzchak Scott-Thoennes wrote:
> >>>
> >>>
> >>>>Can you try:
> >>>>
> >>>>--- lib/Module/Build/Base.pm.orig 2006-03-06 07:43:57.093750000 -0800
> >>>>+++ lib/Module/Build/Base.pm 2006-03-07 09:00:28.884844800 -0800
> >>>>@@ -334,7 +334,8 @@
> >>>> $thisperl .= $exe unless $thisperl =~ m/$exe$/i;
> >>>> }
> >>>>
> >>>>- foreach my $perl ( $c->{perlpath},
> >>>>+ foreach my $perl ( File::Spec->rel2abs($^X),
> >>>>+ $c->{perlpath},
> >>>> map File::Spec->catfile($_, $thisperl),
> >>>> File::Spec->path()
> >>>> ) {
> >>>> return $perl if -f $perl and $proto->_perl_is_same($perl);
> >>>
> >>>I'm afraid that didn't help either, since the t/_tmp/Simple/ directory
> >>>doesn't have a perl executable.
> >>
> >>Hmm - so in your case is $^X just 'perl'? If that's the only pointer
> >>to the currently running perl, we might have to do a PATH search for
> >>it. Maybe only when it doesn't contain slashes or something.
> >
> >
> >The above code does do a PATH search, but this perl isn't installed.
> >We might have to do a search up cwd like
> >ExtUtils::CBuilder::Base::perl_src().
>
> I suspect this needs a way to apply the fixup only when running the test
> && $ENV{PERL_CORE}. The test files are being executed by perl's Makefile
> or TEST, not being loaded and run from M::B, right? So, when each test
> file is run it needs (or MBTest.pm needs) to figure out where the perl
> is that loaded it and apply a fixup. We'll also need to put a hook in
> M::B to allow the fixup.
>
> Randy.
I think just putting code conditional on $ENV{PERL_CORE} in
find_perl_interpreter is good enough; no need to modify the tests.
It may take us closer to Rafael's request for support for building
modules with an uninstalled perl, ala makemaker.
|
|
From: Yitzchak Scott-T. <sth...@ef...> - 2006-03-07 20:15:33
|
On Tue, Mar 07, 2006 at 11:34:27AM -0800, Yitzchak Scott-Thoennes wrote:
> On Tue, Mar 07, 2006 at 07:58:59PM +0100, Dominic Dunlop wrote:
> > Sorry for the absence.
> >
> > On 2006?03?07, at 18:04, Yitzchak Scott-Thoennes wrote:
> >
> > >Does this help:
> > >
> > >--- lib/Module/Build/Base.pm.orig 2006-03-06 07:43:57.093750000 -0800
> > >+++ lib/Module/Build/Base.pm 2006-03-07 09:00:28.884844800 -0800
> > >@@ -334,7 +334,8 @@
> > > $thisperl .= $exe unless $thisperl =~ m/$exe$/i;
> > > }
> > >
> > >- foreach my $perl ( $c->{perlpath},
> > >+ foreach my $perl ( File::Spec->rel2abs($^X),
> > >+ $c->{perlpath},
> > > map File::Spec->catfile($_, $thisperl),
> > > File::Spec->path()
> > > ) {
> > > return $perl if -f $perl and $proto->_perl_is_same($perl);
> > >End of Patch.
> >
> > I think this has been overtaken by events, but no, it doesn't:
>
> Hmm, is $c->{properties}{perl} set correctly at this point?
I meant $proto->{properties}{perl}. But no, it isn't. (I'm testing
now with a perl that always sets $^X to "./perl", and without an
installed perl5.9.4 :).
|
|
From: Randy W. S. <ml...@th...> - 2006-03-07 20:12:00
|
Yitzchak Scott-Thoennes wrote:
> On Tue, Mar 07, 2006 at 01:32:52PM -0600, Ken Williams wrote:
>
>>On Mar 7, 2006, at 11:57 AM, Andy Dougherty wrote:
>>
>>
>>>On Tue, 7 Mar 2006, Yitzchak Scott-Thoennes wrote:
>>>
>>>
>>>>Can you try:
>>>>
>>>>--- lib/Module/Build/Base.pm.orig 2006-03-06 07:43:57.093750000 -0800
>>>>+++ lib/Module/Build/Base.pm 2006-03-07 09:00:28.884844800 -0800
>>>>@@ -334,7 +334,8 @@
>>>> $thisperl .= $exe unless $thisperl =~ m/$exe$/i;
>>>> }
>>>>
>>>>- foreach my $perl ( $c->{perlpath},
>>>>+ foreach my $perl ( File::Spec->rel2abs($^X),
>>>>+ $c->{perlpath},
>>>> map File::Spec->catfile($_, $thisperl),
>>>> File::Spec->path()
>>>> ) {
>>>> return $perl if -f $perl and $proto->_perl_is_same($perl);
>>>
>>>I'm afraid that didn't help either, since the t/_tmp/Simple/ directory
>>>doesn't have a perl executable.
>>
>>Hmm - so in your case is $^X just 'perl'? If that's the only pointer
>>to the currently running perl, we might have to do a PATH search for
>>it. Maybe only when it doesn't contain slashes or something.
>
>
> The above code does do a PATH search, but this perl isn't installed.
> We might have to do a search up cwd like
> ExtUtils::CBuilder::Base::perl_src().
I suspect this needs a way to apply the fixup only when running the test
&& $ENV{PERL_CORE}. The test files are being executed by perl's Makefile
or TEST, not being loaded and run from M::B, right? So, when each test
file is run it needs (or MBTest.pm needs) to figure out where the perl
is that loaded it and apply a fixup. We'll also need to put a hook in
M::B to allow the fixup.
Randy.
|
|
From: Yitzchak Scott-T. <sth...@ef...> - 2006-03-07 19:59:00
|
On Tue, Mar 07, 2006 at 01:32:52PM -0600, Ken Williams wrote:
>
> On Mar 7, 2006, at 11:57 AM, Andy Dougherty wrote:
>
> >On Tue, 7 Mar 2006, Yitzchak Scott-Thoennes wrote:
> >
> >>Can you try:
> >>
> >>--- lib/Module/Build/Base.pm.orig 2006-03-06 07:43:57.093750000 -0800
> >>+++ lib/Module/Build/Base.pm 2006-03-07 09:00:28.884844800 -0800
> >>@@ -334,7 +334,8 @@
> >> $thisperl .= $exe unless $thisperl =~ m/$exe$/i;
> >> }
> >>
> >>- foreach my $perl ( $c->{perlpath},
> >>+ foreach my $perl ( File::Spec->rel2abs($^X),
> >>+ $c->{perlpath},
> >> map File::Spec->catfile($_, $thisperl),
> >> File::Spec->path()
> >> ) {
> >> return $perl if -f $perl and $proto->_perl_is_same($perl);
> >
> >I'm afraid that didn't help either, since the t/_tmp/Simple/ directory
> >doesn't have a perl executable.
>
> Hmm - so in your case is $^X just 'perl'? If that's the only pointer
> to the currently running perl, we might have to do a PATH search for
> it. Maybe only when it doesn't contain slashes or something.
The above code does do a PATH search, but this perl isn't installed.
We might have to do a search up cwd like
ExtUtils::CBuilder::Base::perl_src().
|
|
From: H.Merijn B. <h.m...@xs...> - 2006-03-07 19:47:56
|
On Tue, 7 Mar 2006 09:15:13 -0800, Yitzchak Scott-Thoennes <sth...@ef...> wrote: > On Tue, Mar 07, 2006 at 09:30:00AM -0600, st...@pe... wrote: > > Automated smoke report for 5.9.4 patch 27398 > > scotty.peters.homeunix.org: Intel Pentium III (686-class) (i386/1 cpu) > > on netbsd - 3.0 > > using cc version 3.3.3 (NetBSD nb3 20040520) > > smoketime 5 hours 35 minutes (average 41 minutes 54 seconds) > > > > [stdio/perlio] -DDEBUGGING > > [stdio/perlio] -DDEBUGGING -Duse64bitint > > [stdio/perlio] -DDEBUGGING -Duseithreads > > [stdio/perlio] -DDEBUGGING -Duseithreads -Duse64bitint > > ../lib/Module/Build/t/basic.t...........FAILED 24-25 27-55 > > ../lib/Module/Build/t/compat.t..........FAILED 3-10 13-20 23 > > 30 35 38 41 43 > > 45-46 48-55 59 > > ../lib/Module/Build/t/install.t.........FAILED 23 25 > > ../lib/Module/Build/t/tilde.t...........FAILED 1-11 > > ../lib/Module/Build/t/xs.t..............FAILED 3-6 10 17-22 > > Inconsistent test results (between TEST and harness): > > ../lib/Module/Build/t/runthrough.t......FAILED at test 12 > > Can we see verbose output, at least of basic.t? - x1:/pro/3gl/CPAN/perl-current/t 104 > ./perl -I../lib ../lib/Module/Build/t/basic.t Can't locate MBTest.pm in @INC (@INC contains: t/lib ../lib /pro/lib/perl5/5.9.4/IA64.ARCHREV_0-LP64 /pro/lib/perl5/5.9.4 /pro/lib/perl5/site_perl/5.9.4/IA64.ARCHREV_0-LP64 /pro/lib/perl5/site_perl/5.9.4 /pro/lib/perl5/site_perl .) at ../lib/Module/Build/t/basic.t line 5. BEGIN failed--compilation aborted at ../lib/Module/Build/t/basic.t line 5. x1:/pro/3gl/CPAN/perl-current/t 107 > TEST ../lib/Module/Build/t/basic.t t/../lib/Module/Build/t/basic....Warning: Removing existing directory '/pro/3gl/CPAN/perl-current/t/_tmp/Simple' Perl lib version (5.9.4) doesn't match executable version (v5.8.7) at /pro/3gl/CPAN/perl-current/lib/Config.pm line 46. Compilation failed in require. BEGIN failed--compilation aborted. Perl lib version (5.9.4) doesn't match executable version (v5.8.7) at /pro/3gl/CPAN/perl-current/lib/Config.pm line 46. Compilation failed in require. BEGIN failed--compilation aborted. Perl lib version (5.9.4) doesn't match executable version (v5.8.3) at /pro/3gl/CPAN/perl-current/lib/Config.pm line 46. Compilation failed in require. BEGIN failed--compilation aborted. Warning: Can't locate your perl binary at /pro/3gl/CPAN/perl-current/t/../lib/Module/Build/Base.pm line 141. Perl lib version (5.9.4) doesn't match executable version (v5.8.7) at /pro/3gl/CPAN/perl-current/lib/Config.pm line 46. Compilation failed in require. BEGIN failed--compilation aborted. Perl lib version (5.9.4) doesn't match executable version (v5.8.7) at /pro/3gl/CPAN/perl-current/lib/Config.pm line 46. Compilation failed in require. BEGIN failed--compilation aborted. Perl lib version (5.9.4) doesn't match executable version (v5.8.3) at /pro/3gl/CPAN/perl-current/lib/Config.pm line 46. Compilation failed in require. BEGIN failed--compilation aborted. Warning: Can't locate your perl binary at /pro/3gl/CPAN/perl-current/t/../lib/Module/Build/Base.pm line 141. Perl lib version (5.9.4) doesn't match executable version (v5.8.7) at /pro/3gl/CPAN/perl-current/lib/Config.pm line 46. Compilation failed in require. BEGIN failed--compilation aborted. Perl lib version (5.9.4) doesn't match executable version (v5.8.7) at /pro/3gl/CPAN/perl-current/lib/Config.pm line 46. Compilation failed in require. BEGIN failed--compilation aborted. Perl lib version (5.9.4) doesn't match executable version (v5.8.3) at /pro/3gl/CPAN/perl-current/lib/Config.pm line 46. Compilation failed in require. BEGIN failed--compilation aborted. Perl lib version (5.9.4) doesn't match executable version (v5.8.7) at /pro/3gl/CPAN/perl-current/lib/Config.pm line 46. Compilation failed in require. BEGIN failed--compilation aborted. Perl lib version (5.9.4) doesn't match executable version (v5.8.7) at /pro/3gl/CPAN/perl-current/lib/Config.pm line 46. Compilation failed in require. BEGIN failed--compilation aborted. Perl lib version (5.9.4) doesn't match executable version (v5.8.3) at /pro/3gl/CPAN/perl-current/lib/Config.pm line 46. Compilation failed in require. BEGIN failed--compilation aborted. Perl lib version (5.9.4) doesn't match executable version (v5.8.7) at /pro/3gl/CPAN/perl-current/lib/Config.pm line 46. Compilation failed in require. BEGIN failed--compilation aborted. Perl lib version (5.9.4) doesn't match executable version (v5.8.7) at /pro/3gl/CPAN/perl-current/lib/Config.pm line 46. Compilation failed in require. BEGIN failed--compilation aborted. Perl lib version (5.9.4) doesn't match executable version (v5.8.3) at /pro/3gl/CPAN/perl-current/lib/Config.pm line 46. Compilation failed in require. BEGIN failed--compilation aborted. Perl lib version (5.9.4) doesn't match executable version (v5.8.7) at /pro/3gl/CPAN/perl-current/lib/Config.pm line 46. Compilation failed in require. BEGIN failed--compilation aborted. Perl lib version (5.9.4) doesn't match executable version (v5.8.7) at /pro/3gl/CPAN/perl-current/lib/Config.pm line 46. Compilation failed in require. BEGIN failed--compilation aborted. Perl lib version (5.9.4) doesn't match executable version (v5.8.3) at /pro/3gl/CPAN/perl-current/lib/Config.pm line 46. Compilation failed in require. BEGIN failed--compilation aborted. Warning: Can't locate your perl binary at /pro/3gl/CPAN/perl-current/t/../lib/Module/Build/Base.pm line 141. Use of uninitialized value $perl in concatenation (.) or string at /pro/3gl/CPAN/perl-current/t/../lib/Test/Harness/Straps.pm line 480. sh: -le: not found. Use of uninitialized value $command in concatenation (.) or string at /pro/3gl/CPAN/perl-current/t/../lib/Test/Harness/Straps.pm line 337. Can't exec "-w": No such file or directory at /pro/3gl/CPAN/perl-current/t/../lib/Test/Harness/Straps.pm line 293. Use of uninitialized value in warn at /pro/3gl/CPAN/perl-current/t/../lib/Test/Harness.pm line 357. # Failed test in ../lib/Module/Build/t/basic.t at line 114. # 'LIB/SIMPLE.PM -> BLIB/LIB/SIMPLE.PM # T/BASIC....CAN'T RUN T/BASIC.T. NO SUCH FILE OR DIRECTORY # ' # doesn't match '(?m-xis:^OK \d)' Use of uninitialized value $perl in concatenation (.) or string at /pro/3gl/CPAN/perl-current/t/../lib/Test/Harness/Straps.pm line 480. sh: -le: not found. Use of uninitialized value $command in concatenation (.) or string at /pro/3gl/CPAN/perl-current/t/../lib/Test/Harness/Straps.pm line 337. Can't exec "-w": No such file or directory at /pro/3gl/CPAN/perl-current/t/../lib/Test/Harness/Straps.pm line 293. Use of uninitialized value in warn at /pro/3gl/CPAN/perl-current/t/../lib/Test/Harness.pm line 357. FAILED at test 24 Failed 1 test script out of 1, 0.00% okay. ### Since not all tests were successful, you may want to run some of ### them individually and examine any diagnostic messages they produce. ### See the INSTALL document's section on "make test". ### You may have to set your dynamic library search path, ### LD_LIBRARY_PATH, to point to the build directory: ### setenv LD_LIBRARY_PATH `pwd`; cd t; ./perl harness ### LD_LIBRARY_PATH=`pwd`; export LD_LIBRARY_PATH; cd t; ./perl harness ### export LD_LIBRARY_PATH=`pwd`; cd t; ./perl harness ### for csh-style shells, like tcsh; or for traditional/modern ### Bourne-style shells, like bash, ksh, and zsh, respectively. u=0.04 s=0.01 cu=0.85 cs=0.40 scripts=1 tests=55 -- H.Merijn Brand Amsterdam Perl Mongers (http://amsterdam.pm.org/) using & porting perl 5.6.2, 5.8.x, 5.9.x on HP-UX 10.20, 11.00, 11.11, & 11.23, SuSE 10.0, AIX 4.3 & 5.2, and Cygwin. http://qa.perl.org http://mirrors.develooper.com/hpux/ http://www.test-smoke.org http://www.goldmark.org/jeff/stupid-disclaimers/ |
|
From: Andy D. <dou...@la...> - 2006-03-07 19:45:26
|
On Tue, 7 Mar 2006, Ken Williams wrote:
>
> On Mar 7, 2006, at 11:57 AM, Andy Dougherty wrote:
>
> > On Tue, 7 Mar 2006, Yitzchak Scott-Thoennes wrote:
> >
> > > Can you try:
> > >
> > > --- lib/Module/Build/Base.pm.orig 2006-03-06 07:43:57.093750000 -0800
> > > +++ lib/Module/Build/Base.pm 2006-03-07 09:00:28.884844800 -0800
> > > @@ -334,7 +334,8 @@
> > > $thisperl .= $exe unless $thisperl =~ m/$exe$/i;
> > > }
> > >
> > > - foreach my $perl ( $c->{perlpath},
> > > + foreach my $perl ( File::Spec->rel2abs($^X),
> > > + $c->{perlpath},
> > > map File::Spec->catfile($_, $thisperl),
> > > File::Spec->path()
> > > ) {
> > > return $perl if -f $perl and $proto->_perl_is_same($perl);
> >
> > I'm afraid that didn't help either, since the t/_tmp/Simple/ directory
> > doesn't have a perl executable.
>
> Hmm - so in your case is $^X just 'perl'? If that's the only pointer to the
> currently running perl, we might have to do a PATH search for it. Maybe only
> when it doesn't contain slashes or something.\
No, in this case, $^X is './perl', where the '.' is perl's t/ directory.
This is the same as Dominic's reported on OSX. The make test target does
the equivalent of
cd t; ./perl harness
So we don't have to go searching PATH -- we just have to remember where we
started. Apparently there's a chdir() in there somewhere.
--
Andy Dougherty dou...@la...
|
|
From: Yitzchak Scott-T. <sth...@ef...> - 2006-03-07 19:39:49
|
On Tue, Mar 07, 2006 at 07:58:59PM +0100, Dominic Dunlop wrote:
> Sorry for the absence.
>
> On 2006?03?07, at 18:04, Yitzchak Scott-Thoennes wrote:
>
> >Does this help:
> >
> >--- lib/Module/Build/Base.pm.orig 2006-03-06 07:43:57.093750000 -0800
> >+++ lib/Module/Build/Base.pm 2006-03-07 09:00:28.884844800 -0800
> >@@ -334,7 +334,8 @@
> > $thisperl .= $exe unless $thisperl =~ m/$exe$/i;
> > }
> >
> >- foreach my $perl ( $c->{perlpath},
> >+ foreach my $perl ( File::Spec->rel2abs($^X),
> >+ $c->{perlpath},
> > map File::Spec->catfile($_, $thisperl),
> > File::Spec->path()
> > ) {
> > return $perl if -f $perl and $proto->_perl_is_same($perl);
> >End of Patch.
>
> I think this has been overtaken by events, but no, it doesn't:
Hmm, is $c->{properties}{perl} set correctly at this point?
|
|
From: Ken W. <ke...@ma...> - 2006-03-07 19:33:27
|
On Mar 7, 2006, at 11:04 AM, Yitzchak Scott-Thoennes wrote: > > (Question for module-build-general only: why is absolute $^X exempt > from > the _perl_is_same check?) It probably shouldn't be. -Ken |
|
From: Ken W. <ke...@ma...> - 2006-03-07 19:33:08
|
On Mar 7, 2006, at 11:57 AM, Andy Dougherty wrote:
> On Tue, 7 Mar 2006, Yitzchak Scott-Thoennes wrote:
>
>> Can you try:
>>
>> --- lib/Module/Build/Base.pm.orig 2006-03-06 07:43:57.093750000 -0800
>> +++ lib/Module/Build/Base.pm 2006-03-07 09:00:28.884844800 -0800
>> @@ -334,7 +334,8 @@
>> $thisperl .= $exe unless $thisperl =~ m/$exe$/i;
>> }
>>
>> - foreach my $perl ( $c->{perlpath},
>> + foreach my $perl ( File::Spec->rel2abs($^X),
>> + $c->{perlpath},
>> map File::Spec->catfile($_, $thisperl), File::Spec->path()
>> ) {
>> return $perl if -f $perl and $proto->_perl_is_same($perl);
>
> I'm afraid that didn't help either, since the t/_tmp/Simple/ directory
> doesn't have a perl executable.
Hmm - so in your case is $^X just 'perl'? If that's the only pointer
to the currently running perl, we might have to do a PATH search for
it. Maybe only when it doesn't contain slashes or something.
-Ken
|
|
From: Ken W. <ke...@ma...> - 2006-03-07 19:29:56
|
On Mar 7, 2006, at 9:24 AM, Yitzchak Scott-Thoennes wrote: > > > On darwin, is $^X just the filename, or is it a relative path? It's various values in different contexts. ISTR that on Panther or Jaguar or something, if you used a shebang script with an absolute path in the shebang line, you'd only get a relative path (typically 'perl') in $^X, which isn't helpful. I think that's classic BSD-ish behavior. In Tiger it seems like they may have fixed it. -Ken |
|
From: Dominic D. <sho...@ma...> - 2006-03-07 18:59:09
|
Sorry for the absence.
On 2006=9603=9607, at 18:04, Yitzchak Scott-Thoennes wrote:
> Does this help:
>
> --- lib/Module/Build/Base.pm.orig 2006-03-06 07:43:57.093750000 =
-0800
> +++ lib/Module/Build/Base.pm 2006-03-07 09:00:28.884844800 -0800
> @@ -334,7 +334,8 @@
> $thisperl .=3D $exe unless $thisperl =3D~ m/$exe$/i;
> }
>
> - foreach my $perl ( $c->{perlpath},
> + foreach my $perl ( File::Spec->rel2abs($^X),
> + $c->{perlpath},
> map File::Spec->catfile($_, $thisperl), =
File::Spec->path()
> ) {
> return $perl if -f $perl and $proto->_perl_is_same($perl);
> End of Patch.
I think this has been overtaken by events, but no, it doesn't:
$ ./TEST ../lib/Module/Build/t/basic.t
t/../lib/Module/Build/t/basic....Warning: Removing existing directory =20=
'/Volumes/Tottie/Other/src/Perl/perl-current-working/t/_tmp/Simple'
Use of uninitialized value $_ in concatenation (.) or string at /=20
Volumes/Tottie/Other/src/Perl/perl-current-working/t/../lib/Module/=20
Build/Base.pm line 341.
Use of uninitialized value in warn at /Volumes/Tottie/Other/src/Perl/=20
perl-current-working/t/../lib/Module/Build/Base.pm line 341.
checking in , $^X is ./perl, perl is /Volumes/Tottie/Other/src/Perl/=20
perl-current-working/t/_tmp/Simple/perl, -f $perl is at /Volumes/=20
Tottie/Other/src/Perl/perl-current-working/t/../lib/Module/Build/=20
Base.pm line 341.
Use of uninitialized value $_ in concatenation (.) or string at /=20
Volumes/Tottie/Other/src/Perl/perl-current-working/t/../lib/Module/=20
Build/Base.pm line 341.
Use of uninitialized value in warn at /Volumes/Tottie/Other/src/Perl/=20
perl-current-working/t/../lib/Module/Build/Base.pm line 341.
checking in , $^X is ./perl, perl is /usr/local/bin/perl5.9.4, -f =20
$perl is at /Volumes/Tottie/Other/src/Perl/perl-current-working/t/../=20=
lib/Module/Build/Base.pm line 341.
...
--=20
Dominic Dunlop
|