From 3b91cec3ee21aaa66b0ac088170e188899d7d775 Mon Sep 17 00:00:00 2001 From: Surma Date: Thu, 12 Nov 2026 15:23:54 +0000 Subject: [PATCH] Precompile seeded tools during the Nix build --- flake.nix | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/flake.nix b/flake.nix index 9f2fc19..0d032e7 100644 --- a/flake.nix +++ b/flake.nix @@ -143,6 +143,9 @@ cargoArtifacts = hostArtifacts; doNotRemoveReferencesToVendorDir = true; }); + precompiled = pkgs.runCommand "sausage-precompiled" {} '' + ${sausageUnwrapped}/bin/sausage precompile ${bundle} $out + ''; # Keep the wrapper separate from crane's removal of toolchain references. sausage = pkgs.symlinkJoin { name = "sausage-${sausageUnwrapped.version}"; @@ -150,6 +153,7 @@ nativeBuildInputs = [ pkgs.makeWrapper ]; postBuild = '' wrapProgram $out/bin/sausage --set-default SAUSAGE_USERLAND ${bundle} \ + --set-default SAUSAGE_PRECOMPILED ${precompiled} \ --prefix PATH : ${runtimePath} \ --set-default CC_wasm32_wasip2 ${wasiCcEnv.CC_wasm32_wasip2} \ --set-default AR_wasm32_wasip2 ${wasiCcEnv.AR_wasm32_wasip2} \ @@ -170,6 +174,7 @@ SAUSAGE_TEST_NO_BUILDER_SANDBOX = "1"; SAUSAGE_NIX_CHECK = "1"; SAUSAGE_USERLAND = bundle; + SAUSAGE_PRECOMPILED = precompiled; preCheck = '' export SAUSAGE_CACHE="$TMPDIR/sausage-cache" export CARGO_TARGET_DIR="$PWD/target" @@ -181,8 +186,10 @@ }); checks.shell = pkgs.runCommand "sausage-shell" {} '' export SAUSAGE_CACHE="$TMPDIR/sausage-cache" + ${sausage}/bin/sausage init "$TMPDIR/world" ${sausage}/bin/sausage sh "$TMPDIR/world" -c \ 'set -e; echo hi | tr a-z A-Z; git --version; rg --version; awk "BEGIN {print 42}"; echo payload > /payload; tar -cf /test.tar /payload; tar -tf /test.tar; qjs -e "console.log(42)"; cargo --help; undo list' > output + test ! -e "$SAUSAGE_CACHE" cat output grep -qx HI output grep -q 'git version' output