Skip Menu |

This queue is for tickets about the ExtUtils-MakeMaker CPAN distribution.

Report information
The Basics
Id: 21318
Status: resolved
Priority: 0/
Queue: ExtUtils-MakeMaker

People
Owner: Nobody in particular
Requestors: kane [...] cpan.org
Cc: knotty [...] ailleurs.org
AdminCc:

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



Subject: EU::MM provides the same files as EU::I -- package managers conflicts arise
Hi, after some discussion with YVES on #p5p, we found that ExtUtils::MakeMaker and ExtUtils::Install provide the same files (ExtUtils/Install.pm for example) which is currently causing package managers (like dpkg) to refuse to install one or the other. It looks like you moved EU::I to the inc/ part of EU::MM with 6.30_03, but i'm not quite sure if it's still being installed. Just wanting to make sure this issue is on your radar.
From: MSCHWERN [...] cpan.org
On Mon Sep 04 08:44:06 2006, KANE wrote: Show quoted text
> after some discussion with YVES on #p5p, we found that > ExtUtils::MakeMaker and > ExtUtils::Install provide the same files (ExtUtils/Install.pm for > example) which is currently > causing package managers (like dpkg) to refuse to install one or the > other. > > It looks like you moved EU::I to the inc/ part of EU::MM with 6.30_03, > but i'm not quite sure > if it's still being installed. > > Just wanting to make sure this issue is on your radar.
This state of affairs has been since 6.30_01. The modules in inc/ are not to be indexed and thus should be ignored by package managers. This is in the META.yml. no_index: dir: - inc The Makefile.PL contains smarts to decide whether or not the modules in inc/ should be installed by checking if a newer version is already installed. Thus it will not blow over a newer ExtUtils::Install. It will, however, blow over an equal version. Since I just updated to the newest version of ExtUtils::Install perhaps that's what's causing some indigestion. Could you provide some more information? FWIW dpkg has mechanisms for dealing with two packages shipping the same files. Most other packaging systems do not.
On Mon Sep 04 19:02:24 2006, MSCHWERN wrote: Show quoted text
> The Makefile.PL contains smarts to decide whether or not the modules in > inc/ should be installed by checking if a newer version is already > installed. Thus it will not blow over a newer ExtUtils::Install. It > will, however, blow over an equal version.
The 'best' thing to do, from a package manager perspective, is to depend on ExtUtils::Install (and perhaps provide a bootstrap copy in inc/ so you're able to install the external one). Show quoted text
> Since I just updated to the > newest version of ExtUtils::Install perhaps that's what's causing some > indigestion. Could you provide some more information? > > FWIW dpkg has mechanisms for dealing with two packages shipping the same > files. Most other packaging systems do not.
I think the person who told me this was a gentoo user.. i dont have specifics, but they can be gotten. It really just boils down two 2 releases supplying the same files, which can be hurtful. If it's unavoidable, so be it, but perhaps there's an easier/more elegant way.
Subject: Re: [rt.cpan.org #21318] EU::MM provides the same files as EU::I -- package managers conflicts arise
Date: Tue, 05 Sep 2006 14:11:57 -0400
To: bug-ExtUtils-MakeMaker [...] rt.cpan.org
From: Michael G Schwern <schwern [...] gmail.com>
via RT wrote: Show quoted text
> Queue: ExtUtils-MakeMaker > Ticket <URL: http://rt.cpan.org/Ticket/Display.html?id=21318 > > > On Mon Sep 04 19:02:24 2006, MSCHWERN wrote:
>> The Makefile.PL contains smarts to decide whether or not the modules in >> inc/ should be installed by checking if a newer version is already >> installed. Thus it will not blow over a newer ExtUtils::Install. It >> will, however, blow over an equal version.
> > The 'best' thing to do, from a package manager perspective, is to depend > on ExtUtils::Install (and perhaps provide a bootstrap copy in inc/ so you're > able to install the external one).
ExtUtils::MakeMaker cannot depend on anything. It introduces the great grandaddy of all circular dependencies. The ExtUtils-MakeMaker distribution assumes that your copy of MakeMaker is completely fucked and so it must work stand-alone. Best we can do is provide that bootstrap copy. Show quoted text
>> Since I just updated to the >> newest version of ExtUtils::Install perhaps that's what's causing some >> indigestion. Could you provide some more information? >> >> FWIW dpkg has mechanisms for dealing with two packages shipping the same >> files. Most other packaging systems do not.
> > I think the person who told me this was a gentoo user.. i dont have specifics, > but they can be gotten. It really just boils down two 2 releases supplying the > same files, which can be hurtful. > > If it's unavoidable, so be it, but perhaps there's an easier/more elegant way.
I think perhaps changing MakeMaker so it only overrides an older (not equal) version will make a lot of this go away. Nobody complained about this in 6.30_01, likely because it contained an older version of ExtUtils::Install than ExtUtils-Install. I'll make that change now and rerelease.
6.30_04 should fix this issue. Please download and give it a shot. http://www.pobox.com/~schwern/src/ExtUtils-MakeMaker-6.30_04.tar.gz
On Mon Sep 11 16:24:35 2006, MSCHWERN wrote: Show quoted text
> 6.30_04 should fix this issue. Please download and give it a shot. > http://www.pobox.com/~schwern/src/ExtUtils-MakeMaker-6.30_04.tar.gz
The conflict with EU::I indeed went away. However, now there is a new one: Both EU::MM and EU::Manifest install 'ExtUtils::MANIFEST.SKIP'.
Subject: Re: [rt.cpan.org #21318] EU::MM provides the same files as EU::I -- package managers conflicts arise
Date: Sat, 24 Mar 2007 14:01:51 -0700
To: bug-ExtUtils-MakeMaker [...] rt.cpan.org
From: Michael G Schwern <schwern [...] pobox.com>
via RT wrote: Show quoted text
> Queue: ExtUtils-MakeMaker > Ticket <URL: http://rt.cpan.org/Ticket/Display.html?id=21318 > > > On Mon Sep 11 16:24:35 2006, MSCHWERN wrote:
>> 6.30_04 should fix this issue. Please download and give it a shot. >> http://www.pobox.com/~schwern/src/ExtUtils-MakeMaker-6.30_04.tar.gz
> > The conflict with EU::I indeed went away. However, now there is a new > one: Both EU::MM and EU::Manifest install 'ExtUtils::MANIFEST.SKIP'.
There's logic in the Makefile.PL which should prevent the MANIFEST.SKIP from being installed unless ExtUtils::Manifest is being installed. # If ExtUtils::Manifest isn't included don't include MANIFEST.SKIP # either. my $maniskip_key = grep /MANIFEST.SKIP$/i, keys %{$self->{PM}}; my $manifest_pm_key = grep /Manifest.pm$/i, keys %{$self->{PM}}; delete $self->{PM}{$maniskip_key} unless exists $self->{PM}{$manifest_pm_key}; EU::MM is shipping with EU::Manifest 1.48 so if you have the latest CPAN version of EU::Manifest (1.51) then MANIFEST.SKIP should not get installed. If you have something older it will get installed. If that's not the case let me know. This is necessary as EU-MM must be able to bootstrap itself. I must leave it as an exercise for the package managers to figure out how to handle it for their own particular systems.
From: KNOTTY [...] cpan.org
On Sat Mar 24 17:02:39 2007, schwern@pobox.com wrote: Show quoted text
> There's logic in the Makefile.PL which should prevent the > MANIFEST.SKIP from > being installed unless ExtUtils::Manifest is being installed. > > # If ExtUtils::Manifest isn't included don't include > MANIFEST.SKIP > # either. > my $maniskip_key = grep /MANIFEST.SKIP$/i, keys %{$self-
> >{PM}};
> my $manifest_pm_key = grep /Manifest.pm$/i, keys %{$self-
> >{PM}};
> delete $self->{PM}{$maniskip_key} unless > exists $self->{PM}{$manifest_pm_key}; > > EU::MM is shipping with EU::Manifest 1.48 so if you have the latest > CPAN > version of EU::Manifest (1.51) then MANIFEST.SKIP should not get > installed. > If you have something older it will get installed. If that's not the > case let > me know. > > This is necessary as EU-MM must be able to bootstrap itself. I must > leave it > as an exercise for the package managers to figure out how to handle it > for > their own particular systems.
my $maniskip_key = grep /MANIFEST.SKIP$/i, keys %{$self->{PM}}; return the number of keys matching the grep, and my $manifest_pm_key = grep /Manifest.pm$/i, keys %{$self->{PM}}; return 0 if the grep doesn't match so delete $self->{PM}{$maniskip_key} unless exists $self->{PM}{$manifest_pm_key}; will become delete $self->{PM}{1} unless exists $self->{PM}{0}; so perhaps: my ( $maniskip_key ) = grep /MANIFEST.SKIP$/i, keys %{$self->{PM}}; will help. best regards.
You're correct, excellent catch! I've fixed it in the repository. Please try the Makefile.PL from http://svn.schwern.org/svn/CPAN/ExtUtils-MakeMaker/trunk
On Sat May 26 17:05:10 2007, MSCHWERN wrote: Show quoted text
> You're correct, excellent catch! I've fixed it in the repository. > Please try the Makefile.PL from > http://svn.schwern.org/svn/CPAN/ExtUtils-MakeMaker/trunk
You have a warning: Use of uninitialized value in exists at Makefile.PL line 144. due to the fact that grep /Manifest.pm$/i, keys %{$self->{PM}}; return () and so $manifest_pm_key is undef and exists $self->{PM}{$manifest_pm_key}; makes a warning. what you think about: my ( $maniskip_key ) = grep /MANIFEST.SKIP$/i, keys %{$self->{PM}}; delete $self->{PM}{$maniskip_key} unless grep /Manifest.pm$/i, keys %{$self->{PM}}; best regards.
Subject: Re: [rt.cpan.org #21318] EU::MM provides the same files as EU::I -- package managers conflicts arise
Date: Sat, 26 May 2007 16:30:55 -0700
To: bug-ExtUtils-MakeMaker [...] rt.cpan.org
From: Michael G Schwern <schwern [...] pobox.com>
Karl Pradene via RT wrote: Show quoted text
> Queue: ExtUtils-MakeMaker > Ticket <URL: http://rt.cpan.org/Ticket/Display.html?id=21318 > > > On Sat May 26 17:05:10 2007, MSCHWERN wrote:
>> You're correct, excellent catch! I've fixed it in the repository. >> Please try the Makefile.PL from >> http://svn.schwern.org/svn/CPAN/ExtUtils-MakeMaker/trunk
> > You have a warning: > > Use of uninitialized value in exists at Makefile.PL line 144.
I've moved it into its own routine which allows the use of return as a short-cut to simplify the logic a bit. Have a look, please.
On Sat May 26 19:31:50 2007, schwern@pobox.com wrote: Show quoted text
> I've moved it into its own routine which allows the use of return as a > short-cut to simplify the logic a bit. Have a look, please.
sorry for my last post, I think I did read a local version, not your. I don't make this mistake this time, and all seems to be ok now. I will test to autobuild a .deb with cpanplus as soon as you put a new release on cpan. best regards.