diff --git a/nixos/modules/system/boot/stage-1.nix b/nixos/modules/system/boot/stage-1.nix index 1b2f22a039cb..6823e12847c2 100644 --- a/nixos/modules/system/boot/stage-1.nix +++ b/nixos/modules/system/boot/stage-1.nix @@ -87,9 +87,7 @@ let # copy what we need. Instead of using statically linked binaries, # we just copy what we need from Glibc and use patchelf to make it # work. - extraUtils = let - # Use lvm2 without udev support, which is the same lvm2 we already have in the closure anyways - lvm2 = pkgs.lvm2.override { udev = null; }; in pkgs.runCommandCC "extra-utils" + extraUtils = pkgs.runCommandCC "extra-utils" { nativeBuildInputs = [pkgs.buildPackages.nukeReferences]; allowedReferences = [ "out" ]; # prevent accidents like glibc being included in the initrd } @@ -113,8 +111,8 @@ let copy_bin_and_libs ${pkgs.utillinux}/sbin/blkid # Copy dmsetup and lvm. - copy_bin_and_libs ${getBin lvm2}/bin/dmsetup - copy_bin_and_libs ${getBin lvm2}/bin/lvm + copy_bin_and_libs ${getBin pkgs.lvm2}/bin/dmsetup + copy_bin_and_libs ${getBin pkgs.lvm2}/bin/lvm # Add RAID mdadm tool. copy_bin_and_libs ${pkgs.mdadm}/sbin/mdadm diff --git a/nixos/tests/installer.nix b/nixos/tests/installer.nix index f64e4101d45b..bd1bf7331531 100644 --- a/nixos/tests/installer.nix +++ b/nixos/tests/installer.nix @@ -317,7 +317,6 @@ let texinfo unionfs-fuse xorg.lndir - (lvm2.override { udev = null; }) # for initrd (extra-utils) # add curl so that rather than seeing the test attempt to download # curl's tarball, we see what it's trying to download diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index dffd32e9bc3a..879fd4bd832b 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -17246,11 +17246,7 @@ in criu = callPackage ../os-specific/linux/criu { }; - cryptsetup = callPackage ../os-specific/linux/cryptsetup { - # cryptsetup only really needs the devmapper component of cryptsetup - # but itself is used as a library in systemd (=udev) - lvm2 = lvm2.override { udev = null; }; - }; + cryptsetup = callPackage ../os-specific/linux/cryptsetup { }; cramfsprogs = callPackage ../os-specific/linux/cramfsprogs { }; @@ -18032,7 +18028,12 @@ in lsscsi = callPackage ../os-specific/linux/lsscsi { }; - lvm2 = callPackage ../os-specific/linux/lvm2 { }; + lvm2 = callPackage ../os-specific/linux/lvm2 { + # udev is the same package as systemd which depends on cryptsetup + # which depends on lvm2 again. But we only need the libudev part + # which does not depend on cryptsetup. + udev = udev.override { cryptsetup = null; }; + }; lvm2_dmeventd = callPackage ../os-specific/linux/lvm2 { enableDmeventd = true; enableCmdlib = true;