---------- Forwarded message ----------
From:
Igor Gnatenko <ignatenko@redhat.com>Date: Fri, Sep 2, 2016 at 1:14 PM
Subject: Unversioned and >/=/>= obsoletes
To: Development discussions related to Fedora <
devel@lists.fedoraproject.org>,
devel-announce@lists.fedoraproject.orgAll guidelines mandate the use of </<= Obsoletes, but unfortunately we
have some number of packages (179 source rpms -> 292 binary rpms) with
unversioned Obsoletes or with >/=/>= Obsoletes.
It is causing problems with upgrade (if package is getting re-added)
or with 3rd-party repositories. Older package is obsoleting new
package.
Problem categories (in following text by "never" I mean latest N-2 releases):
* Package/SubPackage was never built in Fedora
Package "python" has "Obsoletes: python2" which was never built ->
drop Obsoletes
SubPackage "qpid-proton-c" of "qpid-proton" has "Obsoletes:
qpid-proton" which was not the package for long time -> drop Obsoletes
* Package replacement
Package "storaged" has "Obsoletes: udisks2" -> take latest version
from koji (2.1.7-1) and make Obsoletes versioned: udisks2 < 2.1.7-2
storaged is not simple use-case as it replaces udisks2, but latter is
still not retired.
* "=" Obsoletes
"rubygem-vte" has "Obsoletes: ruby-vte = 3.0.9-1.fc26" (probably it's
macro in spec) which seems really weird as it will not obsolete
F24/F25 with such version
* Obsoletes by Provides
It doesn't work to prevent undefined behavior. Imagine you have
installed "A" and "B", both providing "C". Package "D" has "Obsoletes:
C", it should not remove "A" and "B".
** %{?_isa}
"glibc-headers" has "Obsoletes: glibc-headers(i686)". %{?_isa} is just
text, it's not part of architecture or something else.
** Other provides
"rubygem-http_connection" has "Obsoletes:
rubygem(right_http_connection)
". Latter is virtual provides.
* Weird obsoletes (broken)
"krb5-server" has "Obsoletes: krb5-server-1.14.3-8.fc26.i686".
Basically it will not obsolete anything because it's threated as
package name (and we definitely don't have such package name).
* >/>= Obsoletes
"vdsm" has "Obsoletes: vdsm-infra >= 4.16.0". It's almost same as
unversioned Obsoletes. So it must not be used.
Table of affected packages/maintainers:
https://ignatenkobrain.fedorapeople.org/broken-obsoletes/2016-09-02/broken-obsoletes.txt
--
-Igor Gnatenko
--
devel mailing list
devel@lists.fedoraproject.org
https://lists.fedoraproject.org/admin/lists/devel@lists.fedoraproject.org