diff --git a/dropshell-tool/build.sh b/dropshell-tool/build.sh index b8ded60..b93804b 100755 --- a/dropshell-tool/build.sh +++ b/dropshell-tool/build.sh @@ -14,7 +14,7 @@ if [ ! -f "${DROPSHELL_BUILD_DIR}" ]; then fi -#/bin/bash "${SCRIPT_DIR}/build_openssl.sh" +"${SCRIPT_DIR}/build_openssl.sh" # run the build script diff --git a/dropshell-tool/build_openssl.sh b/dropshell-tool/build_openssl.sh index ab96cbe..9253eb9 100755 --- a/dropshell-tool/build_openssl.sh +++ b/dropshell-tool/build_openssl.sh @@ -1,13 +1,19 @@ #!/bin/bash set -e -OPENSSL_VERSION=3.5.1 +OPENSSL_VERSION=3.5.0 SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" BUILD_DIR="${SCRIPT_DIR}/build" MUSL_CROSS_DIR="$HOME/.musl-cross" mkdir -p "$BUILD_DIR" +# Helper: compare versions (returns 0 if $1 >= $2) +version_ge() { + [ "$1" = "$2" ] && return 0 + [ "$(printf '%s\n' "$1" "$2" | sort -V | head -n1)" = "$2" ] +} + # Find all installed musl toolchains TOOLCHAINS=() for tc in "$MUSL_CROSS_DIR"/*-linux-musl-cross; do @@ -43,8 +49,29 @@ for ARCH in "${TOOLCHAINS[@]}"; do AR="$MUSL_PREFIX/bin/${ARCH}-linux-musl-ar" RANLIB="$MUSL_PREFIX/bin/${ARCH}-linux-musl-ranlib" + SKIP_BUILD=0 if [ -f "$SYSROOT/usr/lib/libssl.a" ]; then - echo "libssl.a already exists for $ARCH at $SYSROOT/usr/lib/libssl.a, skipping build." + # Try to extract version from opensslv.h + OPENSSLV_H="$SYSROOT/usr/include/openssl/opensslv.h" + if [ -f "$OPENSSLV_H" ]; then + INSTALLED_VERSION=$(grep '# *define *OPENSSL_VERSION_TEXT' "$OPENSSLV_H" | sed -E 's/.*OpenSSL ([0-9.]+)[^ ]*.*/\1/') + if [ -n "$INSTALLED_VERSION" ]; then + echo "Found installed OpenSSL version: $INSTALLED_VERSION" + if version_ge "$INSTALLED_VERSION" "$OPENSSL_VERSION"; then + echo "OpenSSL $INSTALLED_VERSION is up-to-date (>= $OPENSSL_VERSION), skipping build for $ARCH." + SKIP_BUILD=1 + else + echo "OpenSSL $INSTALLED_VERSION is older than $OPENSSL_VERSION, will rebuild." + fi + else + echo "Could not determine installed OpenSSL version, will rebuild." + fi + else + echo "No opensslv.h found, will rebuild." + fi + fi + + if [ "$SKIP_BUILD" -eq 1 ]; then echo continue fi diff --git a/dropshell-tool/src/GetbinClient.cpp b/dropshell-tool/src/GetbinClient.cpp index d1e5ea8..310fa53 100644 --- a/dropshell-tool/src/GetbinClient.cpp +++ b/dropshell-tool/src/GetbinClient.cpp @@ -1,4 +1,7 @@ +#ifndef CPPHTTPLIB_OPENSSL_SUPPORT #define CPPHTTPLIB_OPENSSL_SUPPORT +#endif + #include "GetbinClient.hpp" #include "httplib.hpp" #include