From 12fadefe11ed9f09171087608c3c4b83c7302b3f Mon Sep 17 00:00:00 2001 From: Ross Burton Date: Thu, 12 Sep 2024 11:46:09 +0100 Subject: [PATCH] systemd: add missing dependency on libkmod to udev As of systemd 256, libsystemd-shared.so doesn't directly link to a number of libraries but instead dlopen()'s them as needed to reduce the size of the attack surface. Instead the .so has a .note.dlopen segment that lists the libraries that may be opened, with the intention that these are transformed into package recommendation fields. We don't yet have support for these (see #15595) so explicit dependencies have been added to the systemd package itself. However, in an initramfs with udev but without systemd and no recommendations you end up without libkmod, so module loading is impossible. Add an explicit hard dependency on libkmod to udev, because modules are critical functionality. Signed-off-by: Ross Burton Signed-off-by: Richard Purdie --- meta/recipes-core/systemd/systemd_256.5.bb | 2 ++ 1 file changed, 2 insertions(+) diff --git a/meta/recipes-core/systemd/systemd_256.5.bb b/meta/recipes-core/systemd/systemd_256.5.bb index 85c7fc743da..68f15ab065d 100644 --- a/meta/recipes-core/systemd/systemd_256.5.bb +++ b/meta/recipes-core/systemd/systemd_256.5.bb @@ -742,6 +742,8 @@ INSANE_SKIP:libsystemd-shared += "libdir" FILES:libsystemd-shared = "${rootlibdir}/systemd/libsystemd-shared*.so" RPROVIDES:udev = "hotplug" +# This can be removed when we parse .note.dlopen in the ELF +RDEPENDS:udev += "libkmod" RDEPENDS:udev-bash-completion += "bash-completion" RDEPENDS:udev-hwdb += "udev" -- 2.47.2