Description of problem: We have a repository containing following packages: $yum -C -c ./yum.conf list |grep "dapl" dapl.i386 1.2.1-7 installed dapl-devel.i386 1.2.1-7 installed compat-dapl.i386 2.0.15-1.el4 repo compat-dapl-1.2.5.i386 2.0.7-2.el4 repo compat-dapl-devel.i386 2.0.15-1.el4 repo compat-dapl-devel-1.2.5.i386 2.0.7-2.el4 repo compat-dapl-static.i386 2.0.15-1.el4 repo compat-dapl-static-1.2.5.i386 2.0.7-2.el4 repo compat-dapl-utils.i386 2.0.15-1.el4 repo dapl.i386 2.0.15-1.el4 repo dapl-devel.i386 2.0.15-1.el4 repo dapl-static.i386 2.0.15-1.el4 repo dapl-utils.i386 2.0.15-1.el4 repo udapl.i386 1.2-0.4265.2.EL4 repo udapl-devel.i386 1.2-0.4265.2.EL4 repo RHN publishes both "compat-dapl-XXXX" and "compat-dapl-XXXX-1.2.5" packages for Redhat Enterprise Linux 4 AS. When we run an update, yum fails with following dependency error: Error: Missing Dependency: dapl = 2.0.7-2.el4 is needed by package compat-dapl-devel-1.2.5-2.0.7-2.el4.i386 (repo) You could try using --skip-broken to work around the problem You could try running: package-cleanup --problems package-cleanup --dupes rpm -Va --nofiles --nodigest If I exclude the "compat-dapl-XXXX-1.2.5" packages from yum.conf (exclude=compat-dapl-1.2.5,compat-dapl-devel-1.2.5,compat-dapl-static-1.2.5), yum succeeds without any issues. This time, yum obsoletes the "dapl" by "compat-dapl-XXX" ones: Installing: compat-dapl i386 2.0.15-1.el4 repo 98 k replacing dapl.i386 1.2.1-7 compat-dapl-devel i386 2.0.15-1.el4 repo 28 k replacing dapl-devel.i386 1.2.1-7 Version-Release number of selected component (if applicable): yum 3.2.22 (I am using an RHAS 4 server) Expected results: I would have expected that yum should have returned the same results without me needing to explicitly excluding the "compat-dapl-XXXX-1.2.5" packages.
Wow ... what a giant mess. So: compat-dapl-1.2.5 obsoletes "dapl <= 1.2.1.1" compat-dapl-devel-1.2.5 requires "dapl = 2.0.7-2.el4" compat-dapl obsoletes "dapl <= 1.2.1.1" compat-dapl obsoletes "compat-dapl-1.2.5" compat-dapl-devel obsoletes "dapl-devel <= 1.2.1.1" compat-dapl-devel obsoletes "compat-dapl-devel-1.2.5" ...I have a test case, and it fails in the way you are saying ... compat-dapl-1.2.5 etc. is picked and will then fail due to the requirement.
This is fixed by upstream commit: http://yum.baseurl.org/gitweb?p=yum.git;a=commitdiff;h=3a31dac2f07fb84d8acb010ced93c784413af7d3 ...although it's not 100% generic, it should solve this problem (you just need the __init__.py part). In theory you could also take the latest head which includes: http://yum.baseurl.org/gitweb?p=yum.git;a=commitdiff;h=9bef1a0436e11e54b6999745ce72d4e211a2f5a7 ...which will make "yum update dapl-1.2.1.1-7" work as "yum install dapl-1.2.1.1-7" does. Or just do any one of: yum update dapl yum update dapl-devel yum update compat-dapl yum update compat-dapl-devel ...which should all work on 3.2.22. Getting these changes into the 5.4 errata is unlikely, as the packages aren't broke there (and yum isn't used in RHEL-4). If we rebase again post 5.4, it'll get fixed then (I'm not sure I'd count on that).
The person made the original post (ronojacob) has been off for some time. I tested the fix from first URL you mentioned and it worked. Thanks for your help.
Yeh, it's fixed upstream and in RHEL-6 ... but I don't think we could ever rebase again in RHEL-5.