[Piuparts-devel] Bug#1018893: support for unshare in some form
Jelmer Vernooij
jelmer at debian.org
Thu Sep 1 16:51:19 BST 2022
Package: piuparts
Severity: wishlist
It would be great if piuparts supported root-less operation, ideally in a less
complicated way than via podman+docker.
Conversation in #debian-qa suggests the are various options for building on
top of infrastructure that's provided by other packages, e.g. sbuild,
autopkgtest or mmdebootstrap.
<josch> Jelmer, h01ger: I'd second what helmut said. With mmdebstrap you get the equivalent of "lxc-usernsexec -- lxc-unshare -s 'MOUNT|PID|UTSNAME|IPC' -- /usr/sbin/chroot ./debian-rootfs /bin/bash" but without having to depend on lxc -- You can see a variant of this in the mmdebstrap man page where mmdebstrap is used as a wrapper of debootstrap to fix #829134. That way you can run debootstrap without
needing root: mmdebstrap --variant=custom --mode=unshare --setup-hook='env container=lxc debootstrap unstable "$1"' - debian-debootstrap.tar
Alternatively, if you want to depend on neither lxc nor mmdebstrap, a number of tools implemented a simple unshare backend already using code like this:
https://salsa.debian.org/debian/sbuild/-/blob/main/lib/Sbuild/Utility.pm#L382
or this: https://salsa.debian.org/ci-team/autopkgtest/-/blob/master/virt/autopkgtest-virt-unshare#L131
re-using the unshare functionality of either mmdebstrap, sbuild or autopkgtest would probably be best
there was some discussion whether those three tools could share some code here: https://salsa.debian.org/ci-team/autopkgtest/-/merge_requests/138#note_306768
unfortunately i don't see how
if somebody wants to work on unshare support for piuparts, feel free to ask me questions about unshare or its implementation in mmdebstrap, sbuild or autopkgtest
the other people in the know are smcv and jochensp
oh and there is this as a standalone replacement: https://gitlab.mister-muffin.de/josch/user-unshare/src/branch/main/user-unshare
-- System Information:
Debian Release: bookworm/sid
APT prefers unstable
APT policy: (500, 'unstable'), (500, 'testing')
merged-usr: no
Architecture: amd64 (x86_64)
Kernel: Linux 5.18.0-4-amd64 (SMP w/2 CPU threads; PREEMPT)
Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8), LANGUAGE not set
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled
Versions of packages piuparts depends on:
ii debootstrap 1.0.127
pn debsums <none>
ii libjs-sphinxdoc 4.5.0-4
ii lsb-release 11.2
ii lsof 4.95.0-1
ii mount 2.38.1-1
pn piuparts-common <none>
ii python3 3.10.6-1
ii python3-debian 0.1.47
Versions of packages piuparts recommends:
pn adequate <none>
Versions of packages piuparts suggests:
pn docker.io <none>
pn schroot <none>
More information about the Piuparts-devel
mailing list