On Fri, Mar 7, 2008 at 1:25 PM, John Peacock <[EMAIL PROTECTED]> wrote:
> OK, I give up.  How to I communicate to the CPAN testing framework that
>  the test machine is missing a required/vital external binary and should
>  just NA this test?  I've replicated the way that the code itself
>  searches for the binary (svnlook if you care) in my Build.PL, and I'm
>  using 'exit 0', which is what is supposed to make CPAN itself happy to
>  stop.  But the damn CPAN Testing framework is trying to grovel around
>  inside the [now ungenerated] _cpan/prereqs file:

No -- this isn't a CPAN Testing framework problem.  It's a Makefile.PL
and Module::Build::Compat problem.

If you look at the test report, you see this:

Output from '/home/src/perl/repoperls/installed-perls/maint-5.8/p8tnrrm/[EMAIL 
PROTECTED]/bin/perl
Makefile.PL':

So here's what I think happens:

1. Makefile.PL runs M::B::Compat, which runs Build.PL, which exits
with 0 and doesn't create a Build file.

2. M::B::Compat doesn't check if a Build file was created -- it only
checks to see if Build.PL ran without error -- and "exit 0" is not an
error.

3. M::B::Compat writes a Makefile and therefore CPAN.pm decides that
Makefile.PL was successful and continues instead of stopping.

The last line of the Makefile.PL just needs to test for the presence
of a "Build" file:

  Module::Build::Compat->run_build_pl(args => [EMAIL PROTECTED]);
  Module::Build::Compat->write_makefile() if -f "Build";

Regards,
David

Reply via email to