Fix rpm package provides/obsoletes relations

Rpm package can provides and obsoletes the same package name
but with different versions, for eg:
  OBSOLETES:
     python-debtcollector < 1.2.0-1.el7~mos1
     python-debtcollector < 0.7.0-3

  PROVIDES:
     python-debtcollector = 1.2.0-1.el7~mos1
     python2-debtcollector = 1.2.0-1.el7~mos1

This comes from %python_provide macros, eg:
    # rpm --eval '%python_provide python2-foo'
       Provides: python-foo(x86-64) = %{version}-%{release}
       Provides: python-foo = %{version}-%{release}
       Obsoletes: python-foo(x86-64) < %{version}-%{release}
       Obsoletes: python-foo < %{version}-%{release}

    # rpm --eval '%python_provide python-foo'
       Provides: python2-foo = %{version}-%{release}

So we need to align flow

Change-Id: I07b3d8b9a25c5c98e97e697c26e6ae9d1f4960ff
Closes-bug: #1578224
This commit is contained in:
Sergey Kulanov 2016-05-25 16:28:45 +03:00
parent d661055322
commit ff85847eca
1 changed files with 5 additions and 3 deletions

View File

@ -72,11 +72,13 @@ class PackagesTree(object):
if len(candidates) > 0:
return candidates
if name in self.provides:
result = self._resolve_relation(self.provides[name], version_range)
if result:
return result
if name in self.obsoletes:
return self._resolve_relation(self.obsoletes[name], version_range)
if name in self.provides:
return self._resolve_relation(self.provides[name], version_range)
return []
def get_unresolved_dependencies(self):