Install ca-certificates if they are missing.

This commit is contained in:
Jelmer Vernooij 2021-03-23 02:19:59 +00:00
parent 816c14b9d8
commit af3caadad2
3 changed files with 17 additions and 0 deletions

View file

@ -52,6 +52,7 @@ from buildlog_consultant.common import (
MissingMavenArtifacts, MissingMavenArtifacts,
GnomeCommonMissing, GnomeCommonMissing,
MissingGnomeCommonDependency, MissingGnomeCommonDependency,
UnknownCertificateAuthority,
) )
from .fix_build import BuildFixer from .fix_build import BuildFixer
@ -84,6 +85,7 @@ from .requirements import (
AutoconfMacroRequirement, AutoconfMacroRequirement,
PythonModuleRequirement, PythonModuleRequirement,
PythonPackageRequirement, PythonPackageRequirement,
CertificateAuthorityRequirement,
) )
from .resolver import UnsatisfiedRequirements from .resolver import UnsatisfiedRequirements
@ -137,6 +139,8 @@ def problem_to_upstream_requirement(problem): # noqa: C901
return JDKRequirement() return JDKRequirement()
elif isinstance(problem, MissingJRE): elif isinstance(problem, MissingJRE):
return JRERequirement() return JRERequirement()
elif isinstance(problem, UnknownCertificateAuthority):
return CertificateAuthorityRequirement(problem.url)
elif isinstance(problem, MissingGnomeCommonDependency): elif isinstance(problem, MissingGnomeCommonDependency):
if problem.package == "glib-gettext": if problem.package == "glib-gettext":
return BinaryRequirement("glib-gettextize") return BinaryRequirement("glib-gettextize")

View file

@ -416,6 +416,13 @@ class JRERequirement(Requirement):
super(JRERequirement, self).__init__("jre") super(JRERequirement, self).__init__("jre")
class CertificateAuthorityRequirement(Requirement):
def __init__(self, url):
super(CertificateAuthorityRequirement, self).__init__("ca-cert")
self.url = url
class PerlFileRequirement(Requirement): class PerlFileRequirement(Requirement):
filename: str filename: str

View file

@ -58,6 +58,7 @@ from ..requirements import (
AutoconfMacroRequirement, AutoconfMacroRequirement,
PythonModuleRequirement, PythonModuleRequirement,
PythonPackageRequirement, PythonPackageRequirement,
CertificateAuthorityRequirement,
) )
@ -557,6 +558,10 @@ def resolve_cargo_crate_req(apt_mgr, req):
return AptRequirement.simple(pkg_name) return AptRequirement.simple(pkg_name)
def resolve_ca_req(apt_mgr, req):
return AptRequirement.simple('ca-certificates')
APT_REQUIREMENT_RESOLVERS = [ APT_REQUIREMENT_RESOLVERS = [
(BinaryRequirement, resolve_binary_req), (BinaryRequirement, resolve_binary_req),
(PkgConfigRequirement, resolve_pkg_config_req), (PkgConfigRequirement, resolve_pkg_config_req),
@ -586,6 +591,7 @@ APT_REQUIREMENT_RESOLVERS = [
(AutoconfMacroRequirement, resolve_autoconf_macro_req), (AutoconfMacroRequirement, resolve_autoconf_macro_req),
(PythonModuleRequirement, resolve_python_module_req), (PythonModuleRequirement, resolve_python_module_req),
(PythonPackageRequirement, resolve_python_package_req), (PythonPackageRequirement, resolve_python_package_req),
(CertificateAuthorityRequirement, resolve_ca_req),
(CargoCrateRequirement, resolve_cargo_crate_req), (CargoCrateRequirement, resolve_cargo_crate_req),
] ]