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

View file

@ -690,3 +690,12 @@ class PythonModuleRequirement(Requirement):
return "%s(%r, python_version=%r, minimum_version=%r)" % ( return "%s(%r, python_version=%r, minimum_version=%r)" % (
type(self).__name__, self.module, self.python_version, type(self).__name__, self.module, self.python_version,
self.minimum_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, NodeModuleRequirement,
NodePackageRequirement, NodePackageRequirement,
LibraryRequirement, LibraryRequirement,
BoostComponentRequirement,
StaticLibraryRequirement, StaticLibraryRequirement,
RubyFileRequirement, RubyFileRequirement,
XmlEntityRequirement, XmlEntityRequirement,
@ -703,6 +704,12 @@ def resolve_apt_req(apt_mgr, req):
return [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 = [ APT_REQUIREMENT_RESOLVERS = [
(AptRequirement, resolve_apt_req), (AptRequirement, resolve_apt_req),
(BinaryRequirement, resolve_binary_req), (BinaryRequirement, resolve_binary_req),
@ -746,6 +753,7 @@ APT_REQUIREMENT_RESOLVERS = [
(CertificateAuthorityRequirement, resolve_ca_req), (CertificateAuthorityRequirement, resolve_ca_req),
(CargoCrateRequirement, resolve_cargo_crate_req), (CargoCrateRequirement, resolve_cargo_crate_req),
(IntrospectionTypelibRequirement, resolve_introspection_typelib_req), (IntrospectionTypelibRequirement, resolve_introspection_typelib_req),
(BoostComponentRequirement, resolve_boost_component_req),
] ]