diff mbox series

systemd: add missing dependency on libkmod to udev

Message ID 20240912104609.3197942-1-ross.burton@arm.com
State New
Headers show
Series systemd: add missing dependency on libkmod to udev | expand

Commit Message

Ross Burton Sept. 12, 2024, 10:46 a.m. UTC
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 <ross.burton@arm.com>
---
 meta/recipes-core/systemd/systemd_256.5.bb | 2 ++
 1 file changed, 2 insertions(+)
diff mbox series

Patch

diff --git a/meta/recipes-core/systemd/systemd_256.5.bb b/meta/recipes-core/systemd/systemd_256.5.bb
index db053b45428..dc799f682ae 100644
--- a/meta/recipes-core/systemd/systemd_256.5.bb
+++ b/meta/recipes-core/systemd/systemd_256.5.bb
@@ -743,6 +743,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"