systemd-udevd provides support for significantly more hardware than mdevd does. Therefore, switch to it. All of the non-Nix code has been tested. However, this was done using an alternate default.nix (see v1) that used glibc. NixOS's binary cache doesn't include many packages built with musl, and Spectrum OS's binary cache doesn't include packages built with systemd's libudev, so a huge number of packages need to be built from source. This still has not finished. Signed-off-by: Demi Marie Obenour <demiobenour@gmail.com> --- Changes in v2: - Use more optional arguments instead of positional parameters in sd-notify-wrapper. - Explain why explicit modprobe is needed. - Link to v1: https://spectrum-os.org/lists/archives/spectrum-devel/20250913-udev-v1-0-ead... --- Demi Marie Obenour (3): tools: Add adapter tool for services using sd_notify host/rootfs: Switch to systemd-udevd host/rootfs: Simplify s6-rc dependencies host/rootfs/Makefile | 35 ++-- host/rootfs/default.nix | 112 ++++------- host/rootfs/image/etc/mdev.conf | 7 - host/rootfs/image/etc/mdev/listen | 11 -- host/rootfs/image/etc/mdev/wait | 14 -- host/rootfs/image/etc/s6-rc/basic/contents | 18 ++ .../rootfs/image/etc/s6-rc/{vmm-env => basic}/type | 0 .../etc/s6-rc/{vmm-env => basic}/type.license | 0 host/rootfs/image/etc/s6-rc/card0/type.license | 2 - host/rootfs/image/etc/s6-rc/card0/up | 4 - host/rootfs/image/etc/s6-rc/kvm/up | 5 +- host/rootfs/image/etc/s6-rc/mdevd-coldplug/type | 1 - host/rootfs/image/etc/s6-rc/mdevd-coldplug/up | 4 - .../image/etc/s6-rc/mdevd/notification-fd.license | 2 - host/rootfs/image/etc/s6-rc/mdevd/run | 5 - host/rootfs/image/etc/s6-rc/ok-all/contents | 19 +- .../mdevd => sys-vmms/dependencies.d/vm-env} | 0 .../dependencies.d/systemd-udevd} | 0 .../s6-rc/{card0 => systemd-udevd-coldplug}/type | 0 .../type.license | 0 .../image/etc/s6-rc/systemd-udevd-coldplug/up | 3 + .../card0 => systemd-udevd/flag-essential} | 0 .../s6-rc/{mdevd => systemd-udevd}/notification-fd | 0 .../s6-rc/systemd-udevd/notification-fd.license | 2 + host/rootfs/image/etc/s6-rc/systemd-udevd/run | 14 ++ .../image/etc/s6-rc/{mdevd => systemd-udevd}/type | 0 .../s6-rc/{mdevd => systemd-udevd}/type.license | 0 host/rootfs/image/etc/s6-rc/vm-env/contents | 12 +- host/rootfs/image/etc/s6-rc/vm-env/type.license | 2 - host/rootfs/image/etc/s6-rc/vmm-env/contents | 6 - .../image/etc/s6-rc/weston/dependencies.d/basic | 0 .../image/etc/udev/rules.d/99-spectrum.rules | 9 + host/rootfs/image/usr/bin/vm-start | 2 +- .../{etc/mdev/net/add => usr/libexec/net-add} | 0 tools/default.nix | 1 + tools/meson.build | 1 + tools/sd-notify-adapter/meson.build | 4 + tools/sd-notify-adapter/sd-notify-adapter.c | 206 +++++++++++++++++++++ 38 files changed, 342 insertions(+), 159 deletions(-) --- base-commit: 0fcf508e884944a2875fb52dbf58a977aa5df6e8 change-id: 20250911-udev-24cf4bf68fbe -- Sincerely, Demi Marie Obenour (she/her/hers)