From df24eed9b41c6549624cd20c96a42bde73063abb Mon Sep 17 00:00:00 2001 From: Assam Boudjelthia Date: Sun, 11 Jun 2023 03:29:28 +0300 Subject: [PATCH] Coin:Android: unify and update OpenSSL provisioning scripts Use the same prebuilt pacakges for all platforms since the prebuilt libs are going to be used for the target and they are not tied to the host. Task-number: QTBUG-110025 Change-Id: I2c79722989902b16883b31cbc6e140855239fcc8 Reviewed-by: Heikki Halmet (cherry picked from commit 4e59702b14cec22e8bead919aaecd7d76dbdcd17) Reviewed-by: Alexey Edelev --- .../common/unix/openssl_3_for_android.sh | 36 +++++++------------ .../common/unix/openssl_for_android.sh | 36 +++++++------------ .../common/windows/android-openssl.ps1 | 24 ++++++------- 3 files changed, 38 insertions(+), 58 deletions(-) diff --git a/coin/provisioning/common/unix/openssl_3_for_android.sh b/coin/provisioning/common/unix/openssl_3_for_android.sh index 30314894..64315cbe 100755 --- a/coin/provisioning/common/unix/openssl_3_for_android.sh +++ b/coin/provisioning/common/unix/openssl_3_for_android.sh @@ -51,10 +51,8 @@ source "${BASH_SOURCE%/*}/../unix/SetEnvVar.sh" version="3.0.7" ndkVersionLatest="r25b" ndkVersionDefault=$ndkVersionLatest -prebuiltOpensslNdkShaDarwinLatest="5cf5ef6c19e62954ccffcd1e31ac1f331028de0d" -prebuiltOpensslNdkShaLinuxLatest="f5e7e840dc1fac2868033ecfc0eeb79742b0daff" -prebuiltOpensslNdkShaDarwinDefault=$prebuiltOpensslNdkShaDarwinLatest -prebuiltOpensslNdkShaLinuxDefault=$prebuiltOpensslNdkShaLinuxLatest +prebuiltOpensslNdkShaLatest="17085b1ef76ba116466213703e38a9d2274ec859" +prebuiltOpensslNdkShaDefault=$prebuiltOpensslNdkShaLatest : ' SOURCE BUILD INSTRUCTIONS - Openssl prebuilt was made using Android NDK 25 # Source built requires GCC and Perl to be in PATH. Rhel "requires yum install perl-IPC-Cmd" @@ -94,30 +92,22 @@ PATH=$TOOLCHAIN:$PATH CC=clang make build_generated function InstallPrebuiltOpenssl() { ndkVersion=$1 - nkdSha=$2 - os=$3 + sha=$2 - if [[ ! -d ${HOME}/openssl_android_ndk_${ndkVersion}/android/openssl-${version} ]]; then - prebuiltUrl="http://ci-files01-hki.intra.qt.io/input/openssl/prebuilt-openssl-${version}-for-android-ndk-${ndkVersion}-${os}.tar.gz" - targetFile="/tmp/prebuilt-openssl-${version}-for-android-ndk-${ndkVersion}-${os}.tar.gz" + opensslHome="${HOME}/prebuilt-openssl-${version}-for-android-ndk-${ndkVersion}" + if [[ ! -d ${opensslHome} ]]; then + prebuiltUrl="http://ci-files01-hki.intra.qt.io/input/openssl/prebuilt-openssl-${version}-for-android-ndk-${ndkVersion}.zip" + targetFile="/tmp/prebuilt-openssl-${version}-for-android-ndk-${ndkVersion}.zip" - DownloadURL "$prebuiltUrl" "$prebuiltUrl" "$nkdSha" "$targetFile" - tar -xzf "$targetFile" -C "${HOME}" - opensslHome="${HOME}/openssl_android_ndk_${ndkVersion}/android/openssl-${version}" + DownloadURL "$prebuiltUrl" "$prebuiltUrl" "$sha" "$targetFile" + unzip -o "$targetFile" -d "${HOME}" sudo rm -f $targetFile fi } -if uname -a |grep -q "Darwin"; then - InstallPrebuiltOpenssl $ndkVersionDefault $prebuiltOpensslNdkShaDarwinDefault "darwin" - SetEnvVar "OPENSSL_ANDROID_HOME_DEFAULT" "$opensslHome" - InstallPrebuiltOpenssl $ndkVersionLatest $prebuiltOpensslNdkShaDarwinLatest "darwin" - SetEnvVar "OPENSSL_ANDROID_HOME_LATEST" "$opensslHome" -else - InstallPrebuiltOpenssl $ndkVersionDefault $prebuiltOpensslNdkShaLinuxDefault "linux" - SetEnvVar "OPENSSL_ANDROID_HOME_DEFAULT" "$opensslHome" - InstallPrebuiltOpenssl $ndkVersionLatest $prebuiltOpensslNdkShaLinuxLatest "linux" - SetEnvVar "OPENSSL_ANDROID_HOME_LATEST" "$opensslHome" -fi +InstallPrebuiltOpenssl $ndkVersionDefault $prebuiltOpensslNdkShaDefault +SetEnvVar "OPENSSL_ANDROID_HOME_DEFAULT" "$opensslHome" +InstallPrebuiltOpenssl $ndkVersionLatest $prebuiltOpensslNdkShaLatest +SetEnvVar "OPENSSL_ANDROID_HOME_LATEST" "$opensslHome" echo "OpenSSL for Android = $version" >> ~/versions.txt diff --git a/coin/provisioning/common/unix/openssl_for_android.sh b/coin/provisioning/common/unix/openssl_for_android.sh index 30314894..64315cbe 100755 --- a/coin/provisioning/common/unix/openssl_for_android.sh +++ b/coin/provisioning/common/unix/openssl_for_android.sh @@ -51,10 +51,8 @@ source "${BASH_SOURCE%/*}/../unix/SetEnvVar.sh" version="3.0.7" ndkVersionLatest="r25b" ndkVersionDefault=$ndkVersionLatest -prebuiltOpensslNdkShaDarwinLatest="5cf5ef6c19e62954ccffcd1e31ac1f331028de0d" -prebuiltOpensslNdkShaLinuxLatest="f5e7e840dc1fac2868033ecfc0eeb79742b0daff" -prebuiltOpensslNdkShaDarwinDefault=$prebuiltOpensslNdkShaDarwinLatest -prebuiltOpensslNdkShaLinuxDefault=$prebuiltOpensslNdkShaLinuxLatest +prebuiltOpensslNdkShaLatest="17085b1ef76ba116466213703e38a9d2274ec859" +prebuiltOpensslNdkShaDefault=$prebuiltOpensslNdkShaLatest : ' SOURCE BUILD INSTRUCTIONS - Openssl prebuilt was made using Android NDK 25 # Source built requires GCC and Perl to be in PATH. Rhel "requires yum install perl-IPC-Cmd" @@ -94,30 +92,22 @@ PATH=$TOOLCHAIN:$PATH CC=clang make build_generated function InstallPrebuiltOpenssl() { ndkVersion=$1 - nkdSha=$2 - os=$3 + sha=$2 - if [[ ! -d ${HOME}/openssl_android_ndk_${ndkVersion}/android/openssl-${version} ]]; then - prebuiltUrl="http://ci-files01-hki.intra.qt.io/input/openssl/prebuilt-openssl-${version}-for-android-ndk-${ndkVersion}-${os}.tar.gz" - targetFile="/tmp/prebuilt-openssl-${version}-for-android-ndk-${ndkVersion}-${os}.tar.gz" + opensslHome="${HOME}/prebuilt-openssl-${version}-for-android-ndk-${ndkVersion}" + if [[ ! -d ${opensslHome} ]]; then + prebuiltUrl="http://ci-files01-hki.intra.qt.io/input/openssl/prebuilt-openssl-${version}-for-android-ndk-${ndkVersion}.zip" + targetFile="/tmp/prebuilt-openssl-${version}-for-android-ndk-${ndkVersion}.zip" - DownloadURL "$prebuiltUrl" "$prebuiltUrl" "$nkdSha" "$targetFile" - tar -xzf "$targetFile" -C "${HOME}" - opensslHome="${HOME}/openssl_android_ndk_${ndkVersion}/android/openssl-${version}" + DownloadURL "$prebuiltUrl" "$prebuiltUrl" "$sha" "$targetFile" + unzip -o "$targetFile" -d "${HOME}" sudo rm -f $targetFile fi } -if uname -a |grep -q "Darwin"; then - InstallPrebuiltOpenssl $ndkVersionDefault $prebuiltOpensslNdkShaDarwinDefault "darwin" - SetEnvVar "OPENSSL_ANDROID_HOME_DEFAULT" "$opensslHome" - InstallPrebuiltOpenssl $ndkVersionLatest $prebuiltOpensslNdkShaDarwinLatest "darwin" - SetEnvVar "OPENSSL_ANDROID_HOME_LATEST" "$opensslHome" -else - InstallPrebuiltOpenssl $ndkVersionDefault $prebuiltOpensslNdkShaLinuxDefault "linux" - SetEnvVar "OPENSSL_ANDROID_HOME_DEFAULT" "$opensslHome" - InstallPrebuiltOpenssl $ndkVersionLatest $prebuiltOpensslNdkShaLinuxLatest "linux" - SetEnvVar "OPENSSL_ANDROID_HOME_LATEST" "$opensslHome" -fi +InstallPrebuiltOpenssl $ndkVersionDefault $prebuiltOpensslNdkShaDefault +SetEnvVar "OPENSSL_ANDROID_HOME_DEFAULT" "$opensslHome" +InstallPrebuiltOpenssl $ndkVersionLatest $prebuiltOpensslNdkShaLatest +SetEnvVar "OPENSSL_ANDROID_HOME_LATEST" "$opensslHome" echo "OpenSSL for Android = $version" >> ~/versions.txt diff --git a/coin/provisioning/common/windows/android-openssl.ps1 b/coin/provisioning/common/windows/android-openssl.ps1 index ecfa4e7c..2432c297 100644 --- a/coin/provisioning/common/windows/android-openssl.ps1 +++ b/coin/provisioning/common/windows/android-openssl.ps1 @@ -56,9 +56,9 @@ $ndk_version_latest = "r25b" $ndk_version_default = "$ndk_version_latest" $openssl_compressed = Get-DownloadLocation ("openssl-${openssl_version}.tar.gz") $openssl_sha1 = "f20736d6aae36bcbfa9aba0d358c71601833bf27" -$prebuilt_sha1_ndk_latest = "d4348812054a88b5b672a8ceae62bf30c564869b" +$prebuilt_sha1_ndk_latest = "17085b1ef76ba116466213703e38a9d2274ec859" $prebuilt_sha1_ndk_default = "$prebuilt_sha1_ndk_latest" -$destination = "C:\Utils\openssl-android-master" +$destination_prefix = "C:\Utils\prebuilt-openssl-${openssl_version}-for-android-ndk" function Install($1, $2) { $ndk_version = $1 @@ -69,15 +69,15 @@ function Install($1, $2) { $ndk_path = "/c/Utils/Android/android-ndk-${ndk_version}" $cc_path = "$ndk_path/toolchains/llvm/prebuilt/windows-x86_64/bin" - $prebuilt_url_ndk = "\\ci-files01-hki.intra.qt.io\provisioning\openssl\prebuilt-openssl-${openssl_version}-for-android-used-ndk-${ndk_version}-windows.zip" - $prebuilt_zip_ndk = Get-DownloadLocation ("prebuilt-openssl-${openssl_version}-for-android-used-ndk-${ndk_version}-windows.zip") + $prebuilt_url_openssl = "\\ci-files01-hki.intra.qt.io\provisioning\openssl\prebuilt-openssl-${openssl_version}-for-android-ndk-${ndk_version}.zip" + $prebuilt_zip_openssl = Get-DownloadLocation ("prebuilt-openssl-${openssl_version}-for-android-ndk-${ndk_version}.zip") - if ((Test-Path $prebuilt_url_ndk)) { + if ((Test-Path $prebuilt_url_openssl)) { Write-Host "Install prebuilt OpenSSL for Android" - Download $prebuilt_url_ndk $prebuilt_url_ndk $prebuilt_zip_ndk - Verify-Checksum $prebuilt_zip_ndk $prebuilt_sha1 - Extract-7Zip $prebuilt_zip_ndk C:\Utils - Remove $prebuilt_zip_ndk + Download $prebuilt_url_openssl $prebuilt_url_openssl $prebuilt_zip_openssl + Verify-Checksum $prebuilt_zip_openssl $prebuilt_sha1 + Extract-7Zip $prebuilt_zip_openssl C:\Utils + Remove $prebuilt_zip_openssl } else { Write-Host "Build OpenSSL for Android from sources" # openssl-${openssl_version}_fixes-ndk_root.tar.gz package includes fixes from https://github.com/openssl/openssl/pull/17322 and string ANDROID_NDK_HOME is replaced with ANDROID_NDK_ROOT in Configurations/15-android.conf @@ -126,13 +126,13 @@ function Install($1, $2) { # Install NDK Default version Install $ndk_version_default $prebuilt_sha1_ndk_default -if (Test-Path -Path ${destination}-${ndk_version_latest}) { +if (Test-Path -Path ${destination_prefix}-${ndk_version_latest}) { Write-Host "OpenSSL for Android Latest version is the same than Default. Installation done." } else { # Install NDK Latest version Install $ndk_version_latest $prebuilt_sha1_ndk_latest } -Set-EnvironmentVariable "OPENSSL_ANDROID_HOME_DEFAULT" "${destination}-${ndk_version_default}" -Set-EnvironmentVariable "OPENSSL_ANDROID_HOME_LATEST" "${destination}-${ndk_version_latest}" +Set-EnvironmentVariable "OPENSSL_ANDROID_HOME_DEFAULT" "${destination_prefix}-${ndk_version_default}" +Set-EnvironmentVariable "OPENSSL_ANDROID_HOME_LATEST" "${destination_prefix}-${ndk_version_latest}" Write-Output "Android OpenSSL = $openssl_version" >> ~/versions.txt