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