about summary refs log tree commit diff
path: root/third_party
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
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')
-rw-r--r--third_party/nix/README.md2
-rw-r--r--third_party/nix/default.nix19
2 files changed, 12 insertions, 9 deletions
diff --git a/third_party/nix/README.md b/third_party/nix/README.md
index 9e3d7486c8..36ba7d0c27 100644
--- a/third_party/nix/README.md
+++ b/third_party/nix/README.md
@@ -144,7 +144,7 @@ nix-shell.
 mkdir ~/build/tvix
 cd ~/build/tvix
 
-nix-shell $DEPOT_PATH -A third_party.nix
+nix-shell $DEPOT_PATH -A third_party.nix.build-shell
 
 # Disable clang-tidy for quicker builds
 cmake $DEPOT_PATH -DCLANG_TIDY_PATH=""
diff --git a/third_party/nix/default.nix b/third_party/nix/default.nix
index c8ed5adc87..a5f2e5bd76 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;
+  };
+})