diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/BUILD | 63 | ||||
-rwxr-xr-x | src/package-bazel.sh | 45 |
2 files changed, 32 insertions, 76 deletions
@@ -15,8 +15,8 @@ filegroup( ], ) -[genrule( - name = "install_base_key-file" + suffix, +genrule( + name = "install_base_key-file", srcs = [ "//src/main/java:bazel-main_deploy.jar", "//src/main/cpp:client", @@ -25,16 +25,14 @@ filegroup( "//src/main/tools:process-wrapper", "//src/main/tools:namespace-sandbox", "//src/main/tools:build_interface_so", - ] + embedded_tools, - outs = ["install_base_key" + suffix], + ":embedded_tools", + ], + outs = ["install_base_key"], cmd = select({ ":darwin": md5_cmd % "/sbin/md5", "//conditions:default": md5_cmd % "md5sum", }), -) for suffix, embedded_tools in { - "": [":embedded_tools"], - "_notools": [], -}.items()] +) # Try to grab the java version from the java_toolchain. # Unfortunately, we don't have access to the javac options @@ -94,15 +92,10 @@ genrule( ]), ) -[genrule( - name = "package-zip" + suffix, +genrule( + name = "package-zip", srcs = [ - # The script assumes that the deploy jar is the first item here, the - # install base key is the second, and the embedded tools zip (if exists) - # is the third "//src/main/java:bazel-main_deploy.jar", - "install_base_key" + suffix, - ] + ([":embedded_tools.zip"] if embed else []) + [ "//src/main/cpp:client", ":libunix", "//src/main/tools:build-runfiles", @@ -110,24 +103,35 @@ genrule( "//src/main/tools:jdk-support", "//src/main/tools:namespace-sandbox", "//src/main/tools:build_interface_so", + "install_base_key", ":java-version", + ":embedded_tools.zip", ], - outs = ["package" + suffix + ".zip"], - cmd = "$(location :package-bazel.sh) $@ " + ("" if embed else "''") + " $(SRCS)", - tools = ["package-bazel.sh"], -) for suffix, embed in [ - ("", True), - ("_notools", False), -]] + outs = ["package.zip"], + # Terrible hack to remove timestamps in the zip file + cmd = "\n".join([ + "mkdir -p $(@D)/package-zip", + "cp $(SRCS) $(@D)/package-zip", + # TODO(dmarting): we should change the client to connect to server.jar + # instead of the first binary in the list. + "mv $(@D)/package-zip/bazel-main_deploy.jar $(@D)/package-zip/A-server.jar", + "touch -t 198001010000.00 $(@D)/package-zip/*", + "mkdir $(@D)/package-zip/embedded_tools", + "(cd $(@D)/package-zip/embedded_tools && unzip -q ../embedded_tools.zip)", + "rm $(@D)/package-zip/embedded_tools.zip", + "P=$$PWD; (cd $(@D)/package-zip && zip -qrD $$P/$@ *)", + "rm -fr $(@D)/package-zip", + ]), +) -[genrule( - name = "bazel-bin" + suffix, +genrule( + name = "bazel-bin", srcs = [ "//src/main/cpp:client", - "package-zip" + suffix, + "package-zip", ], - outs = ["bazel" + suffix], - cmd = "cat $(location //src/main/cpp:client) $(location :package-zip" + suffix + ") > $@ && zip -qA $@", + outs = ["bazel"], + cmd = "cat $(location //src/main/cpp:client) $(location :package-zip) > $@ && zip -qA $@", executable = 1, output_to_bindir = 1, visibility = [ @@ -135,10 +139,7 @@ genrule( "//scripts/packages:__pkg__", # For installer generation "//src/test:__subpackages__", # For integration tests ], -) for suffix in [ - "", - "_notools", -]] +) config_setting( name = "darwin", diff --git a/src/package-bazel.sh b/src/package-bazel.sh deleted file mode 100755 index 9181d812d2..0000000000 --- a/src/package-bazel.sh +++ /dev/null @@ -1,45 +0,0 @@ -#!/bin/bash -eu -# -# Copyright 2015 The Bazel Authors. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -# This script bootstraps building a Bazel binary without Bazel then -# use this compiled Bazel to bootstrap Bazel itself. It can also -# be provided with a previous version of Bazel to bootstrap Bazel -# itself. - -WORKDIR=$(pwd) -OUT=$1 -EMBEDDED_TOOLS=$2 -DEPLOY_JAR=$3 -INSTALL_BASE_KEY=$4 -shift 4 - -TMP_DIR=${TMPDIR:-/tmp} -PACKAGE_DIR="$(mktemp -d ${TMP_DIR%%/}/bazel.XXXXXXXX)" -mkdir -p "${PACKAGE_DIR}" -trap "rm -fr ${PACKAGE_DIR}" EXIT - -cp $* ${PACKAGE_DIR} -cp ${DEPLOY_JAR} ${PACKAGE_DIR}/A-server.jar -cp ${INSTALL_BASE_KEY} ${PACKAGE_DIR}/install_base_key -# The timestamp of embedded tools should already be zeroed out in the input zip -touch -t 198001010000.00 ${PACKAGE_DIR}/* - -if [[ ${EMBEDDED_TOOLS} != "" ]]; then - mkdir ${PACKAGE_DIR}/embedded_tools - (cd ${PACKAGE_DIR}/embedded_tools && unzip -q ${WORKDIR}/${EMBEDDED_TOOLS}) -fi - -(cd ${PACKAGE_DIR}; zip -qrD ${WORKDIR}/${OUT} *) |