Last commit made on 2024-03-01
Get this branch:
git clone -b master
Members of curtin developers can upload to this branch. Log in for directions.

Branch merges

Branch information


Recent commits

c5bb06b... by Mitchell Augustin

Bind ischroot->true in ChrootableTarget and --mount-proc in unshare

Some programs that are installed by default in Ubuntu rely on checking
/proc/$pid to determine if certain processes are still alive. Curtin's
current default behavior for "curtin in-target" is to run children
inside a separate PID namespace without also isolating /proc,
meaning checks for /proc/$pid usually wait on the wrong process
entirely. One such example is in any DKMS package, as DKMS checks
/proc/$pid. (I have submitted a similar patch to them to address
this as well:

Adding --mount-proc to unshare --pid args resolves that issue since
/proc is already mounted in However, it introduces a new
issue with postinstall scripts that rely on ischroot to determine
whether to restart systemd, since ischroot behavior is undefined
in pid namespaces. Bind-mounting /usr/bin/ischroot to /usr/bin/true
resolves this issue and is always correct since the symlink is
added only within ChrootableTargets.

c3c4f42... by Dan Bungert

util: human2bytes actually return int

3d431ba... by Dan Bungert

zpool: create keystore encrypted setups

Add support for the 'luks_keystore' style encrypted ZFS install. Native
ZFS encryption is supported by a small dm_crypt dataset containing the
real key. This is a functional transcription of the way that Ubiquity
has implemented encrypted guided ZFS.

e01fe40... by Dan Bungert

dm_crypt: tests related to keyfile removal

5999a74... by Dan Bungert

dm_crypt: clearer name for keyfile removal

1a3efd1... by Dan Bungert

dm_crypt: create and use cryptoswap as PLAIN

Previously, cryptoswap was acting strangely, in that at install time it
was considered to be a LUKS2 device and durign actual system use it
would be considered a PLAIN device, in the cryptsetup(8) meanings of
these terms.

This caused problems when attempting to reference the device, as we
would do get_volume_spec(), the returned /dev/disk/by-id/dm-uuid-...
value would be wrong - it would change from dm-uuid-CRYPT-LUKS2-... to

As the real runtime behavior is to be a PLAIN device for cryptoswap,
stop creating it as a LUKS2 device and just use it as a PLAIN device,
which doesn't involve a "create" step at all, you just open it as PLAIN

9274f95... by Dan Bungert

dm_crypt: split create and open operations

fc39d74... by Dan Bungert

block_meta: improve get_volume_uuid

blkid can return 3 different types of UUIDs, and they aren't
interchangable. Clarify which one we're using.

Also, leverage the existing blkid() wrapper to do so.

a85f7d6... by Alexsander de Souza

raise exception on bcache validation errors

returning the exception is probably a typo

cbe2186... by Skia

pycodestyle: make use of isinstance() instead of type()

Should fix curtin-style-tip job.