grapevine/nix/pkgs/rocksdb/default.nix
Charles Hall 2dbb101140
upgrade to latest rust-rocksdb
We gotta overrideAttrs to set the src and version to a newer version
than nixpkgs has now.
2024-11-08 17:26:38 -08:00

47 lines
1.1 KiB
Nix

# Dependencies (keep sorted)
{ inputs
, lib
, rocksdb
, rust-jemalloc-sys
# Options (keep sorted)
, enableJemalloc ? false
}:
let
rocksdb' = (rocksdb.overrideAttrs (old: {
src = inputs.rocksdb;
version = lib.removePrefix
"v"
(builtins.fromJSON
(builtins.readFile ../../../flake.lock)
).nodes.rocksdb.original.ref;
})).override {
jemalloc = rust-jemalloc-sys;
enableLiburing = false;
inherit enableJemalloc;
};
cVersion = rocksdb'.version;
rustVersion = builtins.elemAt
(lib.splitString
"+"
(lib.findSingle
(x: x.name == "rust-librocksdb-sys")
(builtins.throw "Multiple rust-librocksdb-sys versions in Cargo.lock")
(builtins.throw "No rust-librocksdb-sys versions in Cargo.lock")
(builtins.fromTOML (builtins.readFile ../../../Cargo.lock)).package
).version
)
1;
in
if cVersion == rustVersion
then rocksdb'
else builtins.throw
(builtins.concatStringsSep " " [
"C version (${cVersion}) and Rust version (${rustVersion}) of RocksDB do"
"not match"
])