Bug 233713
Summary: | RPM upgrade behaviour is inconsistent | ||||||
---|---|---|---|---|---|---|---|
Product: | Red Hat Enterprise Linux 5 | Reporter: | Matt Wringe <mwringe> | ||||
Component: | rpm | Assignee: | Panu Matilainen <pmatilai> | ||||
Status: | CLOSED ERRATA | QA Contact: | |||||
Severity: | medium | Docs Contact: | |||||
Priority: | medium | ||||||
Version: | 5.0 | CC: | jnovy, msuchy, psklenar | ||||
Target Milestone: | --- | ||||||
Target Release: | --- | ||||||
Hardware: | All | ||||||
OS: | Linux | ||||||
Whiteboard: | |||||||
Fixed In Version: | Doc Type: | Bug Fix | |||||
Doc Text: | Story Points: | --- | |||||
Clone Of: | Environment: | ||||||
Last Closed: | 2009-01-20 20:48:33 UTC | Type: | --- | ||||
Regression: | --- | Mount Type: | --- | ||||
Documentation: | --- | CRM: | |||||
Verified Versions: | Category: | --- | |||||
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |||||
Cloudforms Team: | --- | Target Upstream Version: | |||||
Embargoed: | |||||||
Bug Depends On: | 454887 | ||||||
Bug Blocks: | |||||||
Attachments: |
|
Description
Matt Wringe
2007-03-23 22:20:37 UTC
Created attachment 150804 [details]
two simple test rpms: foo and bar
Yes. rpm -U promises to never erase any package content. Specifically, neiter old packages nor Obsoletes: are processed. Feature. WONTFIX FYI, rpm-4.4.8 has the following additional uptions to be used with -U,--upgrade: --noupgrade disable erasing old packages --noobsoletes don't erase obsoleted packages UPSTREAM (In reply to comment #2) > rpm -U promises to never erase any package content. Specifically, > neiter old packages nor Obsoletes: are processed. I am a bit confused by your statement. 'rpm -U foo' will remove package bar from the system if bar has a virtual provides on foo. Isn't this erasing package content? (In reply to comment #3) > FYI, rpm-4.4.8 has the following additional uptions to be used with -U,--upgrade: > --noupgrade disable erasing old packages > --noobsoletes don't erase obsoleted packages > > UPSTREAM How does this help this situation? -old packages would match on package name (my example uses two different package names) -I am not using obsoletes Adding --noupgrade prevents rpm from erasing the older package. FWIW, rpm uses RPMTAG_PROVIDENAME, not RPMTAG_NAME, to determine "newer" vs. "older". The difference between the two tags is exactly the virtual package implementation. The package getting removed has a higher virtual version then the package being updated. How is this "older"? And for that manner, when I update a package that has a higher virtual provides, why doesn't the other package get removed? The same thing I have two packages that both have the same virtual provides, they never remove one another. My whole issue here is that the behavior is inconsistent. RPM only seems to be considering provides names the same as package names when that package is updated using rpm -U, and even then it ignores versions. If a package is being installed using rpm -U, it doesn't look to remove the other pacakges that provide the package name. If a package is being updated, it doesn't also look to remove every other package that it has a virtual provides for. And when comparing it to how other rpm commands work, it is also not consistent. rpm -e only considered package names, not virtual provides. Meanwhile, several years old: bug 111071 Yes. For several years (at least) rpm uses RPMTAG_PROVIDENAME, not RPMTAG_NAME. There has been no change in rpm behavior in that period of time. The RPM rebase in 5.3 / Fedora 9 includes a fix for this issue. This request was evaluated by Red Hat Product Management for inclusion in a Red Hat Enterprise Linux maintenance release. Product Management has requested further review of this request by Red Hat Engineering, for potential inclusion in a Red Hat Enterprise Linux Update release for currently deployed products. This request is not yet committed for inclusion in an Update release. *** Bug 461165 has been marked as a duplicate of this bug. *** An advisory has been issued which should help the problem described in this bug report. This report is therefore being closed with a resolution of ERRATA. For more information on therefore solution and/or where to find the updated files, please follow the link below. You may reopen this bug report if the solution does not work for you. http://rhn.redhat.com/errata/RHBA-2009-0079.html |