about summary refs log tree commit diff
path: root/third_party/overlays/tvl.nix
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/overlays/tvl.nix')
-rw-r--r--third_party/overlays/tvl.nix40
1 files changed, 33 insertions, 7 deletions
diff --git a/third_party/overlays/tvl.nix b/third_party/overlays/tvl.nix
index 8149337f44a6..876fcf3fa82f 100644
--- a/third_party/overlays/tvl.nix
+++ b/third_party/overlays/tvl.nix
@@ -74,13 +74,39 @@ depot.nix.readTree.drvTargets {
     };
   }));
 
-  crate2nix = (super.crate2nix.override (_: { nix = self.nix_latest; })).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
-    ];
-  });
+  crate2nix = super.rustPlatform.buildRustPackage rec {
+    pname = "crate2nix";
+    version = "0.13.0";
+
+    src = super.fetchFromGitHub {
+      owner = "nix-community";
+      repo = "crate2nix";
+      rev = "ceb06eb7e76afb9e01a5f069aae136f97df72730";
+      hash = "sha256-JTMe8GViCQt51WUiaaoIPmWtwEeeYrl6pBxo2DNuKig=";
+    };
+
+    sourceRoot = "${src.name}/crate2nix";
+
+    cargoHash = "sha256-dhlSXY1CJE+JJt+6Y7W1MVMz36nwr6ny543py1TcjyY=";
+
+    nativeBuildInputs = [ super.makeWrapper ];
+
+    # Tests use nix(1), which tries (and fails) to set up /nix/var inside the
+    # sandbox
+    doCheck = false;
+
+    postFixup = ''
+      wrapProgram $out/bin/crate2nix \
+          --suffix PATH ":" ${lib.makeBinPath (with self; [ cargo nix_latest nix-prefetch-git ])}
+
+      rm -rf $out/lib $out/bin/crate2nix.d
+      mkdir -p \
+        $out/share/bash-completion/completions \
+        $out/share/zsh/vendor-completions
+      $out/bin/crate2nix completions -s 'bash' -o $out/share/bash-completion/completions
+      $out/bin/crate2nix completions -s 'zsh' -o $out/share/zsh/vendor-completions
+    '';
+  };
 
   evans = super.evans.overrideAttrs (old: {
     patches = old.patches or [ ] ++ [