Bootstrap JavaBuilder with Debian system jars (main)
The bootstrap_toolchain depends on jar files directly. We also need to replace them with system libraries for the Debian build.
Working towards: #9408
Closes #11481.
PiperOrigin-RevId: 313070094
diff --git a/BUILD b/BUILD
index 713316e..368a48c 100644
--- a/BUILD
+++ b/BUILD
@@ -1,5 +1,6 @@
# Bazel - Google's Build System
+load("//tools/distributions:distribution_rules.bzl", "distrib_jar_filegroup")
load("//tools/python:private/defs.bzl", "py_binary")
load("@rules_pkg//:pkg.bzl", "pkg_tar")
@@ -74,12 +75,13 @@
visibility = ["//:__subpackages__"],
)
-filegroup(
+distrib_jar_filegroup(
name = "bootstrap-derived-java-jars",
srcs = glob(
["derived/jars/**/*.jar"],
allow_empty = True,
),
+ enable_distributions = ["debian"],
visibility = ["//:__subpackages__"],
)
diff --git a/tools/distributions/debian/debian_java.BUILD b/tools/distributions/debian/debian_java.BUILD
index bda5894..153d5e2 100644
--- a/tools/distributions/debian/debian_java.BUILD
+++ b/tools/distributions/debian/debian_java.BUILD
@@ -58,6 +58,12 @@
jars = ["tomcat9-annotations-api.jar"],
)
+# For bootstrapping java toolcahin
+filegroup(
+ name = "tomcat_annotations_api-jars",
+ srcs = ["tomcat9-annotations-api.jar"],
+)
+
# libjava-allocation-instrumenter-java
java_import(
name = "allocation_instrumenter",
@@ -76,6 +82,15 @@
jars = ["protobuf-util.jar"],
)
+# For bootstrapping java toolcahin
+filegroup(
+ name = "bootstrap-derived-java-jars",
+ srcs = [
+ "protobuf.jar",
+ "protobuf-util.jar",
+ ],
+)
+
# libcommons-collections3-java
java_import(
name = "apache_commons_collections",
@@ -134,12 +149,26 @@
],
)
+# For bootstrapping java toolcahin
+filegroup(
+ name = "jcip_annotations-jars",
+ srcs = [
+ "jcip-annotations.jar",
+ ],
+)
+
# libjsr305-java
java_import(
name = "jsr305",
jars = ["jsr305.jar"],
)
+# For bootstrapping java toolcahin
+filegroup(
+ name = "jsr305-jars",
+ srcs = ["jsr305.jar"],
+)
+
# libnetty-tcnative-java
java_import(
name = "netty_tcnative",
diff --git a/tools/distributions/distribution_rules.bzl b/tools/distributions/distribution_rules.bzl
index 742259a..8a5ae9f 100644
--- a/tools/distributions/distribution_rules.bzl
+++ b/tools/distributions/distribution_rules.bzl
@@ -43,3 +43,18 @@
conditions["//src/conditions:debian_build"] = "@debian_cc_deps//:" + name
native.alias(name = name, actual = select(conditions), visibility = visibility)
+
+def distrib_jar_filegroup(name, visibility = None, enable_distributions = [], **kwargs):
+ """A macro for filegroup rule to support distributions build (eg. Debian)"""
+ checked_in_name = name + "_checked_in"
+
+ native.filegroup(name = checked_in_name, visibility = visibility, **kwargs)
+
+ conditions = {
+ "//conditions:default": ":" + checked_in_name,
+ }
+
+ if "debian" in enable_distributions:
+ conditions["//src/conditions:debian_build"] = "@debian_java_deps//:" + name
+
+ native.alias(name = name, actual = select(conditions), visibility = visibility)