blob: 10689e5d7d1435f4a4a3775a031cd7ccf744c417 [file] [log] [blame]
load("@rules_pkg//:pkg.bzl", "pkg_deb", "pkg_tar")
filegroup(
name = "srcs",
srcs = glob(["**"]),
visibility = ["//scripts:__subpackages__"],
)
pkg_tar(
name = "bazel-bin",
srcs = [
"//scripts/packages:with-jdk/bazel",
"//scripts/packages:with-jdk/bazel-real",
],
mode = "0755",
package_dir = "/usr/bin",
strip_prefix = "/scripts/packages/with-jdk",
)
pkg_tar(
name = "bazel-rc",
srcs = ["//scripts/packages:bazel.bazelrc"],
mode = "0644",
package_dir = "/etc",
strip_prefix = "/scripts/packages",
)
genrule(
name = "rename-bash-completion",
srcs = ["//scripts:bash_completion"],
outs = ["etc/bash_completion.d/bazel"],
cmd = "cp $< $@",
)
genrule(
name = "rename-zsh-completion",
srcs = ["//scripts/zsh_completion:_bazel"],
outs = ["usr/share/zsh/vendor-completions/_bazel"],
cmd = "cp $< $@",
)
pkg_tar(
name = "bazel-completion",
srcs = [
":etc/bash_completion.d/bazel",
":usr/share/zsh/vendor-completions/_bazel",
],
mode = "0644",
strip_prefix = ".",
)
pkg_tar(
name = "debian-data",
extension = "tar.gz",
deps = [
":bazel-bin",
":bazel-completion",
":bazel-rc",
],
)
genrule(
name = "debian_version",
srcs = ["//scripts/packages:version.txt"],
outs = [
"version.txt",
],
cmd =
"cat $(location //scripts/packages:version.txt) " +
# Debian package manager does not order our rcs correctly, insert a tilde
# Non RC version number are not matched by the regex, example translations:
# 0.1.2 0.1.2
# 0.1.2rc2 0.1.2~rc2
# 0.1.2rc2-jdk7 0.1.2~rc2-jdk7
" | sed -E 's/^([0-9\\.]+)([^0-9\\.].*)$$/\\1~\\2/'" +
" > $@\n",
)
pkg_deb(
name = "bazel-debian",
architecture = "amd64",
built_using = "bazel",
conffiles = [
"/etc/bash_completion.d/bazel",
"/etc/bazel.bazelrc",
"/usr/share/zsh/vendor-completions/_bazel",
],
data = ":debian-data",
depends = [
# Keep in sync with Depends section in ./control
"g++",
"zlib1g-dev",
"unzip",
],
description_file = "description",
homepage = "https://bazel.build",
maintainer = "The Bazel Authors <bazel-dev@googlegroups.com>",
package = "bazel",
suggests = [
# Keep in sync with Suggests section in ./control
"google-jdk | java8-sdk-headless | java8-jdk | java8-sdk | oracle-java8-installer",
"bash-completion",
],
version_file = ":version.txt",
visibility = ["//scripts/packages:__pkg__"],
)
filegroup(
name = "debian-files",
srcs = [
"compat",
"control",
"copyright",
"rules",
],
)
genrule(
name = "generate-changelog-file",
srcs = [
"generate_changelog.py",
"//:bazel-srcs", # Force a rebuild on source change
],
outs = ["changelog"],
cmd = "python3 $(location generate_changelog.py) bazel-out/volatile-status.txt $(location changelog)",
stamp = 1,
)
genrule(
name = "bazel-debian-src",
srcs = [
"//:bazel-srcs",
":debian-files",
":changelog",
],
outs = [
"bazel.dsc",
"bazel.tar.gz",
],
cmd = """
mkdir -p bazel/debian
tar -xf $(location //:bazel-srcs) -C ./bazel
for f in $(locations :debian-files); do
cp $$f ./bazel/debian/
done
cp $(location :changelog) ./bazel/debian
dpkg-source -b ./bazel
cp ./bazel_*.dsc $(location bazel.dsc)
cp ./bazel_*.tar.gz $(location bazel.tar.gz)
""",
visibility = ["//scripts/packages:__pkg__"],
)