On Mon, 27 Aug 2007 21:26:43 +0200, Patrice Dumas wrote:
Hello,
Sometime there are obsolete of older packages by compat packages. The idea is that when coming from an old package a compatible package is needed. This is what is done in automake16. It is a compat package, and it has
Obsoletes: automake = 1.6.3
It makes sense, however I am not sure that it is that right, since somebody having automake-1.6.3-* would also want to have the latest automake version.
Another issue is that for this scheme to be really effective, one should have in automake15 Obsoletes: automake < 1.6.0 and automake >= 1.5.0
and in automake16 Obsoletes: automake < 1.7.0 and automake >= 1.6.0
which, unless I am wrong, cannot be done in rpm.
As in the range 1.5.0 <= x < 1.6.0 ? I don't think that is possible with "Obsoletes". With Requires it is different, since all Requires must be satisfied.
So, what do you think? Is that practice wrong, right, or should it be left to the maintainer?
I would personally think that it is wrong, it could be right if one could express that when updating 1.6.x, this package should be installed in addition to the latest package with same name.
IMO it is right. "Obsoletes" in compat packages is used to rename a package, to move it from the old name to the new name. It doesn't matter whether there is a separate package that upgrades the old one:
automake = 1.6.3 renamed to automake16 = 1.6.3 automake = 1.10 replaces automake = 1.6.3
Also consider that a manual "rpm -Uvh automake16*.rpm" should get rid of the obsolete automake = 1.6.3, too, when they cannot coexist. The version upgrade can be requested on demand.