Damien Martin-Guillerez | 7d265e0 | 2016-07-01 13:33:48 +0000 | [diff] [blame] | 1 | filegroup( |
| 2 | name = "srcs", |
| 3 | srcs = glob(["**"]), |
| 4 | visibility = ["//scripts:__pkg__"], |
| 5 | ) |
| 6 | |
Yun Peng | 047b0e6 | 2016-07-27 12:50:15 +0000 | [diff] [blame] | 7 | filegroup( |
| 8 | name = "packages", |
| 9 | srcs = select({ |
| 10 | "//src:windows": [], |
Laszlo Csomor | 8896dad | 2016-09-28 15:02:13 +0000 | [diff] [blame] | 11 | "//src:windows_msvc": [], |
Yun Peng | 047b0e6 | 2016-07-27 12:50:15 +0000 | [diff] [blame] | 12 | "//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 Aehlig | 279a061 | 2016-11-11 09:51:44 +0000 | [diff] [blame] | 25 | "//:bazel-distfile", |
Yun Peng | 047b0e6 | 2016-07-27 12:50:15 +0000 | [diff] [blame] | 26 | ], |
| 27 | }), |
| 28 | ) |
| 29 | |
Damien Martin-Guillerez | ab13f68 | 2015-07-28 08:19:32 +0000 | [diff] [blame] | 30 | sh_binary( |
| 31 | name = "package-info-generator", |
| 32 | srcs = ["package_info_generator.sh"], |
| 33 | ) |
| 34 | |
| 35 | genrule( |
| 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 | |
| 43 | genrule( |
| 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 Silverman | ba04b2d | 2016-01-19 16:46:10 +0000 | [diff] [blame] | 57 | genrule( |
| 58 | name = "rename-bazel-bin", |
| 59 | srcs = ["//src:bazel"], |
| 60 | outs = ["bazel-real"], |
| 61 | cmd = "cp $< $@", |
| 62 | ) |
| 63 | |
| 64 | genrule( |
| 65 | name = "rename-bazel-sh", |
| 66 | srcs = ["bazel.sh"], |
| 67 | outs = ["bazel"], |
| 68 | cmd = "cp $< $@", |
| 69 | ) |
| 70 | |
Damien Martin-Guillerez | 68d0b69 | 2016-02-01 10:28:54 +0000 | [diff] [blame] | 71 | load(":self_extract_binary.bzl", "self_extract_binary") |
Damien Martin-Guillerez | ab13f68 | 2015-07-28 08:19:32 +0000 | [diff] [blame] | 72 | |
Damien Martin-Guillerez | 04d46ab | 2016-04-13 19:27:56 +0000 | [diff] [blame] | 73 | self_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-Guillerez | 80245bc | 2015-10-09 14:10:42 +0000 | [diff] [blame] | 83 | |
Damien Martin-Guillerez | 68d0b69 | 2016-02-01 10:28:54 +0000 | [diff] [blame] | 84 | load("//tools/build_defs/pkg:pkg.bzl", "pkg_tar", "pkg_deb") |
Damien Martin-Guillerez | 80245bc | 2015-10-09 14:10:42 +0000 | [diff] [blame] | 85 | |
| 86 | pkg_tar( |
| 87 | name = "bazel-bin", |
Brian Silverman | ba04b2d | 2016-01-19 16:46:10 +0000 | [diff] [blame] | 88 | files = [ |
| 89 | ":bazel", |
Damien Martin-Guillerez | 04d46ab | 2016-04-13 19:27:56 +0000 | [diff] [blame] | 90 | ":bazel-real", |
Brian Silverman | ba04b2d | 2016-01-19 16:46:10 +0000 | [diff] [blame] | 91 | ], |
Damien Martin-Guillerez | 80245bc | 2015-10-09 14:10:42 +0000 | [diff] [blame] | 92 | mode = "0755", |
| 93 | package_dir = "/usr/bin", |
Brian Silverman | ba04b2d | 2016-01-19 16:46:10 +0000 | [diff] [blame] | 94 | strip_prefix = ".", |
Damien Martin-Guillerez | 80245bc | 2015-10-09 14:10:42 +0000 | [diff] [blame] | 95 | ) |
| 96 | |
Klaus Aehlig | d59bcb6 | 2016-09-30 11:15:07 +0000 | [diff] [blame] | 97 | pkg_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-Guillerez | 80245bc | 2015-10-09 14:10:42 +0000 | [diff] [blame] | 105 | genrule( |
| 106 | name = "rename-bazel-completion", |
| 107 | srcs = ["//scripts:bash_completion"], |
| 108 | outs = ["etc/bash_completion.d/bazel"], |
| 109 | cmd = "cp $< $@", |
| 110 | ) |
| 111 | |
| 112 | pkg_tar( |
| 113 | name = "bazel-completion", |
| 114 | files = [":etc/bash_completion.d/bazel"], |
| 115 | mode = "0644", |
Brian Silverman | a2c60d0 | 2015-11-06 14:28:37 +0000 | [diff] [blame] | 116 | strip_prefix = ".", |
Damien Martin-Guillerez | 80245bc | 2015-10-09 14:10:42 +0000 | [diff] [blame] | 117 | ) |
| 118 | |
Damien Martin-Guillerez | 04d46ab | 2016-04-13 19:27:56 +0000 | [diff] [blame] | 119 | pkg_tar( |
| 120 | name = "debian-data", |
| 121 | extension = "tar.gz", |
| 122 | deps = [ |
| 123 | ":bazel-bin", |
| 124 | ":bazel-completion", |
Klaus Aehlig | d59bcb6 | 2016-09-30 11:15:07 +0000 | [diff] [blame] | 125 | ":bazel-rc", |
Damien Martin-Guillerez | 04d46ab | 2016-04-13 19:27:56 +0000 | [diff] [blame] | 126 | ], |
| 127 | ) |
Damien Martin-Guillerez | 6cb8d82 | 2016-04-12 13:59:41 +0000 | [diff] [blame] | 128 | |
Damien Martin-Guillerez | 04d46ab | 2016-04-13 19:27:56 +0000 | [diff] [blame] | 129 | genrule( |
| 130 | name = "embedded_label", |
| 131 | srcs = [":debian-data"], |
| 132 | outs = [ |
| 133 | "version.txt", |
| 134 | ], |
| 135 | cmd = |
Brian Silverman | 18033b0 | 2016-11-14 13:27:46 +0000 | [diff] [blame] | 136 | "find -L . -name stable-status.txt -exec cat '{}' ';'" + |
Damien Martin-Guillerez | 04d46ab | 2016-04-13 19:27:56 +0000 | [diff] [blame] | 137 | " | 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-Guillerez | 6cb8d82 | 2016-04-12 13:59:41 +0000 | [diff] [blame] | 147 | |
Damien Martin-Guillerez | 04d46ab | 2016-04-13 19:27:56 +0000 | [diff] [blame] | 148 | pkg_deb( |
| 149 | name = "bazel-debian", |
| 150 | architecture = "amd64", |
| 151 | built_using = "bazel (HEAD)", |
Yun Peng | fdb5a8c | 2016-07-01 12:40:41 +0000 | [diff] [blame] | 152 | conflicts = [ |
| 153 | "openjdk-9-jdk", |
| 154 | ], |
Damien Martin-Guillerez | 04d46ab | 2016-04-13 19:27:56 +0000 | [diff] [blame] | 155 | data = ":debian-data", |
| 156 | depends = select({ |
Damien Martin-Guillerez | 0ad9f5e | 2016-04-20 13:58:08 +0000 | [diff] [blame] | 157 | "//tools/jdk:jdk7": [ |
Misha Brukman | 1dda343 | 2016-11-25 15:18:35 +0000 | [diff] [blame] | 158 | "java7-jdk | java7-sdk | oracle-java7-installer", |
Damien Martin-Guillerez | 6cb8d82 | 2016-04-12 13:59:41 +0000 | [diff] [blame] | 159 | ], |
Damien Martin-Guillerez | 04d46ab | 2016-04-13 19:27:56 +0000 | [diff] [blame] | 160 | "//conditions:default": [ |
Misha Brukman | 1dda343 | 2016-11-25 15:18:35 +0000 | [diff] [blame] | 161 | "google-jdk | java8-jdk | java8-sdk | oracle-java8-installer", |
Damien Martin-Guillerez | 04d46ab | 2016-04-13 19:27:56 +0000 | [diff] [blame] | 162 | ], |
| 163 | }) + [ |
Damien Martin-Guillerez | 04d46ab | 2016-04-13 19:27:56 +0000 | [diff] [blame] | 164 | "g++", |
| 165 | "zlib1g-dev", |
Damien Martin-Guillerez | 04d46ab | 2016-04-13 19:27:56 +0000 | [diff] [blame] | 166 | "bash-completion", |
| 167 | ], |
| 168 | description_file = "debian/description", |
Damien Martin-Guillerez | 4885eef | 2016-10-28 12:02:50 +0000 | [diff] [blame] | 169 | homepage = "http://bazel.build", |
Damien Martin-Guillerez | 04d46ab | 2016-04-13 19:27:56 +0000 | [diff] [blame] | 170 | maintainer = "The Bazel Authors <bazel-dev@googlegroups.com>", |
| 171 | package = "bazel", |
| 172 | version_file = ":version.txt", |
| 173 | ) |
Yun Peng | a50635d | 2016-07-26 13:29:03 +0000 | [diff] [blame] | 174 | |
| 175 | filegroup( |
| 176 | name = "debian-files", |
| 177 | srcs = [ |
| 178 | "debian/compat", |
| 179 | "debian/control", |
| 180 | "debian/copyright", |
| 181 | "debian/rules", |
| 182 | ], |
| 183 | ) |
| 184 | |
| 185 | genrule( |
| 186 | name = "generate-changelog-file", |
| 187 | srcs = [ |
| 188 | "convert_changelog.py", |
John Cater | e4cf9aa | 2016-12-16 21:43:40 +0000 | [diff] [blame^] | 189 | "//:changelog-file", |
Yun Peng | a50635d | 2016-07-26 13:29:03 +0000 | [diff] [blame] | 190 | ], |
| 191 | outs = ["changelog"], |
John Cater | e4cf9aa | 2016-12-16 21:43:40 +0000 | [diff] [blame^] | 192 | cmd = "python $(location convert_changelog.py) $(location //:changelog-file) $(location changelog)", |
Yun Peng | a50635d | 2016-07-26 13:29:03 +0000 | [diff] [blame] | 193 | ) |
| 194 | |
| 195 | genrule( |
| 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 | ) |