about summary refs log tree commit diff
path: root/tvix
diff options
context:
space:
mode:
authorFlorian Klink <flokli@flokli.de>2023-09-26T06·50+0300
committerclbot <clbot@tvl.fyi>2023-09-26T10·03+0000
commit10717605a2ceb736d1c1ad215f8a92ef30dd85c3 (patch)
tree4348ceeb75fb028348746b9ef57c300d26857a2e /tvix
parent15a3eca321c7f02da26df3c2ae4acc7a3f07f18e (diff)
chore(third_party/crate2nix): bump crate2nix to current HEAD r/6657
This will bring conditional features support.

Also invoke crate2nixgenerate with the --all-features argument, so all
dependencies, including the ones for optional features are included in
the Cargo.nix file.

Change-Id: I3bbcb200c9b481f660db89efba650ea4f7418a63
Reviewed-on: https://cl.tvl.fyi/c/depot/+/9470
Reviewed-by: raitobezarius <tvl@lahfa.xyz>
Autosubmit: flokli <flokli@flokli.de>
Tested-by: BuildkiteCI
Diffstat (limited to 'tvix')
-rw-r--r--tvix/Cargo.nix38
-rw-r--r--tvix/default.nix2
2 files changed, 25 insertions, 15 deletions
diff --git a/tvix/Cargo.nix b/tvix/Cargo.nix
index 297825787ae1..f88f64291ae4 100644
--- a/tvix/Cargo.nix
+++ b/tvix/Cargo.nix
@@ -1,5 +1,5 @@
-# This file was @generated by crate2nix 0.10.0 with the command:
-#   "generate"
+# This file was @generated by crate2nix 0.11.0-rc.4 with the command:
+#   "generate" "--all-features"
 # See https://github.com/kolloch/crate2nix for more info.
 
 { nixpkgs ? <nixpkgs>
@@ -4102,7 +4102,7 @@ rec {
         # We can't filter paths with references in Nix 2.4
         # See https://github.com/NixOS/nix/issues/5410
         src =
-          if (lib.versionOlder builtins.nixVersion "2.4pre20211007")
+          if ((lib.versionOlder builtins.nixVersion "2.4pre20211007") || (lib.versionOlder "2.5" builtins.nixVersion))
           then lib.cleanSourceWith { filter = sourceFilter; src = ./nix_cli; }
           else ./nix_cli;
         dependencies = [
@@ -4125,7 +4125,7 @@ rec {
         # We can't filter paths with references in Nix 2.4
         # See https://github.com/NixOS/nix/issues/5410
         src =
-          if (lib.versionOlder builtins.nixVersion "2.4pre20211007")
+          if ((lib.versionOlder builtins.nixVersion "2.4pre20211007") || (lib.versionOlder "2.5" builtins.nixVersion))
           then lib.cleanSourceWith { filter = sourceFilter; src = ./nix-compat; }
           else ./nix-compat;
         dependencies = [
@@ -8293,7 +8293,7 @@ rec {
         # We can't filter paths with references in Nix 2.4
         # See https://github.com/NixOS/nix/issues/5410
         src =
-          if (lib.versionOlder builtins.nixVersion "2.4pre20211007")
+          if ((lib.versionOlder builtins.nixVersion "2.4pre20211007") || (lib.versionOlder "2.5" builtins.nixVersion))
           then lib.cleanSourceWith { filter = sourceFilter; src = ./castore; }
           else ./castore;
         dependencies = [
@@ -8425,7 +8425,7 @@ rec {
         # We can't filter paths with references in Nix 2.4
         # See https://github.com/NixOS/nix/issues/5410
         src =
-          if (lib.versionOlder builtins.nixVersion "2.4pre20211007")
+          if ((lib.versionOlder builtins.nixVersion "2.4pre20211007") || (lib.versionOlder "2.5" builtins.nixVersion))
           then lib.cleanSourceWith { filter = sourceFilter; src = ./cli; }
           else ./cli;
         dependencies = [
@@ -8488,7 +8488,7 @@ rec {
         # We can't filter paths with references in Nix 2.4
         # See https://github.com/NixOS/nix/issues/5410
         src =
-          if (lib.versionOlder builtins.nixVersion "2.4pre20211007")
+          if ((lib.versionOlder builtins.nixVersion "2.4pre20211007") || (lib.versionOlder "2.5" builtins.nixVersion))
           then lib.cleanSourceWith { filter = sourceFilter; src = ./eval; }
           else ./eval;
         libName = "tvix_eval";
@@ -8624,7 +8624,7 @@ rec {
         # We can't filter paths with references in Nix 2.4
         # See https://github.com/NixOS/nix/issues/5410
         src =
-          if (lib.versionOlder builtins.nixVersion "2.4pre20211007")
+          if ((lib.versionOlder builtins.nixVersion "2.4pre20211007") || (lib.versionOlder "2.5" builtins.nixVersion))
           then lib.cleanSourceWith { filter = sourceFilter; src = ./eval/builtin-macros; }
           else ./eval/builtin-macros;
         procMacro = true;
@@ -8661,7 +8661,7 @@ rec {
         # We can't filter paths with references in Nix 2.4
         # See https://github.com/NixOS/nix/issues/5410
         src =
-          if (lib.versionOlder builtins.nixVersion "2.4pre20211007")
+          if ((lib.versionOlder builtins.nixVersion "2.4pre20211007") || (lib.versionOlder "2.5" builtins.nixVersion))
           then lib.cleanSourceWith { filter = sourceFilter; src = ./serde; }
           else ./serde;
         dependencies = [
@@ -8691,7 +8691,7 @@ rec {
         # We can't filter paths with references in Nix 2.4
         # See https://github.com/NixOS/nix/issues/5410
         src =
-          if (lib.versionOlder builtins.nixVersion "2.4pre20211007")
+          if ((lib.versionOlder builtins.nixVersion "2.4pre20211007") || (lib.versionOlder "2.5" builtins.nixVersion))
           then lib.cleanSourceWith { filter = sourceFilter; src = ./store; }
           else ./store;
         dependencies = [
@@ -11624,11 +11624,21 @@ rec {
         explicitFeatures = dependency.features or [ ];
         additionalDependencyFeatures =
           let
-            dependencyPrefix = (dependency.rename or dependency.name) + "/";
-            dependencyFeatures =
-              builtins.filter (f: lib.hasPrefix dependencyPrefix f) features;
+            name = dependency.rename or dependency.name;
+            stripPrefixMatch = prefix: s:
+              if lib.hasPrefix prefix s
+              then lib.removePrefix prefix s
+              else null;
+            extractFeature = feature: lib.findFirst
+              (f: f != null)
+              null
+              (map (prefix: stripPrefixMatch prefix feature) [
+                (name + "/")
+                (name + "?/")
+              ]);
+            dependencyFeatures = lib.filter (f: f != null) (map extractFeature features);
           in
-          builtins.map (lib.removePrefix dependencyPrefix) dependencyFeatures;
+          dependencyFeatures;
       in
       defaultOrNil ++ explicitFeatures ++ additionalDependencyFeatures;
 
diff --git a/tvix/default.nix b/tvix/default.nix
index 57ff82bf2e9a..d8027213f68e 100644
--- a/tvix/default.nix
+++ b/tvix/default.nix
@@ -72,7 +72,7 @@ in
   # Run crate2nix generate in the current working directory, then
   # format the generated file with depotfmt.
   crate2nixGenerate = pkgs.writeShellScriptBin "crate2nix-generate" ''
-    ${pkgs.crate2nix}/bin/crate2nix generate
+    ${pkgs.crate2nix}/bin/crate2nix generate --all-features
     ${depot.tools.depotfmt}/bin/depotfmt Cargo.nix
   '';