From 757cb2b01ac9474ef26e1e96c254e29cf620e991 Mon Sep 17 00:00:00 2001 From: Nicola Busanello Date: Fri, 6 Nov 2020 11:40:08 +0000 Subject: [PATCH] less is more: drop 32-bit android and ios * android 64-bit targets build fine * android 32-bit targets fail due to rgb-node issue #4 * ios is not building (used to) so will introduce it later on --- .github/workflows/build.yml | 63 +++++++------------------------------ Cargo.lock | 51 ++++++++++++++++++++++-------- Cargo.toml | 11 ++----- 3 files changed, 51 insertions(+), 74 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index d7e70bfc6f2df..9ab1f84bf7419 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -186,6 +186,8 @@ jobs: runs-on: ubuntu-latest env: NDK_VERSION: 20.1.5948944 + ANDROID_CLI_ZIP: commandlinetools-linux-6858069_latest.zip + ANDROID_CLI_SHA256: 87f6dcf41d4e642e37ba03cb2e387a542aa0bd73cb689a9e7152aad40a6e7a08 steps: - uses: actions/checkout@v2 - name: Install rust @@ -196,14 +198,6 @@ jobs: - name: Install dependencies run: | sudo apt-get install -y libpcre3-dev libssl-dev - wget -nv https://freefr.dl.sourceforge.net/project/swig/swig/swig-4.0.1/swig-4.0.1.tar.gz - tar xf swig-4.0.1.tar.gz - cd swig-4.0.1 && ./configure && make -j4 && sudo make install - - name: Build - uses: actions-rs/cargo@v1 - with: - command: check - args: --all-features --release - name: set environment variables run: | ANDROID_SDK_ROOT="$GITHUB_WORKSPACE/sdk" @@ -213,11 +207,13 @@ jobs: echo "PATH=$PATH:$NDK_HOME/toolchains/llvm/prebuilt/linux-x86_64/bin" >> $GITHUB_ENV - name: Install NDK run: | - wget -nv https://dl.google.com/android/repository/commandlinetools-linux-6609375_latest.zip - unzip commandlinetools-linux-6609375_latest.zip - mkdir $ANDROID_SDK_ROOT && mv tools $ANDROID_SDK_ROOT/ - yes 2>/dev/null | $ANDROID_SDK_ROOT/tools/bin/sdkmanager --sdk_root=$ANDROID_SDK_ROOT \ - "platform-tools" "build-tools;29.0.3" "platforms;android-29" "ndk;$NDK_VERSION" "cmake;3.10.2.4988404" |grep -v '\[='; true + wget -nv https://dl.google.com/android/repository/$ANDROID_CLI_ZIP + echo "$ANDROID_CLI_SHA256 $ANDROID_CLI_ZIP" > SHA256SUMS + sha256sum -c SHA256SUMS + unzip $ANDROID_CLI_ZIP + mkdir -p $ANDROID_SDK_ROOT/cmdline-tools && mv cmdline-tools $ANDROID_SDK_ROOT/cmdline-tools/3.0 + yes 2>/dev/null | $ANDROID_SDK_ROOT/cmdline-tools/3.0/bin/sdkmanager --sdk_root=$ANDROID_SDK_ROOT \ + "build-tools;29.0.3" "platforms;android-29" "ndk;$NDK_VERSION" |grep -v '\[='; true - name: Add rust targets run: | rustup target add aarch64-linux-android x86_64-linux-android armv7-linux-androideabi i686-linux-android @@ -229,7 +225,7 @@ jobs: export CXX="aarch64-linux-android21-clang++" export CXXFLAGS="$CFLAGS -nostdlib++ -I$NDK_HOME/sources/cxx-stl/llvm-libc++/include" export LDFLAGS="--sysroot=$NDK_HOME/platforms/android-21/arch-arm64" - cargo check --all-features --release --target=aarch64-linux-android + cargo check --all-features --target=aarch64-linux-android - name: Build for x86_64-linux-android run: | export CARGO_TARGET_X86_64_LINUX_ANDROID_LINKER="$NDK_HOME/toolchains/llvm/prebuilt/linux-x86_64/bin/x86_64-linux-android26-clang" @@ -238,41 +234,4 @@ jobs: export CXX="x86_64-linux-android21-clang++" export CXXFLAGS="$CFLAGS -nostdlib++ -I$NDK_HOME/sources/cxx-stl/llvm-libc++/include" export LDFLAGS="--sysroot=$NDK_HOME/platforms/android-21/arch-x86_64" - cargo check --all-features --release --target=x86_64-linux-android - - name: Build for armv7-linux-androideabi - run: | - export CARGO_TARGET_ARMV7_LINUX_ANDROIDEABI_LINKER="$NDK_HOME/toolchains/llvm/prebuilt/linux-x86_64/bin/armv7a-linux-androideabi26-clang" - export CC="armv7a-linux-androideabi21-clang" - export CFLAGS="--sysroot=$NDK_HOME/sysroot -I$NDK_HOME/sysroot/usr/include -I$NDK_HOME/sysroot/usr/include/arm-linux-androideabi" - export CXX="armv7a-linux-androideabi21-clang++" - export CXXFLAGS="$CFLAGS -nostdlib++ -I$NDK_HOME/sources/cxx-stl/llvm-libc++/include" - export LDFLAGS="--sysroot=$NDK_HOME/platforms/android-21/arch-arm -L$NDK_HOME/sources/cxx-stl/llvm-libc++/libs/armeabi-v7a" - cargo check --all-features --release --target=armv7-linux-androideabi - - name: Build for i686-linux-android - run: | - export CARGO_TARGET_I686_LINUX_ANDROID_LINKER="$NDK_HOME/toolchains/llvm/prebuilt/linux-x86_64/bin/i686-linux-android26-clang" - export CC="i686-linux-android21-clang" - export CFLAGS="--sysroot=$NDK_HOME/sysroot -I$NDK_HOME/sysroot/usr/include -I$NDK_HOME/sysroot/usr/include/i686-linux-android" - export CXX="i686-linux-android21-clang++" - export CXXFLAGS="$CFLAGS -nostdlib++ -I$NDK_HOME/sources/cxx-stl/llvm-libc++/include" - export LDFLAGS="--sysroot=$NDK_HOME/platforms/android-21/arch-x86" - cargo check --all-features --release --target=i686-linux-android - ios: - runs-on: macos-latest - steps: - - uses: actions/checkout@v2 - - name: Install rust - uses: actions-rs/toolchain@v1 - with: - toolchain: stable - override: true - - name: Dependencies and targets - run: | - brew install zmq - rustup target add aarch64-apple-ios x86_64-apple-ios - cargo install cargo-lipo - - name: Build - uses: actions-rs/cargo@v1 - with: - command: lipo - args: --all-features --release + cargo check --all-features --target=x86_64-linux-android diff --git a/Cargo.lock b/Cargo.lock index 3c5cc66d97edc..ffe79078c0bcb 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -129,11 +129,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "aefc9be9f17185f4ebccae6575d342063f775924d57df0000edb1880c0fb7095" dependencies = [ "bech32", - "bitcoin_hashes", - "secp256k1", + "bitcoin_hashes 0.9.4", + "secp256k1 0.19.0", "serde 1.0.117", ] +[[package]] +name = "bitcoin_hashes" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b375d62f341cef9cd9e77793ec8f1db3fc9ce2e4d57e982c8fe697a2c16af3b6" + [[package]] name = "bitcoin_hashes" version = "0.9.4" @@ -199,9 +205,9 @@ checksum = "0e4cec68f03f32e44924783795810fa50a7035d8c8ebe78580ad7e6c703fba38" [[package]] name = "cc" -version = "1.0.61" +version = "1.0.41" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed67cbde08356238e75fc4656be4749481eeffb09e19f320a25237d5221c985d" +checksum = "8dae9c4b8fedcae85592ba623c4fd08cfdab3e3b72d6df780c6ead964a69bfff" [[package]] name = "cfg-if" @@ -303,9 +309,9 @@ dependencies = [ [[package]] name = "cmake" -version = "0.1.43" +version = "0.1.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49f97562167906afc51aa3fd7e6c83c10a5c96d33bd18f98a4c06a1413134caa" +checksum = "0e56268c17a6248366d66d4a47a3381369d068cce8409bb1716ed77ea32163bb" dependencies = [ "cc", ] @@ -731,12 +737,13 @@ checksum = "4d58d1b70b004888f764dfbf6a26a3b0342a1632d33968e4a179d8011c760614" [[package]] name = "lightning-invoice" version = "0.3.0" -source = "git+https://github.com/LNP-BP/rust-lightning-invoice?tag=lnpbp-v0.1.0-beta-4#979dce954315a386528fd1ddbde1a27fa89f00c1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e0a8e3f3dcb1bf88550e6d2cc2b831779f8f4f7b2462573c2be0a1b28a59e82" dependencies = [ "bech32", - "bitcoin_hashes", + "bitcoin_hashes 0.7.6", "num-traits 0.2.14", - "secp256k1", + "secp256k1 0.17.2", ] [[package]] @@ -766,7 +773,7 @@ dependencies = [ "async-trait", "bech32", "bitcoin", - "bitcoin_hashes", + "bitcoin_hashes 0.9.4", "chacha20poly1305", "chrono", "deflate", @@ -809,7 +816,6 @@ dependencies = [ "miniscript", "num-derive", "num-traits 0.2.14", - "openssl", "serde 1.0.117", "serde_with", "tokio", @@ -1434,6 +1440,15 @@ version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "71d301d4193d031abdd79ff7e3dd721168a9572ef3fe51a1517aba235bd8f86e" +[[package]] +name = "secp256k1" +version = "0.17.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2932dc07acd2066ff2e3921a4419606b220ba6cd03a9935123856cc534877056" +dependencies = [ + "secp256k1-sys 0.1.2", +] + [[package]] name = "secp256k1" version = "0.19.0" @@ -1441,10 +1456,19 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c6179428c22c73ac0fbb7b5579a56353ce78ba29759b3b8575183336ea74cdfb" dependencies = [ "rand 0.6.5", - "secp256k1-sys", + "secp256k1-sys 0.3.0", "serde 1.0.117", ] +[[package]] +name = "secp256k1-sys" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ab2c26f0d3552a0f12e639ae8a64afc2e3db9c52fe32f5fc6c289d38519f220" +dependencies = [ + "cc", +] + [[package]] name = "secp256k1-sys" version = "0.3.0" @@ -2058,7 +2082,8 @@ dependencies = [ [[package]] name = "zeromq-src" version = "0.1.10+4.3.2" -source = "git+https://github.com/LNP-BP/zeromq-src-rs?branch=fix/cmake#e95a4e68136a6897d61c936622933bf259ebdd7f" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df9133d366817fcffe22e4356043ba187ae122ec5db63d7ce73d1e6a18efa2f1" dependencies = [ "cmake", ] diff --git a/Cargo.toml b/Cargo.toml index 232a861c7c613..fa5e75b9b905c 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -31,7 +31,6 @@ crate-type = ["dylib", "rlib", "staticlib"] # equivalence requirements (with '=' sign) since even dependencies patching will # not introduce risk of breaking the consensus and even security updates must # be done manually after through testing - [dependencies] # Dependencies on other LNP/BP repositories # ----------------------------------------- @@ -44,7 +43,8 @@ bitcoin = { version = "~0.25.1", features = ["rand"] } bitcoin_hashes = "~0.9.3" # we need macro from here miniscript = "~3.0.0" bech32 = "~0.7.2" -lightning-invoice = { git = "https://github.com/LNP-BP/rust-lightning-invoice", tag = "lnpbp-v0.1.0-beta-4", optional = true } +lightning-invoice = { version = "~0.3.0", optional = true } + chacha20poly1305 = "~0.7.0" # Used only as a part of RGB for encoding Ed25519 key data (for instance as # a part of Tor address) @@ -93,16 +93,9 @@ torut = { version = "~0.1.6", features = ["v2", "v3"] } miniscript = { version = "~3.0.0", features = ["compiler"] } bitcoin = { version = "~0.25.0", features = ["rand"] } -[patch.crates-io] -# Remove this once https://github.com/jean-airoldie/zeromq-src-rs/pull/15 got merged -zeromq-src = { git = "https://github.com/LNP-BP/zeromq-src-rs", branch = "fix/cmake" } - [target.'cfg(target_os="android")'.dependencies] zmq = { version = "~0.9", features = ["vendored"] } -[target.'cfg(target_os="ios")'.dependencies] -openssl = { version = "^0.10", features = ["vendored"] } - # Features # ======== [features]