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.
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.
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-
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".