summary refs log tree commit diff
diff options
context:
space:
mode:
authorClaudio Bley <claudio.bley@gmail.com>2022-07-11 00:03:24 +0200
committerClaudio Bley <claudio.bley@gmail.com>2022-08-01 06:39:12 +0200
commit8d97e13ef3edea3b2019eb08beeb0b8b9af348f9 (patch)
tree76b2ebaa3671ca773b0cb0819473e5f9b1eb0a30
parentb26c9b529065ab035a664ff6e1d31451ed691a6c (diff)
downloadnixpkgs-8d97e13ef3edea3b2019eb08beeb0b8b9af348f9.tar
nixpkgs-8d97e13ef3edea3b2019eb08beeb0b8b9af348f9.tar.gz
nixpkgs-8d97e13ef3edea3b2019eb08beeb0b8b9af348f9.tar.bz2
nixpkgs-8d97e13ef3edea3b2019eb08beeb0b8b9af348f9.tar.lz
nixpkgs-8d97e13ef3edea3b2019eb08beeb0b8b9af348f9.tar.xz
nixpkgs-8d97e13ef3edea3b2019eb08beeb0b8b9af348f9.tar.zst
nixpkgs-8d97e13ef3edea3b2019eb08beeb0b8b9af348f9.zip
bazel-watcher: Ensure to always build protoc from source
-rw-r--r--pkgs/development/tools/bazel-watcher/default.nix18
1 files changed, 17 insertions, 1 deletions
diff --git a/pkgs/development/tools/bazel-watcher/default.nix b/pkgs/development/tools/bazel-watcher/default.nix
index cc1d2508491..708de63b858 100644
--- a/pkgs/development/tools/bazel-watcher/default.nix
+++ b/pkgs/development/tools/bazel-watcher/default.nix
@@ -11,6 +11,21 @@ let
   patches = [
     ./use-go-in-path.patch
   ];
+
+  # Patch the protoc alias so that it always builds from source.
+  rulesProto = fetchFromGitHub {
+    owner = "bazelbuild";
+    repo = "rules_proto";
+    rev = "4.0.0-3.19.2";
+    sha256 = "sha256-wdmp+Tmf63PPr7G4X5F7rDas45WEETU3eKb47PFVI6o=";
+    postFetch = ''
+      sed -i 's|name = "protoc"|name = "_protoc_original"|' $out/proto/private/BUILD.release
+      cat <<EOF >>$out/proto/private/BUILD.release
+      alias(name = "protoc", actual = "@com_github_protocolbuffers_protobuf//:protoc", visibility = ["//visibility:public"])
+      EOF
+    '';
+  };
+
 in
 buildBazelPackage rec {
   pname = "bazel-watcher";
@@ -27,6 +42,7 @@ buildBazelPackage rec {
   removeRulesCC = false;
 
   bazel = bazel_5;
+  bazelFlags = [ "--override_repository=rules_proto=${rulesProto}" ];
   bazelBuildFlags = lib.optionals stdenv.cc.isClang [ "--cxxopt=-x" "--cxxopt=c++" "--host_cxxopt=-x" "--host_cxxopt=c++" ];
   bazelTarget = "//ibazel";
 
@@ -61,7 +77,7 @@ buildBazelPackage rec {
       sed -e '/^FILE:@bazel_gazelle_go_repository_tools.*/d' -i $bazelOut/external/\@*.marker
     '';
 
-    sha256 = "sha256-vij20VMBlKTBOACjH+XP4Z15BOmXYvlmErkVgjOln3M=";
+    sha256 = "sha256-Tkmq5/vrakWeIsnTQ9o0h2XhT/Ot+r6LRSCE5c6PSEk=";
   };
 
   buildAttrs = {