From 05dd83c73ae072d1e0be3709ed87bbd485ae896c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joni=20J=C3=A4ntti?= Date: Tue, 22 Aug 2017 15:39:09 +0300 Subject: provisioning: windows: ICU MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixed ICU script to actually install ICU instead of just setting the environment variables. It is required to build qtwebkit. Change-Id: I8881f9c11599d99b4d400595c9b929cf6f37088a Reviewed-by: Tony Sarajärvi --- coin/provisioning/common/icu.ps1 | 120 ++++++++++++++++++++++++++++++++++++++- 1 file changed, 118 insertions(+), 2 deletions(-) (limited to 'coin/provisioning/common') diff --git a/coin/provisioning/common/icu.ps1 b/coin/provisioning/common/icu.ps1 index 4be185e5..16dd8a6f 100644 --- a/coin/provisioning/common/icu.ps1 +++ b/coin/provisioning/common/icu.ps1 @@ -1,5 +1,78 @@ -# ICU is already pre-installed on Windows machines, it would be nice to have -# the installation script, but for now let's just export the right variables +############################################################################ +## +## Copyright (C) 2017 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$ +## +############################################################################ + +. "$PSScriptRoot\helpers.ps1" + +# This script installs ICU. + +$version = "53_1" + +if(($env:PROCESSOR_ARCHITECTURE -eq "AMD64") -or ($env:PROCESSOR_ARCHITEW6432 -eq "AMD64")) { + + $url_official_2012 = "http://download.qt.io/development_releases/prebuilt/icu/prebuilt/msvc2012/icu_" + $version + "_msvc_2012_64_devel.7z" + $url_cache_2012 = "\\ci-files01-hki.intra.qt.io\provisioning\windows\icu_" + $version + "_msvc_2012_64_devel.7z" + $sha1_2012 = "8A8C371F3ED58E81BBCF58CF5F8388CEF51FA9AC" + + $url_official_2013 = "http://download.qt.io/development_releases/prebuilt/icu/prebuilt/msvc2013/icu_" + $version + "_msvc_2013_64_devel.7z" + $url_cache_2013 = "\\ci-files01-hki.intra.qt.io/provisioning/windows/icu_" + $version + "_msvc_2013_64_devel.7z" + $sha1_2013 = "7267CF8C5BD39C4218F2CCFE31ECA81B7644ED6F" + + $icuPackage_msvc2012_64 = "C:\Windows\Temp\icu-$version-msvc2012_64.7z" + $icuPackage_msvc2013_64 = "C:\Windows\Temp\icu-$version-msvc2013_64.7z" + + if (!(Test-Path C:\Utils\icu_"$version"_msvc_2012_64_devel\)) { + echo "Fetching from URL ..." + Download $url_official_2012 $url_cache_2012 $icuPackage_msvc2012_64 + Verify-Checksum $icuPackage_msvc2012_64 $sha1_2012 + Get-ChildItem $icuPackage_msvc2012_64 | % {& "C:\Utils\sevenzip\7z.exe" "x" $_.fullname -o""C:\Utils\icu_"$version"_msvc_2012_64_devel\""} + + echo "Cleaning $icuPackage_msvc2012_64..." + Remove-Item -Recurse -Force $icuPackage_msvc2012_64 + + echo "ICU MSVC2012 = $version" >> ~\versions.txt + } + + if (!(Test-Path C:\Utils\icu_"$version"_msvc_2013_64_devel\)) { + echo "Fetching from URL ..." + Download $url_official_2013 $url_cache_2013 $icuPackage_msvc2013_64 + Verify-Checksum $icuPackage_msvc2013_64 $sha1_2013 + Get-ChildItem $icuPackage_msvc2013_64 | % {& "C:\Utils\sevenzip\7z.exe" "x" $_.fullname -o""C:\Utils\icu_"$version"_msvc_2013_64_devel\""} + + echo "Cleaning $icuPackage_msvc2013_64..." + Remove-Item -Recurse -Force $icuPackage_msvc2013_64 + + echo "ICU MSVC2013 = $version" >> ~\versions.txt + } # FIXME: do we really want to have it per MSVC version? What about MSVC2015? [Environment]::SetEnvironmentVariable("CI_ICU_PATH_MSVC2012", "C:\\Utils\\icu_53_1_msvc_2012_64_devel\\icu53_1", "Machine") @@ -7,3 +80,46 @@ # FIXME: do we really want to use the 4.8.2 ICU build? [Environment]::SetEnvironmentVariable("CI_ICU_PATH_Mingw49", "C:\Utils\icu_53_1_Mingw_builds_4_8_2_posix_seh_64_devel\icu53_1", "Machine") + +} else { + + $url_official_2012_32 = "http://download.qt.io/development_releases/prebuilt/icu/prebuilt/msvc2012/icu_" + $version + "_msvc_2012_32_devel.7z" + $url_cache_2012_32 = "\\ci-files01-hki.intra.qt.io\provisioning\windows\icu_" + $version + "_msvc_2012_32_devel.7z" + $sha1_2012_32 = "F2FF287EEB0163B015D37AE08871165FBA87BCF0" + + $url_official_2013_32 = "http://download.qt.io/development_releases/prebuilt/icu/prebuilt/msvc2013/icu_" + $version + "_msvc_2013_32_devel.7z" + $url_cache_2013_32 = "\\ci-files01-hki.intra.qt.io/provisioning/windows/icu_" + $version + "_msvc_2013_32_devel.7z" + $sha1_2013_32 = "D745A5F0F6A3817AE989501A01A5A0BA53FDB800" + + $icuPackage_msvc2012_32 = "C:\Windows\Temp\icu-$version-msvc2012_32.7z" + $icuPackage_msvc2013_32 = "C:\Windows\Temp\icu-$version-msvc2013_32.7z" + + if (!(Test-Path C:\Utils\icu_"$version"_msvc_2012_32_devel\)) { + echo "Fetching from URL ..." + Download $url_official_2012_32 $url_cache_2012_32 $icuPackage_msvc2012_32 + Verify-Checksum $icuPackage_msvc2012_32 $sha1_2012_32 + Get-ChildItem $icuPackage_msvc2012_32 | % {& "C:\Utils\sevenzip\7z.exe" "x" $_.fullname -o""C:\Utils\icu_"$version"_msvc_2012_32_devel\""} + + echo "Cleaning $icuPackage_msvc2012_32..." + Remove-Item -Recurse -Force $icuPackage_msvc2012_32 + + echo "ICU MSVC2012 = $version" >> ~\versions.txt + } + + if (!(Test-Path C:\Utils\icu_"$version"_msvc_2013_32_devel\)) { + echo "Fetching from URL ..." + Download $url_official_2013_32 $url_cache_2013_32 $icuPackage_msvc2013_32 + Verify-Checksum $icuPackage_msvc2013_32 $sha1_2013_32 + Get-ChildItem $icuPackage_msvc2013_32 | % {& "C:\Utils\sevenzip\7z.exe" "x" $_.fullname -o""C:\Utils\icu_"$version"_msvc_2013_32_devel\""} + + echo "Cleaning $icuPackage_msvc2013_32..." + Remove-Item -Recurse -Force $icuPackage_msvc2013_32 + + echo "ICU MSVC2013 = $version" >> ~\versions.txt + } + +# FIXME: do we really want to have it per MSVC version? What about MSVC2015? +[Environment]::SetEnvironmentVariable("CI_ICU_PATH_MSVC2012", "C:\\Utils\\icu_53_1_msvc_2012_32_devel\\icu53_1", "Machine") +[Environment]::SetEnvironmentVariable("CI_ICU_PATH_MSVC2013", "C:\\Utils\\icu_53_1_msvc_2013_32_devel\\icu53_1", "Machine") + +} -- cgit v1.2.3 From 3ca76587815797b1b101941537c090b9026bd418 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tony=20Saraj=C3=A4rvi?= Date: Mon, 21 Aug 2017 15:14:00 +0300 Subject: Provision vanilla Windows 8.1 x86 and use it Replaces existing Windows 8 x86 builds with a vanilla tier 1 image that gets all needed software provisioned except for VS2013 that is pre-installed. Also modifies existing provisioning scripts under common to support this 32bit OS. Task-number: QTQAINFRA-1383 Change-Id: I495cb2d78b4d2d8b2abb9af1254fff0a78a570d9 Reviewed-by: Heikki Halmet --- coin/provisioning/common/helpers.ps1 | 10 +++++ .../common/install-dependencywalker.ps1 | 13 ++++-- coin/provisioning/common/install-git.ps1 | 15 +++++-- coin/provisioning/common/install-java.ps1 | 16 +++++-- coin/provisioning/common/install-notepad++.ps1 | 21 +++++++-- coin/provisioning/common/install-ruby.ps1 | 13 ++++-- coin/provisioning/common/install-sevenzip.ps1 | 15 +++++-- .../common/install-strawberry-perl.ps1 | 13 ++++-- coin/provisioning/common/mysql.ps1 | 25 +++++++---- coin/provisioning/common/openssl.ps1 | 45 +++++++++++-------- coin/provisioning/common/postgresql.ps1 | 50 +++++++++++++--------- coin/provisioning/common/python.ps1 | 16 +++---- 12 files changed, 171 insertions(+), 81 deletions(-) (limited to 'coin/provisioning/common') diff --git a/coin/provisioning/common/helpers.ps1 b/coin/provisioning/common/helpers.ps1 index 132fcdd3..3f7f0a68 100644 --- a/coin/provisioning/common/helpers.ps1 +++ b/coin/provisioning/common/helpers.ps1 @@ -88,3 +88,13 @@ function Add-Path echo "Adding $Path to Path" [Environment]::SetEnvironmentVariable("Path", $env:Path + ";$Path", [EnvironmentVariableTarget]::Machine) } + +function is64bitWinHost +{ + if(($env:PROCESSOR_ARCHITECTURE -eq "AMD64") -or ($env:PROCESSOR_ARCHITEW6432 -eq "AMD64")) { + return 1 + } + else { + return 0 + } +} diff --git a/coin/provisioning/common/install-dependencywalker.ps1 b/coin/provisioning/common/install-dependencywalker.ps1 index a9a56f7a..ad89fc7b 100644 --- a/coin/provisioning/common/install-dependencywalker.ps1 +++ b/coin/provisioning/common/install-dependencywalker.ps1 @@ -36,10 +36,17 @@ # This script will install Dependency Walker 2.2.6000 $version = "2.2.6000" -$url_cache = "\\ci-files01-hki.intra.qt.io\provisioning\windows\depends22_x64.zip" -$url_official = "http://www.dependencywalker.com/depends22_x64.zip" +if( (is64bitWinHost) -eq 1 ) { + $arch = "_x64" + $sha1 = "4831D2A8376D64110FF9CD18799FE6C69509D3EA" +} +else { + $arch = "_x86" + $sha1 = "bfec714057e8449b0246051be99ba46a7760bab9" +} +$url_cache = "\\ci-files01-hki.intra.qt.io\provisioning\windows\depends22" + $arch + ".zip" +$url_official = "http://www.dependencywalker.com/depends22" + $arch + ".zip" $dependsPackage = "C:\Windows\Temp\depends-$version.zip" -$sha1 = "4831D2A8376D64110FF9CD18799FE6C69509D3EA" $TARGETDIR = "C:\Utils\dependencywalker" if(!(Test-Path -Path $TARGETDIR )){ diff --git a/coin/provisioning/common/install-git.ps1 b/coin/provisioning/common/install-git.ps1 index d3543138..6b4a34b0 100644 --- a/coin/provisioning/common/install-git.ps1 +++ b/coin/provisioning/common/install-git.ps1 @@ -35,10 +35,17 @@ # Install Git version 2.13.0 $version = "2.13.0" -$gitPackage = "C:\Windows\Temp\Git-" + $version + "-64-bit.exe" -$url_cache = "\\ci-files01-hki.intra.qt.io\provisioning\windows\Git-" + $version + "-64-bit.exe" -$url_official = "https://github.com/git-for-windows/git/releases/download/v" + $version + ".windows.1/Git-" + $version + "-64-bit.exe" -$sha1 = "E1D7C6E5E16ACAF3C108064A2ED158F604FA29A7" +if( (is64bitWinHost) -eq 1 ) { + $arch = "-64-bit" + $sha1 = "E1D7C6E5E16ACAF3C108064A2ED158F604FA29A7" +} +else { + $arch = "-32-bit" + $sha1 = "03c7df2e4ef61ea6b6f9c0eb7e6d5151d9682aec" +} +$gitPackage = "C:\Windows\Temp\Git-" + $version + $arch + ".exe" +$url_cache = "\\ci-files01-hki.intra.qt.io\provisioning\windows\Git-" + $version + $arch + ".exe" +$url_official = "https://github.com/git-for-windows/git/releases/download/v" + $version + ".windows.1/Git-" + $version + $arch + ".exe" echo "Fetching Git $version..." Download $url_official $url_cache $gitPackage diff --git a/coin/provisioning/common/install-java.ps1 b/coin/provisioning/common/install-java.ps1 index 06bcf6a1..4b9dd097 100644 --- a/coin/provisioning/common/install-java.ps1 +++ b/coin/provisioning/common/install-java.ps1 @@ -33,14 +33,24 @@ . "$PSScriptRoot\..\common\helpers.ps1" -# This script will install Java +# This script will install Java RE +# Official Java RE 7 downloads require Oracle accounts. Using local mirrors only. $version = "7u7" -$url_cache = "\\ci-files01-hki.intra.qt.io\provisioning\windows\jre-" + $version + "-windows-x64.exe" +if( (is64bitWinHost) -eq 1 ) { + $arch = "x64" + $sha1 = "9af03460c416931bdee18c2dcebff5db50cb8cb3" +} +else { + $arch = "i586" + $sha1 = "f76b1be20b144b1ee1d1de3255edb0a6b57d0219" +} + +$url_cache = "\\ci-files01-hki.intra.qt.io\provisioning\windows\jre-" + $version + "-windows-" + $arch + ".exe" $javaPackage = "C:\Windows\Temp\java-$version.exe" Copy-Item $url_cache $javaPackage cmd /c "$javaPackage /s SPONSORS=0" echo "Cleaning $javaPackage.." Remove-Item -Recurse -Force "$javaPackage" -echo "Java = $version" >> ~\versions.txt +echo "Java = $version $arch" >> ~\versions.txt diff --git a/coin/provisioning/common/install-notepad++.ps1 b/coin/provisioning/common/install-notepad++.ps1 index 15a8c004..2e893852 100644 --- a/coin/provisioning/common/install-notepad++.ps1 +++ b/coin/provisioning/common/install-notepad++.ps1 @@ -36,9 +36,16 @@ # This script will install Notepad++ $version = "7.3" -$url_cache = "\\ci-files01-hki.intra.qt.io\provisioning\windows\npp." + $version + ".Installer.x64.exe" -$url_official = "https://notepad-plus-plus.org/repository/7.x/" + $version + "/npp." + $version + ".Installer.x64.exe" -$sha1 = "E7306DF1D6E81801FB4BE0868610DB70E979B0AA" +if( (is64bitWinHost) -eq 1 ) { + $arch = ".x64" + $sha1 = "E7306DF1D6E81801FB4BE0868610DB70E979B0AA" +} +else { + $arch = "" + $sha1 = "d4c403675a21cc381f640b92e596bae3ef958dc6" +} +$url_cache = "\\ci-files01-hki.intra.qt.io\provisioning\windows\npp." + $version + ".Installer" + $arch + ".exe" +$url_official = "https://notepad-plus-plus.org/repository/7.x/" + $version + "/npp." + $version + ".Installer" + $arch + ".exe" $nppPackage = "C:\Windows\Temp\npp-$version.exe" Download $url_official $url_cache $nppPackage @@ -50,5 +57,11 @@ Remove-Item -Recurse -Force "$nppPackage" echo "Notepad++ = $version" >> ~\versions.txt -Rename-Item -Path "C:\Program Files (x86)\Notepad++\updater" -NewName "updater_disabled" +if( (is64bitWinHost) -eq 1 ) { + Rename-Item -Path "C:\Program Files (x86)\Notepad++\updater" -NewName "updater_disabled" +} +else { + Rename-Item -Path "C:\Program Files\Notepad++\updater" -NewName "updater_disabled" +} + echo "Auto-updating disabled." diff --git a/coin/provisioning/common/install-ruby.ps1 b/coin/provisioning/common/install-ruby.ps1 index be0bc3eb..81b01342 100644 --- a/coin/provisioning/common/install-ruby.ps1 +++ b/coin/provisioning/common/install-ruby.ps1 @@ -36,10 +36,17 @@ # This script will install Ruby $version = "2.2.6" -$url_cache = "\\ci-files01-hki.intra.qt.io\provisioning\windows\rubyinstaller-" + $version + "-x64.exe" -$url_official = "https://bintray.com/oneclick/rubyinstaller/download_file?file_path=rubyinstaller-" + $version + "-x64.exe" +if( (is64bitWinHost) -eq 1 ) { + $arch = "-x64" + $sha1 = "4D0E366F0264CDED174E5842B2435E22B81FB57A" +} +else { + $arch = "" + $sha1 = "8649309fffe9c746ad5549d3f7b70490806e95df" +} +$url_cache = "\\ci-files01-hki.intra.qt.io\provisioning\windows\rubyinstaller-" + $version + $arch + ".exe" +$url_official = "https://bintray.com/oneclick/rubyinstaller/download_file?file_path=rubyinstaller-" + $version + $arch + ".exe" $rubyPackage = "C:\Windows\Temp\rubyinstaller-$version.exe" -$sha1 = "4D0E366F0264CDED174E5842B2435E22B81FB57A" Download $url_official $url_cache $rubyPackage Verify-Checksum $rubyPackage $sha1 diff --git a/coin/provisioning/common/install-sevenzip.ps1 b/coin/provisioning/common/install-sevenzip.ps1 index 91442500..1db41cc1 100644 --- a/coin/provisioning/common/install-sevenzip.ps1 +++ b/coin/provisioning/common/install-sevenzip.ps1 @@ -36,10 +36,19 @@ # This script installs 7-Zip $version = "1604" -$url_cache = "\\ci-files01-hki.intra.qt.io\provisioning\windows\7z" + $version + "-x64.exe" -$url_official = "http://www.7-zip.org/a/7z" + $version + "-x64.exe" + +if( (is64bitWinHost) -eq 1 ) { + $arch = "-x64" + $sha1 = "338A5CC5200E98EDD644FC21807FDBE59910C4D0" +} +else { + $arch = "" + $sha1 = "dd1cb1163c5572951c9cd27f5a8dd550b33c58a4" +} + +$url_cache = "\\ci-files01-hki.intra.qt.io\provisioning\windows\7z" + $version + $arch + ".exe" +$url_official = "http://www.7-zip.org/a/7z" + $version + $arch + ".exe" $7zPackage = "C:\Windows\Temp\7zip-$version.exe" -$sha1 = "338A5CC5200E98EDD644FC21807FDBE59910C4D0" Download $url_official $url_cache $7zPackage Verify-Checksum $7zPackage $sha1 diff --git a/coin/provisioning/common/install-strawberry-perl.ps1 b/coin/provisioning/common/install-strawberry-perl.ps1 index 83b63897..bd5347b6 100644 --- a/coin/provisioning/common/install-strawberry-perl.ps1 +++ b/coin/provisioning/common/install-strawberry-perl.ps1 @@ -36,10 +36,17 @@ # This script installs Strawberry Perl $version = "5.26.0.1" -$url_cache = "\\ci-files01-hki.intra.qt.io\provisioning\windows\strawberry-perl-" + $version + "-64bit.msi" -$url_official = "http://strawberryperl.com/download/" + $version + "/strawberry-perl-" +$version+ "-64bit.msi" +if( (is64bitWinHost) -eq 1 ) { + $arch = "-64bit" + $sha1 = "2AE2EDA36A190701399130CBFEE04D00E9BA036D" +} +else { + $arch = "-32bit" + $sha1 = "b50b688a879f33941433774b2813bfd4b917e4ee" +} +$url_cache = "\\ci-files01-hki.intra.qt.io\provisioning\windows\strawberry-perl-" + $version + $arch + ".msi" +$url_official = "http://strawberryperl.com/download/" + $version + "/strawberry-perl-" + $version + $arch + ".msi" $strawberryPackage = "C:\Windows\Temp\strawberry-installer-$version.msi" -$sha1 = "2AE2EDA36A190701399130CBFEE04D00E9BA036D" Download $url_official $url_cache $strawberryPackage Verify-Checksum $strawberryPackage $sha1 diff --git a/coin/provisioning/common/mysql.ps1 b/coin/provisioning/common/mysql.ps1 index 9bd9929b..e300566e 100644 --- a/coin/provisioning/common/mysql.ps1 +++ b/coin/provisioning/common/mysql.ps1 @@ -62,21 +62,28 @@ try { Rename-Item -ErrorAction 'Stop' c:\utils\my_sql c:\utils\mysql_deleted } catch {} -# Install x64 bit version -$architecture = "x64" -$installFolder = "C:\Utils\my_sql\my_sql" -$internalUrl = "\\ci-files01-hki.intra.qt.io\provisioning\windows\mysql-$version-winx64.zip" +if( (is64bitWinHost) -eq 1 ) { + # Install x64 bit version + $architecture = "x64" + $installFolder = "C:\Utils\my_sql\my_sql" + $internalUrl = "\\ci-files01-hki.intra.qt.io\provisioning\windows\mysql-$version-winx64.zip" -DownloadAndInstall $internalUrl $packagex64 $installFolder + DownloadAndInstall $internalUrl $packagex64 $installFolder -echo "Set environment variables ..." -[Environment]::SetEnvironmentVariable("MYSQL_INCLUDE_x64", "$installFolder\include", "Machine") -[Environment]::SetEnvironmentVariable("MYSQL_LIB_x64", "$installFolder\lib", "Machine") + echo "Set environment variables ..." + [Environment]::SetEnvironmentVariable("MYSQL_INCLUDE_x64", "$installFolder\include", "Machine") + [Environment]::SetEnvironmentVariable("MYSQL_LIB_x64", "$installFolder\lib", "Machine") +} # Install x86 bit version $architecture = "x86" -$installFolder = "C:\Utils\my_sql\my_sql$architecture" $internalUrl = "\\ci-files01-hki.intra.qt.io\provisioning\windows\mysql-$version-win32.zip" +if( (is64bitWinHost) -eq 1 ) { + $installFolder = "C:\Utils\my_sql\my_sql$architecture" +} +else { + $installFolder = "C:\Utils\my_sql\my_sql" +} DownloadAndInstall $internalUrl $packagex86 $installFolder diff --git a/coin/provisioning/common/openssl.ps1 b/coin/provisioning/common/openssl.ps1 index 2d63106f..df320c72 100644 --- a/coin/provisioning/common/openssl.ps1 +++ b/coin/provisioning/common/openssl.ps1 @@ -40,30 +40,39 @@ $version = "1_0_2j" $packagex64 = "C:\Windows\Temp\Win64OpenSSL-$version.exe" $packagex86 = "C:\Windows\Temp\Win32OpenSSL-$version.exe" -# Install x64 bit version -$architecture = "x64" -$installFolder = "C:\openssl" -$externalUrl = "https://slproweb.com/download/Win64OpenSSL-$version.exe" -$internalUrl = "\\ci-files01-hki.intra.qt.io\provisioning\openssl\Win64OpenSSL-$version.exe" -$sha1 = "b1660dbdcc77e1b3d81d780c7167be1c75384d44" +if( (is64bitWinHost) -eq 1 ) { -echo "Fetching from URL ..." -Download $externalUrl $internalUrl $packagex64 -Verify-Checksum $packagex64 $sha1 -echo "Installing $packagex64 ..." -cmd /c "$packagex64 /SP- /SILENT /LOG /SUPPRESSMSGBOXES /NORESTART /DIR=$installFolder" + # Install x64 bit version + $architecture = "x64" + $installFolder = "C:\openssl" + $externalUrl = "https://slproweb.com/download/Win64OpenSSL-$version.exe" + $internalUrl = "\\ci-files01-hki.intra.qt.io\provisioning\openssl\Win64OpenSSL-$version.exe" + $sha1 = "b1660dbdcc77e1b3d81d780c7167be1c75384d44" -echo "Remove downloaded $packagex64 ..." -Remove-Item $packagex64 + echo "Fetching from URL ..." + Download $externalUrl $internalUrl $packagex64 + Verify-Checksum $packagex64 $sha1 + echo "Installing $packagex64 ..." + cmd /c "$packagex64 /SP- /SILENT /LOG /SUPPRESSMSGBOXES /NORESTART /DIR=$installFolder" -echo "Set $architecture environment variables ..." -[Environment]::SetEnvironmentVariable("OPENSSL_CONF_x64", "$installFolder\bin\openssl.cfg", "Machine") -[Environment]::SetEnvironmentVariable("OPENSSL_INCLUDE_x64", "$installFolder\include", "Machine") -[Environment]::SetEnvironmentVariable("OPENSSL_LIB_x64", "$installFolder\lib", "Machine") + echo "Remove downloaded $packagex64 ..." + Remove-Item $packagex64 + + echo "Set $architecture environment variables ..." + [Environment]::SetEnvironmentVariable("OPENSSL_CONF_x64", "$installFolder\bin\openssl.cfg", "Machine") + [Environment]::SetEnvironmentVariable("OPENSSL_INCLUDE_x64", "$installFolder\include", "Machine") + [Environment]::SetEnvironmentVariable("OPENSSL_LIB_x64", "$installFolder\lib", "Machine") +} # Install x86 bit version $architecture = "x86" -$installFolder = "C:\openssl$architecture" + +if( (is64bitWinHost) -eq 1 ) { + $installFolder = "C:\openssl$architecture" +} else { + $installFolder = "C:\openssl" +} + $externalUrl = "https://slproweb.com/download/Win32OpenSSL-$version.exe" $internalUrl = "\\ci-files01-hki.intra.qt.io\provisioning\openssl\Win32OpenSSL-$version.exe" $sha1 = "29b31d20545214ab4e4c57afb20be2338c317cc3" diff --git a/coin/provisioning/common/postgresql.ps1 b/coin/provisioning/common/postgresql.ps1 index 2ff97761..dd5858a3 100644 --- a/coin/provisioning/common/postgresql.ps1 +++ b/coin/provisioning/common/postgresql.ps1 @@ -40,37 +40,45 @@ $version = "9.1.9-1" $packagex64 = "C:\Windows\temp\postgresql-$version-windows-x64-binaries.zip" $packagex86 = "C:\Windows\temp\postgresql-$version-windows-binaries.zip" -# Install x64 bit versions -$architecture = "x64" -$installFolder = "C:\Utils\postgresql\pgsql" -$externalUrl = "http://get.enterprisedb.com/postgresql/postgresql-$version-windows-x64-binaries.zip" -$internalUrl = "\\ci-files01-hki.intra.qt.io\provisioning\windows\postgresql-$version-windows-x64-binaries.zip" -$sha1 = "4da0453cdfda335e064d4437cf5bb9d356054cfd" +if( (is64bitWinHost) -eq 1 ) { + # Install x64 bit versions + $architecture = "x64" + $installFolder = "C:\Utils\postgresql\pgsql" + $externalUrl = "http://get.enterprisedb.com/postgresql/postgresql-$version-windows-x64-binaries.zip" + $internalUrl = "\\ci-files01-hki.intra.qt.io\provisioning\windows\postgresql-$version-windows-x64-binaries.zip" + $sha1 = "4da0453cdfda335e064d4437cf5bb9d356054cfd" -# Delete any leftovers -try { - Rename-Item -ErrorAction 'Stop' c:\utils\postgresql c:\utils\postgresql-deleted -} catch {} + # Delete any leftovers + try { + Rename-Item -ErrorAction 'Stop' c:\utils\postgresql c:\utils\postgresql-deleted + } catch {} -echo "Fetching from URL ..." -Download $externalUrl $internalUrl $packagex64 -Verify-Checksum $packagex64 $sha1 -echo "Installing $packagex64 ..." -Extract-Dev-Folders-From-Zip $packagex64 "pgsql" $installFolder + echo "Fetching from URL ..." + Download $externalUrl $internalUrl $packagex64 + Verify-Checksum $packagex64 $sha1 + echo "Installing $packagex64 ..." + Extract-Dev-Folders-From-Zip $packagex64 "pgsql" $installFolder -echo "Remove downloaded $packagex64 ..." -Remove-Item $packagex64 + echo "Remove downloaded $packagex64 ..." + Remove-Item $packagex64 -echo "Set $architecture environment variables ..." -[Environment]::SetEnvironmentVariable("POSTGRESQL_INCLUDE_x64", "$installFolder\include", "Machine") -[Environment]::SetEnvironmentVariable("POSTGRESQL_LIB_x64", "$installFolder\lib", "Machine") + echo "Set $architecture environment variables ..." + [Environment]::SetEnvironmentVariable("POSTGRESQL_INCLUDE_x64", "$installFolder\include", "Machine") + [Environment]::SetEnvironmentVariable("POSTGRESQL_LIB_x64", "$installFolder\lib", "Machine") +} # Install x86 bit version $architecture = "x86" -$installFolder = "C:\Utils\postgresql$architecture\pgsql" $externalUrl = "http://get.enterprisedb.com/postgresql/postgresql-$version-windows-binaries.zip" $internalUrl = "\\ci-files01-hki.intra.qt.io\provisioning\windows\postgresql-$version-windows-binaries.zip" $sha1 = "eb4f01845e1592800edbb74f60944b6c0aca51a9" +if( (is64bitWinHost) -eq 1 ) { + $installFolder = "C:\Utils\postgresql$architecture\pgsql" +} +else { + $installFolder = "C:\Utils\postgresql\pgsql" +} + echo "Fetching from URL..." Download $externalUrl $internalUrl $packagex86 diff --git a/coin/provisioning/common/python.ps1 b/coin/provisioning/common/python.ps1 index 29114456..0be96eef 100644 --- a/coin/provisioning/common/python.ps1 +++ b/coin/provisioning/common/python.ps1 @@ -30,27 +30,23 @@ ## $QT_END_LICENSE$ ## ############################################################################# -param([Int32]$archVer=32) . "$PSScriptRoot\helpers.ps1" # This script installs Python $version. # Python is required for building Qt 5 from source. $version = "2.7.13" -$package = "C:\Windows\temp\python-$version.msi" - -# check bit version -if ( $archVer -eq 64 ) { - echo "Running in 64 bit system" - $externalUrl = "https://www.python.org/ftp/python/$version/python-$version.amd64.msi" - $internalUrl = "\\ci-files01-hki.intra.qt.io\provisioning\windows\python-$version.amd64.msi" +if( (is64bitWinHost) -eq 1 ) { + $arch = ".amd64" $sha1 = "d9113142bae8829365c595735e1ad1f9f5e2894c" } else { - $externalUrl = "https://www.python.org/ftp/python/$version/python-$version.msi" - $internalUrl = "\\ci-files01-hki.intra.qt.io\provisioning\windows\python-$version.msi" + $arch = "" $sha1 = "7e3b54236dbdbea8fe2458db501176578a4d59c0" } +$package = "C:\Windows\temp\python-$version.msi" +$externalUrl = "https://www.python.org/ftp/python/$version/python-$version" + $arch + ".msi" +$internalUrl = "\\ci-files01-hki.intra.qt.io\provisioning\windows\python-$version" + $arch + ".msi" echo "Fetching from URL..." Download $externalUrl $internalUrl $package -- cgit v1.2.3 From dbf737a5c098ffe5c38413c2f289790d87ec6131 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joni=20J=C3=A4ntti?= Date: Mon, 4 Sep 2017 13:25:44 +0300 Subject: Fix Add-Path helper function and start using it in scripts This function was broken and only added the latest addition to the actual PATH. Change-Id: Ida352c7b605c1b9748bb98e4f51ce68a765c3ce3 Reviewed-by: Simon Hausmann --- coin/provisioning/common/cmake.ps1 | 2 ++ coin/provisioning/common/helpers.ps1 | 4 +++- coin/provisioning/common/install-ruby.ps1 | 3 +-- coin/provisioning/common/python.ps1 | 3 +-- 4 files changed, 7 insertions(+), 5 deletions(-) (limited to 'coin/provisioning/common') diff --git a/coin/provisioning/common/cmake.ps1 b/coin/provisioning/common/cmake.ps1 index 50e2e82c..8a94dc5d 100644 --- a/coin/provisioning/common/cmake.ps1 +++ b/coin/provisioning/common/cmake.ps1 @@ -53,5 +53,7 @@ if((Test-Path -Path "C:\CMake" )){ $defaultinstallfolder = "C:\cmake-" + $version + "-win32-x86" Rename-Item $defaultinstallfolder C:\CMake +Add-Path "C:\CMake\bin" + echo "CMake = $version" >> ~\versions.txt diff --git a/coin/provisioning/common/helpers.ps1 b/coin/provisioning/common/helpers.ps1 index 3f7f0a68..846f58a5 100644 --- a/coin/provisioning/common/helpers.ps1 +++ b/coin/provisioning/common/helpers.ps1 @@ -86,7 +86,9 @@ function Add-Path [string]$Path ) echo "Adding $Path to Path" - [Environment]::SetEnvironmentVariable("Path", $env:Path + ";$Path", [EnvironmentVariableTarget]::Machine) + + $oldPath = [System.Environment]::GetEnvironmentVariable('Path', 'Machine') + [Environment]::SetEnvironmentVariable("Path", $oldPath + ";$Path", [EnvironmentVariableTarget]::Machine) } function is64bitWinHost diff --git a/coin/provisioning/common/install-ruby.ps1 b/coin/provisioning/common/install-ruby.ps1 index 81b01342..57cf227f 100644 --- a/coin/provisioning/common/install-ruby.ps1 +++ b/coin/provisioning/common/install-ruby.ps1 @@ -55,7 +55,6 @@ cmd /c "$rubyPackage /silent" echo "Cleaning $rubyPackage.." Remove-Item -Recurse -Force "$rubyPackage" -$oldPath = [System.Environment]::GetEnvironmentVariable('Path', 'Machine') -[Environment]::SetEnvironmentVariable("Path", $oldPath + ";C:\Ruby22-x64\bin", [EnvironmentVariableTarget]::Machine) +Add-Path "C:\Ruby22-x64\bin" echo "Ruby = $version" >> ~\versions.txt diff --git a/coin/provisioning/common/python.ps1 b/coin/provisioning/common/python.ps1 index 0be96eef..c3eba2d8 100644 --- a/coin/provisioning/common/python.ps1 +++ b/coin/provisioning/common/python.ps1 @@ -59,8 +59,7 @@ echo "Chancing allowZip64 value to 'True'..." echo "Remove $package..." del $package -$oldPath = [System.Environment]::GetEnvironmentVariable('Path', 'Machine') -[Environment]::SetEnvironmentVariable("Path", $oldPath + ";C:\Python27;C:\Python27\Scripts", [EnvironmentVariableTarget]::Machine) +Add-Path "C:\Python27;C:\Python27\Scripts" C:\Python27\python.exe -m ensurepip # Install python virtual env -- cgit v1.2.3 From a7b1b0035075b3a44e9e8e3801edf896501f6511 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tony=20Saraj=C3=A4rvi?= Date: Mon, 4 Sep 2017 12:17:45 +0300 Subject: Provisioning: Hide powershell progress bar for performance Change-Id: I74abdcc2e7d2dccf4f85cd64fe5fb4b56e54d613 Reviewed-by: Heikki Halmet --- coin/provisioning/common/helpers.ps1 | 1 + 1 file changed, 1 insertion(+) (limited to 'coin/provisioning/common') diff --git a/coin/provisioning/common/helpers.ps1 b/coin/provisioning/common/helpers.ps1 index 846f58a5..b957603a 100644 --- a/coin/provisioning/common/helpers.ps1 +++ b/coin/provisioning/common/helpers.ps1 @@ -69,6 +69,7 @@ function Download [string] $CachedUrl = $(BadParam("the locally cached URL")), [string] $Destination = $(BadParam("a download target location")) ) + $ProgressPreference = 'SilentlyContinue' try { if ($CachedUrl.StartsWith("http")) { Invoke-WebRequest -UseBasicParsing $CachedUrl -OutFile $Destination -- cgit v1.2.3 From c48355ebb58cb058df5b2ca519b6b89fbd09f380 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simo=20F=C3=A4lt?= Date: Tue, 5 Sep 2017 07:37:04 +0300 Subject: Provisioning: Fix DownloadURL utility's shasum check MacOS 10.10 has older shasum tool, which does not support oneliner verification. Change-Id: If00b846d5772aa1991960675d022249d63e7bd77 Reviewed-by: Simon Hausmann --- coin/provisioning/common/DownloadURL.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'coin/provisioning/common') diff --git a/coin/provisioning/common/DownloadURL.sh b/coin/provisioning/common/DownloadURL.sh index 305f2675..a663b602 100644 --- a/coin/provisioning/common/DownloadURL.sh +++ b/coin/provisioning/common/DownloadURL.sh @@ -70,7 +70,8 @@ function DownloadURL { esac } echo "Checking SHA1 on PKG '$targetFile'" - echo "$expectedSha1 *$targetFile" | shasum --check || throw $ExceptionSHA1 + echo "$expectedSha1 *$targetFile" > $targetFile.sha1 + /usr/bin/shasum --check $targetFile.sha1 || throw $ExceptionSHA1 ) catch || { -- cgit v1.2.3 From 92d1bdcb43e988919bfdcb91c0e6f366bed07145 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simo=20F=C3=A4lt?= Date: Thu, 7 Sep 2017 12:07:25 +0300 Subject: Provisioning: Fix shasum path Commit c48355ebb58cb058df5b2ca519b6b89fbd09f380 changed the path of shasum, which was not intended. While the DownloadURL.sh utility is used by rhel in addition to macOS we can't rely on /usr/bin/shasum but we have to use the one found from PATH. Change-Id: I67bb37dcb72ba3d8d1f279646e44228b27137ec9 Reviewed-by: Simon Hausmann --- coin/provisioning/common/DownloadURL.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'coin/provisioning/common') diff --git a/coin/provisioning/common/DownloadURL.sh b/coin/provisioning/common/DownloadURL.sh index a663b602..c60fae21 100644 --- a/coin/provisioning/common/DownloadURL.sh +++ b/coin/provisioning/common/DownloadURL.sh @@ -71,7 +71,7 @@ function DownloadURL { } echo "Checking SHA1 on PKG '$targetFile'" echo "$expectedSha1 *$targetFile" > $targetFile.sha1 - /usr/bin/shasum --check $targetFile.sha1 || throw $ExceptionSHA1 + shasum --check $targetFile.sha1 || throw $ExceptionSHA1 ) catch || { -- cgit v1.2.3 From 892833cda910143a8cfd73062c90c8ac080dd8fe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tony=20Saraj=C3=A4rvi?= Date: Mon, 4 Sep 2017 12:49:20 +0300 Subject: Provisioning: Invoke installer with Start-Process MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit By launching an installer with Start-Process and -Wait, we make sure no handles are left holding on to the installer when we try to delete it at cleanup. Change-Id: Ic9b700ea1ce9e70089ba4cb7e91d9765ca976333 Reviewed-by: Simon Hausmann Reviewed-by: Jędrzej Nowacki --- coin/provisioning/common/vc_redist.ps1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'coin/provisioning/common') diff --git a/coin/provisioning/common/vc_redist.ps1 b/coin/provisioning/common/vc_redist.ps1 index 95567669..4213dde9 100644 --- a/coin/provisioning/common/vc_redist.ps1 +++ b/coin/provisioning/common/vc_redist.ps1 @@ -59,6 +59,6 @@ echo "Fetching from URL..." Download $externalUrl $internalUrl $package Verify-Checksum $package $sha1 echo "Installing $package..." -cmd /c "$package /q" +Start-Process -FilePath $package -ArgumentList "/q" -Wait echo "Remove $package..." del $package -- cgit v1.2.3 From 2a5f54d07e9e935a0c86a0d3fdcf223dd0863f38 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tony=20Saraj=C3=A4rvi?= Date: Tue, 29 Aug 2017 09:31:43 +0300 Subject: provisioning: install MinGW 530 and 630 for Win10 x64 MinGW is an alternative option for Visual Studio. It's used to create desktop builds and for cross compiling Android and QNX. At this point it is still unclear which version is going to be used for what, but as both are supported, let's think ahead and provide them both. This also allows us to debug with the other, if the other is causing problems. Task-number: QTQAINFRA-1289 Change-Id: I2a922669c07d49370e608c093be80481c8613dc7 Reviewed-by: Jani Heikkinen --- coin/provisioning/common/install-mingw.ps1 | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 coin/provisioning/common/install-mingw.ps1 (limited to 'coin/provisioning/common') diff --git a/coin/provisioning/common/install-mingw.ps1 b/coin/provisioning/common/install-mingw.ps1 new file mode 100644 index 00000000..fc02631d --- /dev/null +++ b/coin/provisioning/common/install-mingw.ps1 @@ -0,0 +1,26 @@ +function InstallMinGW +{ + Param ( + [string] $version = $(BadParam("the version being printed to versions.txt")), + [string] $release = $(BadParam("release part of the file name")) + ) + + $envvar = "MINGW$version" + $envvar = $envvar -replace '["."]' + $targetdir = "C:\$envvar" + $url_cache = "\\ci-files01-hki.intra.qt.io\provisioning\windows\i686-" + $version + "-" + $release + ".7z" + + $mingwPackage = "C:\Windows\Temp\MinGW-$version.zip" + Copy-Item $url_cache $mingwPackage + + Get-ChildItem $mingwPackage | % {& "C:\Utils\sevenzip\7z.exe" "x" $_.fullname "-o$TARGETDIR"} + + echo "Adding MinGW environment variable." + [Environment]::SetEnvironmentVariable("$envvar", "$targetdir\mingw32", [EnvironmentVariableTarget]::Machine) + + echo "Cleaning $mingwPackage.." + Remove-Item -Recurse -Force "$mingwPackage" + + echo "MinGW = $version $release" >> ~\versions.txt + +} -- cgit v1.2.3 From b0a9259c6ee24673fc5579ba33063e9a7619a3d2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tony=20Saraj=C3=A4rvi?= Date: Fri, 25 Aug 2017 11:32:34 +0300 Subject: Provision and build QNX660 on Win 10 x64 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Changes the mingw from 4.9 to 5.3. Task-number: QTQAINFRA-1208 Change-Id: I360b9806c35e597a4b9fd0d57c10eebfb8643905 Reviewed-by: Sami Nurmenniemi Reviewed-by: Simo Fält --- coin/provisioning/common/install-qnx660.ps1 | 46 +++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 coin/provisioning/common/install-qnx660.ps1 (limited to 'coin/provisioning/common') diff --git a/coin/provisioning/common/install-qnx660.ps1 b/coin/provisioning/common/install-qnx660.ps1 new file mode 100644 index 00000000..bf9c9d09 --- /dev/null +++ b/coin/provisioning/common/install-qnx660.ps1 @@ -0,0 +1,46 @@ +############################################################################ +## +## Copyright (C) 2017 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$ +## +############################################################################# + +. "$PSScriptRoot\helpers.ps1" + +# This script will install QNX 6.6.0 + +$version = "6.6.0" +$nondottedversion = $version -replace '[.]','' +$targetFolder = "c:" +$url_cache = "\\ci-files01-hki.intra.qt.io\provisioning\windows\qnx" + $nondottedversion + ".zip" + +Get-ChildItem $url_cache | % {& "C:\Utils\sevenzip\7z.exe" "x" $_.fullname -o"C:\"} + +[Environment]::SetEnvironmentVariable("QNX_660", "$targetFolder", "Machine") +echo "QNX = $version" >> ~\versions.txt -- cgit v1.2.3