[Rpm-maint] [Suse-patch] Revert provides as obsoletes behavior
Florian Festi
ffesti at redhat.com
Tue Jun 12 13:49:25 UTC 2007
Florian Festi wrote:
> Reading the problem descriptions I have the suspicion that the problem is
> not that obsoletes match against provides but that rpm uses the obsolete
> mechanism to do updates - to find the packages it needs to remove to be
> more precise. This was fine as long as obsoletes just matched against pkg
> names which is what the update should do, too. But with the "new" obsolete
> behavior updates and obsoletes are different and should uses different
> code paths.
> If this is true (I have to admit that I did not look into the code) fixing
> the update behavior would be the way to go IMHO and not altering the
> actually unrelated obsolete handling.
After having a look at the code it is quite clear what's the problem here:
The first line is causing most of the problems as it treats the updated
package like an obsolete on its own name. This is obviously bullshit as rpm
-U foobar should only remove packages named foobar and packages explicitly
obsoleted by the new package. The python case mentioned earlier is a good
example for that.
In opposite the posting from Michael Schroeder I want to argue that matching
real obsoletes against provides (second modified line of the patch) is the
right thing (tm). If a package wants to replace a capability it should not
need to know what packages anywhere (think of 3rd party repositories) do
also provide that. I also don't see a problem that this might break other
dependencies because they are all checked and the new package would be
rejected with unresolved dependencies if it doesn't fix these problems.
Of course is it still true that obsoletes are dangerous and need to be
handled with care but this is an packaging issue...
Florian Festi
More information about the Rpm-maint
mailing list