add mount and bch-bindgen nix builder file

update kernel diffHash
This commit is contained in:
Kayla Firestack 2021-10-18 12:34:12 -04:00
parent 26d6b3464a
commit 7e97ef59bd
3 changed files with 121 additions and 1 deletions

View File

@ -14,12 +14,15 @@ final: prev: {
debugMode = true;
};
bch_bindgen = final.callPackage ../rust-src/bch_bindgen {};
mount = final.callPackage ../rust-src/mount {};
kernelPackages = final.recurseIntoAttrs (final.linuxPackagesFor final.bcachefs.kernel);
kernel = final.callPackage ./bcachefs-kernel.nix {
commit = final.bcachefs.tools.bcachefs_revision;
# This needs to be recalculated for every revision change
diffHash = "sha256-JrVRkEO7DKUTf+qhjWPwfbF3a/Qbd8me7oGay4aae3k=";
diffHash = "sha256-XSA0dBZZL8RXplgjpoLOFSULM8t/0Ztz8xlhLn9hdyw=";
kernelPatches = [];
};
};

View File

@ -0,0 +1,76 @@
{ lib
, stdenv
, rustPlatform
, llvmPackages
, bcachefs
, pkg-config
, udev
, liburcu
, zstd
, keyutils
, libaio
, lz4 # liblz4
, libsodium
, libuuid
, zlib # zlib1g
, libscrypt
, rustfmt
, glibc
, ...
}: let
include = {
glibc = "${glibc.dev}/include";
clang = let libc = llvmPackages.libclang; in
"${libc.lib}/lib/clang/${libc.version}/include";
urcu = "${liburcu}/include";
zstd = "${zstd.dev}/include";
};
cargo = lib.trivial.importTOML ./Cargo.toml;
in rustPlatform.buildRustPackage {
pname = cargo.package.name;
version = cargo.package.version;
src = builtins.path { path = ./.; name = "bch_bindgen"; };
cargoLock = { lockFile = ./Cargo.lock; };
nativeBuildInputs = [ rustfmt pkg-config ];
buildInputs = [
# libaio
keyutils # libkeyutils
lz4 # liblz4
libsodium
liburcu
libuuid
zstd # libzstd
zlib # zlib1g
udev
libscrypt
libaio
];
LIBBCACHEFS_LIB ="${bcachefs.tools}/lib";
LIBBCACHEFS_INCLUDE = bcachefs.tools.src;
LIBCLANG_PATH = "${llvmPackages.libclang.lib}/lib";
BINDGEN_EXTRA_CLANG_ARGS = lib.replaceStrings ["\n" "\t"] [" " ""] ''
-std=gnu99
-I${include.glibc}
-I${include.clang}
-I${include.urcu}
-I${include.zstd}
'';
postPatch = ''
cp ${./Cargo.lock} Cargo.lock
'';
doCheck = true;
# NIX_DEBUG = 4;
}

View File

@ -0,0 +1,41 @@
{ lib
, stdenv
, glibc
, llvmPackages
, rustPlatform
, bcachefs
, ...
}: rustPlatform.buildRustPackage ( let
cargo = lib.trivial.importTOML ./Cargo.toml;
in {
pname = "mount.bcachefs";
version = cargo.package.version;
src = builtins.path { path = ../.; name = "rust-src"; };
sourceRoot = "rust-src/mount";
cargoLock = { lockFile = ./Cargo.lock; };
nativeBuildInputs = bcachefs.bch_bindgen.nativeBuildInputs;
buildInputs = bcachefs.bch_bindgen.buildInputs;
inherit (bcachefs.bch_bindgen)
LIBBCACHEFS_INCLUDE
LIBBCACHEFS_LIB
LIBCLANG_PATH
BINDGEN_EXTRA_CLANG_ARGS;
preFixup = ''
ln $out/bin/mount-bcachefs $out/bin/mount.bcachefs
ln -s $out/bin $out/sbin
'';
# -isystem ${llvmPackages.libclang.lib}/lib/clang/${lib.getVersion llvmPackages.libclang}/include";
# CFLAGS = "-I${llvmPackages.libclang.lib}/include";
# LDFLAGS = "-L${libcdev}";
doCheck = false;
# NIX_DEBUG = 4;
})