diff options
author | Tor Arne Vestbø <tor.arne.vestbo@qt.io> | 2021-08-10 16:36:24 +0200 |
---|---|---|
committer | Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> | 2021-08-13 16:55:47 +0000 |
commit | 3344530eaabdfeda4129f1d63ec4ea97ade0d94c (patch) | |
tree | 32775919cb61e2b4b6ef1f072d045e6c01350467 | |
parent | aebf8f743ae8574e57caae765bb5d3127f2690f8 (diff) | |
download | qt5-3344530eaabdfeda4129f1d63ec4ea97ade0d94c.tar.gz |
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-x | coin/provisioning/common/unix/install-openssl.sh | 25 |
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 |