Skip Menu |

This queue is for tickets about the B-Utils CPAN distribution.

Report information
The Basics
Id: 58365
Status: open
Priority: 0/
Queue: B-Utils

People
Owner: ether [...] cpan.org
Requestors: sprout [...] cpan.org
Cc: ribasushi [...] leporine.io
AdminCc:

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



Subject: configure_requires causes installation problems
Date: Sun, 13 Jun 2010 14:45:49 -0700
To: bug-B-Utils [...] rt.cpan.org
From: Father Chrysostomos <sprout [...] cpan.org>
CPAN.pm did not start supporting configure_requires properly until 1.94_57. So the latest ‘stable’ release (1.9402) doesn’t even support it. This makes it hard to install B::Utils (or any other module using configure_requires) on a new perl installation. I’ve come up with a solution, which I believe may work all the way back to perl 5: List the configure dependences as regular dependencies and have the Makefile re-run Makefile.PL if necessary. This piece of code should do it: (in Makefile.PL:) my $recursive = $ARGV[0] eq 'recursive' && shift; if( ... the configure dependencies have not been met ... ) { if($recursive) { die <<"end" Such and such is required to configure this module. Please install it and re-run $0. end } package MY; *top_targets = sub { my $inherited = SUPER'top_targets{shift}@'_; my $mpl_args = join " ", map qq["$_"], @ARGV; $inherited =~ s<^(all\s*::.*?(\r?\n))>< $1 ."\t\$(PERLRUN) Makefile.PL recursive $mpl_args$2" ."\t\$(MAKE) \$(PASTHRU)$2" Show quoted text
>me;
$inherited; }; } Then, in maybe ten years or so, you can delete it. :-)
Subject: Re: [rt.cpan.org #58365] configure_requires causes installation problems
Date: Sun, 13 Jun 2010 16:55:55 -0700
To: bug-B-Utils [...] rt.cpan.org
From: Joshua ben Jore <twists [...] gmail.com>
On Sun, Jun 13, 2010 at 2:46 PM, Father Chrysostomos via RT <bug-B-Utils@rt.cpan.org> wrote: Show quoted text
> Sun Jun 13 17:46:05 2010: Request 58365 was acted upon. > Transaction: Ticket created by sprout@cpan.org >       Queue: B-Utils >     Subject: configure_requires causes installation problems >   Broken in: (no value) >    Severity: (no value) >       Owner: Nobody >  Requestors: sprout@cpan.org >      Status: new >  Ticket <URL: https://rt.cpan.org/Ticket/Display.html?id=58365 > > > CPAN.pm did not start supporting configure_requires properly until > 1.94_57. So the latest ‘stable’ release (1.9402) doesn’t even support > it.
The latest stable seems to work with configure_requires but I take the point, certainly. I'd recently found that Data::Dump::Streamer had to also perform the ExtUtils::Depends dance purely because it depended on B::Utils. I was unable to allow it's .PL file to delegate dependency handling like any other normal module. Have you tried your snippet out anywhere? Josh
Subject: Re: [rt.cpan.org #58365] configure_requires causes installation problems
Date: Sun, 13 Jun 2010 18:15:16 -0700
To: bug-B-Utils [...] rt.cpan.org
From: Father Chrysostomos <sprout [...] cpan.org>
On Jun 13, 2010, at 4:56 PM, Joshua ben Jore via RT wrote: Show quoted text
> <URL: http://rt.cpan.org/Ticket/Display.html?id=58365 > > > On Sun, Jun 13, 2010 at 2:46 PM, Father Chrysostomos via RT > <bug-B-Utils@rt.cpan.org> wrote:
>> Sun Jun 13 17:46:05 2010: Request 58365 was acted upon. >> Transaction: Ticket created by sprout@cpan.org >> Queue: B-Utils >> Subject: configure_requires causes installation problems >> Broken in: (no value) >> Severity: (no value) >> Owner: Nobody >> Requestors: sprout@cpan.org >> Status: new >> Ticket <URL: https://rt.cpan.org/Ticket/Display.html?id=58365 > >> >> CPAN.pm did not start supporting configure_requires properly until >> 1.94_57. So the latest ‘stable’ release (1.9402) doesn’t even support >> it.
> > The latest stable seems to work with configure_requires
Only if YAML.pm is installed. In 1.94_56 (which comes with perl 5.12), it is too easy for the installation step to be skipped (in cases where the configure prerequisite is also a run-time prerequisite), as the messages provided to the user are misleading. See <http://rt.cpan.org/Ticket/Display.html?id=57788 Show quoted text
>.
Show quoted text
> but I take the > point, certainly. I'd recently found that Data::Dump::Streamer had to > also perform the ExtUtils::Depends dance purely because it depended on > B::Utils. I was unable to allow it's .PL file to delegate dependency > handling like any other normal module. > > Have you tried your snippet out anywhere?
I tried it with CPAN 1.9402 (without YAML) on perl 5.10.1, in a dummy distribution that I set up for the purpose (but never released; I could make an Acme release if you’d like). I tried it both with and without the prerequisite already installed.
Subject: Re: [rt.cpan.org #58365] configure_requires causes installation problems
Date: Mon, 14 Jun 2010 01:06:10 -0700
To: bug-B-Utils [...] rt.cpan.org
From: Joshua ben Jore <twists [...] gmail.com>
On Sun, Jun 13, 2010 at 6:15 PM, Father Chrysostomos via RT <bug-B-Utils@rt.cpan.org> wrote: Show quoted text
>       Queue: B-Utils >  Ticket <URL: http://rt.cpan.org/Ticket/Display.html?id=58365 > > > > On Jun 13, 2010, at 4:56 PM, Joshua ben Jore via RT wrote: >
>> <URL: http://rt.cpan.org/Ticket/Display.html?id=58365 > >> >> On Sun, Jun 13, 2010 at 2:46 PM, Father Chrysostomos via RT >> <bug-B-Utils@rt.cpan.org> wrote:
>>> Sun Jun 13 17:46:05 2010: Request 58365 was acted upon. >>> Transaction: Ticket created by sprout@cpan.org >>>       Queue: B-Utils >>>     Subject: configure_requires causes installation problems >>>   Broken in: (no value) >>>    Severity: (no value) >>>       Owner: Nobody >>>  Requestors: sprout@cpan.org >>>      Status: new >>>  Ticket <URL: https://rt.cpan.org/Ticket/Display.html?id=58365 > >>> >>> CPAN.pm did not start supporting configure_requires properly until >>> 1.94_57. So the latest ‘stable’ release (1.9402) doesn’t even support >>> it.
>> >> The latest stable seems to work with configure_requires
> > Only if YAML.pm is installed. > > In 1.94_56 (which comes with perl 5.12), it is too easy for the > installation step to be skipped (in cases where the configure > prerequisite is also a run-time prerequisite), as the messages > provided to the user are misleading. See <http://rt.cpan.org/Ticket/Display.html?id=57788 >  >. >
>> but I take the >> point, certainly. I'd recently found that Data::Dump::Streamer had to >> also perform the ExtUtils::Depends dance purely because it depended on >> B::Utils. I was unable to allow it's .PL file to delegate dependency >> handling like any other normal module. >> >> Have you tried your snippet out anywhere?
> > I tried it with CPAN 1.9402 (without YAML) on perl 5.10.1, in a dummy > distribution that I set up for the purpose (but never released; I > could make an Acme release if you’d like). I tried it both with and > without the prerequisite already installed.
Did you typo this line? my $inherited = SUPER'top_targets{shift}@'_;
Subject: Re: [rt.cpan.org #58365] configure_requires causes installation problems
Date: Sun, 20 Jun 2010 12:15:11 -0700
To: bug-B-Utils [...] rt.cpan.org
From: Father Chrysostomos <sprout [...] cpan.org>
On Jun 14, 2010, at 1:06 AM, Joshua ben Jore via RT wrote: Show quoted text
... Show quoted text
> Did you typo this line? > > my $inherited = SUPER'top_targets{shift}@'_; >
No. Try running it. :-) I’ve just gone and put this snippet of code in a module, Module::ConfigureRequires, which I’ve just uploaded to CPAN. Could you explain to me why DDS needs ExtUtils::Depends in its configure_requires? That seems to imply that the problem is worse than I thought. Father Chrysostomos
Subject: Re: [rt.cpan.org #58365] configure_requires causes installation problems
Date: Wed, 23 Jun 2010 05:11:56 -0400
To: bug-B-Utils [...] rt.cpan.org
From: Joshua ben Jore <twists [...] gmail.com>
On Sun, Jun 20, 2010 at 3:15 PM, Father Chrysostomos via RT <bug-B-Utils@rt.cpan.org> wrote: Show quoted text
>       Queue: B-Utils >  Ticket <URL: https://rt.cpan.org/Ticket/Display.html?id=58365 > > > On Jun 14, 2010, at 1:06 AM, Joshua ben Jore via RT wrote: > > ...
>> Did you typo this line? >> >>    my $inherited = SUPER'top_targets{shift}@'_; >>
> No. Try running it. :-) > > I’ve just gone and put this snippet of code in a module, > Module::ConfigureRequires, which I’ve just uploaded to CPAN. > > Could you explain to me why DDS needs ExtUtils::Depends in its > configure_requires? That seems to imply that the problem is worse than > I thought.
I think: * The DDS Build.PL creates a ./Build and exits 0 but prints the right response to trigger CPAN to get it to resolve dependencies I know: * CPAN runs B::Util's Build.PL but exits 0 and doesn't create a Build. Then CPAN ignores that it's not installed B::Utils and attempts to run DDS's Build. The proper action seems to be for the DDS Build.PL is to include the dependencies required by B::Utils and evaluate itself whether it's dependencies will work and if not, it ought to *also* to an exit 0. I think this snow-balls up the dependency chain. This a chain of only two dependencies but this could easily be much worse. Josh
I can fix this for 0.27 if jbenjore is willing. The Makefile.PL can be improved a bit given recent advancements in Dist::Zilla, too.
Subject: Re: [rt.cpan.org #58365] configure_requires causes installation problems
Date: Sat, 2 May 2015 11:11:31 -0700
To: "bug-B-Utils [...] rt.cpan.org" <bug-B-Utils [...] rt.cpan.org>
From: Joshua ben Jore <twists [...] gmail.com>
Please go ahead. On Sun, Apr 26, 2015 at 7:07 PM, Karen Etheridge via RT < bug-B-Utils@rt.cpan.org> wrote: Show quoted text
> Queue: B-Utils > Ticket <URL: https://rt.cpan.org/Ticket/Display.html?id=58365 > > > I can fix this for 0.27 if jbenjore is willing. The Makefile.PL can be > improved a bit given recent advancements in Dist::Zilla, too. >