about summary refs log tree commit diff
path: root/third_party
diff options
context:
space:
mode:
authorFlorian Klink <flokli@flokli.de>2023-10-31T12·45+0200
committerflokli <flokli@flokli.de>2023-11-02T09·32+0000
commitceca00a866f7e02b5c9c8d61cd522ea265a6eb19 (patch)
tree9a991f9f8acb10ec76a80cf29a2a445622dbdb1c /third_party
parent5a0ae8312c58fb67371c3c5961a39b9a5f9c87e6 (diff)
chore(third_party/crate2nix): apply patches to fix cross r/6922
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 <flokli@flokli.de>
Reviewed-by: raitobezarius <tvl@lahfa.xyz>
Tested-by: BuildkiteCI
Diffstat (limited to 'third_party')
-rw-r--r--third_party/overlays/patches/crate2nix-skip-running-tests-when-cross-compiling.patch33
-rw-r--r--third_party/overlays/patches/crate2nix-take-lndir-from-buildPackages.patch26
-rw-r--r--third_party/overlays/tvl.nix5
3 files changed, 63 insertions, 1 deletions
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 <flokli@flokli.de>
+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 <flokli@flokli.de>
+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
+
diff --git a/third_party/overlays/tvl.nix b/third_party/overlays/tvl.nix
index 124756fd1887..94c2fbb5093d 100644
--- a/third_party/overlays/tvl.nix
+++ b/third_party/overlays/tvl.nix
@@ -108,12 +108,15 @@ depot.nix.readTree.drvTargets {
     };
   }));
 
-  # Apply a patch to run tests in debug, not release mode.
   crate2nix = super.crate2nix.overrideAttrs (old: rec {
     patches = old.patches ++ [
       # run tests in debug mode, not release mode
       # https://github.com/nix-community/crate2nix/pull/301
       ./patches/crate2nix-tests-debug.patch
+
+      # https://github.com/nix-community/crate2nix/pull/309
+      ./patches/crate2nix-take-lndir-from-buildPackages.patch
+      ./patches/crate2nix-skip-running-tests-when-cross-compiling.patch
     ];
   });