bcachefs-tools/build.nix
Finn Behrens e6b578917f nix: add bcachefs-fuse package
Add a fuseSupport argument and bcachefs-fuse as flake output with fuse enabled.

Signed-off-by: Finn Behrens <me@kloenk.de>
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
2023-11-20 15:13:17 -05:00

60 lines
1.4 KiB
Nix

{ 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;
BCACHEFS_FUSE = if fuseSupport then "1" else "";
cargoRoot = "rust-src";
# 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}/rust-src/Cargo.lock";
outputHashes = {
"bindgen-0.64.0" = "sha256-GNG8as33HLRYJGYe0nw6qBzq86aHiGonyynEM7gaEE4=";
};
};
makeFlags = [ "DESTDIR=${placeholder "out"}" "PREFIX=" "VERSION=${commit}" ];
dontStrip = true;
checkPhase = "./bcachefs version";
doCheck = true;
meta = {
mainProgram = "bcachefs";
license = lib.licenses.gpl2Only;
};
}