[Rpm-maint] [Suse-patch] Revert provides as obsoletes behavior

Michael Schroeder mls at suse.de
Tue Jun 12 13:56:33 UTC 2007

On Tue, Jun 12, 2007 at 03:49:25PM +0200, Florian Festi wrote:
> 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.

It's not "obviously bullshit". Obsoletes tells rpm that the package
provides a newer version of something. The same thing happens if you
install a new version of a package.  If package A provides B and
you install a new version of B, it is not obviously bullshit if
A gets deleted, as A is no longer needed and B is newer. It's
just unexpected.

> 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.

Yes, that's true *if you want to replace capabilities*. Most of the
times obsoletes is used to replace packages, though, and this is
where the danger lies.

> 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.

Only if some other package depends on the obsoleted package.


Michael Schroeder                                   mls at suse.de
SUSE LINUX Products GmbH, GF Markus Rex, HRB 16746 AG Nuernberg

More information about the Rpm-maint mailing list