Red Hat Bugzilla – Bug 440159
[PATCH] provide better feedback when a package is replaced due to obsoletes.
Last modified: 2014-01-21 18:02:32 EST
(Caveat: this may be fixed in current yum. Testing was done on CentOS 5)
When a package is obsoleted by another package, yum rightly replaces the package
requested with the one that obsoletes it. However, it's not always clear that
it is doing so. A warning (at whatever the appropriate debug level) would be nice.
As an example, on CentOS 5, I created a mod_jk package. Attempting to install
this package leads yum to find that httpd has obsoleted mod_jk and httpd is then
installed instead. But even with a very high debug level, yum provides no clue
that it is installing httpd due to it obsoleting mod_jk.
I'll attach the output of yum -d10 localinstall mod_jk*.rpm, with and without
httpd installed. In both cases, it's not obvious that httpd is being installed
because it obsoletes mod_jk. (It's perhaps more confusing since mod_jk Requires
Also attached is a patch against yum git HEAD. I used a similar patch on the
yum-3.0.5 on CentOS to provide some feedback to the user when a package was
replaced due to an Obsoletes:.
Created attachment 299987 [details]
Patch to provide better feedback when a package is replaced due to obsoletes.
Created attachment 299989 [details]
yum -d10 localinstall mod_jk*.rpm (without httpd installed)
Created attachment 299990 [details]
yum -d10 localinstall mod_jk*.rpm (with httpd installed)
I just had some confusing issues, also I think driven by behind-the-scenes
processing of Obsoletes. I decided I wanted to install java-1.6.0-openjdk* from
Rawhide on my Fedora 8 machine (which already has java-1.7.0-icedtea*). Note
that java-1.6.0-openjdk Obsoletes java-1.7.0-icedtea < 0:18.104.22.168-0.999.
On the first attempt, it presented me with the list of packages to be installed,
asked if I wanted to do this, and then failed on rpm_check_debug because
"Package pl-jpl needs java-icedtea, this is not available." This is the only
time icedtea was mentioned in the whole transaction.
I removed pl-jpl and tried again. This time, the transaction went through, and
-- in addition to installing openjdk*, it also deleted icedtea*. But the
transaction summary doesn't reflect this.
I'll attach the console output from both of these transations shortly.
Created attachment 302322 [details]
Installing openjdk with failure at end
Note that the only mention of icedtea is in the error at the end.
Created attachment 302323 [details]
Installing openjdk successfully (and incidentally removing icedtea)
Especially notice the transaction summary at the end that doesn't mention the
Todd, merged this patch upstream.
Your problem is actually separate and filed under rpm.