Compare commits

...

3 Commits

Author SHA1 Message Date
Toolybird
64790b4fb6 Merge branch 'nspawn_args_feature' into 'master'
feat(archroot): add support for systemd-nspawn args

See merge request archlinux/devtools!201
2025-08-11 19:53:10 +10:00
Aaron Liu
3f0ebbc6d2 fix(license): add .gitignore to REUSE defaults
36 packages use this while 26 use *.pam and 21 use *.logrotate. Seems
anecdotally common enough to add this here.
2025-08-08 14:13:32 +02:00
Toolybird
6a2e26b80c feat(archroot): add support for systemd-nspawn args
Allow passing additional command line args to systemd-nspawn for
makechrootpkg builds. The use case is to allow various test suites to
benefit from greater coverage by selectively allowing syscalls and/or
capabilities that would otherwise be blocked by the standard
systemd-nspawn container.

Example usage:

makechrootpkg -s --machine=foo,--keep-unit,--system-call-filter="munlockall @keyring"

Signed-off-by: Toolybird <toolybird@tuta.io>
2024-12-09 15:46:31 +11:00
3 changed files with 10 additions and 1 deletions

View File

@@ -79,6 +79,9 @@ Options
*-x* <when>::
Inspect chroot after build, possible modes are 'never' (default), 'always' or 'failure'
*-s* <args>::
Additional systemd-nspawn args (comma-separated) for the arch-nspawn build phase
See Also
--------

View File

@@ -188,6 +188,7 @@ path = [
"README.md",
"keys/**",
".SRCINFO",
".gitignore",
".nvchecker.toml",
"*.install",
"*.sysusers",

View File

@@ -39,6 +39,7 @@ inspect=never
bindmounts_ro=()
bindmounts_rw=()
bindmounts_tmpfs=()
nspawn_add_args=()
copy=$USER
[[ -n ${SUDO_USER:-} ]] && copy=$SUDO_USER
@@ -84,6 +85,8 @@ usage() {
echo '-T Build in a temporary directory'
echo '-U Run makepkg as a specified user'
echo '-x <when> Inspect chroot after build (never, always, failure)'
echo '-s <args> Additional systemd-nspawn args (comma-separated) for'
echo ' the arch-nspawn build phase'
exit 1
}
@@ -293,7 +296,7 @@ move_products() {
}
# }}}
while getopts 'hcur:I:l:nCTD:d:U:x:t:' arg; do
while getopts 'hcur:I:l:nCTD:d:U:x:t:s:' arg; do
case "$arg" in
c) clean_first=1 ;;
D) bindmounts_ro+=("--bind-ro=$OPTARG") ;;
@@ -308,6 +311,7 @@ while getopts 'hcur:I:l:nCTD:d:U:x:t:' arg; do
T) temp_chroot=1; copy+="-$$" ;;
U) makepkg_user="$OPTARG" ;;
x) inspect="$OPTARG" ;;
s) IFS=, read -ra nspawn_add_args <<< "$OPTARG" ;;
h|*) usage ;;
esac
done
@@ -394,6 +398,7 @@ nspawn_build_args=(
"${bindmounts_ro[@]}"
"${bindmounts_rw[@]}"
"${bindmounts_tmpfs[@]}"
"${nspawn_add_args[@]}"
)
if arch-nspawn "$copydir" \