cryptsetup: make all programs optional (#254767)

Some use cases (think appliances) call for veritysetup but not
cryptsetup, and others (like NixOS) don't need veritysetup and usually
not integritysetup.  This is especially useful for pkgsStatic where
each program contains a whole copy of the libraries it needs so is
quite large.
This commit is contained in:
Alyssa Ross 2023-09-12 18:31:50 +00:00 committed by GitHub
parent 2c9c595f76
commit 771d87046a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -2,6 +2,9 @@
, openssl, libuuid, pkg-config, popt, nixosTests
, libargon2, withInternalArgon2 ? false
# Programs enabled by default upstream are implicitly enabled unless
# manually set to false.
, programs ? {}
# The release tarballs contain precomputed manpage files, so we don't need
# to run asciidoctor on the man sources. By avoiding asciidoctor, we make
# the bare NixOS build hash independent of changes to the ruby ecosystem,
@ -50,7 +53,7 @@ stdenv.mkDerivation rec {
# support, because the path still gets included in the binary even
# though it isn't used.
"--with-luks2-external-tokens-path=/"
];
] ++ (with lib; mapAttrsToList (flip enableFeature)) programs;
nativeBuildInputs = [ pkg-config ] ++ lib.optionals rebuildMan [ asciidoctor ];
buildInputs = [ lvm2 json_c openssl libuuid popt ] ++ lib.optional (!withInternalArgon2) libargon2;