Fix handling of vague requirements.

This commit is contained in:
Jelmer Vernooij 2021-03-25 14:34:29 +00:00
parent 3bb2750476
commit e062075cb7
2 changed files with 8 additions and 1 deletions

View file

@ -127,6 +127,12 @@ class VagueDependencyRequirement(Requirement):
super(VagueDependencyRequirement, self).__init__("vague") super(VagueDependencyRequirement, self).__init__("vague")
self.name = name self.name = name
def met(self, session):
for cls in [BinaryRequirement, LibraryRequirement]:
if cls(self.name).met(session):
return True
return False
def __repr__(self): def __repr__(self):
return "%s(%r)" % (type(self).__name__, self.name) return "%s(%r)" % (type(self).__name__, self.name)

View file

@ -235,7 +235,7 @@ def resolve_vague_dep_req(apt_mgr, req):
name = name[4:] name = name[4:]
options = [] options = []
options.extend(resolve_binary_req(apt_mgr, [BinaryRequirement(name)])) options.extend(resolve_binary_req(apt_mgr, [BinaryRequirement(name)]))
options.extend(resolve_binary_req(apt_mgr, [LibraryRequirement(name)])) options.extend(resolve_library_req(apt_mgr, [LibraryRequirement(name)]))
return options return options
@ -537,6 +537,7 @@ def resolve_ca_req(apt_mgr, req):
APT_REQUIREMENT_RESOLVERS = [ APT_REQUIREMENT_RESOLVERS = [
(BinaryRequirement, resolve_binary_req), (BinaryRequirement, resolve_binary_req),
(VagueDependencyRequirement, resolve_vague_dep_req),
(PkgConfigRequirement, resolve_pkg_config_req), (PkgConfigRequirement, resolve_pkg_config_req),
(PathRequirement, resolve_path_req), (PathRequirement, resolve_path_req),
(CHeaderRequirement, resolve_c_header_req), (CHeaderRequirement, resolve_c_header_req),