Provisioning: Use prebuilt Android openssl if available

Android openssl configuration is flaky. Some cases it can't find perl.
Let's use prebuilt package from local cache. If not available then
download sources and configure it.

Task-number: QTQAINFRA-3993
Change-Id: I4b15cba763d88d85dfe7908fa22c2ce5f461f5cc
Reviewed-by: Tony Sarajärvi <tony.sarajarvi@qt.io>
(cherry picked from commit 25dbd78d3f)
Reviewed-by: Simo Fält <simo.falt@qt.io>
This commit is contained in:
Heikki Halmet
2021-01-15 09:16:56 +02:00
parent 2874c51d2d
commit efdd6f944b

View File

@@ -1,6 +1,6 @@
############################################################################ ############################################################################
## ##
## Copyright (C) 2020 The Qt Company Ltd. ## Copyright (C) 2021 The Qt Company Ltd.
## Contact: http://www.qt.io/licensing/ ## Contact: http://www.qt.io/licensing/
## ##
## This file is part of the provisioning scripts of the Qt Toolkit. ## This file is part of the provisioning scripts of the Qt Toolkit.
@@ -47,45 +47,55 @@ if (Is64BitWinHost) {
$version = "1.1.1g" $version = "1.1.1g"
$zip = Get-DownloadLocation ("openssl-$version.tar.gz") $zip = Get-DownloadLocation ("openssl-$version.tar.gz")
$prebuilt_zip = Get-DownloadLocation ("openssl-android-master-$version.zip")
$sha1 = "b213a293f2127ec3e323fb3cfc0c9807664fd997" $sha1 = "b213a293f2127ec3e323fb3cfc0c9807664fd997"
$prebuilt_sha1 = "d799f54e402c00eaa2633d54df1e8295bfac3d7b"
$destination = "C:\Utils\openssl-android-master" $destination = "C:\Utils\openssl-android-master"
$prebuilt_url = "\\ci-files01-hki.intra.qt.io\provisioning\openssl\openssl-android-master-$version.zip"
# msys unix style paths # msys unix style paths
$ndkPath = "/c/Utils/Android/android-ndk-r21d" $ndkPath = "/c/Utils/Android/android-ndk-r21d"
$openssl_path = "/c/Utils/openssl-android-master" $openssl_path = "/c/Utils/openssl-android-master"
$cc_path = "$ndkPath/toolchains/llvm/prebuilt/windows-x86_64/bin" $cc_path = "$ndkPath/toolchains/llvm/prebuilt/windows-x86_64/bin"
Download https://www.openssl.org/source/openssl-$version.tar.gz \\ci-files01-hki.intra.qt.io\provisioning\openssl\openssl-$version.tar.gz $zip if ((Test-Path $prebuilt_url)) {
Verify-Checksum $zip $sha1 Download $prebuilt_url $prebuilt_url $prebuilt_zip
Verify-Checksum $prebuilt_zip $prebuilt_sha1
Extract-7Zip $prebuilt_zip C:\Utils
Remove $prebuilt_zip
} else {
Download https://www.openssl.org/source/openssl-$version.tar.gz \\ci-files01-hki.intra.qt.io\provisioning\openssl\openssl-$version.tar.gz $zip
Verify-Checksum $zip $sha1
Extract-7Zip $zip C:\Utils\tmp Extract-7Zip $zip C:\Utils\tmp
Extract-7Zip C:\Utils\tmp\openssl-$version.tar C:\Utils\tmp Extract-7Zip C:\Utils\tmp\openssl-$version.tar C:\Utils\tmp
Move-Item C:\Utils\tmp\openssl-${version} $destination Move-Item C:\Utils\tmp\openssl-${version} $destination
Remove-Item -Path $zip Remove "$zip"
Write-Host "Configuring OpenSSL $version for Android..." Write-Host "Configuring OpenSSL $version for Android..."
Push-Location $destination Push-Location $destination
# $ must be escaped in powershell... # $ must be escaped in powershell...
function CheckExitCode { function CheckExitCode {
param ( param (
$p $p
) )
if ($p.ExitCode) { if ($p.ExitCode) {
Write-host "Process failed with exit code: $($p.ExitCode)" Write-host "Process failed with exit code: $($p.ExitCode)"
exit 1 exit 1
}
} }
$configure = Start-Process -NoNewWindow -Wait -PassThru -ErrorAction Stop -FilePath "$msys_bash" -ArgumentList ("-lc", "`"pushd $openssl_path; ANDROID_NDK_HOME=$ndkPath PATH=${cc_path}:`$PATH CC=clang $openssl_path/Configure shared android-arm`"")
CheckExitCode $configure
$make = Start-Process -NoNewWindow -Wait -PassThru -ErrorAction Stop -FilePath "$msys_bash" -ArgumentList ("-lc", "`"pushd $openssl_path; ANDROID_NDK_HOME=$ndkPath PATH=${cc_path}:`$PATH CC=clang make -f $openssl_path/Makefile build_generated`"")
CheckExitCode $make
Pop-Location
Remove-item C:\Utils\tmp -Recurse -Confirm:$false
} }
$configure = Start-Process -NoNewWindow -Wait -PassThru -ErrorAction Stop -FilePath "$msys_bash" -ArgumentList ("-lc", "`"pushd $openssl_path; ANDROID_NDK_HOME=$ndkPath PATH=${cc_path}:`$PATH CC=clang $openssl_path/Configure shared android-arm`"")
CheckExitCode $configure
$make = Start-Process -NoNewWindow -Wait -PassThru -ErrorAction Stop -FilePath "$msys_bash" -ArgumentList ("-lc", "`"pushd $openssl_path; ANDROID_NDK_HOME=$ndkPath PATH=${cc_path}:`$PATH CC=clang make -f $openssl_path/Makefile build_generated`"")
CheckExitCode $make
Pop-Location
Set-EnvironmentVariable "OPENSSL_ANDROID_HOME" "$destination" Set-EnvironmentVariable "OPENSSL_ANDROID_HOME" "$destination"
Remove-item C:\Utils\tmp -Recurse -Confirm:$false
Write-Output "Android OpenSSL = $version" >> ~/versions.txt Write-Output "Android OpenSSL = $version" >> ~/versions.txt