Some renames.
This commit is contained in:
parent
217e87a3a8
commit
78b59759c9
10 changed files with 57 additions and 49 deletions
|
@ -50,7 +50,7 @@ def shebang_binary(p):
|
|||
return os.path.basename(args[0].decode()).strip()
|
||||
|
||||
|
||||
class UpstreamRequirement(object):
|
||||
class Requirement(object):
|
||||
|
||||
# Name of the family of requirements - e.g. "python-package"
|
||||
family: str
|
||||
|
|
|
@ -62,9 +62,9 @@ STAGE_MAP = {
|
|||
}
|
||||
|
||||
def determine_fixers(session, resolver):
|
||||
from .buildlog import UpstreamRequirementFixer
|
||||
from .buildlog import RequirementFixer
|
||||
from .resolver.apt import AptResolver
|
||||
return [UpstreamRequirementFixer(resolver)]
|
||||
return [RequirementFixer(resolver)]
|
||||
|
||||
|
||||
def main(): # noqa: C901
|
||||
|
@ -136,6 +136,7 @@ def main(): # noqa: C901
|
|||
if not args.ignore_declared_dependencies and not args.explain:
|
||||
stages = STAGE_MAP[args.subcommand]
|
||||
if stages:
|
||||
logging.info('Checking that declared requirements are present')
|
||||
for bs in bss:
|
||||
install_necessary_declared_requirements(resolver, bs, stages)
|
||||
fixers = determine_fixers(session, resolver)
|
||||
|
@ -166,7 +167,7 @@ def main(): # noqa: C901
|
|||
if args.subcommand == "info":
|
||||
from .info import run_info
|
||||
run_info(session, buildsystems=bss)
|
||||
except UnidentifiedError:
|
||||
except UnidentifiedError as e:
|
||||
return 1
|
||||
except NoBuildToolsFound:
|
||||
logging.info("No build tools found.")
|
||||
|
|
|
@ -173,7 +173,7 @@ def problem_to_upstream_requirement(problem):
|
|||
return None
|
||||
|
||||
|
||||
class UpstreamRequirementFixer(BuildFixer):
|
||||
class RequirementFixer(BuildFixer):
|
||||
|
||||
def __init__(self, resolver):
|
||||
self.resolver = resolver
|
||||
|
|
|
@ -118,6 +118,8 @@ class SetupPy(BuildSystem):
|
|||
def __init__(self, path):
|
||||
self.path = path
|
||||
from distutils.core import run_setup
|
||||
# TODO(jelmer): Perhaps run this in session, so we can install
|
||||
# missing dependencies?
|
||||
try:
|
||||
self.result = run_setup(os.path.abspath(path), stop_after="init")
|
||||
except RuntimeError as e:
|
||||
|
@ -421,6 +423,10 @@ class Make(BuildSystem):
|
|||
self.setup(session, resolver, fixers)
|
||||
run_with_build_fixers(session, ["make", "all"], fixers)
|
||||
|
||||
def clean(self, session, resolver, fixers):
|
||||
self.setup(session, resolver, fixers)
|
||||
run_with_build_fixers(session, ["make", "clean"], fixers)
|
||||
|
||||
def test(self, session, resolver, fixers):
|
||||
self.setup(session, resolver, fixers)
|
||||
run_with_build_fixers(session, ["make", "check"], fixers)
|
||||
|
|
|
@ -39,11 +39,9 @@ def run_apt(session: Session, args: List[str]) -> None:
|
|||
match, error = find_apt_get_failure(lines)
|
||||
if error is not None:
|
||||
raise DetailedFailure(retcode, args, error)
|
||||
if match is not None:
|
||||
raise UnidentifiedError(retcode, args, lines, secondary=(match.lineno, match.line))
|
||||
while lines and lines[-1] == "":
|
||||
lines.pop(-1)
|
||||
raise UnidentifiedError(retcode, args, lines)
|
||||
raise UnidentifiedError(retcode, args, lines, secondary=match)
|
||||
|
||||
|
||||
class FileSearcher(object):
|
||||
|
|
|
@ -81,7 +81,7 @@ from buildlog_consultant.sbuild import (
|
|||
)
|
||||
|
||||
from ..fix_build import BuildFixer, resolve_error, DependencyContext
|
||||
from ..buildlog import UpstreamRequirementFixer
|
||||
from ..buildlog import RequirementFixer
|
||||
from ..resolver.apt import (
|
||||
AptRequirement,
|
||||
get_package_for_python_module,
|
||||
|
@ -525,7 +525,7 @@ def apt_fixers(apt) -> List[BuildFixer]:
|
|||
SimpleBuildFixer(MissingPythonModule, fix_missing_python_module),
|
||||
SimpleBuildFixer(MissingPythonDistribution, fix_missing_python_distribution),
|
||||
SimpleBuildFixer(AptFetchFailure, retry_apt_failure),
|
||||
UpstreamRequirementFixer(resolver),
|
||||
RequirementFixer(resolver),
|
||||
]
|
||||
|
||||
|
||||
|
|
|
@ -125,7 +125,7 @@ def create_dist_schroot(
|
|||
) -> str:
|
||||
from .buildsystem import detect_buildsystems
|
||||
from .resolver.apt import AptResolver
|
||||
from .buildlog import UpstreamRequirementFixer
|
||||
from .buildlog import RequirementFixer
|
||||
|
||||
if subdir is None:
|
||||
subdir = "package"
|
||||
|
@ -151,7 +151,7 @@ def create_dist_schroot(
|
|||
|
||||
buildsystems = list(detect_buildsystems(export_directory))
|
||||
resolver = AptResolver.from_session(session)
|
||||
fixers = [UpstreamRequirementFixer(resolver)]
|
||||
fixers = [RequirementFixer(resolver)]
|
||||
|
||||
with DistCatcher(export_directory) as dc:
|
||||
oldcwd = os.getcwd()
|
||||
|
|
|
@ -89,11 +89,12 @@ def run_with_build_fixers(
|
|||
return
|
||||
match, error = find_build_failure_description(lines)
|
||||
if error is None:
|
||||
logging.warning("Build failed with unidentified error. Giving up.")
|
||||
if match is not None:
|
||||
raise UnidentifiedError(
|
||||
retcode, args, lines, secondary=(match.lineno, match.line))
|
||||
raise UnidentifiedError(retcode, args, lines)
|
||||
if match:
|
||||
logging.warning("Build failed with unidentified error:")
|
||||
logging.warning('%s', match.line.rstrip('\n'))
|
||||
else:
|
||||
logging.warning("Build failed and unable to find cause. Giving up.")
|
||||
raise UnidentifiedError(retcode, args, lines, secondary=match)
|
||||
|
||||
logging.info("Identified error: %r", error)
|
||||
if error in fixed_errors:
|
||||
|
|
|
@ -19,10 +19,10 @@
|
|||
import posixpath
|
||||
from typing import Optional, List, Tuple
|
||||
|
||||
from . import UpstreamRequirement
|
||||
from . import Requirement
|
||||
|
||||
|
||||
class PythonPackageRequirement(UpstreamRequirement):
|
||||
class PythonPackageRequirement(Requirement):
|
||||
|
||||
package: str
|
||||
|
||||
|
@ -41,7 +41,7 @@ class PythonPackageRequirement(UpstreamRequirement):
|
|||
return "python package: %s" % self.package
|
||||
|
||||
|
||||
class BinaryRequirement(UpstreamRequirement):
|
||||
class BinaryRequirement(Requirement):
|
||||
|
||||
binary_name: str
|
||||
|
||||
|
@ -50,7 +50,7 @@ class BinaryRequirement(UpstreamRequirement):
|
|||
self.binary_name = binary_name
|
||||
|
||||
|
||||
class PerlModuleRequirement(UpstreamRequirement):
|
||||
class PerlModuleRequirement(Requirement):
|
||||
|
||||
module: str
|
||||
filename: Optional[str]
|
||||
|
@ -66,7 +66,7 @@ class PerlModuleRequirement(UpstreamRequirement):
|
|||
return self.module.replace("::", "/") + ".pm"
|
||||
|
||||
|
||||
class NodePackageRequirement(UpstreamRequirement):
|
||||
class NodePackageRequirement(Requirement):
|
||||
|
||||
package: str
|
||||
|
||||
|
@ -75,7 +75,7 @@ class NodePackageRequirement(UpstreamRequirement):
|
|||
self.package = package
|
||||
|
||||
|
||||
class CargoCrateRequirement(UpstreamRequirement):
|
||||
class CargoCrateRequirement(Requirement):
|
||||
|
||||
crate: str
|
||||
|
||||
|
@ -84,7 +84,7 @@ class CargoCrateRequirement(UpstreamRequirement):
|
|||
self.crate = crate
|
||||
|
||||
|
||||
class PkgConfigRequirement(UpstreamRequirement):
|
||||
class PkgConfigRequirement(Requirement):
|
||||
|
||||
module: str
|
||||
|
||||
|
@ -94,7 +94,7 @@ class PkgConfigRequirement(UpstreamRequirement):
|
|||
self.minimum_version = minimum_version
|
||||
|
||||
|
||||
class PathRequirement(UpstreamRequirement):
|
||||
class PathRequirement(Requirement):
|
||||
|
||||
path: str
|
||||
|
||||
|
@ -103,7 +103,7 @@ class PathRequirement(UpstreamRequirement):
|
|||
self.path = path
|
||||
|
||||
|
||||
class CHeaderRequirement(UpstreamRequirement):
|
||||
class CHeaderRequirement(Requirement):
|
||||
|
||||
header: str
|
||||
|
||||
|
@ -112,14 +112,14 @@ class CHeaderRequirement(UpstreamRequirement):
|
|||
self.header = header
|
||||
|
||||
|
||||
class JavaScriptRuntimeRequirement(UpstreamRequirement):
|
||||
class JavaScriptRuntimeRequirement(Requirement):
|
||||
|
||||
def __init__(self):
|
||||
super(JavaScriptRuntimeRequirement, self).__init__(
|
||||
'javascript-runtime')
|
||||
|
||||
|
||||
class ValaPackageRequirement(UpstreamRequirement):
|
||||
class ValaPackageRequirement(Requirement):
|
||||
|
||||
package: str
|
||||
|
||||
|
@ -128,7 +128,7 @@ class ValaPackageRequirement(UpstreamRequirement):
|
|||
self.package = package
|
||||
|
||||
|
||||
class RubyGemRequirement(UpstreamRequirement):
|
||||
class RubyGemRequirement(Requirement):
|
||||
|
||||
gem: str
|
||||
minimum_version: Optional[str]
|
||||
|
@ -139,7 +139,7 @@ class RubyGemRequirement(UpstreamRequirement):
|
|||
self.minimum_version = minimum_version
|
||||
|
||||
|
||||
class GoPackageRequirement(UpstreamRequirement):
|
||||
class GoPackageRequirement(Requirement):
|
||||
|
||||
package: str
|
||||
|
||||
|
@ -148,7 +148,7 @@ class GoPackageRequirement(UpstreamRequirement):
|
|||
self.package = package
|
||||
|
||||
|
||||
class DhAddonRequirement(UpstreamRequirement):
|
||||
class DhAddonRequirement(Requirement):
|
||||
|
||||
path: str
|
||||
|
||||
|
@ -157,7 +157,7 @@ class DhAddonRequirement(UpstreamRequirement):
|
|||
self.path = path
|
||||
|
||||
|
||||
class PhpClassRequirement(UpstreamRequirement):
|
||||
class PhpClassRequirement(Requirement):
|
||||
|
||||
php_class: str
|
||||
|
||||
|
@ -166,7 +166,7 @@ class PhpClassRequirement(UpstreamRequirement):
|
|||
self.php_class = php_class
|
||||
|
||||
|
||||
class RPackageRequirement(UpstreamRequirement):
|
||||
class RPackageRequirement(Requirement):
|
||||
|
||||
package: str
|
||||
minimum_version: Optional[str]
|
||||
|
@ -177,7 +177,7 @@ class RPackageRequirement(UpstreamRequirement):
|
|||
self.minimum_version = minimum_version
|
||||
|
||||
|
||||
class LibraryRequirement(UpstreamRequirement):
|
||||
class LibraryRequirement(Requirement):
|
||||
|
||||
library: str
|
||||
|
||||
|
@ -186,7 +186,7 @@ class LibraryRequirement(UpstreamRequirement):
|
|||
self.library = library
|
||||
|
||||
|
||||
class RubyFileRequirement(UpstreamRequirement):
|
||||
class RubyFileRequirement(Requirement):
|
||||
|
||||
filename: str
|
||||
|
||||
|
@ -195,7 +195,7 @@ class RubyFileRequirement(UpstreamRequirement):
|
|||
self.filename = filename
|
||||
|
||||
|
||||
class XmlEntityRequirement(UpstreamRequirement):
|
||||
class XmlEntityRequirement(Requirement):
|
||||
|
||||
url: str
|
||||
|
||||
|
@ -204,7 +204,7 @@ class XmlEntityRequirement(UpstreamRequirement):
|
|||
self.url = url
|
||||
|
||||
|
||||
class SprocketsFileRequirement(UpstreamRequirement):
|
||||
class SprocketsFileRequirement(Requirement):
|
||||
|
||||
content_type: str
|
||||
name: str
|
||||
|
@ -215,7 +215,7 @@ class SprocketsFileRequirement(UpstreamRequirement):
|
|||
self.name = name
|
||||
|
||||
|
||||
class JavaClassRequirement(UpstreamRequirement):
|
||||
class JavaClassRequirement(Requirement):
|
||||
|
||||
classname: str
|
||||
|
||||
|
@ -224,7 +224,7 @@ class JavaClassRequirement(UpstreamRequirement):
|
|||
self.classname = classname
|
||||
|
||||
|
||||
class HaskellPackageRequirement(UpstreamRequirement):
|
||||
class HaskellPackageRequirement(Requirement):
|
||||
|
||||
package: str
|
||||
|
||||
|
@ -233,7 +233,7 @@ class HaskellPackageRequirement(UpstreamRequirement):
|
|||
self.package = package
|
||||
|
||||
|
||||
class MavenArtifactRequirement(UpstreamRequirement):
|
||||
class MavenArtifactRequirement(Requirement):
|
||||
|
||||
artifacts: List[Tuple[str, str, str]]
|
||||
|
||||
|
@ -242,13 +242,13 @@ class MavenArtifactRequirement(UpstreamRequirement):
|
|||
self.artifacts = artifacts
|
||||
|
||||
|
||||
class GnomeCommonRequirement(UpstreamRequirement):
|
||||
class GnomeCommonRequirement(Requirement):
|
||||
|
||||
def __init__(self):
|
||||
super(GnomeCommonRequirement, self).__init__('gnome-common')
|
||||
|
||||
|
||||
class JDKFileRequirement(UpstreamRequirement):
|
||||
class JDKFileRequirement(Requirement):
|
||||
|
||||
jdk_path: str
|
||||
filename: str
|
||||
|
@ -263,7 +263,7 @@ class JDKFileRequirement(UpstreamRequirement):
|
|||
return posixpath.join(self.jdk_path, self.filename)
|
||||
|
||||
|
||||
class PerlFileRequirement(UpstreamRequirement):
|
||||
class PerlFileRequirement(Requirement):
|
||||
|
||||
filename: str
|
||||
|
||||
|
@ -272,7 +272,7 @@ class PerlFileRequirement(UpstreamRequirement):
|
|||
self.filename = filename
|
||||
|
||||
|
||||
class AutoconfMacroRequirement(UpstreamRequirement):
|
||||
class AutoconfMacroRequirement(Requirement):
|
||||
|
||||
macro: str
|
||||
|
||||
|
@ -281,7 +281,7 @@ class AutoconfMacroRequirement(UpstreamRequirement):
|
|||
self.macro = macro
|
||||
|
||||
|
||||
class PythonModuleRequirement(UpstreamRequirement):
|
||||
class PythonModuleRequirement(Requirement):
|
||||
|
||||
module: str
|
||||
python_version: Optional[str]
|
||||
|
|
|
@ -23,11 +23,12 @@ from ..debian.apt import AptManager
|
|||
|
||||
from . import Resolver, UnsatisfiedRequirements
|
||||
from ..requirements import (
|
||||
Requirement,
|
||||
BinaryRequirement,
|
||||
CHeaderRequirement,
|
||||
PkgConfigRequirement,
|
||||
PathRequirement,
|
||||
UpstreamRequirement,
|
||||
Requirement,
|
||||
JavaScriptRuntimeRequirement,
|
||||
ValaPackageRequirement,
|
||||
RubyGemRequirement,
|
||||
|
@ -53,9 +54,10 @@ from ..requirements import (
|
|||
)
|
||||
|
||||
|
||||
class AptRequirement(object):
|
||||
class AptRequirement(Requirement):
|
||||
|
||||
def __init__(self, package, minimum_version=None):
|
||||
super(AptRequirement, self).__init__('apt')
|
||||
self.package = package
|
||||
self.minimum_version = minimum_version
|
||||
|
||||
|
@ -493,7 +495,7 @@ APT_REQUIREMENT_RESOLVERS = [
|
|||
]
|
||||
|
||||
|
||||
def resolve_requirement_apt(apt_mgr, req: UpstreamRequirement) -> AptRequirement:
|
||||
def resolve_requirement_apt(apt_mgr, req: Requirement) -> AptRequirement:
|
||||
for rr_class, rr_fn in APT_REQUIREMENT_RESOLVERS:
|
||||
if isinstance(req, rr_class):
|
||||
return rr_fn(apt_mgr, req)
|
||||
|
@ -538,5 +540,5 @@ class AptResolver(Resolver):
|
|||
def explain(self, requirements):
|
||||
raise NotImplementedError(self.explain)
|
||||
|
||||
def resolve(self, req: UpstreamRequirement):
|
||||
def resolve(self, req: Requirement):
|
||||
return resolve_requirement_apt(self.apt, req)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue