diff --git a/nix/pkgs/rocksdb/default.nix b/nix/pkgs/rocksdb/default.nix index ad18fdcc..4468c4d6 100644 --- a/nix/pkgs/rocksdb/default.nix +++ b/nix/pkgs/rocksdb/default.nix @@ -1,14 +1,39 @@ # Dependencies (keep sorted) -{ rocksdb +{ lib +, rocksdb , rust-jemalloc-sys # Options (keep sorted) , enableJemalloc ? false }: -rocksdb.override { - jemalloc = rust-jemalloc-sys; +let + rocksdb' = rocksdb.override { + jemalloc = rust-jemalloc-sys; - enableLiburing = false; - inherit enableJemalloc; -} + 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" + ])