blob: c5fddd5a86b58c877760bfcc2adf240e581818f3 [file] [log] [blame]
Sergiusz Bazanski5f9b1ec2019-09-22 02:19:18 +02001workspace(
2 name = "hscloud",
3)
4
Sergiusz Bazanskide061802019-01-13 21:14:02 +01005load("@bazel_tools//tools/build_defs/repo:git.bzl", "git_repository")
Serge Bazanski146c99e2021-03-18 19:15:38 +00006load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive", "http_file")
Sergiusz Bazanskide061802019-01-13 21:14:02 +01007
Bartosz Stebelcae27ec2020-07-03 07:05:15 +02008# Protobuf deps (shared between many rules).
9# Load this as early as possible, to avoid a different version being pulled in by deps of something else
Bartosz Stebelcae27ec2020-07-03 07:05:15 +020010http_archive(
11 name = "com_google_protobuf",
radex38203d22021-08-30 18:49:24 +020012 sha256 = "c6003e1d2e7fefa78a3039f19f383b4f3a61e81be8c19356f85b6461998ad3db",
13 strip_prefix = "protobuf-3.17.3",
14 urls = ["https://github.com/google/protobuf/archive/v3.17.3.tar.gz"],
Bartosz Stebelcae27ec2020-07-03 07:05:15 +020015)
16
17load("@com_google_protobuf//:protobuf_deps.bzl", "protobuf_deps")
Serge Bazanski1572e522020-12-03 23:19:28 +010018
Bartosz Stebelcae27ec2020-07-03 07:05:15 +020019protobuf_deps()
20
Bartosz Stebele69e98d2022-06-18 23:56:22 +020021rules_python_version = "0.9.0"
Serge Bazanski194b1c82020-09-25 20:24:17 +000022http_archive(
23 name = "rules_python",
Bartosz Stebele69e98d2022-06-18 23:56:22 +020024 sha256 = "5fa3c738d33acca3b97622a13a741129f67ef43f5fdfcec63b29374cc0574c29",
Bartosz Stebel999a8f52021-06-26 14:51:15 +020025 strip_prefix = "rules_python-{}".format(rules_python_version),
Bartosz Stebele69e98d2022-06-18 23:56:22 +020026 url = "https://github.com/bazelbuild/rules_python/archive/refs/tags/{}.tar.gz".format(rules_python_version),
Serge Bazanski194b1c82020-09-25 20:24:17 +000027)
Patryk Jakuszew30f9d032020-06-05 23:37:34 +020028
Serge Bazanski194b1c82020-09-25 20:24:17 +000029# Download Go/Gazelle rules
Patryk Jakuszew30f9d032020-06-05 23:37:34 +020030http_archive(
31 name = "io_bazel_rules_go",
radex38203d22021-08-30 18:49:24 +020032 sha256 = "69de5c704a05ff37862f7e0f5534d4f479418afc21806c887db544a316f3cb6b",
Patryk Jakuszew30f9d032020-06-05 23:37:34 +020033 urls = [
radex38203d22021-08-30 18:49:24 +020034 "https://mirror.bazel.build/github.com/bazelbuild/rules_go/releases/download/v0.27.0/rules_go-v0.27.0.tar.gz",
35 "https://github.com/bazelbuild/rules_go/releases/download/v0.27.0/rules_go-v0.27.0.tar.gz",
Patryk Jakuszew30f9d032020-06-05 23:37:34 +020036 ],
37)
Serge Bazanski1572e522020-12-03 23:19:28 +010038
Patryk Jakuszew30f9d032020-06-05 23:37:34 +020039http_archive(
40 name = "bazel_gazelle",
radex38203d22021-08-30 18:49:24 +020041 sha256 = "62ca106be173579c0a167deb23358fdfe71ffa1e4cfdddf5582af26520f1c66f",
Patryk Jakuszew30f9d032020-06-05 23:37:34 +020042 urls = [
radex38203d22021-08-30 18:49:24 +020043 "https://mirror.bazel.build/github.com/bazelbuild/bazel-gazelle/releases/download/v0.23.0/bazel-gazelle-v0.23.0.tar.gz",
44 "https://github.com/bazelbuild/bazel-gazelle/releases/download/v0.23.0/bazel-gazelle-v0.23.0.tar.gz",
Patryk Jakuszew30f9d032020-06-05 23:37:34 +020045 ],
46)
47
Bartosz Stebelcae27ec2020-07-03 07:05:15 +020048# Python rules
Bartosz Stebelcae27ec2020-07-03 07:05:15 +020049# Important: rules_python must be loaded before protobuf (and grpc) because they load an older version otherwise
Serge Bazanski4e534cc2021-06-29 19:16:45 +000050load("@rules_python//python:pip.bzl", "pip_parse")
Serge Bazanski50e987c2021-07-11 12:32:36 +000051
Serge Bazanski4e534cc2021-06-29 19:16:45 +000052pip_parse(
Serge Bazanski1572e522020-12-03 23:19:28 +010053 name = "pydeps",
Serge Bazanski4e534cc2021-06-29 19:16:45 +000054 requirements_lock = "//third_party/py:requirements.txt",
Patryk Jakuszew30f9d032020-06-05 23:37:34 +020055)
Serge Bazanski50e987c2021-07-11 12:32:36 +000056
Serge Bazanski4e534cc2021-06-29 19:16:45 +000057load("@pydeps//:requirements.bzl", "install_deps")
Serge Bazanski50e987c2021-07-11 12:32:36 +000058
Serge Bazanski4e534cc2021-06-29 19:16:45 +000059install_deps()
Patryk Jakuszew30f9d032020-06-05 23:37:34 +020060
Serge Bazanski194b1c82020-09-25 20:24:17 +000061# Setup Go toolchain.
Serge Bazanski4b613302021-02-13 13:16:10 +010062load("@io_bazel_rules_go//go:deps.bzl", "go_register_toolchains")
Serge Bazanski50e987c2021-07-11 12:32:36 +000063
radex38203d22021-08-30 18:49:24 +020064go_register_toolchains(version = "1.17")
Serge Bazanski194b1c82020-09-25 20:24:17 +000065
Bartosz Stebelcae27ec2020-07-03 07:05:15 +020066# IMPORTANT: match protobuf version above with the one loaded by grpc
67http_archive(
68 name = "com_github_grpc_grpc",
69 sha256 = "419dba362eaf8f1d36849ceee17c3e2ff8ff12ac666b42d3ff02a164ebe090e9",
70 strip_prefix = "grpc-1.30.0",
71 urls = ["https://github.com/grpc/grpc/archive/v1.30.0.tar.gz"],
72)
73
Serge Bazanski194b1c82020-09-25 20:24:17 +000074# Load grpc deps after Go, to prevent overriding Go toolchains/SDK.
Bartosz Stebelcae27ec2020-07-03 07:05:15 +020075load("@com_github_grpc_grpc//bazel:grpc_deps.bzl", "grpc_deps")
Serge Bazanski1572e522020-12-03 23:19:28 +010076
Bartosz Stebelcae27ec2020-07-03 07:05:15 +020077grpc_deps()
Serge Bazanski1572e522020-12-03 23:19:28 +010078
Bartosz Stebelcae27ec2020-07-03 07:05:15 +020079load("@com_github_grpc_grpc//bazel:grpc_extra_deps.bzl", "grpc_extra_deps")
Serge Bazanski1572e522020-12-03 23:19:28 +010080
Bartosz Stebelcae27ec2020-07-03 07:05:15 +020081grpc_extra_deps()
Sergiusz Bazanski0c3b9a52020-06-21 01:26:22 +020082
Serge Bazanski194b1c82020-09-25 20:24:17 +000083load("@io_bazel_rules_go//go:deps.bzl", "go_rules_dependencies")
Serge Bazanski1572e522020-12-03 23:19:28 +010084
Patryk Jakuszew30f9d032020-06-05 23:37:34 +020085go_rules_dependencies()
Patryk Jakuszew30f9d032020-06-05 23:37:34 +020086
Serge Bazanski1e1a4dd2020-08-01 14:07:27 +020087# gazelle:repository_macro third_party/go/repositories.bzl%go_repositories
Serge Bazanski1572e522020-12-03 23:19:28 +010088load("@bazel_gazelle//:deps.bzl", "gazelle_dependencies", "go_repository")
89
Serge Bazanski3e2a5a52021-10-07 19:12:27 +000090# Force newer version of golang.org/x/crypto that gazelle_dependencies would
91# usually get.
Serge Bazanski39437442021-10-07 18:45:20 +000092go_repository(
Serge Bazanski3e2a5a52021-10-07 19:12:27 +000093 name = "org_golang_x_crypto",
94 build_naming_convention = "go_default_library",
95 importpath = "golang.org/x/crypto",
96 sum = "h1:7I4JAnoQBe7ZtJcBaYHi5UtiO8tQHbUSXxL+pnGRANg=",
97 version = "v0.0.0-20210921155107-089bfa567519",
Serge Bazanski39437442021-10-07 18:45:20 +000098)
99
Patryk Jakuszew30f9d032020-06-05 23:37:34 +0200100gazelle_dependencies()
101
Serge Bazanski194b1c82020-09-25 20:24:17 +0000102# Load Go third-party packages.
Sergiusz Bazanski0c3b9a52020-06-21 01:26:22 +0200103load("//third_party/go:repositories.bzl", "go_repositories")
Serge Bazanski1572e522020-12-03 23:19:28 +0100104
Sergiusz Bazanski0c3b9a52020-06-21 01:26:22 +0200105go_repositories()
106
Serge Bazanski2ce36762019-07-14 16:29:52 +0200107# Docker rules
108
109http_archive(
110 name = "io_bazel_rules_docker",
Norbert Szulca6e1b8d2021-05-12 14:17:31 +0200111 sha256 = "59d5b42ac315e7eadffa944e86e90c2990110a1c8075f1cd145f487e999d22b3",
112 strip_prefix = "rules_docker-0.17.0",
113 urls = ["https://github.com/bazelbuild/rules_docker/releases/download/v0.17.0/rules_docker-v0.17.0.tar.gz"],
Serge Bazanski2ce36762019-07-14 16:29:52 +0200114)
115
Sergiusz Bazanski356ea8b2019-07-21 23:56:43 +0200116load("@io_bazel_rules_docker//toolchains/docker:toolchain.bzl", docker_toolchain_configure = "toolchain_configure")
117
118# This forces the use of Docker $HOME/.docker configuration.
119docker_toolchain_configure(
120 name = "docker_config",
121 client_config = "",
Serge Bazanskib2d6b112019-07-30 13:07:04 +0200122 docker_path = "/usr/bin/docker",
Sergiusz Bazanski356ea8b2019-07-21 23:56:43 +0200123)
124
Serge Bazanski2ce36762019-07-14 16:29:52 +0200125load(
126 "@io_bazel_rules_docker//repositories:repositories.bzl",
127 container_repositories = "repositories",
128)
Serge Bazanski1572e522020-12-03 23:19:28 +0100129
Serge Bazanski2ce36762019-07-14 16:29:52 +0200130container_repositories()
Sergiusz Bazanski8fe651b2019-07-21 23:50:05 +0200131
Sergiusz Bazanski65865332019-05-18 16:23:45 +0200132# Docker base images
133
134load("@io_bazel_rules_docker//container:container.bzl", "container_pull")
Sergiusz Bazanskia7e26cc2019-06-21 20:38:35 +0200135
Sergiusz Bazanski65865332019-05-18 16:23:45 +0200136container_pull(
137 name = "prodimage-bionic",
Serge Bazanski39437442021-10-07 18:45:20 +0000138 digest = "sha256:1cd1f84169b8e1414a5d511b42909f2d540831c67b6799ae9af8cd6a80d75b5f",
Serge Bazanskib2d6b112019-07-30 13:07:04 +0200139 registry = "registry.k0.hswaw.net",
140 repository = "q3k/prodimage",
Serge Bazanskiec71cb52019-08-22 18:13:13 +0200141 tag = "20190822-1227",
Sergiusz Bazanski65865332019-05-18 16:23:45 +0200142)
143
Sergiusz Bazanskia7e26cc2019-06-21 20:38:35 +0200144container_pull(
Serge Bazanskidd692212021-03-11 17:51:02 +0100145 name = "gerrit-3.3.2",
Serge Bazanski39437442021-10-07 18:45:20 +0000146 digest = "sha256:f7fc8b749706f38475f94191117091973914a8f084e69518deff7dbc9c2c557d",
Sergiusz Bazanskia7e26cc2019-06-21 20:38:35 +0200147 registry = "index.docker.io",
148 repository = "gerritcodereview/gerrit",
Serge Bazanskidd692212021-03-11 17:51:02 +0100149 tag = "3.3.2-ubuntu20",
Sergiusz Bazanskia7e26cc2019-06-21 20:38:35 +0200150)
151
Sergiusz Bazanski48050572020-05-10 21:34:10 +0200152# third_party/factorio
153load("//third_party/factorio:factorio.bzl", "factorio_repositories")
Serge Bazanski1572e522020-12-03 23:19:28 +0100154
Sergiusz Bazanski48050572020-05-10 21:34:10 +0200155factorio_repositories()
Sergiusz Bazanski59786c52020-04-01 02:05:42 +0200156
Sergiusz Bazanski222a00a2020-04-12 18:37:21 +0200157# For devtools/gerrit/gerrit-oauth-provider and gerrit OWNERS plugin
Sergiusz Bazanski573da782019-06-21 19:59:52 +0200158
159git_repository(
160 name = "com_googlesource_gerrit_bazlets",
Serge Bazanskifaa326a2020-12-17 23:32:42 +0100161 commit = "a511f3c90129d7de7ae67c0637001162980c08d5",
Serge Bazanski39437442021-10-07 18:45:20 +0000162 remote = "https://gerrit.googlesource.com/bazlets",
Bartosz Stebel0e2057f2020-12-28 21:40:09 +0100163 shallow_since = "1606931369 -0600",
Sergiusz Bazanski573da782019-06-21 19:59:52 +0200164)
165
Sergiusz Bazanski0c3b9a52020-06-21 01:26:22 +0200166load("@com_googlesource_gerrit_bazlets//:gerrit_api.bzl", "gerrit_api")
Serge Bazanski1572e522020-12-03 23:19:28 +0100167
Sergiusz Bazanski573da782019-06-21 19:59:52 +0200168gerrit_api()
169
Serge Bazanski50e987c2021-07-11 12:32:36 +0000170load("//devtools/gerrit/gerrit-oauth-provider:external_plugin_deps.bzl", gerrit_oauth_deps = "external_plugin_deps")
171
172gerrit_oauth_deps(omit_commons_codec = False)
Sergiusz Bazanski222a00a2020-04-12 18:37:21 +0200173
Serge Bazanski146c99e2021-03-18 19:15:38 +0000174# Gerrit 3.3.2 built by q3k, backported with fix for 'empty reviewers column' bug.
175# See: https://bugs.chromium.org/p/gerrit/issues/detail?id=13899
176# Override can be removed once we update to > 3.3.2, as the fix for this is
177# pending for the 3.3 branch.
178#
179# Built from v3.3.2 tag at df0507df5917fd78af01aee2495b2663530d52d1
180# Cherry-picked fix from 8731af3ae785efe9ecff7f3d04302b6b01c4fc0b
181# Resulted in commit 5949bfb86e62a32a95293e339ed86bfe52a283e9
182# Built against Java 8:
183# bazel build --java_toolchain //tools:error_prone_warnings_toolchain :release
184#
185http_file(
186 name = "org_q3k_gerrit_3_3_2_backport",
Serge Bazanski39437442021-10-07 18:45:20 +0000187 downloaded_file_path = "gerrit.war",
188 sha256 = "d1839d691a8534f4ccb27bed9a98281e45972fbebec50d004cecd4d5da2b15a6",
Serge Bazanski146c99e2021-03-18 19:15:38 +0000189 urls = [
190 "https://object.ceph-waw3.hswaw.net/q3k-personal/d1839d691a8534f4ccb27bed9a98281e45972fbebec50d004cecd4d5da2b15a6.war",
191 ],
Serge Bazanski146c99e2021-03-18 19:15:38 +0000192)
193
Sergiusz Bazanski32f8a582020-05-18 00:27:23 +0200194# minecraft spigot/bukkit deps
195# this uses rules_jvm_external vs gerrit's maven_jar because we need SNAPSHOT support
196
197http_archive(
198 name = "io_grpc_grpc_java",
199 sha256 = "446ad7a2e85bbd05406dbf95232c7c49ed90de83b3b60cb2048b0c4c9f254d29",
200 strip_prefix = "grpc-java-1.29.0",
201 url = "https://github.com/grpc/grpc-java/archive/v1.29.0.zip",
202)
203
204RULES_JVM_EXTERNAL_TAG = "3.0"
Serge Bazanski1572e522020-12-03 23:19:28 +0100205
Sergiusz Bazanski32f8a582020-05-18 00:27:23 +0200206RULES_JVM_EXTERNAL_SHA = "62133c125bf4109dfd9d2af64830208356ce4ef8b165a6ef15bbff7460b35c3a"
207
208http_archive(
209 name = "rules_jvm_external",
Sergiusz Bazanski32f8a582020-05-18 00:27:23 +0200210 sha256 = RULES_JVM_EXTERNAL_SHA,
Serge Bazanski39437442021-10-07 18:45:20 +0000211 strip_prefix = "rules_jvm_external-%s" % RULES_JVM_EXTERNAL_TAG,
Sergiusz Bazanski32f8a582020-05-18 00:27:23 +0200212 url = "https://github.com/bazelbuild/rules_jvm_external/archive/%s.zip" % RULES_JVM_EXTERNAL_TAG,
213)
214
215load("@rules_jvm_external//:defs.bzl", "maven_install")
216load("@io_grpc_grpc_java//:repositories.bzl", "IO_GRPC_GRPC_JAVA_ARTIFACTS")
217load("@io_grpc_grpc_java//:repositories.bzl", "IO_GRPC_GRPC_JAVA_OVERRIDE_TARGETS")
218
219maven_install(
220 artifacts = [
Serge Bazanski55cc9ab2021-02-15 22:09:17 +0100221 "org.spigotmc:spigot-api:1.15.2-R0.1-20200624.001023-124",
Sergiusz Bazanski32f8a582020-05-18 00:27:23 +0200222 "io.grpc:grpc-netty-shaded:1.29.0",
223 "io.grpc:grpc-services:1.29.0",
Serge Bazanski1572e522020-12-03 23:19:28 +0100224 ] + IO_GRPC_GRPC_JAVA_ARTIFACTS,
Sergiusz Bazanski32f8a582020-05-18 00:27:23 +0200225 generate_compat_repositories = True,
Serge Bazanski39437442021-10-07 18:45:20 +0000226 maven_install_json = "//third_party/java:maven_install.json",
Sergiusz Bazanski32f8a582020-05-18 00:27:23 +0200227 override_targets = IO_GRPC_GRPC_JAVA_OVERRIDE_TARGETS,
228 repositories = [
229 "https://hub.spigotmc.org/nexus/content/repositories/snapshots",
230 "https://oss.sonatype.org/content/repositories/snapshots",
231 "https://repo1.maven.org/maven2/",
232 ],
Sergiusz Bazanski32f8a582020-05-18 00:27:23 +0200233)
234
235load("@maven//:defs.bzl", "pinned_maven_install")
Serge Bazanski1572e522020-12-03 23:19:28 +0100236
Sergiusz Bazanski32f8a582020-05-18 00:27:23 +0200237pinned_maven_install()
238
239load("@maven//:compat.bzl", "compat_repositories")
Serge Bazanski1572e522020-12-03 23:19:28 +0100240
Sergiusz Bazanski32f8a582020-05-18 00:27:23 +0200241compat_repositories()
242
243load("@io_grpc_grpc_java//:repositories.bzl", "grpc_java_repositories")
Serge Bazanski1572e522020-12-03 23:19:28 +0100244
Sergiusz Bazanski32f8a582020-05-18 00:27:23 +0200245grpc_java_repositories()
246
Sergiusz Bazanski222a00a2020-04-12 18:37:21 +0200247# Gerrit OWNERS plugins external repositories
248
249git_repository(
250 name = "com_googlesource_gerrit_plugin_owners",
Serge Bazanskifaa326a2020-12-17 23:32:42 +0100251 commit = "17817c9e319073c03513f9d5177b6142b8fd567b",
Serge Bazanski39437442021-10-07 18:45:20 +0000252 remote = "https://gerrit.googlesource.com/plugins/owners/",
Bartosz Stebel0e2057f2020-12-28 21:40:09 +0100253 shallow_since = "1593642470 +0200",
Sergiusz Bazanski222a00a2020-04-12 18:37:21 +0200254)
Serge Bazanski50e987c2021-07-11 12:32:36 +0000255
256load("@com_googlesource_gerrit_plugin_owners//:external_plugin_deps_standalone.bzl", gerrit_owners_deps = "external_plugin_deps_standalone")
257
Serge Bazanskifaa326a2020-12-17 23:32:42 +0100258gerrit_owners_deps()
Sergiusz Bazanski222a00a2020-04-12 18:37:21 +0200259
Sergiusz Bazanski356ea8b2019-07-21 23:56:43 +0200260# Go image repos for Docker
261
Sergiusz Bazanski0c3b9a52020-06-21 01:26:22 +0200262load("@io_bazel_rules_docker//go:image.bzl", go_image_repositories = "repositories")
Serge Bazanski1572e522020-12-03 23:19:28 +0100263
Sergiusz Bazanski356ea8b2019-07-21 23:56:43 +0200264go_image_repositories()
Sergiusz Bazanski0037eda2020-06-13 22:43:06 +0200265
266# oniguruma, with build from //third_party/oniguruma
267
268http_archive(
269 name = "com_github_kkos_oniguruma",
Sergiusz Bazanski0037eda2020-06-13 22:43:06 +0200270 build_file = "@hscloud//third_party/oniguruma:BUILD.external",
Serge Bazanski39437442021-10-07 18:45:20 +0000271 sha256 = "d33c849d1672af227944878cefe0a8fcf26fc62bedba32aa517f2f63c314a99e",
272 strip_prefix = "onig-6.9.5",
273 urls = ["https://github.com/kkos/oniguruma/releases/download/v6.9.5_rev1/onig-6.9.5_rev1.tar.gz"],
Sergiusz Bazanski0037eda2020-06-13 22:43:06 +0200274)
275
276# jq, with build from //third_party/jq
277
278http_archive(
279 name = "com_github_stedolan_jq",
Sergiusz Bazanski0037eda2020-06-13 22:43:06 +0200280 build_file = "@hscloud//third_party/jq:BUILD.external",
Serge Bazanski39437442021-10-07 18:45:20 +0000281 sha256 = "5de8c8e29aaa3fb9cc6b47bb27299f271354ebb72514e3accadc7d38b5bbaa72",
282 strip_prefix = "jq-1.6",
283 urls = ["https://github.com/stedolan/jq/releases/download/jq-1.6/jq-1.6.tar.gz"],
Sergiusz Bazanski0037eda2020-06-13 22:43:06 +0200284)
Serge Bazanski1572e522020-12-03 23:19:28 +0100285
Serge Bazanski19c8b602022-02-01 09:36:47 +0000286# //hswaw/site deps.
287load("//hswaw/site:deps.bzl", "hswaw_site_deps")
288hswaw_site_deps()
Serge Bazanski39437442021-10-07 18:45:20 +0000289
290# noVNC, used by //dc/drackvm.
291http_archive(
292 name = "com_github_novnc_novnc",
293 build_file_content = """
294filegroup(
295 name = "distfiles",
296 srcs = [
297 "vnc.html",
298 ] + glob([
299 "app/**",
300 "core/**",
301 "vendor/**",
302 ]),
303 visibility = ["//visibility:public"],
304)
305""",
Serge Bazanski39437442021-10-07 18:45:20 +0000306 sha256 = "2c972cca34376dfd2a54939e7e571e466511bf592d03e838440b3c8868441eaf",
307 strip_prefix = "noVNC-1.3.0-beta",
Serge Bazanskid01f9e52021-10-07 19:24:31 +0000308 urls = ["https://github.com/novnc/noVNC/archive/refs/tags/v1.3.0-beta.tar.gz"],
Serge Bazanski1f062302021-06-01 22:24:34 +0000309)
Bartosz Stebel12f176c2021-06-18 13:12:41 +0200310
311# temporarily use upstream binary, see //cluster/tools/BUILD
312http_file(
313 name = "calicoctl_3_15",
314 downloaded_file_path = "calicoctl",
315 urls = ["https://github.com/projectcalico/calicoctl/releases/download/v3.15.5/calicoctl"],
316 sha256 = "f49e9e8d25108f7f22d5a51c756b2fe40cbe36347ad297e31a767376172f2845",
317 executable = True,
318)