about summary refs log tree commit diff
path: root/third_party/nix/default.nix
diff options
context:
space:
mode:
authorGriffin Smith <grfn@gws.fyi>2020-07-25T01·30-0400
committerglittershark <grfn@gws.fyi>2020-07-25T02·29+0000
commit2f85dfe50c1eb9622a1b409de95629bcced0992f (patch)
tree3354016f3d4010550fbd144cbd2b2ed28095f5cf /third_party/nix/default.nix
parent4dca023385034839873b330cb6fcaf46807e0a59 (diff)
fix(3p/nix): Don't include depotPath in the main drv r/1466
Including depotPath in the shellHook of the main derivation for tvix
was, unsurprisingly, causing spurious rebuilds. It's still useful when
developing locally, though, so I've extracted it to a `build-shell`
derivation as a passthru attribute and updated the documentation.

Fixes: #20
Change-Id: Ibc686b9f06ec68e79759ca2c989414bd5fbce696
Reviewed-on: https://cl.tvl.fyi/c/depot/+/1426
Reviewed-by: tazjin <mail@tazj.in>
Tested-by: BuildkiteCI
Diffstat (limited to 'third_party/nix/default.nix')
-rw-r--r--third_party/nix/default.nix19
1 files changed, 11 insertions, 8 deletions
diff --git a/third_party/nix/default.nix b/third_party/nix/default.nix
index c8ed5adc8720..a5f2e5bd7677 100644
--- a/third_party/nix/default.nix
+++ b/third_party/nix/default.nix
@@ -30,7 +30,7 @@ let
       --plugin=protoc-gen-grpc=${pkgs.grpc}/bin/grpc_cpp_plugin --grpc_out=$out/libproto \
       $PROTO_SRCS/*.proto
   '';
-in pkgs.llvmPackages.libcxxStdenv.mkDerivation {
+in lib.fix (self: pkgs.llvmPackages.libcxxStdenv.mkDerivation {
   pname = "tvix";
   version = "2.3.4";
   inherit src;
@@ -133,13 +133,16 @@ in pkgs.llvmPackages.libcxxStdenv.mkDerivation {
     ln -s $out/bin/nix $out/libexec/nix/build-remote
   '';
 
-  shellHook = ''
-    export NIX_DATA_DIR="${toString depotPath}/third_party"
-    export NIX_TEST_VAR=foo
-  '';
-
   # TODO(tazjin): integration test setup?
   # TODO(tazjin): docs generation?
 
-  passthru = { test-vm = import ./test-vm.nix args; };
-}
+  passthru = {
+    build-shell = self.overrideAttrs (_: {
+      shellHook = ''
+        export NIX_DATA_DIR="${toString depotPath}/third_party"
+        export NIX_TEST_VAR=foo
+      '';
+    });
+    test-vm = import ./test-vm.nix args;
+  };
+})