Dear Nathan -- I see two things going on.
1) I think that CPAN.pm might have a bug where it's not finding
prerequisites because the PL failed. In this case, you have
Makefile.PL running Build.PL. There's some funky logic in CPAN.pm to
know when/where it can get prerequisites and maybe the use of
Module::Build::Compat is confusing it. (Andreas -- what about reading
YAML regardless of the result of the PL phase?)
2) Your Build.PL subclass has "use DBI" -- but that code gets loaded
by M::B to create your subclass. So you're guaranteed to fail if DBI
isn't installed. This isn't something that "build_requires" can
address -- build_requires are only satisfied after the PL file runs.
Instead, you have a few options:
* Use the bleeding_edge "configure_requires" option in META.yml, which
isn't widely supported yet, that is intended to get things installed
before calling Makefile.PL or Build.PL
* Change your "use DBI" to "require DBI" and put that inside your
ACTION_test subroutine so it isn't called until the test phase (when
presumably, your prerequisites pull it in).
* Move your DBI code into a PL file that gets called during the "make"
or "Build" stage. (I *think* that build_requires will be satisfied by
then, but I'm not 100% sure.)
I hope these ideas are helpful.
Regards,
David Golden
On 10/24/07, Nathan Gray <[EMAIL PROTECTED]> wrote:
> On Wed, Oct 24, 2007 at 05:09:04PM +0100, [EMAIL PROTECTED] wrote:
> > ------------------------------
> > TESTER COMMENTS
> > ------------------------------
> >
> > Additional comments from tester:
> >
> > [none provided]
> >
> > ------------------------------
> > PROGRAM OUTPUT
> > ------------------------------
> >
> > Output from '/home/david/cpantesting/perl-5.6.2/bin/perl Makefile.PL':
> >
> > # running Build.PL
> > /home/david/cpantesting/perl-5.6.2/bin/perl Build.PL
> > Creating custom builder _build/lib/Class/Inflate/Builder.pm in
> > _build/lib/Class/Inflate
> > install_driver(SQLite) failed: Can't locate DBD/SQLite.pm in @INC (@INC
> > contains:
> > /home/david/_/_/perl-5.6.2/.cpan/build/Class-Inflate-0.05-oqXhlg/_build/lib
> > _build/lib /home/david/cpantesting/perl-5.6.2/lib/5.6.2/i686-linux
> > /home/david/cpantesting/perl-5.6.2/lib/5.6.2
> > /home/david/cpantesting/perl-5.6.2/lib/site_perl/5.6.2/i686-linux
> > /home/david/cpantesting/perl-5.6.2/lib/site_perl/5.6.2
> > /home/david/cpantesting/perl-5.6.2/lib/site_perl .) at (eval 15) line 3,
> > <DATA> line 74.
> > Perhaps the DBD::SQLite perl module hasn't been fully installed,
> > or perhaps the capitalisation of 'SQLite' isn't right.
> > Available drivers: DBM, ExampleP, File, Gofer, Proxy, Sponge.
> > at
> > /home/david/_/_/perl-5.6.2/.cpan/build/Class-Inflate-0.05-oqXhlg/_build/lib/Class/Inflate/Builder.pm
> > line 10
> > Compilation failed in require at (eval 12) line 2, <DATA> line 74.
> > BEGIN failed--compilation aborted at (eval 12) line 2, <DATA> line 74.
> > Couldn't run Build.PL: Illegal seek at
> > /home/david/cpantesting/perl-5.6.2/lib/site_perl/5.6.2/Module/Build/Compat.pm
> > line 200.
> >
> > ------------------------------
> > PREREQUISITES
> > ------------------------------
> >
> > Prerequisite modules loaded:
> >
> > No requirements found
> >
>
> However, the Build.PL specifies that DBD::SQLite is required during
> the build process:
>
> build_requires => {
> 'Test::Debugger' => 0,
> 'DBD::SQLite' => 0,
> },
>
> -kolibrie
>
>
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.4.6 (GNU/Linux)
>
> iD8DBQFHH5uSYlZScpXqKgQRAt+TAJ0Wbq7eBhSUneezWBnVDxhHlFGCRwCfdqTd
> Q8WB5XaZ5kZqfSK7mxt5aIk=
> =GsRW
> -----END PGP SIGNATURE-----
>
>