diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile new file mode 100644 index 0000000000..0875d99d27 --- /dev/null +++ b/.devcontainer/Dockerfile @@ -0,0 +1,117 @@ +FROM docker.io/ubuntu:22.04 + +ENV FLUTTER_VERSION="3.29.0" +ENV USER="komodo" +ENV USER_ID=1000 +ENV PATH=$PATH:/opt/flutter/bin +ENV PATH=$PATH:/android-ndk/bin +ENV ANDROID_HOME=/opt/android-sdk-linux \ + LANG=en_US.UTF-8 \ + LC_ALL=en_US.UTF-8 \ + LANGUAGE=en_US:en +ENV TMPDIR=/tmp/ \ + ANDROID_DATA=/ \ + ANDROID_DNS_MODE=local \ + ANDROID_ROOT=/system + +ENV ANDROID_SDK_ROOT=$ANDROID_HOME \ + PATH=${PATH}:${ANDROID_HOME}/cmdline-tools/latest/bin:${ANDROID_HOME}/platform-tools:${ANDROID_HOME}/emulator + +# comes from https://developer.android.com/studio/#command-tools +ENV ANDROID_SDK_TOOLS_VERSION=11076708 + +# https://developer.android.com/studio/releases/build-tools +ENV ANDROID_PLATFORM_VERSION=35 +ENV ANDROID_BUILD_TOOLS_VERSION=35.0.1 + +# https://developer.android.com/ndk/downloads +ENV ANDROID_NDK_VERSION=27.2.12479018 + +RUN apt update && apt install -y sudo && \ + useradd -u $USER_ID -m $USER && \ + usermod -aG sudo $USER && \ + echo "$USER ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers && \ + mkdir -p /workspaces && \ + chown -R $USER:$USER /workspaces && \ + chown -R $USER:$USER /opt + +RUN apt-get update -y && \ + apt-get install -y --no-install-recommends \ + ca-certificates \ + build-essential \ + libssl-dev \ + cmake \ + llvm-dev \ + libclang-dev \ + lld \ + gcc \ + libc6-dev \ + jq \ + make \ + pkg-config \ + git \ + automake \ + libtool \ + m4 \ + autoconf \ + make \ + file \ + curl \ + wget \ + gnupg \ + software-properties-common \ + lsb-release \ + libudev-dev \ + zip unzip \ + nodejs npm \ + binutils && \ + apt-get clean + +USER $USER + +RUN set -e -o xtrace \ + && cd /opt \ + && sudo chown -R $USER:$USER /opt \ + && sudo apt-get update \ + && sudo apt-get install -y jq \ + openjdk-17-jdk \ + # For Linux build + clang cmake git \ + ninja-build pkg-config \ + libgtk-3-dev liblzma-dev \ + libstdc++-12-dev \ + xz-utils \ + wget zip unzip git openssh-client curl bc software-properties-common build-essential \ + ruby-full ruby-bundler libstdc++6 libpulse0 libglu1-mesa locales lcov \ + libsqlite3-dev --no-install-recommends \ + # for x86 emulators + libxtst6 libnss3-dev libnspr4 libxss1 libatk-bridge2.0-0 libgtk-3-0 libgdk-pixbuf2.0-0 \ + && sudo rm -rf /var/lib/apt/lists/* \ + && sudo sh -c 'echo "en_US.UTF-8 UTF-8" > /etc/locale.gen' \ + && sudo locale-gen \ + && sudo update-locale LANG=en_US.UTF-8 \ + && wget -q https://dl.google.com/android/repository/commandlinetools-linux-${ANDROID_SDK_TOOLS_VERSION}_latest.zip -O android-sdk-tools.zip \ + && mkdir -p ${ANDROID_HOME}/cmdline-tools/ \ + && unzip -q android-sdk-tools.zip -d ${ANDROID_HOME}/cmdline-tools/ \ + && mv ${ANDROID_HOME}/cmdline-tools/cmdline-tools ${ANDROID_HOME}/cmdline-tools/latest \ + && sudo chown -R $USER:$USER $ANDROID_HOME \ + && rm android-sdk-tools.zip \ + && yes | sdkmanager --licenses \ + && sdkmanager platform-tools \ + && git config --global user.email "hello@komodoplatform.com" \ + && git config --global user.name "Komodo Platform" \ + && yes | sdkmanager \ + "platforms;android-$ANDROID_PLATFORM_VERSION" \ + "build-tools;$ANDROID_BUILD_TOOLS_VERSION" + +RUN cd /opt && \ + curl -O https://storage.googleapis.com/flutter_infra_release/releases/stable/linux/flutter_linux_${FLUTTER_VERSION}-stable.tar.xz && \ + tar -xvf flutter_linux_${FLUTTER_VERSION}-stable.tar.xz -C /opt && \ + rm flutter_linux_${FLUTTER_VERSION}-stable.tar.xz && \ + flutter config --no-analytics && \ + flutter precache && \ + yes "y" | flutter doctor --android-licenses && \ + flutter doctor && \ + flutter update-packages && \ + mkdir -p /workspaces/komodo-wallet && \ + chown -R $USER_ID:$USER_ID /workspaces/komodo-wallet \ No newline at end of file diff --git a/.devcontainer/dev-setup.sh b/.devcontainer/dev-setup.sh deleted file mode 100644 index 333fb1edb0..0000000000 --- a/.devcontainer/dev-setup.sh +++ /dev/null @@ -1,34 +0,0 @@ -#!/bin/bash - -# Uncomment this to fail on the first error. This is useful to debug the script. -# However, it is not recommended for production. -# set -e - -sudo git config core.fileMode false -git config --global --add safe.directory /__w/komodo-defi-framework/komodo-defi-framework -sudo chmod -R u+rwx /home/komodo/workspace -sudo chown -R komodo:komodo /home/komodo/workspace - -mkdir -p android/app/src/main/cpp/libs/armeabi-v7a -mkdir -p android/app/src/main/cpp/libs/arm64-v8a -mkdir -p web/src/mm2 - -rustup default stable -cargo install wasm-pack -rustup default nightly-2023-06-01 - -cd /kdf -export PATH="$HOME/.cargo/bin:$PATH" -export PATH=$PATH:/android-ndk/bin -CC_aarch64_linux_android=aarch64-linux-android21-clang CARGO_TARGET_AARCH64_LINUX_ANDROID_LINKER=aarch64-linux-android21-clang cargo rustc --target=aarch64-linux-android --lib --release --crate-type=staticlib --package mm2_bin_lib -CC_armv7_linux_androideabi=armv7a-linux-androideabi21-clang CARGO_TARGET_ARMV7_LINUX_ANDROIDEABI_LINKER=armv7a-linux-androideabi21-clang cargo rustc --target=armv7-linux-androideabi --lib --release --crate-type=staticlib --package mm2_bin_lib -wasm-pack build --release mm2src/mm2_bin_lib --target web --out-dir ../../target/target-wasm-release - -mv /kdf/target/aarch64-linux-android/release/libkdflib.a /home/komodo/workspace/android/app/src/main/cpp/libs/arm64-v8a/libmm2.a -mv /kdf/target/armv7-linux-androideabi/release/libkdflib.a /home/komodo/workspace/android/app/src/main/cpp/libs/armeabi-v7a/libmm2.a -rm -rf /home/komodo/workspace/web/src/mm2/ -cp -R /kdf/target/target-wasm-release/ /home/komodo/workspace/web/src/mm2/ - -cd /home/komodo/workspace -flutter pub get -npm i && npm run build \ No newline at end of file diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 34288dfca7..e92a2584dd 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -1,33 +1,27 @@ { "name": "flutter_docker", "context": "..", - "dockerFile": "komodo-wallet-android-dev.dockerfile", + "dockerFile": "Dockerfile", "remoteUser": "komodo", - "postAttachCommand": "sh .devcontainer/dev-setup.sh", + "workspaceFolder": "/workspaces/komodo-wallet", + "postCreateCommand": "sudo chown -R komodo:komodo /workspaces/komodo-wallet", + "postAttachCommand": "flutter pub get", "runArgs": [ - "--privileged" + "--privileged", + "-v", + "/dev/bus/usb:/dev/bus/usb" + ], + "forwardPorts": [ + 8081, + 5037 ], - "workspaceMount": "source=${localWorkspaceFolder},target=/home/komodo/workspace,type=bind,consistency=delegated", - "workspaceFolder": "/home/komodo/workspace", - "hostRequirements": { - "cpus": 4, - "memory": "16gb", - "storage": "32gb" - }, "customizations": { "vscode": { "extensions": [ - "FelixAngelov.bloc", "Dart-Code.dart-code", - "Dart-Code.flutter", - "DavidAnson.vscode-markdownlint", - "pflannery.vscode-versionlens", - "GitHub.copilot", - "GitHub.copilot-chat" + "Dart-Code.flutter" ], "settings": { - "terminal.integrated.shell.linux": null, - "extensions.verifySignature": false, // https://github.com/microsoft/vscode/issues/174632 "dart.showTodos": true, "dart.debugExternalPackageLibraries": true, "dart.promptToGetPackages": false, diff --git a/.devcontainer/komodo-wallet-android-dev.dockerfile b/.devcontainer/komodo-wallet-android-dev.dockerfile deleted file mode 100644 index 9bcef5a58b..0000000000 --- a/.devcontainer/komodo-wallet-android-dev.dockerfile +++ /dev/null @@ -1,177 +0,0 @@ -FROM docker.io/ubuntu:22.04 - -ARG KDF_BRANCH=main -ENV KDF_DIR=/kdf -ENV FLUTTER_VERSION="3.29.0" -ENV FLUTTER_HOME="/home/komodo/.flutter-sdk" -ENV USER="komodo" -ENV USER_ID=1000 -ENV PATH=$PATH:$FLUTTER_HOME/bin -ENV AR=/usr/bin/llvm-ar-16 -ENV CC=/usr/bin/clang-16 -ENV PATH="$HOME/.cargo/bin:$PATH" -ENV PATH=$PATH:/android-ndk/bin -ENV ANDROID_HOME=/opt/android-sdk-linux \ - LANG=en_US.UTF-8 \ - LC_ALL=en_US.UTF-8 \ - LANGUAGE=en_US:en - -# Libz is distributed in the android ndk, but for some unknown reason it is not -# found in the build process of some crates, so we explicit set the DEP_Z_ROOT -ENV CARGO_TARGET_X86_64_LINUX_ANDROID_LINKER=x86_64-linux-android-clang \ - CARGO_TARGET_X86_64_LINUX_ANDROID_RUNNER="qemu-x86_64 -cpu qemu64,+mmx,+sse,+sse2,+sse3,+ssse3,+sse4.1,+sse4.2,+popcnt" \ - CC_x86_64_linux_android=x86_64-linux-android-clang \ - CXX_x86_64_linux_android=x86_64-linux-android-clang++ \ - CARGO_TARGET_ARMV7_LINUX_ANDROIDEABI_LINKER=armv7a-linux-androideabi21-clang \ - CARGO_TARGET_ARMV7_LINUX_ANDROIDEABI_RUNNER=qemu-arm \ - CC_armv7_linux_androideabi=armv7a-linux-androideabi21-clang \ - CXX_armv7_linux_androideabi=armv7a-linux-androideabi21-clang++ \ - CC_aarch64_linux_android=aarch64-linux-android21-clang \ - CARGO_TARGET_AARCH64_LINUX_ANDROID_LINKER=aarch64-linux-android21-clang \ - CC_armv7_linux_androideabi=armv7a-linux-androideabi21-clang \ - CARGO_TARGET_ARMV7_LINUX_ANDROIDEABI_LINKER=armv7a-linux-androideabi21-clang \ - DEP_Z_INCLUDE=/android-ndk/sysroot/usr/include/ \ - OPENSSL_STATIC=1 \ - OPENSSL_DIR=/openssl \ - OPENSSL_INCLUDE_DIR=/openssl/include \ - OPENSSL_LIB_DIR=/openssl/lib \ - RUST_TEST_THREADS=1 \ - HOME=/home/komodo/ \ - TMPDIR=/tmp/ \ - ANDROID_DATA=/ \ - ANDROID_DNS_MODE=local \ - ANDROID_ROOT=/system - -ENV ANDROID_SDK_ROOT=$ANDROID_HOME \ - PATH=${PATH}:${ANDROID_HOME}/cmdline-tools/latest/bin:${ANDROID_HOME}/platform-tools:${ANDROID_HOME}/emulator - -# comes from https://developer.android.com/studio/#command-tools -ENV ANDROID_SDK_TOOLS_VERSION=11076708 - -# https://developer.android.com/studio/releases/build-tools -ENV ANDROID_PLATFORM_VERSION=34 -ENV ANDROID_BUILD_TOOLS_VERSION=34.0.0 - -# https://developer.android.com/ndk/downloads -ENV ANDROID_NDK_VERSION=26.3.11579264 - -RUN apt update && apt install -y sudo && \ - useradd -u $USER_ID -m $USER && \ - usermod -aG sudo $USER && \ - echo "$USER ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers - -USER $USER - -RUN sudo apt-get update -y && \ - sudo apt-get install -y --no-install-recommends \ - ca-certificates \ - build-essential \ - libssl-dev \ - cmake \ - llvm-dev \ - libclang-dev \ - lld \ - gcc \ - libc6-dev \ - jq \ - make \ - pkg-config \ - git \ - automake \ - libtool \ - m4 \ - autoconf \ - make \ - file \ - curl \ - wget \ - gnupg \ - software-properties-common \ - lsb-release \ - libudev-dev \ - zip unzip \ - nodejs npm \ - binutils && \ - sudo apt-get clean - -RUN sudo ln -s /usr/bin/python3 /bin/python &&\ - sudo curl --output llvm.sh https://apt.llvm.org/llvm.sh && \ - sudo chmod +x llvm.sh && \ - sudo ./llvm.sh 16 && \ - sudo rm ./llvm.sh && \ - sudo ln -s /usr/bin/clang-16 /usr/bin/clang && \ - PROTOC_ZIP=protoc-25.3-linux-x86_64.zip && \ - sudo curl -OL https://github.com/protocolbuffers/protobuf/releases/download/v25.3/$PROTOC_ZIP && \ - sudo unzip -o $PROTOC_ZIP -d /usr/local bin/protoc && \ - sudo unzip -o $PROTOC_ZIP -d /usr/local 'include/*' && \ - sudo rm -f $PROTOC_ZIP && \ - sudo mkdir $KDF_DIR && \ - sudo chown -R $USER:$USER $KDF_DIR - -RUN PATH="$HOME/.cargo/bin:$PATH" && \ - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y && \ - export PATH="$HOME/.cargo/bin:$PATH" && \ - sudo chown -R $USER:$USER $HOME/.cargo && \ - rustup toolchain install nightly-2023-06-01 --no-self-update --profile=minimal && \ - rustup default nightly-2023-06-01 && \ - rustup target add aarch64-linux-android && \ - rustup target add armv7-linux-androideabi && \ - rustup target add wasm32-unknown-unknown && \ - sudo apt install -y python3 python3-pip git curl nodejs python3-venv sudo && \ - git clone https://github.com/KomodoPlatform/komodo-defi-framework.git $KDF_DIR && \ - cd $KDF_DIR && \ - git fetch --all && \ - git checkout origin/$KDF_BRANCH && \ - if [ "$(uname -m)" = "x86_64" ]; then \ - bash ./scripts/ci/android-ndk.sh x86 23; \ - elif [ "$(uname -m)" = "aarch64" ]; then \ - bash ./scripts/ci/android-ndk.sh arm64 23; \ - else \ - echo "Unsupported architecture: $(uname -m)"; \ - exit 1; \ - fi - -RUN set -e -o xtrace \ - && cd /opt \ - && sudo chown -R $USER:$USER /opt \ - && sudo apt-get update \ - && sudo apt-get install -y jq \ - openjdk-17-jdk \ - # For Linux build - clang cmake git \ - ninja-build pkg-config \ - libgtk-3-dev liblzma-dev \ - libstdc++-12-dev \ - xz-utils \ - wget zip unzip git openssh-client curl bc software-properties-common build-essential \ - ruby-full ruby-bundler libstdc++6 libpulse0 libglu1-mesa locales lcov \ - libsqlite3-dev --no-install-recommends \ - # for x86 emulators - libxtst6 libnss3-dev libnspr4 libxss1 libatk-bridge2.0-0 libgtk-3-0 libgdk-pixbuf2.0-0 \ - && sudo rm -rf /var/lib/apt/lists/* \ - && sudo sh -c 'echo "en_US.UTF-8 UTF-8" > /etc/locale.gen' \ - && sudo locale-gen \ - && sudo update-locale LANG=en_US.UTF-8 \ - && wget -q https://dl.google.com/android/repository/commandlinetools-linux-${ANDROID_SDK_TOOLS_VERSION}_latest.zip -O android-sdk-tools.zip \ - && mkdir -p ${ANDROID_HOME}/cmdline-tools/ \ - && unzip -q android-sdk-tools.zip -d ${ANDROID_HOME}/cmdline-tools/ \ - && mv ${ANDROID_HOME}/cmdline-tools/cmdline-tools ${ANDROID_HOME}/cmdline-tools/latest \ - && sudo chown -R $USER:$USER $ANDROID_HOME \ - && rm android-sdk-tools.zip \ - && yes | sdkmanager --licenses \ - && sdkmanager platform-tools \ - && git config --global user.email "hello@komodoplatform.com" \ - && git config --global user.name "Komodo Platform" \ - && yes | sdkmanager \ - "platforms;android-$ANDROID_PLATFORM_VERSION" \ - "build-tools;$ANDROID_BUILD_TOOLS_VERSION" - -RUN git clone https://github.com/flutter/flutter.git ${FLUTTER_HOME} \ - && cd ${FLUTTER_HOME} \ - && git fetch \ - && git checkout tags/$FLUTTER_VERSION \ - && flutter config --no-analytics \ - && flutter precache \ - && yes "y" | flutter doctor --android-licenses \ - && flutter doctor \ - && flutter update-packages \ No newline at end of file diff --git a/.docker/android-sdk.dockerfile b/.docker/android-sdk.dockerfile index 4735d8996a..23fe7b8d70 100644 --- a/.docker/android-sdk.dockerfile +++ b/.docker/android-sdk.dockerfile @@ -25,11 +25,11 @@ ENV ANDROID_SDK_ROOT=$ANDROID_HOME \ ENV ANDROID_SDK_TOOLS_VERSION=11076708 # https://developer.android.com/studio/releases/build-tools -ENV ANDROID_PLATFORM_VERSION=34 -ENV ANDROID_BUILD_TOOLS_VERSION=34.0.0 +ENV ANDROID_PLATFORM_VERSION=35 +ENV ANDROID_BUILD_TOOLS_VERSION=35.0.1 # https://developer.android.com/ndk/downloads -ENV ANDROID_NDK_VERSION=26.3.11579264 +ENV ANDROID_NDK_VERSION=27.2.12479018 RUN set -o xtrace \ && sudo chown -R $USER:$USER /opt \ diff --git a/.docker/build.sh b/.docker/build.sh index 8ea6253ead..de24d12bcf 100644 --- a/.docker/build.sh +++ b/.docker/build.sh @@ -16,17 +16,18 @@ fi echo "Building with target: $BUILD_TARGET, mode: $BUILD_MODE" -if [ "$(uname)" == "Darwin" ]; then +if [ "$(uname)" = "Darwin" ]; then PLATFORM_FLAG="--platform linux/amd64" else PLATFORM_FLAG="" fi -docker build $PLATFORM_FLAG -f .docker/kdf-android.dockerfile . -t komodo/kdf-android --build-arg KDF_BRANCH=main -docker build $PLATFORM_FLAG -f .docker/android-sdk.dockerfile . -t komodo/android-sdk:34 +docker build $PLATFORM_FLAG -f .docker/android-sdk.dockerfile . -t komodo/android-sdk:35 docker build $PLATFORM_FLAG -f .docker/komodo-wallet-android.dockerfile . -t komodo/komodo-wallet # Use the provided arguments for flutter build +# Build a second time if needed, as asset downloads will require a rebuild on the first attempt docker run $PLATFORM_FLAG --rm -v ./build:/app/build \ - -u $(id -u):$(id -g) \ - komodo/komodo-wallet:latest bash -c "flutter pub get && flutter analyze && flutter build $BUILD_TARGET --$BUILD_MODE || flutter build $BUILD_TARGET --$BUILD_MODE" + -u "$(id -u):$(id -g)" \ + komodo/komodo-wallet:latest sh -c \ + "flutter build $BUILD_TARGET --$BUILD_MODE || flutter build $BUILD_TARGET --$BUILD_MODE" diff --git a/.docker/kdf-android.dockerfile b/.docker/kdf-android.dockerfile deleted file mode 100644 index be59a4fe36..0000000000 --- a/.docker/kdf-android.dockerfile +++ /dev/null @@ -1,102 +0,0 @@ -FROM docker.io/ubuntu:22.04 - -LABEL Author="Onur Özkan " -ARG KDF_BRANCH=main - -RUN apt-get update -y && \ - apt-get install -y --no-install-recommends \ - ca-certificates \ - build-essential \ - libssl-dev \ - cmake \ - llvm-dev \ - libclang-dev \ - lld \ - gcc \ - libc6-dev \ - jq \ - make \ - pkg-config \ - git \ - automake \ - libtool \ - m4 \ - autoconf \ - make \ - file \ - curl \ - wget \ - gnupg \ - software-properties-common \ - lsb-release \ - libudev-dev \ - zip unzip \ - binutils && \ - apt-get clean - -RUN ln -s /usr/bin/python3 /bin/python &&\ - curl --output llvm.sh https://apt.llvm.org/llvm.sh && \ - chmod +x llvm.sh && \ - ./llvm.sh 16 && \ - rm ./llvm.sh && \ - ln -s /usr/bin/clang-16 /usr/bin/clang && \ - PROTOC_ZIP=protoc-25.3-linux-x86_64.zip && \ - curl -OL https://github.com/protocolbuffers/protobuf/releases/download/v25.3/$PROTOC_ZIP && \ - unzip -o $PROTOC_ZIP -d /usr/local bin/protoc && \ - unzip -o $PROTOC_ZIP -d /usr/local 'include/*' && \ - rm -f $PROTOC_ZIP - -ENV AR=/usr/bin/llvm-ar-16 -ENV CC=/usr/bin/clang-16 - -RUN mkdir -m 0755 -p /etc/apt/keyrings - -RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y && \ - export PATH="/root/.cargo/bin:$PATH" && \ - rustup toolchain install nightly-2023-06-01 --no-self-update --profile=minimal && \ - rustup default nightly-2023-06-01 && \ - rustup target add aarch64-linux-android && \ - rustup target add armv7-linux-androideabi && \ - apt install -y python3 python3-pip git curl nodejs python3-venv sudo && \ - git clone https://github.com/KomodoPlatform/komodo-defi-framework.git /app && \ - cd /app && \ - git fetch --all && \ - git checkout origin/$KDF_BRANCH && \ - if [ "$(uname -m)" = "x86_64" ]; then \ - bash ./scripts/ci/android-ndk.sh x86 23; \ - elif [ "$(uname -m)" = "aarch64" ]; then \ - bash ./scripts/ci/android-ndk.sh arm64 23; \ - else \ - echo "Unsupported architecture"; \ - exit 1; \ - fi - -ENV PATH="/root/.cargo/bin:$PATH" - -ENV PATH=$PATH:/android-ndk/bin - -# Libz is distributed in the android ndk, but for some unknown reason it is not -# found in the build process of some crates, so we explicit set the DEP_Z_ROOT -ENV CARGO_TARGET_X86_64_LINUX_ANDROID_LINKER=x86_64-linux-android-clang \ - CARGO_TARGET_X86_64_LINUX_ANDROID_RUNNER="qemu-x86_64 -cpu qemu64,+mmx,+sse,+sse2,+sse3,+ssse3,+sse4.1,+sse4.2,+popcnt" \ - CC_x86_64_linux_android=x86_64-linux-android-clang \ - CXX_x86_64_linux_android=x86_64-linux-android-clang++ \ - CARGO_TARGET_ARMV7_LINUX_ANDROIDEABI_LINKER=armv7a-linux-androideabi21-clang \ - CARGO_TARGET_ARMV7_LINUX_ANDROIDEABI_RUNNER=qemu-arm \ - CC_armv7_linux_androideabi=armv7a-linux-androideabi21-clang \ - CXX_armv7_linux_androideabi=armv7a-linux-androideabi21-clang++ \ - CC_aarch64_linux_android=aarch64-linux-android21-clang \ - CARGO_TARGET_AARCH64_LINUX_ANDROID_LINKER=aarch64-linux-android21-clang \ - CC_armv7_linux_androideabi=armv7a-linux-androideabi21-clang \ - CARGO_TARGET_ARMV7_LINUX_ANDROIDEABI_LINKER=armv7a-linux-androideabi21-clang \ - DEP_Z_INCLUDE=/android-ndk/sysroot/usr/include/ \ - OPENSSL_STATIC=1 \ - OPENSSL_DIR=/openssl \ - OPENSSL_INCLUDE_DIR=/openssl/include \ - OPENSSL_LIB_DIR=/openssl/lib \ - RUST_TEST_THREADS=1 \ - HOME=/tmp/ \ - TMPDIR=/tmp/ \ - ANDROID_DATA=/ \ - ANDROID_DNS_MODE=local \ - ANDROID_ROOT=/system \ No newline at end of file diff --git a/.docker/komodo-wallet-android.dockerfile b/.docker/komodo-wallet-android.dockerfile index 6168059cfb..136d1be6a3 100644 --- a/.docker/komodo-wallet-android.dockerfile +++ b/.docker/komodo-wallet-android.dockerfile @@ -1,41 +1,18 @@ -FROM komodo/kdf-android:latest AS build - -RUN cd /app && \ - rustup default nightly-2023-06-01 && \ - rustup target add aarch64-linux-android && \ - rustup target add armv7-linux-androideabi && \ - export PATH=$PATH:/android-ndk/bin && \ - CC_aarch64_linux_android=aarch64-linux-android21-clang CARGO_TARGET_AARCH64_LINUX_ANDROID_LINKER=aarch64-linux-android21-clang cargo rustc --target=aarch64-linux-android --lib --release --crate-type=staticlib --package mm2_bin_lib && \ - CC_armv7_linux_androideabi=armv7a-linux-androideabi21-clang CARGO_TARGET_ARMV7_LINUX_ANDROIDEABI_LINKER=armv7a-linux-androideabi21-clang cargo rustc --target=armv7-linux-androideabi --lib --release --crate-type=staticlib --package mm2_bin_lib && \ - mv target/aarch64-linux-android/release/libkdflib.a target/aarch64-linux-android/release/libmm2.a && \ - mv target/armv7-linux-androideabi/release/libkdflib.a target/armv7-linux-androideabi/release/libmm2.a - -FROM komodo/android-sdk:34 AS final +FROM komodo/android-sdk:35 AS final ENV FLUTTER_VERSION="3.29.0" -ENV FLUTTER_HOME="/home/komodo/.flutter-sdk" +ENV HOME="/home/komodo" ENV USER="komodo" -ENV PATH=$PATH:$FLUTTER_HOME/bin -ENV ANDROID_AARCH64_LIB=android/app/src/main/cpp/libs/arm64-v8a -ENV ANDROID_AARCH64_LIB_SRC=/app/target/aarch64-linux-android/release/libmm2.a -ENV ANDROID_ARMV7_LIB=android/app/src/main/cpp/libs/armeabi-v7a -ENV ANDROID_ARMV7_LIB_SRC=/app/target/armv7-linux-androideabi/release/libmm2.a +ENV PATH=$PATH:$HOME/flutter/bin USER $USER WORKDIR /app COPY --chown=$USER:$USER . . -RUN mkdir -p android/app/src/main/cpp/libs/armeabi-v7a && \ - mkdir -p android/app/src/main/cpp/libs/arm64-v8a && \ - git clone https://github.com/flutter/flutter.git ${FLUTTER_HOME} && \ - cd ${FLUTTER_HOME} && \ - git fetch && \ - git checkout tags/$FLUTTER_VERSION - -COPY --from=build --chown=$USER:$USER ${ANDROID_AARCH64_LIB_SRC} ${ANDROID_AARCH64_LIB} -COPY --from=build --chown=$USER:$USER ${ANDROID_ARMV7_LIB_SRC} ${ANDROID_ARMV7_LIB} - -RUN flutter config --no-analytics \ - && yes "y" | flutter doctor --android-licenses \ - && flutter doctor \ No newline at end of file +RUN curl -O https://storage.googleapis.com/flutter_infra_release/releases/stable/linux/flutter_linux_${FLUTTER_VERSION}-stable.tar.xz && \ + tar -xvf flutter_linux_${FLUTTER_VERSION}-stable.tar.xz -C ${HOME} && \ + rm flutter_linux_${FLUTTER_VERSION}-stable.tar.xz && \ + flutter config --no-analytics && \ + yes "y" | flutter doctor --android-licenses && \ + flutter doctor \ No newline at end of file diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000000..32bf6e62c8 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,3 @@ +**/.git +**/build +**/.fvm \ No newline at end of file