From: Ross Burton Date: Thu, 12 Sep 2024 10:46:09 +0000 (+0100) Subject: systemd: add missing dependency on libkmod to udev X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=12fadefe11ed9f09171087608c3c4b83c7302b3f;p=thirdparty%2Fopenembedded%2Fopenembedded-core-contrib.git 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 --- 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"