From 84c22dbf5fa179fc64e3186186807ede482cfdfd Mon Sep 17 00:00:00 2001 From: Cory McWilliams Date: Wed, 10 Jul 2024 19:25:01 -0400 Subject: [PATCH] Move to OpenSSL as a git submodule. Redundant for platforms where it's not used, but makes fdroid easier. --- .fdroid.yml | 4 ++-- .gitignore | 6 +++++- .gitmodules | 3 +++ GNUmakefile | 3 +++ deps/openssl_src | 1 + tools/ssl-android | 22 +++++----------------- tools/ssl-ios | 19 +++---------------- tools/ssl-mingw64 | 17 +++-------------- 8 files changed, 25 insertions(+), 50 deletions(-) create mode 160000 deps/openssl_src diff --git a/.fdroid.yml b/.fdroid.yml index e0dad243..dd574353 100644 --- a/.fdroid.yml +++ b/.fdroid.yml @@ -19,8 +19,8 @@ Builds: - no build: - mkdir bin/ - - ANDROID_SDK=$$SDK$$ ANDROID_NDK=$$NDK$$ make -C ../../ -j`nproc` out/apk/TildeFriends-arm-release.unsigned.apk + - ANDROID_SDK=$$SDK$$ ANDROID_NDK=$$NDK$$ make -C ../../ -j`nproc` fdroid ndk: 26.3.11579264 -AutoUpdateMode: None +AutoUpdateMode: Version ^v[0-9\.]+$ UpdateCheckMode: Tags diff --git a/.gitignore b/.gitignore index e4bb4fb4..07c897bd 100644 --- a/.gitignore +++ b/.gitignore @@ -1,11 +1,15 @@ +build/ db.* deps/ios_toolchain/ deps/openssl/ dist/ .keys +logs/ **/node_modules out +repo/ +result *.swo *.swp +tmp/ .zsign_cache/ -result diff --git a/.gitmodules b/.gitmodules index d493c179..c7527e40 100644 --- a/.gitmodules +++ b/.gitmodules @@ -19,3 +19,6 @@ [submodule "deps/picohttpparser"] path = deps/picohttpparser url = https://github.com/h2o/picohttpparser.git +[submodule "deps/openssl_src"] + path = deps/openssl_src + url = https://github.com/openssl/openssl.git diff --git a/GNUmakefile b/GNUmakefile index 34d5ec7c..20f082bb 100644 --- a/GNUmakefile +++ b/GNUmakefile @@ -955,3 +955,6 @@ prettier: docs: @doxygen .PHONY: docs + +fdroid: out/apk/TildeFriends-arm-release.unsigned.apk +.PHONE: fdroid diff --git a/deps/openssl_src b/deps/openssl_src new file mode 160000 index 00000000..db2ac4f6 --- /dev/null +++ b/deps/openssl_src @@ -0,0 +1 @@ +Subproject commit db2ac4f6ebd8f3d7b2a60882992fbea1269114e2 diff --git a/tools/ssl-android b/tools/ssl-android index 2d80f6ab..19aa9393 100755 --- a/tools/ssl-android +++ b/tools/ssl-android @@ -11,23 +11,13 @@ BUILD_DIR=out/openssl_android_build BUILD_TARGETS="x86_64 x86 arm64-v8a armeabi-v7a" -rm -rf out/openssl-${OPENSSL_VERSION} +WORK_DIR=out/openssl-${OPENSSL_VERSION}-android +rm -rf $WORK_DIR +cp -arf deps/openssl_src/ $WORK_DIR -if [ ! -d out/openssl-${OPENSSL_VERSION} ] -then - if [ ! -f out/openssl-${OPENSSL_VERSION}.tar.gz ] - then - wget https://www.openssl.org/source/openssl-${OPENSSL_VERSION}.tar.gz -O out/openssl-${OPENSSL_VERSION}.tar.gz | exit 128 - fi - tar -C out/ -xzf out/openssl-${OPENSSL_VERSION}.tar.gz || exit 128 -fi -WORK_DIR=out/openssl-${OPENSSL_VERSION} - -##### export ndk directory. Required by openssl-build-scripts ##### export ANDROID_NDK_ROOT echo ANDROID_NDK_ROOT=$ANDROID_NDK_ROOT -##### build-function ##### build_the_thing() { TOOLCHAIN=$ANDROID_NDK_ROOT/toolchains/llvm/prebuilt/linux-x86_64 export PATH=$TOOLCHAIN/$TRIBLE/bin:$TOOLCHAIN/bin:$PATH @@ -80,14 +70,13 @@ build_the_thing() { -Os -DOPENSSL_SMALL_FOOTPRINT" pwd - echo "./Configure $SSL_TARGET $OPTIONS $GLOBAL_OPTIONS -fuse-ld=$TOOLCHAIN/bin/ld" && \ - ./Configure $SSL_TARGET $OPTIONS $GLOBAL_OPTIONS -fuse-ld=$TOOLCHAIN/bin/ld no-tests && \ + echo "./Configure $SSL_TARGET $OPTIONS $GLOBAL_OPTIONS" && \ + ./Configure $SSL_TARGET $OPTIONS $GLOBAL_OPTIONS && \ make clean && \ make build_generated && \ make libcrypto.a libssl.a || exit 128 } -##### set variables according to build-tagret ##### for build_target in $BUILD_TARGETS do echo "Building $build_target" @@ -128,7 +117,6 @@ do rm -rf $DESTDIR build_the_thing popd -#### copy libraries and includes to output-directory ##### echo WORK_DIR=$WORK_DIR rm -rf deps/openssl/android/$build_target/ mkdir -p deps/openssl/android/$build_target/usr/local/include/ diff --git a/tools/ssl-ios b/tools/ssl-ios index 88883b56..b0a66b35 100755 --- a/tools/ssl-ios +++ b/tools/ssl-ios @@ -8,21 +8,10 @@ BUILD_DIR=out/openssl_ios_build BUILD_TARGETS="ios64-xcrun iossimulator-xcrun" -rm -rfv out/openssl-${OPENSSL_VERSION} +WORK_DIR=out/openssl-${OPENSSL_VERSION}-ios +rm -rf $WORK_DIR +cp -arf deps/openssl_src/ $WORK_DIR -if [ ! -d out/openssl-${OPENSSL_VERSION} ] -then - if [ ! -f out/openssl-${OPENSSL_VERSION}.tar.gz ] - then - curl -L https://www.openssl.org/source/openssl-${OPENSSL_VERSION}.tar.gz -o out/openssl-${OPENSSL_VERSION}.tar.gz || exit 128 - fi - tar -C out/ -xzf out/openssl-${OPENSSL_VERSION}.tar.gz || exit 128 -fi -WORK_DIR=out/openssl-${OPENSSL_VERSION} - -##### export ndk directory. Required by openssl-build-scripts ##### - -##### build-function ##### build_the_thing() { export PATH=$TOOLCHAIN/$TRIBLE/bin:$TOOLCHAIN/bin:$PATH echo $PATH @@ -33,7 +22,6 @@ build_the_thing() { make libcrypto.a libssl.a || exit 128 } -##### set variables according to build-tagret ##### for build_target in $BUILD_TARGETS do echo "Building $build_target" @@ -60,7 +48,6 @@ do rm -rf $DESTDIR build_the_thing popd -#### copy libraries and includes to output-directory ##### echo WORK_DIR=$WORK_DIR rm -rf deps/openssl/ios/$build_target/ mkdir -p deps/openssl/ios/$build_target/usr/local/include/ diff --git a/tools/ssl-mingw64 b/tools/ssl-mingw64 index 3247f53e..c5ce48f5 100755 --- a/tools/ssl-mingw64 +++ b/tools/ssl-mingw64 @@ -8,19 +8,10 @@ BUILD_DIR=out/openssl_mingw64_build BUILD_TARGETS="mingw64" -rm -rfv out/openssl-${OPENSSL_VERSION} +WORK_DIR=out/openssl-${OPENSSL_VERSION}-mingw64 +rm -rf $WORK_DIR +cp -arf deps/openssl_src/ $WORK_DIR -if [ ! -d out/openssl-${OPENSSL_VERSION} ] -then - if [ ! -f out/openssl-${OPENSSL_VERSION}.tar.gz ] - then - wget https://www.openssl.org/source/openssl-${OPENSSL_VERSION}.tar.gz -O out/openssl-${OPENSSL_VERSION}.tar.gz || exit 128 - fi - tar -C out/ -xzf out/openssl-${OPENSSL_VERSION}.tar.gz || exit 128 -fi -WORK_DIR=out/openssl-${OPENSSL_VERSION} - -##### build-function ##### build_the_thing() { export GLOBAL_OPTIONS="no-trace no-asm no-threads no-md2 no-md4 no-dso no-async no-multiblock no-dgram no-filenames no-shared no-ssl3 no-engine no-dynamic-engine no-zlib no-comp no-psk no-idea no-srp no-weak-ssl-ciphers no-dtls no-egd no-tests -Os" echo "./Configure $SSL_TARGET $OPTIONS $GLOBAL_OPTIONS" && \ @@ -30,7 +21,6 @@ build_the_thing() { make libcrypto.a libssl.a || exit 128 } -##### set variables according to build-tagret ##### for build_target in $BUILD_TARGETS do echo "Building $build_target" @@ -47,7 +37,6 @@ do rm -rf $DESTDIR build_the_thing popd -#### copy libraries and includes to output-directory ##### echo WORK_DIR=$WORK_DIR rm -rf deps/openssl/$build_target/ mkdir -p deps/openssl/$build_target/usr/local/include/