I'm really confused. Some details might help. The report gives this:
PROGRAM OUTPUT
------------------------------
Output from '/usr/bin/make test':
perl Build.PL
Can't locate Module/Build.pm in @INC (you may need to install the
Module::Build module) (@INC contains: /etc/perl
/usr/local/lib/x86_64-linux-gnu/perl/5.22.1
/usr/local/share/perl/5.22.1 /usr/lib/x86_64-linux-gnu/perl5/5.22
/usr/share/perl5 /usr/lib/x86_64-linux-gnu/perl/5.22
/usr/share/perl/5.22 /usr/local/lib/site_perl
/usr/lib/x86_64-linux-gnu/perl-base .) at Build.PL line 6.
BEGIN failed--compilation aborted at Build.PL line 6.
GNUmakefile:101: recipe for target 'test-t' failed
make: *** [test-t] Error 2
That "perl Build.PL" is not coming from inside perl. It comes from
GNUmakefile picked up because this is GNU/Linux and /usr/bin/make is GNU
make.
The GNUMakefile has this:
PERL ?= perl
test-t:
$(PERL) Build.PL
If "perl" is not the right thing to use given this context , then what is?
Something is calling "make test" and as best as I can tell that's the
smoker doing it.
If it *is *the case that something in the smoker decided to invoke
"/usr/bin/make test" as it appears above, then how is a makefile supposed
to know which Perl is intended?
Thanks for the help.
On Fri, Jul 1, 2016 at 9:39 PM, David Golden <[email protected]> wrote:
> I think what Andreas means it that you always want this:
>
> system($^X, @args)
>
> Not this:
>
> system("perl", @args)
>
> The former invokes the current interpreter. The latter invokes the first
> perl in PATH.
>
> David
>
>
> On Fri, Jul 1, 2016 at 9:31 PM, Rocky Bernstein <[email protected]
> > wrote:
>
>> $^X implies the invoking program was Perl. It probably wasn't, thougyh
>> rather a shell script of some sort possibly invoked from make.
>>
>> And when you think of it, even a perl script that runs $^X has to have
>> been invoked somehow.
>>
>> So what's the right thing to do from a makefile or shell script? On
>> Linux, which is so far the only place where this is a problem, maybe it is
>> "/usr/bin/env perl"?
>>
>>
>>
>> On Fri, Jul 1, 2016 at 9:18 PM, Andreas Koenig <
>> [email protected]> wrote:
>>
>>> >>>>> On Fri, 1 Jul 2016 10:08:05 -0400, Rocky Bernstein <
>>> [email protected]> said:
>>>
>>> > Ok. Will try that. Thanks!
>>> > (Module::Build is in "configure_requires" already, but I do
>>> distribute
>>> > Makefile.PL)
>>>
>>> > What I don't understand though is why the failures are intermittent.
>>> > It happens right now only on certain GNU/Linux smokers. FreeBSD works
>>> > fine. MSWindows fails but I guess for a different reason.
>>>
>>> One of my smokers sent this report:
>>>
>>>
>>> http://www.cpantesters.org/cpan/report/d6a07946-3f0b-11e6-96f0-1bbc5bc2a771
>>>
>>> From the error message it is clear that system perl (see @INC contains
>>> ...) was asked for Module::Build while the invoking perl was
>>> /home/sand/src/perl/repoperls/installed-perls/perl/v5.22.2/8942/bin/perl
>>>
>>> So somebody called something like 'perl' instead of $^X
>>>
>>> I think I've heard, that staying away from Module::Build::Compat is a
>>> good advice. But your milage may vary.
>>>
>>> --
>>> andreas
>>>
>>
>>
>
>
> --
> David Golden <[email protected]> Twitter/IRC/GitHub: @xdg
>