Skip Menu |

This queue is for tickets about the Devel-Declare CPAN distribution.

Report information
The Basics
Id: 45712
Status: resolved
Priority: 0/
Queue: Devel-Declare

People
Owner: Nobody in particular
Requestors: lwsitu [...] yahoo.com
Cc:
AdminCc:

Bug Information
Severity: (no value)
Broken in: (no value)
Fixed in: (no value)



Subject: `cpan Devel::Declare` fails without YAML or ExtUtils::Depends
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. 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. It seems the only way around this would be to include ExtUtils::Depends the same way that Module::Install is included. If you manually install ExtUtils::Depends or YAML before Devel::Declare then everything works fine of course.
Subject: Re: [rt.cpan.org #45712] `cpan Devel::Declare` fails without YAML or ExtUtils::Depends
Date: Tue, 5 May 2009 01:34:05 +0200
To: Lian Wan Situ via RT <bug-Devel-Declare [...] rt.cpan.org>
From: Florian Ragwitz <rafl [...] debian.org>
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
Download signature.asc
application/pgp-signature 189b

Message body not shown because it is not plain text.

From: m.nooning [...] comcast.net
Thanks for the tip. I tried this with MinGW and with Visual Studio 2008 compilers. Same thing. I needed to install ExtUtils, then ExtUtils::Depends.
The toolchain is a lot better about handling configure_requires these days. I don't think any more is required of Devel::Declare than to declare the configure-time dependency.