From d4651e86d0469f12ee2a09b02c112a14b13a6c3d Mon Sep 17 00:00:00 2001 From: iirina Date: Fri, 15 Mar 2019 03:15:37 -0700 Subject: [PATCH] Remove ijar from the bazel binary. Bazel now doesn't embed ijar anymore and uses ijar embeded in the Java tools remote repository. Bazel embedded both ijar's source code (required by remote execution) and platform specific pre-built binaries. This change adds platform specific remote Java tools repository that include the corresponding pre-built ijar binary (for Windows, Darwin and Linux), alongside ijar's source code. This change introduces a collection of macros that wrap the native rules `filegroup` and `java_import` and select a given target from the external java tools repository based on the current platform. Progress on #6316. Closes #7665. PiperOrigin-RevId: 238613298 --- WORKSPACE | 28 +- scripts/bootstrap/compile.sh | 3 - src/BUILD | 4 +- src/create_embedded_tools.py | 7 +- .../build/lib/bazel/rules/java/jdk.WORKSPACE | 26 +- src/test/shell/bazel/bazel_java_test.sh | 2 +- .../bazel/testdata/embedded_tools_srcs_deps | 1 - tools/android/BUILD.tools | 4 +- tools/jdk/BUILD | 93 +++--- tools/jdk/BUILD.java_langtools | 24 ++ tools/jdk/BUILD.java_tools | 292 ++++++++++++++++++ tools/jdk/remote_java_tools_aliases.bzl | 41 +++ 12 files changed, 454 insertions(+), 71 deletions(-) create mode 100644 tools/jdk/BUILD.java_langtools create mode 100644 tools/jdk/BUILD.java_tools create mode 100644 tools/jdk/remote_java_tools_aliases.bzl diff --git a/WORKSPACE b/WORKSPACE index c70da293e901a2..45148c75db4907 100644 --- a/WORKSPACE +++ b/WORKSPACE @@ -106,18 +106,24 @@ distdir_tar( archives = [ "e0b0291b2c51fbe5a7cfa14473a1ae850f94f021.zip", "f83cb8dd6f5658bc574ccd873e25197055265d1c.tar.gz", - "java_tools_pkg-0.6.tar.gz", + "java_tools_javac10_linux-x86_64-v1.0.tar.gz", + "java_tools_javac10_windows-x86_64-v1.0.zip", + "java_tools_javac10_darwin-v1.0.tar.gz", ], dirname = "derived/distdir", sha256 = { "e0b0291b2c51fbe5a7cfa14473a1ae850f94f021.zip": "fe2e04f91ce8c59d49d91b8102edc6627c6fa2906c1b0e7346f01419ec4f419d", "f83cb8dd6f5658bc574ccd873e25197055265d1c.tar.gz": "ba5d15ca230efca96320085d8e4d58da826d1f81b444ef8afccd8b23e0799b52", - "java_tools_pkg-0.6.tar.gz": "81ed7c5231cd67df95dc4894a5cc32af67d29f388ee7117809531b948e61fca9", + "java_tools_javac10_linux-x86_64-v1.0.tar.gz": "1be7503530ce263f6c90139281f45e9ae4f681a8a362b93ad1ddef4f6db74ce5", + "java_tools_javac10_windows-x86_64-v1.0.zip": "15840585eb4db06c2ecc0e14749f96a0e253d9cee2c17b724fc60340d35c6a07", + "java_tools_javac10_darwin-v1.0.tar.gz": "a7d292c13c1dbd7def969ddafdf0207a0be5a3e2280fab9164b2c44fd37a82c6", }, urls = { "e0b0291b2c51fbe5a7cfa14473a1ae850f94f021.zip": ["https://github.com/google/desugar_jdk_libs/archive/e0b0291b2c51fbe5a7cfa14473a1ae850f94f021.zip"], "f83cb8dd6f5658bc574ccd873e25197055265d1c.tar.gz": ["https://github.com/bazelbuild/bazel-skylib/archive/f83cb8dd6f5658bc574ccd873e25197055265d1c.tar.gz"], - "java_tools_pkg-0.6.tar.gz": ["https://mirror.bazel.build/bazel_java_tools/java_tools_pkg-0.6.tar.gz"], + "java_tools_javac10_linux-x86_64-v1.0.tar.gz": ["https://mirror.bazel.build/bazel_java_tools/java_tools_javac10_linux-x86_64-v1.0.tar.gz"], + "java_tools_javac10_windows-x86_64-v1.0.zip": ["https://mirror.bazel.build/bazel_java_tools/java_tools_javac10_windows-x86_64-v1.0.zip"], + "java_tools_javac10_darwin-v1.0.tar.gz": ["https://mirror.bazel.build/bazel_java_tools/java_tools_javac10_darwin-v1.0.tar.gz"], }, ) @@ -232,8 +238,8 @@ http_archive( sha256 = "4b1468b254a572dbe134cc1fd7c6eab1618a72acd339749ea343bd8f55c3b7eb", strip_prefix = "bazel-toolchains-d665ccfa3e9c90fa789671bf4ef5f7c19c5715c4", urls = [ - "https://mirror.bazel.build/github.com/bazelbuild/bazel-toolchains/archive/d665ccfa3e9c90fa789671bf4ef5f7c19c5715c4.tar.gz", - "https://github.com/bazelbuild/bazel-toolchains/archive/d665ccfa3e9c90fa789671bf4ef5f7c19c5715c4.tar.gz", + "https://mirror.bazel.build/github.com/bazelbuild/bazel-toolchains/archive/d665ccfa3e9c90fa789671bf4ef5f7c19c5715c4.tar.gz", + "https://github.com/bazelbuild/bazel-toolchains/archive/d665ccfa3e9c90fa789671bf4ef5f7c19c5715c4.tar.gz", ], ) @@ -287,7 +293,9 @@ distdir_tar( "zulu10.2+3-jdk10.0.1-macosx_x64-allmodules.tar.gz", "zulu10.2+3-jdk10.0.1-win_x64-allmodules.zip", "jdk10-server-release-1804.tar.xz", - "java_tools_pkg-0.6.tar.gz", + "java_tools_javac10_linux-x86_64-v1.0.tar.gz", + "java_tools_javac10_windows-x86_64-v1.0.zip", + "java_tools_javac10_darwin-v1.0.tar.gz", "zulu11.2.3-jdk11.0.1-linux_x64.tar.gz", "zulu11.2.3-jdk11.0.1-macosx_x64.tar.gz", "zulu11.2.3-jdk11.0.1-win_x64.zip", @@ -305,7 +313,9 @@ distdir_tar( "zulu10.2+3-jdk10.0.1-macosx_x64-allmodules.tar.gz": "e669c9a897413d855b550b4e39d79614392e6fb96f494e8ef99a34297d9d85d3", "zulu10.2+3-jdk10.0.1-win_x64-allmodules.zip": "c39e7700a8d41794d60985df5a20352435196e78ecbc6a2b30df7be8637bffd5", "jdk10-server-release-1804.tar.xz": "b7098b7aaf6ee1ffd4a2d0371a0be26c5a5c87f6aebbe46fe9a92c90583a84be", - "java_tools_pkg-0.6.tar.gz": "81ed7c5231cd67df95dc4894a5cc32af67d29f388ee7117809531b948e61fca9", + "java_tools_javac10_linux-x86_64-v1.0.tar.gz": "1be7503530ce263f6c90139281f45e9ae4f681a8a362b93ad1ddef4f6db74ce5", + "java_tools_javac10_windows-x86_64-v1.0.zip": "15840585eb4db06c2ecc0e14749f96a0e253d9cee2c17b724fc60340d35c6a07", + "java_tools_javac10_darwin-v1.0.tar.gz": "a7d292c13c1dbd7def969ddafdf0207a0be5a3e2280fab9164b2c44fd37a82c6", "zulu11.2.3-jdk11.0.1-linux_x64.tar.gz": "232b1c3511f0d26e92582b7c3cc363be7ac633e371854ca2f2e9f2b50eb72a75", "zulu11.2.3-jdk11.0.1-macosx_x64.tar.gz": "1edf366ee821e5db8e348152fcb337b28dfd6bf0f97943c270dcc6747cedb6cb", "zulu11.2.3-jdk11.0.1-win_x64.zip": "8e1e2b8347de6746f3fd1538840dd643201533ab113abc4ed93678e342d28aa3", @@ -322,7 +332,9 @@ distdir_tar( "zulu10.2+3-jdk10.0.1-macosx_x64-allmodules.tar.gz": ["https://mirror.bazel.build/openjdk/azul-zulu10.2+3-jdk10.0.1/zulu10.2+3-jdk10.0.1-macosx_x64-allmodules.tar.gz"], "zulu10.2+3-jdk10.0.1-win_x64-allmodules.zip": ["https://mirror.bazel.build/openjdk/azul-zulu10.2+3-jdk10.0.1/zulu10.2+3-jdk10.0.1-win_x64-allmodules.zip"], "jdk10-server-release-1804.tar.xz": ["https://mirror.bazel.build/openjdk.linaro.org/releases/jdk10-server-release-1804.tar.xz"], - "java_tools_pkg-0.6.tar.gz": ["https://mirror.bazel.build/bazel_java_tools/java_tools_pkg-0.6.tar.gz"], + "java_tools_javac10_linux-x86_64-v1.0.tar.gz": ["https://mirror.bazel.build/bazel_java_tools/java_tools_javac10_linux-x86_64-v1.0.tar.gz"], + "java_tools_javac10_windows-x86_64-v1.0.zip": ["https://mirror.bazel.build/bazel_java_tools/java_tools_javac10_windows-x86_64-v1.0.zip"], + "java_tools_javac10_darwin-v1.0.tar.gz": ["https://mirror.bazel.build/bazel_java_tools/java_tools_javac10_darwin-v1.0.tar.gz"], "zulu11.2.3-jdk11.0.1-linux_x64.tar.gz": ["https://mirror.bazel.build/openjdk/azul-zulu11.2.3-jdk11.0.1/zulu11.2.3-jdk11.0.1-linux_x64.tar.gz"], "zulu11.2.3-jdk11.0.1-macosx_x64.tar.gz": ["https://mirror.bazel.build/openjdk/azul-zulu11.2.3-jdk11.0.1/zulu11.2.3-jdk11.0.1-macosx_x64.tar.gz"], "zulu11.2.3-jdk11.0.1-win_x64.zip": ["https://mirror.bazel.build/openjdk/azul-zulu11.2.3-jdk11.0.1/zulu11.2.3-jdk11.0.1-win_x64.zip"], diff --git a/scripts/bootstrap/compile.sh b/scripts/bootstrap/compile.sh index 3d53c3f36f926f..bc97e9ec62385f 100755 --- a/scripts/bootstrap/compile.sh +++ b/scripts/bootstrap/compile.sh @@ -264,9 +264,6 @@ EOF link_children "${PWD}" tools/python "${BAZEL_TOOLS_REPO}" link_children "${PWD}" tools "${BAZEL_TOOLS_REPO}" - # The BUILD file needed for @remote_java_tools. - link_file "${PWD}/third_party/java/java_tools/BUILD.pkg" "${BAZEL_TOOLS_REPO}/tools/jdk/BUILD.pkg" - # Set up @bazel_tools//platforms properly mkdir -p ${BAZEL_TOOLS_REPO}/platforms cp tools/platforms/platforms.BUILD ${BAZEL_TOOLS_REPO}/platforms/BUILD diff --git a/src/BUILD b/src/BUILD index 23612c5c1b5914..42fe48a02d884e 100644 --- a/src/BUILD +++ b/src/BUILD @@ -123,9 +123,8 @@ JAVA_TOOLS = [ "//src/java_tools/buildjar/java/com/google/devtools/build/buildjar/jarhelper:srcs", "//src/tools/singlejar:embedded_tools", "//src/java_tools/import_deps_checker/java/com/google/devtools/build/importdeps:embedded_tools", - "//third_party/ijar", + # TODO(#6316): Move this target to the remote java tools archive. "//third_party/ijar:zipper", - "//third_party/ijar:embedded_tools", "//third_party/java/jacoco:srcs", ] + select({ "//src/conditions:arm": [], @@ -142,7 +141,6 @@ JAVA_TOOLS = [ "BUILD.tools", "//tools:embedded_tools_srcs", "//third_party:gpl-srcs", - "//third_party/java/java_tools:bazel_embedded_java_tools", "//third_party/java/j2objc:embedded_tools_srcs", "//third_party/py/concurrent:srcs", "//third_party/py/gflags:srcs", diff --git a/src/create_embedded_tools.py b/src/create_embedded_tools.py index c4ec47b41174cb..d1b09ae3ed1728 100644 --- a/src/create_embedded_tools.py +++ b/src/create_embedded_tools.py @@ -28,21 +28,18 @@ from src.create_embedded_tools_lib import is_executable output_paths = [ - ('*tools/jdk/BUILD*', lambda x: 'tools/jdk/BUILD'), + ('*tools/jdk/BUILD', lambda x: 'tools/jdk/BUILD'), ('*tools/platforms/platforms.BUILD', lambda x: 'platforms/BUILD'), ('*tools/platforms/*', lambda x: 'platforms/' + os.path.basename(x)), ('*tools/cpp/runfiles/generated_*', lambda x: 'tools/cpp/runfiles/' + os.path.basename(x)[len('generated_'):]), ('*jarjar_command_deploy.jar', lambda x: 'tools/jdk/jarjar_command_deploy.jar'), - ('*BUILD.pkg', lambda x: 'tools/jdk/BUILD.pkg'), - ('*BUILD.javalangtools', lambda x: 'third_party/java/jdk/langtools/BUILD'), + ('*BUILD.java_langtools', lambda x: 'third_party/java/jdk/langtools/BUILD'), ('*singlejar_local.exe', lambda x: 'tools/jdk/singlejar/singlejar.exe'), ('*singlejar_local', lambda x: 'tools/jdk/singlejar/singlejar'), ('*launcher.exe', lambda x: 'tools/launcher/launcher.exe'), ('*def_parser.exe', lambda x: 'tools/def_parser/def_parser.exe'), - ('*ijar.exe', lambda x: 'tools/jdk/ijar/ijar.exe'), - ('*ijar', lambda x: 'tools/jdk/ijar/ijar'), ('*zipper.exe', lambda x: 'tools/zip/zipper/zipper.exe'), ('*zipper', lambda x: 'tools/zip/zipper/zipper'), ('*src/objc_tools/*', diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/java/jdk.WORKSPACE b/src/main/java/com/google/devtools/build/lib/bazel/rules/java/jdk.WORKSPACE index 274debdf0a1899..fdef9e509acd6e 100644 --- a/src/main/java/com/google/devtools/build/lib/bazel/rules/java/jdk.WORKSPACE +++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/java/jdk.WORKSPACE @@ -206,11 +206,29 @@ http_archive( ) http_archive( - name = "remote_java_tools", - build_file = "@bazel_tools//tools/jdk:BUILD.pkg", - sha256 = "81ed7c5231cd67df95dc4894a5cc32af67d29f388ee7117809531b948e61fca9", + name = "remote_java_tools_linux", + build_file = "@bazel_tools//tools/jdk:BUILD.java_tools", + sha256 = "1be7503530ce263f6c90139281f45e9ae4f681a8a362b93ad1ddef4f6db74ce5", urls = [ - "https://mirror.bazel.build/bazel_java_tools/java_tools_pkg-0.6.tar.gz", + "https://mirror.bazel.build/bazel_java_tools/java_tools_javac10_linux-x86_64-v1.0.tar.gz", + ], +) + +http_archive( + name = "remote_java_tools_windows", + build_file = "@bazel_tools//tools/jdk:BUILD.java_tools", + sha256 = "15840585eb4db06c2ecc0e14749f96a0e253d9cee2c17b724fc60340d35c6a07", + urls = [ + "https://mirror.bazel.build/bazel_java_tools/java_tools_javac10_windows-x86_64-v1.0.zip", + ], +) + +http_archive( + name = "remote_java_tools_darwin", + build_file = "@bazel_tools//tools/jdk:BUILD.java_tools", + sha256 = "a7d292c13c1dbd7def969ddafdf0207a0be5a3e2280fab9164b2c44fd37a82c6", + urls = [ + "https://mirror.bazel.build/bazel_java_tools/java_tools_javac10_darwin-v1.0.tar.gz", ], ) diff --git a/src/test/shell/bazel/bazel_java_test.sh b/src/test/shell/bazel/bazel_java_test.sh index 04d0bd54b77e1d..a29cdbae5efed6 100755 --- a/src/test/shell/bazel/bazel_java_test.sh +++ b/src/test/shell/bazel/bazel_java_test.sh @@ -571,7 +571,7 @@ EOF cat > java/testrunners/BUILD <