On Mon, May 04, 2009 at 07:21:14PM -0400, Lian Wan Situ via RT wrote:
Show quoted text> Devel::Declare's requires ExtUtils::Depends for its Makefile.PL, when
> YAML is installed CPAN can get this from META.yml but when it the
> install will fail.
True. Without a YAML implementation configure_requires can't work.
Show quoted text> It seems the only way around this would be to include ExtUtils::Depends
> the same way that Module::Install is included.
No, probably not. ExtUtils::Depends is being used to look for other
build time dependencies, like B::Hooks::OP::Check. Those need to be
installed as well when running Makefile.PL, and at OP::Check can't be
bundled easily in inc/, as it's an XS module.
Show quoted text> There is no way to execute Makefile.PL to generate the Makefile to
> install the required dependency since the dependency is required to
> execute the Makefile.PL.
Not necessarily. One could use eval to check if ExtUtils::Depends is
install and maybe write a different Makefile when it isn't there. The
problem here is that we would need to do something that causes the
configure requirements to be installed on the first Makefile.PL run and
then causes CPAN to run Makefile.PL again to allow it to properly use
ExtUtils::Depends to find all the build dependencies and setup the
Makefile with the appropriate include paths.
I'm not aware of a way to do that and neither is the author of CPAN.pm,
so I'm afraid I can't really fix this issue. However, a documentation
patch describing that you'll need a CPAN version with configure_requires
support as well as a YAML implementation would be great. Even better
would be some Makefile.PL magic that properly checks for configure
requirements to be there and, if one of them is missing, present a nicer
error message, explaining why it can't just work and how it's possible
to fix.
--
BOFH excuse #362:
Plasma conduit breach