|
14 | 14 | inputs.utils.url = "github:gytis-ivaskevicius/flake-utils-plus"; |
15 | 15 | inputs.nixpkgs.url = "github:nixos/nixpkgs/nixos-24.11-small"; |
16 | 16 | inputs.nixpkgs-old.url = "github:nixos/nixpkgs/nixos-23.05-small"; |
| 17 | + inputs.nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable"; |
17 | 18 |
|
18 | 19 | inputs.mix-to-nix.url = "github:serokell/mix-to-nix"; |
19 | 20 | inputs.nix-npm-buildPackage.url = "github:serokell/nix-npm-buildpackage"; |
|
38 | 39 | # - flake.nix (and flake.lock after running |
39 | 40 | # `nix flake update opam-repository`). |
40 | 41 | # - scripts/update_opam_switch.sh |
41 | | - inputs.opam-repository.url = "github:ocaml/opam-repository/08d8c16c16dc6b23a5278b06dff0ac6c7a217356"; |
| 42 | + inputs.opam-repository.url = |
| 43 | + "github:ocaml/opam-repository/08d8c16c16dc6b23a5278b06dff0ac6c7a217356"; |
42 | 44 | inputs.opam-repository.flake = false; |
43 | 45 |
|
44 | 46 | inputs.nixpkgs-mozilla.url = "github:mozilla/nixpkgs-mozilla"; |
|
60 | 62 |
|
61 | 63 | outputs = inputs@{ self, nixpkgs, utils, mix-to-nix, nix-npm-buildPackage |
62 | 64 | , opam-nix, opam-repository, nixpkgs-mozilla, flake-buildkite-pipeline |
63 | | - , nix-utils, flockenzeit, nixpkgs-old, ... }: |
| 65 | + , nix-utils, flockenzeit, nixpkgs-old, nixpkgs-unstable, ... }: |
64 | 66 | let |
65 | 67 | inherit (nixpkgs) lib; |
66 | 68 |
|
|
103 | 105 | # Skip tests on nodejs dep due to known issue with nixpkgs 24.11 https://github.com/NixOS/nixpkgs/issues/402079 |
104 | 106 | # this can be removed after upgrading |
105 | 107 | skipNodeTests = final: prev: { |
106 | | - nodejs = prev.nodejs.overrideAttrs(old: { |
107 | | - doCheck = false; |
108 | | - }); |
| 108 | + nodejs = prev.nodejs.overrideAttrs (old: { doCheck = false; }); |
109 | 109 | }; |
110 | 110 | }; |
111 | 111 | nixosModules.mina = import ./nix/modules/mina.nix inputs; |
|
273 | 273 | }; |
274 | 274 | } // utils.lib.eachDefaultSystem (system: |
275 | 275 | let |
276 | | - rocksdbOverlay = pkgs: prev: |
277 | | - if prev.stdenv.isx86_64 then { |
278 | | - rocksdb-mina = pkgs.rocksdb511; |
279 | | - } else { |
280 | | - rocksdb-mina = pkgs.rocksdb; |
281 | | - }; |
| 276 | + # Helper function to map dependencies to current nixpkgs equivalents |
| 277 | + mapDepsToCurrentPkgs = pkgs: deps: |
| 278 | + map (dep: |
| 279 | + if pkgs ? ${dep.pname or dep.name or ""} then |
| 280 | + pkgs.${dep.pname or dep.name or ""} |
| 281 | + else |
| 282 | + dep) deps; |
| 283 | + |
| 284 | + # Helper function to disable compression libraries in cmake flags |
| 285 | + disableCompressionLibs = flags: |
| 286 | + builtins.filter (flag: flag != [ ]) (map (flag: |
| 287 | + if builtins.isString flag |
| 288 | + && builtins.match ".*WITH_(BZ2|LZ4|SNAPPY|ZLIB|ZSTD)=1.*" flag |
| 289 | + != null then |
| 290 | + builtins.replaceStrings [ "=1" ] [ "=0" ] flag |
| 291 | + else |
| 292 | + flag) flags); |
| 293 | + |
| 294 | + rocksdbOverlay = pkgs: prev: { |
| 295 | + rocksdb-mina = let |
| 296 | + # Get the full derivation from unstable but build with current nixpkgs |
| 297 | + unstableRocksdb = |
| 298 | + (nixpkgs-unstable.legacyPackages.${system}.rocksdb.override { |
| 299 | + enableShared = false; |
| 300 | + enableLiburing = false; |
| 301 | + bzip2 = null; |
| 302 | + lz4 = null; |
| 303 | + snappy = null; |
| 304 | + zlib = null; |
| 305 | + zstd = null; |
| 306 | + }); |
| 307 | + in pkgs.stdenv.mkDerivation (unstableRocksdb.drvAttrs // { |
| 308 | + cmakeFlags = |
| 309 | + disableCompressionLibs unstableRocksdb.drvAttrs.cmakeFlags; |
| 310 | + # Override the build environment to use current nixpkgs toolchain |
| 311 | + nativeBuildInputs = mapDepsToCurrentPkgs pkgs |
| 312 | + (unstableRocksdb.nativeBuildInputs or [ ]); |
| 313 | + buildInputs = |
| 314 | + mapDepsToCurrentPkgs pkgs (unstableRocksdb.buildInputs or [ ]); |
| 315 | + }); |
| 316 | + }; |
282 | 317 | go119Overlay = (_: _: { |
283 | 318 | inherit (nixpkgs-old.legacyPackages.${system}) |
284 | 319 | go_1_19 buildGo119Module; |
|
326 | 361 | (pkgs.python3.withPackages |
327 | 362 | (python-pkgs: [ python-pkgs.click python-pkgs.requests ])) |
328 | 363 | jq |
329 | | - rocksdb.tools |
| 364 | + rocksdb-mina.tools |
330 | 365 | ]; |
331 | 366 | in { |
332 | 367 |
|
|
0 commit comments