diff --git a/pkgs/development/python-modules/keras/default.nix b/pkgs/development/python-modules/keras/default.nix index d33143d829d52..20693005486d6 100644 --- a/pkgs/development/python-modules/keras/default.nix +++ b/pkgs/development/python-modules/keras/default.nix @@ -50,7 +50,7 @@ buildPythonPackage rec { dependencies = [ absl-py h5py - ml-dtypes + ({ ml-dtypesTF = ml-dtypes; } // tensorflow).ml-dtypesTF namex numpy optree diff --git a/pkgs/development/python-modules/tensorflow/absl_py_argparse_flags.patch b/pkgs/development/python-modules/tensorflow/absl_py_argparse_flags.patch deleted file mode 100644 index 1b130e22662e1..0000000000000 --- a/pkgs/development/python-modules/tensorflow/absl_py_argparse_flags.patch +++ /dev/null @@ -1,11 +0,0 @@ -diff -Naurd x/third_party/systemlibs/absl_py.absl.flags.BUILD y/third_party/systemlibs/absl_py.absl.flags.BUILD ---- x/third_party/systemlibs/absl_py.absl.flags.BUILD 2023-09-20 06:02:15.079683729 +0000 -+++ y/third_party/systemlibs/absl_py.absl.flags.BUILD 2023-09-20 06:04:58.491897303 +0000 -@@ -5,3 +5,7 @@ - py_library( - name = "flags", - ) -+ -+py_library( -+ name = "argparse_flags", -+) diff --git a/pkgs/development/python-modules/tensorflow/absl_to_std.patch b/pkgs/development/python-modules/tensorflow/absl_to_std.patch deleted file mode 100644 index b834ec983c94e..0000000000000 --- a/pkgs/development/python-modules/tensorflow/absl_to_std.patch +++ /dev/null @@ -1,389 +0,0 @@ -diff -Naurd x/tensorflow/c/experimental/stream_executor/stream_executor.cc y/tensorflow/c/experimental/stream_executor/stream_executor.cc ---- x/tensorflow/c/experimental/stream_executor/stream_executor.cc 2023-10-19 14:25:48.648646416 +0000 -+++ y/tensorflow/c/experimental/stream_executor/stream_executor.cc 2023-10-19 14:29:11.700743574 +0000 -@@ -23,6 +23,7 @@ - - #include - #include -+#include - - #include "absl/functional/any_invocable.h" - #include "tensorflow/c/c_api_macros.h" -@@ -275,17 +276,17 @@ - stream_executor_->unified_memory_deallocate(&device_, mem); - } - -- absl::optional GetAllocatorStats() override { -+ std::optional GetAllocatorStats() override { - SP_AllocatorStats c_stats{SP_ALLOCATORSTATS_STRUCT_SIZE}; - TF_Bool has_stats = - stream_executor_->get_allocator_stats(&device_, &c_stats); - if (!has_stats) { -- return absl::nullopt; -+ return std::nullopt; - } - tsl::Status status = ValidateSPAllocatorStats(c_stats); - if (!status.ok()) { - LOG(ERROR) << status.message(); -- return absl::nullopt; -+ return std::nullopt; - } - ::stream_executor::AllocatorStats stats; - stats.num_allocs = c_stats.num_allocs; -diff -Naurd x/tensorflow/c/experimental/stream_executor/stream_executor_test.cc y/tensorflow/c/experimental/stream_executor/stream_executor_test.cc ---- x/tensorflow/c/experimental/stream_executor/stream_executor_test.cc 2023-10-19 14:25:48.648646416 +0000 -+++ y/tensorflow/c/experimental/stream_executor/stream_executor_test.cc 2023-10-19 14:29:11.700743574 +0000 -@@ -15,6 +15,7 @@ - #include "tensorflow/c/experimental/stream_executor/stream_executor.h" - - #include -+#include - - #include "tensorflow/c/experimental/stream_executor/stream_executor_internal.h" - #include "tensorflow/c/experimental/stream_executor/stream_executor_test_util.h" -@@ -239,7 +240,7 @@ - }; - - StreamExecutor* executor = GetExecutor(0); -- absl::optional optional_stats = executor->GetAllocatorStats(); -+ std::optional optional_stats = executor->GetAllocatorStats(); - ASSERT_TRUE(optional_stats.has_value()); - AllocatorStats stats = optional_stats.value(); - ASSERT_EQ(stats.bytes_in_use, 123); -diff -Naurd x/tensorflow/compiler/xla/stream_executor/allocator_stats.h y/tensorflow/compiler/xla/stream_executor/allocator_stats.h ---- x/tensorflow/compiler/xla/stream_executor/allocator_stats.h 2023-10-19 14:25:55.064649379 +0000 -+++ y/tensorflow/compiler/xla/stream_executor/allocator_stats.h 2023-10-19 14:29:11.700743574 +0000 -@@ -17,6 +17,7 @@ - #define TENSORFLOW_COMPILER_XLA_STREAM_EXECUTOR_ALLOCATOR_STATS_H_ - - #include -+#include - - #include "absl/types/optional.h" - #include "tensorflow/compiler/xla/stream_executor/platform/port.h" -diff -Naurd x/tensorflow/core/common_runtime/mkl_cpu_allocator.h y/tensorflow/core/common_runtime/mkl_cpu_allocator.h ---- x/tensorflow/core/common_runtime/mkl_cpu_allocator.h 2023-10-19 14:25:58.996651199 +0000 -+++ y/tensorflow/core/common_runtime/mkl_cpu_allocator.h 2023-10-19 14:29:11.700743574 +0000 -@@ -22,6 +22,7 @@ - #ifdef INTEL_MKL - - #include -+#include - - #include "tensorflow/core/common_runtime/bfc_allocator.h" - #include "tensorflow/core/common_runtime/pool_allocator.h" -@@ -80,7 +81,7 @@ - port::AlignedFree(ptr); - } - -- absl::optional GetStats() override { -+ std::optional GetStats() override { - mutex_lock l(mutex_); - return stats_; - } -@@ -242,7 +243,7 @@ - large_size_allocator_->DeallocateRaw(ptr); - } - } -- absl::optional GetStats() override { -+ std::optional GetStats() override { - auto s_stats = small_size_allocator_->GetStats(); - auto l_stats = large_size_allocator_->GetStats(); - -diff -Naurd x/tensorflow/core/common_runtime/pluggable_device/pluggable_device_simple_allocator.cc y/tensorflow/core/common_runtime/pluggable_device/pluggable_device_simple_allocator.cc ---- x/tensorflow/core/common_runtime/pluggable_device/pluggable_device_simple_allocator.cc 2023-10-19 14:25:59.236651310 +0000 -+++ y/tensorflow/core/common_runtime/pluggable_device/pluggable_device_simple_allocator.cc 2023-10-19 14:29:11.700743574 +0000 -@@ -32,7 +32,7 @@ - return sub_allocator_->Free(ptr, 0); - } - --absl::optional PluggableDeviceSimpleAllocator::GetStats() { -+std::optional PluggableDeviceSimpleAllocator::GetStats() { - AllocatorStats stats_; - stats_.num_allocs = 0; - stats_.peak_bytes_in_use = 0; -diff -Naurd x/tensorflow/core/common_runtime/pluggable_device/pluggable_device_simple_allocator.h y/tensorflow/core/common_runtime/pluggable_device/pluggable_device_simple_allocator.h ---- x/tensorflow/core/common_runtime/pluggable_device/pluggable_device_simple_allocator.h 2023-10-19 14:25:59.236651310 +0000 -+++ y/tensorflow/core/common_runtime/pluggable_device/pluggable_device_simple_allocator.h 2023-10-19 14:29:11.700743574 +0000 -@@ -19,6 +19,7 @@ - #include - #include - #include -+#include - - #include "tensorflow/core/common_runtime/device/device_mem_allocator.h" - #include "tensorflow/core/platform/thread_annotations.h" -@@ -37,7 +38,7 @@ - - bool TracksAllocationSizes() const override { return false; } - string Name() override { return "Simple allocator"; } -- absl::optional GetStats() override; -+ std::optional GetStats() override; - - AllocatorMemoryType GetMemoryType() const override { - return sub_allocator_->GetMemoryType(); -diff -Naurd x/tensorflow/core/common_runtime/process_state.h y/tensorflow/core/common_runtime/process_state.h ---- x/tensorflow/core/common_runtime/process_state.h 2023-10-19 14:25:59.076651236 +0000 -+++ y/tensorflow/core/common_runtime/process_state.h 2023-10-19 14:29:11.704743576 +0000 -@@ -20,6 +20,7 @@ - #include - #include - #include -+#include - - #include "tensorflow/core/framework/allocator.h" - #include "tensorflow/core/framework/allocator_registry.h" -@@ -144,7 +145,7 @@ - size_t AllocatedSize(const void* p) const override { - return a_->AllocatedSize(p); - } -- absl::optional GetStats() override { return a_->GetStats(); } -+ std::optional GetStats() override { return a_->GetStats(); } - bool ClearStats() override { return a_->ClearStats(); } - - AllocatorMemoryType GetMemoryType() const override { -diff -Naurd x/tensorflow/core/common_runtime/step_stats_collector.cc y/tensorflow/core/common_runtime/step_stats_collector.cc ---- x/tensorflow/core/common_runtime/step_stats_collector.cc 2023-10-19 14:25:59.112651253 +0000 -+++ y/tensorflow/core/common_runtime/step_stats_collector.cc 2023-10-19 14:29:11.704743576 +0000 -@@ -15,6 +15,7 @@ - #include "tensorflow/core/common_runtime/step_stats_collector.h" - - #include -+#include - - #include "tensorflow/core/common_runtime/costmodel_manager.h" - #include "tensorflow/core/framework/allocation_description.pb.h" -@@ -175,7 +176,7 @@ - memory->set_peak_bytes(std::get<1>(sizes)); - memory->set_live_bytes(std::get<2>(sizes)); - -- absl::optional stats = allocator->GetStats(); -+ std::optional stats = allocator->GetStats(); - if (stats) { - memory->set_allocator_bytes_in_use(stats->bytes_in_use); - } -diff -Naurd x/tensorflow/core/framework/allocator_test.cc y/tensorflow/core/framework/allocator_test.cc ---- x/tensorflow/core/framework/allocator_test.cc 2023-10-19 14:25:59.524651443 +0000 -+++ y/tensorflow/core/framework/allocator_test.cc 2023-10-19 14:29:11.704743576 +0000 -@@ -17,6 +17,7 @@ - - #include - #include -+#include - - #include "tensorflow/core/framework/typed_allocator.h" - #include "tensorflow/core/platform/logging.h" -@@ -33,7 +34,7 @@ - - static void CheckStats(Allocator* a, int64_t num_allocs, int64_t bytes_in_use, - int64_t peak_bytes_in_use, int64_t largest_alloc_size) { -- absl::optional stats = a->GetStats(); -+ std::optional stats = a->GetStats(); - EXPECT_TRUE(stats); - if (!stats) { - return; -@@ -255,7 +256,7 @@ - EXPECT_EQ(e0.Name(), "MemoryAllocation") - << "XSpace: " << xspace.DebugString(); - { -- absl::optional bytes_allocated, peak_bytes_in_use, -+ std::optional bytes_allocated, peak_bytes_in_use, - requested_bytes, allocation_bytes; - e0.ForEachStat([&](const ::tensorflow::profiler::XStatVisitor& stat) { - LOG(ERROR) << "STAT " << stat.Name() << ": " << stat.ToString(); -@@ -282,7 +283,7 @@ - EXPECT_EQ(e1.Name(), "MemoryDeallocation") - << "XSpace: " << xspace.DebugString(); - { -- absl::optional bytes_allocated, peak_bytes_in_use, -+ std::optional bytes_allocated, peak_bytes_in_use, - allocation_bytes; - e1.ForEachStat([&](const ::tensorflow::profiler::XStatVisitor& stat) { - if (stat.Name() == "bytes_allocated") { -diff -Naurd x/tensorflow/core/framework/tracking_allocator_test.cc y/tensorflow/core/framework/tracking_allocator_test.cc ---- x/tensorflow/core/framework/tracking_allocator_test.cc 2023-10-19 14:25:59.700651525 +0000 -+++ y/tensorflow/core/framework/tracking_allocator_test.cc 2023-10-19 14:29:11.704743576 +0000 -@@ -16,6 +16,7 @@ - #include "tensorflow/core/framework/tracking_allocator.h" - - #include -+#include - - #include "tensorflow/core/framework/allocator.h" - #include "tensorflow/core/platform/logging.h" -@@ -44,7 +45,7 @@ - EXPECT_NE(size_map_.end(), iter); - return iter->second; - } -- absl::optional GetStats() override { return absl::nullopt; } -+ std::optional GetStats() override { return std::nullopt; } - - private: - std::unordered_map size_map_; -@@ -58,7 +59,7 @@ - } - void DeallocateRaw(void* ptr) override {} - bool TracksAllocationSizes() const override { return true; } -- absl::optional GetStats() override { return absl::nullopt; } -+ std::optional GetStats() override { return std::nullopt; } - }; - - TEST(TrackingAllocatorTest, SimpleNoTracking) { -diff -Naurd x/tensorflow/core/grappler/clusters/single_machine.cc y/tensorflow/core/grappler/clusters/single_machine.cc ---- x/tensorflow/core/grappler/clusters/single_machine.cc 2023-10-19 14:25:59.964651648 +0000 -+++ y/tensorflow/core/grappler/clusters/single_machine.cc 2023-10-19 14:29:11.704743576 +0000 -@@ -17,6 +17,7 @@ - - #include - #include -+#include - - #include "tensorflow/cc/training/queue_runner.h" - #include "tensorflow/core/common_runtime/device.h" -@@ -230,7 +231,7 @@ - return Status(absl::StatusCode::kInvalidArgument, - "Tracking allocation is not enabled."); - } -- absl::optional stats = allocator->GetStats(); -+ std::optional stats = allocator->GetStats(); - (*device_peak_memory)[device->name()] = - (stats ? stats->peak_bytes_in_use : 0); - } -diff -Naurd x/tensorflow/core/kernels/stack.cc y/tensorflow/core/kernels/stack.cc ---- x/tensorflow/core/kernels/stack.cc 2023-10-19 14:26:01.668652437 +0000 -+++ y/tensorflow/core/kernels/stack.cc 2023-10-19 14:29:11.704743576 +0000 -@@ -18,6 +18,7 @@ - #include - #include - #include -+#include - - #include "tensorflow/core/common_runtime/device.h" - #include "tensorflow/core/framework/device_base.h" -@@ -245,7 +246,7 @@ - DeviceContext* device_ctxt = ctx->op_device_context(); - auto device = static_cast(ctx->device()); - Allocator* allocator = device->GetAllocator(alloc_attrs); -- absl::optional stats = allocator->GetStats(); -+ std::optional stats = allocator->GetStats(); - if (stats && *stats->bytes_limit && - stats->bytes_in_use > (*stats->bytes_limit * kOccupancy)) { - // Asynchronously copy the tensor from GPU to CPU memory. -diff -Naurd x/tensorflow/python/tfe_wrapper.cc y/tensorflow/python/tfe_wrapper.cc ---- x/tensorflow/python/tfe_wrapper.cc 2023-10-19 14:26:10.716656639 +0000 -+++ y/tensorflow/python/tfe_wrapper.cc 2023-10-19 14:29:11.708743578 +0000 -@@ -14,6 +14,7 @@ - ==============================================================================*/ - - #include -+#include - - #include "Python.h" - #include "absl/strings/match.h" -@@ -691,7 +692,7 @@ - tensorflow::AllocatorAttributes attrs; - tensorflow::Allocator* allocator = matched_device->GetAllocator(attrs); - -- if (absl::optional stats = -+ if (std::optional stats = - allocator->GetStats()) { - return std::map{{"current", stats->bytes_in_use}, - {"peak", stats->peak_bytes_in_use}}; -diff -Naurd x/tensorflow/tsl/framework/allocator.h y/tensorflow/tsl/framework/allocator.h ---- x/tensorflow/tsl/framework/allocator.h 2023-10-19 14:26:15.884659044 +0000 -+++ y/tensorflow/tsl/framework/allocator.h 2023-10-19 14:29:11.708743578 +0000 -@@ -216,7 +216,7 @@ - } - - // Fills in 'stats' with statistics collected by this allocator. -- virtual absl::optional GetStats() { return absl::nullopt; } -+ virtual std::optional GetStats() { return std::nullopt; } - - // If implemented, clears the internal stats except for the `in_use` fields - // and sets the `peak_bytes_in_use` to be equal to the `bytes_in_use`. Returns -diff -Naurd x/tensorflow/tsl/framework/bfc_allocator.cc y/tensorflow/tsl/framework/bfc_allocator.cc ---- x/tensorflow/tsl/framework/bfc_allocator.cc 2023-10-19 14:26:15.900659052 +0000 -+++ y/tensorflow/tsl/framework/bfc_allocator.cc 2023-10-19 14:29:11.708743578 +0000 -@@ -1205,7 +1205,7 @@ - return md; - } - --absl::optional BFCAllocator::GetStats() { -+std::optional BFCAllocator::GetStats() { - mutex_lock l(lock_); - return stats_; - } -diff -Naurd x/tensorflow/tsl/framework/bfc_allocator.h y/tensorflow/tsl/framework/bfc_allocator.h ---- x/tensorflow/tsl/framework/bfc_allocator.h 2023-10-19 14:26:15.900659052 +0000 -+++ y/tensorflow/tsl/framework/bfc_allocator.h 2023-10-19 14:29:11.708743578 +0000 -@@ -22,6 +22,7 @@ - #include - #include - #include -+#include - - #include "absl/container/flat_hash_set.h" - #include "tensorflow/tsl/framework/allocator.h" -@@ -93,7 +94,7 @@ - - int64_t AllocationId(const void* ptr) const override; - -- absl::optional GetStats() override; -+ std::optional GetStats() override; - - bool ClearStats() override; - -diff -Naurd x/tensorflow/tsl/framework/cpu_allocator_impl.cc y/tensorflow/tsl/framework/cpu_allocator_impl.cc ---- x/tensorflow/tsl/framework/cpu_allocator_impl.cc 2023-10-19 14:26:15.928659065 +0000 -+++ y/tensorflow/tsl/framework/cpu_allocator_impl.cc 2023-10-19 14:29:11.708743578 +0000 -@@ -15,6 +15,7 @@ - - #include - #include -+#include - - #include "tensorflow/tsl/framework/allocator.h" - #include "tensorflow/tsl/framework/allocator_registry.h" -@@ -145,8 +146,8 @@ - /*level=*/tsl::profiler::TraceMeLevel::kInfo); - } - -- absl::optional GetStats() override { -- if (!cpu_allocator_collect_stats) return absl::nullopt; -+ std::optional GetStats() override { -+ if (!cpu_allocator_collect_stats) return std::nullopt; - mutex_lock l(mu_); - return stats_; - } -diff -Naurd x/tensorflow/tsl/framework/tracking_allocator.cc y/tensorflow/tsl/framework/tracking_allocator.cc ---- x/tensorflow/tsl/framework/tracking_allocator.cc 2023-10-19 14:26:15.968659084 +0000 -+++ y/tensorflow/tsl/framework/tracking_allocator.cc 2023-10-19 14:29:11.708743578 +0000 -@@ -152,7 +152,7 @@ - } - } - --absl::optional TrackingAllocator::GetStats() { -+std::optional TrackingAllocator::GetStats() { - return allocator_->GetStats(); - } - -diff -Naurd x/tensorflow/tsl/framework/tracking_allocator.h y/tensorflow/tsl/framework/tracking_allocator.h ---- x/tensorflow/tsl/framework/tracking_allocator.h 2023-10-19 14:26:15.968659084 +0000 -+++ y/tensorflow/tsl/framework/tracking_allocator.h 2023-10-19 14:29:11.712743580 +0000 -@@ -17,6 +17,7 @@ - #define TENSORFLOW_TSL_FRAMEWORK_TRACKING_ALLOCATOR_H_ - - #include -+#include - - #include "tensorflow/tsl/framework/allocator.h" - #include "tensorflow/tsl/lib/gtl/inlined_vector.h" -@@ -66,7 +67,7 @@ - size_t RequestedSize(const void* ptr) const override; - size_t AllocatedSize(const void* ptr) const override; - int64_t AllocationId(const void* ptr) const override; -- absl::optional GetStats() override; -+ std::optional GetStats() override; - bool ClearStats() override; - - AllocatorMemoryType GetMemoryType() const override { diff --git a/pkgs/development/python-modules/tensorflow/add-python-312.patch b/pkgs/development/python-modules/tensorflow/add-python-312.patch new file mode 100644 index 0000000000000..7b983f99f3875 --- /dev/null +++ b/pkgs/development/python-modules/tensorflow/add-python-312.patch @@ -0,0 +1,12 @@ +diff -Naurd x/tensorflow/tools/toolchains/python/python_repo.bzl y/tensorflow/tools/toolchains/python/python_repo.bzl +--- x/tensorflow/tools/toolchains/python/python_repo.bzl 2024-10-08 07:49:21.408314991 +0000 ++++ y/tensorflow/tools/toolchains/python/python_repo.bzl 2024-10-08 07:52:22.552639011 +0000 +@@ -4,7 +4,7 @@ + Defaults to 3.10. + """ + +-VERSIONS = ["3.9", "3.10", "3.11"] ++VERSIONS = ["3.9", "3.10", "3.11", "3.12"] + DEFAULT_VERSION = "3.10" + WARNING = """ + TF_PYTHON_VERSION variable was not set correctly, using default version. {} Python diff --git a/pkgs/development/python-modules/tensorflow/bazel_6_1_0/actions_path.patch b/pkgs/development/python-modules/tensorflow/bazel_6_1_0/actions_path.patch new file mode 100644 index 0000000000000..1fa1e57483339 --- /dev/null +++ b/pkgs/development/python-modules/tensorflow/bazel_6_1_0/actions_path.patch @@ -0,0 +1,41 @@ +diff --git a/src/main/java/com/google/devtools/build/lib/exec/local/PosixLocalEnvProvider.java b/src/main/java/com/google/devtools/build/lib/exec/local/PosixLocalEnvProvider.java +index 6fff2af..7e2877e 100644 +--- a/src/main/java/com/google/devtools/build/lib/exec/local/PosixLocalEnvProvider.java ++++ b/src/main/java/com/google/devtools/build/lib/exec/local/PosixLocalEnvProvider.java +@@ -47,6 +47,16 @@ public final class PosixLocalEnvProvider implements LocalEnvProvider { + Map env, BinTools binTools, String fallbackTmpDir) { + ImmutableMap.Builder result = ImmutableMap.builder(); + result.putAll(Maps.filterKeys(env, k -> !k.equals("TMPDIR"))); ++ ++ // In case we are running on NixOS. ++ // If bash is called with an unset PATH on this platform, ++ // it will set it to /no-such-path and default tools will be missings. ++ // See, https://github.com/NixOS/nixpkgs/issues/94222 ++ // So we ensure that minimal dependencies are present. ++ if (!env.containsKey("PATH")){ ++ result.put("PATH", "@actionsPathPatch@"); ++ } ++ + String p = clientEnv.get("TMPDIR"); + if (Strings.isNullOrEmpty(p)) { + // Do not use `fallbackTmpDir`, use `/tmp` instead. This way if the user didn't export TMPDIR +index 95642767c6..39d3c62461 100644 +--- a/src/main/java/com/google/devtools/build/lib/exec/local/XcodeLocalEnvProvider.java ++++ b/src/main/java/com/google/devtools/build/lib/exec/local/XcodeLocalEnvProvider.java +@@ -74,6 +74,16 @@ public final class XcodeLocalEnvProvider implements LocalEnvProvider { + + ImmutableMap.Builder newEnvBuilder = ImmutableMap.builder(); + newEnvBuilder.putAll(Maps.filterKeys(env, k -> !k.equals("TMPDIR"))); ++ ++ // In case we are running on NixOS. ++ // If bash is called with an unset PATH on this platform, ++ // it will set it to /no-such-path and default tools will be missings. ++ // See, https://github.com/NixOS/nixpkgs/issues/94222 ++ // So we ensure that minimal dependencies are present. ++ if (!env.containsKey("PATH")){ ++ newEnvBuilder.put("PATH", "@actionsPathPatch@"); ++ } ++ + String p = clientEnv.get("TMPDIR"); + if (Strings.isNullOrEmpty(p)) { + // Do not use `fallbackTmpDir`, use `/tmp` instead. This way if the user didn't export TMPDIR diff --git a/pkgs/development/python-modules/tensorflow/bazel_6_1_0/bash-tools-test.nix b/pkgs/development/python-modules/tensorflow/bazel_6_1_0/bash-tools-test.nix new file mode 100644 index 0000000000000..69ebd4418ef82 --- /dev/null +++ b/pkgs/development/python-modules/tensorflow/bazel_6_1_0/bash-tools-test.nix @@ -0,0 +1,51 @@ +{ + writeText, + bazel, + runLocal, + bazelTest, + distDir, +}: + +# Tests that certain executables are available in bazel-executed bash shells. + +let + WORKSPACE = writeText "WORKSPACE" '' + workspace(name = "our_workspace") + ''; + + fileIn = writeText "input.txt" '' + one + two + three + ''; + + fileBUILD = writeText "BUILD" '' + genrule( + name = "tool_usage", + srcs = [ ":input.txt" ], + outs = [ "output.txt" ], + cmd = "cat $(location :input.txt) | gzip - | gunzip - | awk '/t/' > $@", + ) + ''; + + workspaceDir = runLocal "our_workspace" { } '' + mkdir $out + cp ${WORKSPACE} $out/WORKSPACE + cp ${fileIn} $out/input.txt + cp ${fileBUILD} $out/BUILD + ''; + + testBazel = bazelTest { + name = "bazel-test-bash-tools"; + bazelPkg = bazel; + inherit workspaceDir; + + bazelScript = '' + ${bazel}/bin/bazel build :tool_usage --distdir=${distDir} + cp bazel-bin/output.txt $out + echo "Testing content" && [ "$(cat $out | wc -l)" == "2" ] && echo "OK" + ''; + }; + +in +testBazel diff --git a/pkgs/development/python-modules/tensorflow/bazel_6_1_0/bazel_rc.patch b/pkgs/development/python-modules/tensorflow/bazel_6_1_0/bazel_rc.patch new file mode 100644 index 0000000000000..a599ac3ec723b --- /dev/null +++ b/pkgs/development/python-modules/tensorflow/bazel_6_1_0/bazel_rc.patch @@ -0,0 +1,13 @@ +diff --git a/src/main/cpp/option_processor.cc b/src/main/cpp/option_processor.cc +index 8f8f15685f..a7ae52d1e4 100644 +--- a/src/main/cpp/option_processor.cc ++++ b/src/main/cpp/option_processor.cc +@@ -56,7 +56,7 @@ OptionProcessor::OptionProcessor( + : workspace_layout_(workspace_layout), + startup_options_(std::move(default_startup_options)), + parse_options_called_(false), +- system_bazelrc_path_(BAZEL_SYSTEM_BAZELRC_PATH) {} ++ system_bazelrc_path_("@bazelSystemBazelRCPath@") {} + + OptionProcessor::OptionProcessor( + const WorkspaceLayout* workspace_layout, diff --git a/pkgs/development/python-modules/tensorflow/bazel_6_1_0/cpp-test.nix b/pkgs/development/python-modules/tensorflow/bazel_6_1_0/cpp-test.nix new file mode 100644 index 0000000000000..99ff8ab16f657 --- /dev/null +++ b/pkgs/development/python-modules/tensorflow/bazel_6_1_0/cpp-test.nix @@ -0,0 +1,63 @@ +{ + bazel, + bazelTest, + bazel-examples, + stdenv, + darwin, + lib, + runLocal, + runtimeShell, + writeScript, + writeText, + distDir, +}: + +let + + toolsBazel = writeScript "bazel" '' + #! ${runtimeShell} + + export CXX='${stdenv.cc}/bin/clang++' + export LD='${darwin.cctools}/bin/ld' + export LIBTOOL='${darwin.cctools}/bin/libtool' + export CC='${stdenv.cc}/bin/clang' + + # XXX: hack for macosX, this flags disable bazel usage of xcode + # See: https://github.com/bazelbuild/bazel/issues/4231 + export BAZEL_USE_CPP_ONLY_TOOLCHAIN=1 + + exec "$BAZEL_REAL" "$@" + ''; + + workspaceDir = runLocal "our_workspace" { } ( + '' + cp -r ${bazel-examples}/cpp-tutorial/stage3 $out + find $out -type d -exec chmod 755 {} \; + '' + + (lib.optionalString stdenv.isDarwin '' + mkdir $out/tools + cp ${toolsBazel} $out/tools/bazel + '') + ); + + testBazel = bazelTest { + name = "bazel-test-cpp"; + inherit workspaceDir; + bazelPkg = bazel; + bazelScript = + '' + ${bazel}/bin/bazel \ + build --verbose_failures \ + --distdir=${distDir} \ + --curses=no \ + --sandbox_debug \ + //... \ + '' + + lib.optionalString (stdenv.isDarwin) '' + --cxxopt=-x --cxxopt=c++ --host_cxxopt=-x --host_cxxopt=c++ \ + --linkopt=-stdlib=libc++ --host_linkopt=-stdlib=libc++ \ + ''; + }; + +in +testBazel diff --git a/pkgs/development/python-modules/tensorflow/bazel_6_1_0/default.nix b/pkgs/development/python-modules/tensorflow/bazel_6_1_0/default.nix new file mode 100644 index 0000000000000..6f4ab0e08538a --- /dev/null +++ b/pkgs/development/python-modules/tensorflow/bazel_6_1_0/default.nix @@ -0,0 +1,788 @@ +{ + stdenv, + callPackage, + lib, + fetchurl, + fetchpatch, + fetchFromGitHub, + installShellFiles, + runCommand, + runCommandCC, + makeWrapper, + recurseIntoAttrs, + # this package (through the fixpoint glass) + bazel_self, + lr, + xe, + zip, + unzip, + bash, + writeCBin, + coreutils, + which, + gawk, + gnused, + gnutar, + gnugrep, + gzip, + findutils, + # updater + python3, + writeScript, + # Apple dependencies + cctools, + libcxx, + CoreFoundation, + CoreServices, + Foundation, + # Allow to independently override the jdks used to build and run respectively + buildJdk, + runJdk, + runtimeShell, + # Downstream packages for tests + bazel-watcher, + # Always assume all markers valid (this is needed because we remove markers; they are non-deterministic). + # Also, don't clean up environment variables (so that NIX_ environment variables are passed to compilers). + enableNixHacks ? false, + gcc-unwrapped, + autoPatchelfHook, + file, + substituteAll, + writeTextFile, +}: + +let + version = "6.1.0"; + sourceRoot = "."; + + src = fetchurl { + url = "https://github.com/bazelbuild/bazel/releases/download/${version}/bazel-${version}-dist.zip"; + hash = "sha256-xLhWdVQc9m7ny3FRQJf91sX8DgJSckNhek8gymtPKTI="; + }; + + # Update with + # 1. export BAZEL_SELF=$(nix-build -A bazel_6) + # 2. update version and hash for sources above + # 3. `eval $(nix-build -A bazel_6.updater)` + # 4. add new dependencies from the dict in ./src-deps.json if required by failing build + srcDeps = lib.attrsets.attrValues srcDepsSet; + srcDepsSet = + let + srcs = lib.importJSON ./src-deps.json; + toFetchurl = + d: + lib.attrsets.nameValuePair d.name (fetchurl { + urls = d.urls or [ d.url ]; + sha256 = d.sha256; + }); + in + builtins.listToAttrs ( + map toFetchurl [ + srcs.desugar_jdk_libs + srcs.io_bazel_skydoc + srcs.bazel_skylib + srcs.bazelci_rules + srcs.io_bazel_rules_sass + srcs.platforms + srcs.remote_java_tools_for_testing + srcs."coverage_output_generator-v2.6.zip" + srcs.build_bazel_rules_nodejs + srcs.android_tools_for_testing + srcs.openjdk_linux_vanilla + srcs.bazel_toolchains + srcs.com_github_grpc_grpc + srcs.upb + srcs.com_google_protobuf + srcs.rules_pkg + srcs.rules_cc + srcs.rules_java + srcs.rules_proto + srcs.rules_nodejs + srcs.rules_license + srcs.com_google_absl + srcs.com_googlesource_code_re2 + srcs.com_github_cares_cares + srcs.com_envoyproxy_protoc_gen_validate + srcs.com_google_googleapis + srcs.bazel_gazelle + ] + ); + + distDir = runCommand "bazel-deps" { } '' + mkdir -p $out + for i in ${builtins.toString srcDeps}; do cp $i $out/$(stripHash $i); done + ''; + + defaultShellUtils = + # Keep this list conservative. For more exotic tools, prefer to use + # @rules_nixpkgs to pull in tools from the nix repository. Example: + # + # WORKSPACE: + # + # nixpkgs_git_repository( + # name = "nixpkgs", + # revision = "def5124ec8367efdba95a99523dd06d918cb0ae8", + # ) + # + # # This defines an external Bazel workspace. + # nixpkgs_package( + # name = "bison", + # repositories = { "nixpkgs": "@nixpkgs//:default.nix" }, + # ) + # + # some/BUILD.bazel: + # + # genrule( + # ... + # cmd = "$(location @bison//:bin/bison) -other -args", + # tools = [ + # ... + # "@bison//:bin/bison", + # ], + # ) + [ + bash + coreutils + file + findutils + gawk + gnugrep + gnused + gnutar + gzip + python3 + unzip + which + zip + ]; + + defaultShellPath = lib.makeBinPath defaultShellUtils; + + platforms = lib.platforms.linux ++ lib.platforms.darwin; + + system = if stdenv.hostPlatform.isDarwin then "darwin" else "linux"; + + # on aarch64 Darwin, `uname -m` returns "arm64" + arch = with stdenv.hostPlatform; if isDarwin && isAarch64 then "arm64" else parsed.cpu.name; + + bazelRC = writeTextFile { + name = "bazel-rc"; + text = '' + startup --server_javabase=${runJdk} + + # Can't use 'common'; https://github.com/bazelbuild/bazel/issues/3054 + # Most commands inherit from 'build' anyway. + build --distdir=${distDir} + fetch --distdir=${distDir} + query --distdir=${distDir} + + build --extra_toolchains=@bazel_tools//tools/jdk:nonprebuilt_toolchain_definition + build --tool_java_runtime_version=local_jdk_11 + build --java_runtime_version=local_jdk_11 + + # load default location for the system wide configuration + try-import /etc/bazel.bazelrc + ''; + }; + +in +stdenv.mkDerivation rec { + pname = "bazel"; + inherit version; + + meta = with lib; { + homepage = "https://github.com/bazelbuild/bazel/"; + description = "Build tool that builds code quickly and reliably"; + sourceProvenance = with sourceTypes; [ + fromSource + binaryBytecode # source bundles dependencies as jars + ]; + license = licenses.asl20; + maintainers = lib.teams.bazel.members; + inherit platforms; + }; + + inherit src; + inherit sourceRoot; + patches = [ + # Force usage of the _non_ prebuilt java toolchain. + # the prebuilt one does not work in nix world. + ./java_toolchain.patch + + # On Darwin, the last argument to gcc is coming up as an empty string. i.e: '' + # This is breaking the build of any C target. This patch removes the last + # argument if it's found to be an empty string. + ./trim-last-argument-to-gcc-if-empty.patch + + # `java_proto_library` ignores `strict_proto_deps` + # https://github.com/bazelbuild/bazel/pull/16146 + ./strict_proto_deps.patch + + # On Darwin, using clang 6 to build fails because of a linker error (see #105573), + # but using clang 7 fails because libarclite_macosx.a cannot be found when linking + # the xcode_locator tool. + # This patch removes using the -fobjc-arc compiler option and makes the code + # compile without automatic reference counting. Caveat: this leaks memory, but + # we accept this fact because xcode_locator is only a short-lived process used during the build. + (substituteAll { + src = ./no-arc.patch; + multiBinPatch = if stdenv.hostPlatform.system == "aarch64-darwin" then "arm64" else "x86_64"; + }) + + # --experimental_strict_action_env (which may one day become the default + # see bazelbuild/bazel#2574) hardcodes the default + # action environment to a non hermetic value (e.g. "/usr/local/bin"). + # This is non hermetic on non-nixos systems. On NixOS, bazel cannot find the required binaries. + # So we are replacing this bazel paths by defaultShellPath, + # improving hermeticity and making it work in nixos. + (substituteAll { + src = ./strict_action_env.patch; + strictActionEnvPatch = defaultShellPath; + }) + + (substituteAll { + src = ./actions_path.patch; + actionsPathPatch = defaultShellPath; + }) + + # bazel reads its system bazelrc in /etc + # override this path to a builtin one + (substituteAll { + src = ./bazel_rc.patch; + bazelSystemBazelRCPath = bazelRC; + }) + ] ++ lib.optional enableNixHacks ./nix-hacks.patch; + + # Additional tests that check bazel’s functionality. Execute + # + # nix-build . -A bazel_5.tests + # + # in the nixpkgs checkout root to exercise them locally. + passthru.tests = + let + runLocal = + name: attrs: script: + let + attrs' = removeAttrs attrs [ "buildInputs" ]; + buildInputs = attrs.buildInputs or [ ]; + in + runCommandCC name ( + { + inherit buildInputs; + preferLocalBuild = true; + meta.platforms = platforms; + } + // attrs' + ) script; + + # bazel wants to extract itself into $install_dir/install every time it runs, + # so let’s do that only once. + extracted = + bazelPkg: + let + install_dir = + # `install_base` field printed by `bazel info`, minus the hash. + # yes, this path is kinda magic. Sorry. + "$HOME/.cache/bazel/_bazel_nixbld"; + in + runLocal "bazel-extracted-homedir" { passthru.install_dir = install_dir; } '' + export HOME=$(mktemp -d) + touch WORKSPACE # yeah, everything sucks + install_base="$(${bazelPkg}/bin/bazel info | grep install_base)" + # assert it’s actually below install_dir + [[ "$install_base" =~ ${install_dir} ]] \ + || (echo "oh no! $install_base but we are \ + trying to copy ${install_dir} to $out instead!"; exit 1) + cp -R ${install_dir} $out + ''; + + bazelTest = + { + name, + bazelScript, + workspaceDir, + bazelPkg, + buildInputs ? [ ], + }: + let + be = extracted bazelPkg; + in + runLocal name { inherit buildInputs; } ( + # skip extraction caching on Darwin, because nobody knows how Darwin works + (lib.optionalString (!stdenv.hostPlatform.isDarwin) '' + # set up home with pre-unpacked bazel + export HOME=$(mktemp -d) + mkdir -p ${be.install_dir} + cp -R ${be}/install ${be.install_dir} + + # https://stackoverflow.com/questions/47775668/bazel-how-to-skip-corrupt-installation-on-centos6 + # Bazel checks whether the mtime of the install dir files + # is >9 years in the future, otherwise it extracts itself again. + # see PosixFileMTime::IsUntampered in src/main/cpp/util + # What the hell bazel. + ${lr}/bin/lr -0 -U ${be.install_dir} | ${xe}/bin/xe -N0 -0 touch --date="9 years 6 months" {} + '') + + '' + # Note https://github.com/bazelbuild/bazel/issues/5763#issuecomment-456374609 + # about why to create a subdir for the workspace. + cp -r ${workspaceDir} wd && chmod u+w wd && cd wd + + ${bazelScript} + + touch $out + '' + ); + + bazelWithNixHacks = bazel_self.override { enableNixHacks = true; }; + + bazel-examples = fetchFromGitHub { + owner = "bazelbuild"; + repo = "examples"; + rev = "4183fc709c26a00366665e2d60d70521dc0b405d"; + sha256 = "1mm4awx6sa0myiz9j4hwp71rpr7yh8vihf3zm15n2ii6xb82r31k"; + }; + + in + ( + if !stdenv.hostPlatform.isDarwin then + { + # `extracted` doesn’t work on darwin + shebang = callPackage ./shebang-test.nix { + inherit + runLocal + extracted + bazelTest + distDir + ; + bazel = bazel_self; + }; + } + else + { } + ) + // { + bashTools = callPackage ./bash-tools-test.nix { + inherit runLocal bazelTest distDir; + bazel = bazel_self; + }; + cpp = callPackage ./cpp-test.nix { + inherit + runLocal + bazelTest + bazel-examples + distDir + ; + bazel = bazel_self; + }; + java = callPackage ./java-test.nix { + inherit + runLocal + bazelTest + bazel-examples + distDir + ; + bazel = bazel_self; + }; + protobuf = callPackage ./protobuf-test.nix { + inherit runLocal bazelTest distDir; + bazel = bazel_self; + }; + pythonBinPath = callPackage ./python-bin-path-test.nix { + inherit runLocal bazelTest distDir; + bazel = bazel_self; + }; + + bashToolsWithNixHacks = callPackage ./bash-tools-test.nix { + inherit runLocal bazelTest distDir; + bazel = bazelWithNixHacks; + }; + + cppWithNixHacks = callPackage ./cpp-test.nix { + inherit + runLocal + bazelTest + bazel-examples + distDir + ; + bazel = bazelWithNixHacks; + }; + javaWithNixHacks = callPackage ./java-test.nix { + inherit + runLocal + bazelTest + bazel-examples + distDir + ; + bazel = bazelWithNixHacks; + }; + protobufWithNixHacks = callPackage ./protobuf-test.nix { + inherit runLocal bazelTest distDir; + bazel = bazelWithNixHacks; + }; + pythonBinPathWithNixHacks = callPackage ./python-bin-path-test.nix { + inherit runLocal bazelTest distDir; + bazel = bazelWithNixHacks; + }; + + # downstream packages using buildBazelPackage + # fixed-output hashes of the fetch phase need to be spot-checked manually + downstream = recurseIntoAttrs ({ + inherit bazel-watcher; + }); + }; + + src_for_updater = stdenv.mkDerivation rec { + name = "updater-sources"; + inherit src; + nativeBuildInputs = [ unzip ]; + inherit sourceRoot; + installPhase = '' + runHook preInstall + + cp -r . "$out" + + runHook postInstall + ''; + }; + # update the list of workspace dependencies + passthru.updater = writeScript "update-bazel-deps.sh" '' + #!${runtimeShell} + (cd "${src_for_updater}" && + BAZEL_USE_CPP_ONLY_TOOLCHAIN=1 \ + "$BAZEL_SELF"/bin/bazel \ + query 'kind(http_archive, //external:*) + kind(http_file, //external:*) + kind(distdir_tar, //external:*) + kind(git_repository, //external:*)' \ + --loading_phase_threads=1 \ + --output build) \ + | "${python3}"/bin/python3 "${./update-srcDeps.py}" \ + "${builtins.toString ./src-deps.json}" + ''; + + # Necessary for the tests to pass on Darwin with sandbox enabled. + # Bazel starts a local server and needs to bind a local address. + __darwinAllowLocalNetworking = true; + + postPatch = + let + + darwinPatches = '' + bazelLinkFlags () { + eval set -- "$NIX_LDFLAGS" + local flag + for flag in "$@"; do + printf ' -Wl,%s' "$flag" + done + } + + # Disable Bazel's Xcode toolchain detection which would configure compilers + # and linkers from Xcode instead of from PATH + export BAZEL_USE_CPP_ONLY_TOOLCHAIN=1 + + # Explicitly configure gcov since we don't have it on Darwin, so autodetection fails + export GCOV=${coreutils}/bin/false + + # Framework search paths aren't added by bintools hook + # https://github.com/NixOS/nixpkgs/pull/41914 + export NIX_LDFLAGS+=" -F${CoreFoundation}/Library/Frameworks -F${CoreServices}/Library/Frameworks -F${Foundation}/Library/Frameworks" + + # libcxx includes aren't added by libcxx hook + # https://github.com/NixOS/nixpkgs/pull/41589 + export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -isystem ${lib.getDev libcxx}/include/c++/v1" + + # don't use system installed Xcode to run clang, use Nix clang instead + sed -i -E "s;/usr/bin/xcrun (--sdk macosx )?clang;${stdenv.cc}/bin/clang $NIX_CFLAGS_COMPILE $(bazelLinkFlags) -framework CoreFoundation;g" \ + scripts/bootstrap/compile.sh \ + tools/osx/BUILD + + substituteInPlace scripts/bootstrap/compile.sh --replace ' -mmacosx-version-min=10.9' "" + + # nixpkgs's libSystem cannot use pthread headers directly, must import GCD headers instead + sed -i -e "/#include /i #include " src/main/cpp/blaze_util_darwin.cc + + # clang installed from Xcode has a compatibility wrapper that forwards + # invocations of gcc to clang, but vanilla clang doesn't + sed -i -e 's;_find_generic(repository_ctx, "gcc", "CC", overriden_tools);_find_generic(repository_ctx, "clang", "CC", overriden_tools);g' tools/cpp/unix_cc_configure.bzl + + sed -i -e 's;"/usr/bin/libtool";_find_generic(repository_ctx, "libtool", "LIBTOOL", overriden_tools);g' tools/cpp/unix_cc_configure.bzl + wrappers=( tools/cpp/osx_cc_wrapper.sh.tpl ) + for wrapper in "''${wrappers[@]}"; do + sed -i -e "s,/usr/bin/gcc,${stdenv.cc}/bin/clang,g" $wrapper + sed -i -e "s,/usr/bin/install_name_tool,${cctools}/bin/install_name_tool,g" $wrapper + done + ''; + + genericPatches = '' + # md5sum is part of coreutils + sed -i 's|/sbin/md5|md5sum|g' \ + src/BUILD third_party/ijar/test/testenv.sh tools/objc/libtool.sh + + # replace initial value of pythonShebang variable in BazelPythonSemantics.java + substituteInPlace src/main/java/com/google/devtools/build/lib/bazel/rules/python/BazelPythonSemantics.java \ + --replace '"#!/usr/bin/env " + pythonExecutableName' "\"#!${python3}/bin/python\"" + + substituteInPlace src/main/java/com/google/devtools/build/lib/starlarkbuildapi/python/PyRuntimeInfoApi.java \ + --replace '"#!/usr/bin/env python3"' "\"#!${python3}/bin/python\"" + + # substituteInPlace is rather slow, so prefilter the files with grep + grep -rlZ /bin/ src/main/java/com/google/devtools | while IFS="" read -r -d "" path; do + # If you add more replacements here, you must change the grep above! + # Only files containing /bin are taken into account. + substituteInPlace "$path" \ + --replace /bin/bash ${bash}/bin/bash \ + --replace "/usr/bin/env bash" ${bash}/bin/bash \ + --replace "/usr/bin/env python" ${python3}/bin/python \ + --replace /usr/bin/env ${coreutils}/bin/env \ + --replace /bin/true ${coreutils}/bin/true + done + + grep -rlZ /bin/ tools/python | while IFS="" read -r -d "" path; do + substituteInPlace "$path" \ + --replace "/usr/bin/env python2" ${python3.interpreter} \ + --replace "/usr/bin/env python3" ${python3}/bin/python \ + --replace /usr/bin/env ${coreutils}/bin/env + done + + # bazel test runner include references to /bin/bash + substituteInPlace tools/build_rules/test_rules.bzl \ + --replace /bin/bash ${bash}/bin/bash + + for i in $(find tools/cpp/ -type f) + do + substituteInPlace $i \ + --replace /bin/bash ${bash}/bin/bash + done + + # Fixup scripts that generate scripts. Not fixed up by patchShebangs below. + substituteInPlace scripts/bootstrap/compile.sh \ + --replace /bin/bash ${bash}/bin/bash + + # add nix environment vars to .bazelrc + cat >> .bazelrc <> third_party/grpc/bazel_1.41.0.patch <> runfiles.bash.tmp + cat tools/bash/runfiles/runfiles.bash >> runfiles.bash.tmp + mv runfiles.bash.tmp tools/bash/runfiles/runfiles.bash + + patchShebangs . + ''; + in + lib.optionalString stdenv.hostPlatform.isDarwin darwinPatches + genericPatches; + + buildInputs = [ buildJdk ] ++ defaultShellUtils; + + # when a command can’t be found in a bazel build, you might also + # need to add it to `defaultShellPath`. + nativeBuildInputs = + [ + installShellFiles + makeWrapper + python3 + unzip + which + zip + python3.pkgs.absl-py # Needed to build fish completion + ] + ++ lib.optionals (stdenv.isDarwin) [ + cctools + libcxx + CoreFoundation + CoreServices + Foundation + ]; + + # Bazel makes extensive use of symlinks in the WORKSPACE. + # This causes problems with infinite symlinks if the build output is in the same location as the + # Bazel WORKSPACE. This is why before executing the build, the source code is moved into a + # subdirectory. + # Failing to do this causes "infinite symlink expansion detected" + preBuildPhases = [ "preBuildPhase" ]; + preBuildPhase = '' + mkdir bazel_src + shopt -s dotglob extglob + mv !(bazel_src) bazel_src + ''; + buildPhase = '' + runHook preBuild + + # Increasing memory during compilation might be necessary. + # export BAZEL_JAVAC_OPTS="-J-Xmx2g -J-Xms200m" + + # If EMBED_LABEL isn't set, it'd be auto-detected from CHANGELOG.md + # and `git rev-parse --short HEAD` which would result in + # "3.7.0- (@non-git)" due to non-git build and incomplete changelog. + # Actual bazel releases use scripts/release/common.sh which is based + # on branch/tag information which we don't have with tarball releases. + # Note that .bazelversion is always correct and is based on bazel-* + # executable name, version checks should work fine + export EMBED_LABEL="${version}- (@non-git)" + ${bash}/bin/bash ./bazel_src/compile.sh + ./bazel_src/scripts/generate_bash_completion.sh \ + --bazel=./bazel_src/output/bazel \ + --output=./bazel_src/output/bazel-complete.bash \ + --prepend=./bazel_src/scripts/bazel-complete-header.bash \ + --prepend=./bazel_src/scripts/bazel-complete-template.bash + ${python3}/bin/python3 ./bazel_src/scripts/generate_fish_completion.py \ + --bazel=./bazel_src/output/bazel \ + --output=./bazel_src/output/bazel-complete.fish + + # need to change directory for bazel to find the workspace + cd ./bazel_src + # build execlog tooling + export HOME=$(mktemp -d) + ./output/bazel build src/tools/execlog:parser_deploy.jar + cd - + + runHook postBuild + ''; + + installPhase = '' + runHook preInstall + + mkdir -p $out/bin + + # official wrapper scripts that searches for $WORKSPACE_ROOT/tools/bazel + # if it can’t find something in tools, it calls $out/bin/bazel-{version}-{os_arch} + # The binary _must_ exist with this naming if your project contains a .bazelversion + # file. + cp ./bazel_src/scripts/packages/bazel.sh $out/bin/bazel + wrapProgram $out/bin/bazel $wrapperfile --suffix PATH : ${defaultShellPath} + mv ./bazel_src/output/bazel $out/bin/bazel-${version}-${system}-${arch} + + mkdir $out/share + cp ./bazel_src/bazel-bin/src/tools/execlog/parser_deploy.jar $out/share/parser_deploy.jar + cat < $out/bin/bazel-execlog + #!${runtimeShell} -e + ${runJdk}/bin/java -jar $out/share/parser_deploy.jar \$@ + EOF + chmod +x $out/bin/bazel-execlog + + # shell completion files + installShellCompletion --bash \ + --name bazel.bash \ + ./bazel_src/output/bazel-complete.bash + installShellCompletion --zsh \ + --name _bazel \ + ./bazel_src/scripts/zsh_completion/_bazel + installShellCompletion --fish \ + --name bazel.fish \ + ./bazel_src/output/bazel-complete.fish + ''; + + # Install check fails on `aarch64-darwin` + # https://github.com/NixOS/nixpkgs/issues/145587 + doInstallCheck = stdenv.hostPlatform.system != "aarch64-darwin"; + installCheckPhase = '' + export TEST_TMPDIR=$(pwd) + + hello_test () { + $out/bin/bazel test \ + --test_output=errors \ + examples/cpp:hello-success_test \ + examples/java-native/src/test/java/com/example/myproject:hello + } + + cd ./bazel_src + + # test whether $WORKSPACE_ROOT/tools/bazel works + + mkdir -p tools + cat > tools/bazel <<"EOF" + #!${runtimeShell} -e + exit 1 + EOF + chmod +x tools/bazel + + # first call should fail if tools/bazel is used + ! hello_test + + cat > tools/bazel <<"EOF" + #!${runtimeShell} -e + exec "$BAZEL_REAL" "$@" + EOF + + # second call succeeds because it defers to $out/bin/bazel-{version}-{os_arch} + hello_test + + runHook postInstall + ''; + + # Save paths to hardcoded dependencies so Nix can detect them. + # This is needed because the templates get tar’d up into a .jar. + postFixup = + '' + mkdir -p $out/nix-support + echo "${defaultShellPath}" >> $out/nix-support/depends + # The string literal specifying the path to the bazel-rc file is sometimes + # stored non-contiguously in the binary due to gcc optimisations, which leads + # Nix to miss the hash when scanning for dependencies + echo "${bazelRC}" >> $out/nix-support/depends + '' + + lib.optionalString stdenv.isDarwin '' + echo "${cctools}" >> $out/nix-support/depends + ''; + + dontStrip = true; + dontPatchELF = true; +} diff --git a/pkgs/development/python-modules/tensorflow/bazel_6_1_0/java-test.nix b/pkgs/development/python-modules/tensorflow/bazel_6_1_0/java-test.nix new file mode 100644 index 0000000000000..b32249c439ea3 --- /dev/null +++ b/pkgs/development/python-modules/tensorflow/bazel_6_1_0/java-test.nix @@ -0,0 +1,71 @@ +{ + bazel, + bazelTest, + bazel-examples, + stdenv, + darwin, + lib, + openjdk8, + jdk11_headless, + runLocal, + runtimeShell, + writeScript, + writeText, + distDir, +}: + +let + + toolsBazel = writeScript "bazel" '' + #! ${runtimeShell} + + export CXX='${stdenv.cc}/bin/clang++' + export LD='${darwin.cctools}/bin/ld' + export LIBTOOL='${darwin.cctools}/bin/libtool' + export CC='${stdenv.cc}/bin/clang' + + # XXX: hack for macosX, this flags disable bazel usage of xcode + # See: https://github.com/bazelbuild/bazel/issues/4231 + export BAZEL_USE_CPP_ONLY_TOOLCHAIN=1 + + exec "$BAZEL_REAL" "$@" + ''; + + workspaceDir = runLocal "our_workspace" { } ( + '' + cp -r ${bazel-examples}/java-tutorial $out + find $out -type d -exec chmod 755 {} \; + '' + + (lib.optionalString stdenv.isDarwin '' + mkdir $out/tools + cp ${toolsBazel} $out/tools/bazel + '') + ); + + testBazel = bazelTest { + name = "bazel-test-java"; + inherit workspaceDir; + bazelPkg = bazel; + buildInputs = [ + (if lib.strings.versionOlder bazel.version "5.0.0" then openjdk8 else jdk11_headless) + ]; + bazelScript = + '' + ${bazel}/bin/bazel \ + run \ + --distdir=${distDir} \ + --verbose_failures \ + --curses=no \ + --sandbox_debug \ + --strict_java_deps=off \ + //:ProjectRunner \ + '' + + lib.optionalString (lib.strings.versionOlder bazel.version "5.0.0") '' + --host_javabase='@local_jdk//:jdk' \ + --java_toolchain='@bazel_tools//tools/jdk:toolchain_hostjdk8' \ + --javabase='@local_jdk//:jdk' \ + ''; + }; + +in +testBazel diff --git a/pkgs/development/python-modules/tensorflow/bazel_6_1_0/java_toolchain.patch b/pkgs/development/python-modules/tensorflow/bazel_6_1_0/java_toolchain.patch new file mode 100644 index 0000000000000..219f4e0b7035b --- /dev/null +++ b/pkgs/development/python-modules/tensorflow/bazel_6_1_0/java_toolchain.patch @@ -0,0 +1,33 @@ +diff --git a/tools/jdk/BUILD.tools b/tools/jdk/BUILD.tools +--- a/tools/jdk/BUILD.tools ++++ b/tools/jdk/BUILD.tools +@@ -3,6 +3,7 @@ load( + "DEFAULT_TOOLCHAIN_CONFIGURATION", + "PREBUILT_TOOLCHAIN_CONFIGURATION", + "VANILLA_TOOLCHAIN_CONFIGURATION", ++ "NONPREBUILT_TOOLCHAIN_CONFIGURATION", + "bootclasspath", + "default_java_toolchain", + "java_runtime_files", +@@ -321,6 +322,21 @@ alias( + actual = ":toolchain", + ) + ++default_java_toolchain( ++ name = "nonprebuilt_toolchain", ++ configuration = NONPREBUILT_TOOLCHAIN_CONFIGURATION, ++ java_runtime = "@local_jdk//:jdk", ++) ++ ++default_java_toolchain( ++ name = "nonprebuilt_toolchain_java11", ++ configuration = NONPREBUILT_TOOLCHAIN_CONFIGURATION, ++ java_runtime = "@local_jdk//:jdk", ++ source_version = "11", ++ target_version = "11", ++) ++ ++ + RELEASES = (8, 9, 10, 11) + + [ diff --git a/pkgs/development/python-modules/tensorflow/bazel_6_1_0/nix-hacks.patch b/pkgs/development/python-modules/tensorflow/bazel_6_1_0/nix-hacks.patch new file mode 100644 index 0000000000000..acae500d522c4 --- /dev/null +++ b/pkgs/development/python-modules/tensorflow/bazel_6_1_0/nix-hacks.patch @@ -0,0 +1,40 @@ +diff --git a/src/main/java/com/google/devtools/build/lib/rules/repository/RepositoryDelegatorFunction.java b/src/main/java/com/google/devtools/build/lib/rules/repository/RepositoryDelegatorFunction.java +index 25fbdcac9d..49616d37df 100644 +--- a/src/main/java/com/google/devtools/build/lib/rules/repository/RepositoryDelegatorFunction.java ++++ b/src/main/java/com/google/devtools/build/lib/rules/repository/RepositoryDelegatorFunction.java +@@ -568,22 +568,7 @@ public final class RepositoryDelegatorFunction implements SkyFunction { + String content; + try { + content = FileSystemUtils.readContent(markerPath, StandardCharsets.UTF_8); +- String markerRuleKey = readMarkerFile(content, markerData); +- boolean verified = false; +- if (Preconditions.checkNotNull(ruleKey).equals(markerRuleKey)) { +- verified = handler.verifyMarkerData(rule, markerData, env); +- if (env.valuesMissing()) { +- return null; +- } +- } +- +- if (verified) { +- return new Fingerprint().addString(content).digestAndReset(); +- } else { +- // So that we are in a consistent state if something happens while fetching the repository +- markerPath.delete(); +- return null; +- } ++ return new Fingerprint().addString(content).digestAndReset(); + } catch (IOException e) { + throw new RepositoryFunctionException(e, Transience.TRANSIENT); + } +diff --git a/src/main/java/com/google/devtools/build/lib/shell/JavaSubprocessFactory.java b/src/main/java/com/google/devtools/build/lib/shell/JavaSubprocessFactory.java +index 1a45b8a3a2..a6b73213f6 100644 +--- a/src/main/java/com/google/devtools/build/lib/shell/JavaSubprocessFactory.java ++++ b/src/main/java/com/google/devtools/build/lib/shell/JavaSubprocessFactory.java +@@ -152,7 +152,6 @@ public class JavaSubprocessFactory implements SubprocessFactory { + ProcessBuilder builder = new ProcessBuilder(); + builder.command(params.getArgv()); + if (params.getEnv() != null) { +- builder.environment().clear(); + builder.environment().putAll(params.getEnv()); + } + diff --git a/pkgs/development/python-modules/tensorflow/bazel_6_1_0/no-arc.patch b/pkgs/development/python-modules/tensorflow/bazel_6_1_0/no-arc.patch new file mode 100644 index 0000000000000..e7a4498839dc7 --- /dev/null +++ b/pkgs/development/python-modules/tensorflow/bazel_6_1_0/no-arc.patch @@ -0,0 +1,42 @@ +diff --git a/tools/osx/BUILD b/tools/osx/BUILD +index 990afe3e8c..cd5b7b1b7a 100644 +--- a/tools/osx/BUILD ++++ b/tools/osx/BUILD +@@ -28,8 +28,8 @@ exports_files([ + ]) + + DARWIN_XCODE_LOCATOR_COMPILE_COMMAND = """ +- /usr/bin/xcrun --sdk macosx clang -mmacosx-version-min=10.13 -fobjc-arc -framework CoreServices \ +- -framework Foundation -arch arm64 -arch x86_64 -Wl,-no_adhoc_codesign -Wl,-no_uuid -o $@ $< && \ ++ /usr/bin/xcrun --sdk macosx clang -mmacosx-version-min=10.13 -framework CoreServices \ ++ -framework Foundation -arch @multiBinPatch@ -Wl,-no_uuid -o $@ $< && \ + env -i codesign --identifier $@ --force --sign - $@ + """ + +diff --git a/tools/osx/xcode_configure.bzl b/tools/osx/xcode_configure.bzl +index 2b819f07ec..a98ce37673 100644 +--- a/tools/osx/xcode_configure.bzl ++++ b/tools/osx/xcode_configure.bzl +@@ -127,7 +127,6 @@ def run_xcode_locator(repository_ctx, xcode_locator_src_label): + "macosx", + "clang", + "-mmacosx-version-min=10.13", +- "-fobjc-arc", + "-framework", + "CoreServices", + "-framework", +diff --git a/tools/osx/xcode_locator.m b/tools/osx/xcode_locator.m +index ed2ef87453..e0ce6dbdd1 100644 +--- a/tools/osx/xcode_locator.m ++++ b/tools/osx/xcode_locator.m +@@ -21,10 +21,6 @@ + // 6,6.4,6.4.1 = 6.4.1 + // 6.3,6.3.0 = 6.3 + +-#if !defined(__has_feature) || !__has_feature(objc_arc) +-#error "This file requires ARC support." +-#endif +- + #import + #import + diff --git a/pkgs/development/python-modules/tensorflow/bazel_6_1_0/protobuf-test.nix b/pkgs/development/python-modules/tensorflow/bazel_6_1_0/protobuf-test.nix new file mode 100644 index 0000000000000..a29266452e153 --- /dev/null +++ b/pkgs/development/python-modules/tensorflow/bazel_6_1_0/protobuf-test.nix @@ -0,0 +1,195 @@ +{ + bazel, + bazelTest, + fetchFromGitHub, + fetchurl, + stdenv, + darwin, + lib, + openjdk8, + jdk11_headless, + runLocal, + runtimeShell, + writeScript, + writeText, + distDir, +}: + +let + com_google_protobuf = fetchFromGitHub { + owner = "protocolbuffers"; + repo = "protobuf"; + rev = "v3.13.0"; + sha256 = "1nqsvi2yfr93kiwlinz8z7c68ilg1j75b2vcpzxzvripxx5h6xhd"; + }; + + bazel_skylib = fetchFromGitHub { + owner = "bazelbuild"; + repo = "bazel-skylib"; + rev = "2ec2e6d715e993d96ad6222770805b5bd25399ae"; + sha256 = "1z2r2vx6kj102zvp3j032djyv99ski1x1sl4i3p6mswnzrzna86s"; + }; + + rules_python = fetchFromGitHub { + owner = "bazelbuild"; + repo = "rules_python"; + rev = "c8c79aae9aa1b61d199ad03d5fe06338febd0774"; + sha256 = "1zn58wv5wcylpi0xj7riw34i1jjpqahanxx8y9srwrv0v93b6pqz"; + }; + + rules_proto = fetchFromGitHub { + owner = "bazelbuild"; + repo = "rules_proto"; + rev = "a0761ed101b939e19d83b2da5f59034bffc19c12"; + sha256 = "09lqfj5fxm1fywxr5w8pnpqd859gb6751jka9fhxjxjzs33glhqf"; + }; + + net_zlib = fetchurl rec { + url = "https://zlib.net/zlib-1.2.11.tar.gz"; + sha256 = "c3e5e9fdd5004dcb542feda5ee4f0ff0744628baf8ed2dd5d66f8ca1197cb1a1"; + + passthru.sha256 = sha256; + }; + + WORKSPACE = writeText "WORKSPACE" '' + workspace(name = "our_workspace") + + load("//:proto-support.bzl", "protobuf_deps") + protobuf_deps() + load("@rules_proto//proto:repositories.bzl", "rules_proto_toolchains") + rules_proto_toolchains() + ''; + + protoSupport = writeText "proto-support.bzl" '' + """Load dependencies needed to compile the protobuf library as a 3rd-party consumer.""" + + load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") + + def protobuf_deps(): + """Loads common dependencies needed to compile the protobuf library.""" + + if "zlib" not in native.existing_rules(): + # proto_library, cc_proto_library, and java_proto_library rules implicitly + # depend on @com_google_protobuf for protoc and proto runtimes. + # This statement defines the @com_google_protobuf repo. + native.local_repository( + name = "com_google_protobuf", + path = "${com_google_protobuf}", + ) + native.local_repository( + name = "bazel_skylib", + path = "${bazel_skylib}", + ) + native.local_repository( + name = "rules_proto", + path = "${rules_proto}", + ) + native.local_repository( + name = "rules_python", + path = "${rules_python}", + ) + + http_archive( + name = "zlib", + build_file = "@com_google_protobuf//:third_party/zlib.BUILD", + sha256 = "${net_zlib.sha256}", + strip_prefix = "zlib-1.2.11", + urls = ["file://${net_zlib}"], + ) + ''; + + personProto = writeText "person.proto" '' + syntax = "proto3"; + + package person; + + message Person { + string name = 1; + int32 id = 2; + string email = 3; + } + ''; + + personBUILD = writeText "BUILD" '' + load("@rules_proto//proto:defs.bzl", "proto_library") + + proto_library( + name = "person_proto", + srcs = ["person.proto"], + visibility = ["//visibility:public"], + ) + + java_proto_library( + name = "person_java_proto", + deps = [":person_proto"], + ) + + cc_proto_library( + name = "person_cc_proto", + deps = [":person_proto"], + ) + ''; + + toolsBazel = writeScript "bazel" '' + #! ${runtimeShell} + + export CXX='${stdenv.cc}/bin/clang++' + export LD='${darwin.cctools}/bin/ld' + export LIBTOOL='${darwin.cctools}/bin/libtool' + export CC='${stdenv.cc}/bin/clang' + + # XXX: hack for macosX, this flags disable bazel usage of xcode + # See: https://github.com/bazelbuild/bazel/issues/4231 + export BAZEL_USE_CPP_ONLY_TOOLCHAIN=1 + + exec "$BAZEL_REAL" "$@" + ''; + + workspaceDir = runLocal "our_workspace" { } ( + '' + mkdir $out + cp ${WORKSPACE} $out/WORKSPACE + touch $out/BUILD.bazel + cp ${protoSupport} $out/proto-support.bzl + mkdir $out/person + cp ${personProto} $out/person/person.proto + cp ${personBUILD} $out/person/BUILD.bazel + '' + + (lib.optionalString stdenv.isDarwin '' + mkdir $out/tools + cp ${toolsBazel} $out/tools/bazel + '') + ); + + testBazel = bazelTest { + name = "bazel-test-protocol-buffers"; + inherit workspaceDir; + bazelPkg = bazel; + buildInputs = [ + (if lib.strings.versionOlder bazel.version "5.0.0" then openjdk8 else jdk11_headless) + ]; + bazelScript = + '' + ${bazel}/bin/bazel \ + build \ + --distdir=${distDir} \ + --verbose_failures \ + --curses=no \ + --sandbox_debug \ + --strict_java_deps=off \ + --strict_proto_deps=off \ + //... \ + '' + + lib.optionalString (lib.strings.versionOlder bazel.version "5.0.0") '' + --host_javabase='@local_jdk//:jdk' \ + --java_toolchain='@bazel_tools//tools/jdk:toolchain_hostjdk8' \ + --javabase='@local_jdk//:jdk' \ + '' + + lib.optionalString (stdenv.isDarwin) '' + --cxxopt=-x --cxxopt=c++ --host_cxxopt=-x --host_cxxopt=c++ \ + --linkopt=-stdlib=libc++ --host_linkopt=-stdlib=libc++ \ + ''; + }; + +in +testBazel diff --git a/pkgs/development/python-modules/tensorflow/bazel_6_1_0/python-bin-path-test.nix b/pkgs/development/python-modules/tensorflow/bazel_6_1_0/python-bin-path-test.nix new file mode 100644 index 0000000000000..36e886bdb1798 --- /dev/null +++ b/pkgs/development/python-modules/tensorflow/bazel_6_1_0/python-bin-path-test.nix @@ -0,0 +1,86 @@ +{ + bazel, + bazelTest, + stdenv, + darwin, + lib, + runLocal, + runtimeShell, + writeScript, + writeText, + distDir, +}: + +let + toolsBazel = writeScript "bazel" '' + #! ${runtimeShell} + + export CXX='${stdenv.cc}/bin/clang++' + export LD='${darwin.cctools}/bin/ld' + export LIBTOOL='${darwin.cctools}/bin/libtool' + export CC='${stdenv.cc}/bin/clang' + + # XXX: hack for macosX, this flags disable bazel usage of xcode + # See: https://github.com/bazelbuild/bazel/issues/4231 + export BAZEL_USE_CPP_ONLY_TOOLCHAIN=1 + + exec "$BAZEL_REAL" "$@" + ''; + + WORKSPACE = writeText "WORKSPACE" '' + workspace(name = "our_workspace") + ''; + + pythonLib = writeText "lib.py" '' + def foo(): + return 43 + ''; + + pythonBin = writeText "bin.py" '' + from lib import foo + + assert foo() == 43 + ''; + + pythonBUILD = writeText "BUILD" '' + py_library( + name = "lib", + srcs = [ "lib.py" ], + ) + + py_binary( + name = "bin", + srcs = [ "bin.py" ], + deps = [ ":lib" ], + ) + ''; + + workspaceDir = runLocal "our_workspace" { } ( + '' + mkdir $out + cp ${WORKSPACE} $out/WORKSPACE + mkdir $out/python + cp ${pythonLib} $out/python/lib.py + cp ${pythonBin} $out/python/bin.py + cp ${pythonBUILD} $out/python/BUILD.bazel + '' + + (lib.optionalString stdenv.isDarwin '' + mkdir $out/tools + cp ${toolsBazel} $out/tools/bazel + '') + ); + + testBazel = bazelTest { + name = "bazel-test-builtin-rules"; + inherit workspaceDir; + bazelPkg = bazel; + bazelScript = '' + ${bazel}/bin/bazel \ + run \ + --distdir=${distDir} \ + //python:bin + ''; + }; + +in +testBazel diff --git a/pkgs/development/python-modules/tensorflow/bazel_6_1_0/shebang-test.nix b/pkgs/development/python-modules/tensorflow/bazel_6_1_0/shebang-test.nix new file mode 100644 index 0000000000000..28637b46c5987 --- /dev/null +++ b/pkgs/development/python-modules/tensorflow/bazel_6_1_0/shebang-test.nix @@ -0,0 +1,50 @@ +{ + bazel, + bazelTest, + distDir, + extracted, + runLocal, + unzip, +}: + +# Tests that all shebangs are patched appropriately. +# #!/usr/bin/... should be replaced by Nix store references. +# #!.../bin/env python should be replaced by Nix store reference to the python interpreter. + +let + + workspaceDir = runLocal "our_workspace" { } "mkdir $out"; + + testBazel = bazelTest { + name = "bazel-test-shebangs"; + inherit workspaceDir; + bazelPkg = bazel; + bazelScript = '' + set -ueo pipefail + FAIL= + check_shebangs() { + local dir="$1" + { grep -Re '#!/usr/bin' $dir && FAIL=1; } || true + { grep -Re '#![^[:space:]]*/bin/env' $dir && FAIL=1; } || true + } + BAZEL_EXTRACTED=${extracted bazel}/install + check_shebangs $BAZEL_EXTRACTED + while IFS= read -r -d "" zip; do + unzipped="./$zip/UNPACKED" + mkdir -p "$unzipped" + unzip -qq $zip -d "$unzipped" + check_shebangs "$unzipped" + rm -rf unzipped + done < <(find $BAZEL_EXTRACTED -type f -name '*.zip' -or -name '*.jar' -print0) + if [[ $FAIL = 1 ]]; then + echo "Found files in the bazel distribution with illegal shebangs." >&2 + echo "Replace those by explicit Nix store paths." >&2 + echo "Python scripts should not use \`bin/env python' but the Python interpreter's store path." >&2 + exit 1 + fi + ''; + buildInputs = [ unzip ]; + }; + +in +testBazel diff --git a/pkgs/development/python-modules/tensorflow/bazel_6_1_0/src-deps.json b/pkgs/development/python-modules/tensorflow/bazel_6_1_0/src-deps.json new file mode 100644 index 0000000000000..59153bd99af1a --- /dev/null +++ b/pkgs/development/python-modules/tensorflow/bazel_6_1_0/src-deps.json @@ -0,0 +1,2193 @@ +{ + "1.25.0.zip": { + "name": "1.25.0.zip", + "sha256": "c78be58f5e0a29a04686b628cf54faaee0094322ae0ac99da5a8a8afca59a647", + "urls": [ + "https://mirror.bazel.build/github.com/bazelbuild/rules_sass/archive/1.25.0.zip", + "https://github.com/bazelbuild/rules_sass/archive/1.25.0.zip" + ] + }, + "1ef781ced3b1443dca3ed05dec1989eca1a4e1cd.tar.gz": { + "name": "1ef781ced3b1443dca3ed05dec1989eca1a4e1cd.tar.gz", + "sha256": "5a725b777976b77aa122b707d1b6f0f39b6020f66cd427bb111a585599c857b1", + "urls": [ + "https://mirror.bazel.build/github.com/bazelbuild/stardoc/archive/1ef781ced3b1443dca3ed05dec1989eca1a4e1cd.tar.gz", + "https://github.com/bazelbuild/stardoc/archive/1ef781ced3b1443dca3ed05dec1989eca1a4e1cd.tar.gz" + ] + }, + "20211102.0.tar.gz": { + "name": "20211102.0.tar.gz", + "sha256": "dcf71b9cba8dc0ca9940c4b316a0c796be8fab42b070bb6b7cab62b48f0e66c4", + "urls": [ + "https://mirror.bazel.build/github.com/abseil/abseil-cpp/archive/refs/tags/20211102.0.tar.gz", + "https://github.com/abseil/abseil-cpp/archive/refs/tags/20211102.0.tar.gz" + ] + }, + "2f9af297c84c55c8b871ba4495e01ade42476c92.tar.gz": { + "name": "2f9af297c84c55c8b871ba4495e01ade42476c92.tar.gz", + "sha256": "5bb6b0253ccf64b53d6c7249625a7e3f6c3bc6402abd52d3778bfa48258703a0", + "urls": [ + "https://mirror.bazel.build/github.com/googleapis/googleapis/archive/2f9af297c84c55c8b871ba4495e01ade42476c92.tar.gz", + "https://github.com/googleapis/googleapis/archive/2f9af297c84c55c8b871ba4495e01ade42476c92.tar.gz" + ] + }, + "4694024279bdac52b77e22dc87808bd0fd732b69.tar.gz": { + "name": "4694024279bdac52b77e22dc87808bd0fd732b69.tar.gz", + "sha256": "1e490b98005664d149b379a9529a6aa05932b8a11b76b4cd86f3d22d76346f47", + "urls": [ + "https://mirror.bazel.build/github.com/envoyproxy/protoc-gen-validate/archive/4694024279bdac52b77e22dc87808bd0fd732b69.tar.gz", + "https://github.com/envoyproxy/protoc-gen-validate/archive/4694024279bdac52b77e22dc87808bd0fd732b69.tar.gz" + ] + }, + "5847d6a06302136d95a14b4cbd4b55a9c9f1436e.zip": { + "name": "5847d6a06302136d95a14b4cbd4b55a9c9f1436e.zip", + "sha256": "299452e6f4a4981b2e6d22357f7332713382a63e4c137f5fd6b89579f6d610cb", + "urls": [ + "https://mirror.bazel.build/github.com/google/desugar_jdk_libs/archive/5847d6a06302136d95a14b4cbd4b55a9c9f1436e.zip", + "https://github.com/google/desugar_jdk_libs/archive/5847d6a06302136d95a14b4cbd4b55a9c9f1436e.zip" + ] + }, + "6654436a307a5a686b008c1d4c93b0085da6e6d8.tar.gz": { + "name": "6654436a307a5a686b008c1d4c93b0085da6e6d8.tar.gz", + "sha256": "ec76c5e79db59762776bece58b69507d095856c37b81fd35bfb0958e74b61d93", + "urls": [ + "https://mirror.bazel.build/github.com/c-ares/c-ares/archive/6654436a307a5a686b008c1d4c93b0085da6e6d8.tar.gz", + "https://github.com/c-ares/c-ares/archive/6654436a307a5a686b008c1d4c93b0085da6e6d8.tar.gz" + ] + }, + "7cf3cefd652008d0a64a419c34c13bdca6c8f178.zip": { + "name": "7cf3cefd652008d0a64a419c34c13bdca6c8f178.zip", + "sha256": "bc81f1ba47ef5cc68ad32225c3d0e70b8c6f6077663835438da8d5733f917598", + "urls": [ + "https://mirror.bazel.build/github.com/bazelbuild/rules_java/archive/7cf3cefd652008d0a64a419c34c13bdca6c8f178.zip", + "https://github.com/bazelbuild/rules_java/archive/7cf3cefd652008d0a64a419c34c13bdca6c8f178.zip" + ] + }, + "7e4afce6fe62dbff0a4a03450143146f9f2d7488.tar.gz": { + "name": "7e4afce6fe62dbff0a4a03450143146f9f2d7488.tar.gz", + "sha256": "8e7d59a5b12b233be5652e3d29f42fba01c7cbab09f6b3a8d0a57ed6d1e9a0da", + "urls": [ + "https://mirror.bazel.build/github.com/bazelbuild/rules_proto/archive/7e4afce6fe62dbff0a4a03450143146f9f2d7488.tar.gz", + "https://github.com/bazelbuild/rules_proto/archive/7e4afce6fe62dbff0a4a03450143146f9f2d7488.tar.gz" + ] + }, + "a5477045acaa34586420942098f5fecd3570f577.tar.gz": { + "name": "a5477045acaa34586420942098f5fecd3570f577.tar.gz", + "sha256": "cf7f71eaff90b24c1a28b49645a9ff03a9a6c1e7134291ce70901cb63e7364b5", + "urls": [ + "https://mirror.bazel.build/github.com/protocolbuffers/upb/archive/a5477045acaa34586420942098f5fecd3570f577.tar.gz", + "https://github.com/protocolbuffers/upb/archive/a5477045acaa34586420942098f5fecd3570f577.tar.gz" + ] + }, + "aecba11114cf1fac5497aeb844b6966106de3eb6.tar.gz": { + "name": "aecba11114cf1fac5497aeb844b6966106de3eb6.tar.gz", + "sha256": "9f385e146410a8150b6f4cb1a57eab7ec806ced48d427554b1e754877ff26c3e", + "urls": [ + "https://mirror.bazel.build/github.com/google/re2/archive/aecba11114cf1fac5497aeb844b6966106de3eb6.tar.gz", + "https://github.com/google/re2/archive/aecba11114cf1fac5497aeb844b6966106de3eb6.tar.gz" + ] + }, + "android_tools": { + "generator_function": "maybe", + "generator_name": "android_tools", + "name": "android_tools", + "sha256": "1afa4b7e13c82523c8b69e87f8d598c891ec7e2baa41d9e24e08becd723edb4d", + "url": "https://mirror.bazel.build/bazel_android_tools/android_tools_pkg-0.27.0.tar.gz" + }, + "android_tools_for_testing": { + "name": "android_tools_for_testing", + "patch_cmds": [ + "test -f BUILD && chmod u+w BUILD || true", + "echo >> BUILD", + "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD" + ], + "patch_cmds_win": [ + "Add-Content -Path BUILD -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force" + ], + "sha256": "1afa4b7e13c82523c8b69e87f8d598c891ec7e2baa41d9e24e08becd723edb4d", + "url": "https://mirror.bazel.build/bazel_android_tools/android_tools_pkg-0.27.0.tar.gz" + }, + "android_tools_pkg-0.27.0.tar.gz": { + "name": "android_tools_pkg-0.27.0.tar.gz", + "sha256": "1afa4b7e13c82523c8b69e87f8d598c891ec7e2baa41d9e24e08becd723edb4d", + "urls": [ + "https://mirror.bazel.build/bazel_android_tools/android_tools_pkg-0.27.0.tar.gz" + ] + }, + "bazel-gazelle-v0.24.0.tar.gz": { + "name": "bazel-gazelle-v0.24.0.tar.gz", + "sha256": "de69a09dc70417580aabf20a28619bb3ef60d038470c7cf8442fafcf627c21cb", + "urls": [ + "https://mirror.bazel.build/github.com/bazelbuild/bazel-gazelle/releases/download/v0.24.0/bazel-gazelle-v0.24.0.tar.gz", + "https://github.com/bazelbuild/bazel-gazelle/releases/download/v0.24.0/bazel-gazelle-v0.24.0.tar.gz" + ] + }, + "bazel-skylib-1.0.3.tar.gz": { + "name": "bazel-skylib-1.0.3.tar.gz", + "sha256": "1c531376ac7e5a180e0237938a2536de0c54d93f5c278634818e0efc952dd56c", + "urls": [ + "https://mirror.bazel.build/github.com/bazelbuild/bazel-skylib/releases/download/1.0.3/bazel-skylib-1.0.3.tar.gz", + "https://github.com/bazelbuild/bazel-skylib/releases/download/1.0.3/bazel-skylib-1.0.3.tar.gz" + ] + }, + "bazel_compdb": { + "generator_function": "grpc_deps", + "generator_name": "bazel_compdb", + "name": "bazel_compdb", + "sha256": "bcecfd622c4ef272fd4ba42726a52e140b961c4eac23025f18b346c968a8cfb4", + "strip_prefix": "bazel-compilation-database-0.4.5", + "urls": [ + "https://storage.googleapis.com/grpc-bazel-mirror/github.com/grailbio/bazel-compilation-database/archive/0.4.5.tar.gz", + "https://github.com/grailbio/bazel-compilation-database/archive/0.4.5.tar.gz" + ] + }, + "bazel_gazelle": { + "generator_function": "dist_http_archive", + "generator_name": "bazel_gazelle", + "name": "bazel_gazelle", + "sha256": "de69a09dc70417580aabf20a28619bb3ef60d038470c7cf8442fafcf627c21cb", + "urls": [ + "https://mirror.bazel.build/github.com/bazelbuild/bazel-gazelle/releases/download/v0.24.0/bazel-gazelle-v0.24.0.tar.gz", + "https://github.com/bazelbuild/bazel-gazelle/releases/download/v0.24.0/bazel-gazelle-v0.24.0.tar.gz" + ] + }, + "bazel_skylib": { + "generator_function": "dist_http_archive", + "generator_name": "bazel_skylib", + "name": "bazel_skylib", + "patch_cmds": [ + "test -f BUILD && chmod u+w BUILD || true", + "echo >> BUILD", + "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD" + ], + "patch_cmds_win": [ + "Add-Content -Path BUILD -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force" + ], + "sha256": "1c531376ac7e5a180e0237938a2536de0c54d93f5c278634818e0efc952dd56c", + "urls": [ + "https://mirror.bazel.build/github.com/bazelbuild/bazel-skylib/releases/download/1.0.3/bazel-skylib-1.0.3.tar.gz", + "https://github.com/bazelbuild/bazel-skylib/releases/download/1.0.3/bazel-skylib-1.0.3.tar.gz" + ] + }, + "bazel_toolchains": { + "generator_function": "grpc_deps", + "generator_name": "bazel_toolchains", + "name": "bazel_toolchains", + "sha256": "179ec02f809e86abf56356d8898c8bd74069f1bd7c56044050c2cd3d79d0e024", + "strip_prefix": "bazel-toolchains-4.1.0", + "urls": [ + "https://mirror.bazel.build/github.com/bazelbuild/bazel-toolchains/archive/4.1.0.tar.gz", + "https://github.com/bazelbuild/bazel-toolchains/releases/download/4.1.0/bazel-toolchains-4.1.0.tar.gz" + ] + }, + "bazelci_rules": { + "generator_function": "dist_http_archive", + "generator_name": "bazelci_rules", + "name": "bazelci_rules", + "patch_cmds": [ + "test -f BUILD && chmod u+w BUILD || true", + "echo >> BUILD", + "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD" + ], + "patch_cmds_win": [ + "Add-Content -Path BUILD -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force" + ], + "sha256": "eca21884e6f66a88c358e580fd67a6b148d30ab57b1680f62a96c00f9bc6a07e", + "strip_prefix": "bazelci_rules-1.0.0", + "urls": [ + "https://mirror.bazel.build/github.com/bazelbuild/continuous-integration/releases/download/rules-1.0.0/bazelci_rules-1.0.0.tar.gz", + "https://github.com/bazelbuild/continuous-integration/releases/download/rules-1.0.0/bazelci_rules-1.0.0.tar.gz" + ] + }, + "bazelci_rules-1.0.0.tar.gz": { + "name": "bazelci_rules-1.0.0.tar.gz", + "sha256": "eca21884e6f66a88c358e580fd67a6b148d30ab57b1680f62a96c00f9bc6a07e", + "urls": [ + "https://mirror.bazel.build/github.com/bazelbuild/continuous-integration/releases/download/rules-1.0.0/bazelci_rules-1.0.0.tar.gz", + "https://github.com/bazelbuild/continuous-integration/releases/download/rules-1.0.0/bazelci_rules-1.0.0.tar.gz" + ] + }, + "boringssl": { + "generator_function": "grpc_deps", + "generator_name": "boringssl", + "name": "boringssl", + "sha256": "534fa658bd845fd974b50b10f444d392dfd0d93768c4a51b61263fd37d851c40", + "strip_prefix": "boringssl-b9232f9e27e5668bc0414879dcdedb2a59ea75f2", + "urls": [ + "https://storage.googleapis.com/grpc-bazel-mirror/github.com/google/boringssl/archive/b9232f9e27e5668bc0414879dcdedb2a59ea75f2.tar.gz", + "https://github.com/google/boringssl/archive/b9232f9e27e5668bc0414879dcdedb2a59ea75f2.tar.gz" + ] + }, + "build_bazel_apple_support": { + "generator_function": "grpc_deps", + "generator_name": "build_bazel_apple_support", + "name": "build_bazel_apple_support", + "sha256": "76df040ade90836ff5543888d64616e7ba6c3a7b33b916aa3a4b68f342d1b447", + "urls": [ + "https://storage.googleapis.com/grpc-bazel-mirror/github.com/bazelbuild/apple_support/releases/download/0.11.0/apple_support.0.11.0.tar.gz", + "https://github.com/bazelbuild/apple_support/releases/download/0.11.0/apple_support.0.11.0.tar.gz" + ] + }, + "build_bazel_rules_apple": { + "generator_function": "grpc_deps", + "generator_name": "build_bazel_rules_apple", + "name": "build_bazel_rules_apple", + "sha256": "0052d452af7742c8f3a4e0929763388a66403de363775db7e90adecb2ba4944b", + "urls": [ + "https://storage.googleapis.com/grpc-bazel-mirror/github.com/bazelbuild/rules_apple/releases/download/0.31.3/rules_apple.0.31.3.tar.gz", + "https://github.com/bazelbuild/rules_apple/releases/download/0.31.3/rules_apple.0.31.3.tar.gz" + ] + }, + "build_bazel_rules_nodejs": { + "generator_function": "dist_http_archive", + "generator_name": "build_bazel_rules_nodejs", + "name": "build_bazel_rules_nodejs", + "sha256": "0fad45a9bda7dc1990c47b002fd64f55041ea751fafc00cd34efb96107675778", + "urls": [ + "https://mirror.bazel.build/github.com/bazelbuild/rules_nodejs/releases/download/5.5.0/rules_nodejs-5.5.0.tar.gz", + "https://github.com/bazelbuild/rules_nodejs/releases/download/5.5.0/rules_nodejs-5.5.0.tar.gz" + ] + }, + "cb28da3451f158a947dfc45090fe92b07b243bc1.tar.gz": { + "name": "cb28da3451f158a947dfc45090fe92b07b243bc1.tar.gz", + "sha256": "5bc8365613fe2f8ce6cc33959b7667b13b7fe56cb9d16ba740c06e1a7c4242fc", + "urls": [ + "https://mirror.bazel.build/github.com/cncf/xds/archive/cb28da3451f158a947dfc45090fe92b07b243bc1.tar.gz", + "https://github.com/cncf/xds/archive/cb28da3451f158a947dfc45090fe92b07b243bc1.tar.gz" + ] + }, + "com_envoyproxy_protoc_gen_validate": { + "generator_function": "dist_http_archive", + "generator_name": "com_envoyproxy_protoc_gen_validate", + "name": "com_envoyproxy_protoc_gen_validate", + "patch_args": [ + "-p1" + ], + "patches": [ + "//third_party/protoc_gen_validate:protoc_gen_validate.patch" + ], + "sha256": "1e490b98005664d149b379a9529a6aa05932b8a11b76b4cd86f3d22d76346f47", + "strip_prefix": "protoc-gen-validate-4694024279bdac52b77e22dc87808bd0fd732b69", + "urls": [ + "https://mirror.bazel.build/github.com/envoyproxy/protoc-gen-validate/archive/4694024279bdac52b77e22dc87808bd0fd732b69.tar.gz", + "https://github.com/envoyproxy/protoc-gen-validate/archive/4694024279bdac52b77e22dc87808bd0fd732b69.tar.gz" + ] + }, + "com_github_cares_cares": { + "build_file": "@com_github_grpc_grpc//third_party:cares/cares.BUILD", + "generator_function": "grpc_deps", + "generator_name": "com_github_cares_cares", + "name": "com_github_cares_cares", + "sha256": "ec76c5e79db59762776bece58b69507d095856c37b81fd35bfb0958e74b61d93", + "strip_prefix": "c-ares-6654436a307a5a686b008c1d4c93b0085da6e6d8", + "urls": [ + "https://storage.googleapis.com/grpc-bazel-mirror/github.com/c-ares/c-ares/archive/6654436a307a5a686b008c1d4c93b0085da6e6d8.tar.gz", + "https://github.com/c-ares/c-ares/archive/6654436a307a5a686b008c1d4c93b0085da6e6d8.tar.gz" + ] + }, + "com_github_cncf_udpa": { + "generator_function": "dist_http_archive", + "generator_name": "com_github_cncf_udpa", + "name": "com_github_cncf_udpa", + "patch_args": [ + "-p1" + ], + "patches": [ + "//third_party/cncf_udpa:cncf_udpa_0.0.1.patch" + ], + "sha256": "5bc8365613fe2f8ce6cc33959b7667b13b7fe56cb9d16ba740c06e1a7c4242fc", + "strip_prefix": "xds-cb28da3451f158a947dfc45090fe92b07b243bc1", + "urls": [ + "https://mirror.bazel.build/github.com/cncf/xds/archive/cb28da3451f158a947dfc45090fe92b07b243bc1.tar.gz", + "https://github.com/cncf/xds/archive/cb28da3451f158a947dfc45090fe92b07b243bc1.tar.gz" + ] + }, + "com_github_google_benchmark": { + "generator_function": "grpc_deps", + "generator_name": "com_github_google_benchmark", + "name": "com_github_google_benchmark", + "sha256": "0b921a3bc39e35f4275c8dcc658af2391c150fb966102341287b0401ff2e6f21", + "strip_prefix": "benchmark-0baacde3618ca617da95375e0af13ce1baadea47", + "urls": [ + "https://storage.googleapis.com/grpc-bazel-mirror/github.com/google/benchmark/archive/0baacde3618ca617da95375e0af13ce1baadea47.tar.gz", + "https://github.com/google/benchmark/archive/0baacde3618ca617da95375e0af13ce1baadea47.tar.gz" + ] + }, + "com_github_grpc_grpc": { + "generator_function": "dist_http_archive", + "generator_name": "com_github_grpc_grpc", + "name": "com_github_grpc_grpc", + "patch_args": [ + "-p1" + ], + "patches": [ + "//third_party/grpc:grpc_1.47.0.patch", + "//third_party/grpc:grpc_1.47.0.win_arm64.patch" + ], + "sha256": "271bdc890bf329a8de5b65819f0f9590a5381402429bca37625b63546ed19e54", + "strip_prefix": "grpc-1.47.0", + "urls": [ + "https://mirror.bazel.build/github.com/grpc/grpc/archive/v1.47.0.tar.gz", + "https://github.com/grpc/grpc/archive/v1.47.0.tar.gz" + ] + }, + "com_github_libuv_libuv": { + "build_file": "@com_github_grpc_grpc//third_party:libuv.BUILD", + "generator_function": "grpc_deps", + "generator_name": "com_github_libuv_libuv", + "name": "com_github_libuv_libuv", + "sha256": "5ca4e9091f3231d8ad8801862dc4e851c23af89c69141d27723157776f7291e7", + "strip_prefix": "libuv-02a9e1be252b623ee032a3137c0b0c94afbe6809", + "urls": [ + "https://storage.googleapis.com/grpc-bazel-mirror/github.com/libuv/libuv/archive/02a9e1be252b623ee032a3137c0b0c94afbe6809.tar.gz", + "https://github.com/libuv/libuv/archive/02a9e1be252b623ee032a3137c0b0c94afbe6809.tar.gz" + ] + }, + "com_google_absl": { + "generator_function": "dist_http_archive", + "generator_name": "com_google_absl", + "name": "com_google_absl", + "sha256": "dcf71b9cba8dc0ca9940c4b316a0c796be8fab42b070bb6b7cab62b48f0e66c4", + "strip_prefix": "abseil-cpp-20211102.0", + "urls": [ + "https://mirror.bazel.build/github.com/abseil/abseil-cpp/archive/refs/tags/20211102.0.tar.gz", + "https://github.com/abseil/abseil-cpp/archive/refs/tags/20211102.0.tar.gz" + ] + }, + "com_google_googleapis": { + "generator_function": "dist_http_archive", + "generator_name": "com_google_googleapis", + "name": "com_google_googleapis", + "sha256": "5bb6b0253ccf64b53d6c7249625a7e3f6c3bc6402abd52d3778bfa48258703a0", + "strip_prefix": "googleapis-2f9af297c84c55c8b871ba4495e01ade42476c92", + "urls": [ + "https://mirror.bazel.build/github.com/googleapis/googleapis/archive/2f9af297c84c55c8b871ba4495e01ade42476c92.tar.gz", + "https://github.com/googleapis/googleapis/archive/2f9af297c84c55c8b871ba4495e01ade42476c92.tar.gz" + ] + }, + "com_google_googletest": { + "name": "com_google_googletest", + "sha256": "81964fe578e9bd7c94dfdb09c8e4d6e6759e19967e397dbea48d1c10e45d0df2", + "strip_prefix": "googletest-release-1.12.1", + "urls": [ + "https://mirror.bazel.build/github.com/google/googletest/archive/refs/tags/release-1.12.1.tar.gz", + "https://github.com/google/googletest/archive/refs/tags/release-1.12.1.tar.gz" + ] + }, + "com_google_protobuf": { + "generator_function": "dist_http_archive", + "generator_name": "com_google_protobuf", + "name": "com_google_protobuf", + "patch_args": [ + "-p1" + ], + "patch_cmds": [ + "test -f BUILD && chmod u+w BUILD || true", + "echo >> BUILD", + "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD" + ], + "patch_cmds_win": [ + "Add-Content -Path BUILD -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force" + ], + "patches": [ + "//third_party/protobuf:3.19.6.patch" + ], + "sha256": "9a301cf94a8ddcb380b901e7aac852780b826595075577bb967004050c835056", + "strip_prefix": "protobuf-3.19.6", + "urls": [ + "https://mirror.bazel.build/github.com/protocolbuffers/protobuf/archive/v3.19.6.tar.gz", + "https://github.com/protocolbuffers/protobuf/archive/v3.19.6.tar.gz" + ] + }, + "com_google_testparameterinjector": { + "build_file_content": "\njava_library(\n name = \"testparameterinjector\",\n testonly = True,\n srcs = glob([\"src/main/**/*.java\"]),\n deps = [\n \"@org_snakeyaml//:snakeyaml\",\n \"@//third_party:auto_value\",\n \"@//third_party:guava\",\n \"@//third_party:junit4\",\n \"@//third_party/protobuf:protobuf_java\",\n ],\n visibility = [\"//visibility:public\"],\n)\n", + "name": "com_google_testparameterinjector", + "sha256": "562a0e87eb413a7dcad29ebc8d578f6f97503473943585b051c1398a58189b06", + "strip_prefix": "TestParameterInjector-1.0", + "urls": [ + "https://mirror.bazel.build/github.com/google/TestParameterInjector/archive/v1.0.tar.gz", + "https://github.com/google/TestParameterInjector/archive/v1.0.tar.gz" + ] + }, + "com_googlesource_code_re2": { + "generator_function": "grpc_deps", + "generator_name": "com_googlesource_code_re2", + "name": "com_googlesource_code_re2", + "sha256": "319a58a58d8af295db97dfeecc4e250179c5966beaa2d842a82f0a013b6a239b", + "strip_prefix": "re2-8e08f47b11b413302749c0d8b17a1c94777495d5", + "urls": [ + "https://storage.googleapis.com/grpc-bazel-mirror/github.com/google/re2/archive/8e08f47b11b413302749c0d8b17a1c94777495d5.tar.gz", + "https://github.com/google/re2/archive/8e08f47b11b413302749c0d8b17a1c94777495d5.tar.gz" + ] + }, + "coverage_output_generator-v2.6.zip": { + "name": "coverage_output_generator-v2.6.zip", + "sha256": "7006375f6756819b7013ca875eab70a541cf7d89142d9c511ed78ea4fefa38af", + "urls": [ + "https://mirror.bazel.build/bazel_coverage_output_generator/releases/coverage_output_generator-v2.6.zip" + ] + }, + "cython": { + "build_file": "@com_github_grpc_grpc//third_party:cython.BUILD", + "generator_function": "grpc_deps", + "generator_name": "cython", + "name": "cython", + "sha256": "bb72b2f0ef029472759c711f0a4bded6e15e3f9bda3797550cef3c1d87d02283", + "strip_prefix": "cython-0.29.26", + "urls": [ + "https://github.com/cython/cython/archive/0.29.26.tar.gz" + ] + }, + "desugar_jdk_libs": { + "generator_function": "dist_http_archive", + "generator_name": "desugar_jdk_libs", + "name": "desugar_jdk_libs", + "sha256": "299452e6f4a4981b2e6d22357f7332713382a63e4c137f5fd6b89579f6d610cb", + "strip_prefix": "desugar_jdk_libs-5847d6a06302136d95a14b4cbd4b55a9c9f1436e", + "urls": [ + "https://mirror.bazel.build/github.com/google/desugar_jdk_libs/archive/5847d6a06302136d95a14b4cbd4b55a9c9f1436e.zip", + "https://github.com/google/desugar_jdk_libs/archive/5847d6a06302136d95a14b4cbd4b55a9c9f1436e.zip" + ] + }, + "enum34": { + "build_file": "@com_github_grpc_grpc//third_party:enum34.BUILD", + "generator_function": "grpc_deps", + "generator_name": "enum34", + "name": "enum34", + "sha256": "8ad8c4783bf61ded74527bffb48ed9b54166685e4230386a9ed9b1279e2df5b1", + "strip_prefix": "enum34-1.1.6", + "urls": [ + "https://files.pythonhosted.org/packages/bf/3e/31d502c25302814a7c2f1d3959d2a3b3f78e509002ba91aea64993936876/enum34-1.1.6.tar.gz" + ] + }, + "envoy_api": { + "generator_function": "grpc_deps", + "generator_name": "envoy_api", + "name": "envoy_api", + "sha256": "c5807010b67033330915ca5a20483e30538ae5e689aa14b3631d6284beca4630", + "strip_prefix": "data-plane-api-9c42588c956220b48eb3099d186487c2f04d32ec", + "urls": [ + "https://storage.googleapis.com/grpc-bazel-mirror/github.com/envoyproxy/data-plane-api/archive/9c42588c956220b48eb3099d186487c2f04d32ec.tar.gz", + "https://github.com/envoyproxy/data-plane-api/archive/9c42588c956220b48eb3099d186487c2f04d32ec.tar.gz" + ] + }, + "futures": { + "build_file": "@com_github_grpc_grpc//third_party:futures.BUILD", + "generator_function": "grpc_deps", + "generator_name": "futures", + "name": "futures", + "sha256": "7e033af76a5e35f58e56da7a91e687706faf4e7bdfb2cbc3f2cca6b9bcda9794", + "strip_prefix": "futures-3.3.0", + "urls": [ + "https://files.pythonhosted.org/packages/47/04/5fc6c74ad114032cd2c544c575bffc17582295e9cd6a851d6026ab4b2c00/futures-3.3.0.tar.gz" + ] + }, + "io_bazel_rules_go": { + "generator_function": "grpc_deps", + "generator_name": "io_bazel_rules_go", + "name": "io_bazel_rules_go", + "sha256": "69de5c704a05ff37862f7e0f5534d4f479418afc21806c887db544a316f3cb6b", + "urls": [ + "https://mirror.bazel.build/github.com/bazelbuild/rules_go/releases/download/v0.27.0/rules_go-v0.27.0.tar.gz", + "https://github.com/bazelbuild/rules_go/releases/download/v0.27.0/rules_go-v0.27.0.tar.gz" + ] + }, + "io_bazel_rules_python": { + "generator_function": "grpc_deps", + "generator_name": "io_bazel_rules_python", + "name": "io_bazel_rules_python", + "patch_args": [ + "-p1" + ], + "patches": [ + "@com_github_grpc_grpc//third_party:rules_python.patch" + ], + "sha256": "954aa89b491be4a083304a2cb838019c8b8c3720a7abb9c4cb81ac7a24230cea", + "url": "https://github.com/bazelbuild/rules_python/releases/download/0.4.0/rules_python-0.4.0.tar.gz" + }, + "io_bazel_rules_sass": { + "generator_function": "dist_http_archive", + "generator_name": "io_bazel_rules_sass", + "name": "io_bazel_rules_sass", + "sha256": "c78be58f5e0a29a04686b628cf54faaee0094322ae0ac99da5a8a8afca59a647", + "strip_prefix": "rules_sass-1.25.0", + "urls": [ + "https://mirror.bazel.build/github.com/bazelbuild/rules_sass/archive/1.25.0.zip", + "https://github.com/bazelbuild/rules_sass/archive/1.25.0.zip" + ] + }, + "io_bazel_skydoc": { + "generator_function": "dist_http_archive", + "generator_name": "io_bazel_skydoc", + "name": "io_bazel_skydoc", + "sha256": "5a725b777976b77aa122b707d1b6f0f39b6020f66cd427bb111a585599c857b1", + "strip_prefix": "stardoc-1ef781ced3b1443dca3ed05dec1989eca1a4e1cd", + "urls": [ + "https://mirror.bazel.build/github.com/bazelbuild/stardoc/archive/1ef781ced3b1443dca3ed05dec1989eca1a4e1cd.tar.gz", + "https://github.com/bazelbuild/stardoc/archive/1ef781ced3b1443dca3ed05dec1989eca1a4e1cd.tar.gz" + ] + }, + "io_opencensus_cpp": { + "generator_function": "grpc_deps", + "generator_name": "io_opencensus_cpp", + "name": "io_opencensus_cpp", + "sha256": "90d6fafa8b1a2ea613bf662731d3086e1c2ed286f458a95c81744df2dbae41b1", + "strip_prefix": "opencensus-cpp-c9a4da319bc669a772928ffc55af4a61be1a1176", + "urls": [ + "https://storage.googleapis.com/grpc-bazel-mirror/github.com/census-instrumentation/opencensus-cpp/archive/c9a4da319bc669a772928ffc55af4a61be1a1176.tar.gz", + "https://github.com/census-instrumentation/opencensus-cpp/archive/c9a4da319bc669a772928ffc55af4a61be1a1176.tar.gz" + ] + }, + "java_tools-v11.9.zip": { + "name": "java_tools-v11.9.zip", + "sha256": "5cd59ea6bf938a1efc1e11ea562d37b39c82f76781211b7cd941a2346ea8484d", + "urls": [ + "https://mirror.bazel.build/bazel_java_tools/releases/java/v11.9/java_tools-v11.9.zip", + "https://github.com/bazelbuild/java_tools/releases/download/java_v11.9/java_tools-v11.9.zip" + ] + }, + "java_tools_darwin-v11.9.zip": { + "name": "java_tools_darwin-v11.9.zip", + "sha256": "b9e962c6a836ba1d7573f2473fab3a897c6370d4c2724bde4017b40932ff4fe4", + "urls": [ + "https://mirror.bazel.build/bazel_java_tools/releases/java/v11.9/java_tools_darwin-v11.9.zip", + "https://github.com/bazelbuild/java_tools/releases/download/java_v11.9/java_tools_darwin-v11.9.zip" + ] + }, + "java_tools_linux-v11.9.zip": { + "name": "java_tools_linux-v11.9.zip", + "sha256": "512582cac5b7ea7974a77b0da4581b21f546c9478f206eedf54687eeac035989", + "urls": [ + "https://mirror.bazel.build/bazel_java_tools/releases/java/v11.9/java_tools_linux-v11.9.zip", + "https://github.com/bazelbuild/java_tools/releases/download/java_v11.9/java_tools_linux-v11.9.zip" + ] + }, + "java_tools_windows-v11.9.zip": { + "name": "java_tools_windows-v11.9.zip", + "sha256": "677ab910046205020fd715489147c2bcfad8a35d9f5d94fdc998d217545bd87a", + "urls": [ + "https://mirror.bazel.build/bazel_java_tools/releases/java/v11.9/java_tools_windows-v11.9.zip", + "https://github.com/bazelbuild/java_tools/releases/download/java_v11.9/java_tools_windows-v11.9.zip" + ] + }, + "microsoft-jdk-11.0.13.8.1-windows-aarch64.zip": { + "name": "microsoft-jdk-11.0.13.8.1-windows-aarch64.zip", + "sha256": "b8a28e6e767d90acf793ea6f5bed0bb595ba0ba5ebdf8b99f395266161e53ec2", + "urls": [ + "https://mirror.bazel.build/aka.ms/download-jdk/microsoft-jdk-11.0.13.8.1-windows-aarch64.zip" + ] + }, + "nuget_python_i686_3.10.0": { + "build_file_content": "\ncc_import(\n name = \"python_full_api\",\n hdrs = glob([\"**/*.h\"]),\n shared_library = \"python310.dll\",\n interface_library = \"libs/python310.lib\",\n visibility = [\"@upb//python:__pkg__\"],\n)\n\ncc_import(\n name = \"python_limited_api\",\n hdrs = glob([\"**/*.h\"]),\n shared_library = \"python3.dll\",\n interface_library = \"libs/python3.lib\",\n visibility = [\"@upb//python:__pkg__\"],\n)\n", + "generator_function": "grpc_extra_deps", + "generator_name": "nuget_python_i686_3.10.0", + "name": "nuget_python_i686_3.10.0", + "patch_cmds": [ + "cp -r include/* ." + ], + "sha256": "e115e102eb90ce160ab0ef7506b750a8d7ecc385bde0a496f02a54337a8bc333", + "strip_prefix": "tools", + "type": "zip", + "urls": [ + "https://www.nuget.org/api/v2/package/pythonx86/3.10.0" + ] + }, + "nuget_python_i686_3.7.0": { + "build_file_content": "\ncc_import(\n name = \"python_full_api\",\n hdrs = glob([\"**/*.h\"]),\n shared_library = \"python37.dll\",\n interface_library = \"libs/python37.lib\",\n visibility = [\"@upb//python:__pkg__\"],\n)\n\ncc_import(\n name = \"python_limited_api\",\n hdrs = glob([\"**/*.h\"]),\n shared_library = \"python3.dll\",\n interface_library = \"libs/python3.lib\",\n visibility = [\"@upb//python:__pkg__\"],\n)\n", + "generator_function": "grpc_extra_deps", + "generator_name": "nuget_python_i686_3.7.0", + "name": "nuget_python_i686_3.7.0", + "patch_cmds": [ + "cp -r include/* ." + ], + "sha256": "a8bb49fa1ca62ad55430fcafaca1b58015e22943e66b1a87d5e7cef2556c6a54", + "strip_prefix": "tools", + "type": "zip", + "urls": [ + "https://www.nuget.org/api/v2/package/pythonx86/3.7.0" + ] + }, + "nuget_python_i686_3.8.0": { + "build_file_content": "\ncc_import(\n name = \"python_full_api\",\n hdrs = glob([\"**/*.h\"]),\n shared_library = \"python38.dll\",\n interface_library = \"libs/python38.lib\",\n visibility = [\"@upb//python:__pkg__\"],\n)\n\ncc_import(\n name = \"python_limited_api\",\n hdrs = glob([\"**/*.h\"]),\n shared_library = \"python3.dll\",\n interface_library = \"libs/python3.lib\",\n visibility = [\"@upb//python:__pkg__\"],\n)\n", + "generator_function": "grpc_extra_deps", + "generator_name": "nuget_python_i686_3.8.0", + "name": "nuget_python_i686_3.8.0", + "patch_cmds": [ + "cp -r include/* ." + ], + "sha256": "87a6481f5eef30b42ac12c93f06f73bd0b8692f26313b76a6615d1641c4e7bca", + "strip_prefix": "tools", + "type": "zip", + "urls": [ + "https://www.nuget.org/api/v2/package/pythonx86/3.8.0" + ] + }, + "nuget_python_i686_3.9.0": { + "build_file_content": "\ncc_import(\n name = \"python_full_api\",\n hdrs = glob([\"**/*.h\"]),\n shared_library = \"python39.dll\",\n interface_library = \"libs/python39.lib\",\n visibility = [\"@upb//python:__pkg__\"],\n)\n\ncc_import(\n name = \"python_limited_api\",\n hdrs = glob([\"**/*.h\"]),\n shared_library = \"python3.dll\",\n interface_library = \"libs/python3.lib\",\n visibility = [\"@upb//python:__pkg__\"],\n)\n", + "generator_function": "grpc_extra_deps", + "generator_name": "nuget_python_i686_3.9.0", + "name": "nuget_python_i686_3.9.0", + "patch_cmds": [ + "cp -r include/* ." + ], + "sha256": "229abecbe49dc08fe5709e0b31e70edfb3b88f23335ebfc2904c44f940fd59b6", + "strip_prefix": "tools", + "type": "zip", + "urls": [ + "https://www.nuget.org/api/v2/package/pythonx86/3.9.0" + ] + }, + "nuget_python_x86-64_3.10.0": { + "build_file_content": "\ncc_import(\n name = \"python_full_api\",\n hdrs = glob([\"**/*.h\"]),\n shared_library = \"python310.dll\",\n interface_library = \"libs/python310.lib\",\n visibility = [\"@upb//python:__pkg__\"],\n)\n\ncc_import(\n name = \"python_limited_api\",\n hdrs = glob([\"**/*.h\"]),\n shared_library = \"python3.dll\",\n interface_library = \"libs/python3.lib\",\n visibility = [\"@upb//python:__pkg__\"],\n)\n", + "generator_function": "grpc_extra_deps", + "generator_name": "nuget_python_x86-64_3.10.0", + "name": "nuget_python_x86-64_3.10.0", + "patch_cmds": [ + "cp -r include/* ." + ], + "sha256": "4474c83c25625d93e772e926f95f4cd398a0abbb52793625fa30f39af3d2cc00", + "strip_prefix": "tools", + "type": "zip", + "urls": [ + "https://www.nuget.org/api/v2/package/python/3.10.0" + ] + }, + "nuget_python_x86-64_3.7.0": { + "build_file_content": "\ncc_import(\n name = \"python_full_api\",\n hdrs = glob([\"**/*.h\"]),\n shared_library = \"python37.dll\",\n interface_library = \"libs/python37.lib\",\n visibility = [\"@upb//python:__pkg__\"],\n)\n\ncc_import(\n name = \"python_limited_api\",\n hdrs = glob([\"**/*.h\"]),\n shared_library = \"python3.dll\",\n interface_library = \"libs/python3.lib\",\n visibility = [\"@upb//python:__pkg__\"],\n)\n", + "generator_function": "grpc_extra_deps", + "generator_name": "nuget_python_x86-64_3.7.0", + "name": "nuget_python_x86-64_3.7.0", + "patch_cmds": [ + "cp -r include/* ." + ], + "sha256": "66eb796a5bdb1e6787b8f655a1237a6b6964af2115b7627cf4f0032cf068b4b2", + "strip_prefix": "tools", + "type": "zip", + "urls": [ + "https://www.nuget.org/api/v2/package/python/3.7.0" + ] + }, + "nuget_python_x86-64_3.8.0": { + "build_file_content": "\ncc_import(\n name = \"python_full_api\",\n hdrs = glob([\"**/*.h\"]),\n shared_library = \"python38.dll\",\n interface_library = \"libs/python38.lib\",\n visibility = [\"@upb//python:__pkg__\"],\n)\n\ncc_import(\n name = \"python_limited_api\",\n hdrs = glob([\"**/*.h\"]),\n shared_library = \"python3.dll\",\n interface_library = \"libs/python3.lib\",\n visibility = [\"@upb//python:__pkg__\"],\n)\n", + "generator_function": "grpc_extra_deps", + "generator_name": "nuget_python_x86-64_3.8.0", + "name": "nuget_python_x86-64_3.8.0", + "patch_cmds": [ + "cp -r include/* ." + ], + "sha256": "96c61321ce90dd053c8a04f305a5f6cc6d91350b862db34440e4a4f069b708a0", + "strip_prefix": "tools", + "type": "zip", + "urls": [ + "https://www.nuget.org/api/v2/package/python/3.8.0" + ] + }, + "nuget_python_x86-64_3.9.0": { + "build_file_content": "\ncc_import(\n name = \"python_full_api\",\n hdrs = glob([\"**/*.h\"]),\n shared_library = \"python39.dll\",\n interface_library = \"libs/python39.lib\",\n visibility = [\"@upb//python:__pkg__\"],\n)\n\ncc_import(\n name = \"python_limited_api\",\n hdrs = glob([\"**/*.h\"]),\n shared_library = \"python3.dll\",\n interface_library = \"libs/python3.lib\",\n visibility = [\"@upb//python:__pkg__\"],\n)\n", + "generator_function": "grpc_extra_deps", + "generator_name": "nuget_python_x86-64_3.9.0", + "name": "nuget_python_x86-64_3.9.0", + "patch_cmds": [ + "cp -r include/* ." + ], + "sha256": "6af58a733e7dfbfcdd50d55788134393d6ffe7ab8270effbf724bdb786558832", + "strip_prefix": "tools", + "type": "zip", + "urls": [ + "https://www.nuget.org/api/v2/package/python/3.9.0" + ] + }, + "opencensus_proto": { + "generator_function": "grpc_deps", + "generator_name": "opencensus_proto", + "name": "opencensus_proto", + "sha256": "b7e13f0b4259e80c3070b583c2f39e53153085a6918718b1c710caf7037572b0", + "strip_prefix": "opencensus-proto-0.3.0/src", + "urls": [ + "https://storage.googleapis.com/grpc-bazel-mirror/github.com/census-instrumentation/opencensus-proto/archive/v0.3.0.tar.gz", + "https://github.com/census-instrumentation/opencensus-proto/archive/v0.3.0.tar.gz" + ] + }, + "openjdk11_darwin_aarch64_archive": { + "build_file_content": "\njava_runtime(name = 'runtime', srcs = glob(['**']), visibility = ['//visibility:public'])\nexports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])\n", + "generator_function": "dist_http_archive", + "generator_name": "openjdk11_darwin_aarch64_archive", + "name": "openjdk11_darwin_aarch64_archive", + "sha256": "6bb0d2c6e8a29dcd9c577bbb2986352ba12481a9549ac2c0bcfd00ed60e538d2", + "strip_prefix": "zulu11.56.19-ca-jdk11.0.15-macosx_aarch64", + "urls": [ + "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu11.56.19-ca-jdk11.0.15-macosx_aarch64.tar.gz", + "https://cdn.azul.com/zulu/bin/zulu11.56.19-ca-jdk11.0.15-macosx_aarch64.tar.gz" + ] + }, + "openjdk11_darwin_archive": { + "build_file_content": "\njava_runtime(name = 'runtime', srcs = glob(['**']), visibility = ['//visibility:public'])\nexports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])\n", + "generator_function": "dist_http_archive", + "generator_name": "openjdk11_darwin_archive", + "name": "openjdk11_darwin_archive", + "sha256": "2614e5c5de8e989d4d81759de4c333aa5b867b17ab9ee78754309ba65c7f6f55", + "strip_prefix": "zulu11.56.19-ca-jdk11.0.15-macosx_x64", + "urls": [ + "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu11.56.19-ca-jdk11.0.15-macosx_x64.tar.gz", + "https://cdn.azul.com/zulu/bin/zulu11.56.19-ca-jdk11.0.15-macosx_x64.tar.gz" + ] + }, + "openjdk11_linux_archive": { + "build_file_content": "\njava_runtime(name = 'runtime', srcs = glob(['**']), visibility = ['//visibility:public'])\nexports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])\n", + "generator_function": "dist_http_archive", + "generator_name": "openjdk11_linux_archive", + "name": "openjdk11_linux_archive", + "sha256": "e064b61d93304012351242bf0823c6a2e41d9e28add7ea7f05378b7243d34247", + "strip_prefix": "zulu11.56.19-ca-jdk11.0.15-linux_x64", + "urls": [ + "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu11.56.19-ca-jdk11.0.15-linux_x64.tar.gz", + "https://cdn.azul.com/zulu/bin/zulu11.56.19-ca-jdk11.0.15-linux_x64.tar.gz" + ] + }, + "openjdk11_windows_archive": { + "build_file_content": "\njava_runtime(name = 'runtime', srcs = glob(['**']), visibility = ['//visibility:public'])\nexports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])\n", + "generator_function": "dist_http_archive", + "generator_name": "openjdk11_windows_archive", + "name": "openjdk11_windows_archive", + "sha256": "a106c77389a63b6bd963a087d5f01171bd32aa3ee7377ecef87531390dcb9050", + "strip_prefix": "zulu11.56.19-ca-jdk11.0.15-win_x64", + "urls": [ + "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu11.56.19-ca-jdk11.0.15-win_x64.zip", + "https://cdn.azul.com/zulu/bin/zulu11.56.19-ca-jdk11.0.15-win_x64.zip" + ] + }, + "openjdk11_windows_arm64_archive": { + "build_file_content": "\njava_runtime(name = 'runtime', srcs = glob(['**']), visibility = ['//visibility:public'])\nexports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])\n", + "generator_function": "dist_http_archive", + "generator_name": "openjdk11_windows_arm64_archive", + "name": "openjdk11_windows_arm64_archive", + "sha256": "b8a28e6e767d90acf793ea6f5bed0bb595ba0ba5ebdf8b99f395266161e53ec2", + "strip_prefix": "jdk-11.0.13+8", + "urls": [ + "https://mirror.bazel.build/aka.ms/download-jdk/microsoft-jdk-11.0.13.8.1-windows-aarch64.zip" + ] + }, + "openjdk17_darwin_aarch64_archive": { + "build_file_content": "\njava_runtime(name = 'runtime', srcs = glob(['**']), visibility = ['//visibility:public'])\nexports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])\n", + "generator_function": "dist_http_archive", + "generator_name": "openjdk17_darwin_aarch64_archive", + "name": "openjdk17_darwin_aarch64_archive", + "sha256": "54247dde248ffbcd3c048675504b1c503b81daf2dc0d64a79e353c48d383c977", + "strip_prefix": "zulu17.32.13-ca-jdk17.0.2-macosx_aarch64", + "urls": [ + "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu17.32.13-ca-jdk17.0.2-macosx_aarch64.tar.gz", + "https://cdn.azul.com/zulu/bin/zulu17.32.13-ca-jdk17.0.2-macosx_aarch64.tar.gz" + ] + }, + "openjdk17_darwin_archive": { + "build_file_content": "\njava_runtime(name = 'runtime', srcs = glob(['**']), visibility = ['//visibility:public'])\nexports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])\n", + "generator_function": "dist_http_archive", + "generator_name": "openjdk17_darwin_archive", + "name": "openjdk17_darwin_archive", + "sha256": "89d04b2d99b05dcb25114178e65f6a1c5ca742e125cab0a63d87e7e42f3fcb80", + "strip_prefix": "zulu17.32.13-ca-jdk17.0.2-macosx_x64", + "urls": [ + "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu17.32.13-ca-jdk17.0.2-macosx_x64.tar.gz", + "https://cdn.azul.com/zulu/bin/zulu17.32.13-ca-jdk17.0.2-macosx_x64.tar.gz" + ] + }, + "openjdk17_linux_archive": { + "build_file_content": "\njava_runtime(name = 'runtime', srcs = glob(['**']), visibility = ['//visibility:public'])\nexports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])\n", + "generator_function": "dist_http_archive", + "generator_name": "openjdk17_linux_archive", + "name": "openjdk17_linux_archive", + "sha256": "73d5c4bae20325ca41b606f7eae64669db3aac638c5b3ead4a975055846ad6de", + "strip_prefix": "zulu17.32.13-ca-jdk17.0.2-linux_x64", + "urls": [ + "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu17.32.13-ca-jdk17.0.2-linux_x64.tar.gz", + "https://cdn.azul.com/zulu/bin/zulu17.32.13-ca-jdk17.0.2-linux_x64.tar.gz" + ] + }, + "openjdk17_windows_archive": { + "build_file_content": "\njava_runtime(name = 'runtime', srcs = glob(['**']), visibility = ['//visibility:public'])\nexports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])\n", + "generator_function": "dist_http_archive", + "generator_name": "openjdk17_windows_archive", + "name": "openjdk17_windows_archive", + "sha256": "e965aa0ea7a0661a3446cf8f10ee00684b851f883b803315289f26b4aa907fdb", + "strip_prefix": "zulu17.32.13-ca-jdk17.0.2-win_x64", + "urls": [ + "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu17.32.13-ca-jdk17.0.2-win_x64.zip", + "https://cdn.azul.com/zulu/bin/zulu17.32.13-ca-jdk17.0.2-win_x64.zip" + ] + }, + "openjdk17_windows_arm64_archive": { + "build_file_content": "\njava_runtime(name = 'runtime', srcs = glob(['**']), visibility = ['//visibility:public'])\nexports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])\n", + "generator_function": "dist_http_archive", + "generator_name": "openjdk17_windows_arm64_archive", + "name": "openjdk17_windows_arm64_archive", + "sha256": "811d7e7591bac4f081dfb00ba6bd15b6fc5969e1f89f0f327ef75147027c3877", + "strip_prefix": "zulu17.30.15-ca-jdk17.0.1-win_aarch64", + "urls": [ + "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu17.30.15-ca-jdk17.0.1-win_aarch64.zip", + "https://cdn.azul.com/zulu/bin/zulu17.30.15-ca-jdk17.0.1-win_aarch64.zip" + ] + }, + "openjdk18_darwin_aarch64_archive": { + "build_file_content": "\njava_runtime(name = 'runtime', srcs = glob(['**']), visibility = ['//visibility:public'])\nexports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])\n", + "generator_function": "dist_http_archive", + "generator_name": "openjdk18_darwin_aarch64_archive", + "name": "openjdk18_darwin_aarch64_archive", + "sha256": "9595e001451e201fdf33c1952777968a3ac18fe37273bdeaea5b5ed2c4950432", + "strip_prefix": "zulu18.28.13-ca-jdk18.0.0-macosx_aarch64", + "urls": [ + "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu18.28.13-ca-jdk18.0.0-macosx_aarch64.tar.gz", + "https://cdn.azul.com/zulu/bin/zulu18.28.13-ca-jdk18.0.0-macosx_aarch64.tar.gz" + ] + }, + "openjdk18_darwin_archive": { + "build_file_content": "\njava_runtime(name = 'runtime', srcs = glob(['**']), visibility = ['//visibility:public'])\nexports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])\n", + "generator_function": "dist_http_archive", + "generator_name": "openjdk18_darwin_archive", + "name": "openjdk18_darwin_archive", + "sha256": "780a9aa4bda95a6793bf41d13f837c59ef915e9bfd0e0c5fd4c70e4cdaa88541", + "strip_prefix": "zulu18.28.13-ca-jdk18.0.0-macosx_x64", + "urls": [ + "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu18.28.13-ca-jdk18.0.0-macosx_x64.tar.gz", + "https://cdn.azul.com/zulu/bin/zulu18.28.13-ca-jdk18.0.0-macosx_x64.tar.gz" + ] + }, + "openjdk18_linux_archive": { + "build_file_content": "\njava_runtime(name = 'runtime', srcs = glob(['**']), visibility = ['//visibility:public'])\nexports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])\n", + "generator_function": "dist_http_archive", + "generator_name": "openjdk18_linux_archive", + "name": "openjdk18_linux_archive", + "sha256": "959a94ca4097dcaabc7886784cec10dfdf2b0a3bff890ea8943cc09c5fff29cb", + "strip_prefix": "zulu18.28.13-ca-jdk18.0.0-linux_x64", + "urls": [ + "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu18.28.13-ca-jdk18.0.0-linux_x64.tar.gz", + "https://cdn.azul.com/zulu/bin/zulu18.28.13-ca-jdk18.0.0-linux_x64.tar.gz" + ] + }, + "openjdk18_windows_archive": { + "build_file_content": "\njava_runtime(name = 'runtime', srcs = glob(['**']), visibility = ['//visibility:public'])\nexports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])\n", + "generator_function": "dist_http_archive", + "generator_name": "openjdk18_windows_archive", + "name": "openjdk18_windows_archive", + "sha256": "6c75498163b047595386fdb909cb6d4e04282c3a81799743c5e1f9316391fe16", + "strip_prefix": "zulu18.28.13-ca-jdk18.0.0-win_x64", + "urls": [ + "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu18.28.13-ca-jdk18.0.0-win_x64.zip", + "https://cdn.azul.com/zulu/bin/zulu18.28.13-ca-jdk18.0.0-win_x64.zip" + ] + }, + "openjdk18_windows_arm64_archive": { + "build_file_content": "\njava_runtime(name = 'runtime', srcs = glob(['**']), visibility = ['//visibility:public'])\nexports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])\n", + "generator_function": "dist_http_archive", + "generator_name": "openjdk18_windows_arm64_archive", + "name": "openjdk18_windows_arm64_archive", + "sha256": "9b52b259516e4140ee56b91f77750667bffbc543e78ad8c39082449d4c377b54", + "strip_prefix": "zulu18.28.13-ca-jdk18.0.0-win_aarch64", + "urls": [ + "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu18.28.13-ca-jdk18.0.0-win_aarch64.zip", + "https://cdn.azul.com/zulu/bin/zulu18.28.13-ca-jdk18.0.0-win_aarch64.zip" + ] + }, + "openjdk_linux": { + "downloaded_file_path": "zulu-linux.tar.gz", + "name": "openjdk_linux", + "sha256": "65bfe4e0ffa74a680ee4410db46b17e30cd9397b664a92a886599fe1f3530969", + "urls": [ + "https://mirror.bazel.build/openjdk/azul-zulu11.37.17-ca-jdk11.0.6/zulu11.37.17-ca-jdk11.0.6-linux_x64-linux_x64-allmodules-b23d4e05466f2aa1fdcd72d3d3a8e962206b64bf-1581689070.tar.gz" + ] + }, + "openjdk_linux_aarch64": { + "downloaded_file_path": "zulu-linux-aarch64.tar.gz", + "name": "openjdk_linux_aarch64", + "sha256": "6b245793087300db3ee82ab0d165614f193a73a60f2f011e347756c1e6ca5bac", + "urls": [ + "https://mirror.bazel.build/openjdk/azul-zulu11.37.48-ca-jdk11.0.6/zulu11.37.48-ca-jdk11.0.6-linux_aarch64-allmodules-b23d4e05466f2aa1fdcd72d3d3a8e962206b64bf-1581690750.tar.gz" + ] + }, + "openjdk_linux_aarch64_minimal": { + "downloaded_file_path": "zulu-linux-aarch64-minimal.tar.gz", + "name": "openjdk_linux_aarch64_minimal", + "sha256": "06f6520a877704c77614bcfc4f846cc7cbcbf5eaad149bf7f19f4f16e285c9de", + "urls": [ + "https://mirror.bazel.build/openjdk/azul-zulu11.37.48-ca-jdk11.0.6/zulu11.37.48-ca-jdk11.0.6-linux_aarch64-minimal-b23d4e05466f2aa1fdcd72d3d3a8e962206b64bf-1581690750.tar.gz" + ] + }, + "openjdk_linux_aarch64_vanilla": { + "downloaded_file_path": "zulu-linux-aarch64-vanilla.tar.gz", + "generator_function": "dist_http_file", + "generator_name": "openjdk_linux_aarch64_vanilla", + "name": "openjdk_linux_aarch64_vanilla", + "sha256": "fc7c41a0005180d4ca471c90d01e049469e0614cf774566d4cf383caa29d1a97", + "urls": [ + "https://mirror.bazel.build/cdn.azul.com/zulu-embedded/bin/zulu11.56.19-ca-jdk11.0.15-linux_aarch64.tar.gz", + "https://cdn.azul.com/zulu-embedded/bin/zulu11.56.19-ca-jdk11.0.15-linux_aarch64.tar.gz" + ] + }, + "openjdk_linux_minimal": { + "downloaded_file_path": "zulu-linux-minimal.tar.gz", + "name": "openjdk_linux_minimal", + "sha256": "91f7d52f695c681d4e21499b4319d548aadef249a6b3053e306308992e1e29ae", + "urls": [ + "https://mirror.bazel.build/openjdk/azul-zulu11.37.17-ca-jdk11.0.6/zulu11.37.17-ca-jdk11.0.6-linux_x64-minimal-b23d4e05466f2aa1fdcd72d3d3a8e962206b64bf-1581689068.tar.gz" + ] + }, + "openjdk_linux_ppc64le_vanilla": { + "downloaded_file_path": "adoptopenjdk-ppc64le-vanilla.tar.gz", + "generator_function": "dist_http_file", + "generator_name": "openjdk_linux_ppc64le_vanilla", + "name": "openjdk_linux_ppc64le_vanilla", + "sha256": "a8fba686f6eb8ae1d1a9566821dbd5a85a1108b96ad857fdbac5c1e4649fc56f", + "urls": [ + "https://mirror.bazel.build/github.com/adoptium/temurin11-binaries/releases/download/jdk-11.0.15+10/OpenJDK11U-jdk_ppc64le_linux_hotspot_11.0.15_10.tar.gz", + "https://github.com/adoptium/temurin11-binaries/releases/download/jdk-11.0.15+10/OpenJDK11U-jdk_ppc64le_linux_hotspot_11.0.15_10.tar.gz" + ] + }, + "openjdk_linux_s390x_vanilla": { + "downloaded_file_path": "adoptopenjdk-s390x-vanilla.tar.gz", + "generator_function": "dist_http_file", + "generator_name": "openjdk_linux_s390x_vanilla", + "name": "openjdk_linux_s390x_vanilla", + "sha256": "a58fc0361966af0a5d5a31a2d8a208e3c9bb0f54f345596fd80b99ea9a39788b", + "urls": [ + "https://mirror.bazel.build/github.com/adoptium/temurin11-binaries/releases/download/jdk-11.0.15+10/OpenJDK11U-jdk_s390x_linux_hotspot_11.0.15_10.tar.gz", + "https://github.com/adoptium/temurin11-binaries/releases/download/jdk-11.0.15+10/OpenJDK11U-jdk_s390x_linux_hotspot_11.0.15_10.tar.gz" + ] + }, + "openjdk_linux_vanilla": { + "downloaded_file_path": "zulu-linux-vanilla.tar.gz", + "generator_function": "dist_http_file", + "generator_name": "openjdk_linux_vanilla", + "name": "openjdk_linux_vanilla", + "sha256": "e064b61d93304012351242bf0823c6a2e41d9e28add7ea7f05378b7243d34247", + "urls": [ + "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu11.56.19-ca-jdk11.0.15-linux_x64.tar.gz", + "https://cdn.azul.com/zulu/bin/zulu11.56.19-ca-jdk11.0.15-linux_x64.tar.gz" + ] + }, + "openjdk_macos_aarch64": { + "downloaded_file_path": "zulu-macos-aarch64.tar.gz", + "name": "openjdk_macos_aarch64", + "sha256": "a900ef793cb34b03ac5d93ea2f67291b6842e99d500934e19393a8d8f9bfa6ff", + "urls": [ + "https://mirror.bazel.build/openjdk/azul-zulu11.45.27-ca-jdk11.0.10/zulu11.45.27-ca-jdk11.0.10-macosx_aarch64-allmodules-1611665569.tar.gz" + ] + }, + "openjdk_macos_aarch64_minimal": { + "downloaded_file_path": "zulu-macos-aarch64-minimal.tar.gz", + "name": "openjdk_macos_aarch64_minimal", + "sha256": "f4f606926e6deeaa8b8397e299313d9df87642fe464b0ccf1ed0432aeb00640b", + "urls": [ + "https://mirror.bazel.build/openjdk/azul-zulu11.45.27-ca-jdk11.0.10/zulu11.45.27-ca-jdk11.0.10-macosx_aarch64-minimal-1611665562.tar.gz" + ] + }, + "openjdk_macos_aarch64_vanilla": { + "downloaded_file_path": "zulu-macos-aarch64-vanilla.tar.gz", + "generator_function": "dist_http_file", + "generator_name": "openjdk_macos_aarch64_vanilla", + "name": "openjdk_macos_aarch64_vanilla", + "sha256": "6bb0d2c6e8a29dcd9c577bbb2986352ba12481a9549ac2c0bcfd00ed60e538d2", + "urls": [ + "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu11.56.19-ca-jdk11.0.15-macosx_aarch64.tar.gz", + "https://cdn.azul.com/zulu/bin/zulu11.56.19-ca-jdk11.0.15-macosx_aarch64.tar.gz" + ] + }, + "openjdk_macos_x86_64": { + "downloaded_file_path": "zulu-macos.tar.gz", + "name": "openjdk_macos_x86_64", + "sha256": "8e283cfd23c7555be8e17295ed76eb8f00324c88ab904b8de37bbe08f90e569b", + "urls": [ + "https://mirror.bazel.build/openjdk/azul-zulu11.37.17-ca-jdk11.0.6/zulu11.37.17-ca-jdk11.0.6-macosx_x64-allmodules-b23d4e05466f2aa1fdcd72d3d3a8e962206b64bf-1581689066.tar.gz" + ] + }, + "openjdk_macos_x86_64_minimal": { + "downloaded_file_path": "zulu-macos-minimal.tar.gz", + "name": "openjdk_macos_x86_64_minimal", + "sha256": "1bacb1c07035d4066d79f0b65b4ea0ebd1954f3662bdfe3618da382ac8fd23a6", + "urls": [ + "https://mirror.bazel.build/openjdk/azul-zulu11.37.17-ca-jdk11.0.6/zulu11.37.17-ca-jdk11.0.6-macosx_x64-minimal-b23d4e05466f2aa1fdcd72d3d3a8e962206b64bf-1581689063.tar.gz" + ] + }, + "openjdk_macos_x86_64_vanilla": { + "downloaded_file_path": "zulu-macos-vanilla.tar.gz", + "generator_function": "dist_http_file", + "generator_name": "openjdk_macos_x86_64_vanilla", + "name": "openjdk_macos_x86_64_vanilla", + "sha256": "2614e5c5de8e989d4d81759de4c333aa5b867b17ab9ee78754309ba65c7f6f55", + "urls": [ + "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu11.56.19-ca-jdk11.0.15-macosx_x64.tar.gz", + "https://cdn.azul.com/zulu/bin/zulu11.56.19-ca-jdk11.0.15-macosx_x64.tar.gz" + ] + }, + "openjdk_win": { + "downloaded_file_path": "zulu-win.zip", + "name": "openjdk_win", + "sha256": "8e1604b3a27dcf639bc6d1a73103f1211848139e4cceb081d0a74a99e1e6f995", + "urls": [ + "https://mirror.bazel.build/openjdk/azul-zulu11.37.17-ca-jdk11.0.6/zulu11.37.17-ca-jdk11.0.6-win_x64-allmodules-b23d4e05466f2aa1fdcd72d3d3a8e962206b64bf-1581689080.zip" + ] + }, + "openjdk_win_arm64_vanilla": { + "downloaded_file_path": "zulu-win-arm64.zip", + "generator_function": "dist_http_file", + "generator_name": "openjdk_win_arm64_vanilla", + "name": "openjdk_win_arm64_vanilla", + "sha256": "811d7e7591bac4f081dfb00ba6bd15b6fc5969e1f89f0f327ef75147027c3877", + "urls": [ + "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu17.30.15-ca-jdk17.0.1-win_aarch64.zip", + "https://cdn.azul.com/zulu/bin/zulu17.30.15-ca-jdk17.0.1-win_aarch64.zip" + ] + }, + "openjdk_win_minimal": { + "downloaded_file_path": "zulu-win-minimal.zip", + "name": "openjdk_win_minimal", + "sha256": "b90a713c9c2d9ea23cad44d2c2dfcc9af22faba9bde55dedc1c3bb9f556ac1ae", + "urls": [ + "https://mirror.bazel.build/openjdk/azul-zulu11.37.17-ca-jdk11.0.6/zulu11.37.17-ca-jdk11.0.6-win_x64-minimal-b23d4e05466f2aa1fdcd72d3d3a8e962206b64bf-1581689080.zip" + ] + }, + "openjdk_win_vanilla": { + "downloaded_file_path": "zulu-win-vanilla.zip", + "generator_function": "dist_http_file", + "generator_name": "openjdk_win_vanilla", + "name": "openjdk_win_vanilla", + "sha256": "a106c77389a63b6bd963a087d5f01171bd32aa3ee7377ecef87531390dcb9050", + "urls": [ + "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu11.56.19-ca-jdk11.0.15-win_x64.zip", + "https://cdn.azul.com/zulu/bin/zulu11.56.19-ca-jdk11.0.15-win_x64.zip" + ] + }, + "org_snakeyaml": { + "build_file_content": "\njava_library(\n name = \"snakeyaml\",\n srcs = glob([\"src/main/**/*.java\"]),\n visibility = [\n \"@io_bazel//src/main/java/com/google/devtools/build/docgen/release:__pkg__\",\n \"@com_google_testparameterinjector//:__pkg__\",\n ],\n)\n", + "name": "org_snakeyaml", + "sha256": "fd0e0cc6c5974fc8f08be3a15fb4a59954c7dd958b5b68186a803de6420b6e40", + "strip_prefix": "asomov-snakeyaml-b28f0b4d87c6", + "urls": [ + "https://mirror.bazel.build/bitbucket.org/asomov/snakeyaml/get/snakeyaml-1.28.tar.gz" + ] + }, + "platforms": { + "generator_function": "dist_http_archive", + "generator_name": "platforms", + "name": "platforms", + "sha256": "379113459b0feaf6bfbb584a91874c065078aa673222846ac765f86661c27407", + "urls": [ + "https://mirror.bazel.build/github.com/bazelbuild/platforms/releases/download/0.0.5/platforms-0.0.5.tar.gz", + "https://github.com/bazelbuild/platforms/releases/download/0.0.5/platforms-0.0.5.tar.gz" + ] + }, + "platforms-0.0.5.tar.gz": { + "name": "platforms-0.0.5.tar.gz", + "sha256": "379113459b0feaf6bfbb584a91874c065078aa673222846ac765f86661c27407", + "urls": [ + "https://mirror.bazel.build/github.com/bazelbuild/platforms/releases/download/0.0.5/platforms-0.0.5.tar.gz", + "https://github.com/bazelbuild/platforms/releases/download/0.0.5/platforms-0.0.5.tar.gz" + ] + }, + "python-3.7.0": { + "build_file_content": "\ncc_library(\n name = \"python_headers\",\n hdrs = glob([\"**/Include/**/*.h\"]),\n strip_include_prefix = \"Python-3.7.0/Include\",\n visibility = [\"//visibility:public\"],\n)\n", + "generator_function": "grpc_extra_deps", + "generator_name": "python-3.7.0", + "name": "python-3.7.0", + "patch_cmds": [ + "echo '#define SIZEOF_WCHAR_T 4' > Python-3.7.0/Include/pyconfig.h" + ], + "sha256": "85bb9feb6863e04fb1700b018d9d42d1caac178559ffa453d7e6a436e259fd0d", + "urls": [ + "https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tgz" + ] + }, + "r8-3.3.28.jar": { + "name": "r8-3.3.28.jar", + "sha256": "8626ca32fb47aba7fddd2c897615e2e8ffcdb4d4b213572a2aefb3f838f01972", + "urls": [ + "https://maven.google.com/com/android/tools/r8/3.3.28/r8-3.3.28.jar" + ] + }, + "remote_coverage_tools": { + "generator_function": "dist_http_archive", + "generator_name": "remote_coverage_tools", + "name": "remote_coverage_tools", + "patch_cmds": [ + "test -f BUILD && chmod u+w BUILD || true", + "echo >> BUILD", + "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD" + ], + "patch_cmds_win": [ + "Add-Content -Path BUILD -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force" + ], + "sha256": "7006375f6756819b7013ca875eab70a541cf7d89142d9c511ed78ea4fefa38af", + "urls": [ + "https://mirror.bazel.build/bazel_coverage_output_generator/releases/coverage_output_generator-v2.6.zip" + ] + }, + "remote_java_tools": { + "generator_function": "maybe", + "generator_name": "remote_java_tools", + "name": "remote_java_tools", + "sha256": "5cd59ea6bf938a1efc1e11ea562d37b39c82f76781211b7cd941a2346ea8484d", + "urls": [ + "https://mirror.bazel.build/bazel_java_tools/releases/java/v11.9/java_tools-v11.9.zip", + "https://github.com/bazelbuild/java_tools/releases/download/java_v11.9/java_tools-v11.9.zip" + ] + }, + "remote_java_tools_darwin": { + "generator_function": "maybe", + "generator_name": "remote_java_tools_darwin", + "name": "remote_java_tools_darwin", + "sha256": "b9e962c6a836ba1d7573f2473fab3a897c6370d4c2724bde4017b40932ff4fe4", + "urls": [ + "https://mirror.bazel.build/bazel_java_tools/releases/java/v11.9/java_tools_darwin-v11.9.zip", + "https://github.com/bazelbuild/java_tools/releases/download/java_v11.9/java_tools_darwin-v11.9.zip" + ] + }, + "remote_java_tools_darwin_for_testing": { + "generator_function": "dist_http_archive", + "generator_name": "remote_java_tools_darwin_for_testing", + "name": "remote_java_tools_darwin_for_testing", + "patch_cmds": [ + "test -f BUILD && chmod u+w BUILD || true", + "echo >> BUILD", + "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD" + ], + "patch_cmds_win": [ + "Add-Content -Path BUILD -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force" + ], + "sha256": "b9e962c6a836ba1d7573f2473fab3a897c6370d4c2724bde4017b40932ff4fe4", + "urls": [ + "https://mirror.bazel.build/bazel_java_tools/releases/java/v11.9/java_tools_darwin-v11.9.zip", + "https://github.com/bazelbuild/java_tools/releases/download/java_v11.9/java_tools_darwin-v11.9.zip" + ] + }, + "remote_java_tools_for_testing": { + "generator_function": "dist_http_archive", + "generator_name": "remote_java_tools_for_testing", + "name": "remote_java_tools_for_testing", + "patch_cmds": [ + "test -f BUILD && chmod u+w BUILD || true", + "echo >> BUILD", + "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD" + ], + "patch_cmds_win": [ + "Add-Content -Path BUILD -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force" + ], + "sha256": "5cd59ea6bf938a1efc1e11ea562d37b39c82f76781211b7cd941a2346ea8484d", + "urls": [ + "https://mirror.bazel.build/bazel_java_tools/releases/java/v11.9/java_tools-v11.9.zip", + "https://github.com/bazelbuild/java_tools/releases/download/java_v11.9/java_tools-v11.9.zip" + ] + }, + "remote_java_tools_linux": { + "generator_function": "maybe", + "generator_name": "remote_java_tools_linux", + "name": "remote_java_tools_linux", + "sha256": "512582cac5b7ea7974a77b0da4581b21f546c9478f206eedf54687eeac035989", + "urls": [ + "https://mirror.bazel.build/bazel_java_tools/releases/java/v11.9/java_tools_linux-v11.9.zip", + "https://github.com/bazelbuild/java_tools/releases/download/java_v11.9/java_tools_linux-v11.9.zip" + ] + }, + "remote_java_tools_linux_for_testing": { + "generator_function": "dist_http_archive", + "generator_name": "remote_java_tools_linux_for_testing", + "name": "remote_java_tools_linux_for_testing", + "patch_cmds": [ + "test -f BUILD && chmod u+w BUILD || true", + "echo >> BUILD", + "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD" + ], + "patch_cmds_win": [ + "Add-Content -Path BUILD -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force" + ], + "sha256": "512582cac5b7ea7974a77b0da4581b21f546c9478f206eedf54687eeac035989", + "urls": [ + "https://mirror.bazel.build/bazel_java_tools/releases/java/v11.9/java_tools_linux-v11.9.zip", + "https://github.com/bazelbuild/java_tools/releases/download/java_v11.9/java_tools_linux-v11.9.zip" + ] + }, + "remote_java_tools_test": { + "generator_function": "dist_http_archive", + "generator_name": "remote_java_tools_test", + "name": "remote_java_tools_test", + "patch_cmds": [ + "test -f BUILD && chmod u+w BUILD || true", + "echo >> BUILD", + "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD" + ], + "patch_cmds_win": [ + "Add-Content -Path BUILD -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force" + ], + "sha256": "5cd59ea6bf938a1efc1e11ea562d37b39c82f76781211b7cd941a2346ea8484d", + "urls": [ + "https://mirror.bazel.build/bazel_java_tools/releases/java/v11.9/java_tools-v11.9.zip", + "https://github.com/bazelbuild/java_tools/releases/download/java_v11.9/java_tools-v11.9.zip" + ] + }, + "remote_java_tools_test_darwin": { + "generator_function": "dist_http_archive", + "generator_name": "remote_java_tools_test_darwin", + "name": "remote_java_tools_test_darwin", + "patch_cmds": [ + "test -f BUILD && chmod u+w BUILD || true", + "echo >> BUILD", + "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD" + ], + "patch_cmds_win": [ + "Add-Content -Path BUILD -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force" + ], + "sha256": "b9e962c6a836ba1d7573f2473fab3a897c6370d4c2724bde4017b40932ff4fe4", + "urls": [ + "https://mirror.bazel.build/bazel_java_tools/releases/java/v11.9/java_tools_darwin-v11.9.zip", + "https://github.com/bazelbuild/java_tools/releases/download/java_v11.9/java_tools_darwin-v11.9.zip" + ] + }, + "remote_java_tools_test_linux": { + "generator_function": "dist_http_archive", + "generator_name": "remote_java_tools_test_linux", + "name": "remote_java_tools_test_linux", + "patch_cmds": [ + "test -f BUILD && chmod u+w BUILD || true", + "echo >> BUILD", + "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD" + ], + "patch_cmds_win": [ + "Add-Content -Path BUILD -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force" + ], + "sha256": "512582cac5b7ea7974a77b0da4581b21f546c9478f206eedf54687eeac035989", + "urls": [ + "https://mirror.bazel.build/bazel_java_tools/releases/java/v11.9/java_tools_linux-v11.9.zip", + "https://github.com/bazelbuild/java_tools/releases/download/java_v11.9/java_tools_linux-v11.9.zip" + ] + }, + "remote_java_tools_test_windows": { + "generator_function": "dist_http_archive", + "generator_name": "remote_java_tools_test_windows", + "name": "remote_java_tools_test_windows", + "patch_cmds": [ + "test -f BUILD && chmod u+w BUILD || true", + "echo >> BUILD", + "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD" + ], + "patch_cmds_win": [ + "Add-Content -Path BUILD -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force" + ], + "sha256": "677ab910046205020fd715489147c2bcfad8a35d9f5d94fdc998d217545bd87a", + "urls": [ + "https://mirror.bazel.build/bazel_java_tools/releases/java/v11.9/java_tools_windows-v11.9.zip", + "https://github.com/bazelbuild/java_tools/releases/download/java_v11.9/java_tools_windows-v11.9.zip" + ] + }, + "remote_java_tools_windows": { + "generator_function": "maybe", + "generator_name": "remote_java_tools_windows", + "name": "remote_java_tools_windows", + "sha256": "677ab910046205020fd715489147c2bcfad8a35d9f5d94fdc998d217545bd87a", + "urls": [ + "https://mirror.bazel.build/bazel_java_tools/releases/java/v11.9/java_tools_windows-v11.9.zip", + "https://github.com/bazelbuild/java_tools/releases/download/java_v11.9/java_tools_windows-v11.9.zip" + ] + }, + "remote_java_tools_windows_for_testing": { + "generator_function": "dist_http_archive", + "generator_name": "remote_java_tools_windows_for_testing", + "name": "remote_java_tools_windows_for_testing", + "patch_cmds": [ + "test -f BUILD && chmod u+w BUILD || true", + "echo >> BUILD", + "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD" + ], + "patch_cmds_win": [ + "Add-Content -Path BUILD -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force" + ], + "sha256": "677ab910046205020fd715489147c2bcfad8a35d9f5d94fdc998d217545bd87a", + "urls": [ + "https://mirror.bazel.build/bazel_java_tools/releases/java/v11.9/java_tools_windows-v11.9.zip", + "https://github.com/bazelbuild/java_tools/releases/download/java_v11.9/java_tools_windows-v11.9.zip" + ] + }, + "remotejdk11_linux": { + "build_file": "@bazel_tools//tools/jdk:jdk.BUILD", + "generator_function": "maybe", + "generator_name": "remotejdk11_linux", + "name": "remotejdk11_linux", + "sha256": "e064b61d93304012351242bf0823c6a2e41d9e28add7ea7f05378b7243d34247", + "strip_prefix": "zulu11.56.19-ca-jdk11.0.15-linux_x64", + "urls": [ + "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu11.56.19-ca-jdk11.0.15-linux_x64.tar.gz", + "https://cdn.azul.com/zulu/bin/zulu11.56.19-ca-jdk11.0.15-linux_x64.tar.gz" + ] + }, + "remotejdk11_linux_aarch64": { + "build_file": "@bazel_tools//tools/jdk:jdk.BUILD", + "generator_function": "maybe", + "generator_name": "remotejdk11_linux_aarch64", + "name": "remotejdk11_linux_aarch64", + "sha256": "fc7c41a0005180d4ca471c90d01e049469e0614cf774566d4cf383caa29d1a97", + "strip_prefix": "zulu11.56.19-ca-jdk11.0.15-linux_aarch64", + "urls": [ + "https://mirror.bazel.build/cdn.azul.com/zulu-embedded/bin/zulu11.56.19-ca-jdk11.0.15-linux_aarch64.tar.gz", + "https://cdn.azul.com/zulu-embedded/bin/zulu11.56.19-ca-jdk11.0.15-linux_aarch64.tar.gz" + ] + }, + "remotejdk11_linux_aarch64_for_testing": { + "build_file": "@local_jdk//:BUILD.bazel", + "generator_function": "dist_http_archive", + "generator_name": "remotejdk11_linux_aarch64_for_testing", + "name": "remotejdk11_linux_aarch64_for_testing", + "patch_cmds": [ + "test -f BUILD.bazel && chmod u+w BUILD.bazel || true", + "echo >> BUILD.bazel", + "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD.bazel" + ], + "patch_cmds_win": [ + "Add-Content -Path BUILD.bazel -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force" + ], + "sha256": "fc7c41a0005180d4ca471c90d01e049469e0614cf774566d4cf383caa29d1a97", + "strip_prefix": "zulu11.56.19-ca-jdk11.0.15-linux_aarch64", + "urls": [ + "https://mirror.bazel.build/cdn.azul.com/zulu-embedded/bin/zulu11.56.19-ca-jdk11.0.15-linux_aarch64.tar.gz", + "https://cdn.azul.com/zulu-embedded/bin/zulu11.56.19-ca-jdk11.0.15-linux_aarch64.tar.gz" + ] + }, + "remotejdk11_linux_for_testing": { + "build_file": "@local_jdk//:BUILD.bazel", + "generator_function": "dist_http_archive", + "generator_name": "remotejdk11_linux_for_testing", + "name": "remotejdk11_linux_for_testing", + "patch_cmds": [ + "test -f BUILD.bazel && chmod u+w BUILD.bazel || true", + "echo >> BUILD.bazel", + "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD.bazel" + ], + "patch_cmds_win": [ + "Add-Content -Path BUILD.bazel -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force" + ], + "sha256": "e064b61d93304012351242bf0823c6a2e41d9e28add7ea7f05378b7243d34247", + "strip_prefix": "zulu11.56.19-ca-jdk11.0.15-linux_x64", + "urls": [ + "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu11.56.19-ca-jdk11.0.15-linux_x64.tar.gz", + "https://cdn.azul.com/zulu/bin/zulu11.56.19-ca-jdk11.0.15-linux_x64.tar.gz" + ] + }, + "remotejdk11_linux_ppc64le": { + "build_file": "@bazel_tools//tools/jdk:jdk.BUILD", + "generator_function": "maybe", + "generator_name": "remotejdk11_linux_ppc64le", + "name": "remotejdk11_linux_ppc64le", + "sha256": "a8fba686f6eb8ae1d1a9566821dbd5a85a1108b96ad857fdbac5c1e4649fc56f", + "strip_prefix": "jdk-11.0.15+10", + "urls": [ + "https://mirror.bazel.build/github.com/adoptium/temurin11-binaries/releases/download/jdk-11.0.15+10/OpenJDK11U-jdk_ppc64le_linux_hotspot_11.0.15_10.tar.gz", + "https://github.com/adoptium/temurin11-binaries/releases/download/jdk-11.0.15+10/OpenJDK11U-jdk_ppc64le_linux_hotspot_11.0.15_10.tar.gz" + ] + }, + "remotejdk11_linux_ppc64le_for_testing": { + "build_file": "@local_jdk//:BUILD.bazel", + "generator_function": "dist_http_archive", + "generator_name": "remotejdk11_linux_ppc64le_for_testing", + "name": "remotejdk11_linux_ppc64le_for_testing", + "patch_cmds": [ + "test -f BUILD.bazel && chmod u+w BUILD.bazel || true", + "echo >> BUILD.bazel", + "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD.bazel" + ], + "patch_cmds_win": [ + "Add-Content -Path BUILD.bazel -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force" + ], + "sha256": "a8fba686f6eb8ae1d1a9566821dbd5a85a1108b96ad857fdbac5c1e4649fc56f", + "strip_prefix": "jdk-11.0.15+10", + "urls": [ + "https://mirror.bazel.build/github.com/adoptium/temurin11-binaries/releases/download/jdk-11.0.15+10/OpenJDK11U-jdk_ppc64le_linux_hotspot_11.0.15_10.tar.gz", + "https://github.com/adoptium/temurin11-binaries/releases/download/jdk-11.0.15+10/OpenJDK11U-jdk_ppc64le_linux_hotspot_11.0.15_10.tar.gz" + ] + }, + "remotejdk11_linux_s390x": { + "build_file": "@bazel_tools//tools/jdk:jdk.BUILD", + "generator_function": "maybe", + "generator_name": "remotejdk11_linux_s390x", + "name": "remotejdk11_linux_s390x", + "sha256": "a58fc0361966af0a5d5a31a2d8a208e3c9bb0f54f345596fd80b99ea9a39788b", + "strip_prefix": "jdk-11.0.15+10", + "urls": [ + "https://mirror.bazel.build/github.com/adoptium/temurin11-binaries/releases/download/jdk-11.0.15+10/OpenJDK11U-jdk_s390x_linux_hotspot_11.0.15_10.tar.gz", + "https://github.com/adoptium/temurin11-binaries/releases/download/jdk-11.0.15+10/OpenJDK11U-jdk_s390x_linux_hotspot_11.0.15_10.tar.gz" + ] + }, + "remotejdk11_linux_s390x_for_testing": { + "build_file": "@local_jdk//:BUILD.bazel", + "generator_function": "dist_http_archive", + "generator_name": "remotejdk11_linux_s390x_for_testing", + "name": "remotejdk11_linux_s390x_for_testing", + "patch_cmds": [ + "test -f BUILD.bazel && chmod u+w BUILD.bazel || true", + "echo >> BUILD.bazel", + "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD.bazel" + ], + "patch_cmds_win": [ + "Add-Content -Path BUILD.bazel -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force" + ], + "sha256": "a58fc0361966af0a5d5a31a2d8a208e3c9bb0f54f345596fd80b99ea9a39788b", + "strip_prefix": "jdk-11.0.15+10", + "urls": [ + "https://mirror.bazel.build/github.com/adoptium/temurin11-binaries/releases/download/jdk-11.0.15+10/OpenJDK11U-jdk_s390x_linux_hotspot_11.0.15_10.tar.gz", + "https://github.com/adoptium/temurin11-binaries/releases/download/jdk-11.0.15+10/OpenJDK11U-jdk_s390x_linux_hotspot_11.0.15_10.tar.gz" + ] + }, + "remotejdk11_macos": { + "build_file": "@bazel_tools//tools/jdk:jdk.BUILD", + "generator_function": "maybe", + "generator_name": "remotejdk11_macos", + "name": "remotejdk11_macos", + "sha256": "2614e5c5de8e989d4d81759de4c333aa5b867b17ab9ee78754309ba65c7f6f55", + "strip_prefix": "zulu11.56.19-ca-jdk11.0.15-macosx_x64", + "urls": [ + "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu11.56.19-ca-jdk11.0.15-macosx_x64.tar.gz", + "https://cdn.azul.com/zulu/bin/zulu11.56.19-ca-jdk11.0.15-macosx_x64.tar.gz" + ] + }, + "remotejdk11_macos_aarch64": { + "build_file": "@bazel_tools//tools/jdk:jdk.BUILD", + "generator_function": "maybe", + "generator_name": "remotejdk11_macos_aarch64", + "name": "remotejdk11_macos_aarch64", + "sha256": "6bb0d2c6e8a29dcd9c577bbb2986352ba12481a9549ac2c0bcfd00ed60e538d2", + "strip_prefix": "zulu11.56.19-ca-jdk11.0.15-macosx_aarch64", + "urls": [ + "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu11.56.19-ca-jdk11.0.15-macosx_aarch64.tar.gz", + "https://cdn.azul.com/zulu/bin/zulu11.56.19-ca-jdk11.0.15-macosx_aarch64.tar.gz" + ] + }, + "remotejdk11_macos_aarch64_for_testing": { + "build_file": "@local_jdk//:BUILD.bazel", + "generator_function": "dist_http_archive", + "generator_name": "remotejdk11_macos_aarch64_for_testing", + "name": "remotejdk11_macos_aarch64_for_testing", + "patch_cmds": [ + "test -f BUILD.bazel && chmod u+w BUILD.bazel || true", + "echo >> BUILD.bazel", + "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD.bazel" + ], + "patch_cmds_win": [ + "Add-Content -Path BUILD.bazel -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force" + ], + "sha256": "6bb0d2c6e8a29dcd9c577bbb2986352ba12481a9549ac2c0bcfd00ed60e538d2", + "strip_prefix": "zulu11.56.19-ca-jdk11.0.15-macosx_aarch64", + "urls": [ + "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu11.56.19-ca-jdk11.0.15-macosx_aarch64.tar.gz", + "https://cdn.azul.com/zulu/bin/zulu11.56.19-ca-jdk11.0.15-macosx_aarch64.tar.gz" + ] + }, + "remotejdk11_macos_for_testing": { + "build_file": "@local_jdk//:BUILD.bazel", + "generator_function": "dist_http_archive", + "generator_name": "remotejdk11_macos_for_testing", + "name": "remotejdk11_macos_for_testing", + "patch_cmds": [ + "test -f BUILD.bazel && chmod u+w BUILD.bazel || true", + "echo >> BUILD.bazel", + "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD.bazel" + ], + "patch_cmds_win": [ + "Add-Content -Path BUILD.bazel -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force" + ], + "sha256": "2614e5c5de8e989d4d81759de4c333aa5b867b17ab9ee78754309ba65c7f6f55", + "strip_prefix": "zulu11.56.19-ca-jdk11.0.15-macosx_x64", + "urls": [ + "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu11.56.19-ca-jdk11.0.15-macosx_x64.tar.gz", + "https://cdn.azul.com/zulu/bin/zulu11.56.19-ca-jdk11.0.15-macosx_x64.tar.gz" + ] + }, + "remotejdk11_win": { + "build_file": "@bazel_tools//tools/jdk:jdk.BUILD", + "generator_function": "maybe", + "generator_name": "remotejdk11_win", + "name": "remotejdk11_win", + "sha256": "a106c77389a63b6bd963a087d5f01171bd32aa3ee7377ecef87531390dcb9050", + "strip_prefix": "zulu11.56.19-ca-jdk11.0.15-win_x64", + "urls": [ + "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu11.56.19-ca-jdk11.0.15-win_x64.zip", + "https://cdn.azul.com/zulu/bin/zulu11.56.19-ca-jdk11.0.15-win_x64.zip" + ] + }, + "remotejdk11_win_arm64": { + "build_file": "@bazel_tools//tools/jdk:jdk.BUILD", + "generator_function": "maybe", + "generator_name": "remotejdk11_win_arm64", + "name": "remotejdk11_win_arm64", + "sha256": "b8a28e6e767d90acf793ea6f5bed0bb595ba0ba5ebdf8b99f395266161e53ec2", + "strip_prefix": "jdk-11.0.13+8", + "urls": [ + "https://mirror.bazel.build/aka.ms/download-jdk/microsoft-jdk-11.0.13.8.1-windows-aarch64.zip" + ] + }, + "remotejdk11_win_arm64_for_testing": { + "build_file": "@local_jdk//:BUILD.bazel", + "generator_function": "dist_http_archive", + "generator_name": "remotejdk11_win_arm64_for_testing", + "name": "remotejdk11_win_arm64_for_testing", + "patch_cmds": [ + "test -f BUILD.bazel && chmod u+w BUILD.bazel || true", + "echo >> BUILD.bazel", + "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD.bazel" + ], + "patch_cmds_win": [ + "Add-Content -Path BUILD.bazel -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force" + ], + "sha256": "b8a28e6e767d90acf793ea6f5bed0bb595ba0ba5ebdf8b99f395266161e53ec2", + "strip_prefix": "jdk-11.0.13+8", + "urls": [ + "https://mirror.bazel.build/aka.ms/download-jdk/microsoft-jdk-11.0.13.8.1-windows-aarch64.zip" + ] + }, + "remotejdk11_win_for_testing": { + "build_file": "@local_jdk//:BUILD.bazel", + "generator_function": "dist_http_archive", + "generator_name": "remotejdk11_win_for_testing", + "name": "remotejdk11_win_for_testing", + "patch_cmds": [ + "test -f BUILD.bazel && chmod u+w BUILD.bazel || true", + "echo >> BUILD.bazel", + "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD.bazel" + ], + "patch_cmds_win": [ + "Add-Content -Path BUILD.bazel -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force" + ], + "sha256": "a106c77389a63b6bd963a087d5f01171bd32aa3ee7377ecef87531390dcb9050", + "strip_prefix": "zulu11.56.19-ca-jdk11.0.15-win_x64", + "urls": [ + "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu11.56.19-ca-jdk11.0.15-win_x64.zip", + "https://cdn.azul.com/zulu/bin/zulu11.56.19-ca-jdk11.0.15-win_x64.zip" + ] + }, + "remotejdk17_linux": { + "build_file": "@bazel_tools//tools/jdk:jdk.BUILD", + "generator_function": "maybe", + "generator_name": "remotejdk17_linux", + "name": "remotejdk17_linux", + "sha256": "73d5c4bae20325ca41b606f7eae64669db3aac638c5b3ead4a975055846ad6de", + "strip_prefix": "zulu17.32.13-ca-jdk17.0.2-linux_x64", + "urls": [ + "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu17.32.13-ca-jdk17.0.2-linux_x64.tar.gz", + "https://cdn.azul.com/zulu/bin/zulu17.32.13-ca-jdk17.0.2-linux_x64.tar.gz" + ] + }, + "remotejdk17_linux_aarch64": { + "build_file": "@bazel_tools//tools/jdk:jdk.BUILD", + "generator_function": "maybe", + "generator_name": "remotejdk17_linux_aarch64", + "name": "remotejdk17_linux_aarch64", + "sha256": "2b8066bbdbc5cff422bb6b6db1b8f8d362b576340cce8492f1255502af632b06", + "strip_prefix": "zulu17.32.13-ca-jdk17.0.2-linux_aarch64", + "urls": [ + "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu17.32.13-ca-jdk17.0.2-linux_aarch64.tar.gz", + "https://cdn.azul.com/zulu/bin/zulu17.32.13-ca-jdk17.0.2-linux_aarch64.tar.gz" + ] + }, + "remotejdk17_linux_for_testing": { + "build_file": "@local_jdk//:BUILD.bazel", + "generator_function": "dist_http_archive", + "generator_name": "remotejdk17_linux_for_testing", + "name": "remotejdk17_linux_for_testing", + "patch_cmds": [ + "test -f BUILD.bazel && chmod u+w BUILD.bazel || true", + "echo >> BUILD.bazel", + "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD.bazel" + ], + "patch_cmds_win": [ + "Add-Content -Path BUILD.bazel -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force" + ], + "sha256": "73d5c4bae20325ca41b606f7eae64669db3aac638c5b3ead4a975055846ad6de", + "strip_prefix": "zulu17.32.13-ca-jdk17.0.2-linux_x64", + "urls": [ + "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu17.32.13-ca-jdk17.0.2-linux_x64.tar.gz", + "https://cdn.azul.com/zulu/bin/zulu17.32.13-ca-jdk17.0.2-linux_x64.tar.gz" + ] + }, + "remotejdk17_macos": { + "build_file": "@bazel_tools//tools/jdk:jdk.BUILD", + "generator_function": "maybe", + "generator_name": "remotejdk17_macos", + "name": "remotejdk17_macos", + "sha256": "89d04b2d99b05dcb25114178e65f6a1c5ca742e125cab0a63d87e7e42f3fcb80", + "strip_prefix": "zulu17.32.13-ca-jdk17.0.2-macosx_x64", + "urls": [ + "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu17.32.13-ca-jdk17.0.2-macosx_x64.tar.gz", + "https://cdn.azul.com/zulu/bin/zulu17.32.13-ca-jdk17.0.2-macosx_x64.tar.gz" + ] + }, + "remotejdk17_macos_aarch64": { + "build_file": "@bazel_tools//tools/jdk:jdk.BUILD", + "generator_function": "maybe", + "generator_name": "remotejdk17_macos_aarch64", + "name": "remotejdk17_macos_aarch64", + "sha256": "54247dde248ffbcd3c048675504b1c503b81daf2dc0d64a79e353c48d383c977", + "strip_prefix": "zulu17.32.13-ca-jdk17.0.2-macosx_aarch64", + "urls": [ + "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu17.32.13-ca-jdk17.0.2-macosx_aarch64.tar.gz", + "https://cdn.azul.com/zulu/bin/zulu17.32.13-ca-jdk17.0.2-macosx_aarch64.tar.gz" + ] + }, + "remotejdk17_macos_aarch64_for_testing": { + "build_file": "@local_jdk//:BUILD.bazel", + "generator_function": "dist_http_archive", + "generator_name": "remotejdk17_macos_aarch64_for_testing", + "name": "remotejdk17_macos_aarch64_for_testing", + "patch_cmds": [ + "test -f BUILD.bazel && chmod u+w BUILD.bazel || true", + "echo >> BUILD.bazel", + "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD.bazel" + ], + "patch_cmds_win": [ + "Add-Content -Path BUILD.bazel -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force" + ], + "sha256": "54247dde248ffbcd3c048675504b1c503b81daf2dc0d64a79e353c48d383c977", + "strip_prefix": "zulu17.32.13-ca-jdk17.0.2-macosx_aarch64", + "urls": [ + "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu17.32.13-ca-jdk17.0.2-macosx_aarch64.tar.gz", + "https://cdn.azul.com/zulu/bin/zulu17.32.13-ca-jdk17.0.2-macosx_aarch64.tar.gz" + ] + }, + "remotejdk17_macos_for_testing": { + "build_file": "@local_jdk//:BUILD.bazel", + "generator_function": "dist_http_archive", + "generator_name": "remotejdk17_macos_for_testing", + "name": "remotejdk17_macos_for_testing", + "patch_cmds": [ + "test -f BUILD.bazel && chmod u+w BUILD.bazel || true", + "echo >> BUILD.bazel", + "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD.bazel" + ], + "patch_cmds_win": [ + "Add-Content -Path BUILD.bazel -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force" + ], + "sha256": "89d04b2d99b05dcb25114178e65f6a1c5ca742e125cab0a63d87e7e42f3fcb80", + "strip_prefix": "zulu17.32.13-ca-jdk17.0.2-macosx_x64", + "urls": [ + "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu17.32.13-ca-jdk17.0.2-macosx_x64.tar.gz", + "https://cdn.azul.com/zulu/bin/zulu17.32.13-ca-jdk17.0.2-macosx_x64.tar.gz" + ] + }, + "remotejdk17_win": { + "build_file": "@bazel_tools//tools/jdk:jdk.BUILD", + "generator_function": "maybe", + "generator_name": "remotejdk17_win", + "name": "remotejdk17_win", + "sha256": "e965aa0ea7a0661a3446cf8f10ee00684b851f883b803315289f26b4aa907fdb", + "strip_prefix": "zulu17.32.13-ca-jdk17.0.2-win_x64", + "urls": [ + "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu17.32.13-ca-jdk17.0.2-win_x64.zip", + "https://cdn.azul.com/zulu/bin/zulu17.32.13-ca-jdk17.0.2-win_x64.zip" + ] + }, + "remotejdk17_win_arm64": { + "build_file": "@bazel_tools//tools/jdk:jdk.BUILD", + "generator_function": "maybe", + "generator_name": "remotejdk17_win_arm64", + "name": "remotejdk17_win_arm64", + "sha256": "811d7e7591bac4f081dfb00ba6bd15b6fc5969e1f89f0f327ef75147027c3877", + "strip_prefix": "zulu17.30.15-ca-jdk17.0.1-win_aarch64", + "urls": [ + "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu17.30.15-ca-jdk17.0.1-win_aarch64.zip", + "https://cdn.azul.com/zulu/bin/zulu17.30.15-ca-jdk17.0.1-win_aarch64.zip" + ] + }, + "remotejdk17_win_arm64_for_testing": { + "build_file": "@local_jdk//:BUILD.bazel", + "generator_function": "dist_http_archive", + "generator_name": "remotejdk17_win_arm64_for_testing", + "name": "remotejdk17_win_arm64_for_testing", + "patch_cmds": [ + "test -f BUILD.bazel && chmod u+w BUILD.bazel || true", + "echo >> BUILD.bazel", + "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD.bazel" + ], + "patch_cmds_win": [ + "Add-Content -Path BUILD.bazel -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force" + ], + "sha256": "811d7e7591bac4f081dfb00ba6bd15b6fc5969e1f89f0f327ef75147027c3877", + "strip_prefix": "zulu17.30.15-ca-jdk17.0.1-win_aarch64", + "urls": [ + "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu17.30.15-ca-jdk17.0.1-win_aarch64.zip", + "https://cdn.azul.com/zulu/bin/zulu17.30.15-ca-jdk17.0.1-win_aarch64.zip" + ] + }, + "remotejdk17_win_for_testing": { + "build_file": "@local_jdk//:BUILD.bazel", + "generator_function": "dist_http_archive", + "generator_name": "remotejdk17_win_for_testing", + "name": "remotejdk17_win_for_testing", + "patch_cmds": [ + "test -f BUILD.bazel && chmod u+w BUILD.bazel || true", + "echo >> BUILD.bazel", + "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD.bazel" + ], + "patch_cmds_win": [ + "Add-Content -Path BUILD.bazel -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force" + ], + "sha256": "e965aa0ea7a0661a3446cf8f10ee00684b851f883b803315289f26b4aa907fdb", + "strip_prefix": "zulu17.32.13-ca-jdk17.0.2-win_x64", + "urls": [ + "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu17.32.13-ca-jdk17.0.2-win_x64.zip", + "https://cdn.azul.com/zulu/bin/zulu17.32.13-ca-jdk17.0.2-win_x64.zip" + ] + }, + "remotejdk18_linux": { + "build_file": "@bazel_tools//tools/jdk:jdk.BUILD", + "generator_function": "maybe", + "generator_name": "remotejdk18_linux", + "name": "remotejdk18_linux", + "sha256": "959a94ca4097dcaabc7886784cec10dfdf2b0a3bff890ea8943cc09c5fff29cb", + "strip_prefix": "zulu18.28.13-ca-jdk18.0.0-linux_x64", + "urls": [ + "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu18.28.13-ca-jdk18.0.0-linux_x64.tar.gz", + "https://cdn.azul.com/zulu/bin/zulu18.28.13-ca-jdk18.0.0-linux_x64.tar.gz" + ] + }, + "remotejdk18_linux_aarch64": { + "build_file": "@bazel_tools//tools/jdk:jdk.BUILD", + "generator_function": "maybe", + "generator_name": "remotejdk18_linux_aarch64", + "name": "remotejdk18_linux_aarch64", + "sha256": "a1d5f78172f32f819d08e9043b0f82fa7af738b37c55c6ca8d6092c61d204d53", + "strip_prefix": "zulu18.28.13-ca-jdk18.0.0-linux_aarch64", + "urls": [ + "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu18.28.13-ca-jdk18.0.0-linux_aarch64.tar.gz", + "https://cdn.azul.com/zulu/bin/zulu18.28.13-ca-jdk18.0.0-linux_aarch64.tar.gz" + ] + }, + "remotejdk18_linux_for_testing": { + "build_file": "@local_jdk//:BUILD.bazel", + "generator_function": "dist_http_archive", + "generator_name": "remotejdk18_linux_for_testing", + "name": "remotejdk18_linux_for_testing", + "patch_cmds": [ + "test -f BUILD.bazel && chmod u+w BUILD.bazel || true", + "echo >> BUILD.bazel", + "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD.bazel" + ], + "patch_cmds_win": [ + "Add-Content -Path BUILD.bazel -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force" + ], + "sha256": "959a94ca4097dcaabc7886784cec10dfdf2b0a3bff890ea8943cc09c5fff29cb", + "strip_prefix": "zulu18.28.13-ca-jdk18.0.0-linux_x64", + "urls": [ + "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu18.28.13-ca-jdk18.0.0-linux_x64.tar.gz", + "https://cdn.azul.com/zulu/bin/zulu18.28.13-ca-jdk18.0.0-linux_x64.tar.gz" + ] + }, + "remotejdk18_macos": { + "build_file": "@bazel_tools//tools/jdk:jdk.BUILD", + "generator_function": "maybe", + "generator_name": "remotejdk18_macos", + "name": "remotejdk18_macos", + "sha256": "780a9aa4bda95a6793bf41d13f837c59ef915e9bfd0e0c5fd4c70e4cdaa88541", + "strip_prefix": "zulu18.28.13-ca-jdk18.0.0-macosx_x64", + "urls": [ + "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu18.28.13-ca-jdk18.0.0-macosx_x64.tar.gz", + "https://cdn.azul.com/zulu/bin/zulu18.28.13-ca-jdk18.0.0-macosx_x64.tar.gz" + ] + }, + "remotejdk18_macos_aarch64": { + "build_file": "@bazel_tools//tools/jdk:jdk.BUILD", + "generator_function": "maybe", + "generator_name": "remotejdk18_macos_aarch64", + "name": "remotejdk18_macos_aarch64", + "sha256": "9595e001451e201fdf33c1952777968a3ac18fe37273bdeaea5b5ed2c4950432", + "strip_prefix": "zulu18.28.13-ca-jdk18.0.0-macosx_aarch64", + "urls": [ + "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu18.28.13-ca-jdk18.0.0-macosx_aarch64.tar.gz", + "https://cdn.azul.com/zulu/bin/zulu18.28.13-ca-jdk18.0.0-macosx_aarch64.tar.gz" + ] + }, + "remotejdk18_macos_aarch64_for_testing": { + "build_file": "@local_jdk//:BUILD.bazel", + "generator_function": "dist_http_archive", + "generator_name": "remotejdk18_macos_aarch64_for_testing", + "name": "remotejdk18_macos_aarch64_for_testing", + "patch_cmds": [ + "test -f BUILD.bazel && chmod u+w BUILD.bazel || true", + "echo >> BUILD.bazel", + "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD.bazel" + ], + "patch_cmds_win": [ + "Add-Content -Path BUILD.bazel -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force" + ], + "sha256": "9595e001451e201fdf33c1952777968a3ac18fe37273bdeaea5b5ed2c4950432", + "strip_prefix": "zulu18.28.13-ca-jdk18.0.0-macosx_aarch64", + "urls": [ + "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu18.28.13-ca-jdk18.0.0-macosx_aarch64.tar.gz", + "https://cdn.azul.com/zulu/bin/zulu18.28.13-ca-jdk18.0.0-macosx_aarch64.tar.gz" + ] + }, + "remotejdk18_macos_for_testing": { + "build_file": "@local_jdk//:BUILD.bazel", + "generator_function": "dist_http_archive", + "generator_name": "remotejdk18_macos_for_testing", + "name": "remotejdk18_macos_for_testing", + "patch_cmds": [ + "test -f BUILD.bazel && chmod u+w BUILD.bazel || true", + "echo >> BUILD.bazel", + "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD.bazel" + ], + "patch_cmds_win": [ + "Add-Content -Path BUILD.bazel -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force" + ], + "sha256": "780a9aa4bda95a6793bf41d13f837c59ef915e9bfd0e0c5fd4c70e4cdaa88541", + "strip_prefix": "zulu18.28.13-ca-jdk18.0.0-macosx_x64", + "urls": [ + "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu18.28.13-ca-jdk18.0.0-macosx_x64.tar.gz", + "https://cdn.azul.com/zulu/bin/zulu18.28.13-ca-jdk18.0.0-macosx_x64.tar.gz" + ] + }, + "remotejdk18_win": { + "build_file": "@bazel_tools//tools/jdk:jdk.BUILD", + "generator_function": "maybe", + "generator_name": "remotejdk18_win", + "name": "remotejdk18_win", + "sha256": "6c75498163b047595386fdb909cb6d4e04282c3a81799743c5e1f9316391fe16", + "strip_prefix": "zulu18.28.13-ca-jdk18.0.0-win_x64", + "urls": [ + "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu18.28.13-ca-jdk18.0.0-win_x64.zip", + "https://cdn.azul.com/zulu/bin/zulu18.28.13-ca-jdk18.0.0-win_x64.zip" + ] + }, + "remotejdk18_win_arm64": { + "build_file": "@bazel_tools//tools/jdk:jdk.BUILD", + "generator_function": "maybe", + "generator_name": "remotejdk18_win_arm64", + "name": "remotejdk18_win_arm64", + "sha256": "9b52b259516e4140ee56b91f77750667bffbc543e78ad8c39082449d4c377b54", + "strip_prefix": "zulu18.28.13-ca-jdk18.0.0-win_aarch64", + "urls": [ + "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu18.28.13-ca-jdk18.0.0-win_aarch64.zip", + "https://cdn.azul.com/zulu/bin/zulu18.28.13-ca-jdk18.0.0-win_aarch64.zip" + ] + }, + "remotejdk18_win_arm64_for_testing": { + "build_file": "@local_jdk//:BUILD.bazel", + "generator_function": "dist_http_archive", + "generator_name": "remotejdk18_win_arm64_for_testing", + "name": "remotejdk18_win_arm64_for_testing", + "patch_cmds": [ + "test -f BUILD.bazel && chmod u+w BUILD.bazel || true", + "echo >> BUILD.bazel", + "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD.bazel" + ], + "patch_cmds_win": [ + "Add-Content -Path BUILD.bazel -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force" + ], + "sha256": "9b52b259516e4140ee56b91f77750667bffbc543e78ad8c39082449d4c377b54", + "strip_prefix": "zulu18.28.13-ca-jdk18.0.0-win_aarch64", + "urls": [ + "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu18.28.13-ca-jdk18.0.0-win_aarch64.zip", + "https://cdn.azul.com/zulu/bin/zulu18.28.13-ca-jdk18.0.0-win_aarch64.zip" + ] + }, + "remotejdk18_win_for_testing": { + "build_file": "@local_jdk//:BUILD.bazel", + "generator_function": "dist_http_archive", + "generator_name": "remotejdk18_win_for_testing", + "name": "remotejdk18_win_for_testing", + "patch_cmds": [ + "test -f BUILD.bazel && chmod u+w BUILD.bazel || true", + "echo >> BUILD.bazel", + "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD.bazel" + ], + "patch_cmds_win": [ + "Add-Content -Path BUILD.bazel -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force" + ], + "sha256": "6c75498163b047595386fdb909cb6d4e04282c3a81799743c5e1f9316391fe16", + "strip_prefix": "zulu18.28.13-ca-jdk18.0.0-win_x64", + "urls": [ + "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu18.28.13-ca-jdk18.0.0-win_x64.zip", + "https://cdn.azul.com/zulu/bin/zulu18.28.13-ca-jdk18.0.0-win_x64.zip" + ] + }, + "rules_cc": { + "generator_function": "dist_http_archive", + "generator_name": "rules_cc", + "name": "rules_cc", + "patch_cmds": [ + "test -f BUILD && chmod u+w BUILD || true", + "echo >> BUILD", + "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD" + ], + "patch_cmds_win": [ + "Add-Content -Path BUILD -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force" + ], + "sha256": "58bff40957ace85c2de21ebfc72e53ed3a0d33af8cc20abd0ceec55c63be7de2", + "urls": [ + "https://github.com/bazelbuild/rules_cc/releases/download/0.0.2/rules_cc-0.0.2.tar.gz" + ] + }, + "rules_cc-0.0.2.tar.gz": { + "name": "rules_cc-0.0.2.tar.gz", + "sha256": "58bff40957ace85c2de21ebfc72e53ed3a0d33af8cc20abd0ceec55c63be7de2", + "urls": [ + "https://github.com/bazelbuild/rules_cc/releases/download/0.0.2/rules_cc-0.0.2.tar.gz" + ] + }, + "rules_java": { + "generator_function": "dist_http_archive", + "generator_name": "rules_java", + "name": "rules_java", + "patch_cmds": [ + "test -f BUILD && chmod u+w BUILD || true", + "echo >> BUILD", + "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD" + ], + "patch_cmds_win": [ + "Add-Content -Path BUILD -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force" + ], + "sha256": "bc81f1ba47ef5cc68ad32225c3d0e70b8c6f6077663835438da8d5733f917598", + "strip_prefix": "rules_java-7cf3cefd652008d0a64a419c34c13bdca6c8f178", + "urls": [ + "https://mirror.bazel.build/github.com/bazelbuild/rules_java/archive/7cf3cefd652008d0a64a419c34c13bdca6c8f178.zip", + "https://github.com/bazelbuild/rules_java/archive/7cf3cefd652008d0a64a419c34c13bdca6c8f178.zip" + ] + }, + "rules_jvm_external": { + "generator_function": "grpc_extra_deps", + "generator_name": "rules_jvm_external", + "name": "rules_jvm_external", + "sha256": "f36441aa876c4f6427bfb2d1f2d723b48e9d930b62662bf723ddfb8fc80f0140", + "strip_prefix": "rules_jvm_external-4.1", + "urls": [ + "https://github.com/bazelbuild/rules_jvm_external/archive/4.1.zip" + ] + }, + "rules_license": { + "generator_function": "dist_http_archive", + "generator_name": "rules_license", + "name": "rules_license", + "sha256": "00ccc0df21312c127ac4b12880ab0f9a26c1cff99442dc6c5a331750360de3c3", + "urls": [ + "https://mirror.bazel.build/github.com/bazelbuild/rules_license/releases/download/0.0.3/rules_license-0.0.3.tar.gz", + "https://github.com/bazelbuild/rules_license/releases/download/0.0.3/rules_license-0.0.3.tar.gz" + ] + }, + "rules_license-0.0.3.tar.gz": { + "name": "rules_license-0.0.3.tar.gz", + "sha256": "00ccc0df21312c127ac4b12880ab0f9a26c1cff99442dc6c5a331750360de3c3", + "urls": [ + "https://mirror.bazel.build/github.com/bazelbuild/rules_license/releases/download/0.0.3/rules_license-0.0.3.tar.gz", + "https://github.com/bazelbuild/rules_license/releases/download/0.0.3/rules_license-0.0.3.tar.gz" + ] + }, + "rules_nodejs": { + "generator_function": "dist_http_archive", + "generator_name": "rules_nodejs", + "name": "rules_nodejs", + "sha256": "4d48998e3fa1e03c684e6bdf7ac98051232c7486bfa412e5b5475bbaec7bb257", + "urls": [ + "https://mirror.bazel.build/github.com/bazelbuild/rules_nodejs/releases/download/5.5.0/rules_nodejs-core-5.5.0.tar.gz", + "https://github.com/bazelbuild/rules_nodejs/releases/download/5.5.0/rules_nodejs-core-5.5.0.tar.gz" + ] + }, + "rules_nodejs-5.5.0.tar.gz": { + "name": "rules_nodejs-5.5.0.tar.gz", + "sha256": "0fad45a9bda7dc1990c47b002fd64f55041ea751fafc00cd34efb96107675778", + "urls": [ + "https://mirror.bazel.build/github.com/bazelbuild/rules_nodejs/releases/download/5.5.0/rules_nodejs-5.5.0.tar.gz", + "https://github.com/bazelbuild/rules_nodejs/releases/download/5.5.0/rules_nodejs-5.5.0.tar.gz" + ] + }, + "rules_nodejs-core-5.5.0.tar.gz": { + "name": "rules_nodejs-core-5.5.0.tar.gz", + "sha256": "4d48998e3fa1e03c684e6bdf7ac98051232c7486bfa412e5b5475bbaec7bb257", + "urls": [ + "https://mirror.bazel.build/github.com/bazelbuild/rules_nodejs/releases/download/5.5.0/rules_nodejs-core-5.5.0.tar.gz", + "https://github.com/bazelbuild/rules_nodejs/releases/download/5.5.0/rules_nodejs-core-5.5.0.tar.gz" + ] + }, + "rules_pkg": { + "generator_function": "dist_http_archive", + "generator_name": "rules_pkg", + "name": "rules_pkg", + "sha256": "8a298e832762eda1830597d64fe7db58178aa84cd5926d76d5b744d6558941c2", + "urls": [ + "https://mirror.bazel.build/github.com/bazelbuild/rules_pkg/releases/download/0.7.0/rules_pkg-0.7.0.tar.gz", + "https://github.com/bazelbuild/rules_pkg/releases/download/0.7.0/rules_pkg-0.7.0.tar.gz" + ] + }, + "rules_pkg-0.7.0.tar.gz": { + "name": "rules_pkg-0.7.0.tar.gz", + "sha256": "8a298e832762eda1830597d64fe7db58178aa84cd5926d76d5b744d6558941c2", + "urls": [ + "https://mirror.bazel.build/github.com/bazelbuild/rules_pkg/releases/download/0.7.0/rules_pkg-0.7.0.tar.gz", + "https://github.com/bazelbuild/rules_pkg/releases/download/0.7.0/rules_pkg-0.7.0.tar.gz" + ] + }, + "rules_proto": { + "generator_function": "dist_http_archive", + "generator_name": "rules_proto", + "name": "rules_proto", + "patch_cmds": [ + "test -f BUILD.bazel && chmod u+w BUILD.bazel || true", + "echo >> BUILD.bazel", + "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD.bazel" + ], + "patch_cmds_win": [ + "Add-Content -Path BUILD.bazel -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force" + ], + "sha256": "8e7d59a5b12b233be5652e3d29f42fba01c7cbab09f6b3a8d0a57ed6d1e9a0da", + "strip_prefix": "rules_proto-7e4afce6fe62dbff0a4a03450143146f9f2d7488", + "urls": [ + "https://mirror.bazel.build/github.com/bazelbuild/rules_proto/archive/7e4afce6fe62dbff0a4a03450143146f9f2d7488.tar.gz", + "https://github.com/bazelbuild/rules_proto/archive/7e4afce6fe62dbff0a4a03450143146f9f2d7488.tar.gz" + ] + }, + "six": { + "build_file": "@com_github_grpc_grpc//third_party:six.BUILD", + "generator_function": "grpc_deps", + "generator_name": "six", + "name": "six", + "sha256": "1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926", + "urls": [ + "https://files.pythonhosted.org/packages/71/39/171f1c67cd00715f190ba0b100d606d440a28c93c7714febeca8b79af85e/six-1.16.0.tar.gz" + ] + }, + "upb": { + "generator_function": "dist_http_archive", + "generator_name": "upb", + "name": "upb", + "sha256": "cf7f71eaff90b24c1a28b49645a9ff03a9a6c1e7134291ce70901cb63e7364b5", + "strip_prefix": "upb-a5477045acaa34586420942098f5fecd3570f577", + "urls": [ + "https://mirror.bazel.build/github.com/protocolbuffers/upb/archive/a5477045acaa34586420942098f5fecd3570f577.tar.gz", + "https://github.com/protocolbuffers/upb/archive/a5477045acaa34586420942098f5fecd3570f577.tar.gz" + ] + }, + "v1.47.0.tar.gz": { + "name": "v1.47.0.tar.gz", + "sha256": "271bdc890bf329a8de5b65819f0f9590a5381402429bca37625b63546ed19e54", + "urls": [ + "https://mirror.bazel.build/github.com/grpc/grpc/archive/v1.47.0.tar.gz", + "https://github.com/grpc/grpc/archive/v1.47.0.tar.gz" + ] + }, + "v1.5.2-3.zip": { + "name": "v1.5.2-3.zip", + "sha256": "366009a43cfada35015e4cc40a7efc4b7f017c6b8df5cac3f87d2478027b2056", + "urls": [ + "https://mirror.bazel.build/github.com/luben/zstd-jni/archive/refs/tags/v1.5.2-3.zip", + "https://github.com/luben/zstd-jni/archive/refs/tags/v1.5.2-3.zip" + ] + }, + "v3.19.6.tar.gz": { + "name": "v3.19.6.tar.gz", + "sha256": "9a301cf94a8ddcb380b901e7aac852780b826595075577bb967004050c835056", + "urls": [ + "https://mirror.bazel.build/github.com/protocolbuffers/protobuf/archive/v3.19.6.tar.gz", + "https://github.com/protocolbuffers/protobuf/archive/v3.19.6.tar.gz" + ] + }, + "zlib": { + "build_file": "@com_github_grpc_grpc//third_party:zlib.BUILD", + "generator_function": "grpc_deps", + "generator_name": "zlib", + "name": "zlib", + "sha256": "ef47b0fbe646d69a2fc5ba012cb278de8e8946a8e9649f83a807cc05559f0eff", + "strip_prefix": "zlib-21767c654d31d2dccdde4330529775c6c5fd5389", + "urls": [ + "https://storage.googleapis.com/grpc-bazel-mirror/github.com/madler/zlib/archive/21767c654d31d2dccdde4330529775c6c5fd5389.tar.gz", + "https://github.com/madler/zlib/archive/21767c654d31d2dccdde4330529775c6c5fd5389.tar.gz" + ] + }, + "zstd-jni": { + "build_file": "//third_party:zstd-jni/zstd-jni.BUILD", + "generator_function": "dist_http_archive", + "generator_name": "zstd-jni", + "name": "zstd-jni", + "patch_args": [ + "-p1" + ], + "patch_cmds": [ + "test -f BUILD.bazel && chmod u+w BUILD.bazel || true", + "echo >> BUILD.bazel", + "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD.bazel" + ], + "patch_cmds_win": [ + "Add-Content -Path BUILD.bazel -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force" + ], + "patches": [ + "//third_party:zstd-jni/Native.java.patch" + ], + "sha256": "366009a43cfada35015e4cc40a7efc4b7f017c6b8df5cac3f87d2478027b2056", + "strip_prefix": "zstd-jni-1.5.2-3", + "urls": [ + "https://mirror.bazel.build/github.com/luben/zstd-jni/archive/refs/tags/v1.5.2-3.zip", + "https://github.com/luben/zstd-jni/archive/refs/tags/v1.5.2-3.zip" + ] + }, + "zulu11.56.19-ca-jdk11.0.15-linux_aarch64.tar.gz": { + "name": "zulu11.56.19-ca-jdk11.0.15-linux_aarch64.tar.gz", + "sha256": "fc7c41a0005180d4ca471c90d01e049469e0614cf774566d4cf383caa29d1a97", + "urls": [ + "https://mirror.bazel.build/cdn.azul.com/zulu-embedded/bin/zulu11.56.19-ca-jdk11.0.15-linux_aarch64.tar.gz", + "https://cdn.azul.com/zulu-embedded/bin/zulu11.56.19-ca-jdk11.0.15-linux_aarch64.tar.gz" + ] + }, + "zulu11.56.19-ca-jdk11.0.15-linux_x64.tar.gz": { + "name": "zulu11.56.19-ca-jdk11.0.15-linux_x64.tar.gz", + "sha256": "e064b61d93304012351242bf0823c6a2e41d9e28add7ea7f05378b7243d34247", + "urls": [ + "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu11.56.19-ca-jdk11.0.15-linux_x64.tar.gz", + "https://cdn.azul.com/zulu/bin/zulu11.56.19-ca-jdk11.0.15-linux_x64.tar.gz" + ] + }, + "zulu11.56.19-ca-jdk11.0.15-macosx_aarch64.tar.gz": { + "name": "zulu11.56.19-ca-jdk11.0.15-macosx_aarch64.tar.gz", + "sha256": "6bb0d2c6e8a29dcd9c577bbb2986352ba12481a9549ac2c0bcfd00ed60e538d2", + "urls": [ + "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu11.56.19-ca-jdk11.0.15-macosx_aarch64.tar.gz", + "https://cdn.azul.com/zulu/bin/zulu11.56.19-ca-jdk11.0.15-macosx_aarch64.tar.gz" + ] + }, + "zulu11.56.19-ca-jdk11.0.15-macosx_x64.tar.gz": { + "name": "zulu11.56.19-ca-jdk11.0.15-macosx_x64.tar.gz", + "sha256": "2614e5c5de8e989d4d81759de4c333aa5b867b17ab9ee78754309ba65c7f6f55", + "urls": [ + "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu11.56.19-ca-jdk11.0.15-macosx_x64.tar.gz", + "https://cdn.azul.com/zulu/bin/zulu11.56.19-ca-jdk11.0.15-macosx_x64.tar.gz" + ] + }, + "zulu11.56.19-ca-jdk11.0.15-win_x64.zip": { + "name": "zulu11.56.19-ca-jdk11.0.15-win_x64.zip", + "sha256": "a106c77389a63b6bd963a087d5f01171bd32aa3ee7377ecef87531390dcb9050", + "urls": [ + "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu11.56.19-ca-jdk11.0.15-win_x64.zip", + "https://cdn.azul.com/zulu/bin/zulu11.56.19-ca-jdk11.0.15-win_x64.zip" + ] + }, + "zulu17.30.15-ca-jdk17.0.1-win_aarch64.zip": { + "name": "zulu17.30.15-ca-jdk17.0.1-win_aarch64.zip", + "sha256": "811d7e7591bac4f081dfb00ba6bd15b6fc5969e1f89f0f327ef75147027c3877", + "urls": [ + "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu17.30.15-ca-jdk17.0.1-win_aarch64.zip", + "https://cdn.azul.com/zulu/bin/zulu17.30.15-ca-jdk17.0.1-win_aarch64.zip" + ] + }, + "zulu17.32.13-ca-jdk17.0.2-linux_aarch64.tar.gz": { + "name": "zulu17.32.13-ca-jdk17.0.2-linux_aarch64.tar.gz", + "sha256": "2b8066bbdbc5cff422bb6b6db1b8f8d362b576340cce8492f1255502af632b06", + "urls": [ + "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu17.32.13-ca-jdk17.0.2-linux_aarch64.tar.gz", + "https://cdn.azul.com/zulu/bin/zulu17.32.13-ca-jdk17.0.2-linux_aarch64.tar.gz" + ] + }, + "zulu18.28.13-ca-jdk18.0.0-linux_aarch64.tar.gz": { + "name": "zulu18.28.13-ca-jdk18.0.0-linux_aarch64.tar.gz", + "sha256": "a1d5f78172f32f819d08e9043b0f82fa7af738b37c55c6ca8d6092c61d204d53", + "urls": [ + "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu18.28.13-ca-jdk18.0.0-linux_aarch64.tar.gz", + "https://cdn.azul.com/zulu/bin/zulu18.28.13-ca-jdk18.0.0-linux_aarch64.tar.gz" + ] + }, + "zulu18.28.13-ca-jdk18.0.0-win_aarch64.zip": { + "name": "zulu18.28.13-ca-jdk18.0.0-win_aarch64.zip", + "sha256": "9b52b259516e4140ee56b91f77750667bffbc543e78ad8c39082449d4c377b54", + "urls": [ + "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu18.28.13-ca-jdk18.0.0-win_aarch64.zip", + "https://cdn.azul.com/zulu/bin/zulu18.28.13-ca-jdk18.0.0-win_aarch64.zip" + ] + } +} diff --git a/pkgs/development/python-modules/tensorflow/bazel_6_1_0/strict_action_env.patch b/pkgs/development/python-modules/tensorflow/bazel_6_1_0/strict_action_env.patch new file mode 100644 index 0000000000000..1402c20f6bdb2 --- /dev/null +++ b/pkgs/development/python-modules/tensorflow/bazel_6_1_0/strict_action_env.patch @@ -0,0 +1,13 @@ +diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelRuleClassProvider.java b/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelRuleClassProvider.java +index a70b5559bc..10bdffe961 100644 +--- a/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelRuleClassProvider.java ++++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelRuleClassProvider.java +@@ -466,7 +466,7 @@ public class BazelRuleClassProvider { + // Note that --action_env does not propagate to the host config, so it is not a viable + // workaround when a genrule is itself built in the host config (e.g. nested genrules). See + // #8536. +- return "/bin:/usr/bin:/usr/local/bin"; ++ return "@strictActionEnvPatch@"; + } + + String newPath = ""; diff --git a/pkgs/development/python-modules/tensorflow/bazel_6_1_0/strict_proto_deps.patch b/pkgs/development/python-modules/tensorflow/bazel_6_1_0/strict_proto_deps.patch new file mode 100644 index 0000000000000..7362de8393110 --- /dev/null +++ b/pkgs/development/python-modules/tensorflow/bazel_6_1_0/strict_proto_deps.patch @@ -0,0 +1,21 @@ +diff --git a/src/main/starlark/builtins_bzl/common/java/proto/java_proto_library.bzl b/src/main/starlark/builtins_bzl/common/java/proto/java_proto_library.bzl +index 63f68167e4..f106e64c9b 100644 +--- a/src/main/starlark/builtins_bzl/common/java/proto/java_proto_library.bzl ++++ b/src/main/starlark/builtins_bzl/common/java/proto/java_proto_library.bzl +@@ -114,6 +114,7 @@ def java_compile_for_protos(ctx, output_jar_suffix, source_jar = None, deps = [] + exports = exports, + output = output_jar, + output_source_jar = source_jar, ++ strict_deps = ctx.fragments.proto.strict_proto_deps(), + injecting_rule_kind = injecting_rule_kind, + javac_opts = java_toolchain.compatible_javacopts("proto"), + enable_jspecify = False, +@@ -140,7 +141,7 @@ bazel_java_proto_aspect = aspect( + attr_aspects = ["deps", "exports"], + required_providers = [ProtoInfo], + provides = [JavaInfo, JavaProtoAspectInfo], +- fragments = ["java"], ++ fragments = ["java", "proto"], + ) + + def bazel_java_proto_library_rule(ctx): diff --git a/pkgs/development/python-modules/tensorflow/bazel_6_1_0/trim-last-argument-to-gcc-if-empty.patch b/pkgs/development/python-modules/tensorflow/bazel_6_1_0/trim-last-argument-to-gcc-if-empty.patch new file mode 100644 index 0000000000000..b93b252f36381 --- /dev/null +++ b/pkgs/development/python-modules/tensorflow/bazel_6_1_0/trim-last-argument-to-gcc-if-empty.patch @@ -0,0 +1,37 @@ +From 177b4720d6fbaa7fdd17e5e11b2c79ac8f246786 Mon Sep 17 00:00:00 2001 +From: "Wael M. Nasreddine" +Date: Thu, 27 Jun 2019 21:08:51 -0700 +Subject: [PATCH] Trim last argument to gcc if empty, on Darwin + +On Darwin, the last argument to GCC is coming up as an empty string. +This is breaking the build of proto_library targets. However, I was not +able to reproduce with the example cpp project[0]. + +This commit removes the last argument if it's an empty string. This is +not a problem on Linux. + +[0]: https://github.com/bazelbuild/examples/tree/master/cpp-tutorial/stage3 +--- + tools/cpp/osx_cc_wrapper.sh.tpl | 6 +++++- + 1 file changed, 5 insertions(+), 1 deletion(-) + +diff --git a/tools/cpp/osx_cc_wrapper.sh.tpl b/tools/cpp/osx_cc_wrapper.sh.tpl +index 4c85cd9b6b..6c611e3d25 100644 +--- a/tools/cpp/osx_cc_wrapper.sh.tpl ++++ b/tools/cpp/osx_cc_wrapper.sh.tpl +@@ -53,7 +53,11 @@ done + %{env} + + # Call the C++ compiler +-%{cc} "$@" ++if [[ ${*: -1} = "" ]]; then ++ %{cc} "${@:0:$#}" ++else ++ %{cc} "$@" ++fi + + function get_library_path() { + for libdir in ${LIB_DIRS}; do +-- +2.19.2 + diff --git a/pkgs/development/python-modules/tensorflow/bazel_6_1_0/update-srcDeps.py b/pkgs/development/python-modules/tensorflow/bazel_6_1_0/update-srcDeps.py new file mode 100755 index 0000000000000..d409a32e13890 --- /dev/null +++ b/pkgs/development/python-modules/tensorflow/bazel_6_1_0/update-srcDeps.py @@ -0,0 +1,54 @@ +#!/usr/bin/env python3 +import sys +import json + +if len(sys.argv) != 2: + print("usage: ./this-script src-deps.json < WORKSPACE", file=sys.stderr) + print("Takes the bazel WORKSPACE file and reads all archives into a json dict (by evaling it as python code)", file=sys.stderr) + print("Hail Eris.", file=sys.stderr) + sys.exit(1) + +http_archives = [] + +# just the kw args are the dict { name, sha256, urls … } +def http_archive(**kw): + http_archives.append(kw) +# like http_file +def http_file(**kw): + http_archives.append(kw) + +# this is inverted from http_archive/http_file and bundles multiple archives +def _distdir_tar(**kw): + for archive_name in kw['archives']: + http_archives.append({ + "name": archive_name, + "sha256": kw['sha256'][archive_name], + "urls": kw['urls'][archive_name] + }) + +# TODO? +def git_repository(**kw): + print(json.dumps(kw, sort_keys=True, indent=4), file=sys.stderr) + sys.exit(1) + +# execute the WORKSPACE like it was python code in this module, +# using all the function stubs from above. +exec(sys.stdin.read()) + +# transform to a dict with the names as keys +d = { el['name']: el for el in http_archives } + +def has_urls(el): + return ('url' in el and el['url']) or ('urls' in el and el['urls']) +def has_sha256(el): + return 'sha256' in el and el['sha256'] +bad_archives = list(filter(lambda el: not has_urls(el) or not has_sha256(el), d.values())) +if bad_archives: + print('Following bazel dependencies are missing url or sha256', file=sys.stderr) + print('Check bazel sources for master or non-checksummed dependencies', file=sys.stderr) + for el in bad_archives: + print(json.dumps(el, sort_keys=True, indent=4), file=sys.stderr) + sys.exit(1) + +with open(sys.argv[1], "w") as f: + print(json.dumps(d, sort_keys=True, indent=4), file=f) diff --git a/pkgs/development/python-modules/tensorflow/com_google_absl_add_log.patch b/pkgs/development/python-modules/tensorflow/com_google_absl_add_log.patch index ebb2fb129c06c..06b83bf53f025 100644 --- a/pkgs/development/python-modules/tensorflow/com_google_absl_add_log.patch +++ b/pkgs/development/python-modules/tensorflow/com_google_absl_add_log.patch @@ -1,7 +1,7 @@ diff -Naurd x/third_party/absl/system.absl.base.BUILD y/third_party/absl/system.absl.base.BUILD --- x/third_party/absl/system.absl.base.BUILD 2023-09-17 09:12:05.499753364 +0000 +++ y/third_party/absl/system.absl.base.BUILD 2023-09-17 09:16:01.200082822 +0000 -@@ -22,7 +22,12 @@ +@@ -22,7 +22,13 @@ cc_library( name = "raw_logging_internal", @@ -11,6 +11,7 @@ diff -Naurd x/third_party/absl/system.absl.base.BUILD y/third_party/absl/system. + "-labsl_log_internal_conditions", + "-labsl_log_internal_message", + "-labsl_log_internal_nullguard", ++ "-labsl_log_internal_check_op", + ], visibility = [ "//absl:__subpackages__", diff --git a/pkgs/development/python-modules/tensorflow/core-riegeli-proto.patch b/pkgs/development/python-modules/tensorflow/core-riegeli-proto.patch new file mode 100644 index 0000000000000..8129b0119bd71 --- /dev/null +++ b/pkgs/development/python-modules/tensorflow/core-riegeli-proto.patch @@ -0,0 +1,11 @@ +diff -Naurd x/tensorflow/workspace2.bzl y/tensorflow/workspace2.bzl +--- x/tensorflow/workspace2.bzl 2023-12-07 09:42:06.557980143 +0000 ++++ y/tensorflow/workspace2.bzl 2023-12-07 09:43:50.613924139 +0000 +@@ -862,6 +862,7 @@ + tf_http_archive( + name = "riegeli", + sha256 = "870ca080cdfc5eba696a72ccc3a54cbf0f2271befc0d459eafa8f065edfaadb2", ++ patch_file = ["//third_party:riegeli-proto.patch"], + strip_prefix = "riegeli-264ef7b4a1314d97265b37544b27cd3923ea72d2", + urls = tf_mirror_urls("https://github.com/google/riegeli/archive/264ef7b4a1314d97265b37544b27cd3923ea72d2.zip"), + ) diff --git a/pkgs/development/python-modules/tensorflow/core-rules-python-use-nix.patch b/pkgs/development/python-modules/tensorflow/core-rules-python-use-nix.patch new file mode 100644 index 0000000000000..366d1d5937bb4 --- /dev/null +++ b/pkgs/development/python-modules/tensorflow/core-rules-python-use-nix.patch @@ -0,0 +1,13 @@ +diff -Naurd x/WORKSPACE y/WORKSPACE +--- x/WORKSPACE 2023-11-16 08:55:37.370373002 +0000 ++++ y/WORKSPACE 2023-11-20 01:55:57.812931627 +0000 +@@ -17,6 +17,9 @@ + sha256 = "9d04041ac92a0985e344235f5d946f71ac543f1b1565f2cdbc9a2aaee8adf55b", + strip_prefix = "rules_python-0.26.0", + url = "https://github.com/bazelbuild/rules_python/releases/download/0.26.0/rules_python-0.26.0.tar.gz", ++ patches = [ ++ "//tensorflow:rules-python-use-nix.patch" ++ ], + ) + + load("@rules_python//python:repositories.bzl", "python_register_toolchains") diff --git a/pkgs/development/python-modules/tensorflow/default.nix b/pkgs/development/python-modules/tensorflow/default.nix index 69df6b23d50a9..1e53c66fc5b0f 100644 --- a/pkgs/development/python-modules/tensorflow/default.nix +++ b/pkgs/development/python-modules/tensorflow/default.nix @@ -1,6 +1,6 @@ { stdenv, - bazel_5, + bazel_6, buildBazelPackage, lib, fetchFromGitHub, @@ -14,6 +14,7 @@ pythonAtLeast, pythonOlder, python, + pythonRelaxDepsHook, # Python libraries numpy, tensorboard, @@ -27,6 +28,7 @@ opt-einsum, astunparse, h5py, + ml-dtypes, termcolor, grpcio, six, @@ -38,6 +40,10 @@ portpicker, tblib, typing-extensions, + distutils, + charset-normalizer, + markupsafe, + psutil, # Common deps git, pybind11, @@ -46,6 +52,12 @@ glibcLocales, cython, perl, + llvmPackages, + pkg-config, + ninja, + lndir, + writeShellScriptBin, + writeText, # Common libraries jemalloc, mpi, @@ -64,6 +76,7 @@ libjpeg_turbo, giflib, protobuf-core, + hdf5, # Upstream by default includes cuda support since tensorflow 1.15. We could do # that in nix as well. It would make some things easier and less confusing, but # it would also make the default tensorflow package unfree. See @@ -84,7 +97,7 @@ Foundation, Security, cctools, - llvmPackages, + xcbuild, }: let @@ -115,7 +128,7 @@ let # use compatible cuDNN (https://www.tensorflow.org/install/source#gpu) # cudaPackages.cudnn led to this: # https://github.com/tensorflow/tensorflow/issues/60398 - cudnnAttribute = "cudnn_8_6"; + cudnnAttribute = "cudnn_8_7"; cudnnMerged = symlinkJoin { name = "cudnn-merged"; paths = [ @@ -181,7 +194,7 @@ let tfFeature = x: if x then "1" else "0"; - version = "2.13.0"; + version = "2.15.0"; format = "setuptools"; variant = lib.optionalString cudaSupport "-gpu"; pname = "tensorflow${variant}"; @@ -192,6 +205,7 @@ let absl-py astunparse dill + distutils flatbuffers-python gast google-pasta @@ -213,6 +227,11 @@ let wrapt ]); + python_major = lib.take 2 (lib.splitString "." python.version); + python_dotted = lib.concatStringsSep "." python_major; + python_underscored = lib.concatStringsSep "_" python_major; + python_undotted = lib.concatStringsSep "" python_major; + rules_cc_darwin_patched = stdenv.mkDerivation { name = "rules_cc-${pname}-${version}"; @@ -273,9 +292,331 @@ let runHook postInstall ''; }; + + python-x86_64-nix = stdenv.mkDerivation { + name = "python-x86_64-${pname}-${version}"; + + src = _bazel-build.deps; + + dontConfigure = true; + dontBuild = true; + + installPhase = '' + runHook preInstall + + mkdir $out + cp python_x86_64-unknown-linux-gnu/BUILD.bazel $out + substituteInPlace $out/BUILD.bazel \ + --replace-fail @version_long@ ${python_dotted} \ + --replace-fail @version_short@ ${python_undotted} + cp python_x86_64-unknown-linux-gnu/WORKSPACE $out + ${lndir}/bin/lndir ${pythonEnv} $out + + runHook postInstall + ''; + }; + + python-aarch64-nix = stdenv.mkDerivation { + name = "python-aarch64-${pname}-${version}"; + + src = _bazel-build.deps; + + dontConfigure = true; + dontBuild = true; + + installPhase = '' + runHook preInstall + + mkdir $out + cp python_aarch64-unknown-linux-gnu/BUILD.bazel $out + substituteInPlace $out/BUILD.bazel \ + --replace-fail @version_long@ ${python_dotted} \ + --replace-fail @version_short@ ${python_undotted} + cp python_aarch64-unknown-linux-gnu/WORKSPACE $out + ${lndir}/bin/lndir ${pythonEnv} $out + + runHook postInstall + ''; + }; + + # In order to keep the deps hash stable, we put everything that depends + # on the Python version into overrides. + # TODO: figure out whether we can create these overrides without building + # the deps tarball first, e.g. using our Nix-vendored packages and + # `rules_python` + nccl_archive-fix = stdenv.mkDerivation { + name = "nccl_archive-fix"; + src = _bazel-build.deps; + dontConfigure = true; + dontBuild = true; + installPhase = '' + runHook preInstall + mkdir $out + cp -r nccl_archive/* $out + pushd $out + rm BUILD.bazel + ln -s ${_bazel-build.src}/third_party/nccl/archive.BUILD BUILD.bazel + popd + runHook postInstall + ''; + }; + + eigen_archive-fix = stdenv.mkDerivation { + name = "eigen_archive-fix"; + src = _bazel-build.deps; + dontConfigure = true; + dontBuild = true; + installPhase = '' + runHook preInstall + mkdir $out + cp -r eigen_archive/* $out + pushd $out + rm BUILD.bazel + ln -s ${_bazel-build.src}/third_party/eigen3/eigen_archive.BUILD \ + BUILD.bazel + popd + runHook postInstall + ''; + }; + + ml_dtypes-fix = stdenv.mkDerivation { + name = "ml_dtypes-fix"; + src = _bazel-build.deps; + dontConfigure = true; + dontBuild = true; + installPhase = '' + runHook preInstall + mkdir $out + cp -r ml_dtypes/* $out + pushd $out + rm BUILD.bazel + ln -s ${_bazel-build.src}/third_party/py/ml_dtypes/ml_dtypes.BUILD \ + BUILD.bazel + rm tests/BUILD.bazel + ln -s ${_bazel-build.src}/third_party/py/ml_dtypes/ml_dtypes.tests.BUILD \ + tests/BUILD.bazel + popd + runHook postInstall + ''; + }; + + charset-normalizer-bazel = stdenv.mkDerivation { + name = "${charset-normalizer.pname}-bazel-${charset-normalizer.version}"; + src = _bazel-build.deps; + dontConfigure = true; + dontBuild = true; + installPhase = '' + runHook preInstall + mkdir $out + cp pypi_charset_normalizer/* $out + mkdir $out/bin $out/site-packages + ${lndir}/bin/lndir ${charset-normalizer}/bin $out/bin + ${lndir}/bin/lndir \ + ${charset-normalizer}/lib/python${python_dotted}/site-packages \ + $out/site-packages + runHook postInstall + ''; + }; + + numpy-bazel = stdenv.mkDerivation { + name = "${numpy.pname}-bazel-${numpy.version}"; + src = _bazel-build.deps; + dontConfigure = true; + dontBuild = true; + installPhase = '' + runHook preInstall + mkdir $out + cp pypi_numpy/WORKSPACE $out + cp pypi_numpy/rules_python_wheel_entry_point_f2py.py $out + cp pypi_numpy/BUILD.bazel $out + mkdir $out/bin $out/site-packages + ${lndir}/bin/lndir ${numpy}/bin $out/bin + ${lndir}/bin/lndir ${numpy}/lib/python${python_dotted}/site-packages \ + $out/site-packages + runHook postInstall + ''; + }; + + grpcio-bazel = stdenv.mkDerivation { + name = "${grpcio.pname}-bazel-${grpcio.version}"; + src = _bazel-build.deps; + dontConfigure = true; + dontBuild = true; + installPhase = '' + runHook preInstall + mkdir $out + cp pypi_grpcio/* $out + mkdir $out/site-packages + ${lndir}/bin/lndir ${grpcio}/lib/python${python_dotted}/site-packages \ + $out/site-packages + runHook postInstall + ''; + }; + + h5py-bazel = stdenv.mkDerivation { + name = "${h5py.pname}-bazel-${h5py.version}"; + src = _bazel-build.deps; + dontConfigure = true; + dontBuild = true; + installPhase = '' + runHook preInstall + mkdir $out + cp pypi_h5py/* $out + mkdir $out/site-packages + ${lndir}/bin/lndir ${h5py}/lib/python${python_dotted}/site-packages \ + $out/site-packages + runHook postInstall + ''; + }; + + wrapt-bazel = stdenv.mkDerivation { + name = "${wrapt.pname}-bazel-${wrapt.version}"; + src = _bazel-build.deps; + dontConfigure = true; + dontBuild = true; + installPhase = '' + runHook preInstall + mkdir $out + cp pypi_wrapt/* $out + mkdir $out/site-packages + ${lndir}/bin/lndir ${wrapt}/lib/python${python_dotted}/site-packages \ + $out/site-packages + runHook postInstall + ''; + }; + + markupsafe-bazel = stdenv.mkDerivation { + name = "${markupsafe.pname}-bazel-${markupsafe.version}"; + src = _bazel-build.deps; + dontConfigure = true; + dontBuild = true; + installPhase = '' + runHook preInstall + mkdir $out + cp pypi_markupsafe/* $out + mkdir $out/site-packages + ${lndir}/bin/lndir \ + ${markupsafe}/lib/python${python_dotted}/site-packages \ + $out/site-packages + runHook postInstall + ''; + }; + + psutil-bazel = stdenv.mkDerivation { + name = "${psutil.pname}-bazel-${psutil.version}"; + src = _bazel-build.deps; + dontConfigure = true; + dontBuild = true; + installPhase = '' + runHook preInstall + mkdir $out + cp pypi_psutil/* $out + mkdir $out/site-packages + ${lndir}/bin/lndir \ + ${psutil}/lib/python${python_dotted}/site-packages \ + $out/site-packages + runHook postInstall + ''; + }; + + pypi-bazel = stdenv.mkDerivation { + name = "pypi-bazel"; + src = _bazel-build.deps; + dontConfigure = true; + dontBuild = true; + installPhase = '' + runHook preInstall + mkdir $out + cp pypi/* $out + substituteInPlace $out/requirements.bzl \ + --replace-fail @version_underscored@ ${python_underscored} + runHook postInstall + ''; + }; + + python-bazel = stdenv.mkDerivation { + name = "python-bazel"; + src = _bazel-build.deps; + dontConfigure = true; + dontBuild = true; + installPhase = '' + runHook preInstall + mkdir $out + cp python/* $out + runHook postInstall + ''; + }; + + python_version_repo-bazel = stdenv.mkDerivation { + name = "python-bazel"; + src = _bazel-build.deps; + dontConfigure = true; + dontBuild = true; + installPhase = '' + runHook preInstall + mkdir $out + cp python_version_repo/* $out + substituteInPlace $out/py_version.bzl \ + --replace-fail @version_long@ ${python_dotted} + runHook postInstall + ''; + }; + + # https://stackoverflow.com/questions/70301375/noinline-macro-conflict-between-glib-and-cuda + cuda_gnu_wrapper_includes = stdenv.mkDerivation { + name = "wrap-gnu-lib"; + dontUnpack = true; + dontConfigure = true; + dontBuild = true; + installPhase = '' + runHook preInstall + mkdir $out + for wrapping in regex memory string condition_variable + do echo "#ifdef NIX_TF_WRAPPED + #include_next <$wrapping> + #else + #define NIX_TF_WRAPPED 1 + #undef __noinline__ + #include_next <$wrapping> + #define __noinline__ __attribute__((noinline)) + #undef NIX_TF_WRAPPED + #endif" > $out/$wrapping + done + runHook postInstall + ''; + }; + + clang_lib = llvmPackages.libclang.lib; + + clang_major = builtins.elemAt (lib.splitString "." clang_lib.version) 0; + + cuda_wrappers = "${clang_lib}/lib/clang/${clang_major}/include/cuda_wrappers"; + + clang_gnu_wrapper = writeShellScriptBin "clang" '' + ${llvmPackages.clang}/bin/clang \ + -isystem ${cuda_gnu_wrapper_includes} \ + "$@" + ''; + + cuda_clang_wrapper = writeShellScriptBin "clang" '' + ${llvmPackages.clang}/bin/clang \ + -isystem ${cuda_gnu_wrapper_includes} \ + -isystem ${cuda_wrappers} \ + "$@" + ''; + + switching_clang_wrapper = writeShellScriptBin "clang" '' + if echo " $@ " | grep -q " -x \?cuda " + then ${cuda_clang_wrapper}/bin/clang "$@" + else ${clang_gnu_wrapper}/bin/clang "$@" + fi + ''; + + wrapped_clang = if cudaSupport then switching_clang_wrapper else llvmPackages.clang; + bazel-build = if stdenv.hostPlatform.isDarwin then - _bazel-build.overrideAttrs (prev: { + _bazel-build-python.overrideAttrs (prev: { bazelFlags = prev.bazelFlags ++ [ "--override_repository=rules_cc=${rules_cc_darwin_patched}" "--override_repository=llvm-raw=${llvm-raw_darwin_patched}" @@ -284,31 +625,83 @@ let export AR="${cctools}/bin/libtool" ''; }) + else + _bazel-build-python; + + _bazel-build-python = + if (!stdenv.isDarwin) then + _bazel-build.overrideAttrs (prev: { + bazelFlags = + prev.bazelFlags + ++ [ + ( + if stdenv.isx86_64 then + "--override_repository=python_x86_64-unknown-linux-gnu=${python-x86_64-nix}" + else + "--override_repository=python_aarch64-unknown-linux-gnu=${python-aarch64-nix}" + ) + "--override_repository=pypi_charset_normalizer=${charset-normalizer-bazel}" + "--override_repository=pypi_numpy=${numpy-bazel}" + "--override_repository=pypi_grpcio=${grpcio-bazel}" + "--override_repository=pypi_h5py=${h5py-bazel}" + "--override_repository=pypi_wrapt=${wrapt-bazel}" + "--override_repository=pypi_markupsafe=${markupsafe-bazel}" + "--override_repository=pypi=${pypi-bazel}" + "--override_repository=python=${python-bazel}" + "--override_repository=python_version_repo=${python_version_repo-bazel}" + ] + ++ lib.optionals stdenv.isAarch64 [ + "--override_repository=pypi_psutil=${psutil-bazel}" + ] + ++ lib.optionals cudaSupport [ + "--override_repository=nccl_archive=${nccl_archive-fix}" + "--override_repository=eigen_archive=${eigen_archive-fix}" + "--override_repository=ml_dtypes=${ml_dtypes-fix}" + ]; + }) else _bazel-build; + regenerate-compressed = writeText "regenerate.py" '' + from zlib import compress + from base64 import b64encode + with open("find_cuda_config.py", "r") as file: + input_text = file.read() + output_data = b64encode(compress(str.encode(input_text))) + with open("find_cuda_config.py.gz.base64", "w") as file: + file.write(output_data.decode("ASCII")) + ''; + _bazel-build = buildBazelPackage.override { inherit stdenv; } { name = "${pname}-${version}"; - bazel = bazel_5; + bazel = bazel_6; src = fetchFromGitHub { owner = "tensorflow"; repo = "tensorflow"; rev = "refs/tags/v${version}"; - hash = "sha256-Rq5pAVmxlWBVnph20fkAwbfy+iuBNlfFy14poDPd5h0="; + hash = "sha256-tCFLEvJ1lHy7NcHDW9Dkd+2D60x+AvOB8EAwmUSQCtM="; }; # On update, it can be useful to steal the changes from gentoo # https://gitweb.gentoo.org/repo/gentoo.git/tree/sci-libs/tensorflow - nativeBuildInputs = [ - which - pythonEnv - cython - perl - protobuf-core - protobuf-extra - ] ++ lib.optional cudaSupport addDriverRunpath; + nativeBuildInputs = + [ + pkg-config + hdf5 + which + pythonEnv + cython + perl + protobuf-core + protobuf-extra + wrapped_clang + lndir + ] + ++ lib.optional cudaSupport addDriverRunpath + ++ lib.optional stdenv.isDarwin xcbuild + ++ lib.optional (pythonAtLeast "3.12") ninja; buildInputs = [ @@ -330,9 +723,14 @@ let jsoncpp libjpeg_turbo libpng - (pybind11.overridePythonAttrs (_: { - inherit stdenv; - })) + ( + if stdenv.hostPlatform.isDarwin then + pybind11 + else + (pybind11.overridePythonAttrs (_: { + inherit stdenv; + })) + ) snappy sqlite ] @@ -382,7 +780,6 @@ let "jsoncpp_git" "libjpeg_turbo" "nasm" - "opt_einsum_archive" "org_sqlite" "pasta" "png" @@ -412,6 +809,7 @@ let TF_NEED_GCP = true; TF_NEED_HDFS = true; TF_ENABLE_XLA = tfFeature xlaSupport; + TF_PYTHON_VERSION = python.pythonVersion; CC_OPT_FLAGS = " "; @@ -426,28 +824,84 @@ let GCC_HOST_COMPILER_PREFIX = lib.optionalString cudaSupport "${cudatoolkit_cc_joined}/bin"; GCC_HOST_COMPILER_PATH = lib.optionalString cudaSupport "${cudatoolkit_cc_joined}/bin/cc"; - patches = [ - "${gentoo-patches}/0002-systemlib-Latest-absl-LTS-has-split-cord-libs.patch" - "${gentoo-patches}/0005-systemlib-Updates-for-Abseil-20220623-LTS.patch" - "${gentoo-patches}/0007-systemlibs-Add-well_known_types_py_pb2-target.patch" - # https://github.com/conda-forge/tensorflow-feedstock/pull/329/commits/0a63c5a962451b4da99a9948323d8b3ed462f461 - (fetchpatch { - name = "fix-layout-proto-duplicate-loading.patch"; - url = "https://raw.githubusercontent.com/conda-forge/tensorflow-feedstock/0a63c5a962451b4da99a9948323d8b3ed462f461/recipe/patches/0001-Omit-linking-to-layout_proto_cc-if-protobuf-linkage-.patch"; - hash = "sha256-/7buV6DinKnrgfqbe7KKSh9rCebeQdXv2Uj+Xg/083w="; - }) - ./com_google_absl_add_log.patch - ./absl_py_argparse_flags.patch - ./protobuf_python.patch - ./pybind11_protobuf_python_runtime_dep.patch - ./pybind11_protobuf_newer_version.patch - ] ++ lib.optionals (stdenv.hostPlatform.system == "aarch64-darwin") [ ./absl_to_std.patch ]; + patches = + [ + "${gentoo-patches}/0002-systemlib-Latest-absl-LTS-has-split-cord-libs.patch" + "${gentoo-patches}/0005-systemlib-Updates-for-Abseil-20220623-LTS.patch" + "${gentoo-patches}/0007-systemlibs-Add-well_known_types_py_pb2-target.patch" + # https://github.com/conda-forge/tensorflow-feedstock/pull/329/commits/0a63c5a962451b4da99a9948323d8b3ed462f461 + (fetchpatch { + name = "fix-layout-proto-duplicate-loading.patch"; + url = "https://raw.githubusercontent.com/conda-forge/tensorflow-feedstock/0a63c5a962451b4da99a9948323d8b3ed462f461/recipe/patches/0001-Omit-linking-to-layout_proto_cc-if-protobuf-linkage-.patch"; + hash = "sha256-/7buV6DinKnrgfqbe7KKSh9rCebeQdXv2Uj+Xg/083w="; + }) + (fetchpatch { + url = "https://github.com/openxla/xla/commit/30c1666bf76616b6d6569a262a6cc705b3ce5f47.diff"; + name = "denormal-cstdint.patch"; + stripLen = 1; + extraPrefix = "third_party/xla/"; + hash = "sha256-kOXFVFM3Z1945gLoJhTiCvriiWTzlGcm92URWasO5hM="; + }) + ./fix-syslib-references.patch + ./protobuf_lite.patch + ./protobuf_cc_toolchain.patch + ./pybind11-osx.patch + ./com_google_absl_add_log.patch + ./core-riegeli-proto.patch + ./protobuf_python.patch + ./pybind11_protobuf_python_runtime_dep.patch + ./pybind11_protobuf_newer_version.patch + ./add-python-312.patch + ] + ++ lib.optionals (!stdenv.isDarwin) [ + # we override Python in the bazel build anyway, but we also need + # a usable Python during deps fetching + ./core-rules-python-use-nix.patch + ] + ++ lib.optionals (cudaSupport) [ + ./system_includes_cuda.patch + ./fix-string-syntax.patch + ]; postPatch = '' # bazel 3.3 should work just as well as bazel 3.1 rm -f .bazelversion patchShebangs . + ln -s ${./riegeli-proto.patch} third_party/riegeli-proto.patch + ! test -e requirements_lock_3_12.txt + cp requirements_lock_3_11.txt requirements_lock_3_12.txt + substituteInPlace requirements_lock_*.txt \ + '' + + lib.optionalString (stdenv.isx86_64) '' + --replace-fail \ + "0cbe9848fad08baf71de1a39e12d1b6310f1d5b2d0ea4de051058e6e1076852d" \ + "666dbfb6ec68962c033a450943ded891bed2d54e6755e35e5835d63f4f6931d5" \ + --replace-fail \ + "1b1766d6f397c18153d40015ddfc79ddb715cabadc04d2d228d4e5a8bc4ded1a" \ + "675d61ffbfa78604709862923189bad94014bef562cc35cf61d3a07bba02a7ed" \ + --replace-fail \ + "09b7847f7e83ca37c6e627682f145856de331049013853f344f37b0c9690e3df" \ + "ffa75af20b44f8dba823498024771d5ac50620e6915abac414251bd971b4529f" \ + '' + + lib.optionalString (stdenv.isAarch64) '' + --replace-fail \ + "01dd17cbb340bf0fc23981e52e1d18a9d4050792e8fb8363cecbf066a84b827d" \ + "9fad7dcb1aac3c7f0584a5a8133e3a43eeb2fe127f47e3632d43d677c66c102b" \ + --replace-fail \ + "06005a2ef6014e9956c09ba07654f9837d9e26696a0470e42beedadb78c11b07" \ + "7ab55401287bfec946ced39700c053796e7cc0e3acbef09993a9ad2adba6ca6e" \ + '' + + '' + --replace-fail "numpy==1.23.5" "numpy==1.26.4" + '' + + lib.optionalString (!stdenv.isDarwin) '' + sed \ + -e 's,@python@,${pythonEnv},g' \ + -e 's,@python_version@,${python.version},g' \ + -e 's,@version_long@,${python_dotted},g' \ + < ${./rules-python-use-nix.patch} \ + > tensorflow/rules-python-use-nix.patch '' + lib.optionalString (stdenv.hostPlatform.system == "x86_64-darwin") '' cat ${./com_google_absl_fix_macos.patch} >> third_party/absl/com_google_absl_fix_mac_and_nvcc_build.patch @@ -457,11 +911,17 @@ let # include security vulnerabilities. So we make it optional. # https://github.com/tensorflow/tensorflow/issues/20280#issuecomment-400230560 sed -i '/tensorboard ~=/d' tensorflow/tools/pip_package/setup.py + '' + + lib.optionalString (cudaSupport) '' + substituteInPlace third_party/gpus/cuda_configure.bzl \ + --replace-fail "@cuda_wrapper_includes@" "${cuda_wrappers}" + substituteInPlace tensorflow/tools/pip_package/BUILD \ + --replace-fail '"@ml_dtypes//:LICENSE",' "" + pushd third_party/gpus + ${python}/bin/python3 ${regenerate-compressed} + popd ''; - # https://github.com/tensorflow/tensorflow/pull/39470 - env.NIX_CFLAGS_COMPILE = toString [ "-Wno-stringop-truncation" ]; - preConfigure = let opt_flags = @@ -479,12 +939,10 @@ let chmod +x dummy-ldconfig/ldconfig export PATH="$PWD/dummy-ldconfig:$PATH" + export PYTHONPATH="${pythonEnv}/lib/${pythonEnv.libPrefix}/site-packages" export PYTHON_LIB_PATH="$NIX_BUILD_TOP/site-packages" export CC_OPT_FLAGS="${lib.concatStringsSep " " opt_flags}" mkdir -p "$PYTHON_LIB_PATH" - - # To avoid mixing Python 2 and Python 3 - unset PYTHONPATH ''; configurePhase = '' @@ -493,22 +951,24 @@ let runHook postConfigure ''; - hardeningDisable = [ "format" ]; - - bazelBuildFlags = + hardeningDisable = [ - "--config=opt" # optimize using the flags set in the configure phase - ] - ++ lib.optionals stdenv.cc.isClang [ - "--cxxopt=-x" - "--cxxopt=c++" - "--host_cxxopt=-x" - "--host_cxxopt=c++" - - # workaround for https://github.com/bazelbuild/bazel/issues/15359 - "--spawn_strategy=sandboxed" + "format" ] - ++ lib.optionals (mklSupport) [ "--config=mkl" ]; + ++ lib.optionals (cudaSupport) [ + "zerocallusedregs" + ]; + + bazelBuildFlags = [ + "--config=opt" # optimize using the flags set in the configure phase + "--cxxopt=-x" + "--cxxopt=c++" + "--host_cxxopt=-x" + "--host_cxxopt=c++" + + # workaround for https://github.com/bazelbuild/bazel/issues/15359 + "--spawn_strategy=sandboxed" + ] ++ lib.optionals (mklSupport) [ "--config=mkl" ]; bazelTargets = [ "//tensorflow/tools/pip_package:build_pip_package //tensorflow/tools/lib_package:libtensorflow" @@ -519,20 +979,70 @@ let dontAddBazelOpts = true; fetchAttrs = { + preInstall = lib.optionalString (!stdenv.isDarwin) ( + '' + pushd $bazelOut + rm -rf external/*/*.whl + find external -type f | grep "/__pycache__/[^/]*[.]pyc\?$" | xargs rm + find external -type l | grep "/__pycache__/[^/]*[.]pyc\?$" | xargs rm + find external -type d | grep "/__pycache__$" | xargs rmdir + rm -rf external/pypi_charset_normalizer/bin + rm -rf external/pypi_charset_normalizer/site-packages + rm -rf external/pypi_numpy/bin + rm -rf external/pypi_numpy/site-packages + rm -f external/pypi_numpy/rules_python_wheel_entry_point_f2py3.py + rm -f external/pypi_numpy/rules_python_wheel_entry_point_f2py${python_dotted}.py + rm -rf external/pypi_grpcio/site-packages + rm -rf external/pypi_h5py/site-packages + rm -rf external/pypi_wrapt/site-packages + rm -rf external/pypi_markupsafe/site-packages + '' + + lib.optionalString (stdenv.isAarch64) '' + rm -rf external/pypi_psutil/site-packages + '' + + '' + substituteInPlace external/pypi/requirements.bzl \ + --replace-fail ${python_underscored} @version_underscored@ + substituteInPlace external/python_version_repo/py_version.bzl \ + --replace-fail ${python_dotted} @version_long@ + sed -i 's/(\("[^(),]*"\), "\([^()]*\)==[^()]*")/(\1, "\2")/g' \ + external/pypi/requirements.bzl + rm -rf external/python_*-unknown-linux-gnu/bin + rm -rf external/python_*-unknown-linux-gnu/include + rm -rf external/python_*-unknown-linux-gnu/lib + rm -rf external/python_*-unknown-linux-gnu/nix-support + rm -rf external/python_*-unknown-linux-gnu/python + rm -rf external/python_*-unknown-linux-gnu/share + substituteInPlace external/python_*-unknown-linux-gnu/BUILD.bazel \ + --replace-fail python${python_dotted} python@version_long@ \ + --replace-fail python${python_undotted} python@version_short@ \ + --replace-fail \ + 'python_version = "${python_dotted}"' \ + 'python_version = "@version_long@"' + substituteInPlace external/rules_python/python/repositories.bzl \ + --replace-fail ${pythonEnv} @python@ \ + --replace-fail ${python.version} @python_version@ + popd + '' + ); + sha256 = { x86_64-linux = if cudaSupport then - "sha256-5VFMNHeLrUxW5RTr6EhT3pay9nWJ5JkZTGirDds5QkU=" + "sha256-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=" else - "sha256-KzgWV69Btr84FdwQ5JI2nQEsqiPg1/+TWdbw5bmxXOE="; + "sha256-15g0FJ3moJ24RCJt5EHhZsCwLdPNkZ86bod3Mc2AG7A="; aarch64-linux = if cudaSupport then - "sha256-ty5+51BwHWE1xR4/0WcWTp608NzSAS/iiyN+9zx7/wI=" + "sha256-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=" else - "sha256-9btXrNHqd720oXTPDhSmFidv5iaZRLjCVX8opmrMjXk="; - x86_64-darwin = "sha256-gqb03kB0z2pZQ6m1fyRp1/Nbt8AVVHWpOJSeZNCLc4w="; - aarch64-darwin = "sha256-WdgAaFZU+ePwWkVBhLzjlNT7ELfGHOTaMdafcAMD5yo="; + "sha256-ZKP1zTmqcuqqshzuqrDMN1XNgCY2ty8frAByiS1maU8="; + # deps hashes can't be computed for the Darwin platforms as of + # 2024-10-21 as the expressions don't evaluate due to + # python3Packages.jaraco-path being broken on these platforms + x86_64-darwin = "sha256-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA="; + aarch64-darwin = "sha256-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA="; } .${stdenv.hostPlatform.system} or (throw "unsupported system ${stdenv.hostPlatform.system}"); }; @@ -595,11 +1105,13 @@ let description = "Computation using data flow graphs for scalable machine learning"; homepage = "http://tensorflow.org"; license = lib.licenses.asl20; - maintainers = with lib.maintainers; [ abbradar ]; + maintainers = with lib.maintainers; [ + abbradar + gm6k + ]; platforms = with lib.platforms; linux ++ darwin; broken = - stdenv.hostPlatform.isDarwin - || !(xlaSupport -> cudaSupport) + !(xlaSupport -> cudaSupport) || !(cudaSupport -> builtins.hasAttr cudnnAttribute cudaPackages) || !(cudaSupport -> cudaPackages ? cudatoolkit); } @@ -611,7 +1123,7 @@ let in buildPythonPackage { inherit version pname; - disabled = pythonAtLeast "3.12"; + disabled = pythonOlder "3.9"; src = bazel-build.python; @@ -620,16 +1132,17 @@ buildPythonPackage { # - Relax flatbuffers and gast version requirements # - The purpose of python3Packages.libclang is not clear at the moment and we don't have it packaged yet # - keras and tensorlow-io-gcs-filesystem will be considered as optional for now. - postPatch = '' - sed -i setup.py \ - -e '/tensorflow-io-gcs-filesystem/,+1d' \ - -e "s/'flatbuffers[^']*',/'flatbuffers',/" \ - -e "s/'gast[^']*',/'gast',/" \ - -e "/'libclang[^']*',/d" \ - -e "/'keras[^']*')\?,/d" \ - -e "/'tensorflow-io-gcs-filesystem[^']*',/d" \ - -e "s/'protobuf[^']*',/'protobuf',/" \ - ''; + pythonRelaxDeps = [ + "flatbuffers" + "gast" + "protobuf" + ]; + + pythonRemoveDeps = [ + "tensorflow-io-gcs-filesystem" + "libclang" + "keras" + ]; # Upstream has a pip hack that results in bin/tensorboard being in both tensorflow # and the propagated input tensorboard, which causes environment collisions. @@ -646,12 +1159,14 @@ buildPythonPackage { absl-py abseil-cpp astunparse + distutils flatbuffers-python gast google-pasta grpcio h5py keras-preprocessing + ml-dtypes numpy opt-einsum packaging @@ -663,15 +1178,28 @@ buildPythonPackage { wrapt ] ++ lib.optionals withTensorboard [ tensorboard ]; - nativeBuildInputs = lib.optionals cudaSupport [ addDriverRunpath ]; - - postFixup = lib.optionalString cudaSupport '' - find $out -type f \( -name '*.so' -or -name '*.so.*' \) | while read lib; do - addDriverRunpath "$lib" + nativeBuildInputs = + [ + pythonRelaxDepsHook + ] + ++ lib.optionals cudaSupport [ + addDriverRunpath + ]; - patchelf --set-rpath "${cudatoolkit}/lib:${cudatoolkit.lib}/lib:${cudnnMerged}/lib:${lib.getLib nccl}/lib:$(patchelf --print-rpath "$lib")" "$lib" - done - ''; + postFixup = lib.optionalString cudaSupport ( + '' + find $out -type f \( -name '*.so' -or -name '*.so.*' \) | while read lib; do + addDriverRunpath "$lib" + + patchelf --set-rpath "${cudatoolkit}/lib:${cudatoolkit.lib}/lib:${cudnnMerged}/lib:${lib.getLib nccl}/lib:$(patchelf --print-rpath "$lib")" "$lib" + '' + + lib.optionalString stdenv.isLinux '' + patchelf --set-rpath "${cudatoolkit}/lib:${cudatoolkit.lib}/lib:${cudnnMerged}/lib:${nccl}/lib:$(patchelf --print-rpath "$lib")" "$lib" + '' + + '' + done + '' + ); # Actual tests are slow and impure. # TODO try to run them anyway diff --git a/pkgs/development/python-modules/tensorflow/fix-string-syntax.patch b/pkgs/development/python-modules/tensorflow/fix-string-syntax.patch new file mode 100644 index 0000000000000..72124e7a3ba23 --- /dev/null +++ b/pkgs/development/python-modules/tensorflow/fix-string-syntax.patch @@ -0,0 +1,30 @@ +diff -Naurd x/third_party/gpus/find_cuda_config.py y/third_party/gpus/find_cuda_config.py +--- x/third_party/gpus/find_cuda_config.py 2024-11-03 00:29:24.245892045 +0000 ++++ y/third_party/gpus/find_cuda_config.py 2024-11-03 00:32:30.813159341 +0000 +@@ -121,7 +121,7 @@ + def _get_header_version(path, name): + """Returns preprocessor defines in C header file.""" + for line in io.open(path, "r", encoding="utf-8").readlines(): +- match = re.match("\s*#\s*define %s\s+(\d+)" % name, line) ++ match = re.match("\\s*#\\s*define %s\\s+(\\d+)" % name, line) + if match: + return match.group(1) + return "" +@@ -260,7 +260,7 @@ + cuda_library_path = _find_library(base_paths, "cudart", cuda_version) + + def get_nvcc_version(path): +- pattern = "Cuda compilation tools, release \d+\.\d+, V(\d+\.\d+\.\d+)" ++ pattern = "Cuda compilation tools, release \\d+\\.\\d+, V(\\d+\\.\\d+\\.\\d+)" + for line in subprocess.check_output([path, "--version"]).splitlines(): + match = re.match(pattern, line.decode("ascii")) + if match: +@@ -549,7 +549,7 @@ + paths. Detect those and return '/usr', otherwise forward to _list_from_env(). + """ + if env_name in os.environ: +- match = re.match("^(/[^/ ]*)+/lib/\w+-linux-gnu/?$", os.environ[env_name]) ++ match = re.match("^(/[^/ ]*)+/lib/\\w+-linux-gnu/?$", os.environ[env_name]) + if match: + return [match.group(1)] + return _list_from_env(env_name, default) diff --git a/pkgs/development/python-modules/tensorflow/fix-syslib-references.patch b/pkgs/development/python-modules/tensorflow/fix-syslib-references.patch new file mode 100644 index 0000000000000..95e3b85b0a08b --- /dev/null +++ b/pkgs/development/python-modules/tensorflow/fix-syslib-references.patch @@ -0,0 +1,12 @@ +diff -Naurd x/tensorflow/tools/pip_package/BUILD y/tensorflow/tools/pip_package/BUILD +--- x/tensorflow/tools/pip_package/BUILD 2023-10-14 20:09:43.001857258 +0000 ++++ y/tensorflow/tools/pip_package/BUILD 2023-10-14 20:15:17.894102008 +0000 +@@ -209,7 +209,7 @@ + "@com_google_protobuf//:LICENSE", + "@curl//:COPYING", + "@ducc//:LICENSE", +- "@flatbuffers//:LICENSE", ++ "@flatbuffers//:LICENSE.txt", + "@gemmlowp//:LICENSE", + "@libjpeg_turbo//:LICENSE.md", + "@llvm-project//llvm:LICENSE.TXT", diff --git a/pkgs/development/python-modules/tensorflow/protobuf_cc_toolchain.patch b/pkgs/development/python-modules/tensorflow/protobuf_cc_toolchain.patch new file mode 100644 index 0000000000000..1b63851f095a1 --- /dev/null +++ b/pkgs/development/python-modules/tensorflow/protobuf_cc_toolchain.patch @@ -0,0 +1,27 @@ +diff -Naurd x/third_party/systemlibs/protobuf.BUILD y/third_party/systemlibs/protobuf.BUILD +--- x/third_party/systemlibs/protobuf.BUILD 2023-12-03 15:39:27.742087246 +0000 ++++ y/third_party/systemlibs/protobuf.BUILD 2023-12-04 13:25:41.777638732 +0000 +@@ -1,4 +1,8 @@ +-load("@rules_proto//proto:defs.bzl", "proto_library") ++load( ++ "@rules_proto//proto:defs.bzl", ++ "proto_lang_toolchain", ++ "proto_library", ++) + load( + "@com_google_protobuf//:protobuf.bzl", + "cc_proto_library", +@@ -118,3 +122,13 @@ + srcs = [proto[1][0] for proto in WELL_KNOWN_PROTO_MAP.items()], + visibility = ["//visibility:public"], + ) ++ ++proto_lang_toolchain( ++ name = "cc_toolchain", ++ blacklisted_protos = [ ++ "//:compiler_plugin_proto", ++ "//:descriptor_proto", ++ ], ++ command_line = "--cpp_out=$(OUT)", ++ visibility = ["//visibility:public"], ++) diff --git a/pkgs/development/python-modules/tensorflow/protobuf_lite.patch b/pkgs/development/python-modules/tensorflow/protobuf_lite.patch new file mode 100644 index 0000000000000..26d1d47ab3006 --- /dev/null +++ b/pkgs/development/python-modules/tensorflow/protobuf_lite.patch @@ -0,0 +1,16 @@ +diff -Naurd x/third_party/systemlibs/protobuf.BUILD y/third_party/systemlibs/protobuf.BUILD +--- x/third_party/systemlibs/protobuf.BUILD 2023-12-03 15:39:27.742087246 +0000 ++++ y/third_party/systemlibs/protobuf.BUILD 2023-12-03 20:23:49.345014695 +0000 +@@ -66,6 +66,12 @@ + ) + + cc_library( ++ name = "protobuf_lite", ++ linkopts = ["-lprotobuf-lite"], ++ visibility = ["//visibility:public"], ++) ++ ++cc_library( + name = "protobuf_headers", + linkopts = ["-lprotobuf"], + visibility = ["//visibility:public"], diff --git a/pkgs/development/python-modules/tensorflow/pybind11-osx.patch b/pkgs/development/python-modules/tensorflow/pybind11-osx.patch new file mode 100644 index 0000000000000..bcff5972273f2 --- /dev/null +++ b/pkgs/development/python-modules/tensorflow/pybind11-osx.patch @@ -0,0 +1,12 @@ +diff -Naurd x/third_party/systemlibs/pybind11.BUILD y/third_party/systemlibs/pybind11.BUILD +--- x/third_party/systemlibs/pybind11.BUILD 2023-10-17 19:01:11.988196127 +0000 ++++ y/third_party/systemlibs/pybind11.BUILD 2023-10-17 19:04:09.916356016 +0000 +@@ -6,3 +6,8 @@ + "@org_tensorflow//third_party/python_runtime:headers", + ], + ) ++ ++config_setting( ++ name = "osx", ++ constraint_values = ["@platforms//os:osx"], ++) diff --git a/pkgs/development/python-modules/tensorflow/remove-keras-dependency.patch b/pkgs/development/python-modules/tensorflow/remove-keras-dependency.patch new file mode 100644 index 0000000000000..2865da548aa18 --- /dev/null +++ b/pkgs/development/python-modules/tensorflow/remove-keras-dependency.patch @@ -0,0 +1,13 @@ +diff -Naurd x/setup.py y/setup.py +--- x/setup.py 2023-12-01 20:07:55.694564265 +0000 ++++ y/setup.py 2023-12-01 20:09:08.526682512 +0000 +@@ -121,9 +121,6 @@ + 'tensorflow_estimator >= 2.14.0, < 2.15', + 'tf-estimator-nightly ~= 2.15.0.dev', + ), +- standard_or_nightly( +- 'keras >= 2.14.0, < 2.15', 'keras-nightly ~= 2.15.0.dev' +- ), + ] + REQUIRED_PACKAGES = [p for p in REQUIRED_PACKAGES if p is not None] + diff --git a/pkgs/development/python-modules/tensorflow/riegeli-proto.patch b/pkgs/development/python-modules/tensorflow/riegeli-proto.patch new file mode 100644 index 0000000000000..ef39e48ce2225 --- /dev/null +++ b/pkgs/development/python-modules/tensorflow/riegeli-proto.patch @@ -0,0 +1,36 @@ +diff -Naurd x/riegeli/records/BUILD y/riegeli/records/BUILD +--- x/riegeli/records/BUILD 2023-12-06 16:24:03.939575600 +0000 ++++ y/riegeli/records/BUILD 2023-12-06 16:23:00.079531687 +0000 +@@ -1,4 +1,4 @@ +-load("@rules_proto//proto:defs.bzl", "proto_library") ++load("@local_tsl//tsl/platform:build_config.bzl", "tf_proto_library") + + package( + default_visibility = ["//visibility:public"], +@@ -14,7 +14,7 @@ + deps = [ + ":chunk_reader", + ":record_position", +- ":records_metadata_cc_proto", ++ ":records_metadata_proto_cc_impl", + ":skipped_region", + "//riegeli/base:arithmetic", + "//riegeli/base:assert", +@@ -184,13 +184,10 @@ + ], + ) + +-proto_library( ++tf_proto_library( + name = "records_metadata_proto", + srcs = ["records_metadata.proto"], +- deps = ["@com_google_protobuf//:descriptor_proto"], +-) +- +-cc_proto_library( +- name = "records_metadata_cc_proto", +- deps = [":records_metadata_proto"], ++ cc_api_version = 2, ++ make_default_target_header_only = True, ++ visibility = ["//visibility:public"], + ) diff --git a/pkgs/development/python-modules/tensorflow/rules-python-use-nix.patch b/pkgs/development/python-modules/tensorflow/rules-python-use-nix.patch new file mode 100644 index 0000000000000..c8ae7b3aba4b7 --- /dev/null +++ b/pkgs/development/python-modules/tensorflow/rules-python-use-nix.patch @@ -0,0 +1,115 @@ +diff -Naurd python/private/toolchains_repo.bzl python-use-nix/private/toolchains_repo.bzl +--- python/private/toolchains_repo.bzl 2024-10-07 06:42:33.209319301 +0000 ++++ python-use-nix/private/toolchains_repo.bzl 2024-10-07 06:53:00.702389154 +0000 +@@ -199,7 +199,7 @@ + def py_binary(name, **kwargs): + return _py_binary( + name = name, +- python_version = "{python_version}", ++ python_version = "@python_version_post@", + **kwargs + ) + +@@ -213,7 +213,7 @@ + def py_test(name, **kwargs): + return _py_test( + name = name, +- python_version = "{python_version}", ++ python_version = "@python_version_post@", + **kwargs + ) + +diff -Naurd python/repositories.bzl python-use-nix/repositories.bzl +--- python/repositories.bzl 2023-11-29 23:07:55.169106050 +0000 ++++ python-use-nix/repositories.bzl 2023-12-01 12:00:06.746231531 +0000 +@@ -119,65 +119,23 @@ + fail("Exactly one of (url, urls) must be set.") + + platform = rctx.attr.platform +- python_version = rctx.attr.python_version ++ python_version = "@python_version@" + python_short_version = python_version.rpartition(".")[0] + release_filename = rctx.attr.release_filename + urls = rctx.attr.urls or [rctx.attr.url] + auth = _get_auth(rctx, urls) + +- if release_filename.endswith(".zst"): +- rctx.download( +- url = urls, +- sha256 = rctx.attr.sha256, +- output = release_filename, +- auth = auth, +- ) +- unzstd = rctx.which("unzstd") +- if not unzstd: +- url = rctx.attr.zstd_url.format(version = rctx.attr.zstd_version) +- rctx.download_and_extract( +- url = url, +- sha256 = rctx.attr.zstd_sha256, +- auth = auth, +- ) +- working_directory = "zstd-{version}".format(version = rctx.attr.zstd_version) +- +- make_result = rctx.execute( +- [which_with_fail("make", rctx), "--jobs=4"], +- timeout = 600, +- quiet = True, +- working_directory = working_directory, +- ) +- if make_result.return_code: +- fail_msg = ( +- "Failed to compile 'zstd' from source for use in Python interpreter extraction. " + +- "'make' error message: {}".format(make_result.stderr) +- ) +- fail(fail_msg) +- zstd = "{working_directory}/zstd".format(working_directory = working_directory) +- unzstd = "./unzstd" +- rctx.symlink(zstd, unzstd) +- +- exec_result = rctx.execute([ +- which_with_fail("tar", rctx), +- "--extract", +- "--strip-components=2", +- "--use-compress-program={unzstd}".format(unzstd = unzstd), +- "--file={}".format(release_filename), +- ]) +- if exec_result.return_code: +- fail_msg = ( +- "Failed to extract Python interpreter from '{}'. ".format(release_filename) + +- "'tar' error message: {}".format(exec_result.stderr) +- ) +- fail(fail_msg) +- else: +- rctx.download_and_extract( +- url = urls, +- sha256 = rctx.attr.sha256, +- stripPrefix = rctx.attr.strip_prefix, +- auth = auth, ++ lndir_result = rctx.execute([ ++ "lndir", ++ "@python@", ++ ".", ++ ]) ++ if lndir_result.return_code: ++ fail_msg = ( ++ "Failed to link Python interpreter from '{}'. ".format("@python@") + ++ "'lndir' error message: {}".format(lndir_result.stderr) + ) ++ fail(fail_msg) + + patches = rctx.attr.patches + if patches: +diff -Naurd python/pip_install/pip_repository.bzl python-use-nix/pip_install/pip_repository.bzl +--- python/pip_install/pip_repository.bzl 2024-10-08 15:24:23.582898888 +0000 ++++ python-use-nix/pip_install/pip_repository.bzl 2024-10-08 16:33:38.733498958 +0000 +@@ -607,6 +607,10 @@ + # There is an extreme edge-case with entry_points that end with `.py` + # See: https://github.com/bazelbuild/bazel/blob/09c621e4cf5b968f4c6cdf905ab142d5961f9ddc/src/test/java/com/google/devtools/build/lib/rules/python/PyBinaryConfiguredTargetTest.java#L174 + entry_point_without_py = name[:-3] + "_py" if name.endswith(".py") else name ++ ++ if entry_point_without_py.startswith("f2py3"): ++ continue ++ + entry_point_target_name = ( + _WHEEL_ENTRY_POINT_PREFIX + "_" + entry_point_without_py + ) diff --git a/pkgs/development/python-modules/tensorflow/system_includes_cuda.patch b/pkgs/development/python-modules/tensorflow/system_includes_cuda.patch new file mode 100644 index 0000000000000..50555ed9828a4 --- /dev/null +++ b/pkgs/development/python-modules/tensorflow/system_includes_cuda.patch @@ -0,0 +1,12 @@ +diff -Naurd x/third_party/gpus/cuda_configure.bzl y/third_party/gpus/cuda_configure.bzl +--- x/third_party/gpus/cuda_configure.bzl 2024-10-17 14:10:15.759870088 +0000 ++++ y/third_party/gpus/cuda_configure.bzl 2024-10-17 14:14:42.795467879 +0000 +@@ -1263,7 +1263,7 @@ + repository_ctx, + cc_fullpath, + tf_sysroot, +- ) ++ ) + ["@cuda_wrapper_includes@"] + cuda_defines = {} + cuda_defines["%{builtin_sysroot}"] = tf_sysroot + cuda_defines["%{cuda_toolkit_path}"] = "" diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index a1d1a2cdaf422..29b038913dd53 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -15767,8 +15767,9 @@ self: super: with self; { tensorflow-build = let compat = rec { + abseil-cppTF = pkgs.abseil-cpp_202301; protobufTF = pkgs.protobuf_21.override { - abseil-cpp = pkgs.abseil-cpp_202301; + abseil-cpp = abseil-cppTF; }; # https://www.tensorflow.org/install/source#gpu cudaPackagesTF = pkgs.cudaPackages_11; @@ -15808,11 +15809,27 @@ self: super: with self; { protobuf = protobuf-pythonTF; tensorboard-plugin-profile = tensorboard-plugin-profileTF; }; + # at least with CUDA the build needs bazel 6.1.0 + # https://discuss.ai.google.dev/t/undefined-references-to-mlir-ciface-symbols/30184/3 + # due to hard coded dependencies, simply overriding doesn't work, + # so we import the derivation from commit c03f31e + bazel_6_1_0 = pkgs.darwin.apple_sdk_11_0.callPackage ../development/python-modules/tensorflow/bazel_6_1_0 { + inherit (pkgs.darwin.apple_sdk_11_0.frameworks) CoreFoundation CoreServices Foundation; + buildJdk = pkgs.jdk11_headless; + runJdk = pkgs.jdk11_headless; + stdenv = if stdenv.isDarwin then + pkgs.darwin.apple_sdk_11_0.stdenv else + if stdenv.cc.isClang + then pkgs.llvmPackages.stdenv + else pkgs.gcc12Stdenv; + bazel_self = compat.bazel_6_1_0; + }; }; in callPackage ../development/python-modules/tensorflow { inherit (pkgs.config) cudaSupport; inherit (pkgs.darwin.apple_sdk.frameworks) Foundation Security; + llvmPackages = pkgs.llvmPackages_16; flatbuffers-core = pkgs.flatbuffers; flatbuffers-python = self.flatbuffers; cudaPackages = compat.cudaPackagesTF; @@ -15821,7 +15838,9 @@ self: super: with self; { grpc = compat.grpcTF; grpcio = compat.grpcioTF; tensorboard = compat.tensorboardTF; - abseil-cpp = pkgs.abseil-cpp_202301; + abseil-cpp = compat.abseil-cppTF; + bazel_6 = compat.bazel_6_1_0; + # Tensorflow 2.13 doesn't support gcc13: # https://github.com/tensorflow/tensorflow/issues/61289