Handle boost component requirement.

This commit is contained in:
Jelmer Vernooij 2021-04-14 19:03:23 +01:00
parent ed94887536
commit 3cc91b8cb0
3 changed files with 21 additions and 0 deletions

View file

@ -48,6 +48,7 @@ from buildlog_consultant.common import (
MissingRubyFile,
MissingAutoconfMacro,
MissingValaPackage,
MissingBoostComponents,
MissingXfceDependency,
MissingHaskellDependencies,
MissingVagueDependency,
@ -90,6 +91,7 @@ from .requirements import (
CMakefileRequirement,
HaskellPackageRequirement,
MavenArtifactRequirement,
BoostComponentRequirement,
GnomeCommonRequirement,
JDKFileRequirement,
JDKRequirement,
@ -133,6 +135,8 @@ def problem_to_upstream_requirement(problem): # noqa: C901
return ValaPackageRequirement(problem.package)
elif isinstance(problem, MissingGoPackage):
return GoPackageRequirement(problem.package)
elif isinstance(problem, MissingBoostComponents):
return [BoostComponentRequirement(name) for name in problem.components]
elif isinstance(problem, DhAddonLoadFailure):
return DhAddonRequirement(problem.path)
elif isinstance(problem, MissingPhpClass):

View file

@ -690,3 +690,12 @@ class PythonModuleRequirement(Requirement):
return "%s(%r, python_version=%r, minimum_version=%r)" % (
type(self).__name__, self.module, self.python_version,
self.minimum_version)
class BoostComponentRequirement(Requirement):
name: str
def __init__(self, name):
super(BoostComponentRequirement, self).__init__("boost-component")
self.name = name

View file

@ -47,6 +47,7 @@ from ..requirements import (
NodeModuleRequirement,
NodePackageRequirement,
LibraryRequirement,
BoostComponentRequirement,
StaticLibraryRequirement,
RubyFileRequirement,
XmlEntityRequirement,
@ -703,6 +704,12 @@ def resolve_apt_req(apt_mgr, req):
return [req]
def resolve_boost_component_req(apt_mgr, req):
return find_reqs_simple(
apt_mgr, ["/usr/lib/.*/libboost_%s" % re.escape(req.name)],
regex=True)
APT_REQUIREMENT_RESOLVERS = [
(AptRequirement, resolve_apt_req),
(BinaryRequirement, resolve_binary_req),
@ -746,6 +753,7 @@ APT_REQUIREMENT_RESOLVERS = [
(CertificateAuthorityRequirement, resolve_ca_req),
(CargoCrateRequirement, resolve_cargo_crate_req),
(IntrospectionTypelibRequirement, resolve_introspection_typelib_req),
(BoostComponentRequirement, resolve_boost_component_req),
]