Bug 231549 - yum fails to resolve dependancies when dep moves from perl to perl-devel
yum fails to resolve dependancies when dep moves from perl to perl-devel
Product: Fedora
Classification: Fedora
Component: yum (Show other bugs)
All Linux
medium Severity medium
: ---
: ---
Assigned To: Jeremy Katz
: 233796 (view as bug list)
Depends On:
  Show dependency treegraph
Reported: 2007-03-08 16:58 EST by Robin Norwood
Modified: 2014-01-21 17:57 EST (History)
4 users (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Last Closed: 2007-03-14 00:36:43 EDT
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---

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

  None (edit)
Description Robin Norwood 2007-03-08 16:58:57 EST
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 16:58:57 EST
Created attachment 149645 [details]
results of yum -d7 install 'perl(ExtUtils::MakeMaker)'
Comment 2 Robin Norwood 2007-03-08 17:02:39 EST
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 17:07:18 EST
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 17:08:13 EST
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 17:14:42 EST
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 17:29:35 EST
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 14:45:42 EDT
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 14:47:17 EDT
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 14:58:04 EDT
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 16:37:22 EDT
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 00:36:43 EDT
confirmed fixed in patch.

closing as nextrelease - 3.0.5
Comment 12 Robin Norwood 2007-03-26 10:36:07 EDT
*** 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.