From ceca00a866f7e02b5c9c8d61cd522ea265a6eb19 Mon Sep 17 00:00:00 2001 From: Florian Klink Date: Tue, 31 Oct 2023 14:45:29 +0200 Subject: chore(third_party/crate2nix): apply patches to fix cross Together with temporarily pointing nixpkgs past b10994c38c61038970a19fa60bfbec21a61755cc, this now fixes cross- compilation for tvix. This incorporates the changes proposed in https://cl.tvl.fyi/9888 and https://cl.tvl.fyi/9889, but by fixing it in crate2nix, and using the (re-)generated version of it. Changes were sent upstream at https://github.com/nix-community/crate2nix/pull/309, this pulls in a minimal patch for now. Change-Id: I70bb6f003bbc3e89de9c4eb4985ea4708ac3a9fd Reviewed-on: https://cl.tvl.fyi/c/depot/+/9890 Autosubmit: flokli Reviewed-by: raitobezarius Tested-by: BuildkiteCI --- ...x-skip-running-tests-when-cross-compiling.patch | 33 ++++++++++++++++++++++ .../crate2nix-take-lndir-from-buildPackages.patch | 26 +++++++++++++++++ 2 files changed, 59 insertions(+) create mode 100644 third_party/overlays/patches/crate2nix-skip-running-tests-when-cross-compiling.patch create mode 100644 third_party/overlays/patches/crate2nix-take-lndir-from-buildPackages.patch (limited to 'third_party/overlays/patches') diff --git a/third_party/overlays/patches/crate2nix-skip-running-tests-when-cross-compiling.patch b/third_party/overlays/patches/crate2nix-skip-running-tests-when-cross-compiling.patch new file mode 100644 index 000000000000..6c47986705d7 --- /dev/null +++ b/third_party/overlays/patches/crate2nix-skip-running-tests-when-cross-compiling.patch @@ -0,0 +1,33 @@ +From b37dff98b7df177313f2823a77c19828398f1505 Mon Sep 17 00:00:00 2001 +From: Florian Klink +Date: Tue, 31 Oct 2023 14:18:06 +0200 +Subject: [PATCH] skip running tests when cross-compiling + +--- + crate2nix/templates/nix/crate2nix/default.nix | 10 ++++++---- + 1 file changed, 6 insertions(+), 4 deletions(-) + +diff --git a/crate2nix/templates/nix/crate2nix/default.nix b/crate2nix/templates/nix/crate2nix/default.nix +index 2b8050c..e4fc2e9 100644 +--- a/templates/nix/crate2nix/default.nix ++++ b/templates/nix/crate2nix/default.nix +@@ -165,10 +165,12 @@ rec { + passthru = (crate.passthru or { }) // { + inherit test; + }; +- } '' +- echo tested by ${test} +- ${lib.concatMapStringsSep "\n" (output: "ln -s ${crate.${output}} ${"$"}${output}") crate.outputs} +- ''; ++ } ++ (lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) '' ++ echo tested by ${test} ++ '' + '' ++ ${lib.concatMapStringsSep "\n" (output: "ln -s ${crate.${output}} ${"$"}${output}") crate.outputs} ++ ''); + + /* A restricted overridable version of builtRustCratesWithFeatures. */ + buildRustCrateWithFeatures = +-- +2.42.0 + diff --git a/third_party/overlays/patches/crate2nix-take-lndir-from-buildPackages.patch b/third_party/overlays/patches/crate2nix-take-lndir-from-buildPackages.patch new file mode 100644 index 000000000000..c6436d32442f --- /dev/null +++ b/third_party/overlays/patches/crate2nix-take-lndir-from-buildPackages.patch @@ -0,0 +1,26 @@ +From ea4ec75c6cae0c0aba21c3cf4616dfceb64bff7a Mon Sep 17 00:00:00 2001 +From: Florian Klink +Date: Tue, 31 Oct 2023 14:16:22 +0200 +Subject: [PATCH 1/2] take lndir from buildPackages + +This needs to be executed on the building host. +--- + crate2nix/templates/nix/crate2nix/default.nix | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/crate2nix/templates/nix/crate2nix/default.nix b/crate2nix/templates/nix/crate2nix/default.nix +index 1b859fb..2b8050c 100644 +--- a/templates/nix/crate2nix/default.nix ++++ b/templates/nix/crate2nix/default.nix +@@ -135,7 +135,7 @@ rec { + # recreate a file hierarchy as when running tests with cargo + + # the source for test data +- ${pkgs.xorg.lndir}/bin/lndir ${crate.src} ++ ${pkgs.buildPackages.xorg.lndir}/bin/lndir ${crate.src} + + # build outputs + testRoot=target/debug +-- +2.42.0 + -- cgit 1.4.1