From 991ef27d45a417b061bbba2a4f352cdade450904 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andrzej=20G=C5=82uszak?= Date: Tue, 13 Jan 2026 14:43:44 +0100 Subject: [PATCH] Use prebuilt protoc --- .bazelrc | 7 +++++++ MODULE.bazel | 14 ++++++------- WORKSPACE | 10 ++++------ defs.bzl | 20 +++++++------------ examples/basicapp/.bazelrc | 8 ++++++++ examples/basicapp/MODULE.bazel | 1 + examples/basicapp/WORKSPACE | 7 +++---- prereqs.bzl | 4 ++-- .../com/google/devtools/build/android/BUILD | 2 +- .../build/android/desugar/langmodel/BUILD | 2 +- .../google/devtools/build/android/proto/BUILD | 2 +- .../android/sandboxedsdktoolbox/info/BUILD | 4 ++-- .../runtimeenabledsdkconfig/BUILD | 2 +- .../sdksplitproperties/BUILD | 4 ++-- .../sandboxedsdktoolbox/proguardspecs/BUILD | 2 +- .../runtimeenabledsdkconfig/BUILD | 4 ++-- .../sdkdependenciesmanifest/BUILD | 2 +- .../sdksplitproperties/BUILD | 4 ++-- .../validatemodulesconfig/BUILD | 2 +- 19 files changed, 53 insertions(+), 48 deletions(-) diff --git a/.bazelrc b/.bazelrc index faa25c257..4cf3337a7 100644 --- a/.bazelrc +++ b/.bazelrc @@ -28,3 +28,10 @@ build:windows --define=protobuf_allow_msvc=true common --enable_platform_specific_config +# Use prebuilt protoc +common --incompatible_enable_proto_toolchain_resolution +common --@com_google_protobuf//bazel/toolchains:prefer_prebuilt_protoc=true +common --per_file_copt=external/.*protobuf.*@--PROTOBUF_WAS_NOT_SUPPOSED_TO_BE_BUILT +common --host_per_file_copt=external/.*protobuf.*@--PROTOBUF_WAS_NOT_SUPPOSED_TO_BE_BUILT +common --per_file_copt=external/.*grpc.*@--GRPC_WAS_NOT_SUPPOSED_TO_BE_BUILT +common --host_per_file_copt=external/.*grpc.*@--GRPC_WAS_NOT_SUPPOSED_TO_BE_BUILT \ No newline at end of file diff --git a/MODULE.bazel b/MODULE.bazel index 03ef0a880..f4f9dc8e5 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -15,7 +15,7 @@ bazel_dep(name = "stardoc", version = "0.8.0", dev_dependency = True) rules_java_toolchains = use_extension("@rules_java//java:extensions.bzl", "toolchains") use_repo(rules_java_toolchains, "remote_java_tools") -bazel_dep(name = "protobuf", version = "33.1", repo_name = "com_google_protobuf") +bazel_dep(name = "protobuf", version = "33.4", repo_name = "com_google_protobuf") bazel_dep(name = "rules_jvm_external", version = "6.9") bazel_dep(name = "bazel_skylib", version = "1.8.1") bazel_dep(name = "rules_robolectric", version = "4.14.1.2", repo_name = "robolectric") @@ -54,9 +54,6 @@ python.toolchain( python_version = "3.11", ) -# proto-related dependency setup -bazel_dep(name = "rules_proto", version = "7.1.0", repo_name = "rules_proto") - maven = use_extension("@rules_jvm_external//:extensions.bzl", "maven") # Maven for android_ide_common need to be separated into their own separate maven_install for now # due to compatibility issues with newer versions. @@ -78,8 +75,8 @@ maven.install( # These technically aren't needed, but the protobuf version pulled # in by these older deps has compatibility issues with the newer # protobuf runtimes. - "com.google.protobuf:protobuf-java:4.33.1", - "com.google.protobuf:protobuf-java-util:4.33.1", + "com.google.protobuf:protobuf-java:4.33.4", + "com.google.protobuf:protobuf-java-util:4.33.4", ], repositories = [ "https://maven.google.com", @@ -117,8 +114,9 @@ maven.install( "jakarta.inject:jakarta.inject-api:2.0.1", "junit:junit:4.13.2", "com.beust:jcommander:1.82", - "com.google.protobuf:protobuf-java:4.33.1", - "com.google.protobuf:protobuf-java-util:4.33.1", + # Override transitive protobuf deps to match bazel_dep protobuf version. + "com.google.protobuf:protobuf-java:4.33.4", + "com.google.protobuf:protobuf-java-util:4.33.4", "com.google.code.findbugs:jsr305:3.0.2", "androidx.databinding:databinding-compiler:8.7.0", "org.ow2.asm:asm:9.6", diff --git a/WORKSPACE b/WORKSPACE index c5a3ae913..34417cfb9 100644 --- a/WORKSPACE +++ b/WORKSPACE @@ -6,6 +6,10 @@ load("prereqs.bzl", "rules_android_prereqs") rules_android_prereqs(dev_mode = True) +load("@com_google_protobuf//:protobuf_deps.bzl", "protobuf_deps") +protobuf_deps() + + load("@bazel_features//:deps.bzl", "bazel_features_deps") bazel_features_deps() @@ -15,12 +19,6 @@ compatibility_proxy_repo() load("@rules_java//java:rules_java_deps.bzl", "rules_java_dependencies") rules_java_dependencies() -# note that the following line is what is minimally required from protobuf for the java rules -# consider using the protobuf_deps() public API from @com_google_protobuf//:protobuf_deps.bzl -load("@com_google_protobuf//bazel/private:proto_bazel_features.bzl", "proto_bazel_features") # buildifier: disable=bzl-visibility - -proto_bazel_features(name = "proto_bazel_features") - # register toolchains load("@rules_java//java:repositories.bzl", "rules_java_toolchains") diff --git a/defs.bzl b/defs.bzl index 395540471..a628d5623 100644 --- a/defs.bzl +++ b/defs.bzl @@ -24,9 +24,6 @@ load( ) load("@robolectric//bazel:robolectric.bzl", "robolectric_repositories") load("@rules_jvm_external//:defs.bzl", "maven_install") -load("@rules_proto//proto:repositories.bzl", "rules_proto_dependencies") -load("@rules_proto//proto:setup.bzl", "rules_proto_setup") -load("@rules_proto//proto:toolchains.bzl", "rules_proto_toolchains") load("@rules_python//python:repositories.bzl", "py_repositories", "python_register_toolchains") load("@rules_shell//shell:repositories.bzl", "rules_shell_dependencies", "rules_shell_toolchains") @@ -57,8 +54,8 @@ def rules_android_workspace(): # These technically aren't needed, but the protobuf version pulled # in by these older deps has compatibility issues with the newer # protobuf runtimes. - "com.google.protobuf:protobuf-java:4.33.1", - "com.google.protobuf:protobuf-java-util:4.33.1", + "com.google.protobuf:protobuf-java:4.33.4", + "com.google.protobuf:protobuf-java-util:4.33.4", ], repositories = [ "https://maven.google.com", @@ -94,8 +91,8 @@ def rules_android_workspace(): "jakarta.inject:jakarta.inject-api:2.0.1", "junit:junit:4.13.2", "com.beust:jcommander:1.82", - "com.google.protobuf:protobuf-java:4.33.1", - "com.google.protobuf:protobuf-java-util:4.33.1", + "com.google.protobuf:protobuf-java:4.33.4", + "com.google.protobuf:protobuf-java-util:4.33.4", "com.google.code.findbugs:jsr305:3.0.2", "androidx.databinding:databinding-compiler:8.7.0", "org.ow2.asm:asm:9.6", @@ -150,8 +147,8 @@ def rules_android_workspace(): "com.google.code.gson:gson:2.10.1", # bazel worker api "com.google.errorprone:error_prone_annotations:2.23.0", # bazel worker api "com.google.guava:guava:33.0.0-jre", # bazel worker api - "com.google.protobuf:protobuf-java:4.33.1", # bazel worker api - "com.google.protobuf:protobuf-java-util:4.33.1", # bazel worker api + "com.google.protobuf:protobuf-java:4.33.4", # bazel worker api + "com.google.protobuf:protobuf-java-util:4.33.4", # bazel worker api "junit:junit:4.13.2", # bazel worker api "org.mockito:mockito-core:5.4.0", # bazel worker api "com.google.truth:truth:1.4.0", # bazel worker api @@ -162,6 +159,7 @@ def rules_android_workspace(): "https://maven.google.com", ], ) + go_rules_dependencies() _GO_TOOLCHAIN_VERSION = "1.22.4" @@ -204,10 +202,6 @@ def rules_android_workspace(): robolectric_repositories() - rules_proto_dependencies() - rules_proto_toolchains() - rules_proto_setup() - py_repositories() python_register_toolchains( diff --git a/examples/basicapp/.bazelrc b/examples/basicapp/.bazelrc index 08999d781..dc53ee416 100644 --- a/examples/basicapp/.bazelrc +++ b/examples/basicapp/.bazelrc @@ -35,3 +35,11 @@ build:windows --define=protobuf_allow_msvc=true common --enable_platform_specific_config +# Use prebuilt protoc +common --incompatible_enable_proto_toolchain_resolution +common --@com_google_protobuf//bazel/toolchains:prefer_prebuilt_protoc=true +# Ensure that we don't accidentally build protobuf or gRPC +common --per_file_copt=external/.*protobuf.*@--PROTOBUF_WAS_NOT_SUPPOSED_TO_BE_BUILT +common --host_per_file_copt=external/.*protobuf.*@--PROTOBUF_WAS_NOT_SUPPOSED_TO_BE_BUILT +common --per_file_copt=external/.*grpc.*@--GRPC_WAS_NOT_SUPPOSED_TO_BE_BUILT +common --host_per_file_copt=external/.*grpc.*@--GRPC_WAS_NOT_SUPPOSED_TO_BE_BUILT diff --git a/examples/basicapp/MODULE.bazel b/examples/basicapp/MODULE.bazel index 66d6120e7..2893f06c6 100644 --- a/examples/basicapp/MODULE.bazel +++ b/examples/basicapp/MODULE.bazel @@ -5,6 +5,7 @@ module( bazel_dep(name = "rules_java", version = "9.0.3") bazel_dep(name = "bazel_skylib", version = "1.8.1") bazel_dep(name = "rules_jvm_external", version = "6.7") +bazel_dep(name = "protobuf", version = "33.4", repo_name = "com_google_protobuf") bazel_dep( name = "rules_android", diff --git a/examples/basicapp/WORKSPACE b/examples/basicapp/WORKSPACE index 3f4d9342f..a4593df63 100644 --- a/examples/basicapp/WORKSPACE +++ b/examples/basicapp/WORKSPACE @@ -9,6 +9,9 @@ local_repository( load("@rules_android//:prereqs.bzl", "rules_android_prereqs") rules_android_prereqs() +load("@com_google_protobuf//:protobuf_deps.bzl", "protobuf_deps") +protobuf_deps() + load("@bazel_features//:deps.bzl", "bazel_features_deps") bazel_features_deps() @@ -19,10 +22,6 @@ compatibility_proxy_repo() load("@rules_java//java:rules_java_deps.bzl", "rules_java_dependencies") rules_java_dependencies() -# note that the following line is what is minimally required from protobuf for the java rules -# consider using the protobuf_deps() public API from @com_google_protobuf//:protobuf_deps.bzl -load("@com_google_protobuf//bazel/private:proto_bazel_features.bzl", "proto_bazel_features") # buildifier: disable=bzl-visibility -proto_bazel_features(name = "proto_bazel_features") # register toolchains load("@rules_java//java:repositories.bzl", "rules_java_toolchains") rules_java_toolchains() diff --git a/prereqs.bzl b/prereqs.bzl index 8decb3a09..e7dba8732 100644 --- a/prereqs.bzl +++ b/prereqs.bzl @@ -63,8 +63,8 @@ def rules_android_prereqs(dev_mode = False): url = "https://github.com/bazelbuild/rules_jvm_external/releases/download/%s/rules_jvm_external-%s.tar.gz" % (RULES_JVM_EXTERNAL_TAG, RULES_JVM_EXTERNAL_TAG), ) - PROTOBUF_VERSION = "33.1" - PROTOBUF_HASH = "fda132cb0c86400381c0af1fe98bd0f775cb566cb247cdcc105e344e00acc30e" + PROTOBUF_VERSION = "33.4" + PROTOBUF_HASH = "bc670a4e34992c175137ddda24e76562bb928f849d712a0e3c2fb2e19249bea1" maybe( http_archive, name = "com_google_protobuf", diff --git a/src/tools/java/com/google/devtools/build/android/BUILD b/src/tools/java/com/google/devtools/build/android/BUILD index fd3282074..c21e2609a 100644 --- a/src/tools/java/com/google/devtools/build/android/BUILD +++ b/src/tools/java/com/google/devtools/build/android/BUILD @@ -98,7 +98,7 @@ java_library( "@rules_android_maven//:com_google_code_findbugs_jsr305", "@rules_android_maven//:com_google_errorprone_error_prone_annotations", "@rules_android_maven//:com_google_guava_guava", - "@rules_android_maven//:com_google_protobuf_protobuf_java", + "@com_google_protobuf//java/core", ":android_common_30_1_3", ":android_databinding_wrapper_lib", ":android_options_utils", diff --git a/src/tools/java/com/google/devtools/build/android/desugar/langmodel/BUILD b/src/tools/java/com/google/devtools/build/android/desugar/langmodel/BUILD index f81cf5726..1cc62289c 100644 --- a/src/tools/java/com/google/devtools/build/android/desugar/langmodel/BUILD +++ b/src/tools/java/com/google/devtools/build/android/desugar/langmodel/BUILD @@ -19,7 +19,7 @@ java_library( "@rules_android_maven//:com_google_code_findbugs_jsr305", "@rules_android_maven//:com_google_errorprone_error_prone_annotations", "@rules_android_maven//:com_google_guava_guava", - "@rules_android_maven//:com_google_protobuf_protobuf_java", + "@com_google_protobuf//java/core", "@rules_android_maven//:org_ow2_asm_asm", "@rules_android_maven//:org_ow2_asm_asm_commons", "@rules_android_maven//:org_ow2_asm_asm_tree", diff --git a/src/tools/java/com/google/devtools/build/android/proto/BUILD b/src/tools/java/com/google/devtools/build/android/proto/BUILD index f71332eb0..dcb2192ec 100644 --- a/src/tools/java/com/google/devtools/build/android/proto/BUILD +++ b/src/tools/java/com/google/devtools/build/android/proto/BUILD @@ -1,7 +1,7 @@ # Protos of the Actions for Android rules. load("@com_google_protobuf//bazel:java_proto_library.bzl", "java_proto_library") -load("@rules_proto//proto:defs.bzl", "proto_library") +load("@com_google_protobuf//bazel:proto_library.bzl", "proto_library") package(default_visibility = ["//visibility:public"]) diff --git a/src/tools/java/com/google/devtools/build/android/sandboxedsdktoolbox/info/BUILD b/src/tools/java/com/google/devtools/build/android/sandboxedsdktoolbox/info/BUILD index 91d232583..496c0ee51 100644 --- a/src/tools/java/com/google/devtools/build/android/sandboxedsdktoolbox/info/BUILD +++ b/src/tools/java/com/google/devtools/build/android/sandboxedsdktoolbox/info/BUILD @@ -13,7 +13,7 @@ java_library( srcs = glob(["*.java"]), deps = [ "@rules_android_maven//:com_android_tools_build_bundletool", - "@rules_android_maven//:com_google_protobuf_protobuf_java", - "@rules_android_maven//:com_google_protobuf_protobuf_java_util", + "@com_google_protobuf//java/core", + "@com_google_protobuf//java/util", ], ) diff --git a/src/tools/java/com/google/devtools/build/android/sandboxedsdktoolbox/runtimeenabledsdkconfig/BUILD b/src/tools/java/com/google/devtools/build/android/sandboxedsdktoolbox/runtimeenabledsdkconfig/BUILD index 6cad2c23b..760aaa43b 100644 --- a/src/tools/java/com/google/devtools/build/android/sandboxedsdktoolbox/runtimeenabledsdkconfig/BUILD +++ b/src/tools/java/com/google/devtools/build/android/sandboxedsdktoolbox/runtimeenabledsdkconfig/BUILD @@ -16,7 +16,7 @@ java_library( "//src/tools/java/com/google/devtools/build/android/sandboxedsdktoolbox/mixin", "@rules_android_maven//:com_android_tools_build_bundletool", "@rules_android_maven//:com_google_guava_guava", - "@rules_android_maven//:com_google_protobuf_protobuf_java", + "@com_google_protobuf//java/core", "@rules_android_maven//:info_picocli_picocli", ], ) diff --git a/src/tools/java/com/google/devtools/build/android/sandboxedsdktoolbox/sdksplitproperties/BUILD b/src/tools/java/com/google/devtools/build/android/sandboxedsdktoolbox/sdksplitproperties/BUILD index 2241b5af4..da8ace4e6 100644 --- a/src/tools/java/com/google/devtools/build/android/sandboxedsdktoolbox/sdksplitproperties/BUILD +++ b/src/tools/java/com/google/devtools/build/android/sandboxedsdktoolbox/sdksplitproperties/BUILD @@ -16,8 +16,8 @@ java_library( "//src/tools/java/com/google/devtools/build/android/sandboxedsdktoolbox/mixin", "@rules_android_maven//:com_android_tools_build_bundletool", "@rules_android_maven//:com_google_guava_guava", - "@rules_android_maven//:com_google_protobuf_protobuf_java", - "@rules_android_maven//:com_google_protobuf_protobuf_java_util", + "@com_google_protobuf//java/core", + "@com_google_protobuf//java/util", "@rules_android_maven//:info_picocli_picocli", ], ) diff --git a/src/tools/javatests/com/google/devtools/build/android/sandboxedsdktoolbox/proguardspecs/BUILD b/src/tools/javatests/com/google/devtools/build/android/sandboxedsdktoolbox/proguardspecs/BUILD index 3311be8c5..d2d214d68 100644 --- a/src/tools/javatests/com/google/devtools/build/android/sandboxedsdktoolbox/proguardspecs/BUILD +++ b/src/tools/javatests/com/google/devtools/build/android/sandboxedsdktoolbox/proguardspecs/BUILD @@ -15,7 +15,7 @@ java_test( deps = [ "//src/tools/javatests/com/google/devtools/build/android/sandboxedsdktoolbox/utils", "@rules_android_maven//:com_android_tools_build_bundletool", - "@rules_android_maven//:com_google_protobuf_protobuf_java_util", + "@com_google_protobuf//java/util", "@rules_android_maven//:com_google_truth_truth", "@rules_android_maven//:junit_junit", ], diff --git a/src/tools/javatests/com/google/devtools/build/android/sandboxedsdktoolbox/runtimeenabledsdkconfig/BUILD b/src/tools/javatests/com/google/devtools/build/android/sandboxedsdktoolbox/runtimeenabledsdkconfig/BUILD index d66bfc10f..d8d1fa988 100644 --- a/src/tools/javatests/com/google/devtools/build/android/sandboxedsdktoolbox/runtimeenabledsdkconfig/BUILD +++ b/src/tools/javatests/com/google/devtools/build/android/sandboxedsdktoolbox/runtimeenabledsdkconfig/BUILD @@ -17,7 +17,7 @@ java_test( "//src/tools/javatests/com/google/devtools/build/android/sandboxedsdktoolbox/utils", "@rules_android_maven//:com_android_tools_build_bundletool", "@rules_android_maven//:com_google_guava_guava", - "@rules_android_maven//:com_google_protobuf_protobuf_java", + "@com_google_protobuf//java/core", "@rules_android_maven//:com_google_truth_truth", "@rules_android_maven//:junit_junit", ], @@ -31,7 +31,7 @@ java_test( "//src/tools/javatests/com/google/devtools/build/android/sandboxedsdktoolbox/utils", "@rules_android_maven//:com_android_tools_build_bundletool", "@rules_android_maven//:com_google_guava_guava", - "@rules_android_maven//:com_google_protobuf_protobuf_java_util", + "@com_google_protobuf//java/util", "@rules_android_maven//:com_google_truth_truth", "@rules_android_maven//:junit_junit", ], diff --git a/src/tools/javatests/com/google/devtools/build/android/sandboxedsdktoolbox/sdkdependenciesmanifest/BUILD b/src/tools/javatests/com/google/devtools/build/android/sandboxedsdktoolbox/sdkdependenciesmanifest/BUILD index 00dc34830..b970b2cf9 100644 --- a/src/tools/javatests/com/google/devtools/build/android/sandboxedsdktoolbox/sdkdependenciesmanifest/BUILD +++ b/src/tools/javatests/com/google/devtools/build/android/sandboxedsdktoolbox/sdkdependenciesmanifest/BUILD @@ -16,7 +16,7 @@ java_test( deps = [ "//src/tools/javatests/com/google/devtools/build/android/sandboxedsdktoolbox/utils", "@rules_android_maven//:com_android_tools_build_bundletool", - "@rules_android_maven//:com_google_protobuf_protobuf_java_util", + "@com_google_protobuf//java/util", "@rules_android_maven//:com_google_truth_truth", "@rules_android_maven//:junit_junit", ], diff --git a/src/tools/javatests/com/google/devtools/build/android/sandboxedsdktoolbox/sdksplitproperties/BUILD b/src/tools/javatests/com/google/devtools/build/android/sandboxedsdktoolbox/sdksplitproperties/BUILD index 63fa85bfd..6b87c877f 100644 --- a/src/tools/javatests/com/google/devtools/build/android/sandboxedsdktoolbox/sdksplitproperties/BUILD +++ b/src/tools/javatests/com/google/devtools/build/android/sandboxedsdktoolbox/sdksplitproperties/BUILD @@ -17,8 +17,8 @@ java_test( "//src/tools/javatests/com/google/devtools/build/android/sandboxedsdktoolbox/utils", "@rules_android_maven//:com_android_tools_build_bundletool", "@rules_android_maven//:com_google_guava_guava", - "@rules_android_maven//:com_google_protobuf_protobuf_java", - "@rules_android_maven//:com_google_protobuf_protobuf_java_util", + "@com_google_protobuf//java/core", + "@com_google_protobuf//java/util", "@rules_android_maven//:com_google_truth_truth", "@rules_android_maven//:junit_junit", ], diff --git a/src/tools/javatests/com/google/devtools/build/android/sandboxedsdktoolbox/validatemodulesconfig/BUILD b/src/tools/javatests/com/google/devtools/build/android/sandboxedsdktoolbox/validatemodulesconfig/BUILD index a1d2c793a..c61bedb21 100644 --- a/src/tools/javatests/com/google/devtools/build/android/sandboxedsdktoolbox/validatemodulesconfig/BUILD +++ b/src/tools/javatests/com/google/devtools/build/android/sandboxedsdktoolbox/validatemodulesconfig/BUILD @@ -15,7 +15,7 @@ java_test( deps = [ "//src/tools/javatests/com/google/devtools/build/android/sandboxedsdktoolbox/utils", "@rules_android_maven//:com_android_tools_build_bundletool", - "@rules_android_maven//:com_google_protobuf_protobuf_java_util", + "@com_google_protobuf//java/util", "@rules_android_maven//:com_google_truth_truth", "@rules_android_maven//:junit_junit", ],