aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTor Arne Vestbø <tor.arne.vestbo@qt.io>2021-08-10 16:36:24 +0200
committerQt Cherry-pick Bot <cherrypick_bot@qt-project.org>2021-08-13 16:55:47 +0000
commit3344530eaabdfeda4129f1d63ec4ea97ade0d94c (patch)
tree32775919cb61e2b4b6ef1f072d045e6c01350467
parentaebf8f743ae8574e57caae765bb5d3127f2690f8 (diff)
Improve OpenSSL provisioning on macOS
- Make the script idempotent - Use local architecture instead of hard-coding x86_64 - Set deployment target to 10.14 - Improve logging by not building with --silent - Don't install manual pages - Allow custom install prefix (for testing) Change-Id: I728a2595987db0568568bbb8ca8117effca73997 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io> Reviewed-by: Tony Sarajärvi <tony.sarajarvi@qt.io> (cherry picked from commit f8fab3be9b2f8baf2d3810bce8a28d48ba1f3518) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
-rwxr-xr-xcoin/provisioning/common/unix/install-openssl.sh25
1 files changed, 16 insertions, 9 deletions
diff --git a/coin/provisioning/common/unix/install-openssl.sh b/coin/provisioning/common/unix/install-openssl.sh
index 65aa3ebd..567d20cb 100755
--- a/coin/provisioning/common/unix/install-openssl.sh
+++ b/coin/provisioning/common/unix/install-openssl.sh
@@ -50,8 +50,8 @@ sha="bad9dc4ae6dcc1855085463099b5dacb0ec6130b"
opensslHome="${HOME}/openssl-${version}"
opensslSource="${opensslHome}-src"
DownloadURL "$cachedUrl" "$officialUrl" "$sha" "$targetFile"
-tar -xzf "$targetFile" -C "$HOME"
-mv "$opensslHome" "$opensslSource"
+mkdir -p "$opensslSource"
+tar -xzf "$targetFile" --strip 1 -C "$opensslSource"
cd "$opensslSource"
pwd
@@ -68,11 +68,17 @@ if [[ "$os" == "linux" ]]; then
elif [ "$os" == "macos" -o "$os" == "macos-universal" ]; then
# Below target location has been hard coded into Coin.
# QTQAINFRA-1195
- openssl_install_dir=/usr/local/openssl-$version
- opensslTargetLocation="/usr/local/opt/openssl"
+ echo "prefix=$prefix"
+ if [[ -z "$prefix" ]]; then
+ prefix="/usr/local"
+ fi
+ openssl_install_dir="$prefix/openssl-$version"
+ opensslTargetLocation="$prefix/opt/openssl"
commonFlags="no-tests shared no-ssl3-method enable-ec_nistp_64_gcc_128 -Wa,--noexecstack"
+ export MACOSX_DEPLOYMENT_TARGET=10.14
+
opensslBuild="${opensslHome}-build"
opensslDestdir="${opensslHome}-destdir"
mkdir -p $opensslBuild
@@ -80,17 +86,17 @@ elif [ "$os" == "macos" -o "$os" == "macos-universal" ]; then
if [ "$os" == "macos-universal" ]; then
archs="x86_64 arm64"
else
- archs="x86_64"
+ archs="$(uname -m)"
fi
for arch in $archs; do
cd $opensslBuild
echo "Configuring OpenSSL for $arch"
- mkdir $arch && cd $arch
+ mkdir -p $arch && cd $arch
$opensslSource/Configure --prefix=$openssl_install_dir $commonFlags darwin64-$arch-cc
- echo "Building OpenSSL for $arch"
- make --silent >> /tmp/openssl_make.log 2>&1
+ echo "Building OpenSSL for $arch in $PWD"
+ make >> /tmp/openssl_make.log 2>&1
echo "Installing OpenSSL for $arch"
if [ "$os" == "macos-universal" ]; then
@@ -99,12 +105,13 @@ elif [ "$os" == "macos" -o "$os" == "macos-universal" ]; then
destdir=""
fi
# shellcheck disable=SC2024
- sudo make --silent install DESTDIR=$destdir >> /tmp/openssl_make_install.log 2>&1
+ sudo make install_sw install_ssldirs DESTDIR=$destdir >> /tmp/openssl_make_install.log 2>&1
done
if [ "$os" == "macos-universal" ]; then
echo "Making universal OpenSSL package"
# shellcheck disable=SC2024
+ sudo rm -Rf "$openssl_install_dir"
sudo ${BASH_SOURCE%/*}/../macos/makeuniversal.sh "$opensslDestdir/x86_64" $opensslDestdir/arm64
fi