Re: [Module-build-general] bug in Module-Build-0.18
Status: Beta
Brought to you by:
kwilliams
|
From: jk <bil...@fa...> - 2003-05-15 22:03:22
|
Ken Williams wrote:
>
> On Saturday, May 10, 2003, at 05:56 PM, jk wrote:
>
>> 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.
>
>
> Hmm, that's strange. Perhaps you set PERL5LIB after you ran 'perl
> Build.PL'? 'perl Build.PL' freezes @INC so that it'll be the same for
> all subsequent runnings of the 'Build' script.
I don't think so, the PERL5LIB is set in my .bash_profile
>
> Oh - note that it can't find B::Module::Info, not Module::Info. They
> should have both been installed as part of the Module::Info package.
> What happens if you run this one-liner to check whether Module::Info
> is working?
>
> perl -MModule::Info -le 'print
> Module::Info->new_from_module("File::Spec")->packages_inside'
>
=====screen output starts here======
$ perl -MModule::Info -le 'print
Module::Info->new_from_module("File::Spec")->packages_inside'
File::Spec
$
=======end of screen output=======
.
.
.
>
>
>> 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
>
>
> I don't think that should make any tests fail, it just complains that
> it can't load Module::Info - but notice it also says "All tests
> successful", which is true.
>
True, so the problem may just be one of incorrect complaints. What
seems odd to me is how when it complains it can't find B/Module/Info.pm
in @INC, and then prints out what it thinks @INC is, it doesn't include
the paths set in PERL5LIB.
===========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================
|