From 3f27ddb97c265f0ff5478d2eece39679f6a5990a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jelmer=20Vernoo=C4=B3?= Date: Sat, 3 Apr 2021 18:17:31 +0100 Subject: [PATCH] Add AptRequirement.satisfied_by. --- ognibuild/resolver/apt.py | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/ognibuild/resolver/apt.py b/ognibuild/resolver/apt.py index 65def68..cc2177b 100644 --- a/ognibuild/resolver/apt.py +++ b/ognibuild/resolver/apt.py @@ -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: