Merge "packages_tree: exact match trumps other providers"
This commit is contained in:
commit
c3c2069e2e
|
@ -68,25 +68,31 @@ class PackagesTree(object):
|
||||||
:param version_range: the range of versions.
|
:param version_range: the range of versions.
|
||||||
:return: the list of suitable packages
|
:return: the list of suitable packages
|
||||||
"""
|
"""
|
||||||
candidates = set()
|
candidates = []
|
||||||
# find package by name
|
|
||||||
if name in self.packages:
|
|
||||||
candidates.update(self.packages.find_all(name, version_range))
|
|
||||||
|
|
||||||
# find package by provides
|
# find package by provides
|
||||||
# in case of rpm:
|
# in case of rpm:
|
||||||
# set(candidates) >= set(provides)
|
# set(candidates) >= set(provides)
|
||||||
if name in self.provides:
|
if name in self.provides:
|
||||||
candidates.update(self._resolve_relation(
|
candidates.extend(sorted(
|
||||||
self.provides[name], version_range)
|
self._resolve_relation(self.provides[name], version_range),
|
||||||
)
|
key=lambda x: x.version
|
||||||
|
))
|
||||||
|
|
||||||
|
# find package by name
|
||||||
|
if name in self.packages:
|
||||||
|
candidates.extend(sorted(
|
||||||
|
self.packages.find_all(name, version_range),
|
||||||
|
key=lambda x: x.version
|
||||||
|
))
|
||||||
|
|
||||||
if name in self.obsoletes:
|
if name in self.obsoletes:
|
||||||
candidates.update(self._resolve_relation(
|
candidates.extend(sorted(
|
||||||
self.obsoletes[name], version_range)
|
self._resolve_relation(self.obsoletes[name], version_range),
|
||||||
)
|
key=lambda x: x.version
|
||||||
|
))
|
||||||
|
|
||||||
return sorted(candidates, key=lambda x: x.version)
|
return candidates
|
||||||
|
|
||||||
def get_unresolved_dependencies(self):
|
def get_unresolved_dependencies(self):
|
||||||
"""Gets the set of unresolved dependencies.
|
"""Gets the set of unresolved dependencies.
|
||||||
|
|
Loading…
Reference in New Issue