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
MIME-Version: 1.0
X-Mailer: MIME-tools 5.427 (Entity 5.427)
Content-Type: text/plain
Charset: utf8
Content-Disposition: inline
Content-Transfer-Encoding: binary
X-RT-Original-Encoding: utf-8
Content-Length: 546
Download (untitled) / with headers
text/plain 546b
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.
MIME-Version: 1.0
X-Spam-Status: No, hits=0.0 required=8.0 tests=
In-Reply-To: <rt-3.6.HEAD-4108-1241479271-1628.45712-4-0 [...] rt.cpan.org>
Content-Disposition: inline
References: <RT-Ticket-45712 [...] rt.cpan.org> <rt-3.6.HEAD-4108-1241479271-1628.45712-4-0 [...] rt.cpan.org>
X-Virus-Checked: Checked by ClamAV on 16.mx.develooper.com
X-Operating-System: Debian GNU/Linux 2.6.14.3
Message-ID: <20090504233404.GC10690 [...] perldition.org>
Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="V88s5gaDVPzZ0KCq"
Received: from la.mx.develooper.com (x1.develooper.com [207.171.7.70]) by diesel.bestpractical.com (Postfix) with SMTP id D00534DCF99 for <bug-Devel-Declare [...] rt.cpan.org>; Mon, 4 May 2009 19:34:55 -0400 (EDT)
Received: (qmail 23220 invoked by uid 103); 4 May 2009 23:34:55 -0000
Received: from x16.dev (10.0.100.26) by x1.dev with QMQP; 4 May 2009 23:34:55 -0000
Received: from weedy.perldition.org (HELO weedy.perldition.org) (85.10.210.75) by 16.mx.develooper.com (qpsmtpd/0.80) with ESMTP; Mon, 04 May 2009 16:34:50 -0700
Received: from rafl by weedy.perldition.org with local (Exim 4.60) (envelope-from <rafl [...] perldition.org>) id 1M17fh-00059B-AX for bug-Devel-Declare [...] rt.cpan.org; Tue, 05 May 2009 01:34:05 +0200
Delivered-To: cpan-bug+Devel-Declare [...] diesel.bestpractical.com
Subject: Re: [rt.cpan.org #45712] `cpan Devel::Declare` fails without YAML or ExtUtils::Depends
User-Agent: Mutt/1.5.13 (2006-08-11)
Return-Path: <rafl [...] perldition.org>
X-Spam-Check-BY: 16.mx.develooper.com
X-Original-To: bug-Devel-Declare [...] rt.cpan.org
Date: Tue, 5 May 2009 01:34:05 +0200
X-Spam-Level: *
X-Binford: 5100 (more power)
To: Lian Wan Situ via RT <bug-Devel-Declare [...] rt.cpan.org>
Priority: normal
From: Florian Ragwitz <rafl [...] debian.org>
RT-Message-ID: <rt-3.6.HEAD-4108-1241480104-1162.45712-0-0 [...] rt.cpan.org>
Content-Length: 0
Content-Type: text/plain; charset="utf-8"
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
X-RT-Original-Encoding: utf-8
Content-Length: 1854
Download (untitled) / with headers
text/plain 1.8k
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
Content-Description: Digital signature
content-type: application/pgp-signature; name="signature.asc"
Content-Disposition: inline
Content-Length: 189
Download signature.asc
application/pgp-signature 189b

Message body not shown because it is not plain text.

MIME-Version: 1.0
X-Mailer: MIME-tools 5.427 (Entity 5.427)
Content-Disposition: inline
Charset: utf8
Message-ID: <rt-3.6.HEAD-22627-1261686654-238.45712-0-0 [...] rt.cpan.org>
Content-Type: text/plain
Content-Transfer-Encoding: binary
From: m.nooning [...] comcast.net
X-RT-Original-Encoding: utf-8
Content-Length: 153
Download (untitled) / with headers
text/plain 153b
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.
MIME-Version: 1.0
X-Mailer: MIME-tools 5.427 (Entity 5.427)
Content-Disposition: inline
Content-Type: text/plain; charset="UTF-8"
Message-ID: <rt-3.8.HEAD-20563-1315738052-782.45712-0-0 [...] rt.cpan.org>
Content-Transfer-Encoding: binary
X-RT-Original-Encoding: utf-8
Content-Length: 176
Download (untitled) / with headers
text/plain 176b
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.


This service is sponsored and maintained by Best Practical Solutions and runs on Perl.org infrastructure.

Please report any issues with rt.cpan.org to rt-cpan-admin@bestpractical.com.