
targetPlatform refers to the platform the program being compiled will produce binaries for, which only makes sense for things like compilers, not cryptsetup. The correct platform to look at to check static support is hostPlatform, which refers to the architecture the program being compiled will run on.
50 lines
1.4 KiB
Nix
50 lines
1.4 KiB
Nix
{ lib, stdenv, fetchurl, lvm2, json_c
|
|
, openssl, libuuid, pkg-config, popt }:
|
|
|
|
stdenv.mkDerivation rec {
|
|
pname = "cryptsetup";
|
|
version = "2.4.3";
|
|
|
|
outputs = [ "out" "dev" "man" ];
|
|
|
|
src = fetchurl {
|
|
url = "mirror://kernel/linux/utils/cryptsetup/v2.4/${pname}-${version}.tar.xz";
|
|
sha256 = "sha256-/A35RRiBciZOxb8dC9oIJk+tyKP4VtR+upHzH+NUtQc=";
|
|
};
|
|
|
|
# Disable 4 test cases that fail in a sandbox
|
|
patches = [ ./disable-failing-tests.patch ];
|
|
|
|
postPatch = ''
|
|
patchShebangs tests
|
|
|
|
# O_DIRECT is filesystem dependent and fails in a sandbox (on tmpfs)
|
|
# and on several filesystem types (btrfs, zfs) without sandboxing.
|
|
# Remove it, see discussion in #46151
|
|
substituteInPlace tests/unit-utils-io.c --replace "| O_DIRECT" ""
|
|
'';
|
|
|
|
NIX_LDFLAGS = lib.optionalString (stdenv.cc.isGNU && !stdenv.hostPlatform.isStatic) "-lgcc_s";
|
|
|
|
configureFlags = [
|
|
"--enable-cryptsetup-reencrypt"
|
|
"--with-crypto_backend=openssl"
|
|
"--disable-ssh-token"
|
|
] ++ lib.optionals stdenv.hostPlatform.isStatic [
|
|
"--enable-static-cryptsetup"
|
|
];
|
|
|
|
nativeBuildInputs = [ pkg-config ];
|
|
buildInputs = [ lvm2 json_c openssl libuuid popt ];
|
|
|
|
doCheck = true;
|
|
|
|
meta = {
|
|
homepage = "https://gitlab.com/cryptsetup/cryptsetup/";
|
|
description = "LUKS for dm-crypt";
|
|
license = lib.licenses.gpl2;
|
|
maintainers = with lib.maintainers; [ ];
|
|
platforms = with lib.platforms; linux;
|
|
};
|
|
}
|