On Wed, 7 May 2008, Stephan Kulow wrote:
Am Mittwoch 07 Mai 2008 schrieb Michal Marek:
Stephan Kulow wrote:
Am Mittwoch 07 Mai 2008 schrieb Michal Marek:
Stephan Kulow wrote:
You want to rename it to newpac on update, what do you have to do?
newpac.spec: Name: newpac Version: 1.1 Provides: oldpac <= 1.0 Obsoletes: oldpac <= 1.0
So if some other package Requires: oldpac = 1.0, the installer will happily replace oldpac-1.0 with newpac-1.1 and possibly break the dependent package.
That's the whole point of a package rename, that newpac is now what oldpac used to be.
So the whole point of a package rename is to _silently_ break packages that require a specific version of the old package? Hmm, good point. This is getting worse and worse :)
The provides part shouldn't be different than if it was not a rename
but a virtual package (see gcc with it's libstdc++43 package for example).
So:
Name: newpac
Version: 1.0
Provides: oldpac = 1.0
Obsoletes: oldpac <= 1.0
And
Name: newpac
Version: 1.1
Obsoletes: oldpac <= 1.0
but not provide oldpac = 1.0 as that would be wrong, or
oldpac = 1.1 as that would cause problems if we rename it back to oldpac.
Basically this "special-casing" of upgrading in yast/zypp is wrong
from the start IMHO.
Richard.
--
Richard Guenther