1 { lib, stdenv, pkg-config, attr, libuuid, libsodium, keyutils, liburcu, zlib
2 , libaio, udev, zstd, lz4, nix-gitignore, rustPlatform, rustc, cargo, }:
4 src = nix-gitignore.gitignoreSource [ ] ./.;
6 commit = lib.strings.substring 0 7 (builtins.readFile ./.bcachefs_revision);
7 version = "git-${commit}";
8 in stdenv.mkDerivation {
11 pname = "bcachefs-tools";
17 rustPlatform.cargoSetupHook
18 rustPlatform.bindgenHook
23 keyutils # libkeyutils
35 cargoRoot = "rust-src";
36 # when git-based crates are updated, run:
37 # nix run github:Mic92/nix-update -- --version=skip --flake default
38 # to update the hashes
39 cargoDeps = rustPlatform.importCargoLock {
40 lockFile = "${src}/rust-src/Cargo.lock";
42 "bindgen-0.64.0" = "sha256-GNG8as33HLRYJGYe0nw6qBzq86aHiGonyynEM7gaEE4=";
46 makeFlags = [ "DESTDIR=${placeholder "out"}" "PREFIX=" "VERSION=${commit}" ];
49 checkPhase = "./bcachefs version";
53 mainProgram = "bcachefs";
54 license = lib.licenses.gpl2Only;