diff options
author | John Cater <jcater@google.com> | 2017-01-30 17:49:26 +0000 |
---|---|---|
committer | Yun Peng <pcloudy@google.com> | 2017-01-31 08:59:09 +0000 |
commit | b0308d44cba553a2cfd61a7d679a32ad078afe6f (patch) | |
tree | 282f9f5cc5c276e3c7cbf9c04f692a83ba8fd3f1 | |
parent | b7e7ea4da27f989f7670d6087a25f14312ac2dd7 (diff) |
Move debian package building into its own package.
As more package options are added, it's confusing that the
debian package is generated in scripts/package/BUILD, but
scripts/package/debian/ contains the related files (and isn't
itself a Bazel package). This change makes the file locations
more predictable, and also makes it easier to see what
is happening in scripts/packages.
--
Change-Id: Id8c445fc164a1a4aa09c52559a5143578cfdea88
Reviewed-on: https://cr.bazel.build/8510
PiperOrigin-RevId: 146003934
MOS_MIGRATED_REVID=146003934
-rw-r--r-- | BUILD | 2 | ||||
-rwxr-xr-x | scripts/ci/build.sh | 6 | ||||
-rw-r--r-- | scripts/packages/BUILD | 142 | ||||
-rw-r--r-- | scripts/packages/debian/BUILD | 144 | ||||
-rw-r--r-- | scripts/packages/debian/convert_changelog.py (renamed from scripts/packages/convert_changelog.py) | 1 |
5 files changed, 152 insertions, 143 deletions
@@ -23,7 +23,7 @@ filegroup( name = "changelog-file", srcs = [":CHANGELOG.md"], visibility = [ - "//scripts/packages:__pkg__", + "//scripts/packages:__subpackages__", ], ) diff --git a/scripts/ci/build.sh b/scripts/ci/build.sh index 32fc7bcaeb..8474c2db8d 100755 --- a/scripts/ci/build.sh +++ b/scripts/ci/build.sh @@ -144,9 +144,9 @@ function bazel_build() { cp bazel-bin/src/bazel $1/bazel cp bazel-bin/scripts/packages/install.sh $1/bazel-${release_label}-installer.sh if [ "$PLATFORM" = "linux" ]; then - cp bazel-bin/scripts/packages/bazel-debian.deb $1/bazel_${release_label}.deb - cp -f bazel-genfiles/scripts/packages/bazel.dsc $1/bazel.dsc - cp -f bazel-genfiles/scripts/packages/bazel.tar.gz $1/bazel.tar.gz + cp bazel-bin/scripts/packages/debian/bazel-debian.deb $1/bazel_${release_label}.deb + cp -f bazel-genfiles/scripts/packages/debian/bazel.dsc $1/bazel.dsc + cp -f bazel-genfiles/scripts/packages/debian/bazel.tar.gz $1/bazel.tar.gz cp bazel-genfiles/bazel-distfile.zip $1/bazel-${release_label}-dist.zip fi cp bazel-genfiles/site/jekyll-tree.tar $1/www.bazel.build.tar diff --git a/scripts/packages/BUILD b/scripts/packages/BUILD index 955ddab7bc..2f240a0a09 100644 --- a/scripts/packages/BUILD +++ b/scripts/packages/BUILD @@ -3,6 +3,7 @@ package(default_visibility = ["//scripts/packages:__subpackages__"]) filegroup( name = "srcs", srcs = glob(["**"]) + [ + "//scripts/packages/debian:srcs", "//scripts/packages/fedora:srcs", ], visibility = [ @@ -27,9 +28,9 @@ filegroup( "//conditions:default": [ ":install.sh", ":generate-package-info", - ":bazel-debian", - ":bazel-debian-src", "//:bazel-distfile", + "//scripts/packages/debian:bazel-debian", + "//scripts/packages/debian:bazel-debian-src", ], }), ) @@ -87,140 +88,3 @@ self_extract_binary( ], launcher = ":launcher_bin.sh", ) - -load("//tools/build_defs/pkg:pkg.bzl", "pkg_tar", "pkg_deb") - -pkg_tar( - name = "bazel-bin", - files = [ - ":bazel", - ":bazel-real", - ], - mode = "0755", - package_dir = "/usr/bin", - strip_prefix = ".", -) - -pkg_tar( - name = "bazel-rc", - files = ["debian/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 = "debian/description", - homepage = "http://bazel.build", - maintainer = "The Bazel Authors <bazel-dev@googlegroups.com>", - package = "bazel", - version_file = ":version.txt", -) - -filegroup( - name = "debian-files", - srcs = [ - "debian/compat", - "debian/control", - "debian/copyright", - "debian/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) - """, -) 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__"], +) diff --git a/scripts/packages/convert_changelog.py b/scripts/packages/debian/convert_changelog.py index 07ed9d4fa5..a4fb78eb42 100644 --- a/scripts/packages/convert_changelog.py +++ b/scripts/packages/debian/convert_changelog.py @@ -84,5 +84,6 @@ def main(input_file, changelog_file, output_file): # Stop after parsing latest release return + if __name__ == "__main__": main(sys.argv[1], sys.argv[2], sys.argv[3]) |