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

Florian Festi ffesti at redhat.com
Mon Jun 18 11:58:47 UTC 2007


Michael Schroeder wrote:
> On Tue, Jun 12, 2007 at 04:06:44PM +0200, Tomas Mraz wrote:
>> That's really debatable as the provides is M:N relationship - a package
>> A might provide many virtual provides and after this update some of
>> these provides might not be provided anymore by any package. So it
>> surely can be argued both ways.
> 
> Yes, but that's exactly the point that I was trying to make: the
> same is true for explicit obsoletes, so it does not make much sense
> to treat them differently.
> IMHO it should either be both look at the provides or neither, for
> consistency reasons. But I also agree that just disabling the
> provides for the implicit obsoletes solves most of the problems.

I strongly disagree with this argumentation. Let's assume matching (real) 
obsoletes against provides is the wanted behavior - for whatever reason.

Why updates should not be treated as obsoletes of the pkg name can be easily 
  seen at the example already mentioned earlier.

python-2.4 (virtual provides python = 2.4)
python22 provides python = 2.2

rpm -Uvh python-2.5-1.rpm
removes both of the packages above.

The point here is that if someone builds a compat package this packages has 
to provide the regular package name with the old version - this is the 
purpose of the package. If updates match on the provides these packages will 
always be removed on updating the original package. This makes the purpose 
of the compat package - surviving an update to a new version - inexistent.

Because compat packages are an important use cases and there is no way to 
get around this by clever packaging this behavior is a bug in rpm IMHO.

Florian Festi



More information about the Rpm-maint mailing list