aboutsummaryrefslogtreecommitdiffhomepage
path: root/scripts/packages/debian/BUILD
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/packages/debian/BUILD')
-rw-r--r--scripts/packages/debian/BUILD144
1 files changed, 144 insertions, 0 deletions
diff --git a/scripts/packages/debian/BUILD b/scripts/packages/debian/BUILD
new file mode 100644
index 0000000000..ca822ff900
--- /dev/null
+++ b/scripts/packages/debian/BUILD
@@ -0,0 +1,144 @@
+filegroup(
+ name = "srcs",
+ srcs = glob(["**"]),
+ visibility = ["//scripts:__subpackages__"],
+)
+
+load("//tools/build_defs/pkg:pkg.bzl", "pkg_tar", "pkg_deb")
+
+pkg_tar(
+ name = "bazel-bin",
+ files = [
+ "//scripts/packages:bazel",
+ "//scripts/packages:bazel-real",
+ ],
+ mode = "0755",
+ package_dir = "/usr/bin",
+ strip_prefix = ".",
+)
+
+pkg_tar(
+ name = "bazel-rc",
+ files = ["bazel.bazelrc"],
+ mode = "0644",
+ package_dir = "/etc",
+ strip_prefix = "debian",
+)
+
+genrule(
+ name = "rename-bazel-completion",
+ srcs = ["//scripts:bash_completion"],
+ outs = ["etc/bash_completion.d/bazel"],
+ cmd = "cp $< $@",
+)
+
+pkg_tar(
+ name = "bazel-completion",
+ files = [":etc/bash_completion.d/bazel"],
+ mode = "0644",
+ strip_prefix = ".",
+)
+
+pkg_tar(
+ name = "debian-data",
+ extension = "tar.gz",
+ deps = [
+ ":bazel-bin",
+ ":bazel-completion",
+ ":bazel-rc",
+ ],
+)
+
+genrule(
+ name = "embedded_label",
+ srcs = [":debian-data"],
+ outs = [
+ "version.txt",
+ ],
+ cmd =
+ "find -L . -name stable-status.txt -exec cat '{}' ';'" +
+ " | grep EMBED_LABEL | cut -d ' ' -f 2-" +
+ # 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",
+ stamp = 1,
+)
+
+pkg_deb(
+ name = "bazel-debian",
+ architecture = "amd64",
+ built_using = "bazel (HEAD)",
+ conflicts = [
+ "openjdk-9-jdk",
+ ],
+ data = ":debian-data",
+ depends = select({
+ "//tools/jdk:jdk7": [
+ "java7-jdk | java7-sdk | oracle-java7-installer",
+ ],
+ "//conditions:default": [
+ "google-jdk | java8-jdk | java8-sdk | oracle-java8-installer",
+ ],
+ }) + [
+ "g++",
+ "zlib1g-dev",
+ "bash-completion",
+ ],
+ description_file = "description",
+ homepage = "http://bazel.build",
+ maintainer = "The Bazel Authors <bazel-dev@googlegroups.com>",
+ package = "bazel",
+ version_file = ":version.txt",
+ visibility = ["//scripts/packages:__pkg__"],
+)
+
+filegroup(
+ name = "debian-files",
+ srcs = [
+ "compat",
+ "control",
+ "copyright",
+ "rules",
+ ],
+)
+
+genrule(
+ name = "generate-changelog-file",
+ srcs = [
+ "convert_changelog.py",
+ "//:changelog-file",
+ "//:bazel-srcs", # Force a rebuild on source change
+ ],
+ outs = ["changelog"],
+ cmd = "python $(location convert_changelog.py) bazel-out/volatile-status.txt $(location //:changelog-file) $(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__"],
+)