mkinitcpio is the initramfs generation tool written for Arch Linux. A new release of mkinitcpio has been tagged. The release can be downloaded from Gitlab: https://gitlab.archlinux.org/archlinux/mkinitcpio/mkinitcpio/-/releases/v40 CHANGES WITH v40 Breaking Change: * The build system has moved to meson. This enables configuration options for `mkinitcpio` to support build-time features. The `Makefile` is still being used for some auxiliary helper scripts. To build mkinitcpio: meson setup build meson compile -C build Run test suite: meson test -C build Install: meson install -C build See `meson.options` for a list of available options. * install/sd-encrypt no longer includes the cryptsetup plugin for pkcs11. This has been moved to install/sd-encrypt-opensc. New Features: * install/sd-verity enables dm-verity support in the initramfs. This allows one to specify the dm-verity protected drives to systemd. This enables support for authenticated encryption in the initramfs. * install/sd-volatile enables support for systemd-volatile in the initramfs. This hook replaces the root directory with a volatile in-memory file system. This enables stateless systems. * install/sd-encrypt-opensc enables support for unlocking LUKS2 volumes with the OpenSC PKCS#11 module and CCID driver. Changes in mkinitcpio: * --moduleroot would previously include the entire module root path into the initramfs. This has been fixed. * find_module_from_symbol now understands uncompressed kernel modules. * UKIs will no longer be outputted as executable files. * Now supports the new gzip/zstd-only compression mode 'zstd' introduced in Linux 6.13 and onwards. * /lib64 and /usr/lib64 is now properly symlinked on loongarch64. * A new --nopost flag is implemented to disable running mkinitcpio hooks. * mkinitcpio will now also look for vmlinux files. * add_binary now properly supports filemodes. Changes in mkinitcpio.conf: * <preset>_cmdline allows the preset to select which kernel command line file to be used with the UKI. * <preset>_splash allows the preset to select which splash image to be used with the UKI. * <preset>_kerneldest allows the preset to select the destination location for the kernel to boot with. Changes in hooks: * install/systemd includes the 20-systemd-stub.conf tmpfiles.d configuration file to preserve things like the tpm2 pcr public key. * install/systemd now supports systemd v258 and onwards. * install/systemd supports appending multiple shutdown hooks by placing a tmpfiles.d file into the initramfs that writes to the file /run/initramfs/mkinitcpio-shutdown.conf. * install/systemd now installs the appropriate systemd tmpfiles to enable PCR unlocking. * install/systemd now includes the services and binaries needed for validatefs. * install/resume had a bug where SYSTEMD_COLORS=1 would fail the hook as escape codes would be emitted. * install/filesystems will now omit the mount binaries of several filesystems that have no use in the early boot environment. * install/kms will now omit checking for privacy screens on kernel versions before 5.17. * install/block now includes low-level drivers for some pci/usb controllers. Changes in packaging: * The libalpm hooks will now properly trigger a rebuild when extramodules change. * The default kernel preset files no longer includes the fallback image. Contributions from: Andrew J. Hesford, Balakrishnan Balasubramanian, Christian Hesse, Christian Heusel, Diego Viola, Dmytro Bagrii, Felix Pehla, Felix Yan, Jonas Zinn, Josephine Pfeiffer, Luke T. Shumaker, Markus Weippert, Martin Stolpe, Mike Yuan, Morten Linderud, Philip H., Tiago de Paula, Vladimir Stoiakin, Xiaotian Wu, classabbyamp, cvlc12, kastik, ltsdw, nl6720 - 2025-11-04 -- Morten Linderud PGP: 9C02FF419FECBE16