Bug 231549 - yum fails to resolve dependancies when dep moves from perl to perl-devel
Summary: yum fails to resolve dependancies when dep moves from perl to perl-devel
Keywords:
Status: CLOSED NEXTRELEASE
Alias: None
Product: Fedora
Classification: Fedora
Component: yum
Version: 6
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Jeremy Katz
QA Contact:
URL:
Whiteboard:
: 233796 (view as bug list)
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2007-03-08 21:58 UTC by Robin Norwood
Modified: 2014-01-21 22:57 UTC (History)
4 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2007-03-14 04:36:43 UTC
Type: ---
Embargoed:


Attachments (Terms of Use)
results of yum -d7 install 'perl(ExtUtils::MakeMaker)' (840 bytes, text/plain)
2007-03-08 21:58 UTC, Robin Norwood
no flags Details
log of irc conversation about this bug. (10.42 KB, text/plain)
2007-03-08 22:02 UTC, Robin Norwood
no flags Details
patch to 3.0.4 which _should_ fix this bug (5.08 KB, patch)
2007-03-12 20:37 UTC, Seth Vidal
no flags Details | Diff

Description Robin Norwood 2007-03-08 21:58:57 UTC
Description of problem:

We are attempting to split the 'devel' bits of perl out into a perl-devel
subpackage per standard packaging guidelines.  In the course of this, some perl
modules are moved into perl-devel.  However, if the following sequence of events
occurs, yum does not work as expected:

* perl-5.8.8-10.i386 provides perl(ExtUtils::MakeMaker)
* perl-5.8.8-14.1.i386 does not provide perl(ExtUtils::MakeMaker)
* perl-devel-5.8.8-14.1.i386 provides perl(ExtUtils::MakeMaker)

o System starts with perl-5.8.8-10.i386
o Nothing on the system depends on perl(ExtUtils::MakeMaker)
o User upgrades to perl-5.8.8-14.1.i386, but does not install perl-devel
o System has two repos configured.  We'll call them 'perl-10' and 'perl-14.1'.
o 'perl-10' contains perl-5.8.8-10.i386
o 'perl-14.1' contains perl-5.8.8-14.1.i386 and perl-devel-5.8.8-14.1.i386
o User runs: yum install 'perl(ExtUtils::MakeMaker)'
o yum replies: "Nothing to do"

However, if the user disables the repo named 'perl-10', the same yum command
installs perl-devel-5.8.8-10.i386

Very curious.

Version-Release number of selected component (if applicable):

yum-3.0.3-1

How reproducible: 100%

Steps to Reproduce:

1. install perl-5.8.8-10 (or any version prior to 5.8.8-14)
2. Set up the following repos (no others needed):

[perl-10]
name=Perl 10
baseurl=http://people.redhat.com/rnorwood/repos/perl-10/
enabled=1
gpgcheck=0

[perl-14.1]
name=Perl 14.1
baseurl=http://people.redhat.com/rnorwood/repos/perl-14.1/
enabled=1
gpgcheck=0


3. run:
# yum install 'perl(ExtUtils::MakeMaker)'

(Notice "Nothing to do" response.)

4. Disable the perl-10 repo

5. Rerun the command from step 3.

(yum should now suggest perl-devel-5.8.8-14.1 for install.)


Actual results:

"Nothing to do"

Expected results:

install perl-devel-5.8.8-14.1

Additional info:

o I tried a few (useless) tweaks of the dependencies, like having
perl-devel-5.8.8-14.1 Obsolete: perl < 5.8.8-14.1, to no avail.

o I'll attach the output of yum -d7 ...

o I spoke to skvidal and pjones on #fedora-devel.  I'll attach a transcript.

Comment 1 Robin Norwood 2007-03-08 21:58:57 UTC
Created attachment 149645 [details]
results of yum -d7 install 'perl(ExtUtils::MakeMaker)'

Comment 2 Robin Norwood 2007-03-08 22:02:39 UTC
Created attachment 149646 [details]
log of irc conversation about this bug.

the irc conversation, for the curious or bored.

Comment 3 Seth Vidal 2007-03-08 22:07:18 UTC
okay, this is odd - when I disable perl-10 I don't get a suggestion for the
other pkg.

Comment 4 Seth Vidal 2007-03-08 22:08:13 UTC
Additional oddness: what happens when you have perl-10 and perl-14.1 enabled and
you run:
 yum update



Comment 5 Robin Norwood 2007-03-08 22:14:42 UTC
I should have made clear:

You should have perl-5.8.8-10 installed, and when you upgrade, have nothing that
requires things in perl-devel, so that yum doesn't pull in perl-devel for you. 
I did this by doing an rpm -Uvh perl-5.8.8-14.1.i386.rpm, and removing the
dependancies that rpm complains about.  After this, I have perl-5.8.8-14
installed, but not perl-devel.  This is the point at which yum cannot resolve
perl(ExtUtils::MakeMaker) (but only when both perl-5.8.8-10 and
perl-devel-5.8.8-14 are available to it.

Comment 6 Seth Vidal 2007-03-08 22:29:35 UTC
this is a shortest-name test going on.

both perl-5.88-10 and perl-devel-5.8.8-14 provide the requirment.

so yum is taking the shortest name, all other things be equal, which, of course,
they are not.



Comment 7 Ville Skyttä 2007-03-12 18:45:42 UTC
I think a few cases like this have been hacked/worked around in the past using
versioned Obsoletes, eg. in this case possibly adding "Obsoletes: perl <
5.8.8-14" in perl-devel would trick yum into doing the right thing.

Comment 8 Ville Skyttä 2007-03-12 18:47:17 UTC
Oops, perl has an Epoch set, so it should have been Obsoletes: perl < 4:5.8.8-14

Comment 9 Tom "spot" Callaway 2007-03-12 18:58:04 UTC
I think we're also going to dodge this issue by making subpackage for the devel
modules (e.g. perl-ExtUtils-MakeMaker).

Ideally, I would hope that yum would only perform a shortest-name test after
checking version and release of the conflicting packages (e.g. if I handed these
to RPM, what would it do), but I know this is rather complicated.

Comment 10 Seth Vidal 2007-03-12 20:37:22 UTC
Created attachment 149861 [details]
patch to 3.0.4 which _should_ fix this bug

please apply this to 3.0.4 and see if it solves this bug.

Comment 11 Seth Vidal 2007-03-14 04:36:43 UTC
confirmed fixed in patch.

closing as nextrelease - 3.0.5

Comment 12 Robin Norwood 2007-03-26 14:36:07 UTC
*** Bug 233796 has been marked as a duplicate of this bug. ***


Note You need to log in before you can comment on or make changes to this bug.