summaryrefslogtreecommitdiff
path: root/mdbp
AgeCommit message (Collapse)Author
2022-06-23mmdebstrap: add type hints to set_uidsHelmut Grohne
2022-06-23ssh: use tarfile as a context managerHelmut Grohne
2022-06-23mmdebstrap: use Popen as a context managerHelmut Grohne
2022-06-23ssh: use Popen as a context managerHelmut Grohne
2022-06-23streamapi: use Popen as a context managerHelmut Grohne
2022-04-20mmdebstrap: do not use pwd moduleHelmut Grohne
The pwd module started caching /etc/passwd and fails to notice the user created using useradd.
2021-07-10pbuilder: fail when apt-get update failsHelmut Grohne
2021-07-10stop using from __future__ import annotationsHelmut Grohne
Its future in Python upstream sees uncertain.
2021-07-10pbuilder: uninline a function for locating the base.tgzHelmut Grohne
2021-07-08uninline helper function temporary_static_fileHelmut Grohne
2021-07-06pbuilder: rewrite cmd.extend sequence as listHelmut Grohne
2021-07-06pbuilder: implement support for build_pathHelmut Grohne
2021-07-06pbuilder: use an ExitStackHelmut Grohne
Doing so bears three advantages: * Adding more context managers - especially conditional ones - becomes easier. * Context managers can be delayed until the point where they're actually needed without adding to indentation. * We get rid of two local variables. Less state in your head.
2021-07-06mmdebstrap and sbuild shall agree on what build_path meansHelmut Grohne
While mmdebstrap would extract the package precisely to the build_path, sbuild would create a subdirectory <source>-<upstream_version> inside the build_path. Changing sbuild to do the mmdebstrap behaviour looks next to impossible, so this commit changes mmdebstrap to behave like sbuild. pbuilder also allows changing the build_path in principle. The documented BUILDDIR variable works quite similar to the sbuild option --build-path. pbuilder also allows changing the sub directory using the undocumented BUILDSUBDIR variable. That's another reason to do it like sbuild.
2021-07-01sbuild: fix quoting of config stringsHelmut Grohne
Not escaping a $ would make perl interpolate it at config parsing time. Fixes: 8ea45852d692 ("sbuild: make environment passing work")
2021-07-01drop unnecessary execution bit from mdbp/debspawn.pyHelmut Grohne
Fixes: c03690f53941 ("implement basic debspawn backend")
2021-06-24rename a number of fields to become similar to debusineHelmut Grohne
debusine describes a PackageBuildTask in docs/devel/ontology.rst. Changes performed herein: * dscpath -> source_package_path * dscuri -> source_package_url * buildarch -> build_architecture * hostarch -> host_architecture * options -> build_options * profiles -> build_profiles * buildpath -> build_path
2021-06-15implement basic debspawn backendHelmut Grohne
2021-06-15allow passing custom options to pbuilder and sbuildHelmut Grohne
2021-05-27correctly handle integer values for .parallelHelmut Grohne
Fixes: 29859ef384a5 ("support a new field "parallel"")
2021-05-27prefer subprocess.call over subprocess.runHelmut Grohne
Avoid pylint complaining and we don't need the CompletedProcess object.
2021-05-27pbuilder: allow missing .lintian in jsonHelmut Grohne
Fixes: 65431c5ef882 ("pbuilder: support running lintian")
2021-05-27add new field .output.artifacts to schemaHelmut Grohne
Using the field you can specify an ORed set of positive glob-style patterns for artifacts to retain in the .output.directory. It defaults to including all artifacts.
2021-05-20common: simplify code using contextlib.suppressHelmut Grohne
2021-05-20schema: fix indentationHelmut Grohne
Fixes: 29859ef384a5 ("support a new field "parallel"")
2021-05-19ssh: improve handling of failed buildsHelmut Grohne
When the wrapped backend fails, streamapi does not produce an artifact tar on stdout. When this goes missing, we'll see a traceback. Hide that traceback and adapt the exit code if necessary.
2021-05-19sbuild: don't just apt upgrade, dist-upgrade insteadHelmut Grohne
2021-05-19pbuilder: support running lintianHelmut Grohne
2021-05-19pbuilder: always update and upgrade the chrootHelmut Grohne
2021-05-19sbuild: always update and upgrade the chrootHelmut Grohne
2021-05-18mmdebstrap: tell debconf not to generate its databaseHelmut Grohne
Bluntly copied from pbuilder as it does not seem to cause any problems there.
2021-05-18enable building a source package by name and versionHelmut Grohne
If a package is specified by name, it is downloaded inside the chroot using the embedded deb-src uris. sbuild implements this natively, pbuilder does not implement this yet, but there is #988419 and mmdebstrap can make it work.
2021-05-18mmdebstrap: reimplement build hook recursivelyHelmut Grohne
Instead of writing a complex shell script in a limited sub-language of shell, call out to ourselves and implement the build functionality in Python.
2021-05-17mmdebstrap: don't keep a lintian.deb eitherHelmut Grohne
2021-05-17mmdebstrap: fix logic error in parent commitHelmut Grohne
Fixes: a5d4cfd4b996 ("mmdebstrap: don't keep downloaded .deb files")
2021-05-16mmdebstrap: don't keep downloaded .deb filesHelmut Grohne
Since we delete the chroot anyway, there is no need to keep the .debs for the build.
2021-05-16mmdebstrap: reorder source unpack vs build-depHelmut Grohne
By doing the unpack before the satisfying build dependencies, we can point apt at the extracted source package and stop talking about the .dsc file. It also means that we can clean those artifacts earlier.
2021-05-16mmdebstrap: allow a PurePath for chdir in priv_dropHelmut Grohne
2021-05-12sbuild: make environment passing workHelmut Grohne
sbuild filters the environment and removes all but a set of whitelisted variables. Unfortunately, the filter is quite restrictive and filters e.g. "TARGET", which can be used to configure a binutils build. There is no good way to get around this environment filter from the command line. The one way that does work, is passing a SBUILD_CONFIG that contains the desired variables. Once we do have such a file, we can encode a number of other command line switches as well.
2021-05-11add ssh remote backend and streamapi wrapperHelmut Grohne
The ssh backend calls into another host and passes all information on stdin/stdout/stderr. To do so, it uses a streamapi wrapper on the remote side that itself calls into a regular backend.
2021-05-09mmdebstrap: install fakerootHelmut Grohne
When the package does not say "Rules-Requires-Root: no", we need a root command and dpkg-buildpackage defaults to fakeroot. Unfortunately, we cannot tell whether the packages requires fakeroot, because the stanza is not copied to the .dsc. Unconditionally install fakeroot then.
2021-05-09schema: allow more characters in DEB_BUILD_OPTIONSHelmut Grohne
In particular, allow DEB_BUILD_OPTIONS=nolang=objc,obj-c++ as this is used by gcc-N.
2021-05-09support a new field "parallel"Helmut Grohne
It is basically the parallel field from DEB_BUILD_OPTION which a special value "auto" that is converted to the CPU count.
2021-05-09schema: fix type of additionalPropertiesHelmut Grohne
Fixes: bf30d5dd0350 ("schema: generally set additionalProperties to false")
2021-05-09the stdout fd contains the build logHelmut Grohne
Using a pipe enables streaming of logs, which would not be possible with a regular file output.
2021-04-27schema: generally set additionalProperties to falseHelmut Grohne
That way the backends abort upon seeing unrecognized properties.
2021-04-26mmdebstrap: move the default mirror into argparseHelmut Grohne
2021-04-23sbuild: pass --nologHelmut Grohne
Neither pbuilder nor mmdebstrap produce a separate log file (beyond the output on the standard streams). Disabling the extra file improves consistency.
2021-04-23pbuilder: pass --no-source-only-changesHelmut Grohne
Neither sbuild nor mmdebstrap produce a source changes file by default. Skipping it for pbuilder improves consistency.
2021-04-23remove redundant values from schemaHelmut Grohne
The bd-uninstallable-explainer value null is equivalent to skipping the option and thus dropped. The network value "undefined" is equivalent to skipping the option and thus dropped. Reported-by: David Kalnischkies <donkult@debian.org>