Precompile seeded tools during the Nix build

This commit is contained in:
2026-11-12 15:23:54 +00:00
parent aa8c8a2818
commit 3b91cec3ee
+7
View File
@@ -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