summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRin Kuryloski <kuryloskip@vmware.com>2022-10-28 09:25:54 +0200
committerGitHub <noreply@github.com>2022-10-28 09:25:54 +0200
commit802e92acda09e4b650c3c7721a93d8a7b61eb665 (patch)
treeeb83cb0ae8296c89e64a8727ba77f17aef88764d
parentbaa7b75c2442b284191209263ab16b904b3ee6ab (diff)
parent21f8a3cd70216c65143b4b562d6bc3da85248f19 (diff)
downloadrabbitmq-server-git-802e92acda09e4b650c3c7721a93d8a7b61eb665.tar.gz
Merge pull request #6270 from rabbitmq/mergify/bp/v3.11.x/pr-6266
Make package_generic_unix & source_archive macros from dist.bzl useful outside of this repo (backport #6266)
-rw-r--r--BUILD.bazel17
-rw-r--r--dist.bzl105
-rw-r--r--rabbitmq.bzl8
-rw-r--r--rabbitmq_home.bzl13
4 files changed, 76 insertions, 67 deletions
diff --git a/BUILD.bazel b/BUILD.bazel
index dfc0bb2573..e3b946e15a 100644
--- a/BUILD.bazel
+++ b/BUILD.bazel
@@ -20,13 +20,6 @@ exports_files([
"release-notes",
])
-config_setting(
- name = "debug_build",
- values = {
- "compilation_mode": "dbg",
- },
-)
-
bool_flag(
name = "enable_test_build",
build_setting_default = False,
@@ -158,9 +151,15 @@ pkg_tar(
visibility = ["//visibility:public"],
)
-package_generic_unix(plugins = PLUGINS)
+package_generic_unix(
+ plugins = PLUGINS,
+ rabbitmq_workspace = "@",
+)
-source_archive(plugins = PLUGINS)
+source_archive(
+ plugins = PLUGINS,
+ rabbitmq_workspace = "@",
+)
genrule(
name = "test-logs",
diff --git a/dist.bzl b/dist.bzl
index 83341d935b..617ab92a7f 100644
--- a/dist.bzl
+++ b/dist.bzl
@@ -67,45 +67,45 @@ def _copy_script(ctx, script):
)
return dest
-def _scripts_and_escripts_private_impl(ctx):
- plugins = flat_deps(ctx.attr.plugins)
-
+def _sbin_dir_private_impl(ctx):
scripts = [_copy_script(ctx, script) for script in ctx.files._scripts]
- rabbitmq_ctl_copies = [
- "rabbitmq-diagnostics",
- "rabbitmq-plugins",
- "rabbitmq-queues",
- "rabbitmq-streams",
- "rabbitmq-tanzu",
- "rabbitmq-upgrade",
- "rabbitmqctl",
+ return [
+ DefaultInfo(
+ files = depset(scripts),
+ ),
]
- escripts = [link_escript(ctx, escript) for escript in rabbitmq_ctl_copies]
- rabbitmqctl = None
- for script in scripts:
- if script.basename == "rabbitmqctl":
- rabbitmqctl = script
- if rabbitmqctl == None:
- fail("could not find rabbitmqct among", scripts)
+def _escript_dir_private_impl(ctx):
+ escripts = [link_escript(ctx, escript) for escript in ctx.files._scripts]
return [
- RabbitmqHomeInfo(
- rabbitmqctl = rabbitmqctl,
- ),
DefaultInfo(
- files = depset(scripts + escripts),
+ files = depset(escripts),
),
]
-scripts_and_escripts_private = rule(
- implementation = _scripts_and_escripts_private_impl,
+sbin_dir_private = rule(
+ implementation = _sbin_dir_private_impl,
+ attrs = RABBITMQ_HOME_ATTRS,
+)
+
+escript_dir_private = rule(
+ implementation = _escript_dir_private_impl,
attrs = RABBITMQ_HOME_ATTRS,
)
-def scripts_and_escripts(**kwargs):
- scripts_and_escripts_private(
+def sbin_dir(**kwargs):
+ sbin_dir_private(
+ is_windows = select({
+ "@bazel_tools//src/conditions:host_windows": True,
+ "//conditions:default": False,
+ }),
+ **kwargs
+ )
+
+def escript_dir(**kwargs):
+ escript_dir_private(
is_windows = select({
"@bazel_tools//src/conditions:host_windows": True,
"//conditions:default": False,
@@ -231,13 +231,14 @@ def versioned_plugins_dir(**kwargs):
def package_generic_unix(
plugins = None,
- rabbitmq_workspace = "@",
+ rabbitmq_workspace = "@rabbitmq-server",
+ extra_licenses = [],
package_dir = "rabbitmq_server-{}".format(APP_VERSION)):
collect_licenses(
name = "licenses",
srcs = [
- rabbitmq_workspace + "//:root-licenses",
- ],
+ Label(rabbitmq_workspace + "//:root-licenses"),
+ ] + extra_licenses,
deps = plugins,
)
@@ -245,13 +246,33 @@ def package_generic_unix(
name = "license-files-tar",
srcs = [
":licenses",
- rabbitmq_workspace + "//deps/rabbit:INSTALL",
+ Label(rabbitmq_workspace + "//deps/rabbit:INSTALL"),
],
visibility = ["//visibility:public"],
)
- scripts_and_escripts(
- name = "scripts-and-escripts",
+ sbin_dir(
+ name = "sbin-dir",
+ )
+
+ pkg_tar(
+ name = "sbin-tar",
+ srcs = [
+ ":sbin-dir",
+ ],
+ package_dir = "sbin",
+ )
+
+ escript_dir(
+ name = "escript-dir",
+ )
+
+ pkg_tar(
+ name = "escripts-tar",
+ srcs = [
+ ":escript-dir",
+ ],
+ package_dir = "escript",
)
versioned_plugins_dir(
@@ -270,28 +291,26 @@ def package_generic_unix(
pkg_tar(
name = "package-generic-unix",
extension = "tar.xz",
- srcs = [
- ":scripts-and-escripts",
- ],
package_dir = package_dir,
- strip_prefix = "scripts-and-escripts",
visibility = ["//visibility:public"],
deps = [
+ ":escripts-tar",
+ ":sbin-tar",
":plugins-tar",
":license-files-tar",
- rabbitmq_workspace + "//:release-notes-tar",
- rabbitmq_workspace + "//:scripts-tar",
- rabbitmq_workspace + "//deps/rabbit:manpages-dir",
+ Label(rabbitmq_workspace + "//:release-notes-tar"),
+ Label(rabbitmq_workspace + "//:scripts-tar"),
+ Label(rabbitmq_workspace + "//deps/rabbit:manpages-dir"),
],
)
def source_archive(
plugins = None,
- rabbitmq_workspace = "@"):
+ rabbitmq_workspace = "@rabbitmq-server"):
source_tree(
name = "source-tree",
deps = plugins + [
- rabbitmq_workspace + "//deps/rabbitmq_cli:rabbitmqctl",
+ Label(rabbitmq_workspace + "//deps/rabbitmq_cli:rabbitmqctl"),
],
)
@@ -307,7 +326,7 @@ def source_archive(
pkg_tar(
name = "cli-deps-archive",
deps = [
- rabbitmq_workspace + "//deps/rabbitmq_cli:fetched_srcs",
+ Label(rabbitmq_workspace + "//deps/rabbitmq_cli:fetched_srcs"),
],
package_dir = "deps/rabbitmq_cli",
)
@@ -316,7 +335,7 @@ def source_archive(
name = "source_archive",
extension = "tar.gz",
srcs = [
- rabbitmq_workspace + "//:root-licenses",
+ Label(rabbitmq_workspace + "//:root-licenses"),
],
deps = [
":deps-archive",
diff --git a/rabbitmq.bzl b/rabbitmq.bzl
index cb64419bde..d387a8bab7 100644
--- a/rabbitmq.bzl
+++ b/rabbitmq.bzl
@@ -133,10 +133,10 @@ def rabbitmq_app(
extra_srcs = extra_srcs,
extra_priv = extra_priv,
erlc_opts = select({
- "//:debug_build": without("+deterministic", RABBITMQ_ERLC_OPTS),
+ "@rules_erlang//:debug_build": without("+deterministic", RABBITMQ_ERLC_OPTS),
"//conditions:default": RABBITMQ_ERLC_OPTS,
}) + select({
- "//:test_build": ["-DTEST=1", "+nowarn_export_all"],
+ Label("//:test_build"): ["-DTEST=1", "+nowarn_export_all"],
"//conditions:default": [],
}),
build_deps = build_deps,
@@ -157,7 +157,7 @@ def rabbitmq_app(
extra_srcs = extra_srcs,
extra_priv = extra_priv,
erlc_opts = select({
- "//:debug_build": without("+deterministic", RABBITMQ_TEST_ERLC_OPTS),
+ "@rules_erlang//:debug_build": without("+deterministic", RABBITMQ_TEST_ERLC_OPTS),
"//conditions:default": RABBITMQ_TEST_ERLC_OPTS,
}),
build_deps = with_test_versions(build_deps),
@@ -227,7 +227,7 @@ def rabbitmq_integration_suite(
suite_name = name,
tags = tags + [STARTS_BACKGROUND_BROKER_TAG],
erlc_opts = select({
- "//:debug_build": without("+deterministic", RABBITMQ_TEST_ERLC_OPTS + erlc_opts),
+ "@rules_erlang//:debug_build": without("+deterministic", RABBITMQ_TEST_ERLC_OPTS + erlc_opts),
"//conditions:default": RABBITMQ_TEST_ERLC_OPTS + erlc_opts,
}),
additional_hdrs = additional_hdrs,
diff --git a/rabbitmq_home.bzl b/rabbitmq_home.bzl
index 52d4406c4f..1ff6900328 100644
--- a/rabbitmq_home.bzl
+++ b/rabbitmq_home.bzl
@@ -20,7 +20,7 @@ def _copy_script(ctx, script):
def link_escript(ctx, escript):
e = ctx.attr._rabbitmqctl_escript.files_to_run.executable
- s = ctx.actions.declare_file(path_join(ctx.label.name, "escript", escript))
+ s = ctx.actions.declare_file(path_join(ctx.label.name, "escript", escript.basename))
ctx.actions.symlink(
output = s,
target_file = e,
@@ -80,16 +80,7 @@ def _impl(ctx):
source_scripts = ctx.files._scripts_windows
scripts = [_copy_script(ctx, script) for script in source_scripts]
- rabbitmq_ctl_copies = [
- "rabbitmq-diagnostics",
- "rabbitmq-plugins",
- "rabbitmq-queues",
- "rabbitmq-streams",
- "rabbitmq-tanzu",
- "rabbitmq-upgrade",
- "rabbitmqctl",
- ]
- escripts = [link_escript(ctx, escript) for escript in rabbitmq_ctl_copies]
+ escripts = [link_escript(ctx, escript) for escript in ctx.files._scripts]
plugins = flatten([_plugins_dir_links(ctx, plugin) for plugin in plugins])