diff --git a/assets/AppleTV/Info.plist b/assets/AppleTV/Info.plist index bb6bd7a..0cd9882 100755 --- a/assets/AppleTV/Info.plist +++ b/assets/AppleTV/Info.plist @@ -15,7 +15,7 @@ CFBundlePackageType FMWK CFBundleShortVersionString - 1.0 + $(OPENSSL_VERSION) CFBundleVersion 1 MinimumOSVersion diff --git a/assets/MacOSX/Info.plist b/assets/MacOSX/Info.plist index bb6bd7a..0cd9882 100755 --- a/assets/MacOSX/Info.plist +++ b/assets/MacOSX/Info.plist @@ -15,7 +15,7 @@ CFBundlePackageType FMWK CFBundleShortVersionString - 1.0 + $(OPENSSL_VERSION) CFBundleVersion 1 MinimumOSVersion diff --git a/assets/WatchOS/Info.plist b/assets/WatchOS/Info.plist index bb6bd7a..0cd9882 100755 --- a/assets/WatchOS/Info.plist +++ b/assets/WatchOS/Info.plist @@ -15,7 +15,7 @@ CFBundlePackageType FMWK CFBundleShortVersionString - 1.0 + $(OPENSSL_VERSION) CFBundleVersion 1 MinimumOSVersion diff --git a/assets/iPhone/Info.plist b/assets/iPhone/Info.plist index bb6bd7a..0cd9882 100755 --- a/assets/iPhone/Info.plist +++ b/assets/iPhone/Info.plist @@ -15,7 +15,7 @@ CFBundlePackageType FMWK CFBundleShortVersionString - 1.0 + $(OPENSSL_VERSION) CFBundleVersion 1 MinimumOSVersion diff --git a/create-openssl-framework.sh b/create-openssl-framework.sh index 0fafd9f..35c63ee 100755 --- a/create-openssl-framework.sh +++ b/create-openssl-framework.sh @@ -78,6 +78,24 @@ function get_min_sdk() { set -o pipefail } +# Read OpenSSL version from opensslv.h file. +# +# In modern OpenSSL releases the version line looks like this: +# +# # define OPENSSL_VERSION_TEXT "OpenSSL 1.1.1g 21 Apr 2020" +# +# But for older versions with FIPS module it may look like this: +# +# # ifdef OPENSSL_FIPS +# # define OPENSSL_VERSION_TEXT "OpenSSL 1.0.2u-fips 20 Dec 2019" +# # else +# # define OPENSSL_VERSION_TEXT "OpenSSL 1.0.2u 20 Dec 2019" +# # endif +function get_openssl_version() { + local opensslv=$1 + awk '/define OPENSSL_VERSION_TEXT/ && !/-fips/ {print $5}' "$opensslv" +} + if [ $FWTYPE == "dynamic" ]; then DEVELOPER=`xcode-select -print-path` FW_EXEC_NAME="${FWNAME}.framework/${FWNAME}" @@ -158,7 +176,9 @@ if [ $FWTYPE == "dynamic" ]; then cp -r include/$FWNAME/* $FWDIR/Headers/ cp -L assets/$SYS/Info.plist $FWDIR/Info.plist MIN_SDK_VERSION=$(get_min_sdk "$FWDIR/$FWNAME") + OPENSSL_VERSION=$(get_openssl_version "$FWDIR/Headers/opensslv.h") sed -e "s/\\\$(MIN_SDK_VERSION)/$MIN_SDK_VERSION/g" \ + -e "s/\\\$(OPENSSL_VERSION)/$OPENSSL_VERSION/g" \ -i '' "$FWDIR/Info.plist" echo "Created $FWDIR" check_bitcode $FWDIR @@ -180,7 +200,9 @@ else cp -r include/$FWNAME/* $FWDIR/Headers/ cp -L assets/$SYS/Info.plist $FWDIR/Info.plist MIN_SDK_VERSION=$(get_min_sdk "$FWDIR/$FWNAME") + OPENSSL_VERSION=$(get_openssl_version "$FWDIR/Headers/opensslv.h") sed -e "s/\\\$(MIN_SDK_VERSION)/$MIN_SDK_VERSION/g" \ + -e "s/\\\$(OPENSSL_VERSION)/$OPENSSL_VERSION/g" \ -i '' "$FWDIR/Info.plist" echo "Created $FWDIR" check_bitcode $FWDIR