curtin:master

Last commit made on 2025-10-08
Get this branch:
git clone -b master https://git.launchpad.net/curtin
Members of curtin developers can upload to this branch. Log in for directions.

Branch merges

Branch information

Name:
master
Repository:
lp:curtin

Recent commits

1b65076... by Olivier Gayot

nvme-o-tcp: drop set-name directives from netplan config

If the nbft0 interface config contains a set-name directive, netplan will
attempt to honor it during boot. This leads to a temporary network loss, which
ends up fatal (i.e., it prevents booting) in a NVMe/TCP environment.

Make sure that we drop any set-name directive when configuring the critical
interface for NVMe/TCP booting.

LP: #2127072

Signed-off-by: Olivier Gayot <email address hidden>

d1421a6... by Olivier Gayot

nvme-o-tcp: clarify what's the expected name for the network interface with dracut

Signed-off-by: Olivier Gayot <email address hidden>

18d60e0... by Dan Bungert

curthooks: install zfs-dracut as needed

When using zfs, installing zfs-initramfs is only correct if the target
is using initramfs-tools. Handle the dracut case.

LP: #2125164

74cccc4... by Dan Bungert

distro: ensure_one_kernel - fix metapackage + no kernel install

In the case where we list metapackages in the before list for
ensure_one_kernel(), and we haven't actually installed a kernel during
the yield, there is nothing to remove. Strict set equality check
doesn't handle that correctly.

941edfe... by Olivier Gayot

block_meta: skip blockdevs with no DEVNAME when searching for a specific dev

In the presence of nvme*c*n1 block devices, the
udev_all_block_device_properties function used to raise a KeyError "DEVNAME".

Apparently those block devices have no associated DEVNAME, so we should not
lean on the presence of such key.

LP: #2095211

Signed-off-by: Olivier Gayot <email address hidden>

4ac8207... by Olivier Gayot

block: drop "first" argument from get_device_mapper_links()

Having a "first" parameter makes it sound like we can reliably expect
what the first devlink of a device would be.

But it isn't true, the devlinks are not consistent across releases of
Ubuntu.

Furthermore, doing get_device_mapper_links()[0] produces the exact same
result.

Signed-off-by: Olivier Gayot <email address hidden>

1be88c0... by Olivier Gayot

block: fix logic to determine DM partition kname on Ubuntu 25.10+

The logic we had to determine a partition kname for a DM device is based
on adding -part{n} to the first devlink of the device.

Before Ubuntu 25.10, the first devlink was typically
/dev/disk/by-id/dm-name-{name}, and the logic worked because
/dev/disk/by-id/dm-name-{name}-part{n} is a thing when the device is
partitioned.

Unfortunately, since Ubuntu 25.10, the first devlink is
/dev/disk/by-diskseq/{seq} where seq is a number. The logic does not
work anymore since /dev/disk/by-diskseq/{seq}-part{n} is not a thing.

Fixed by looking specifically for the devlink which starts with
/dev/disk/by-id/dm-name-

LP: #2119429

Signed-off-by: Olivier Gayot <email address hidden>

e6806e9... by Olivier Gayot

zfs: add dependency on cryptsetup for encrypted zpools

For a ZFS encrypted installation, the cryptsetup package must be
installed to the target system and the binary copied to the initramfs.
Failing to install the package results in an unbootable system.

Currently, we only install the cryptsetup package when the partitioning
config contains at least one "type: dm_crypt" element.

But not all installations have an explicit "type: dm_crypt" element.

When Subiquity runs a guided ZFS encrypted installation, the
partitioning config only contains a "type: dm_crypt" element if we have
room for an encrypted swap partition. While this is true in most
scenarios, installing to a small enough disk will make Subiquity skip
the swap partition.

We now also install crypsetup when the partitioning configuration
contains a "type: zpool" element with "encryption_style: luks_keystore".

LP: #2119293

Signed-off-by: Olivier Gayot <email address hidden>

5fd4993... by Dan Bungert

vmtest-system-setup +zfsutils-linux

ac353a3... by Dan Bungert

zfs: choose our luks header size

Choosing a luks header size allows us to protect against surprises later
if the detected luks header size changes.

LP: #2107381