grpc_deps.bzl 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483
  1. """Load dependencies needed to compile and test the grpc library as a 3rd-party consumer."""
  2. load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
  3. load("@com_github_grpc_grpc//bazel:grpc_python_deps.bzl", "grpc_python_deps")
  4. def grpc_deps():
  5. """Loads dependencies need to compile and test the grpc library."""
  6. native.bind(
  7. name = "upb_lib",
  8. actual = "@upb//:upb",
  9. )
  10. native.bind(
  11. name = "upb_lib_descriptor",
  12. actual = "@upb//:descriptor_upb_proto",
  13. )
  14. native.bind(
  15. name = "upb_lib_descriptor_reflection",
  16. actual = "@upb//:descriptor_upb_proto_reflection",
  17. )
  18. native.bind(
  19. name = "upb_textformat_lib",
  20. actual = "@upb//:textformat",
  21. )
  22. native.bind(
  23. name = "upb_json_lib",
  24. actual = "@upb//:json",
  25. )
  26. native.bind(
  27. name = "absl",
  28. actual = "@com_google_absl//absl",
  29. )
  30. native.bind(
  31. name = "absl-base",
  32. actual = "@com_google_absl//absl/base",
  33. )
  34. native.bind(
  35. name = "absl-time",
  36. actual = "@com_google_absl//absl/time:time",
  37. )
  38. native.bind(
  39. name = "libssl",
  40. actual = "@boringssl//:ssl",
  41. )
  42. native.bind(
  43. name = "madler_zlib",
  44. actual = "@zlib//:zlib",
  45. )
  46. native.bind(
  47. name = "protobuf",
  48. actual = "@com_google_protobuf//:protobuf",
  49. )
  50. native.bind(
  51. name = "protobuf_clib",
  52. actual = "@com_google_protobuf//:protoc_lib",
  53. )
  54. native.bind(
  55. name = "protobuf_headers",
  56. actual = "@com_google_protobuf//:protobuf_headers",
  57. )
  58. native.bind(
  59. name = "protocol_compiler",
  60. actual = "@com_google_protobuf//:protoc",
  61. )
  62. native.bind(
  63. name = "cares",
  64. actual = "@com_github_cares_cares//:ares",
  65. )
  66. native.bind(
  67. name = "gtest",
  68. actual = "@com_google_googletest//:gtest",
  69. )
  70. native.bind(
  71. name = "benchmark",
  72. actual = "@com_github_google_benchmark//:benchmark",
  73. )
  74. native.bind(
  75. name = "re2",
  76. actual = "@com_googlesource_code_re2//:re2",
  77. )
  78. native.bind(
  79. name = "grpc_cpp_plugin",
  80. actual = "@com_github_grpc_grpc//src/compiler:grpc_cpp_plugin",
  81. )
  82. native.bind(
  83. name = "grpc++_codegen_proto",
  84. actual = "@com_github_grpc_grpc//:grpc++_codegen_proto",
  85. )
  86. native.bind(
  87. name = "opencensus-context",
  88. actual = "@io_opencensus_cpp//opencensus/context:context",
  89. )
  90. native.bind(
  91. name = "opencensus-trace",
  92. actual = "@io_opencensus_cpp//opencensus/trace:trace",
  93. )
  94. native.bind(
  95. name = "opencensus-trace-context_util",
  96. actual = "@io_opencensus_cpp//opencensus/trace:context_util",
  97. )
  98. native.bind(
  99. name = "opencensus-stats",
  100. actual = "@io_opencensus_cpp//opencensus/stats:stats",
  101. )
  102. native.bind(
  103. name = "opencensus-stats-test",
  104. actual = "@io_opencensus_cpp//opencensus/stats:test_utils",
  105. )
  106. native.bind(
  107. name = "opencensus-with-tag-map",
  108. actual = "@io_opencensus_cpp//opencensus/tags:with_tag_map",
  109. )
  110. native.bind(
  111. name = "opencensus-tags",
  112. actual = "@io_opencensus_cpp//opencensus/tags:tags",
  113. )
  114. native.bind(
  115. name = "libuv",
  116. actual = "@libuv//:libuv",
  117. )
  118. if "boringssl" not in native.existing_rules():
  119. http_archive(
  120. name = "boringssl",
  121. # Use github mirror instead of https://boringssl.googlesource.com/boringssl
  122. # to obtain a boringssl archive with consistent sha256
  123. sha256 = "269c89eb60d3f3fcd5a0a755d1e28ffa65d423bc3c0e9562e2d666f5464680d2",
  124. strip_prefix = "boringssl-1a7359455220f7010def8c63f7c7e041ce6707c6",
  125. urls = [
  126. "https://storage.googleapis.com/grpc-bazel-mirror/github.com/google/boringssl/archive/1a7359455220f7010def8c63f7c7e041ce6707c6.tar.gz",
  127. "https://github.com/google/boringssl/archive/1a7359455220f7010def8c63f7c7e041ce6707c6.tar.gz",
  128. ],
  129. )
  130. if "zlib" not in native.existing_rules():
  131. http_archive(
  132. name = "zlib",
  133. build_file = "@com_github_grpc_grpc//third_party:zlib.BUILD",
  134. sha256 = "6d4d6640ca3121620995ee255945161821218752b551a1a180f4215f7d124d45",
  135. strip_prefix = "zlib-cacf7f1d4e3d44d871b605da3b647f07d718623f",
  136. urls = [
  137. "https://storage.googleapis.com/grpc-bazel-mirror/github.com/madler/zlib/archive/cacf7f1d4e3d44d871b605da3b647f07d718623f.tar.gz",
  138. "https://github.com/madler/zlib/archive/cacf7f1d4e3d44d871b605da3b647f07d718623f.tar.gz",
  139. ],
  140. )
  141. if "com_google_protobuf" not in native.existing_rules():
  142. http_archive(
  143. name = "com_google_protobuf",
  144. sha256 = "09709ea1a25dc2f02e281e11f559dd979139ba2a1ddb24c489ea6bea9e3ad8bc",
  145. strip_prefix = "protobuf-d7e943b8d2bc444a8c770644e73d090b486f8b37",
  146. urls = [
  147. "https://storage.googleapis.com/grpc-bazel-mirror/github.com/google/protobuf/archive/d7e943b8d2bc444a8c770644e73d090b486f8b37.tar.gz",
  148. "https://github.com/google/protobuf/archive/d7e943b8d2bc444a8c770644e73d090b486f8b37.tar.gz",
  149. ],
  150. patches = ["@com_github_grpc_grpc//third_party:protobuf.patch"],
  151. patch_args = ["-p1"],
  152. )
  153. if "com_google_googletest" not in native.existing_rules():
  154. http_archive(
  155. name = "com_google_googletest",
  156. sha256 = "443d383db648ebb8e391382c0ab63263b7091d03197f304390baac10f178a468",
  157. strip_prefix = "googletest-c9ccac7cb7345901884aabf5d1a786cfa6e2f397",
  158. urls = [
  159. # 2019-08-19
  160. "https://storage.googleapis.com/grpc-bazel-mirror/github.com/google/googletest/archive/c9ccac7cb7345901884aabf5d1a786cfa6e2f397.tar.gz",
  161. "https://github.com/google/googletest/archive/c9ccac7cb7345901884aabf5d1a786cfa6e2f397.tar.gz",
  162. ],
  163. )
  164. if "rules_cc" not in native.existing_rules():
  165. http_archive(
  166. name = "rules_cc",
  167. sha256 = "35f2fb4ea0b3e61ad64a369de284e4fbbdcdba71836a5555abb5e194cf119509",
  168. strip_prefix = "rules_cc-624b5d59dfb45672d4239422fa1e3de1822ee110",
  169. urls = [
  170. #2019-08-15
  171. "https://storage.googleapis.com/grpc-bazel-mirror/github.com/bazelbuild/rules_cc/archive/624b5d59dfb45672d4239422fa1e3de1822ee110.tar.gz",
  172. "https://github.com/bazelbuild/rules_cc/archive/624b5d59dfb45672d4239422fa1e3de1822ee110.tar.gz",
  173. ],
  174. )
  175. if "com_github_google_benchmark" not in native.existing_rules():
  176. http_archive(
  177. name = "com_github_google_benchmark",
  178. sha256 = "daa4a97e0547d76de300e325a49177b199f3689ce5a35e25d47696f7cb050f86",
  179. strip_prefix = "benchmark-73d4d5e8d6d449fc8663765a42aa8aeeee844489",
  180. urls = [
  181. "https://storage.googleapis.com/grpc-bazel-mirror/github.com/google/benchmark/archive/73d4d5e8d6d449fc8663765a42aa8aeeee844489.tar.gz",
  182. "https://github.com/google/benchmark/archive/73d4d5e8d6d449fc8663765a42aa8aeeee844489.tar.gz",
  183. ],
  184. )
  185. if "com_googlesource_code_re2" not in native.existing_rules():
  186. http_archive(
  187. name = "com_googlesource_code_re2",
  188. sha256 = "9f385e146410a8150b6f4cb1a57eab7ec806ced48d427554b1e754877ff26c3e",
  189. strip_prefix = "re2-aecba11114cf1fac5497aeb844b6966106de3eb6",
  190. urls = [
  191. "https://storage.googleapis.com/grpc-bazel-mirror/github.com/google/re2/archive/aecba11114cf1fac5497aeb844b6966106de3eb6.tar.gz",
  192. "https://github.com/google/re2/archive/aecba11114cf1fac5497aeb844b6966106de3eb6.tar.gz",
  193. ],
  194. )
  195. if "com_github_cares_cares" not in native.existing_rules():
  196. http_archive(
  197. name = "com_github_cares_cares",
  198. build_file = "@com_github_grpc_grpc//third_party:cares/cares.BUILD",
  199. sha256 = "e8c2751ddc70fed9dc6f999acd92e232d5846f009ee1674f8aee81f19b2b915a",
  200. strip_prefix = "c-ares-e982924acee7f7313b4baa4ee5ec000c5e373c30",
  201. urls = [
  202. "https://storage.googleapis.com/grpc-bazel-mirror/github.com/c-ares/c-ares/archive/e982924acee7f7313b4baa4ee5ec000c5e373c30.tar.gz",
  203. "https://github.com/c-ares/c-ares/archive/e982924acee7f7313b4baa4ee5ec000c5e373c30.tar.gz",
  204. ],
  205. )
  206. if "com_google_absl" not in native.existing_rules():
  207. http_archive(
  208. name = "com_google_absl",
  209. sha256 = "35f22ef5cb286f09954b7cc4c85b5a3f6221c9d4df6b8c4a1e9d399555b366ee",
  210. strip_prefix = "abseil-cpp-997aaf3a28308eba1b9156aa35ab7bca9688e9f6",
  211. urls = [
  212. "https://storage.googleapis.com/grpc-bazel-mirror/github.com/abseil/abseil-cpp/archive/997aaf3a28308eba1b9156aa35ab7bca9688e9f6.tar.gz",
  213. "https://github.com/abseil/abseil-cpp/archive/997aaf3a28308eba1b9156aa35ab7bca9688e9f6.tar.gz",
  214. ],
  215. )
  216. if "bazel_toolchains" not in native.existing_rules():
  217. # list of releases is at https://releases.bazel.build/bazel-toolchains.html
  218. http_archive(
  219. name = "bazel_toolchains",
  220. sha256 = "0b36eef8a66f39c8dbae88e522d5bbbef49d5e66e834a982402c79962281be10",
  221. strip_prefix = "bazel-toolchains-1.0.1",
  222. urls = [
  223. "https://mirror.bazel.build/github.com/bazelbuild/bazel-toolchains/archive/1.0.1.tar.gz",
  224. "https://github.com/bazelbuild/bazel-toolchains/releases/download/1.0.1/bazel-toolchains-1.0.1.tar.gz",
  225. ],
  226. )
  227. if "bazel_skylib" not in native.existing_rules():
  228. http_archive(
  229. name = "bazel_skylib",
  230. urls = [
  231. "https://mirror.bazel.build/github.com/bazelbuild/bazel-skylib/releases/download/1.0.2/bazel-skylib-1.0.2.tar.gz",
  232. "https://github.com/bazelbuild/bazel-skylib/releases/download/1.0.2/bazel-skylib-1.0.2.tar.gz",
  233. ],
  234. sha256 = "97e70364e9249702246c0e9444bccdc4b847bed1eb03c5a3ece4f83dfe6abc44",
  235. )
  236. if "bazel_compdb" not in native.existing_rules():
  237. http_archive(
  238. name = "bazel_compdb",
  239. sha256 = "bcecfd622c4ef272fd4ba42726a52e140b961c4eac23025f18b346c968a8cfb4",
  240. strip_prefix = "bazel-compilation-database-0.4.5",
  241. urls = [
  242. "https://storage.googleapis.com/grpc-bazel-mirror/github.com/grailbio/bazel-compilation-database/archive/0.4.5.tar.gz",
  243. "https://github.com/grailbio/bazel-compilation-database/archive/0.4.5.tar.gz",
  244. ],
  245. )
  246. if "io_opencensus_cpp" not in native.existing_rules():
  247. http_archive(
  248. name = "io_opencensus_cpp",
  249. sha256 = "90d6fafa8b1a2ea613bf662731d3086e1c2ed286f458a95c81744df2dbae41b1",
  250. strip_prefix = "opencensus-cpp-c9a4da319bc669a772928ffc55af4a61be1a1176",
  251. urls = [
  252. "https://storage.googleapis.com/grpc-bazel-mirror/github.com/census-instrumentation/opencensus-cpp/archive/c9a4da319bc669a772928ffc55af4a61be1a1176.tar.gz",
  253. "https://github.com/census-instrumentation/opencensus-cpp/archive/c9a4da319bc669a772928ffc55af4a61be1a1176.tar.gz",
  254. ],
  255. )
  256. if "upb" not in native.existing_rules():
  257. http_archive(
  258. name = "upb",
  259. sha256 = "c0b97bf91dfea7e8d7579c24e2ecdd02d10b00f3c5defc3dce23d95100d0e664",
  260. strip_prefix = "upb-60607da72e89ba0c84c84054d2e562d8b6b61177",
  261. urls = [
  262. "https://storage.googleapis.com/grpc-bazel-mirror/github.com/protocolbuffers/upb/archive/60607da72e89ba0c84c84054d2e562d8b6b61177.tar.gz",
  263. "https://github.com/protocolbuffers/upb/archive/60607da72e89ba0c84c84054d2e562d8b6b61177.tar.gz",
  264. ],
  265. )
  266. if "envoy_api" not in native.existing_rules():
  267. http_archive(
  268. name = "envoy_api",
  269. sha256 = "4423bef0ab15053dca0f723cbdaf4b48ab145e9d8158f02e33028c66fb1d20e0",
  270. strip_prefix = "data-plane-api-18b54850c9b7ba29a4ab67cbd7ed7eab7b0bbdb2",
  271. urls = [
  272. "https://storage.googleapis.com/grpc-bazel-mirror/github.com/envoyproxy/data-plane-api/archive/18b54850c9b7ba29a4ab67cbd7ed7eab7b0bbdb2.tar.gz",
  273. "https://github.com/envoyproxy/data-plane-api/archive/18b54850c9b7ba29a4ab67cbd7ed7eab7b0bbdb2.tar.gz",
  274. ],
  275. )
  276. if "io_bazel_rules_go" not in native.existing_rules():
  277. http_archive(
  278. name = "io_bazel_rules_go",
  279. sha256 = "dbf5a9ef855684f84cac2e7ae7886c5a001d4f66ae23f6904da0faaaef0d61fc",
  280. urls = [
  281. "https://mirror.bazel.build/github.com/bazelbuild/rules_go/releases/download/v0.24.11/rules_go-v0.24.11.tar.gz",
  282. "https://github.com/bazelbuild/rules_go/releases/download/v0.24.11/rules_go-v0.24.11.tar.gz",
  283. ],
  284. )
  285. if "build_bazel_rules_apple" not in native.existing_rules():
  286. http_archive(
  287. name = "build_bazel_rules_apple",
  288. strip_prefix = "rules_apple-b869b0d3868d78a1d4ffd866ccb304fb68aa12c3",
  289. sha256 = "bdc8e66e70b8a75da23b79f1f8c6207356df07d041d96d2189add7ee0780cf4e",
  290. urls = [
  291. "https://storage.googleapis.com/grpc-bazel-mirror/github.com/bazelbuild/rules_apple/archive/b869b0d3868d78a1d4ffd866ccb304fb68aa12c3.tar.gz",
  292. "https://github.com/bazelbuild/rules_apple/archive/b869b0d3868d78a1d4ffd866ccb304fb68aa12c3.tar.gz",
  293. ],
  294. )
  295. if "build_bazel_apple_support" not in native.existing_rules():
  296. http_archive(
  297. name = "build_bazel_apple_support",
  298. urls = [
  299. "https://storage.googleapis.com/grpc-bazel-mirror/github.com/bazelbuild/apple_support/releases/download/0.7.1/apple_support.0.7.1.tar.gz",
  300. "https://github.com/bazelbuild/apple_support/releases/download/0.7.1/apple_support.0.7.1.tar.gz",
  301. ],
  302. sha256 = "122ebf7fe7d1c8e938af6aeaee0efe788a3a2449ece5a8d6a428cb18d6f88033",
  303. )
  304. if "libuv" not in native.existing_rules():
  305. http_archive(
  306. name = "libuv",
  307. build_file = "@com_github_grpc_grpc//third_party:libuv.BUILD",
  308. sha256 = "dfb4fe1ff0b47340978490a14bf253475159ecfcbad46ab2a350c78f9ce3360f",
  309. strip_prefix = "libuv-15ae750151ac9341e5945eb38f8982d59fb99201",
  310. urls = [
  311. "https://storage.googleapis.com/grpc-bazel-mirror/github.com/libuv/libuv/archive/15ae750151ac9341e5945eb38f8982d59fb99201.tar.gz",
  312. "https://github.com/libuv/libuv/archive/15ae750151ac9341e5945eb38f8982d59fb99201.tar.gz",
  313. ],
  314. )
  315. if "com_google_googleapis" not in native.existing_rules():
  316. http_archive(
  317. name = "com_google_googleapis",
  318. sha256 = "a45019af4d3290f02eaeb1ce10990166978c807cb33a9692141a076ba46d1405",
  319. strip_prefix = "googleapis-82944da21578a53b74e547774cf62ed31a05b841",
  320. urls = [
  321. "https://storage.googleapis.com/grpc-bazel-mirror/github.com/googleapis/googleapis/archive/82944da21578a53b74e547774cf62ed31a05b841.tar.gz",
  322. "https://github.com/googleapis/googleapis/archive/82944da21578a53b74e547774cf62ed31a05b841.tar.gz",
  323. ],
  324. )
  325. if "bazel_gazelle" not in native.existing_rules():
  326. http_archive(
  327. name = "bazel_gazelle",
  328. sha256 = "d987004a72697334a095bbaa18d615804a28280201a50ed6c234c40ccc41e493",
  329. strip_prefix = "bazel-gazelle-0.19.1",
  330. urls = [
  331. "https://storage.googleapis.com/grpc-bazel-mirror/github.com/bazelbuild/bazel-gazelle/archive/v0.19.1.tar.gz",
  332. "https://github.com/bazelbuild/bazel-gazelle/archive/v0.19.1.tar.gz",
  333. ],
  334. )
  335. if "opencensus_proto" not in native.existing_rules():
  336. http_archive(
  337. name = "opencensus_proto",
  338. sha256 = "b7e13f0b4259e80c3070b583c2f39e53153085a6918718b1c710caf7037572b0",
  339. strip_prefix = "opencensus-proto-0.3.0/src",
  340. urls = [
  341. "https://storage.googleapis.com/grpc-bazel-mirror/github.com/census-instrumentation/opencensus-proto/archive/v0.3.0.tar.gz",
  342. "https://github.com/census-instrumentation/opencensus-proto/archive/v0.3.0.tar.gz",
  343. ],
  344. )
  345. if "com_envoyproxy_protoc_gen_validate" not in native.existing_rules():
  346. http_archive(
  347. name = "com_envoyproxy_protoc_gen_validate",
  348. sha256 = "e368733c9fb7f8489591ffaf269170d7658cc0cd1ee322b601512b769446d3c8",
  349. strip_prefix = "protoc-gen-validate-278964a8052f96a2f514add0298098f63fb7f47f",
  350. urls = [
  351. "https://storage.googleapis.com/grpc-bazel-mirror/github.com/envoyproxy/protoc-gen-validate/archive/278964a8052f96a2f514add0298098f63fb7f47f.tar.gz",
  352. "https://github.com/envoyproxy/protoc-gen-validate/archive/278964a8052f96a2f514add0298098f63fb7f47f.tar.gz",
  353. ],
  354. )
  355. grpc_python_deps()
  356. # TODO: move some dependencies from "grpc_deps" here?
  357. def grpc_test_only_deps():
  358. """Internal, not intended for use by packages that are consuming grpc.
  359. Loads dependencies that are only needed to run grpc library's tests."""
  360. native.bind(
  361. name = "twisted",
  362. actual = "@com_github_twisted_twisted//:twisted",
  363. )
  364. native.bind(
  365. name = "yaml",
  366. actual = "@com_github_yaml_pyyaml//:yaml",
  367. )
  368. if "com_github_twisted_twisted" not in native.existing_rules():
  369. http_archive(
  370. name = "com_github_twisted_twisted",
  371. sha256 = "ca17699d0d62eafc5c28daf2c7d0a18e62ae77b4137300b6c7d7868b39b06139",
  372. strip_prefix = "twisted-twisted-17.5.0",
  373. urls = [
  374. "https://storage.googleapis.com/grpc-bazel-mirror/github.com/twisted/twisted/archive/twisted-17.5.0.zip",
  375. "https://github.com/twisted/twisted/archive/twisted-17.5.0.zip",
  376. ],
  377. build_file = "@com_github_grpc_grpc//third_party:twisted.BUILD",
  378. )
  379. if "com_github_yaml_pyyaml" not in native.existing_rules():
  380. http_archive(
  381. name = "com_github_yaml_pyyaml",
  382. sha256 = "6b4314b1b2051ddb9d4fcd1634e1fa9c1bb4012954273c9ff3ef689f6ec6c93e",
  383. strip_prefix = "pyyaml-3.12",
  384. urls = [
  385. "https://storage.googleapis.com/grpc-bazel-mirror/github.com/yaml/pyyaml/archive/3.12.zip",
  386. "https://github.com/yaml/pyyaml/archive/3.12.zip",
  387. ],
  388. build_file = "@com_github_grpc_grpc//third_party:yaml.BUILD",
  389. )
  390. if "com_github_twisted_incremental" not in native.existing_rules():
  391. http_archive(
  392. name = "com_github_twisted_incremental",
  393. sha256 = "f0ca93359ee70243ff7fbf2d904a6291810bd88cb80ed4aca6fa77f318a41a36",
  394. strip_prefix = "incremental-incremental-17.5.0",
  395. urls = [
  396. "https://storage.googleapis.com/grpc-bazel-mirror/github.com/twisted/incremental/archive/incremental-17.5.0.zip",
  397. "https://github.com/twisted/incremental/archive/incremental-17.5.0.zip",
  398. ],
  399. build_file = "@com_github_grpc_grpc//third_party:incremental.BUILD",
  400. )
  401. if "com_github_zopefoundation_zope_interface" not in native.existing_rules():
  402. http_archive(
  403. name = "com_github_zopefoundation_zope_interface",
  404. sha256 = "e9579fc6149294339897be3aa9ecd8a29217c0b013fe6f44fcdae00e3204198a",
  405. strip_prefix = "zope.interface-4.4.3",
  406. urls = [
  407. "https://storage.googleapis.com/grpc-bazel-mirror/github.com/zopefoundation/zope.interface/archive/4.4.3.zip",
  408. "https://github.com/zopefoundation/zope.interface/archive/4.4.3.zip",
  409. ],
  410. build_file = "@com_github_grpc_grpc//third_party:zope_interface.BUILD",
  411. )
  412. if "com_github_twisted_constantly" not in native.existing_rules():
  413. http_archive(
  414. name = "com_github_twisted_constantly",
  415. sha256 = "2702cd322161a579d2c0dbf94af4e57712eedc7bd7bbbdc554a230544f7d346c",
  416. strip_prefix = "constantly-15.1.0",
  417. urls = [
  418. "https://storage.googleapis.com/grpc-bazel-mirror/github.com/twisted/constantly/archive/15.1.0.zip",
  419. "https://github.com/twisted/constantly/archive/15.1.0.zip",
  420. ],
  421. build_file = "@com_github_grpc_grpc//third_party:constantly.BUILD",
  422. )