aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorluigi1111 <luigi1111w@gmail.com>2022-09-28 14:20:22 -0500
committerluigi1111 <luigi1111w@gmail.com>2022-09-28 14:20:22 -0500
commit49a6c8ba9c512b63be557caa2a68ad05a14f1392 (patch)
treec7e8fa9b4af1c7a5d5df05e23435dcf520797295
parent57fefba3864502a48095df4b34fc38df06fcca4d (diff)
parent96b6e5972fbf97ba0efbe0e3a56a313e14232ec4 (diff)
downloadmonzero-gui-49a6c8ba9c512b63be557caa2a68ad05a14f1392.tar.gz
monzero-gui-49a6c8ba9c512b63be557caa2a68ad05a14f1392.tar.xz
monzero-gui-49a6c8ba9c512b63be557caa2a68ad05a14f1392.zip
Merge pull request #3615
96b6e59 Github workflow android: remove obsolete docker layers (malinero) 1b119eb Docker android: update Qt to 5.15.6 (and API level to 29) (malinero) 64a6ca7 Docker android: upgrade base image (malinero) 8b35660 Docker android: bump libraries (malinero) 131154b Docker android: update SDK and NDK (malinero)
-rw-r--r--.github/workflows/build.yml2
-rw-r--r--Dockerfile.android69
2 files changed, 35 insertions, 36 deletions
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 21543b40..2417400e 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -162,6 +162,8 @@ jobs:
run: docker build --tag monero:build-env-android --build-arg THREADS=3 --file Dockerfile.android .
- name: build
run: docker run --rm -v /home/runner/work/monero-gui/monero-gui:/monero-gui -e THREADS=3 monero:build-env-android
+ - name: Remove obsolete docker layers
+ run: docker images -a | grep none | awk '{ print $3; }' | xargs docker rmi || true
- uses: actions/upload-artifact@v2
with:
name: ${{ github.job }}
diff --git a/Dockerfile.android b/Dockerfile.android
index ad5d9397..03e5454d 100644
--- a/Dockerfile.android
+++ b/Dockerfile.android
@@ -1,41 +1,44 @@
-FROM debian:stretch
+FROM debian:buster
ARG THREADS=1
-ARG ANDROID_NDK_REVISION=21d
-ARG ANDROID_NDK_HASH=bcf4023eb8cb6976a4c7cff0a8a8f145f162bf4d
-ARG ANDROID_SDK_REVISION=4333796
-ARG ANDROID_SDK_HASH=92ffee5a1d98d856634e8b71132e8a95d96c83a63fde1099be3d86df3106def9
-ARG QT_VERSION=5.15.2
+ARG ANDROID_NDK_REVISION=21e
+ARG ANDROID_NDK_HASH=c3ebc83c96a4d7f539bd72c241b2be9dcd29bda9
+ARG ANDROID_SDK_REVISION=7302050_latest
+ARG ANDROID_SDK_HASH=7a00faadc0864f78edd8f4908a629a46d622375cbe2e5814e82934aebecdb622
+ARG QT_VERSION=v5.15.6-lts-lgpl
WORKDIR /opt/android
ENV WORKDIR=/opt/android
-ENV ANDROID_NATIVE_API_LEVEL=28
+ENV ANDROID_NATIVE_API_LEVEL=29
ENV ANDROID_API=android-${ANDROID_NATIVE_API_LEVEL}
ENV ANDROID_CLANG=aarch64-linux-android${ANDROID_NATIVE_API_LEVEL}-clang
ENV ANDROID_CLANGPP=aarch64-linux-android${ANDROID_NATIVE_API_LEVEL}-clang++
ENV ANDROID_NDK_ROOT=${WORKDIR}/android-ndk-r${ANDROID_NDK_REVISION}
-ENV ANDROID_SDK_ROOT=${WORKDIR}/tools
-ENV JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
+ENV ANDROID_SDK_ROOT=${WORKDIR}/cmdline-tools
+ENV JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
ENV PATH=${JAVA_HOME}/bin:${PATH}
ENV PREFIX=${WORKDIR}/prefix
ENV TOOLCHAIN_DIR=${ANDROID_NDK_ROOT}/toolchains/llvm/prebuilt/linux-x86_64
RUN apt-get update \
&& apt-get install -y ant automake build-essential ca-certificates-java file gettext git libc6 libncurses5 \
- libssl-dev libstdc++6 libtinfo5 libtool libz1 openjdk-8-jdk-headless openjdk-8-jre-headless pkg-config python3 \
+ libssl-dev libstdc++6 libtinfo5 libtool libz1 openjdk-11-jdk-headless openjdk-11-jre-headless pkg-config python3 \
unzip wget
-RUN wget -q https://dl.google.com/android/repository/sdk-tools-linux-${ANDROID_SDK_REVISION}.zip \
- && unzip -q sdk-tools-linux-${ANDROID_SDK_REVISION}.zip \
- && rm -f sdk-tools-linux-${ANDROID_SDK_REVISION}.zip
+RUN PACKAGE_NAME=commandlinetools-linux-${ANDROID_SDK_REVISION}.zip \
+ && wget -q https://dl.google.com/android/repository/${PACKAGE_NAME} \
+ && echo "${ANDROID_SDK_HASH} ${PACKAGE_NAME}" | sha256sum -c \
+ && unzip -q ${PACKAGE_NAME} \
+ && rm -f ${PACKAGE_NAME}
-RUN wget -q https://dl.google.com/android/repository/android-ndk-r${ANDROID_NDK_REVISION}-linux-x86_64.zip \
- && unzip -q android-ndk-r${ANDROID_NDK_REVISION}-linux-x86_64.zip \
- && rm -f android-ndk-r${ANDROID_NDK_REVISION}-linux-x86_64.zip
+RUN PACKAGE_NAME=android-ndk-r${ANDROID_NDK_REVISION}-linux-x86_64.zip \
+ && wget -q https://dl.google.com/android/repository/${PACKAGE_NAME} \
+ && echo "${ANDROID_NDK_HASH} ${PACKAGE_NAME}" | sha1sum -c \
+ && unzip -q ${PACKAGE_NAME} \
+ && rm -f ${PACKAGE_NAME}
-RUN cd ${ANDROID_SDK_ROOT} && echo y | ./bin/sdkmanager "platform-tools" "platforms;${ANDROID_API}" "tools" > /dev/null
-RUN cp -r ${WORKDIR}/platforms ${WORKDIR}/platform-tools ${ANDROID_SDK_ROOT}
+RUN echo y | ${ANDROID_SDK_ROOT}/bin/sdkmanager --sdk_root=${ANDROID_SDK_ROOT} "build-tools;28.0.3" "platforms;${ANDROID_API}" "tools" > /dev/null
ENV HOST_PATH=${PATH}
ENV PATH=${TOOLCHAIN_DIR}/aarch64-linux-android/bin:${TOOLCHAIN_DIR}/bin:${PATH}
@@ -76,7 +79,6 @@ RUN git clone git://code.qt.io/qt/qt5.git -b ${QT_VERSION} --depth 1 \
-skip qtpurchasing \
-skip qtgamepad -skip qtscript -skip qtdoc \
-no-warnings-are-errors \
- && sed -i '213,215d' qtbase/src/3rdparty/pcre2/src/sljit/sljitConfigInternal.h \
&& PATH=${HOST_PATH} make -j${THREADS} \
&& PATH=${HOST_PATH} make -j${THREADS} install \
&& cd qttools/src/linguist/lrelease \
@@ -99,7 +101,7 @@ RUN wget -q http://ftp.gnu.org/pub/gnu/libiconv/libiconv-${ICONV_VERSION}.tar.gz
ARG BOOST_VERSION=1_74_0
ARG BOOST_VERSION_DOT=1.74.0
ARG BOOST_HASH=83bfc1507731a0906e387fc28b7ef5417d591429e51e788417fe9ff025e116b1
-RUN wget -q https://downloads.sourceforge.net/project/boost/boost/${BOOST_VERSION_DOT}/boost_${BOOST_VERSION}.tar.bz2 \
+RUN wget -q https://boostorg.jfrog.io/artifactory/main/release/${BOOST_VERSION_DOT}/source/boost_${BOOST_VERSION}.tar.bz2 \
&& echo "${BOOST_HASH} boost_${BOOST_VERSION}.tar.bz2" | sha256sum -c \
&& tar -xf boost_${BOOST_VERSION}.tar.bz2 \
&& rm -f boost_${BOOST_VERSION}.tar.bz2 \
@@ -143,8 +145,8 @@ RUN wget https://github.com/libexpat/libexpat/releases/download/R_2_4_1/expat-${
make -j$THREADS install && \
rm -rf $(pwd)
-ARG UNBOUND_VERSION=1.13.2
-ARG UNBOUND_HASH=0a13b547f3b92a026b5ebd0423f54c991e5718037fd9f72445817f6a040e1a83
+ARG UNBOUND_VERSION=1.16.2
+ARG UNBOUND_HASH=2e32f283820c24c51ca1dd8afecfdb747c7385a137abe865c99db4b257403581
RUN wget https://www.nlnetlabs.nl/downloads/unbound/unbound-${UNBOUND_VERSION}.tar.gz && \
echo "${UNBOUND_HASH} unbound-${UNBOUND_VERSION}.tar.gz" | sha256sum -c && \
tar -xzf unbound-${UNBOUND_VERSION}.tar.gz && \
@@ -155,8 +157,8 @@ RUN wget https://www.nlnetlabs.nl/downloads/unbound/unbound-${UNBOUND_VERSION}.t
make -j$THREADS install && \
rm -rf $(pwd)
-ARG ZMQ_VERSION=v4.3.3
-ARG ZMQ_HASH=04f5bbedee58c538934374dc45182d8fc5926fa3
+ARG ZMQ_VERSION=v4.3.4
+ARG ZMQ_HASH=4097855ddaaa65ed7b5e8cb86d143842a594eebd
RUN git clone https://github.com/zeromq/libzmq.git -b ${ZMQ_VERSION} --depth 1 \
&& cd libzmq \
&& git checkout ${ZMQ_HASH} \
@@ -178,33 +180,27 @@ RUN set -ex \
&& make -j${THREADS} install \
&& rm -rf $(pwd)
-RUN git clone -b libgpg-error-1.38 --depth 1 git://git.gnupg.org/libgpg-error.git \
+RUN git clone -b libgpg-error-1.41 --depth 1 git://git.gnupg.org/libgpg-error.git \
&& cd libgpg-error \
- && git reset --hard 71d278824c5fe61865f7927a2ed1aa3115f9e439 \
+ && git reset --hard 98032624ae89a67ee6fe3b1db5d95032e681d163 \
&& ./autogen.sh \
&& CC=${ANDROID_CLANG} CXX=${ANDROID_CLANGPP} ./configure --host=aarch64-linux-android --prefix=${PREFIX} --disable-rpath --disable-shared --enable-static --disable-doc --disable-tests \
&& PATH=${TOOLCHAIN_DIR}/bin:${HOST_PATH} make -j${THREADS} \
&& make -j${THREADS} install \
&& rm -rf $(pwd)
-RUN git clone -b libgcrypt-1.8.5 --depth 1 git://git.gnupg.org/libgcrypt.git \
+RUN git clone -b libgcrypt-1.10.1 --depth 1 git://git.gnupg.org/libgcrypt.git \
&& cd libgcrypt \
- && git reset --hard 56606331bc2a80536db9fc11ad53695126007298 \
+ && git reset --hard ae0e567820c37f9640440b3cff77d7c185aa6742 \
&& ./autogen.sh \
&& CC=${ANDROID_CLANG} CXX=${ANDROID_CLANGPP} ./configure --host=aarch64-linux-android --prefix=${PREFIX} --with-gpg-error-prefix=${PREFIX} --disable-shared --enable-static --disable-doc --disable-tests \
&& PATH=${TOOLCHAIN_DIR}/bin:${HOST_PATH} make -j${THREADS} \
&& make -j${THREADS} install \
&& rm -rf $(pwd)
-RUN cd tools \
- && wget -q http://dl-ssl.google.com/android/repository/tools_r25.2.5-linux.zip \
- && unzip -q tools_r25.2.5-linux.zip \
- && rm -f tools_r25.2.5-linux.zip \
- && echo y | ${ANDROID_SDK_ROOT}/tools/android update sdk --no-ui --all --filter build-tools-28.0.3
-
-RUN git clone -b v3.19.7 --depth 1 https://github.com/Kitware/CMake \
+RUN git clone -b v3.24.2 --depth 1 https://github.com/Kitware/CMake \
&& cd CMake \
- && git reset --hard 22612dd53a46c7f9b4c3f4b7dbe5c78f9afd9581 \
+ && git reset --hard 31f835410efeea50acd43512eb9e5646a26ea177 \
&& PATH=${HOST_PATH} ./bootstrap \
&& PATH=${HOST_PATH} make -j${THREADS} \
&& PATH=${HOST_PATH} make -j${THREADS} install \
@@ -226,6 +222,7 @@ CMD set -ex \
-DBoost_USE_STATIC_RUNTIME=ON \
-DLRELEASE_PATH="${PREFIX}/bin" \
-DQT_ANDROID_APPLICATION_BINARY="monero-wallet-gui" \
+ -DANDROID_SDK="${ANDROID_SDK_ROOT}" \
-DWITH_SCANNER=ON \
../../.. \
&& PATH=${HOST_PATH} make generate_translations_header \