From 2f85dfe50c1eb9622a1b409de95629bcced0992f Mon Sep 17 00:00:00 2001 From: Griffin Smith Date: Fri, 24 Jul 2020 21:30:42 -0400 Subject: fix(3p/nix): Don't include depotPath in the main drv 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 Tested-by: BuildkiteCI --- third_party/nix/README.md | 2 +- third_party/nix/default.nix | 19 +++++++++++-------- 2 files changed, 12 insertions(+), 9 deletions(-) (limited to 'third_party') 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; + }; +}) -- cgit 1.4.1