diff options
Diffstat (limited to 'coin/provisioning/common')
15 files changed, 87 insertions, 110 deletions
diff --git a/coin/provisioning/common/linux/cmake_linux.sh b/coin/provisioning/common/linux/cmake_linux.sh index 2b8d71d0..a3b2a9cc 100755 --- a/coin/provisioning/common/linux/cmake_linux.sh +++ b/coin/provisioning/common/linux/cmake_linux.sh @@ -33,7 +33,7 @@ ## ############################################################################# -# This script installs CMake 3.6.2 +# This script installs CMake 3.7.2 # CMake is needed for autotests that verify that Qt can be built with CMake @@ -42,10 +42,10 @@ source "${BASH_SOURCE%/*}/../unix/InstallFromCompressedFileFromURL.sh" # shellcheck source=../unix/SetEnvVar.sh source "${BASH_SOURCE%/*}/../unix/SetEnvVar.sh" -version="3.6.2" -PrimaryUrl="http://ci-files01-hki.intra.qt.io/input/cmake/cmake-3.6.2-Linux-x86_64.tar.gz" -AltUrl="https://cmake.org/files/v3.6/cmake-3.6.2-Linux-x86_64.tar.gz" -SHA1="dd9d8d57b66109d4bac6eef9209beb94608a185c" +version="3.7.2" +PrimaryUrl="http://ci-files01-hki.intra.qt.io/input/cmake/cmake-3.7.2-Linux-x86_64.tar.gz" +AltUrl="https://cmake.org/files/v3.7/cmake-3.7.2-Linux-x86_64.tar.gz" +SHA1="915bc981aab354821fb9fd28374a720fdb3aa180" targetFolder="/opt/cmake-$version" appPrefix="cmake-$version-Linux-x86_64" diff --git a/coin/provisioning/common/linux/openssl_for_android_linux.sh b/coin/provisioning/common/linux/openssl_for_android_linux.sh index d833975f..4860c01f 100755 --- a/coin/provisioning/common/linux/openssl_for_android_linux.sh +++ b/coin/provisioning/common/linux/openssl_for_android_linux.sh @@ -53,11 +53,11 @@ else rm -rf "$exports_file" fi -version="1.1.1b" +version="1.1.1d" officialUrl="https://www.openssl.org/source/openssl-$version.tar.gz" cachedUrl="http://ci-files01-hki.intra.qt.io/input/openssl/openssl-$version.tar.gz" targetFile="/tmp/openssl-$version.tar.gz" -sha="e9710abf5e95c48ebf47991b10cbb48c09dae102" +sha="056057782325134b76d1931c48f2c7e6595d7ef4" opensslHome="${HOME}/openssl/android/openssl-${version}" DownloadURL "$cachedUrl" "$officialUrl" "$sha" "$targetFile" mkdir -p "${HOME}/openssl/android/" diff --git a/coin/provisioning/common/linux/remove-update_notifier.sh b/coin/provisioning/common/linux/remove-update_notifier.sh index 152d7fa8..4ee32d61 100755 --- a/coin/provisioning/common/linux/remove-update_notifier.sh +++ b/coin/provisioning/common/linux/remove-update_notifier.sh @@ -1,3 +1,3 @@ #!/usr/bin/env bash -sudo apt -q -y remove update-notifier update-manager +sudo apt -q -y remove update-notifier update-manager python3-distupgrade python3-update-manager ubuntu-release-upgrader-core update-manager-core diff --git a/coin/provisioning/common/macos/install-commandlinetools.sh b/coin/provisioning/common/macos/install-commandlinetools.sh index b9f81534..cd7838b6 100755 --- a/coin/provisioning/common/macos/install-commandlinetools.sh +++ b/coin/provisioning/common/macos/install-commandlinetools.sh @@ -50,7 +50,7 @@ function InstallCommandLineTools { hdiutil attach "/tmp/$packageName" cd "/Volumes/Command Line Developer Tools" echo "Installing" - sudo installer -pkg ./*.pkg -target / + sudo installer -pkg ./*.pkg -target / -allowUntrusted cd / # Let's fait for 5 second before unmounting. Sometimes resource is busy and cant be unmounted sleep 3 diff --git a/coin/provisioning/common/macos/install_openssl_111a.sh b/coin/provisioning/common/macos/install_openssl_111a.sh deleted file mode 100755 index cd6cd9e8..00000000 --- a/coin/provisioning/common/macos/install_openssl_111a.sh +++ /dev/null @@ -1,78 +0,0 @@ -#!/usr/bin/env bash - -############################################################################# -## -## Copyright (C) 2019 The Qt Company Ltd. -## Contact: http://www.qt.io/licensing/ -## -## This file is part of the provisioning scripts of the Qt Toolkit. -## -## $QT_BEGIN_LICENSE:LGPL21$ -## Commercial License Usage -## Licensees holding valid commercial Qt licenses may use this file in -## accordance with the commercial license agreement provided with the -## Software or, alternatively, in accordance with the terms contained in -## a written agreement between you and The Qt Company. For licensing terms -## and conditions see http://www.qt.io/terms-conditions. For further -## information use the contact form at http://www.qt.io/contact-us. -## -## GNU Lesser General Public License Usage -## Alternatively, this file may be used under the terms of the GNU Lesser -## General Public License version 2.1 or version 3 as published by the Free -## Software Foundation and appearing in the file LICENSE.LGPLv21 and -## LICENSE.LGPLv3 included in the packaging of this file. Please review the -## following information to ensure the GNU Lesser General Public License -## requirements will be met: https://www.gnu.org/licenses/lgpl.html and -## http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -## -## As a special exception, The Qt Company gives you certain additional -## rights. These rights are described in The Qt Company LGPL Exception -## version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -## -## $QT_END_LICENSE$ -## -############################################################################# - -# This script install OpenSSL - -set -ex - -# shellcheck source=../unix/InstallFromCompressedFileFromURL.sh -source "${BASH_SOURCE%/*}/../unix/InstallFromCompressedFileFromURL.sh" -# shellcheck source=../unix/SetEnvVar.sh -source "${BASH_SOURCE%/*}/../unix/SetEnvVar.sh" - -opensslVersion="1.1.1a" -opensslFile="openssl-$opensslVersion.tar.gz" -opensslDlUrl="http://ci-files01-hki.intra.qt.io/input/openssl/$opensslFile" -opensslAltDlUrl="https://www.openssl.org/source/$opensslFile" -opensslSha1="8fae27b4f34445a5500c9dc50ae66b4d6472ce29" - -# Below target location has been hard coded into Coin. -# QTQAINFRA-1195 -openssl_install_dir=/usr/local/openssl-$opensslVersion -opensslTargetLocation="/usr/local/opt/openssl" - -InstallFromCompressedFileFromURL "$opensslDlUrl" "$opensslAltDlUrl" "$opensslSha1" "/tmp/openssl-$opensslVersion" "openssl-$opensslVersion" -cd "/tmp/openssl-$opensslVersion" -sudo ./Configure --prefix=$openssl_install_dir shared no-ssl3-method enable-ec_nistp_64_gcc_128 darwin64-x86_64-cc "-Wa,--noexecstack" - -sudo make install_sw install_ssldirs - -path=$(echo "$opensslTargetLocation" | sed -E 's/(.*)\/.*$/\1/') -sudo mkdir -p "$path" -sudo ln -s $openssl_install_dir $opensslTargetLocation - -SetEnvVar "PATH" "\"$opensslTargetLocation/bin:\$PATH\"" -SetEnvVar "MANPATH" "\"$opensslTargetLocation/share/man:\$MANPATH\"" - -SetEnvVar "OPENSSL_DIR" "\"$openssl_install_dir\"" -SetEnvVar "OPENSSL_INCLUDE" "\"$openssl_install_dir/include\"" -SetEnvVar "OPENSSL_LIB" "\"$openssl_install_dir/lib\"" - -security find-certificate -a -p /Library/Keychains/System.keychain | sudo tee -a $opensslTargetLocation/ssl/cert.pem > /dev/null -security find-certificate -a -p /System/Library/Keychains/SystemRootCertificates.keychain | sudo tee -a $opensslTargetLocation/ssl/cert.pem > /dev/null - -sudo rm -rf /tmp/openssl-$opensslVersion - -echo "OpenSSL = $opensslVersion" >> ~/versions.txt diff --git a/coin/provisioning/common/unix/DownloadURL.sh b/coin/provisioning/common/unix/DownloadURL.sh index 0579451f..ac1fd971 100755 --- a/coin/provisioning/common/unix/DownloadURL.sh +++ b/coin/provisioning/common/unix/DownloadURL.sh @@ -99,9 +99,9 @@ DownloadURL () { if ! Download "$url" "$targetFile" then echo "FAIL! to download, trying alternative URL: $url2" 1>&2 - if ! Download "$url" "$targetFile" + if ! Download "$url2" "$targetFile" then - echo 'FAIL! to download even from alternative url' 1>&2 + echo 'FAIL! to download even from alternative URL' 1>&2 return 1 fi fi diff --git a/coin/provisioning/common/unix/common.sourced.sh b/coin/provisioning/common/unix/common.sourced.sh index a52880b2..aca5dd04 100644 --- a/coin/provisioning/common/unix/common.sourced.sh +++ b/coin/provisioning/common/unix/common.sourced.sh @@ -65,8 +65,10 @@ fatal () { fi } +# Takes one argument which should be the filename of this script. Returns true +# if the script is being sourced, false if the script is being executed. is_script_executed () { - [ x"$(basename "$0")" = x"$1" ] + [ x"$(basename $(echo "$0" | sed s/^-//))" = x"$1" ] } @@ -74,6 +76,25 @@ is_script_executed common.sourced.sh \ && fatal "Script common.sourced.sh should always be sourced, not executed" +_detect_linux_OS_ID () { + if [ -f /etc/os-release ] + then + . /etc/os-release + PROVISIONING_OS_ID="$ID" + elif [ -f /etc/redhat-release ] + then + case "$(cat /etc/redhat-release)" in + "Red Hat Enterprise Linux"*) + PROVISIONING_OS_ID="rhel" + ;; + "CentOS Linux"*) + PROVISIONING_OS_ID="centos" + ;; + *) fatal "Unknown string in /etc/redhat-release" ;; + esac + fi +} + set_common_environment () { # Unfortunately we can't find the provisioning directory from a sourced # script in a portable way @@ -86,8 +107,7 @@ set_common_environment () { case "$uname_s" in Linux) PROVISIONING_OS=linux - . /etc/os-release - PROVISIONING_OS_ID="$ID" + _detect_linux_OS_ID case "$PROVISIONING_OS_ID" in suse|sles|opensuse*) CMD_PKG_INSTALL="sudo zypper -nq install" diff --git a/coin/provisioning/common/unix/install-openssl.sh b/coin/provisioning/common/unix/install-openssl.sh index 01a20935..08a3390b 100755 --- a/coin/provisioning/common/unix/install-openssl.sh +++ b/coin/provisioning/common/unix/install-openssl.sh @@ -42,11 +42,11 @@ source "${BASH_SOURCE%/*}/../unix/DownloadURL.sh" # shellcheck source=../unix/SetEnvVar.sh source "${BASH_SOURCE%/*}/../unix/SetEnvVar.sh" -version="1.1.1b" +version="1.1.1d" officialUrl="https://www.openssl.org/source/openssl-$version.tar.gz" cachedUrl="http://ci-files01-hki.intra.qt.io/input/openssl/openssl-$version.tar.gz" targetFile="/tmp/openssl-$version.tar.gz" -sha="e9710abf5e95c48ebf47991b10cbb48c09dae102" +sha="056057782325134b76d1931c48f2c7e6595d7ef4" opensslHome="${HOME}/openssl-${version}" opensslSource="${opensslHome}-src" DownloadURL "$cachedUrl" "$officialUrl" "$sha" "$targetFile" diff --git a/coin/provisioning/common/windows/android-openssl.ps1 b/coin/provisioning/common/windows/android-openssl.ps1 index fb5c5aab..d1877b64 100644 --- a/coin/provisioning/common/windows/android-openssl.ps1 +++ b/coin/provisioning/common/windows/android-openssl.ps1 @@ -1,6 +1,6 @@ ############################################################################ ## -## Copyright (C) 2018 The Qt Company Ltd. +## Copyright (C) 2019 The Qt Company Ltd. ## Contact: http://www.qt.io/licensing/ ## ## This file is part of the provisioning scripts of the Qt Toolkit. @@ -45,9 +45,9 @@ if (Is64BitWinHost) { # Msys need to be installed to target machine # More info and building instructions can be found from http://doc.qt.io/qt-5/opensslsupport.html -$version = "1.1.1b" +$version = "1.1.1d" $zip = Get-DownloadLocation ("openssl-$version.tar.gz") -$sha1 = "e9710abf5e95c48ebf47991b10cbb48c09dae102" +$sha1 = "056057782325134b76d1931c48f2c7e6595d7ef4" $destination = "C:\Utils\openssl-android-master" # msys unix style paths @@ -65,8 +65,25 @@ Remove-Item -Path $zip Write-Host "Configuring OpenSSL $version for Android..." Push-Location $destination # $ must be escaped in powershell... -Start-Process -NoNewWindow -Wait -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`"") -Start-Process -NoNewWindow -Wait -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`"") + +function CheckExitCode { + + param ( + $p + ) + + if ($p.ExitCode) { + Write-host "Process failed with exit code: $($p.ExitCode)" + 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 Set-EnvironmentVariable "OPENSSL_ANDROID_HOME" "$destination" diff --git a/coin/provisioning/common/windows/cmake.ps1 b/coin/provisioning/common/windows/cmake.ps1 index ec84d706..9d3d6aef 100644 --- a/coin/provisioning/common/windows/cmake.ps1 +++ b/coin/provisioning/common/windows/cmake.ps1 @@ -33,8 +33,8 @@ . "$PSScriptRoot\helpers.ps1" -$majorminorversion = "3.6" -$version = "3.6.2" +$majorminorversion = "3.7" +$version = "3.7.2" $zip = Get-DownloadLocation ("cmake-" + $version + "-win32-x86.zip") $officialurl = "https://cmake.org/files/v" + $majorminorversion + "/cmake-" + $version + "-win32-x86.zip" @@ -44,7 +44,7 @@ Write-Host "Removing old cmake" Remove-Item "C:\CMake" -Force -Recurse -ErrorAction SilentlyContinue Download $officialurl $cachedurl $zip -Verify-Checksum $zip "541F6E7EFD228E46770B8631FFE57097576E4D4E" +Verify-Checksum $zip "c80c17e858ecfebfaf16fe8af18b174d2600c4e6" Extract-7Zip $zip C: $defaultinstallfolder = "C:\cmake-" + $version + "-win32-x86" diff --git a/coin/provisioning/common/windows/disable-clean-manager.ps1 b/coin/provisioning/common/windows/disable-clean-manager.ps1 new file mode 100644 index 00000000..6d54e137 --- /dev/null +++ b/coin/provisioning/common/windows/disable-clean-manager.ps1 @@ -0,0 +1,8 @@ +# This script will disable automatic disk cleanup + +. "$PSScriptRoot\helpers.ps1" + +Run-Executable "reg.exe" "ADD `"HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\StorageSense\Parameters\StoragePolicy`" /V 04 /T REG_dWORD /D 0 /F" + +# Maintenance task used by the system to launch a silent auto disk cleanup when running low on free disk space. +DisableSchedulerTask "DiskCleanup\SilentCleanup" diff --git a/coin/provisioning/common/windows/install-gnuwin32.ps1 b/coin/provisioning/common/windows/install-gnuwin32.ps1 index 99862b3c..6acede79 100644 --- a/coin/provisioning/common/windows/install-gnuwin32.ps1 +++ b/coin/provisioning/common/windows/install-gnuwin32.ps1 @@ -44,3 +44,4 @@ Verify-Checksum "$temp\$zipPackage" "d7a34a385ccde2374b8a2ca3369e5b8a1452c5a5" Extract-7Zip "$temp\$zipPackage" C:\Utils Write-Output "$prog qt5 commit sha = 98c4f1bbebfb3cc6d8e031d36fd1da3c19e634fb" >> ~\versions.txt +Prepend-Path "C:\Utils\gnuwin32\bin" diff --git a/coin/provisioning/common/windows/openssl.ps1 b/coin/provisioning/common/windows/openssl.ps1 index 2f21db37..891f5db7 100644 --- a/coin/provisioning/common/windows/openssl.ps1 +++ b/coin/provisioning/common/windows/openssl.ps1 @@ -36,7 +36,7 @@ # This script installs OpenSSL $version. # Both x86 and x64 versions needed when x86 integrations are done on x64 machine -$version = "1_1_1b" +$version = "1_1_1d" $packagex64 = "C:\Windows\Temp\Win64OpenSSL-$version.exe" $packagex86 = "C:\Windows\Temp\Win32OpenSSL-$version.exe" @@ -47,7 +47,7 @@ if (Is64BitWinHost) { $installFolder = "C:\openssl" $externalUrl = "https://slproweb.com/download/Win64OpenSSL-$version.exe" $internalUrl = "\\ci-files01-hki.intra.qt.io\provisioning\openssl\Win64OpenSSL-$version.exe" - $sha1 = "5b50819dd84aa9219e0cad9cdddf78285bdd1bbb" + $sha1 = "df9c40e9e82edf693c15302cbc8e8a057857a13c" Write-Host "Fetching from URL ..." Download $externalUrl $internalUrl $packagex64 @@ -74,7 +74,7 @@ if (Is64BitWinHost) { $externalUrl = "https://slproweb.com/download/Win32OpenSSL-$version.exe" $internalUrl = "\\ci-files01-hki.intra.qt.io\provisioning\openssl\Win32OpenSSL-$version.exe" -$sha1 = "1ae5ad4fe5dae01dd056274979cce26945c9e86c" +$sha1 = "5c49ccd3a5d17f63d25fb819963978f50c7966d0" Write-Host "Fetching from URL ..." Download $externalUrl $internalUrl $packagex86 diff --git a/coin/provisioning/common/windows/squishInstall.ps1 b/coin/provisioning/common/windows/squishInstall.ps1 index de04d242..2cc45785 100644 --- a/coin/provisioning/common/windows/squishInstall.ps1 +++ b/coin/provisioning/common/windows/squishInstall.ps1 @@ -1,6 +1,6 @@ ############################################################################# ## -## Copyright (C) 2018 The Qt Company Ltd. +## Copyright (C) 2019 The Qt Company Ltd. ## Contact: http://www.qt.io/licensing/ ## ## This file is part of the provisioning scripts of the Qt Toolkit. @@ -73,7 +73,9 @@ Function DownloadAndInstallSquish { Write-Host "Fetching from URL $squishUrl" Copy-Item "$SquishUrl" "$SquishInstaller" Write-Host "Installing Squish" - Run-Executable "$SquishInstaller" "$SquishParameters" + $stdoutFile = [System.IO.Path]::GetTempFileName() + $stderrFile = [System.IO.Path]::GetTempFileName() + Start-Process -FilePath "$SquishInstaller" -Wait -ArgumentList $SquishParameters -PassThru -RedirectStandardOutput $stdoutFile -RedirectStandardError $stderrFile | Out-Null Remove-Item -Path $SquishInstaller if ("$bit" -eq "win64") { if ($squishPackage.StartsWith("mingw")) { diff --git a/coin/provisioning/common/windows/telegraf_password.ps1 b/coin/provisioning/common/windows/telegraf_password.ps1 index 11d04dbc..773ec866 100644 --- a/coin/provisioning/common/windows/telegraf_password.ps1 +++ b/coin/provisioning/common/windows/telegraf_password.ps1 @@ -31,9 +31,16 @@ ## ############################################################################# +$auth_file = "C:\Users\qt\work\influxdb\coin_vms_writer.auth" + +# Provisioning should run even without the secrets repository +if (Test-Path $auth_file) { + $auth_content = Get-Content $auth_file + $influxdb_password = $auth_content.Substring($auth_content.LastIndexOf(':') + 1) + Remove-Item $auth_file +} else { + $influxdb_password = "no_password_provided" +} -$colon_file = Get-Content "C:\Users\qt\work\influxdb\coin_vms_writer.auth" -$influxdb_password = $colon_file.Substring($colon_file.LastIndexOf(':') + 1) $telegraf_conf = "C:\telegraf-coin.conf" (Get-Content $telegraf_conf) | ForEach-Object { $_.Replace("COIN_VMS_WRITER_PASS", $influxdb_password) } | Out-File -Encoding UTF8 $telegraf_conf -Remove-Item "C:\Users\qt\work\influxdb\coin_vms_writer.auth" |