'\" t
.\" Title: debspawn
.\" Author: [see the "AUTHOR" section]
.\" Generator: DocBook XSL Stylesheets vsnapshot
.\" Date: 18 August, 2018
.\" Manual: debspawn
.\" Source: Debspawn
.\" Language: English
.\"
.TH "DEBSPAWN" "1" "" "Debspawn" "debspawn"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.\" http://bugs.debian.org/507673
.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.ie \n(.g .ds Aq \(aq
.el .ds Aq '
.\" -----------------------------------------------------------------
.\" * set default formatting
.\" -----------------------------------------------------------------
.\" disable hyphenation
.nh
.\" disable justification (adjust text to left margin only)
.ad l
.\" -----------------------------------------------------------------
.\" * MAIN CONTENT STARTS HERE *
.\" -----------------------------------------------------------------
.SH "NAME"
debspawn \- Build in nspawn containers
.SH "SYNOPSIS"
.HP \w'\fBdebspawn\fR\ 'u
\fBdebspawn\fR [\-h|\-\-help] [\-c|\-\-config] [\-\-verbose] [\-\-no\-unicode] [\-\-version] [\-\-owner] [\fBCOMMAND\fR]
.SH "DESCRIPTION"
.PP
This manual page documents the
\fBdebspawn\fR
command\&.
.PP
\fBdebspawn\fR
is a tool to build Debian packages in an isolated environment, using nspawn containers\&. By using containers, Debspawn can isolate builds from the host system much better than a regular chroot could\&. It also allows for more advanced features to manage builds, for example setting resource limits for individual builds\&.
.PP
Please keep in mind that Debspawn is not a security feature! While it provides a lot of isolation from the host system, you should not run arbitrary untrusted code with it\&. The usual warnings for all technology based on Linux containers apply here\&. See
\fBsystemd\-nspawn(1)\fR
for more information on the container solution Debspawn uses\&.
.PP
Debspawn also allows one to run arbitrary custom commands in its environment\&. This is useful to execute a variety of non\-package build and QA actions that make sense to be run in the same environment in which packages are usually built\&.
.PP
For more information about the Debspawn project, you can visit its
\m[blue]\fBproject page\fR\m[]\&\s-2\u[1]\d\s+2\&.
.SH "SUBCOMMANDS"
.PP
\fBdebspawn\fR
actions are invoked via subcommands\&. Refer to their individual manual pages for further details\&.
.PP
\fBcreate\fR
.RS 4
Create a new container base image for a specific suite, architecture and variant\&. A custom mirror location can also be provided\&. For details, see
\fBdebspawn\-create(1)\fR\&.
.RE
.PP
\fBlist\fR
.RS 4
List information about all container image that Debspawn knows on the current host\&. For details, see
\fBdebspawn\-list(1)\fR\&.
.RE
.PP
\fBdelete\fR
.RS 4
Delete a container base image and all data associated with it\&. For details, see
\fBdebspawn\-delete(1)\fR\&.
.RE
.PP
\fBupdate\fR
.RS 4
Update a container base image, ensuring all packages are up to date and the image is set up properly for use with
\fBdebspawn\fR\&. For details, see
\fBdebspawn\-update(1)\fR\&.
.RE
.PP
\fBbuild\fR
.RS 4
Build a Debian package in an isolated environment\&. For details, see
\fBdebspawn\-build(1)\fR\&.
.RE
.PP
\fBlogin\fR
.RS 4
Get an interactive shell session in a container\&. For details, see
\fBdebspawn\-login(1)\fR\&.
.RE
.PP
\fBrun\fR
.RS 4
Run arbitrary commands in debspawn container session\&. This is primarily useful for using
\fBdebspawn\fR
to isolate non\-package build processes\&. For details, see
\fBdebspawn\-run(1)\fR\&.
.RE
.SH "FLAGS"
.PP
\-h|\-\-help
.RS 4
Print brief help information about available commands\&.
.RE
.PP
\-c|\-\-config
.RS 4
Path to the global config file\&.
.RE
.PP
\-\-verbose
.RS 4
Enable debug messages\&.
.RE
.PP
\-\-no\-unicode
.RS 4
Disable unicode support\&.
.RE
.PP
\-\-version
.RS 4
Display the version of debspawn itself\&.
.RE
.PP
\-\-owner
.RS 4
Set the user name/uid and group/gid separated by a colon whose behalf we are acting\&.
.RE
.SH "CONFIGURATION"
.PP
Configuration is read from an optional TOML file, located at
/etc/debspawn/global\&.toml
or a location specified with
\fB\-\-config\fR\&. Specifying a config file on the command line will skip loading of the global, system\-wide configuration\&.
.PP
The following keys are valid at the document root level, all are optional:
.PP
\fBOSImagesDir\fR
.RS 4
Location for stored container images\&.
.RE
.PP
\fBResultsDir\fR
.RS 4
Default output directory for build artifacts on successful builds\&.
.RE
.PP
\fBAPTCacheDir\fR
.RS 4
Location for debspawn\*(Aqs package cache\&.
.RE
.PP
\fBInjectedPkgsDir\fR
.RS 4
Package files placed in the root of this directory are available to all containers to satisfy build dependencies, while ones placed in subdirectories with the OS image name (e\&.g\&.
sid\-arm64) will only be available to the specified container\&.
.RE
.PP
\fBTempDir\fR
.RS 4
Temporary data location (Default:
/var/tmp/debspawn/)\&.
.RE
.PP
\fBDefaultBootstrapVariant\fR
.RS 4
Set a default variant used for bootstrapping with debootstrap that gets used if no variant is explicitly set when creating a new image\&. Set to
none
to make "no variant" the default\&. (Default:
buildd)
.RE
.PP
\fBSyscallFilter\fR
.RS 4
Set the system call filter used by
\fBdebspawn\fR
containers\&. This will take a list of system call names or set names as described in the "System Call Filtering" section of
systemd\&.exec(5)\&.
.sp
It also recognizes the special string\-only values
compat
and
nspawn\-default, where
compat
will allow enough system calls to permit many builds and tests that would run in a regular
sbuild(1)
chroot to work with
\fBdebspawn\fR
as well\&. By setting
nspawn\-default, the more restrictive defaults of
systemd\-nspawn(1)
are applied\&. (Default:
compat)
.RE
.PP
\fBAllowUnsafePermissions\fR
.RS 4
Boolean option\&. If set to
true, unsafe options can be used for building software via
\fBdebspawn run\fR, such as making the host\*(Aqs
/dev
and
/proc
filesystems available from within the container\&. See the
\fI\-\-allow\fR
option of
\fBdebspawn run\fR
for more details\&. (Default:
false)
.RE
.PP
\fBCachePackages\fR
.RS 4
Boolean option\&. If set to
false,
\fBdebspawn\fR
will not manage its own local cache of APT packages, but will instead always try to download them\&. It is only recommended to change this option if you are already running a separate APT package repository mirror or a caching proxy such as apt\-cacher\-ng(8)\&. (Default:
true)
.RE
.PP
\fBBootstrapTool\fR
.RS 4
Set the bootstrap tool that should be used for bootstrapping new images\&. The tool should have an interface compatible with debootstrap(8)\&. This option allows one to use alternative tools like mmdebstrap(1) with
\fBdebspawn\fR\&. (Default:
debootstrap)
.RE
.SH "SEE ALSO"
.PP
dpkg\-buildpackage(1), systemd\-nspawn(1), sbuild(1)\&.
.SH "AUTHOR"
.PP
This manual page was written by Matthias Klumpp
\&.
.SH "COPYRIGHT"
.br
Copyright \(co 2018-2022 Matthias Klumpp
.br
.SH "NOTES"
.IP " 1." 4
project page
.RS 4
\%https://github.com/lkorigin/debspawn
.RE