
On Fri, Sep 2, 2016 at 2:26 PM, Sandro Bonazzola <sbonazzo@redhat.com> wrote:
FYI, Fedora reviewed vdsm spec file regarding obsoletes.
---------- 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.org
All 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.
Should be fixed here if I understood the problem https://gerrit.ovirt.org/63215