From 835ef953f026dcad106b9fe00e1504f4526d5a08 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tony=20Saraj=C3=A4rvi?= Date: Tue, 22 Aug 2017 15:06:23 +0300 Subject: Provisioning: Fine tune cmake provisioning script Add version printing and move version strings to variables for easier reuse. Change-Id: I5372872bf455609dfb7cc7bbcf7a110cd71933fb Reviewed-by: Heikki Halmet --- coin/provisioning/common/cmake.ps1 | 55 +++++++++++++++++++++++++++++++++++--- 1 file changed, 51 insertions(+), 4 deletions(-) (limited to 'coin/provisioning/common') diff --git a/coin/provisioning/common/cmake.ps1 b/coin/provisioning/common/cmake.ps1 index 197eec57..50e2e82c 100644 --- a/coin/provisioning/common/cmake.ps1 +++ b/coin/provisioning/common/cmake.ps1 @@ -1,10 +1,57 @@ +############################################################################# +## +## 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" -$zip = "c:\users\qt\downloads\cmake-3.6.2-win32-x86.zip" +$majorminorversion = "3.6" +$version = "3.6.2" + +$zip = "c:\users\qt\downloads\cmake-" + $version + "-win32-x86.zip" +$officialurl = "https://cmake.org/files/v" + $majorminorversion + "/cmake-" + $version + "-win32-x86.zip" +$cachedurl = "\\ci-files01-hki.intra.qt.io\provisioning\cmake\cmake-" + $version + "-win32-x86.zip" -Download https://cmake.org/files/v3.6/cmake-3.6.2-win32-x86.zip \\ci-files01-hki.intra.qt.io\provisioning\cmake\cmake-3.6.2-win32-x86.zip $zip +Download $officialurl $cachedurl $zip Verify-Checksum $zip "541F6E7EFD228E46770B8631FFE57097576E4D4E" Extract-Zip $zip C: -Remove-Item C:\CMake -Force -Recurse -Rename-Item C:\cmake-3.6.2-win32-x86 C:\CMake +# TODO: Remove line below after all Windows TIER2 VMs are based on vanilla OS +if((Test-Path -Path "C:\CMake" )){ + try { + Rename-Item -ErrorAction 'Stop' "C:\CMake" C:\CMake_old + } catch {} +} +$defaultinstallfolder = "C:\cmake-" + $version + "-win32-x86" +Rename-Item $defaultinstallfolder C:\CMake + +echo "CMake = $version" >> ~\versions.txt + -- cgit v1.2.3 From c7a9bb92e1ed46464a38006832a010a719290779 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joni=20J=C3=A4ntti?= Date: Fri, 25 Aug 2017 09:02:36 +0300 Subject: Fix adding to path lines for Windows provisioning scripts MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Currently the path addition command will forget the previous addition when adding a new string. This hasn't been found out because python was the only script using this command. Now we also need to set the path for ruby, so the python string is left out. Change-Id: I39721d78111550189e52a9f095030033f9660c0a Reviewed-by: Tony Sarajärvi Reviewed-by: Joni Jäntti --- coin/provisioning/common/install-ruby.ps1 | 3 +++ coin/provisioning/common/python.ps1 | 4 +++- 2 files changed, 6 insertions(+), 1 deletion(-) (limited to 'coin/provisioning/common') diff --git a/coin/provisioning/common/install-ruby.ps1 b/coin/provisioning/common/install-ruby.ps1 index 332a3a89..be0bc3eb 100644 --- a/coin/provisioning/common/install-ruby.ps1 +++ b/coin/provisioning/common/install-ruby.ps1 @@ -48,4 +48,7 @@ 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) + echo "Ruby = $version" >> ~\versions.txt diff --git a/coin/provisioning/common/python.ps1 b/coin/provisioning/common/python.ps1 index 6c88689a..29114456 100644 --- a/coin/provisioning/common/python.ps1 +++ b/coin/provisioning/common/python.ps1 @@ -62,7 +62,9 @@ echo "Chancing allowZip64 value to 'True'..." (Get-Content C:\Python27\lib\zipfile.py) | ForEach-Object { $_ -replace "allowZip64=False", "allowZip64=True" } | Set-Content C:\Python27\lib\zipfile.py echo "Remove $package..." del $package -[Environment]::SetEnvironmentVariable("Path", $env:Path + ";C:\Python27;C:\Python27\Scripts", [EnvironmentVariableTarget]::Machine) + +$oldPath = [System.Environment]::GetEnvironmentVariable('Path', 'Machine') +[Environment]::SetEnvironmentVariable("Path", $oldPath + ";C:\Python27;C:\Python27\Scripts", [EnvironmentVariableTarget]::Machine) C:\Python27\python.exe -m ensurepip # Install python virtual env -- cgit v1.2.3 From 1bd2b2acfa5eff4a78b20fb9a0b49c79107a2b3a Mon Sep 17 00:00:00 2001 From: Simon Hausmann Date: Mon, 28 Aug 2017 12:55:16 +0200 Subject: Fix code duplication for cmake installation on Linux Share the code for installing cmake on Linux. Change-Id: I535f2696151ea4db26dc7194a1fe7016799ed0e2 Reviewed-by: Simon Hausmann --- coin/provisioning/common/cmake_linux.sh | 53 +++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100755 coin/provisioning/common/cmake_linux.sh (limited to 'coin/provisioning/common') diff --git a/coin/provisioning/common/cmake_linux.sh b/coin/provisioning/common/cmake_linux.sh new file mode 100755 index 00000000..c23cf9b2 --- /dev/null +++ b/coin/provisioning/common/cmake_linux.sh @@ -0,0 +1,53 @@ +#!/bin/bash + +############################################################################# +## +## Copyright (C) 2016 The Qt Company Ltd. +## Contact: http://www.qt.io/licensing/ +## +## This file is part of the test suite 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 installs CMake 3.6.2 + +# CMake is needed for autotests that verify that Qt can be built with CMake + +# shellcheck source=../common/InstallFromCompressedFileFromURL.sh +source "${BASH_SOURCE%/*}/../common/InstallFromCompressedFileFromURL.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" +targetFolder="/opt/cmake-$version" +appPrefix="cmake-$version-Linux-x86_64" + +InstallFromCompressedFileFromURL "$PrimaryUrl" "$AltUrl" "$SHA1" "$targetFolder" "$appPrefix" + +echo "Adding $targetFolder/bin to PATH" +echo "export PATH=$targetFolder/bin:\$PATH" >> ~/.bashrc -- cgit v1.2.3 From a99d3432f71c4be5045ae2cdcc3b7070de5abe23 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simo=20F=C3=A4lt?= Date: Wed, 26 Jul 2017 10:19:45 +0300 Subject: Install python3 on all platforms Python3 is required in 5.6 by pyside-setup. Task-number: QTAUTO-345 Change-Id: If11ca425fa08cce8a518710ded0a6ec58159343d Reviewed-by: Simon Hausmann (cherry picked from commit a5f3f8ed482d314d092e1a6ddc5568839bb59c74) (cherry picked from commit a7658388892bc70c3c5f3a6f6e31639ef5b766d1) (cherry picked from commit 1859f9b26ce0177cb83e917148b10ff08bb25db7) --- coin/provisioning/common/InstallPKGFromURL.sh | 104 ++++++++++++++++++++++++++ coin/provisioning/common/python3.ps1 | 70 +++++++++++++++++ coin/provisioning/common/python3.sh | 52 +++++++++++++ coin/provisioning/common/vc_redist.ps1 | 64 ++++++++++++++++ 4 files changed, 290 insertions(+) create mode 100644 coin/provisioning/common/InstallPKGFromURL.sh create mode 100644 coin/provisioning/common/python3.ps1 create mode 100755 coin/provisioning/common/python3.sh create mode 100644 coin/provisioning/common/vc_redist.ps1 (limited to 'coin/provisioning/common') diff --git a/coin/provisioning/common/InstallPKGFromURL.sh b/coin/provisioning/common/InstallPKGFromURL.sh new file mode 100644 index 00000000..c00b646c --- /dev/null +++ b/coin/provisioning/common/InstallPKGFromURL.sh @@ -0,0 +1,104 @@ +#!/bin/bash + +############################################################################# +## +## 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$ +## +############################################################################# + +# shellcheck source=try_catch.sh +source "${BASH_SOURCE%/*}/try_catch.sh" + +ExceptionCreateTmpFile=100 +ExceptionDownloadPrimaryUrl=101 +ExceptionDownloadAltUrl=102 +ExceptionSHA1=103 +ExceptionInstallerPKG=104 +ExceptionDeleteTmpFile=105 + + +function InstallPKGFromURL { + url=$1 + url_alt=$2 + expectedSha1=$3 + targetDirectory=$4 + + try + ( + echo "Creating temporary file" + targetFile=$(mktemp "$TMPDIR$(uuidgen).pkg") || trow $ExceptionCreateTmpFile + try + ( + echo "Downloading PKG from primary URL '$url'" + curl --fail -L --retry 5 --retry-delay 5 -o "$targetFile" "$url" || throw $ExceptionDownloadPrimaryUrl + ) + catch || { + case $ex_code in + $ExceptionDownloadPrimaryUrl) + echo "Failed to download '$url' multiple times" + echo "Downloading PKG from alternative URL '$url_alt'" + curl --fail -L --retry 5 --retry-delay 5 -o "$targetFile" "$url_alt" || throw $ExceptionDownloadAltUrl + ;; + esac + } + echo "Checking SHA1 on PKG '$targetFile'" + echo "$expectedSha1 *$targetFile" > $targetFile.sha1 + /usr/bin/shasum --check $targetFile.sha1 || throw $ExceptionSHA1 + echo "Run installer on PKG" + sudo installer -package "$targetFile" -target "$targetDirectory" || throw $ExceptionInstallerPKG + echo "Removing file '$targetFile'" + rm "$targetFile" || throw $ExceptionDeleteTmpFile + ) + + catch || { + case $ex_code in + $ExceptionCreateTmpFile) + echo "Failed to create temporary file" + exit 1; + ;; + $ExceptionDownloadAltUrl) + echo "Failed downloading PKG from primary and alternative URLs" + exit 1; + ;; + $ExceptionSHA1) + echo "Failed to check sha1sum." + exit 1; + ;; + $ExceptionInstallerPKG) + echo "Failed running installer on PKG." + exit 1; + ;; + $ExceptionDeleteTmpFile) + echo "Failed deleting temporary file." + exit 1; + ;; + esac + } +} diff --git a/coin/provisioning/common/python3.ps1 b/coin/provisioning/common/python3.ps1 new file mode 100644 index 00000000..3c565874 --- /dev/null +++ b/coin/provisioning/common/python3.ps1 @@ -0,0 +1,70 @@ +############################################################################# +## +## Copyright (C) 2017 The Qt Company Ltd. +## Copyright (C) 2017 Pelagicore AG +## Contact: http://www.qt.io/licensing/ +## +## This file is part of the test suite 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$ +## +############################################################################# + +param([Int32]$archVer=32) +. "$PSScriptRoot\helpers.ps1" + +# This script installs Python $version. +# Python3 is required for building some qt modules. + +$version = "3.6.1" +$package = "C:\Windows\temp\python-$version.exe" +$install_path = "C:\Python36" + +# check bit version +if ( $archVer -eq 64 ) { + echo "Running in 64 bit system" + $externalUrl = "https://www.python.org/ftp/python/$version/python-$version-amd64.exe" + $internalUrl = "http://ci-files01-hki.ci.local/input/windows/python-$version-amd64.exe" + $sha1 = "bf54252c4065b20f4a111cc39cf5215fb1edccff" +} +else { + $externalUrl = "https://www.python.org/ftp/python/$version/python-$version.exe" + $internalUrl = "http://ci-files01-hki.ci.local/input/windows/python-$version.exe" + $sha1 = "76c50b747237a0974126dd8b32ea036dd77b2ad1" +} + +echo "Fetching from URL..." +Download $externalUrl $internalUrl $package +Verify-Checksum $package $sha1 +echo "Installing $package..." +cmd /c "$package /q TargetDir=$install_path" +echo "Remove $package..." +del $package + +[Environment]::SetEnvironmentVariable("PYTHON3_PATH", "$install_path", [EnvironmentVariableTarget]::Machine) +[Environment]::SetEnvironmentVariable("PIP3_PATH", "$install_path\Scripts", [EnvironmentVariableTarget]::Machine) + +# Install python virtual env +cmd /c "$install_path\Scripts\pip3.exe install virtualenv" diff --git a/coin/provisioning/common/python3.sh b/coin/provisioning/common/python3.sh new file mode 100755 index 00000000..56e82386 --- /dev/null +++ b/coin/provisioning/common/python3.sh @@ -0,0 +1,52 @@ +#!/bin/bash + +############################################################################# +## +## Copyright (C) 2017 The Qt Company Ltd. +## Copyright (C) 2017 Pelagicore AG +## 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 installs python3 + +source "${BASH_SOURCE%/*}/InstallPKGFromURL.sh" + +PrimaryUrl="http://ci-files01-hki.ci.local/input/mac/python-3.6.1-macosx10.6.pkg" +AltUrl="https://www.python.org/ftp/python/3.6.1/python-3.6.1-macosx10.6.pkg" +SHA1="ae0c749544c2d573c3cc29c4c2d7d9a595db28f9" +DestDir="/" + +InstallPKGFromURL "$PrimaryUrl" "$AltUrl" "$SHA1" "$DestDir" + +/Library/Frameworks/Python.framework/Versions/3.6/bin/pip3 install virtualenv + +echo "export PYTHON3_PATH=/Library/Frameworks/Python.framework/Versions/3.6/bin" >> ~/.bashrc +echo "export PIP3_PATH=/Library/Frameworks/Python.framework/Versions/3.6/bin" >> ~/.bashrc +echo "python3 = 3.6.1" >> ~/versions.txt diff --git a/coin/provisioning/common/vc_redist.ps1 b/coin/provisioning/common/vc_redist.ps1 new file mode 100644 index 00000000..95567669 --- /dev/null +++ b/coin/provisioning/common/vc_redist.ps1 @@ -0,0 +1,64 @@ +############################################################################# +## +## Copyright (C) 2017 The Qt Company Ltd. +## Copyright (C) 2017 Pelagicore AG +## Contact: http://www.qt.io/licensing/ +## +## This file is part of the test suite 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$ +## +############################################################################# + +param([Int32]$archVer=32) +. "$PSScriptRoot\helpers.ps1" + +# This script installs Visual C++ Redistributable for Visual Studio 2015 +# This is a dependency of the current python3 version + +# check bit version +if ( $archVer -eq 64 ) { + echo "Running in 64 bit system" + $arch = "x64" + $externalUrl = "https://download.microsoft.com/download/9/3/F/93FCF1E7-E6A4-478B-96E7-D4B285925B00/vc_redist.x64.exe" + $internalUrl = "http://ci-files01-hki.ci.local/input/windows/vc_redist.x64.exe" + $sha1 = "3155cb0f146b927fcc30647c1a904cd162548c8c" +} +else { + $arch = "x86" + $externalUrl = "https://download.microsoft.com/download/9/3/F/93FCF1E7-E6A4-478B-96E7-D4B285925B00/vc_redist.x86.exe" + $internalUrl = "http://ci-files01-hki.ci.local/input/windows/vc_redist.x86.exe" + $sha1 = "bfb74e498c44d3a103ca3aa2831763fb417134d1" +} + +$package = "C:\Windows\temp\vc_redist.$arch.exe" + +echo "Fetching from URL..." +Download $externalUrl $internalUrl $package +Verify-Checksum $package $sha1 +echo "Installing $package..." +cmd /c "$package /q" +echo "Remove $package..." +del $package -- cgit v1.2.3