bcachefs-tools/build.nix

78 lines
1.3 KiB
Nix
Raw Normal View History

{
lib,
stdenv,
pkg-config,
attr,
libuuid,
libsodium,
keyutils,
liburcu,
zlib,
libaio,
udev,
zstd,
lz4,
nix-gitignore,
rustPlatform,
rustc,
cargo,
fuse3,
fuseSupport ? false,
}:
let
src = nix-gitignore.gitignoreSource [ ] ./.;
commit = lib.strings.substring 0 7 (builtins.readFile ./.bcachefs_revision);
version = "git-${commit}";
in
stdenv.mkDerivation {
inherit src version;
pname = "bcachefs-tools";
nativeBuildInputs = [
pkg-config
cargo
rustc
rustPlatform.cargoSetupHook
rustPlatform.bindgenHook
];
buildInputs = [
libaio
keyutils # libkeyutils
lz4 # liblz4
libsodium
liburcu
libuuid
zstd # libzstd
zlib # zlib1g
attr
udev
] ++ lib.optional fuseSupport fuse3;
2024-01-22 01:16:51 +03:00
${if fuseSupport then "BCACHEFS_FUSE" else null} = "1";
cargoRoot = ".";
# when git-based crates are updated, run:
# nix run github:Mic92/nix-update -- --version=skip --flake default
# to update the hashes
cargoDeps = rustPlatform.importCargoLock { lockFile = "${src}/Cargo.lock"; };
makeFlags = [
"DESTDIR=${placeholder "out"}"
"PREFIX="
"VERSION=${commit}"
];
dontStrip = true;
2024-01-22 01:16:51 +03:00
checkPhase = "./target/release/bcachefs version";
doCheck = true;
meta = {
mainProgram = "bcachefs";
license = lib.licenses.gpl2Only;
};
}