blob: f324e3a3e93ba4b55c6dc94b3478faa6465968b2 [file] [log] [blame]
Damien Martin-Guillerez7d265e02016-07-01 13:33:48 +00001filegroup(
2 name = "srcs",
3 srcs = glob(["**"]),
4 visibility = ["//scripts:__pkg__"],
5)
6
Yun Peng047b0e62016-07-27 12:50:15 +00007filegroup(
8 name = "packages",
9 srcs = select({
10 "//src:windows": [],
Laszlo Csomor8896dad2016-09-28 15:02:13 +000011 "//src:windows_msvc": [],
Yun Peng047b0e62016-07-27 12:50:15 +000012 "//src:darwin": [
13 ":install.sh",
14 ":generate-package-info",
15 ],
16 "//src:darwin_x86_64": [
17 ":install.sh",
18 ":generate-package-info",
19 ],
20 "//conditions:default": [
21 ":install.sh",
22 ":generate-package-info",
23 ":bazel-debian",
24 ":bazel-debian-src",
Klaus Aehlig279a0612016-11-11 09:51:44 +000025 "//:bazel-distfile",
Yun Peng047b0e62016-07-27 12:50:15 +000026 ],
27 }),
28)
29
Damien Martin-Guillerezab13f682015-07-28 08:19:32 +000030sh_binary(
31 name = "package-info-generator",
32 srcs = ["package_info_generator.sh"],
33)
34
35genrule(
36 name = "generate-package-info",
37 outs = ["README.md"],
38 cmd = "$(location :package-info-generator) $$(find . -name '*status*.txt') >$@",
39 stamp = 1,
40 tools = [":package-info-generator"],
41)
42
43genrule(
44 name = "generate-launcher",
45 srcs = [
46 "template_bin.sh",
47 ":README.md",
48 ],
49 outs = ["launcher_bin.sh"],
50 cmd = """
51 release_info="$$(cat $(location :README.md))"
52 template="$$(cat $(location template_bin.sh))"
53 echo "$${template//%release_info%/$${release_info}}" >$@
54 """,
55)
56
Brian Silvermanba04b2d2016-01-19 16:46:10 +000057genrule(
58 name = "rename-bazel-bin",
59 srcs = ["//src:bazel"],
60 outs = ["bazel-real"],
61 cmd = "cp $< $@",
62)
63
64genrule(
65 name = "rename-bazel-sh",
66 srcs = ["bazel.sh"],
67 outs = ["bazel"],
68 cmd = "cp $< $@",
69)
70
Damien Martin-Guillerez68d0b692016-02-01 10:28:54 +000071load(":self_extract_binary.bzl", "self_extract_binary")
Damien Martin-Guillerezab13f682015-07-28 08:19:32 +000072
Damien Martin-Guillerez04d46ab2016-04-13 19:27:56 +000073self_extract_binary(
74 name = "install.sh",
75 empty_files = ["tools/defaults/BUILD"],
76 flatten_resources = [
77 ":bazel-real",
78 ":bazel",
79 "//scripts:bash_completion",
80 ],
81 launcher = ":launcher_bin.sh",
82)
Damien Martin-Guillerez80245bc2015-10-09 14:10:42 +000083
Damien Martin-Guillerez68d0b692016-02-01 10:28:54 +000084load("//tools/build_defs/pkg:pkg.bzl", "pkg_tar", "pkg_deb")
Damien Martin-Guillerez80245bc2015-10-09 14:10:42 +000085
86pkg_tar(
87 name = "bazel-bin",
Brian Silvermanba04b2d2016-01-19 16:46:10 +000088 files = [
89 ":bazel",
Damien Martin-Guillerez04d46ab2016-04-13 19:27:56 +000090 ":bazel-real",
Brian Silvermanba04b2d2016-01-19 16:46:10 +000091 ],
Damien Martin-Guillerez80245bc2015-10-09 14:10:42 +000092 mode = "0755",
93 package_dir = "/usr/bin",
Brian Silvermanba04b2d2016-01-19 16:46:10 +000094 strip_prefix = ".",
Damien Martin-Guillerez80245bc2015-10-09 14:10:42 +000095)
96
Klaus Aehligd59bcb62016-09-30 11:15:07 +000097pkg_tar(
98 name = "bazel-rc",
99 files = ["debian/bazel.bazelrc"],
100 mode = "0644",
101 package_dir = "/etc",
102 strip_prefix = "debian",
103)
104
Damien Martin-Guillerez80245bc2015-10-09 14:10:42 +0000105genrule(
106 name = "rename-bazel-completion",
107 srcs = ["//scripts:bash_completion"],
108 outs = ["etc/bash_completion.d/bazel"],
109 cmd = "cp $< $@",
110)
111
112pkg_tar(
113 name = "bazel-completion",
114 files = [":etc/bash_completion.d/bazel"],
115 mode = "0644",
Brian Silvermana2c60d02015-11-06 14:28:37 +0000116 strip_prefix = ".",
Damien Martin-Guillerez80245bc2015-10-09 14:10:42 +0000117)
118
Damien Martin-Guillerez04d46ab2016-04-13 19:27:56 +0000119pkg_tar(
120 name = "debian-data",
121 extension = "tar.gz",
122 deps = [
123 ":bazel-bin",
124 ":bazel-completion",
Klaus Aehligd59bcb62016-09-30 11:15:07 +0000125 ":bazel-rc",
Damien Martin-Guillerez04d46ab2016-04-13 19:27:56 +0000126 ],
127)
Damien Martin-Guillerez6cb8d822016-04-12 13:59:41 +0000128
Damien Martin-Guillerez04d46ab2016-04-13 19:27:56 +0000129genrule(
130 name = "embedded_label",
131 srcs = [":debian-data"],
132 outs = [
133 "version.txt",
134 ],
135 cmd =
Brian Silverman18033b02016-11-14 13:27:46 +0000136 "find -L . -name stable-status.txt -exec cat '{}' ';'" +
Damien Martin-Guillerez04d46ab2016-04-13 19:27:56 +0000137 " | grep EMBED_LABEL | cut -d ' ' -f 2-" +
138 # Debian package manager does not order our rcs correctly, insert a tilde
139 # Non RC version number are not matched by the regex, example translations:
140 # 0.1.2 0.1.2
141 # 0.1.2rc2 0.1.2~rc2
142 # 0.1.2rc2-jdk7 0.1.2~rc2-jdk7
143 " | sed -E 's/^([0-9\\.]+)([^0-9\\.].*)$$/\\1~\\2/'" +
144 " > $@\n",
145 stamp = 1,
146)
Damien Martin-Guillerez6cb8d822016-04-12 13:59:41 +0000147
Damien Martin-Guillerez04d46ab2016-04-13 19:27:56 +0000148pkg_deb(
149 name = "bazel-debian",
150 architecture = "amd64",
151 built_using = "bazel (HEAD)",
Yun Pengfdb5a8c2016-07-01 12:40:41 +0000152 conflicts = [
153 "openjdk-9-jdk",
154 ],
Damien Martin-Guillerez04d46ab2016-04-13 19:27:56 +0000155 data = ":debian-data",
156 depends = select({
Damien Martin-Guillerez0ad9f5e2016-04-20 13:58:08 +0000157 "//tools/jdk:jdk7": [
Misha Brukman1dda3432016-11-25 15:18:35 +0000158 "java7-jdk | java7-sdk | oracle-java7-installer",
Damien Martin-Guillerez6cb8d822016-04-12 13:59:41 +0000159 ],
Damien Martin-Guillerez04d46ab2016-04-13 19:27:56 +0000160 "//conditions:default": [
Misha Brukman1dda3432016-11-25 15:18:35 +0000161 "google-jdk | java8-jdk | java8-sdk | oracle-java8-installer",
Damien Martin-Guillerez04d46ab2016-04-13 19:27:56 +0000162 ],
163 }) + [
Damien Martin-Guillerez04d46ab2016-04-13 19:27:56 +0000164 "g++",
165 "zlib1g-dev",
Damien Martin-Guillerez04d46ab2016-04-13 19:27:56 +0000166 "bash-completion",
167 ],
168 description_file = "debian/description",
Damien Martin-Guillerez4885eef2016-10-28 12:02:50 +0000169 homepage = "http://bazel.build",
Damien Martin-Guillerez04d46ab2016-04-13 19:27:56 +0000170 maintainer = "The Bazel Authors <bazel-dev@googlegroups.com>",
171 package = "bazel",
172 version_file = ":version.txt",
173)
Yun Penga50635d2016-07-26 13:29:03 +0000174
175filegroup(
176 name = "debian-files",
177 srcs = [
178 "debian/compat",
179 "debian/control",
180 "debian/copyright",
181 "debian/rules",
182 ],
183)
184
185genrule(
186 name = "generate-changelog-file",
187 srcs = [
188 "convert_changelog.py",
John Catere4cf9aa2016-12-16 21:43:40 +0000189 "//:changelog-file",
Yun Penga50635d2016-07-26 13:29:03 +0000190 ],
191 outs = ["changelog"],
John Catere4cf9aa2016-12-16 21:43:40 +0000192 cmd = "python $(location convert_changelog.py) $(location //:changelog-file) $(location changelog)",
Yun Penga50635d2016-07-26 13:29:03 +0000193)
194
195genrule(
196 name = "bazel-debian-src",
197 srcs = [
198 "//:bazel-srcs",
199 ":debian-files",
200 ":changelog",
201 ],
202 outs = [
203 "bazel.dsc",
204 "bazel.tar.gz",
205 ],
206 cmd = """
207 mkdir -p bazel/debian
208 tar -xf $(location //:bazel-srcs) -C ./bazel
209 for f in $(locations :debian-files); do
210 cp $$f ./bazel/debian/
211 done
212 cp $(location :changelog) ./bazel/debian
213 dpkg-source -b ./bazel
214 cp ./bazel_*.dsc $(location bazel.dsc)
215 cp ./bazel_*.tar.gz $(location bazel.tar.gz)
216 """,
217)