Note: This is a beta release of Red Hat Bugzilla 5.0. The data contained within is a snapshot of the live data so any changes you make will not be reflected in the production Bugzilla. Also email is disabled so feel free to test any aspect of the site that you want. File any problems you find or give feedback here.
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
Alias: None
Product: Fedora
Classification: Fedora
Component: yum
Version: 6
Hardware: All
OS: Linux
Target Milestone: ---
Assignee: Jeremy Katz
QA Contact:
: 233796 (view as bug list)
Depends On:
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:
Last Closed: 2007-03-14 04:36:43 UTC

Attachments (Terms of Use)
results of yum -d7 install 'perl(ExtUtils::MakeMaker)' (deleted)
2007-03-08 21:58 UTC, Robin Norwood
no flags Details
log of irc conversation about this bug. (deleted)
2007-03-08 22:02 UTC, Robin Norwood
no flags Details
patch to 3.0.4 which _should_ fix this bug (deleted)
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):


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):

name=Perl 10

name=Perl 14.1

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.