[ARVADOS] updated: 2.1.0-1801-g4a4e8d3ea
Git user
git at public.arvados.org
Fri Jan 7 18:53:38 UTC 2022
Summary of changes:
build/run-build-packages-one-target.sh | 1 -
build/run-build-packages.sh | 4 +-
build/run-build-test-packages-one-target.sh | 13 ++++++-
build/run-library.sh | 58 ++++++++++++++++-------------
4 files changed, 46 insertions(+), 30 deletions(-)
via 4a4e8d3eaa86d08e8fa76d569855247b5131e4bd (commit)
from 56c4d0c08266cacbca73e77aa82939e00a0bb69e (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
commit 4a4e8d3eaa86d08e8fa76d569855247b5131e4bd
Author: Ward Vandewege <ward at curii.com>
Date: Fri Jan 7 13:51:39 2022 -0500
17417: address review comments.
No issue #
Arvados-DCO-1.1-Signed-off-by: Ward Vandewege <ward at curii.com>
diff --git a/build/run-build-packages-one-target.sh b/build/run-build-packages-one-target.sh
index 0c474d00f..e06a73297 100755
--- a/build/run-build-packages-one-target.sh
+++ b/build/run-build-packages-one-target.sh
@@ -63,7 +63,6 @@ if [ $? -ne 0 ]; then
fi
TARGET=debian10
-ARCH=
FORCE_BUILD=0
COMMAND=
DEBUG=
diff --git a/build/run-build-packages.sh b/build/run-build-packages.sh
index 06328f829..0cfe54cd1 100755
--- a/build/run-build-packages.sh
+++ b/build/run-build-packages.sh
@@ -20,9 +20,9 @@ Options:
--target <target>
Distribution to build packages for (default: debian10)
--only-build <package>
- Build only a specific package (or $ONLY_BUILD from environment)
+ Build only a specific package (or ONLY_BUILD from environment)
--arch <arch>
- Build a specific architecture (or $ARCH from environment, defaults to native architecture)
+ Build a specific architecture (or ARCH from environment, defaults to native architecture)
--force-build
Build even if the package exists upstream or if it has already been
built locally
diff --git a/build/run-build-test-packages-one-target.sh b/build/run-build-test-packages-one-target.sh
index 2e2e3cdb4..e36c4e88c 100755
--- a/build/run-build-test-packages-one-target.sh
+++ b/build/run-build-test-packages-one-target.sh
@@ -12,7 +12,9 @@ Syntax:
--target <target>
Distribution to build packages for (default: debian10)
--only-build <package>
- Build only a specific package (or $ONLY_BUILD from environment)
+ Build only a specific package (or ONLY_BUILD from environment)
+--arch <arch>
+ Build a specific architecture (or ARCH from environment, defaults to native architecture)
--upload
If the build and test steps are successful, upload the packages
to a remote apt repository (default: false)
@@ -46,7 +48,7 @@ if ! [[ -d "$WORKSPACE" ]]; then
fi
PARSEDOPTS=$(getopt --name "$0" --longoptions \
- help,debug,upload,rc,target:,only-build:,build-version: \
+ help,debug,upload,rc,target:,only-build:,arch:,build-version: \
-- "" "$@")
if [ $? -ne 0 ]; then
exit 1
@@ -73,6 +75,9 @@ while [ $# -gt 0 ]; do
--only-build)
ONLY_BUILD="$2"; shift
;;
+ --arch)
+ ARCH="$2"; shift
+ ;;
--debug)
DEBUG=" --debug"
;;
@@ -102,6 +107,10 @@ if [[ -n "$ONLY_BUILD" ]]; then
build_args+=(--only-build "$ONLY_BUILD")
fi
+if [[ -n "$ARCH" ]]; then
+ build_args+=(--arch "$ARCH")
+fi
+
exit_cleanly() {
trap - INT
report_outcomes
diff --git a/build/run-library.sh b/build/run-library.sh
index 8a228622a..b0d4daa72 100755
--- a/build/run-library.sh
+++ b/build/run-library.sh
@@ -170,35 +170,48 @@ package_go_binary() {
native_arch=$(get_native_arch)
if [[ "$native_arch" != "amd64" ]] && [[ -n "$target_arch" ]] && [[ "$native_arch" != "$target_arch" ]]; then
- echo "Error: no cross compilation support for Go on $native_arch yet, can not build $prog for $target_arch"
+ echo "Error: no cross compilation support for Go on $native_arch, can not build $prog for $target_arch"
return 1
fi
+ cross_compilation=1
+ if [[ "$TARGET" == "centos7" ]]; then
+ if [[ "$native_arch" == "amd64" ]] && [[ -n "$target_arch" ]] && [[ "$native_arch" != "$target_arch" ]]; then
+ echo "Error: no cross compilation support for Go on $native_arch for $TARGET, can not build $prog for $target_arch"
+ return 1
+ fi
+ cross_compilation=0
+ fi
+
+ if [[ "$package_format" == "deb" ]] &&
+ [[ "$TARGET" == "debian10" ]] || [[ "$TARGET" == "ubuntu1804" ]] || [[ "$TARGET" == "ubuntu2004" ]]; then
+ # Due to bug https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=983477 the libfuse-dev package for arm64 does
+ # not install properly side by side with the amd64 version before Debian 11.
+ if [[ "$native_arch" == "amd64" ]] && [[ -n "$target_arch" ]] && [[ "$native_arch" != "$target_arch" ]]; then
+ echo "Error: no cross compilation support for Go on $native_arch for $TARGET, can not build $prog for $target_arch"
+ return 1
+ fi
+ cross_compilation=0
+ fi
+
if [[ -n "$target_arch" ]]; then
- # A target architecture has been specified
- package_go_binary_worker "$src_path" "$prog" "$package_format" "$description" "$native_arch" "$target_arch" "$license_file"
- return $?
+ archs=($target_arch)
else
- # No target architecture specified, default to native target. When on amd64 also crosscompile arm64
- # but only when building deb packages (centos does not have support for crosscompiling userspace).
+ # No target architecture specified, default to native target. When on amd64
+ # also crosscompile arm64 (when supported).
archs=($native_arch)
- if [[ "$native_arch" == "amd64" ]] &&
- [[ "$package_format" == "deb" ]] &&
- [[ "$TARGET" != "debian10" ]] &&
- [[ "$TARGET" != "ubuntu1804" ]] &&
- [[ "$TARGET" != "ubuntu2004" ]]; then
- # Due to bug https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=983477 the libfuse-dev package for arm64 does
- # not install properly side by side with the amd64 version before Debian 11.
+ if [[ $cross_compilation -ne 0 ]]; then
archs+=("arm64")
fi
- for ta in ${archs[@]}; do
- package_go_binary_worker "$src_path" "$prog" "$package_format" "$description" "$native_arch" "$ta" "$license_file"
- retval=$?
- if [[ $retval -ne 0 ]]; then
- return $retval
- fi
- done
fi
+
+ for ta in ${archs[@]}; do
+ package_go_binary_worker "$src_path" "$prog" "$package_format" "$description" "$native_arch" "$ta" "$license_file"
+ retval=$?
+ if [[ $retval -ne 0 ]]; then
+ return $retval
+ fi
+ done
}
# Usage: package_go_binary services/foo arvados-foo deb "Compute foo to arbitrary precision" [amd64/arm64] [amd64/arm64] [apache-2.0.txt]
@@ -211,11 +224,6 @@ package_go_binary_worker() {
local target_arch="${1:-amd64}"; shift
local license_file="${1:-agpl-3.0.txt}"; shift
- if [[ "$native_arch" != "$target_arch" ]] && [[ "$package_format" == "rpm" ]]; then
- echo "Error: no cross compilation support for Go on $native_arch ($package_format), can not build $prog for $target_arch"
- return 1
- fi
-
debug_echo "package_go_binary $src_path as $prog (native arch: $native_arch, target arch: $target_arch)"
local basename="${src_path##*/}"
calculate_go_package_version go_package_version $src_path
-----------------------------------------------------------------------
hooks/post-receive
--
More information about the arvados-commits
mailing list