Add AptRequirement.satisfied_by.

This commit is contained in:
Jelmer Vernooij 2021-04-03 18:17:31 +01:00
parent f08ebc950b
commit 3f27ddb97c

View file

@ -117,6 +117,26 @@ class AptRequirement(Requirement):
return True
return False
def satisfied_by(self, binaries, version):
def binary_pkg_matches(entry, binary):
# TODO(jelmer): check versions
if entry['name'] == binary['Package']:
return True
for provides_top in PkgRelation.parse_relations(
binary.get('Provides', '')):
for provides in provides_top:
if entry['name'] == provides['name']:
return True
return False
for rel in self.relations:
for entry in rel:
if any(binary_pkg_matches(entry, binary) for binary in binaries):
break
else:
return False
return True
def resolve_perl_predeclared_req(apt_mgr, req):
try: