1# Copyright 2021 The gRPC Authors
2#
3# Licensed under the Apache License, Version 2.0 (the "License");
4# you may not use this file except in compliance with the License.
5# You may obtain a copy of the License at
6#
7#     http://www.apache.org/licenses/LICENSE-2.0
8#
9# Unless required by applicable law or agreed to in writing, software
10# distributed under the License is distributed on an "AS IS" BASIS,
11# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12# See the License for the specific language governing permissions and
13# limitations under the License.
14"""Load dependencies needed to compile and test the grpc library as a 3rd-party consumer."""
15
16load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
17load("@com_github_grpc_grpc//bazel:grpc_python_deps.bzl", "grpc_python_deps")
18
19# buildifier: disable=unnamed-macro
20def grpc_deps():
21    """Loads dependencies need to compile and test the grpc library."""
22
23    native.bind(
24        name = "upb_lib",
25        actual = "@upb//:upb",
26    )
27
28    native.bind(
29        name = "upb_collections_lib",
30        actual = "@upb//:collections",
31    )
32
33    native.bind(
34        name = "upb_reflection",
35        actual = "@upb//:reflection",
36    )
37
38    native.bind(
39        name = "upb_lib_descriptor",
40        actual = "@upb//:descriptor_upb_proto",
41    )
42
43    native.bind(
44        name = "upb_lib_descriptor_reflection",
45        actual = "@upb//:descriptor_upb_proto_reflection",
46    )
47
48    native.bind(
49        name = "upb_textformat_lib",
50        actual = "@upb//:textformat",
51    )
52
53    native.bind(
54        name = "upb_json_lib",
55        actual = "@upb//:json",
56    )
57
58    native.bind(
59        name = "upb_generated_code_support__only_for_generated_code_do_not_use__i_give_permission_to_break_me",
60        actual = "@upb//:generated_code_support__only_for_generated_code_do_not_use__i_give_permission_to_break_me",
61    )
62
63    native.bind(
64        name = "libssl",
65        actual = "@boringssl//:ssl",
66    )
67
68    native.bind(
69        name = "libcrypto",
70        actual = "@boringssl//:crypto",
71    )
72
73    native.bind(
74        name = "madler_zlib",
75        actual = "@zlib//:zlib",
76    )
77
78    native.bind(
79        name = "protobuf",
80        actual = "@com_google_protobuf//:protobuf",
81    )
82
83    native.bind(
84        name = "protobuf_clib",
85        actual = "@com_google_protobuf//:protoc_lib",
86    )
87
88    native.bind(
89        name = "protobuf_headers",
90        actual = "@com_google_protobuf//:protobuf_headers",
91    )
92
93    native.bind(
94        name = "protocol_compiler",
95        actual = "@com_google_protobuf//:protoc",
96    )
97
98    native.bind(
99        name = "cares",
100        actual = "@com_github_cares_cares//:ares",
101    )
102
103    native.bind(
104        name = "gtest",
105        actual = "@com_google_googletest//:gtest",
106    )
107
108    native.bind(
109        name = "fuzztest",
110        actual = "@com_google_fuzztest//fuzztest",
111    )
112
113    native.bind(
114        name = "fuzztest_main",
115        actual = "@com_google_fuzztest//fuzztest:fuzztest_gtest_main",
116    )
117
118    native.bind(
119        name = "benchmark",
120        actual = "@com_github_google_benchmark//:benchmark",
121    )
122
123    native.bind(
124        name = "re2",
125        actual = "@com_googlesource_code_re2//:re2",
126    )
127
128    native.bind(
129        name = "grpc_cpp_plugin",
130        actual = "@com_github_grpc_grpc//src/compiler:grpc_cpp_plugin",
131    )
132
133    native.bind(
134        name = "grpc++_codegen_proto",
135        actual = "@com_github_grpc_grpc//:grpc++_codegen_proto",
136    )
137
138    native.bind(
139        name = "opencensus-context",
140        actual = "@io_opencensus_cpp//opencensus/context:context",
141    )
142
143    native.bind(
144        name = "opencensus-trace",
145        actual = "@io_opencensus_cpp//opencensus/trace:trace",
146    )
147
148    native.bind(
149        name = "opencensus-trace-context_util",
150        actual = "@io_opencensus_cpp//opencensus/trace:context_util",
151    )
152
153    native.bind(
154        name = "opencensus-trace-propagation",
155        actual = "@io_opencensus_cpp//opencensus/trace:grpc_trace_bin",
156    )
157
158    native.bind(
159        name = "opencensus-trace-span_context",
160        actual = "@io_opencensus_cpp//opencensus/trace:span_context",
161    )
162
163    native.bind(
164        name = "opencensus-stats",
165        actual = "@io_opencensus_cpp//opencensus/stats:stats",
166    )
167
168    native.bind(
169        name = "opencensus-stats-test",
170        actual = "@io_opencensus_cpp//opencensus/stats:test_utils",
171    )
172
173    native.bind(
174        name = "opencensus-with-tag-map",
175        actual = "@io_opencensus_cpp//opencensus/tags:with_tag_map",
176    )
177
178    native.bind(
179        name = "opencensus-tags",
180        actual = "@io_opencensus_cpp//opencensus/tags:tags",
181    )
182
183    native.bind(
184        name = "opencensus-tags-context_util",
185        actual = "@io_opencensus_cpp//opencensus/tags:context_util",
186    )
187
188    native.bind(
189        name = "opencensus-trace-stackdriver_exporter",
190        actual = "@io_opencensus_cpp//opencensus/exporters/trace/stackdriver:stackdriver_exporter",
191    )
192
193    native.bind(
194        name = "opencensus-stats-stackdriver_exporter",
195        actual = "@io_opencensus_cpp//opencensus/exporters/stats/stackdriver:stackdriver_exporter",
196    )
197
198    native.bind(
199        name = "libuv",
200        actual = "@com_github_libuv_libuv//:libuv",
201    )
202
203    native.bind(
204        name = "libuv_test",
205        actual = "@com_github_libuv_libuv//:libuv_test",
206    )
207
208    native.bind(
209        name = "googleapis_trace_grpc_service",
210        actual = "@com_google_googleapis//google/devtools/cloudtrace/v2:cloudtrace_cc_grpc",
211    )
212
213    native.bind(
214        name = "googleapis_monitoring_grpc_service",
215        actual = "@com_google_googleapis//google/monitoring/v3:monitoring_cc_grpc",
216    )
217
218    native.bind(
219        name = "googleapis_logging_grpc_service",
220        actual = "@com_google_googleapis//google/logging/v2:logging_cc_grpc",
221    )
222
223    native.bind(
224        name = "googleapis_logging_cc_proto",
225        actual = "@com_google_googleapis//google/logging/v2:logging_cc_proto",
226    )
227
228    if "boringssl" not in native.existing_rules():
229        http_archive(
230            name = "boringssl",
231            # Use github mirror instead of https://boringssl.googlesource.com/boringssl
232            # to obtain a boringssl archive with consistent sha256
233            sha256 = "f150aa2d73017fe8576a8a335f29030488d851c94368a79ac56142d107bf9e9a",
234            strip_prefix = "boringssl-e46383fc18d08def901b2ed5a194295693e905c7",
235            urls = [
236                "https://storage.googleapis.com/grpc-bazel-mirror/github.com/google/boringssl/archive/e46383fc18d08def901b2ed5a194295693e905c7.tar.gz",
237                "https://github.com/google/boringssl/archive/e46383fc18d08def901b2ed5a194295693e905c7.tar.gz",
238            ],
239        )
240
241    if "zlib" not in native.existing_rules():
242        http_archive(
243            name = "zlib",
244            build_file = "@com_github_grpc_grpc//third_party:zlib.BUILD",
245            sha256 = "90f43a9c998740e8a0db24b0af0147033db2aaaa99423129abbd76640757cac9",
246            strip_prefix = "zlib-04f42ceca40f73e2978b50e93806c2a18c1281fc",
247            urls = [
248                "https://storage.googleapis.com/grpc-bazel-mirror/github.com/madler/zlib/archive/04f42ceca40f73e2978b50e93806c2a18c1281fc.tar.gz",
249                "https://github.com/madler/zlib/archive/04f42ceca40f73e2978b50e93806c2a18c1281fc.tar.gz",
250            ],
251        )
252
253    if "com_google_protobuf" not in native.existing_rules():
254        http_archive(
255            name = "com_google_protobuf",
256            sha256 = "209385d3c08252e320196b628584c8007f849f9ec8a26c2796a886345ee58bb6",
257            strip_prefix = "protobuf-2dca62f7296e5b49d729f7384f975cecb38382a0",
258            urls = [
259                # https://github.com/protocolbuffers/protobuf/commits/v23.1
260                "https://storage.googleapis.com/grpc-bazel-mirror/github.com/protocolbuffers/protobuf/archive/2dca62f7296e5b49d729f7384f975cecb38382a0.tar.gz",
261                "https://github.com/protocolbuffers/protobuf/archive/2dca62f7296e5b49d729f7384f975cecb38382a0.tar.gz",
262            ],
263            patches = [
264                "@com_github_grpc_grpc//third_party:protobuf.patch",
265            ],
266            patch_args = ["-p1"],
267        )
268
269    if "com_google_googletest" not in native.existing_rules():
270        http_archive(
271            name = "com_google_googletest",
272            sha256 = "c8de6c60e12ad014a28225c5247ee735861d85cf906df617f6a29954ca05f547",
273            strip_prefix = "googletest-0e402173c97aea7a00749e825b194bfede4f2e45",
274            urls = [
275                # 2022-02-09
276                "https://github.com/google/googletest/archive/0e402173c97aea7a00749e825b194bfede4f2e45.tar.gz",
277            ],
278        )
279
280    if "com_google_fuzztest" not in native.existing_rules():
281        # when updating this remember to run:
282        # bazel run @com_google_fuzztest//bazel:setup_configs > tools/fuzztest.bazelrc
283        http_archive(
284            name = "com_google_fuzztest",
285            sha256 = "cdf8d8cd3cdc77280a7c59b310edf234e489a96b6e727cb271e7dfbeb9bcca8d",
286            strip_prefix = "fuzztest-4ecaeb5084a061a862af8f86789ee184cd3d3f18",
287            urls = [
288                # 2023-05-16
289                "https://github.com/google/fuzztest/archive/4ecaeb5084a061a862af8f86789ee184cd3d3f18.tar.gz",
290            ],
291        )
292
293    if "rules_cc" not in native.existing_rules():
294        http_archive(
295            name = "rules_cc",
296            sha256 = "3d9e271e2876ba42e114c9b9bc51454e379cbf0ec9ef9d40e2ae4cec61a31b40",
297            strip_prefix = "rules_cc-0.0.6",
298            urls = [
299                "https://storage.googleapis.com/grpc-bazel-mirror/github.com/bazelbuild/rules_cc/releases/download/0.0.6/rules_cc-0.0.6.tar.gz",
300                "https://github.com/bazelbuild/rules_cc/releases/download/0.0.6/rules_cc-0.0.6.tar.gz",
301            ],
302        )
303
304    if "com_github_google_benchmark" not in native.existing_rules():
305        http_archive(
306            name = "com_github_google_benchmark",
307            sha256 = "3a43368d3ec48afe784573cf962fe98c084e89a1e3d176c00715a84366316e7d",
308            strip_prefix = "benchmark-361e8d1cfe0c6c36d30b39f1b61302ece5507320",
309            urls = [
310                "https://storage.googleapis.com/grpc-bazel-mirror/github.com/google/benchmark/archive/361e8d1cfe0c6c36d30b39f1b61302ece5507320.tar.gz",
311                "https://github.com/google/benchmark/archive/361e8d1cfe0c6c36d30b39f1b61302ece5507320.tar.gz",
312            ],
313        )
314
315    if "com_googlesource_code_re2" not in native.existing_rules():
316        http_archive(
317            name = "com_googlesource_code_re2",
318            sha256 = "1ae8ccfdb1066a731bba6ee0881baad5efd2cd661acd9569b689f2586e1a50e9",
319            strip_prefix = "re2-2022-04-01",
320            urls = [
321                "https://storage.googleapis.com/grpc-bazel-mirror/github.com/google/re2/archive/2022-04-01.tar.gz",
322                "https://github.com/google/re2/archive/2022-04-01.tar.gz",
323            ],
324        )
325
326    if "com_github_cares_cares" not in native.existing_rules():
327        http_archive(
328            name = "com_github_cares_cares",
329            build_file = "@com_github_grpc_grpc//third_party:cares/cares.BUILD",
330            sha256 = "bf26e5b25e259911914a85ae847b6d723488adb5af4f8bdeb9d0871a318476e3",
331            strip_prefix = "c-ares-6360e96b5cf8e5980c887ce58ef727e53d77243a",
332            urls = [
333                "https://storage.googleapis.com/grpc-bazel-mirror/github.com/c-ares/c-ares/archive/6360e96b5cf8e5980c887ce58ef727e53d77243a.tar.gz",
334                "https://github.com/c-ares/c-ares/archive/6360e96b5cf8e5980c887ce58ef727e53d77243a.tar.gz",
335            ],
336        )
337
338    if "com_google_absl" not in native.existing_rules():
339        http_archive(
340            name = "com_google_absl",
341            sha256 = "5366d7e7fa7ba0d915014d387b66d0d002c03236448e1ba9ef98122c13b35c36",
342            strip_prefix = "abseil-cpp-20230125.3",
343            urls = [
344                "https://storage.googleapis.com/grpc-bazel-mirror/github.com/abseil/abseil-cpp/archive/20230125.3.tar.gz",
345                "https://github.com/abseil/abseil-cpp/archive/20230125.3.tar.gz",
346            ],
347        )
348
349    if "bazel_toolchains" not in native.existing_rules():
350        # list of releases is at https://github.com/bazelbuild/bazel-toolchains/releases
351        http_archive(
352            name = "bazel_toolchains",
353            sha256 = "179ec02f809e86abf56356d8898c8bd74069f1bd7c56044050c2cd3d79d0e024",
354            strip_prefix = "bazel-toolchains-4.1.0",
355            urls = [
356                "https://mirror.bazel.build/github.com/bazelbuild/bazel-toolchains/releases/download/4.1.0/bazel-toolchains-4.1.0.tar.gz",
357                "https://github.com/bazelbuild/bazel-toolchains/releases/download/4.1.0/bazel-toolchains-4.1.0.tar.gz",
358            ],
359        )
360
361    if "bazel_skylib" not in native.existing_rules():
362        http_archive(
363            name = "bazel_skylib",
364            urls = [
365                "https://mirror.bazel.build/github.com/bazelbuild/bazel-skylib/releases/download/1.0.2/bazel-skylib-1.0.2.tar.gz",
366                "https://github.com/bazelbuild/bazel-skylib/releases/download/1.0.2/bazel-skylib-1.0.2.tar.gz",
367            ],
368            sha256 = "97e70364e9249702246c0e9444bccdc4b847bed1eb03c5a3ece4f83dfe6abc44",
369        )
370
371    if "bazel_compdb" not in native.existing_rules():
372        http_archive(
373            name = "bazel_compdb",
374            sha256 = "bcecfd622c4ef272fd4ba42726a52e140b961c4eac23025f18b346c968a8cfb4",
375            strip_prefix = "bazel-compilation-database-0.4.5",
376            urls = [
377                "https://storage.googleapis.com/grpc-bazel-mirror/github.com/grailbio/bazel-compilation-database/archive/0.4.5.tar.gz",
378                "https://github.com/grailbio/bazel-compilation-database/archive/0.4.5.tar.gz",
379            ],
380        )
381
382    if "io_opencensus_cpp" not in native.existing_rules():
383        http_archive(
384            name = "io_opencensus_cpp",
385            sha256 = "46b3b5812c150a21bacf860c2f76fc42b89773ed77ee954c32adeb8593aa2a8e",
386            strip_prefix = "opencensus-cpp-5501a1a255805e0be83a41348bb5f2630d5ed6b3",
387            urls = [
388                "https://storage.googleapis.com/grpc-bazel-mirror/github.com/census-instrumentation/opencensus-cpp/archive/5501a1a255805e0be83a41348bb5f2630d5ed6b3.tar.gz",
389                "https://github.com/census-instrumentation/opencensus-cpp/archive/5501a1a255805e0be83a41348bb5f2630d5ed6b3.tar.gz",
390            ],
391        )
392
393    if "upb" not in native.existing_rules():
394        http_archive(
395            name = "upb",
396            sha256 = "7d19f2ac9c1e508a86a272913d9aa67c8147827f949035828910bb05d9f2cf03",
397            strip_prefix = "upb-61a97efa24a5ce01fb8cc73c9d1e6e7060f8ea98",
398            urls = [
399                # https://github.com/protocolbuffers/upb/commits/23.x
400                "https://storage.googleapis.com/grpc-bazel-mirror/github.com/protocolbuffers/upb/archive/61a97efa24a5ce01fb8cc73c9d1e6e7060f8ea98.tar.gz",
401                "https://github.com/protocolbuffers/upb/archive/61a97efa24a5ce01fb8cc73c9d1e6e7060f8ea98.tar.gz",
402            ],
403        )
404
405    if "envoy_api" not in native.existing_rules():
406        http_archive(
407            name = "envoy_api",
408            sha256 = "3c7372b5cb33e5e5cc3afd82573fc6275f9a2cac8b1530e1af14f52f34047328",
409            strip_prefix = "data-plane-api-68d4315167352ffac71f149a43b8088397d3f33d",
410            urls = [
411                "https://storage.googleapis.com/grpc-bazel-mirror/github.com/envoyproxy/data-plane-api/archive/68d4315167352ffac71f149a43b8088397d3f33d.tar.gz",
412                "https://github.com/envoyproxy/data-plane-api/archive/68d4315167352ffac71f149a43b8088397d3f33d.tar.gz",
413            ],
414        )
415
416    if "io_bazel_rules_go" not in native.existing_rules():
417        http_archive(
418            name = "io_bazel_rules_go",
419            sha256 = "69de5c704a05ff37862f7e0f5534d4f479418afc21806c887db544a316f3cb6b",
420            urls = [
421                "https://mirror.bazel.build/github.com/bazelbuild/rules_go/releases/download/v0.27.0/rules_go-v0.27.0.tar.gz",
422                "https://github.com/bazelbuild/rules_go/releases/download/v0.27.0/rules_go-v0.27.0.tar.gz",
423            ],
424        )
425
426    if "build_bazel_rules_apple" not in native.existing_rules():
427        http_archive(
428            name = "build_bazel_rules_apple",
429            sha256 = "f94e6dddf74739ef5cb30f000e13a2a613f6ebfa5e63588305a71fce8a8a9911",
430            urls = [
431                "https://storage.googleapis.com/grpc-bazel-mirror/github.com/bazelbuild/rules_apple/releases/download/1.1.3/rules_apple.1.1.3.tar.gz",
432                "https://github.com/bazelbuild/rules_apple/releases/download/1.1.3/rules_apple.1.1.3.tar.gz",
433            ],
434        )
435
436    if "build_bazel_apple_support" not in native.existing_rules():
437        http_archive(
438            name = "build_bazel_apple_support",
439            sha256 = "f4fdf5c9b42b92ea12f229b265d74bb8cedb8208ca7a445b383c9f866cf53392",
440            urls = [
441                "https://storage.googleapis.com/grpc-bazel-mirror/github.com/bazelbuild/apple_support/releases/download/1.3.1/apple_support.1.3.1.tar.gz",
442                "https://github.com/bazelbuild/apple_support/releases/download/1.3.1/apple_support.1.3.1.tar.gz",
443            ],
444        )
445
446    if "com_github_libuv_libuv" not in native.existing_rules():
447        http_archive(
448            name = "com_github_libuv_libuv",
449            build_file = "@com_github_grpc_grpc//third_party:libuv.BUILD",
450            sha256 = "5ca4e9091f3231d8ad8801862dc4e851c23af89c69141d27723157776f7291e7",
451            strip_prefix = "libuv-02a9e1be252b623ee032a3137c0b0c94afbe6809",
452            urls = [
453                "https://storage.googleapis.com/grpc-bazel-mirror/github.com/libuv/libuv/archive/02a9e1be252b623ee032a3137c0b0c94afbe6809.tar.gz",
454                "https://github.com/libuv/libuv/archive/02a9e1be252b623ee032a3137c0b0c94afbe6809.tar.gz",
455            ],
456        )
457
458    if "com_google_googleapis" not in native.existing_rules():
459        http_archive(
460            name = "com_google_googleapis",
461            sha256 = "5bb6b0253ccf64b53d6c7249625a7e3f6c3bc6402abd52d3778bfa48258703a0",
462            strip_prefix = "googleapis-2f9af297c84c55c8b871ba4495e01ade42476c92",
463            urls = [
464                "https://storage.googleapis.com/grpc-bazel-mirror/github.com/googleapis/googleapis/archive/2f9af297c84c55c8b871ba4495e01ade42476c92.tar.gz",
465                "https://github.com/googleapis/googleapis/archive/2f9af297c84c55c8b871ba4495e01ade42476c92.tar.gz",
466            ],
467        )
468
469    if "bazel_gazelle" not in native.existing_rules():
470        http_archive(
471            name = "bazel_gazelle",
472            sha256 = "de69a09dc70417580aabf20a28619bb3ef60d038470c7cf8442fafcf627c21cb",
473            urls = [
474                "https://mirror.bazel.build/github.com/bazelbuild/bazel-gazelle/releases/download/v0.24.0/bazel-gazelle-v0.24.0.tar.gz",
475                "https://github.com/bazelbuild/bazel-gazelle/releases/download/v0.24.0/bazel-gazelle-v0.24.0.tar.gz",
476            ],
477        )
478
479    if "opencensus_proto" not in native.existing_rules():
480        http_archive(
481            name = "opencensus_proto",
482            sha256 = "b7e13f0b4259e80c3070b583c2f39e53153085a6918718b1c710caf7037572b0",
483            strip_prefix = "opencensus-proto-0.3.0/src",
484            urls = [
485                "https://storage.googleapis.com/grpc-bazel-mirror/github.com/census-instrumentation/opencensus-proto/archive/v0.3.0.tar.gz",
486                "https://github.com/census-instrumentation/opencensus-proto/archive/v0.3.0.tar.gz",
487            ],
488        )
489
490    if "com_envoyproxy_protoc_gen_validate" not in native.existing_rules():
491        http_archive(
492            name = "com_envoyproxy_protoc_gen_validate",
493            strip_prefix = "protoc-gen-validate-4694024279bdac52b77e22dc87808bd0fd732b69",
494            sha256 = "1e490b98005664d149b379a9529a6aa05932b8a11b76b4cd86f3d22d76346f47",
495            urls = [
496                "https://github.com/envoyproxy/protoc-gen-validate/archive/4694024279bdac52b77e22dc87808bd0fd732b69.tar.gz",
497            ],
498            patches = ["@com_github_grpc_grpc//third_party:protoc-gen-validate.patch"],
499            patch_args = ["-p1"],
500        )
501
502    if "com_github_cncf_udpa" not in native.existing_rules():
503        http_archive(
504            name = "com_github_cncf_udpa",
505            sha256 = "0d33b83f8c6368954e72e7785539f0d272a8aba2f6e2e336ed15fd1514bc9899",
506            strip_prefix = "xds-e9ce68804cb4e64cab5a52e3c8baf840d4ff87b7",
507            urls = [
508                "https://storage.googleapis.com/grpc-bazel-mirror/github.com/cncf/xds/archive/e9ce68804cb4e64cab5a52e3c8baf840d4ff87b7.tar.gz",
509                "https://github.com/cncf/xds/archive/e9ce68804cb4e64cab5a52e3c8baf840d4ff87b7.tar.gz",
510            ],
511        )
512
513    grpc_python_deps()
514
515# TODO: move some dependencies from "grpc_deps" here?
516# buildifier: disable=unnamed-macro
517def grpc_test_only_deps():
518    """Internal, not intended for use by packages that are consuming grpc.
519
520    Loads dependencies that are only needed to run grpc library's tests.
521    """
522    native.bind(
523        name = "twisted",
524        actual = "@com_github_twisted_twisted//:twisted",
525    )
526
527    native.bind(
528        name = "yaml",
529        actual = "@com_github_yaml_pyyaml//:yaml",
530    )
531
532    if "com_github_twisted_twisted" not in native.existing_rules():
533        http_archive(
534            name = "com_github_twisted_twisted",
535            sha256 = "ca17699d0d62eafc5c28daf2c7d0a18e62ae77b4137300b6c7d7868b39b06139",
536            strip_prefix = "twisted-twisted-17.5.0",
537            urls = [
538                "https://storage.googleapis.com/grpc-bazel-mirror/github.com/twisted/twisted/archive/twisted-17.5.0.zip",
539                "https://github.com/twisted/twisted/archive/twisted-17.5.0.zip",
540            ],
541            build_file = "@com_github_grpc_grpc//third_party:twisted.BUILD",
542        )
543
544    if "com_github_yaml_pyyaml" not in native.existing_rules():
545        http_archive(
546            name = "com_github_yaml_pyyaml",
547            sha256 = "6b4314b1b2051ddb9d4fcd1634e1fa9c1bb4012954273c9ff3ef689f6ec6c93e",
548            strip_prefix = "pyyaml-3.12",
549            urls = [
550                "https://storage.googleapis.com/grpc-bazel-mirror/github.com/yaml/pyyaml/archive/3.12.zip",
551                "https://github.com/yaml/pyyaml/archive/3.12.zip",
552            ],
553            build_file = "@com_github_grpc_grpc//third_party:yaml.BUILD",
554        )
555
556    if "com_github_twisted_incremental" not in native.existing_rules():
557        http_archive(
558            name = "com_github_twisted_incremental",
559            sha256 = "f0ca93359ee70243ff7fbf2d904a6291810bd88cb80ed4aca6fa77f318a41a36",
560            strip_prefix = "incremental-incremental-17.5.0",
561            urls = [
562                "https://storage.googleapis.com/grpc-bazel-mirror/github.com/twisted/incremental/archive/incremental-17.5.0.zip",
563                "https://github.com/twisted/incremental/archive/incremental-17.5.0.zip",
564            ],
565            build_file = "@com_github_grpc_grpc//third_party:incremental.BUILD",
566        )
567
568    if "com_github_zopefoundation_zope_interface" not in native.existing_rules():
569        http_archive(
570            name = "com_github_zopefoundation_zope_interface",
571            sha256 = "e9579fc6149294339897be3aa9ecd8a29217c0b013fe6f44fcdae00e3204198a",
572            strip_prefix = "zope.interface-4.4.3",
573            urls = [
574                "https://storage.googleapis.com/grpc-bazel-mirror/github.com/zopefoundation/zope.interface/archive/4.4.3.zip",
575                "https://github.com/zopefoundation/zope.interface/archive/4.4.3.zip",
576            ],
577            build_file = "@com_github_grpc_grpc//third_party:zope_interface.BUILD",
578        )
579
580    if "com_github_twisted_constantly" not in native.existing_rules():
581        http_archive(
582            name = "com_github_twisted_constantly",
583            sha256 = "2702cd322161a579d2c0dbf94af4e57712eedc7bd7bbbdc554a230544f7d346c",
584            strip_prefix = "constantly-15.1.0",
585            urls = [
586                "https://storage.googleapis.com/grpc-bazel-mirror/github.com/twisted/constantly/archive/15.1.0.zip",
587                "https://github.com/twisted/constantly/archive/15.1.0.zip",
588            ],
589            build_file = "@com_github_grpc_grpc//third_party:constantly.BUILD",
590        )
591
592    if "com_google_libprotobuf_mutator" not in native.existing_rules():
593        http_archive(
594            name = "com_google_libprotobuf_mutator",
595            sha256 = "11ab4c57b4051977d8fedb86dba5c9092e578bc293c47be146e0b0596b6a0bdc",
596            urls = [
597                "https://storage.googleapis.com/grpc-bazel-mirror/github.com/google/libprotobuf-mutator/archive/c390388561be36f94a559a4aed7e2fe60470f60b.tar.gz",
598                "https://github.com/google/libprotobuf-mutator/archive/c390388561be36f94a559a4aed7e2fe60470f60b.tar.gz",
599            ],
600            strip_prefix = "libprotobuf-mutator-c390388561be36f94a559a4aed7e2fe60470f60b",
601            build_file = "@com_github_grpc_grpc//third_party:libprotobuf_mutator.BUILD",
602        )
603