[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.
Cheers,
Michael.
--
Michael Schroeder mls at suse.de
SUSE LINUX Products GmbH, GF Markus Rex, HRB 16746 AG Nuernberg
main(_){while(_=~getchar())putchar(~_-1/(~(_|32)/13*2-11)*13);}
More information about the Rpm-maint
mailing list