diff --git a/ognibuild/buildlog.py b/ognibuild/buildlog.py index 1381ccc..b5d2c8d 100644 --- a/ognibuild/buildlog.py +++ b/ognibuild/buildlog.py @@ -129,7 +129,7 @@ def problem_to_upstream_requirement(problem): # noqa: C901 elif isinstance(problem, MissingNodePackage): return NodePackageRequirement(problem.package) elif isinstance(problem, MissingVagueDependency): - return VagueDependencyRequirement(problem.name) + return VagueDependencyRequirement(problem.name, minimum_version=problem.minimum_version) elif isinstance(problem, MissingLibrary): return LibraryRequirement(problem.library) elif isinstance(problem, MissingRubyFile): diff --git a/ognibuild/requirements.py b/ognibuild/requirements.py index fea0ea4..802d5ba 100644 --- a/ognibuild/requirements.py +++ b/ognibuild/requirements.py @@ -149,23 +149,25 @@ class PerlModuleRequirement(Requirement): class VagueDependencyRequirement(Requirement): name: str + minimum_version: Optional[str] = None - def __init__(self, name): + def __init__(self, name, minimum_version=None): super(VagueDependencyRequirement, self).__init__("vague") self.name = name + self.minimum_version = minimum_version def expand(self): if " " not in self.name: yield BinaryRequirement(self.name) yield LibraryRequirement(self.name) - yield PkgConfigRequirement(self.name) + yield PkgConfigRequirement(self.name, minimum_version=self.minimum_version) if self.name.lower() != self.name: yield BinaryRequirement(self.name.lower()) yield LibraryRequirement(self.name.lower()) - yield PkgConfigRequirement(self.name.lower()) + yield PkgConfigRequirement(self.name.lower(), minimum_version=self.minimum_version) from .resolver.apt import AptRequirement - yield AptRequirement.simple(self.name.lower()) + yield AptRequirement.simple(self.name.lower(), minimum_version=self.minimum_version) def met(self, session): for x in self.expand():