diff options
| author | Emīls <emils@mullvad.net> | 2020-02-08 18:24:52 +0000 |
|---|---|---|
| committer | Emīls <emils@mullvad.net> | 2020-02-08 18:24:52 +0000 |
| commit | 8f2b7f644b9634c74df9362be4605652c7ccdfe8 (patch) | |
| tree | 34899e5339892fe678608f274d401b026ebaedd3 | |
| parent | f1de40264ddab180a16f4e5c23207118288ebf05 (diff) | |
| parent | fec3ccc803fded3ccd5c753b9e045af10f576687 (diff) | |
| download | mullvadvpn-8f2b7f644b9634c74df9362be4605652c7ccdfe8.tar.xz mullvadvpn-8f2b7f644b9634c74df9362be4605652c7ccdfe8.zip | |
Merge branch 'use-newer-android-build-docker-image'
| -rwxr-xr-x | wireguard/build-wireguard-go.sh | 5 | ||||
| -rw-r--r-- | wireguard/wireguard-go/Android.mk | 20 | ||||
| -rwxr-xr-x | wireguard/wireguard-go/build-android.sh | 18 | ||||
| -rw-r--r-- | wireguard/wireguard-go/go.sum | 1 |
4 files changed, 13 insertions, 31 deletions
diff --git a/wireguard/build-wireguard-go.sh b/wireguard/build-wireguard-go.sh index e14ccd60f2..f30397e81c 100755 --- a/wireguard/build-wireguard-go.sh +++ b/wireguard/build-wireguard-go.sh @@ -72,16 +72,15 @@ function unix_target_triple { function build_unix { echo "Building wireguard-go for $1" pushd wireguard-go - go build -v -o libwg.a -buildmode c-archive target_triple_dir="../../build/lib/$(unix_target_triple)" mkdir -p $target_triple_dir - mv libwg.a $target_triple_dir + go build -v -o $target_triple_dir/libwg.a -buildmode c-archive popd } function build_android { echo "Building for android" - local docker_image_hash="d73fdea1108cd75d7eb09f8894fe6892dc502a2d62c39b4f75072e777398f477" + local docker_image_hash="f432cb779611284ce69aca59a90a8a601171d4c29728561ae32bd228b1699198" docker run --rm \ -v "$(pwd)/../":/workspace \ diff --git a/wireguard/wireguard-go/Android.mk b/wireguard/wireguard-go/Android.mk index 0273a4adb1..6b31ffeb80 100644 --- a/wireguard/wireguard-go/Android.mk +++ b/wireguard/wireguard-go/Android.mk @@ -2,7 +2,6 @@ # # Copyright © 2017-2019 WireGuard LLC. All Rights Reserved. -BUILDDIR ?= $(CURDIR)/build DESTDIR ?= $(CURDIR)/../../android/build/extraJni/$(ANDROID_ABI) NDK_GO_ARCH_MAP_x86 := 386 @@ -27,27 +26,12 @@ GOBUILDOS := $(shell uname -s | tr '[:upper:]' '[:lower:]') GOBUILDVERSION := 1.12 GOBUILDTARBALL := https://dl.google.com/go/go$(GOBUILDVERSION).$(GOBUILDOS)-$(GOBUILDARCH).tar.gz GOBUILDVERSION_NEEDED := go version go$(GOBUILDVERSION) $(GOBUILDOS)/$(GOBUILDARCH) -export GOROOT := $(BUILDDIR)/goroot -export GOPATH := $(BUILDDIR)/gopath -export PATH := $(GOROOT)/bin:$(PATH) -GOBUILDVERSION_CURRENT := $(shell $(GOROOT)/bin/go version 2>/dev/null) -ifneq ($(GOBUILDVERSION_NEEDED),$(GOBUILDVERSION_CURRENT)) -$(shell rm -f $(GOROOT)/bin/go) -endif -$(GOROOT)/bin/go: - rm -rf "$(GOROOT)" - mkdir -p "$(GOROOT)" - curl "$(GOBUILDTARBALL)" | tar -C "$(GOROOT)" --strip-components=1 -xzf - || { rm -rf "$(GOROOT)"; exit 1; } - patch -p1 -f -N -r- -d "$(GOROOT)" < goruntime-boottime-over-monotonic.diff || { rm -rf "$(GOROOT)"; exit 1; } -$(shell test "$$(cat $(BUILDDIR)/.gobuildversion 2>/dev/null)" = "$(GOBUILDVERSION_CURRENT)" || rm -f "$(DESTDIR)/libwg.so") - -$(DESTDIR)/libwg.so: $(GOROOT)/bin/go +$(DESTDIR)/libwg.so: mkdir -p $(DESTDIR) - go get -tags "linux android" || { chmod -fR +w "$(GOPATH)/pkg/mod"; rm -rf "$(GOPATH)/pkg/mod"; exit 1; } + go get -tags "linux android" chmod -fR +w "$(GOPATH)/pkg/mod" go build -tags "linux android" -ldflags="-X main.socketDirectory=/data/data/$(ANDROID_PACKAGE_NAME)/cache/wireguard" -v -o "$@" -buildmode c-shared - go version > $(BUILDDIR)/.gobuildversion rm -f $(DESTDIR)/libwg.h diff --git a/wireguard/wireguard-go/build-android.sh b/wireguard/wireguard-go/build-android.sh index d7c683db63..4f1849aa75 100755 --- a/wireguard/wireguard-go/build-android.sh +++ b/wireguard/wireguard-go/build-android.sh @@ -6,6 +6,9 @@ set -e script_dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" cd $script_dir +# Keep a GOPATH in the build directory to maintain a cache of downloaded libraries +GOPATH=$script_dir/../../build/android-go-path/ +mkdir -p $GOPATH for arch in arm arm64 x86_64 x86; do case "$arch" in @@ -13,37 +16,30 @@ for arch in arm arm64 x86_64 x86; do export ANDROID_LLVM_TRIPLE="aarch64-linux-android" export ANDROID_LIB_TRIPLE="aarch64-linux-android" export RUST_TARGET_TRIPLE="aarch64-linux-android" - export RUST_LLVM_ARCH="aarch64" export ANDROID_ABI="arm64-v8a" ;; "x86_64") export ANDROID_LLVM_TRIPLE="x86_64-linux-android" export ANDROID_LIB_TRIPLE="x86_64-linux-android" export RUST_TARGET_TRIPLE="x86_64-linux-android" - export RUST_LLVM_ARCH="x86_64" export ANDROID_ABI="x86_64" ;; "arm") export ANDROID_LLVM_TRIPLE="armv7a-linux-androideabi" export ANDROID_LIB_TRIPLE="arm-linux-androideabi" export RUST_TARGET_TRIPLE="armv7-linux-androideabi" - export RUST_LLVM_ARCH="armv7" export ANDROID_ABI="armeabi-v7a" ;; "x86") export ANDROID_LLVM_TRIPLE="i686-linux-android" export ANDROID_LIB_TRIPLE="i686-linux-android" export RUST_TARGET_TRIPLE="i686-linux-android" - export RUST_LLVM_ARCH="i686" export ANDROID_ABI="x86" ;; esac - export ANDROID_ARCH_NAME="$arch" - export ANDROID_TOOLCHAIN_ROOT="/opt/android/toolchains/android21-${RUST_LLVM_ARCH}" - export ANDROID_SYSROOT="${ANDROID_TOOLCHAIN_ROOT}/sysroot" - export ANDROID_C_COMPILER="${ANDROID_TOOLCHAIN_ROOT}/bin/${ANDROID_LLVM_TRIPLE}21-clang" - + eval "$(install-ndk-toolchain $arch)" + export ANDROID_ARCH_NAME=$arch export PATH="$PATH:${ANDROID_NDK_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin" # Build Wireguard-Go @@ -62,5 +58,7 @@ for arch in arm arm64 x86_64 x86; do cp ../../android/build/extraJni/$ANDROID_ABI/libwg.so ../../build/lib/$RUST_TARGET_TRIPLE chmod 777 ../../android/build/extraJni/$ANDROID_ABI/libwg.so ../../build/lib/$RUST_TARGET_TRIPLE rm -rf build - done + +# ensure `git clean -fd` does not require root permissions +find $GOPATH -exec chmod +rw {} \; diff --git a/wireguard/wireguard-go/go.sum b/wireguard/wireguard-go/go.sum index d81030de9e..20a3d834b5 100644 --- a/wireguard/wireguard-go/go.sum +++ b/wireguard/wireguard-go/go.sum @@ -21,6 +21,7 @@ golang.org/x/sys v0.0.0-20190618155005-516e3c20635f/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20191003212358-c178f38b412c h1:6Zx7DRlKXf79yfxuQ/7GqV3w2y7aDsk6bGg0MzF5RVU= golang.org/x/sys v0.0.0-20191003212358-c178f38b412c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.2 h1:tW2bmiBqwgJj/UpqtC8EpXEZVYOwU0yG4iWbprSVAcs= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.zx2c4.com/wireguard v0.0.20190518-0.20190605110920-108c37a05639 h1:AoX5+g0OBk+KqTTMVl4YPFZ9ioU2tPW1YwtzaVWdORA= |
