On 11/8/25 14:49, Alyssa Ross wrote: > Demi Marie Obenour writes: > >> @@ -113,14 +76,15 @@ let >> >> kernel = linux_latest; >> >> - appvm = callSpectrumPackage ../../img/app { inherit (foot) terminfo; }; >> - netvm = callSpectrumPackage ../../vm/sys/net { inherit (foot) terminfo; }; >> + appvm = callSpectrumPackage ../../img/app { inherit (no_pgo_foot) terminfo; }; >> + netvm = callSpectrumPackage ../../vm/sys/net { inherit (no_pgo_foot) terminfo; }; >> >> # Packages that should be fully linked into /usr, >> # (not just their bin/* files). >> usrPackages = [ >> - appvm kernel.modules firmware netvm >> - ] ++ (with pkgsGui; [ mesa dejavu_fonts westonLite ]); >> + appvm kernel.modules firmware kmod kmod.lib >> + netvm mesa dejavu_fonts westonLite >> + ]; >> >> appvms = { >> appvm-firefox = callSpectrumPackage ../../vm/app/firefox.nix {}; > > So based on what we'd discussed previously, I was ready to just apply > this and pare down the Nix changes myself since I don't have to worry > about rebuilds, etc., but in doing so I came across this. Do you know > why kmod.lib is required? Is something impurely dlopening it? Seems > very strange, but I did verify that it's required for Weston to start. systemd uses dlopen heavily. This allows dependencies to be optional at runtime. I remember strace showing that systemd-udevd dlopen's kmod.lib. In short, your diagnosis is correct. -- Sincerely, Demi Marie Obenour (she/her/hers)