From e9339c248bbe46950081e863e7efa8fe4be118b1 Mon Sep 17 00:00:00 2001 From: Nadrieril Date: Thu, 23 Jan 2025 13:35:04 +0100 Subject: [PATCH 1/3] nix: Make the bertie package overrideable --- flake.nix | 35 ++++++++++++++++++----------------- 1 file changed, 18 insertions(+), 17 deletions(-) diff --git a/flake.nix b/flake.nix index 4dd47c0..7cae5f4 100644 --- a/flake.nix +++ b/flake.nix @@ -8,21 +8,20 @@ }; hax.url = "github:hacspec/hax"; }; - outputs = - inputs: - inputs.flake-utils.lib.eachDefaultSystem ( - system: - let - hax = inputs.hax.packages.${system}.default; - pkgs = import inputs.nixpkgs { inherit system; }; - craneLib = inputs.crane.mkLib pkgs; - src = ./.; - cargoArtifacts = craneLib.buildDepsOnly { inherit src; }; - bertie = craneLib.buildPackage { + outputs = inputs: inputs.flake-utils.lib.eachDefaultSystem (system: + let + pkgs = import inputs.nixpkgs { inherit system; }; + # Make an overrideable package. + bertie = { python3, craneLib, hax }: + let + src = ./.; + cargoArtifacts = craneLib.buildDepsOnly { inherit src; }; + in + craneLib.buildPackage { inherit src cargoArtifacts; buildInputs = [ hax - pkgs.python3 + python3 ]; buildPhase = '' python hax-driver.py extract-fstar @@ -31,9 +30,11 @@ installPhase = "cp -r . $out"; doCheck = false; }; - in - { - packages.default = bertie; - } - ); + hax = inputs.hax.packages.${system}.default; + craneLib = inputs.crane.mkLib pkgs; + in + { + packages.default = pkgs.callPackage bertie { inherit hax craneLib; }; + } + ); } From 7f12ee526dbd4e22e37af45dbd4164996b9c660e Mon Sep 17 00:00:00 2001 From: Nadrieril Date: Thu, 23 Jan 2025 13:36:21 +0100 Subject: [PATCH 2/3] nix: Take the missing `Cargo.lock` file as input to the package --- flake.nix | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/flake.nix b/flake.nix index 7cae5f4..9722684 100644 --- a/flake.nix +++ b/flake.nix @@ -12,9 +12,14 @@ let pkgs = import inputs.nixpkgs { inherit system; }; # Make an overrideable package. - bertie = { python3, craneLib, hax }: + bertie = { python3, craneLib, hax, runCommand, cargoLock }: let - src = ./.; + src = runCommand "bertie-src" { } '' + cp -r ${./.} $out + chmod u+w $out + rm -f $out/Cargo.lock + cp ${cargoLock} $out/Cargo.lock + ''; cargoArtifacts = craneLib.buildDepsOnly { inherit src; }; in craneLib.buildPackage { @@ -34,7 +39,8 @@ craneLib = inputs.crane.mkLib pkgs; in { - packages.default = pkgs.callPackage bertie { inherit hax craneLib; }; + # Takes the lockfile as input. + packages.default = cargoLock: pkgs.callPackage bertie { inherit hax craneLib cargoLock; }; } ); } From 0f07e086a8bb82cfea4cb910e1527825f0fdf8dc Mon Sep 17 00:00:00 2001 From: Nadrieril Date: Thu, 23 Jan 2025 13:56:38 +0100 Subject: [PATCH 3/3] nix: Add a simple dev shell --- flake.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/flake.nix b/flake.nix index 9722684..fbf1b58 100644 --- a/flake.nix +++ b/flake.nix @@ -41,6 +41,7 @@ { # Takes the lockfile as input. packages.default = cargoLock: pkgs.callPackage bertie { inherit hax craneLib cargoLock; }; + devShells.default = craneLib.devShell { }; } ); }