From f5e1d7aed53f334b2150832043f7d914017447f4 Mon Sep 17 00:00:00 2001 From: Surma Date: Wed, 11 Nov 2026 21:38:03 +0000 Subject: [PATCH] flake: wrap the host in a separate symlinkJoin, so crane's toolchain reference removal keeps cargo on the wrapper PATH --- flake.nix | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/flake.nix b/flake.nix index 068b560..0c7e5dd 100644 --- a/flake.nix +++ b/flake.nix @@ -143,14 +143,19 @@ # The upstream browser fixture links to an optional, unbuilt artifact. dontCheckForBrokenSymlinks = true; }); - sausage = craneLib.buildPackage (common // { + sausageUnwrapped = craneLib.buildPackage (common // { inherit cargoArtifacts; # Deno loads extension TypeScript from the vendored sources at runtime. doNotRemoveReferencesToVendorDir = true; cargoExtraArgs = "--locked -p sausage"; doCheck = false; - nativeBuildInputs = common.nativeBuildInputs ++ [ pkgs.makeWrapper ]; - postInstall = '' + }); + # A separate wrapper, so that crane's toolchain reference removal cannot rewrite its PATH. + sausage = pkgs.symlinkJoin { + name = "sausage-${sausageUnwrapped.version}"; + paths = [ sausageUnwrapped ]; + nativeBuildInputs = [ pkgs.makeWrapper ]; + postBuild = '' wrapProgram $out/bin/sausage --set-default SAUSAGE_USERLAND ${userland} \ --prefix PATH : ${runtimePath} \ --set-default CC_wasm32_wasip2 ${wasiCcEnv.CC_wasm32_wasip2} \ @@ -158,7 +163,7 @@ ${pkgs.lib.optionalString pkgs.stdenv.hostPlatform.isLinux "--set-default ${moldVar} '-C link-arg=-fuse-ld=mold'"} ''; meta.mainProgram = "sausage"; - }); + }; in { packages.default = sausage; checks.package = sausage;