diff --git a/devops/Makefile b/devops/Makefile index e4134bddc..e802106e9 100644 --- a/devops/Makefile +++ b/devops/Makefile @@ -45,7 +45,7 @@ FPM_P_VENDOR := Sovrin FPM_P_DESCRIPTION := libsovtoken written in Rust FPM_P_NAME = $(PACKAGE_NAME) FPM_P_VERSION ?= $(SRC_VERSION) -FPM_P_DEPENDS = libindy(>=1.11.1) +FPM_P_DEPENDS = libindy(>=1.11.1~1136) FPM_P_OUTPUT_DIR = $(LIB_TARGET_DIR) FPM_ARGS = $(LIB_DYNAMIC)=/usr/lib/ diff --git a/devops/Makefile.android.in b/devops/Makefile.android.in index 556e3256a..57dbf5849 100644 --- a/devops/Makefile.android.in +++ b/devops/Makefile.android.in @@ -37,11 +37,11 @@ $(sort $(ANDROID_BUILD_DIR) $(ANDROID_PREBUILT_DIR) $(ANDROID_NDK_DIR)): # .PRECIOUS to stop make remove files that it treats as intermediate .PRECIOUS: $(ANDROID_PREBUILT_DIR)/openssl_%.zip $(ANDROID_PREBUILT_DIR)/openssl_%.zip: | $(ANDROID_PREBUILT_DIR) - cd $(@D) && curl -fLO $(REPO_SOVRIN_ORG_ANDROID_PREBUILT_URL)/deps/openssl/openssl_$*.zip + cd $(@D) && curl -fLO $(REPO_SOVRIN_ORG_ANDROID_PREBUILT_URL)/deps-libc++/openssl/openssl_$*.zip .PRECIOUS: $(ANDROID_PREBUILT_DIR)/libsodium_%.zip $(ANDROID_PREBUILT_DIR)/libsodium_%.zip: | $(ANDROID_PREBUILT_DIR) - cd $(@D) && curl -fLO $(REPO_SOVRIN_ORG_ANDROID_PREBUILT_URL)/deps/sodium/libsodium_$*.zip + cd $(@D) && curl -fLO $(REPO_SOVRIN_ORG_ANDROID_PREBUILT_URL)/deps-libc++/sodium/libsodium_$*.zip .PRECIOUS: $(ANDROID_PREBUILT_DIR)/libindy_android_%_$(LIBINDY_VERSION_BASE).zip $(ANDROID_PREBUILT_DIR)/libindy_android_%_$(LIBINDY_VERSION_BASE).zip: | $(ANDROID_PREBUILT_DIR) diff --git a/devops/aws-codebuild/Jenkinsfile.cd b/devops/aws-codebuild/Jenkinsfile.cd index af429bdd2..787c7942f 100644 --- a/devops/aws-codebuild/Jenkinsfile.cd +++ b/devops/aws-codebuild/Jenkinsfile.cd @@ -15,8 +15,8 @@ String srcVersion gitHubUserCredId = env.GITHUB_BOT_USER ?: 'sovbot-github' sovrinPackagingRepo = env.SOVRIN_PACKAGING_REPO ?: 'https://github.com/sovrin-foundation/sovrin-packaging' sovrinPackagingBranch = env.SOVRIN_PACKAGING_BRANCH ?: 'master' -LIBINDY_STREAM = "stable" -LIBINDY_VERSION = "1.11.1" +LIBINDY_STREAM = "master" +LIBINDY_VERSION = "1.11.1-1336" def downloadPackagingUtils() { git branch: sovrinPackagingBranch, credentialsId: gitHubUserCredId, url: sovrinPackagingRepo diff --git a/devops/aws-codebuild/Jenkinsfile.ci b/devops/aws-codebuild/Jenkinsfile.ci index 287b494fe..bae3c1931 100644 --- a/devops/aws-codebuild/Jenkinsfile.ci +++ b/devops/aws-codebuild/Jenkinsfile.ci @@ -7,8 +7,8 @@ def sovLibrary = library(identifier: 'sovrin-aws-codebuild@master', retriever: m logger = sovLibrary.Logger.new(this) notifier = sovLibrary.Notifier.new(this) logger.setGlobalLevel('TRACE') -LIBINDY_STREAM = "stable" -LIBINDY_VERSION = "1.11.1" +LIBINDY_STREAM = "master" +LIBINDY_VERSION = "1.11.1-1336" def nodeLabels = [ codeBuild: env.LIBSOVTOKEN_CODEBUILD_NODE_LABEL ?: 'codebuild', diff --git a/devops/docker/android_build/xenial/Dockerfile b/devops/docker/android_build/xenial/Dockerfile index cc8feb534..57ee2db41 100644 --- a/devops/docker/android_build/xenial/Dockerfile +++ b/devops/docker/android_build/xenial/Dockerfile @@ -1,6 +1,6 @@ ARG ANDROID_PREBUILT_DIR=/tmp/android/libsovtoken_prebuilt -FROM sovrin/libsovtoken:android_ndk-xenial-0.6.0 +FROM sovrin/libsovtoken:android_ndk-xenial-0.7.0 # TODO LABEL maintainer="Name " ARG ANDROID_PREBUILT_DIR @@ -12,7 +12,7 @@ RUN chmod -R 777 ${ANDROID_PREBUILT_DIR} ############################################ -FROM sovrin/libsovtoken:android_ndk-xenial-0.6.0 +FROM sovrin/libsovtoken:android_ndk-xenial-0.7.0 # TODO LABEL maintainer="Name " ARG u_id=1000 @@ -50,4 +50,4 @@ ENV RUST_TARGETS=${RUST_TARGETS:-"arm-linux-androideabi armv7-linux-androideabi # TODO some entrypoint -ENV LIBSOVTOKEN_ANDROID_BUILD_ENV_VERSION=0.6.0 +ENV LIBSOVTOKEN_ANDROID_BUILD_ENV_VERSION=0.7.0 diff --git a/devops/docker/android_ndk/xenial/Dockerfile b/devops/docker/android_ndk/xenial/Dockerfile index c6ad13678..225bdad5f 100644 --- a/devops/docker/android_ndk/xenial/Dockerfile +++ b/devops/docker/android_ndk/xenial/Dockerfile @@ -1,5 +1,5 @@ ARG ANDROID_NDK_DIR=/tmp/android/android_ndk -ARG ANDROID_NDK_VERSION=r16b +ARG ANDROID_NDK_VERSION=r20 FROM sovrin/dockerbase:rust-xenial-0.12.0 # TODO LABEL maintainer="Name " @@ -40,4 +40,4 @@ RUN chmod +x /usr/local/bin/android-ndk-install # TODO CMD ENTRYPOINT ... -ENV LIBSOVTOKEN_ANDROID_NDK_ENV_VERSION=0.6.0 +ENV LIBSOVTOKEN_ANDROID_NDK_ENV_VERSION=0.7.0 diff --git a/devops/docker/base/xenial/Dockerfile b/devops/docker/base/xenial/Dockerfile index bb32d1172..de7d0e68d 100644 --- a/devops/docker/base/xenial/Dockerfile +++ b/devops/docker/base/xenial/Dockerfile @@ -21,9 +21,9 @@ RUN cd /tmp \ # need for libsodium to be reachable via pkg-config (sodiumoxide uses it) ENV PKG_CONFIG_PATH /usr/local/lib/pkgconfig:$PKG_CONFIG_PATH # TODO ??? is it really needed -ENV LIBINDY_VERSION=1.11.1 +ENV LIBINDY_VERSION=1.11.1~1336 RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 68DB5E88 \ - && echo "deb https://repo.sovrin.org/sdk/deb xenial stable" >> /etc/apt/sources.list \ + && echo "deb https://repo.sovrin.org/sdk/deb xenial master" >> /etc/apt/sources.list \ && apt-get update && apt-get install -y --no-install-recommends \ libssl-dev \ libindy=${LIBINDY_VERSION} \ @@ -47,4 +47,4 @@ RUN cd /tmp/libsovtoken \ # TODO CMD ENTRYPOINT ... -ENV LIBSOVTOKEN_BASE_ENV_VERSION=0.36.0 +ENV LIBSOVTOKEN_BASE_ENV_VERSION=0.37.0 diff --git a/devops/docker/ci/xenial/Dockerfile b/devops/docker/ci/xenial/Dockerfile index 4b5bd5204..ee6c754a3 100644 --- a/devops/docker/ci/xenial/Dockerfile +++ b/devops/docker/ci/xenial/Dockerfile @@ -1,4 +1,4 @@ -FROM sovrin/libsovtoken:base-xenial-0.36.0 +FROM sovrin/libsovtoken:base-xenial-0.37.0 # TODO LABEL maintainer="Name " ARG LIBINDY_CRYPTO_VERSION @@ -43,6 +43,7 @@ RUN echo "deb https://repo.sovrin.org/deb xenial master" >> /etc/apt/sources.lis && apt-get update && apt-get install -y --no-install-recommends \ libindy-crypto=${LIBINDY_CRYPTO_VERSION} \ python3-indy-crypto=${PYTHON3_INDY_CRYPTO_VERSION} \ + python3-pyzmq=17.0.0 \ indy-plenum=${INDY_PLENUM_VERSION} \ indy-node=${INDY_NODE_VERSION} \ sovtoken=${TOKEN_VER} \ @@ -66,4 +67,4 @@ COPY libsovtoken-ci-entrypoint.sh /usr/local/bin/ RUN chmod +x /usr/local/bin/libsovtoken-ci-entrypoint.sh ENTRYPOINT ["libsovtoken-ci-entrypoint.sh"] -ENV LIBSOVTOKEN_CI_ENV_VERSION=0.727.0 +ENV LIBSOVTOKEN_CI_ENV_VERSION=0.728.0 diff --git a/devops/indy-pool/Dockerfile b/devops/indy-pool/Dockerfile index b164012ea..88f945919 100644 --- a/devops/indy-pool/Dockerfile +++ b/devops/indy-pool/Dockerfile @@ -48,6 +48,7 @@ RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 68DB5E88 RUN echo "deb https://repo.sovrin.org/deb xenial $indy_stream" >> /etc/apt/sources.list RUN apt-get update && apt-get install -y --no-install-recommends \ + python3-pyzmq=17.0.0 \ indy-plenum=${indy_plenum_ver} \ indy-node=${indy_node_ver} \ python3-indy-crypto=${python3_indy_crypto_ver} \ diff --git a/devops/setup.android.env.sh b/devops/setup.android.env.sh index 5c9f056f9..0d4bd4b79 100644 --- a/devops/setup.android.env.sh +++ b/devops/setup.android.env.sh @@ -40,7 +40,7 @@ generate_arch_flags(){ fi if [ $1 == "arm" ]; then export TARGET_ARCH="arm" - export TARGET_API="16" + export TARGET_API="21" export TRIPLET="armv7-linux-androideabi" export ABI="armeabi-v7a" export TOOLCHAIN_TRIPLET="arm-linux-androideabi" @@ -56,7 +56,7 @@ generate_arch_flags(){ if [ $1 == "x86" ]; then export ARCH="x86" - export TARGET_API="16" + export TARGET_API="21" export TRIPLET="i686-linux-android" export ABI="x86" export TOOLCHAIN_TRIPLET=${TRIPLET} @@ -64,21 +64,34 @@ generate_arch_flags(){ } +download_and_unzip_if_missed() { + target_dir=$1 + url_pref=$2 + fname=$3 + url="${url_pref}${fname}" + if [ ! -d "${target_dir}" ] ; then + echo "${GREEN}Downloading ${fname}${RESET}" + curl -sSLO ${url} + unzip -qq ${fname} + rm ${fname} + echo "${GREEN}Done!${RESET}" + else + echo "${BLUE}Skipping download ${fname}${RESET}" + fi +} + download_and_unzip_dependencies_for_all_architectures(){ mkdir -p ${ANDROID_BUILD_FOLDER} - #TODO Get dependencies in more optimized way + pushd ${ANDROID_BUILD_FOLDER} - if [ ! -d "indy-android-dependencies" ] ; then - git clone https://github.com/sovrin-foundation/indy-android-dependencies.git - pushd ${ANDROID_BUILD_FOLDER}/indy-android-dependencies/prebuilt/ -# git checkout tags/v1.0.1 - find . -name "*.zip" | xargs -P 5 -I FILENAME sh -c 'unzip -o -qq -d "$(dirname "FILENAME")" "FILENAME"' - popd - fi - export OPENSSL_DIR=${ANDROID_BUILD_FOLDER}/indy-android-dependencies/prebuilt/openssl/openssl_${TARGET_ARCH} - export SODIUM_DIR=${ANDROID_BUILD_FOLDER}/indy-android-dependencies/prebuilt/sodium/libsodium_${TARGET_ARCH} - export LIBZMQ_DIR=${ANDROID_BUILD_FOLDER}/indy-android-dependencies/prebuilt/zmq/libzmq_${TARGET_ARCH} - popd + download_and_unzip_if_missed "openssl_${TARGET_ARCH}" "https://repo.sovrin.org/android/libindy/deps-libc++/openssl/" "openssl_${TARGET_ARCH}.zip" + download_and_unzip_if_missed "libsodium_${TARGET_ARCH}" "https://repo.sovrin.org/android/libindy/deps-libc++/sodium/" "libsodium_${TARGET_ARCH}.zip" + download_and_unzip_if_missed "libzmq_${TARGET_ARCH}" "https://repo.sovrin.org/android/libindy/deps-libc++/zmq/" "libzmq_${TARGET_ARCH}.zip" + + export OPENSSL_DIR=${ANDROID_BUILD_FOLDER}/openssl_${TARGET_ARCH} + export SODIUM_DIR=${ANDROID_BUILD_FOLDER}/libsodium_${TARGET_ARCH} + export LIBZMQ_DIR=${ANDROID_BUILD_FOLDER}/libzmq_${TARGET_ARCH} + popd } create_cargo_config(){ mkdir -p ${SOVTOKEN_DIR}/.cargo @@ -94,7 +107,7 @@ create_standalone_toolchain_and_rust_target(){ python3 ${ANDROID_NDK_ROOT}/build/tools/make_standalone_toolchain.py \ --arch ${TARGET_ARCH} \ --api ${TARGET_API} \ - --stl=gnustl \ + --stl=libc++ \ --install-dir ${TOOLCHAIN_DIR} # add rust target @@ -107,17 +120,17 @@ download_and_setup_toolchain(){ export TOOLCHAIN_PLATFORM_PREFIX=${TOOLCHAIN_PREFIX}/darwin mkdir -p ${TOOLCHAIN_PLATFORM_PREFIX} pushd ${TOOLCHAIN_PLATFORM_PREFIX} - if [ ! -d "android-ndk-r16b" ] ; then - echo "Downloading android-ndk-r16b-darwin-x86_64.zip" - wget https://dl.google.com/android/repository/android-ndk-r16b-darwin-x86_64.zip - unzip -qq android-ndk-r16b-darwin-x86_64.zip + if [ ! -d "android-ndk-r20" ] ; then + echo "Downloading android-ndk-r20-darwin-x86_64.zip" + wget https://dl.google.com/android/repository/android-ndk-r20-darwin-x86_64.zip + unzip -qq android-ndk-r20-darwin-x86_64.zip else - echo "Skipping download android-ndk-r16b-darwin-x86_64.zip" + echo "Skipping download android-ndk-r20-darwin-x86_64.zip" fi popd pushd ${TOOLCHAIN_PREFIX} ln -nsf ${TOOLCHAIN_PLATFORM_PREFIX} standalone_toolchains - export ANDROID_NDK_ROOT=${TOOLCHAIN_PREFIX}/standalone_toolchains/android-ndk-r16b + export ANDROID_NDK_ROOT=${TOOLCHAIN_PREFIX}/standalone_toolchains/android-ndk-r20 popd elif [ "$(expr substr $(uname -s) 1 5)" == "Linux" ]; then @@ -125,19 +138,19 @@ download_and_setup_toolchain(){ export TOOLCHAIN_PLATFORM_PREFIX=${TOOLCHAIN_PREFIX}/linux mkdir -p ${TOOLCHAIN_PLATFORM_PREFIX} pushd ${TOOLCHAIN_PLATFORM_PREFIX} - if [ ! -d "android-ndk-r16b" ] ; then - echo "Downloading android-ndk-r16b-linux-x86_64.zip" - wget -q https://dl.google.com/android/repository/android-ndk-r16b-linux-x86_64.zip - unzip -qq android-ndk-r16b-linux-x86_64.zip + if [ ! -d "android-ndk-r20" ] ; then + echo "Downloading android-ndk-r20-linux-x86_64.zip" + wget -q https://dl.google.com/android/repository/android-ndk-r20-linux-x86_64.zip + unzip -qq android-ndk-r120-linux-x86_64.zip else - echo "Skipping download android-ndk-r16b-linux-x86_64.zip" + echo "Skipping download android-ndk-r20-linux-x86_64.zip" fi - export ANDROID_NDK_ROOT=${TOOLCHAIN_PLATFORM_PREFIX}/android-ndk-r16b + export ANDROID_NDK_ROOT=${TOOLCHAIN_PLATFORM_PREFIX}/android-ndk-r20 popd pushd ${TOOLCHAIN_PREFIX} ln -nsf ${TOOLCHAIN_PLATFORM_PREFIX} standalone_toolchains - export ANDROID_NDK_ROOT=${TOOLCHAIN_PREFIX}/standalone_toolchains/android-ndk-r16b + export ANDROID_NDK_ROOT=${TOOLCHAIN_PREFIX}/standalone_toolchains/android-ndk-r20 popd fi diff --git a/libsovtoken/Cargo.toml b/libsovtoken/Cargo.toml index 5fe6289b4..5b565709b 100644 --- a/libsovtoken/Cargo.toml +++ b/libsovtoken/Cargo.toml @@ -28,8 +28,8 @@ libc = "0.2.41" log = "0.4.6" openssl = "0.10.20" rand = "0.3" -indy-sys = "=1.11.1" -indy = "=1.11.1" +indy-sys = "=1.11.1-dev-1336" +indy = "=1.11.1-dev-1336" serde = "1.0.89" serde_derive = "1.0.89" serde_json = "1.0.39" diff --git a/libsovtoken/build_scripts/android/android_settings.txt b/libsovtoken/build_scripts/android/android_settings.txt index f7fc5379b..6736a0008 100644 --- a/libsovtoken/build_scripts/android/android_settings.txt +++ b/libsovtoken/build_scripts/android/android_settings.txt @@ -1,2 +1,2 @@ api=21 -ndk=android-ndk-r16b +ndk=android-ndk-r20 diff --git a/libsovtoken/build_scripts/android/indy/build.nondocker.sh b/libsovtoken/build_scripts/android/indy/build.nondocker.sh index b68315da8..4acc2a4a7 100755 --- a/libsovtoken/build_scripts/android/indy/build.nondocker.sh +++ b/libsovtoken/build_scripts/android/indy/build.nondocker.sh @@ -50,7 +50,7 @@ download_and_unzip_dependencies(){ export OPENSSL_DIR=${INDY_PREBUILT}/openssl_${arch} if [ ! -d ${OPENSSL_DIR} ] ; then echo -e "${ESCAPE}${GREEN}Downloading openssl for $1 ${ESCAPE}${NC}" - curl -sSLO https://repo.sovrin.org/android/libindy/deps/openssl/openssl_$1.zip + curl -sSLO https://repo.sovrin.org/android/libindy/deps-libc++/openssl/openssl_$1.zip unzip -o -qq openssl_$1.zip rm openssl_$1.zip else @@ -62,7 +62,7 @@ download_and_unzip_dependencies(){ export SODIUM_INCLUDE_DIR=${INDY_PREBUILT}/libsodium_${arch}/include if [ ! -d ${SODIUM_DIR} ] ; then echo -e "${ESCAPE}${GREEN}Downloading sodium for $1 ${ESCAPE}${NC}" - curl -sSLO https://repo.sovrin.org/android/libindy/deps/sodium/libsodium_$1.zip + curl -sSLO https://repo.sovrin.org/android/libindy/deps-libc++/sodium/libsodium_$1.zip unzip -o -qq libsodium_$1.zip rm libsodium_$1.zip else @@ -72,7 +72,7 @@ download_and_unzip_dependencies(){ export LIBZMQ_DIR=${INDY_PREBUILT}/libzmq_${arch} if [ ! -d ${LIBZMQ_DIR} ] ; then echo -e "${ESCAPE}${GREEN}Downloading zmq for $1 ${ESCAPE}${NC}" - curl -sSLO https://repo.sovrin.org/android/libindy/deps/zmq/libzmq_$1.zip + curl -sSLO https://repo.sovrin.org/android/libindy/deps-libc++/zmq/libzmq_$1.zip unzip -o -qq libzmq_$1.zip rm libzmq_$1.zip else @@ -134,11 +134,7 @@ for target in ${archs[@]}; do arch="arm" fi - if [ ${arch} = "arm" ] || [ ${arch} = "x86" ]; then - TARGET_API=16 - else - TARGET_API=21 - fi + TARGET_API=21 export TOOLCHAIN_DIR=${PWD}/${UNAME}-${arch} ARCH_CROSS=$(get_cross_compile ${arch}) @@ -151,7 +147,7 @@ for target in ${archs[@]}; do if [ ! -d "${TOOLCHAIN_DIR}" ] ; then echo -e "${ESCAPE}${BLUE}Making standalone toolchain for ${target}${ESCAPE}${NC}" - python3 ${ANDROID_NDK_ROOT}/build/tools/make_standalone_toolchain.py --arch ${arch} --stl gnustl --api ${TARGET_API} --install-dir ${TOOLCHAIN_DIR} || exit 1 + python3 ${ANDROID_NDK_ROOT}/build/tools/make_standalone_toolchain.py --arch ${arch} --stl libc++ --api ${TARGET_API} --install-dir ${TOOLCHAIN_DIR} || exit 1 fi cat > indy-sdk/libindy/.cargo/config <