#!/usr/bin/python3 # SPDX-License-Identifier: MIT """mdbp backend using sbuild""" import argparse import subprocess import sys from .common import buildjson, compute_env, get_dsc, make_option, \ profile_option def main() -> None: """Entry point for mdbp-sbuild backend""" parser = argparse.ArgumentParser() parser.add_argument("buildjson", type=buildjson) args = parser.parse_args() build = args.buildjson if build.get("network") == "disable": raise ValueError("disabling network not supported with sbuild") cmd = [ "sbuild", "--nolog", "--dist=" + build["distribution"], "--no-arch-any" if build.get("type") == "all" else "--arch-any", "--no-arch-all" if build.get("type") == "any" else "--arch-all", "--bd-uninstallable-explainer=" + build.get("bd-uninstallable-explainer", ""), "--run-lintian" if build.get("lintian", {}).get("run") else "--no-run-lintian", ] cmd.extend(map("--lintian-opt=".__add__, build.get("lintian", {}).get("options", ()))) cmd.extend(make_option("--build=", build.get("buildarch"))) cmd.extend(make_option("--host=", build.get("hostarch"))) cmd.extend(map("--extra-repository=".__add__, build.get("extrarepositories", ()))) cmd.extend(profile_option(build, "--profiles=")) cmd.extend(make_option("--build-path=", build.get("buildpath"))) if build.get("network") == "try-disable": cmd.extend([ "--starting-build-commands=" "mv /etc/resolv.conf /etc/resolv.conf.disabled", "--finished-build-commands=" "mv /etc/resolv.conf.disabled /etc/resolv.conf", ]) with get_dsc(build) as dscpath: cmd.append(str(dscpath.absolute())) proc = subprocess.Popen(cmd, env=compute_env(build), cwd=build["output"]["directory"]) sys.exit(proc.wait()) if __name__ == "__main__": main()