diff options
Diffstat (limited to 'coin')
58 files changed, 2113 insertions, 225 deletions
diff --git a/coin/README b/coin/README index 2fb3fe2d..80f02fd4 100644 --- a/coin/README +++ b/coin/README @@ -3,6 +3,11 @@ Continuous Integration This directory contains files used by Qt's Continuous Integration system (Coin). +pre-provisioning +---------------- +Contains scripts which are used to install software to tier1 machines manually. +E.g. Visual studio installation takes too long to be included to automatic provisioning of tier2 templates. + provisioning ------------ Contains scripts that apply to different test machines in order to run automatic tests on them. diff --git a/coin/platform_configs/default.txt b/coin/platform_configs/default.txt index 58f7967c..5f9aba51 100644 --- a/coin/platform_configs/default.txt +++ b/coin/platform_configs/default.txt @@ -1,25 +1,26 @@ Template Target OS Target arch Compiler Features ----------------------------------- ------------------- ----------- ----------- ------------------------------------------------------------------------------------- -qtci-windows-8-x86_64 MSVC2013 DeveloperBuild Release BuildExamples -qtci-windows-10-x86_64 MSVC2015 DeveloperBuild Release QtNamespace QtLibInfix -qtci-windows-8-x86 MSVC2013 Packaging DebugAndRelease Release OpenGLDynamic -qtci-windows-8-x86_64 MSVC2013 Packaging DebugAndRelease Release OpenGLDynamic -qtci-windows-7-x86 Mingw53 Packaging DebugAndRelease Release OpenGLDynamic -qtci-windows-10-x86 MSVC2015 Packaging DebugAndRelease Release OpenGLDynamic -qtci-windows-10-x86_64 MSVC2015 Packaging DebugAndRelease Release OpenGLDynamic -qtci-windows-8-x86_64 Windows_Phone_8_1 armv4 MSVC2013 Packaging DebugAndRelease Release DisableTests -qtci-windows-8-x86_64 WinRT_8_1 MSVC2013 Packaging DebugAndRelease Release DisableTests -qtci-linux-Ubuntu-14.04-x86_64 GCC NoWidgets ForceDebugInfo -qtci-linux-Ubuntu-14.04-x86_64 GCC DeveloperBuild OutOfSourceBuild QtLibInfix QtNamespace +qtci-windows-8-x86_64-2 MSVC2013 DeveloperBuild Release BuildExamples +qtci-windows-10-x86_64-5 MSVC2015 DeveloperBuild Release QtNamespace QtLibInfix +qtci-windows-8-x86-2 MSVC2013 Packaging DebugAndRelease Release ForceDebugInfo OpenGLDynamic +qtci-windows-8-x86_64-2 MSVC2013 Packaging DebugAndRelease Release ForceDebugInfo OpenGLDynamic +qtci-windows-7-x86-2 Mingw53 Packaging DebugAndRelease Release OpenGLDynamic +qtci-windows-10-x86-4 MSVC2015 Packaging DebugAndRelease Release ForceDebugInfo OpenGLDynamic +qtci-windows-10-x86_64-5 MSVC2015 Packaging DebugAndRelease Release ForceDebugInfo OpenGLDynamic +qtci-windows-10-x86_64-5 WinRT_10 x86 MSVC2015 Packaging DebugAndRelease Release ForceDebugInfo DisableTests +qtci-windows-10-x86_64-5 WinRT_10 armv7 MSVC2015 Packaging DebugAndRelease Release ForceDebugInfo DisableTests +qtci-linux-Ubuntu-16.04-x86_64 GCC NoWidgets ForceDebugInfo +qtci-linux-Ubuntu-16.04-x86_64 GCC DeveloperBuild OutOfSourceBuild QtLibInfix QtNamespace qtci-linux-openSUSE-42.1-x86_64 GCC DeveloperBuild NoPch -qtci-linux-RHEL-6.6-x86_64 GCC Release +qtci-linux-RHEL-6.6-x86_64 GCC Release ForceDebugInfo qtci-linux-RHEL-7.2-x86_64 GCC Packaging Release NoUseGoldLinker +qtci-macos-10.12-x86_64-8 Clang DebugAndRelease Release DisableTests +qtci-osx-10.11-x86_64-3 Clang DeveloperBuild Release QtNamespace NoPch DisableTests qtci-osx-10.10-x86_64 Clang Packaging DebugAndRelease Release -qtci-osx-10.9-x86_64 Clang DeveloperBuild Release QtNamespace NoPch -qtci-osx-10.9-x86_64 Clang Release NoFramework +qtci-osx-10.10-x86_64 Clang DeveloperBuild Release QtNamespace NoPch +qtci-osx-10.10-x86_64 Clang Release NoFramework qtci-osx-10.10-x86_64 IOS_ANY x86_64 Clang Release DisableTests Static -qtci-linux-RHEL-6.6-x86_64 Android_ANY armv7 GCC Packaging Release DisableTests OpenGLES2 NoUseGoldLinker -qtci-linux-Ubuntu-14.04-x86_64 Boot2Qt_Jethro armv7 GCC DisableTests -qtci-linux-Ubuntu-15.04-x86_64 UbuntuTouch_15_04 armv7 GCC Packaging DisableTests OpenGLES2 +qtci-linux-RHEL-7.2-x86_64 Android_ANY armv7 GCC Packaging Release DisableTests OpenGLES2 NoUseGoldLinker +qtci-linux-Ubuntu-16.04-x86_64 Boot2Qt_Jethro x86_64 GCC DisableTests qtci-linux-RHEL-6.6-x86_64 QNX_660 armv7 GCC Packaging Release DisableTests OpenGLES2 NoUseGoldLinker -qtci-linux-Ubuntu-14.04-x86_64 GCC TestOnly LicenseCheck +qtci-linux-Ubuntu-16.04-x86_64 GCC TestOnly LicenseCheck diff --git a/coin/platform_configs/qt5.txt b/coin/platform_configs/qt5.txt index 797d62cd..822ef54c 100644 --- a/coin/platform_configs/qt5.txt +++ b/coin/platform_configs/qt5.txt @@ -1,17 +1,13 @@ Template Target OS Target arch Compiler Features --------------------------- ------------------- ----------- ----------- ------------------------------------------------------------------------------------- -qtci-windows-10-x86_64 WinRT_10 x86 MSVC2015 Packaging DebugAndRelease Release DisableTests -qtci-windows-10-x86_64 WinRT_10 MSVC2015 Packaging DebugAndRelease Release DisableTests -qtci-linux-RHEL-6.6-x86_64 Android_ANY x86 GCC Packaging Release DisableTests OpenGLES2 NoUseGoldLinker -qtci-windows-7-x86 Android_ANY armv7 Mingw49 Packaging Release DisableTests OpenGLES2 -qtci-windows-7-x86 Android_ANY x86 Mingw49 Packaging Release DisableTests OpenGLES2 -qtci-osx-10.10-x86_64 Android_ANY armv7 GCC Packaging Release DisableTests OpenGLES2 -qtci-osx-10.10-x86_64 Android_ANY x86 GCC Packaging Release DisableTests OpenGLES2 +qtci-windows-10-x86_64-5 WinRT_10 MSVC2015 Packaging DebugAndRelease Release DisableTests +qtci-linux-RHEL-7.2-x86_64 Android_ANY x86 GCC Packaging Release DisableTests OpenGLES2 NoUseGoldLinker +qtci-windows-7-x86-2 Android_ANY armv7 Mingw53 Packaging Release DisableTests OpenGLES2 +qtci-windows-7-x86-2 Android_ANY x86 Mingw53 Packaging Release DisableTests OpenGLES2 +qtci-macos-10.12-x86_64-8 Android_ANY armv7 GCC Packaging Release DisableTests OpenGLES2 +qtci-macos-10.12-x86_64-8 Android_ANY x86 GCC Packaging Release DisableTests OpenGLES2 qtci-linux-RHEL-6.6-x86_64 QNX_660 x86 GCC Packaging Release DisableTests OpenGLES2 NoUseGoldLinker -qtci-windows-7-x86 QNX_660 armv7 Mingw49 Packaging Release DisableTests OpenGLES2 -qtci-windows-7-x86 QNX_660 x86 Mingw49 Packaging Release DisableTests OpenGLES2 -qtci-windows-8-x86_64 Windows_Phone_8_1 x86 MSVC2013 Packaging DebugAndRelease Release DisableTests +qtci-windows-7-x86-2 QNX_660 armv7 Mingw53 Packaging Release DisableTests OpenGLES2 +qtci-windows-7-x86-2 QNX_660 x86 Mingw53 Packaging Release DisableTests OpenGLES2 qtci-osx-10.10-x86_64 IOS_ANY multi Clang Packaging DebugAndRelease DisableTests Static - -# target arch is used here only for documentation the value is ignored -qtci-windows-10-x86_64 WinRT_10 armv7 MSVC2015 Packaging DebugAndRelease Release DisableTests +qtci-linux-RHEL-7.2-x86_64 INTEGRITY_11_04 armv7 GCC Packaging Release DisableTests OpenGLES2 NoUseGoldLinker diff --git a/coin/platform_configs/qtdeclarative.txt b/coin/platform_configs/qtdeclarative.txt new file mode 100644 index 00000000..c7552671 --- /dev/null +++ b/coin/platform_configs/qtdeclarative.txt @@ -0,0 +1,3 @@ +Template Target OS Target arch Compiler Features +------------------------------- ------------------- ----------- ----------- ------------------------------------------------------------------------------------- +qtci-linux-Ubuntu-16.04-x86_64 Boot2Qt_Jethro x86_64 GCC DeveloperBuild diff --git a/coin/provisioning/common/msvc2015_update.ps1 b/coin/pre-provisioning/qtci-windows-10-x86/msvc2015_update.ps1 index 618c87c4..fb6a6594 100644 --- a/coin/provisioning/common/msvc2015_update.ps1 +++ b/coin/pre-provisioning/qtci-windows-10-x86/msvc2015_update.ps1 @@ -30,7 +30,7 @@ ## $QT_END_LICENSE$ ## ############################################################################# -. "$PSScriptRoot\helpers.ps1" +. "$PSScriptRoot\..\..\provisioning\common\helpers.ps1" # Install Visual Studio $version with $update_version # Original download page: https://www.visualstudio.com/en-us/news/releasenotes/vs2015-update3-vs diff --git a/coin/pre-provisioning/qtci-windows-10-x86/msvc2017.ps1 b/coin/pre-provisioning/qtci-windows-10-x86/msvc2017.ps1 new file mode 100644 index 00000000..46675c23 --- /dev/null +++ b/coin/pre-provisioning/qtci-windows-10-x86/msvc2017.ps1 @@ -0,0 +1,49 @@ +############################################################################ +## +## 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\..\common\helpers.ps1" + +# This script will install Visual Studio 2017 + +$version = "2017" +$url_cache = "http://ci-files01-hki.ci.local/input/windows/mu_visual_studio_professional_" + $version + "_x86_x64_10049787.exe" +$sha1 = "8d678d27735018a99dc22ddb5412e4e6868991ae" +$msvcPackage = "C:\Windows\Temp\$version.exe" + + +Download $url_cache $url_cache $msvcPackage +Verify-Checksum $msvcPackage $sha1 +cmd /c "$msvcPackage --all --norestart --quiet --wait" +echo "Cleaning $msvcPackage.." +Remove-Item -Recurse -Force "$msvcPackage" +echo "Visual Studio = $version" >> ~\versions.txt diff --git a/coin/pre-provisioning/qtci-windows-10-x86_64/msvc2015_update.ps1 b/coin/pre-provisioning/qtci-windows-10-x86_64/msvc2015_update.ps1 new file mode 100644 index 00000000..fb6a6594 --- /dev/null +++ b/coin/pre-provisioning/qtci-windows-10-x86_64/msvc2015_update.ps1 @@ -0,0 +1,58 @@ +############################################################################# +## +## 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\..\..\provisioning\common\helpers.ps1" + +# Install Visual Studio $version with $update_version +# Original download page: https://www.visualstudio.com/en-us/news/releasenotes/vs2015-update3-vs +$version = "2015" +$update_version = "3" + +# Only way to install specific Visual studio release is to use feed.xml. +# Visual Studio $version setup will use the feed.xml that was available when $update_version released -> 'https://msdn.microsoft.com/en-us/library/mt653628.aspx' +# These parameters will install Visual Studio Enterprise Update $update_version (the original Update $update_version without any further Update $update_version-era updates) +$parameters = "/OverrideFeedURI http://download.microsoft.com/download/6/B/B/6BBD3561-D764-4F39-AB8E-05356A122545/20160628.2/enu/feed.xml" + +$msvc_web_installer = "vs" + $version + "_" + $update_version +$package = "C:\Windows\temp\$msvc_web_installer.exe" +$url_cache = "http://ci-files01-hki.ci.local/input/windows/$msvc_web_installer.exe" +$url_official = "https://go.microsoft.com/fwlink/?LinkId=691129" +$sha1 = "68abf90424aff604a04d6c61fb52adcd2cab2266" + +echo "Fetching Visual Studio $version update $update_version..." +Download $url_official $url_cache $package +Verify-Checksum $package $sha1 +echo "Installing Visual studio $version update $update_version..." +cmd /c "$package $parameters /norestart /Quiet" +remove-item $package + +echo "Visual Studio = $version update $update_version" >> ~\versions.txt diff --git a/coin/pre-provisioning/qtci-windows-10-x86_64/msvc2017.ps1 b/coin/pre-provisioning/qtci-windows-10-x86_64/msvc2017.ps1 new file mode 100644 index 00000000..46675c23 --- /dev/null +++ b/coin/pre-provisioning/qtci-windows-10-x86_64/msvc2017.ps1 @@ -0,0 +1,49 @@ +############################################################################ +## +## 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\..\common\helpers.ps1" + +# This script will install Visual Studio 2017 + +$version = "2017" +$url_cache = "http://ci-files01-hki.ci.local/input/windows/mu_visual_studio_professional_" + $version + "_x86_x64_10049787.exe" +$sha1 = "8d678d27735018a99dc22ddb5412e4e6868991ae" +$msvcPackage = "C:\Windows\Temp\$version.exe" + + +Download $url_cache $url_cache $msvcPackage +Verify-Checksum $msvcPackage $sha1 +cmd /c "$msvcPackage --all --norestart --quiet --wait" +echo "Cleaning $msvcPackage.." +Remove-Item -Recurse -Force "$msvcPackage" +echo "Visual Studio = $version" >> ~\versions.txt diff --git a/coin/provisioning/common/01-windows_removethemall.ps1 b/coin/provisioning/common/01-windows_removethemall.ps1 index 9e64a34d..ebbf15dd 100644 --- a/coin/provisioning/common/01-windows_removethemall.ps1 +++ b/coin/provisioning/common/01-windows_removethemall.ps1 @@ -55,11 +55,6 @@ Function Remove-Path { [System.Environment]::SetEnvironmentVariable($name,$value,$type) } -# Remove Python -Remove C:\Python27 -Remove-Path C:\python27\scripts -Remove-Path C:\python27 - # Remove Android sdk and ndk Remove C:\utils\android* [Environment]::SetEnvironmentVariable("ANDROID_NDK_HOME",$null,"User") diff --git a/coin/provisioning/common/DownloadURL.sh b/coin/provisioning/common/DownloadURL.sh index 9bf7fdb7..305f2675 100644 --- a/coin/provisioning/common/DownloadURL.sh +++ b/coin/provisioning/common/DownloadURL.sh @@ -79,6 +79,10 @@ function DownloadURL { echo "Failed downloading PKG from primary and alternative URLs" exit 1; ;; + $ExceptionSHA1) + echo "Failed checksum on $targetFile." + exit 1; + ;; esac } } diff --git a/coin/provisioning/common/InstallAppFromCompressedFileFromURL.sh b/coin/provisioning/common/InstallAppFromCompressedFileFromURL.sh new file mode 100644 index 00000000..b6072062 --- /dev/null +++ b/coin/provisioning/common/InstallAppFromCompressedFileFromURL.sh @@ -0,0 +1,127 @@ +#!/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$ +## +############################################################################# + +# This script receives URLs to a compressed file. It then downloads it, +# uncompresses it and installs it by default +# to /Applications/. This can be overridden by a target parameter. + +# shellcheck source=try_catch.sh +source "${BASH_SOURCE%/*}/try_catch.sh" +# shellcheck source=DownloadURL.sh +source "${BASH_SOURCE%/*}/DownloadURL.sh" + +ExceptionCreateTmpFile=100 +ExceptionCreateTmpDirectory=101 +ExceptionUncompress=102 +ExceptionMoveApp=103 +ExceptionDeleteTmpFile=104 +ExceptionRemoveTmpDirectory=105 +ExceptionUnknownFormat=106 + + +function InstallAppFromCompressedFileFromURL { + url=$1 + url_alt=$2 + expectedSha1=$3 + appPrefix=$4 + target=$5 + + if [ "" == "$target" ]; then + target="/Applications/" + fi + + try + ( + basefilename=${url##*/} + extension=${basefilename##*.} + filename=${basefilename%.*} + if [ "$extension" == "gz" ] && [ "${filename##*.}" == "tar" ]; then + extension="tar.gz" + fi + + echo "Extension for file: $extension" + echo "Creating temporary file and directory" + targetFile=$(mktemp "$TMPDIR$(uuidgen).$extension") || throw $ExceptionCreateTmpFile + targetDirectory=$(mktemp -d) || throw $ExceptionCreateTmpDirectory + DownloadURL "$url" "$url_alt" "$expectedSha1" "$targetFile" + echo "Uncompress $targetFile" + case $extension in + "tar.gz") + tar -xzf "$targetFile" --directory "$targetDirectory" || throw $ExceptionUncompress + ;; + "zip") + unzip "$targetFile" -d "$targetDirectory" || throw $ExceptionUncompress + ;; + *) + throw $ExceptionUnknownFormat + ;; + esac + echo "Moving app to '$target'" + sudo mv "$targetDirectory/$appPrefix/"* "$target" || throw $ExceptionMoveApp + echo "Removing file '$targetFile'" + rm "$targetFile" || throw $ExceptionDeleteTmpFile + echo "Removing directory '$targetDirectory'" + rm -rf "$targetDirectory" || throw $ExceptionRemoveTmpDirectory + ) + + catch || { + case $ex_code in + $ExceptionCreateTmpFile) + echo "Failed to create temporary file" + exit 1; + ;; + $ExceptionUncompress) + echo "Failed extracting compressed file." + exit 1; + ;; + $ExceptionMoveApp) + echo "Failed moving app to '$target'." + exit 1; + ;; + $ExceptionDeleteTmpFile) + echo "Failed deleting temporary file." + exit 1; + ;; + $ExceptionRemoveTmpDirectory) + echo "Failed deleting temporary file." + exit 1; + ;; + $ExceptionUnknownFormat) + echo "Unknown file format." + exit 1; + ;; + esac + } +} diff --git a/coin/provisioning/common/InstallFromCompressedFileFromURL.sh b/coin/provisioning/common/InstallFromCompressedFileFromURL.sh index 1f097d32..e3716597 100644 --- a/coin/provisioning/common/InstallFromCompressedFileFromURL.sh +++ b/coin/provisioning/common/InstallFromCompressedFileFromURL.sh @@ -80,7 +80,7 @@ function InstallFromCompressedFileFromURL { ;; esac echo "Moving app to $installDirectory" - sudo mkdir "$installDirectory" + sudo mkdir -p "$installDirectory" sudo mv "$targetDirectory/$appPrefix/"* "$installDirectory" || throw $ExceptionMoveApp echo "Removing file '$targetFile'" rm "$targetFile" || throw $ExceptionDeleteTmpFile diff --git a/coin/provisioning/common/InstallPKGFromURL.sh b/coin/provisioning/common/InstallPKGFromURL.sh new file mode 100644 index 00000000..07f23d62 --- /dev/null +++ b/coin/provisioning/common/InstallPKGFromURL.sh @@ -0,0 +1,103 @@ +#!/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" | shasum --check || 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/helpers.ps1 b/coin/provisioning/common/helpers.ps1 index 191be290..af7f79ff 100644 --- a/coin/provisioning/common/helpers.ps1 +++ b/coin/provisioning/common/helpers.ps1 @@ -24,7 +24,7 @@ function Extract-7Zip echo "Extracting '$Source' to '$Destination'..." if ((Get-Command "7z.exe" -ErrorAction SilentlyContinue) -eq $null) { - $zipExe = join-path ${env:ProgramFiles(x86)} '7-zip\7z.exe' + $zipExe = join-path (${env:ProgramFiles(x86)}, ${env:ProgramFiles} -ne $null)[0] '7-zip\7z.exe' if (-not (test-path $zipExe)) { $zipExe = join-path ${env:ProgramW6432} '7-zip\7z.exe' if (-not (test-path $zipExe)) { diff --git a/coin/provisioning/common/install_xcode.sh b/coin/provisioning/common/install_xcode.sh new file mode 100755 index 00000000..f8336bad --- /dev/null +++ b/coin/provisioning/common/install_xcode.sh @@ -0,0 +1,83 @@ +#!/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$ +## +############################################################################# + +# This script installs Xcode +# Prerequisites: Have Xcode prefetched to local cache as xz compressed. +# This can be achieved by fetching Xcode_8.xip from Apple Store. +# Uncompress it with 'xar -xf Xcode_8.xip' +# Then get https://gist.githubusercontent.com/pudquick/ff412bcb29c9c1fa4b8d/raw/24b25538ea8df8d0634a2a6189aa581ccc6a5b4b/parse_pbzx2.py +# with which you can run 'python parse_pbzx2.py Content'. +# This will give you a file called "Content.part00.cpio.xz" that +# can be renamed to Xcode_8.xz for this script. + + + +# shellcheck source=../common/try_catch.sh +source "${BASH_SOURCE%/*}/try_catch.sh" + +function InstallXCode() +{ + ExceptionCPIO=103 + ExceptionAcceptLicense=105 + + sourceFile=$1 + version=$2 + + try + ( + echo "Uncompressing and installing '$sourceFile'" + xzcat < "$sourceFile" | (cd /Applications/ && sudo cpio -vdmi) || throw $ExceptionCPIO + + echo "Accept license" + sudo xcodebuild -license accept || throw $ExceptionAcceptLicense + + echo "Xcode = $version" >> ~/versions.txt + ) + catch || { + case $ex_code in + $ExceptionCPIO) + echo "Failed to unarchive .cpio." + exit 1; + ;; + $ExceptionAcceptLicense) + echo "Failed to accept license." + exit 1; + ;; + + esac + } + +} + diff --git a/coin/provisioning/common/02-python.ps1 b/coin/provisioning/common/python.ps1 index 32972830..3edbc412 100644 --- a/coin/provisioning/common/02-python.ps1 +++ b/coin/provisioning/common/python.ps1 @@ -30,39 +30,40 @@ ## $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.10" +$version = "2.7.13" $package = "C:\Windows\temp\python-$version.msi" # check bit version -if ([System.Environment]::Is64BitProcess -eq $TRUE) { +if ( $archVer -eq 64 ) { + echo "Running in 64 bit system" $externalUrl = "https://www.python.org/ftp/python/$version/python-$version.amd64.msi" $internalUrl = "http://ci-files01-hki.ci.local/input/windows/python-$version.amd64.msi" - $sha1 = "f3a474f6ab191f9b43034c0fb5c98301553775d4" + $sha1 = "d9113142bae8829365c595735e1ad1f9f5e2894c" } else { $externalUrl = "https://www.python.org/ftp/python/$version/python-$version.msi" $internalUrl = "http://ci-files01-hki.ci.local/input/windows/python-$version.msi" - $sha1 = "9e62f37407e6964ee0374b32869b7b4ab050d12a" + $sha1 = "7e3b54236dbdbea8fe2458db501176578a4d59c0" } echo "Fetching from URL..." Download $externalUrl $internalUrl $package Verify-Checksum $package $sha1 echo "Installing $package..." -cmd /c "$package /q" +cmd /c "msiexec /passive /i $package ALLUSERS=1" # We need to change allowZip64 from 'False' to 'True' to be able to create ZIP files that use the ZIP64 extensions when the zipfile is larger than 2 GB 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 -Add-Path $path +[Environment]::SetEnvironmentVariable("Path", $env:Path + ";C:\Python27;C:\Python27\Scripts", [EnvironmentVariableTarget]::Machine) -& python -m ensurepip +C:\Python27\python.exe -m ensurepip # Install python virtual env -pip.exe install virtualenv +C:\Python27\Scripts\pip.exe install virtualenv diff --git a/coin/provisioning/qtci-linux-RHEL-6.6-x86_64/android_linux.sh b/coin/provisioning/qtci-linux-RHEL-6.6-x86_64/android_linux.sh index 1d0630ce..6bb7a37e 100644 --- a/coin/provisioning/qtci-linux-RHEL-6.6-x86_64/android_linux.sh +++ b/coin/provisioning/qtci-linux-RHEL-6.6-x86_64/android_linux.sh @@ -35,13 +35,13 @@ # This script install Android sdk and ndk. -# It also runs update for SDK API level 18, latest SDK tools, latest platform-tools and build-tools version 23.0.3 +# It also runs update for SDK API level 21, latest SDK tools, latest platform-tools and build-tools version 23.0.3 # Build-tools version 23.0.3 is the latest usable version for Red Hat 6. Newer version of build-tools, version 24.x.x, requires GLIBC_2.14, which is not available in Red Hat 6. # Android 16 is the minimum requirement for Qt 5.7 applications, but we need something more recent than that for building Qt itself. -# E.g The Bluetooth features that require Android 18 will disable themselves dynamically when running on an Android 16 device. -# That's why we need to use Andoid-18 API version and decision was made to use it also with Qt 5.6. +# E.g The Bluetooth features that require Android 21 will disable themselves dynamically when running on an Android 16 device. +# That's why we need to use Andoid-21 API version in Qt 5.9. set -e targetFolder="/opt/android" @@ -50,7 +50,7 @@ baseUrl="http://ci-files01-hki.ci.local/input/android" # SDK sdkPackage="android-sdk_r24.4.1-linux.tgz" sdkBuildToolsVersion="23.0.3" -sdkApiLevel="android-18" +sdkApiLevel="android-21" sdkUrl="$baseUrl/$sdkPackage" sdkSha1="725bb360f0f7d04eaccff5a2d57abdd49061326d" sdkTargetFile="$targetFolder/$sdkPackage" @@ -96,13 +96,11 @@ InstallAndroidPackage "$targetFolder" $sdkPackage $sdkUrl $sdkSha1 $sdkTargetFil echo "Installing Android NDK version $ndkPackage..." InstallAndroidPackage "$targetFolder" $ndkPackage $ndkUrl $ndkSha1 $ndkTargetFile "$ndkExtract" $ndkFolderName $ndkName -# run update for Android SDK and install SDK API version 18, latest SDK tools, platform-tools and build-tools -echo "Running Android SDK update for API version 18, SDK-tools, platform-tools and build-tools-$sdkBuildToolsVersion..." +# run update for Android SDK and install SDK API version 21, latest SDK tools, platform-tools and build-tools +echo "Running Android SDK update for API version 21, SDK-tools, platform-tools and build-tools-$sdkBuildToolsVersion..." echo "y" |"$targetFolder"/sdk/tools/android update sdk --no-ui --all --filter $sdkApiLevel,tools,platform-tools,build-tools-$sdkBuildToolsVersion || echo "Failed to run update" -# For Qt 5.6, we by default require API levels 10, 11, 16 and 18, but we can override this by setting ANDROID_API_VERSION=android-18 -# From Qt 5.7 forward, if android-16 is not installed, Qt will automatically use more recent one. -echo 'export ANDROID_API_VERSION=android-18' >> ~/.bashrc +echo 'export ANDROID_API_VERSION=android-21' >> ~/.bashrc # Storage version information to ~/versions.txt, which is used to print version information to provision log. echo "***** Android SDK *****" >> ~/versions.txt @@ -114,4 +112,3 @@ sdkTools="$(grep Pkg.Revision "$targetFolder"/sdk/tools/source.properties | cut echo "Android SDK Tools = $sdkTools" >> ~/versions.txt echo "***** Android NDK *****" >> ~/versions.txt echo "Android NDK Version = $ndkVersion" >> ~/versions.txt - diff --git a/coin/provisioning/qtci-linux-RHEL-6.6-x86_64/install_icu.sh b/coin/provisioning/qtci-linux-RHEL-6.6-x86_64/install_icu.sh index 02ddda3f..42db3716 100644 --- a/coin/provisioning/qtci-linux-RHEL-6.6-x86_64/install_icu.sh +++ b/coin/provisioning/qtci-linux-RHEL-6.6-x86_64/install_icu.sh @@ -68,3 +68,6 @@ sudo cp -a $tempDir/lib/* /usr/lib64 sudo cp -a $tempDir/* /usr/ sudo /sbin/ldconfig + +# Storage version information to ~/versions.txt, which is used to print version information to provision log. +echo "ICU = $icuVersion" >> ~/versions.txt diff --git a/coin/provisioning/qtci-linux-RHEL-7.2-x86_64/01-linux-removethemall.sh b/coin/provisioning/qtci-linux-RHEL-7.2-x86_64/01-linux-removethemall.sh new file mode 100644 index 00000000..38194671 --- /dev/null +++ b/coin/provisioning/qtci-linux-RHEL-7.2-x86_64/01-linux-removethemall.sh @@ -0,0 +1 @@ +"${BASH_SOURCE%/*}/../common/linux-removethemall.sh" diff --git a/coin/provisioning/qtci-linux-RHEL-7.2-x86_64/02-android_linux.sh b/coin/provisioning/qtci-linux-RHEL-7.2-x86_64/02-android_linux.sh new file mode 100644 index 00000000..87569d72 --- /dev/null +++ b/coin/provisioning/qtci-linux-RHEL-7.2-x86_64/02-android_linux.sh @@ -0,0 +1,117 @@ +#!/bin/env 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$ +## +############################################################################# + +# This script install Android sdk and ndk. + +# It also runs update for SDK API level 21, latest SDK tools, latest platform-tools and build-tools version 23.0.3 + +# Build-tools version 23.0.3 is the latest usable version for Red Hat 6. Newer version of build-tools, version 24.x.x, requires GLIBC_2.14, which is not available in Red Hat 6. + +# Android 16 is the minimum requirement for Qt 5.7 applications, but we need something more recent than that for building Qt itself. +# E.g The Bluetooth features that require Android 21 will disable themselves dynamically when running on an Android 16 device. +# That's why we need to use Andoid-21 API version in Qt 5.9. + +set -e +targetFolder="/opt/android" +baseUrl="http://ci-files01-hki.ci.local/input/android" + +# SDK +sdkPackage="android-sdk_r24.4.1-linux.tgz" +sdkBuildToolsVersion="23.0.3" +sdkApiLevel="android-21" +sdkUrl="$baseUrl/$sdkPackage" +sdkSha1="725bb360f0f7d04eaccff5a2d57abdd49061326d" +sdkTargetFile="$targetFolder/$sdkPackage" +sdkExtract="tar -C $targetFolder -zxf $sdkTargetFile" +sdkFolderName="android-sdk-linux" +sdkName="sdk" + +# NDK +ndkVersion="r10e" +ndkPackage="android-ndk-$ndkVersion-linux-x86_64.zip" +ndkUrl="$baseUrl/$ndkPackage" +ndkSha1="f692681b007071103277f6edc6f91cb5c5494a32" +ndkTargetFile="$targetFolder/$ndkPackage" +ndkExtract="unzip $ndkTargetFile -d $targetFolder" +ndkFolderName="android-ndk-$ndkVersion" +ndkName="ndk" + +function InstallAndroidPackage { + targetFolder=$1 + version=$2 + url=$3 + sha1=$4 + targetFile=$5 + extract=$6 + folderName=$7 + name=$8 + + sudo wget --tries=5 --waitretry=5 --output-document="$targetFile" "$url" || echo "Failed to download '$url' multiple times" + echo "$sha1 $targetFile" | sha1sum --check || echo "Failed to check sha1sum" + sudo chmod 755 "$targetFile" + sudo $extract || echo "Failed to extract $url" + sudo chown -R qt:users "$targetFolder"/"$folderName" + sudo mv "$targetFolder"/"$folderName" "$targetFolder"/"$name" || echo "Failed to rename $name" + sudo rm -fr "$targetFolder"/"$version" +} + +sudo mkdir "$targetFolder" + +# Install Android SDK +echo "Installing Android SDK version $sdkPackage..." +InstallAndroidPackage "$targetFolder" $sdkPackage $sdkUrl $sdkSha1 $sdkTargetFile "$sdkExtract" $sdkFolderName $sdkName + +# Install Android NDK +echo "Installing Android NDK version $ndkPackage..." +InstallAndroidPackage "$targetFolder" $ndkPackage $ndkUrl $ndkSha1 $ndkTargetFile "$ndkExtract" $ndkFolderName $ndkName + +# run update for Android SDK and install SDK API version 18, latest SDK tools, platform-tools and build-tools +echo "Running Android SDK update for API version 18, SDK-tools, platform-tools and build-tools-$sdkBuildToolsVersion..." +echo "y" |"$targetFolder"/sdk/tools/android update sdk --no-ui --all --filter $sdkApiLevel,tools,platform-tools,build-tools-$sdkBuildToolsVersion || echo "Failed to run update" + +# For Qt 5.6, we by default require API levels 10, 11, 16 and 18, but we can override this by setting ANDROID_API_VERSION=android-18 +# From Qt 5.7 forward, if android-16 is not installed, Qt will automatically use more recent one. +# echo 'export ANDROID_API_VERSION=$sdkApiLevel' >> ~/.bashrc + +# Storage version information to ~/versions.txt, which is used to print version information to provision log. +echo "***** Android SDK *****" >> ~/versions.txt +echo "Android SDK Api Level = $sdkApiLevel" >> ~/versions.txt +echo "Android SDK Build Tools Version = $sdkBuildToolsVersion" >> ~/versions.txt +platformTools="$(grep Pkg.Revision "$targetFolder"/sdk/platform-tools/source.properties | cut -c14-)" +echo "Android Platform Tools = $platformTools" >> ~/versions.txt +sdkTools="$(grep Pkg.Revision "$targetFolder"/sdk/tools/source.properties | cut -c14-)" +echo "Android SDK Tools = $sdkTools" >> ~/versions.txt +echo "***** Android NDK *****" >> ~/versions.txt +echo "Android NDK Version = $ndkVersion" >> ~/versions.txt diff --git a/coin/provisioning/qtci-linux-RHEL-7.2-x86_64/30-integrity.sh b/coin/provisioning/qtci-linux-RHEL-7.2-x86_64/30-integrity.sh new file mode 100755 index 00000000..ae637a44 --- /dev/null +++ b/coin/provisioning/qtci-linux-RHEL-7.2-x86_64/30-integrity.sh @@ -0,0 +1,55 @@ +#!/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$ +## +############################################################################# + +# This script installs INTEGRITY + +source "${BASH_SOURCE%/*}/../common/InstallFromCompressedFileFromURL.sh" + +version="11.4.4" +PrimaryUrl="http://ci-files01-hki.ci.local/input/integrity/ghs_$version.tar.gz" +AltUrl="$PrimaryUrl" # we lack an external source for this +SHA1="4afa3c15e13c91734951b73f6b21388294c5d794" +targetFolder="/opt/ghs" +appPrefix="" + +InstallFromCompressedFileFromURL "$PrimaryUrl" "$AltUrl" "$SHA1" "$targetFolder" "$appPrefix" + +echo "export INTEGRITY_BSP=platform-cortex-a9" >> ~/.bashrc +echo "export INTEGRITY_PATH=$targetFolder/comp_201654" >> ~/.bashrc +echo "export INTEGRITY_DIR=$targetFolder/int1144" >> ~/.bashrc +echo "export INTEGRITY_GL_INC_DIR=\$INTEGRITY_DIR/INTEGRITY-include/Vivante/sdk/inc" >> ~/.bashrc +echo "export INTEGRITY_GL_LIB_DIR=\$INTEGRITY_DIR/libs/Vivante" >> ~/.bashrc + +echo "INTEGRITY = $version" >> ~/versions.txt diff --git a/coin/provisioning/qtci-linux-RHEL-7.2-x86_64/rhel_packages.sh b/coin/provisioning/qtci-linux-RHEL-7.2-x86_64/rhel_packages.sh index c322bcbf..daf3efab 100644 --- a/coin/provisioning/qtci-linux-RHEL-7.2-x86_64/rhel_packages.sh +++ b/coin/provisioning/qtci-linux-RHEL-7.2-x86_64/rhel_packages.sh @@ -1,9 +1,11 @@ # gstreamer 1 for QtMultimedia # gtk3 style for QtGui/QStyle # libusb1 for tqtc-boot2qt/qdb +# speech-dispatcher-devel for QtSpeech, otherwise it has no backend on Linux sudo yum install -y \ gstreamer1-devel gstreamer1-plugins-base-devel \ gtk3-devel \ - libusb1-devel + libusb1-devel \ + speech-dispatcher-devel diff --git a/coin/provisioning/qtci-linux-Ubuntu-16.04-x86_64/001-suppress-shutdown-indicator.sh b/coin/provisioning/qtci-linux-Ubuntu-16.04-x86_64/001-suppress-shutdown-indicator.sh deleted file mode 100644 index f11263b7..00000000 --- a/coin/provisioning/qtci-linux-Ubuntu-16.04-x86_64/001-suppress-shutdown-indicator.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/usr/bin/env sh - -# Disable questions on shutdown. -gsettings set com.canonical.indicator.session suppress-logout-restart-shutdown true diff --git a/coin/provisioning/qtci-linux-Ubuntu-16.04-x86_64/001-systemsetup.sh b/coin/provisioning/qtci-linux-Ubuntu-16.04-x86_64/001-systemsetup.sh new file mode 100755 index 00000000..1881ae0b --- /dev/null +++ b/coin/provisioning/qtci-linux-Ubuntu-16.04-x86_64/001-systemsetup.sh @@ -0,0 +1,87 @@ +#!/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$ +## +############################################################################# + +# This script modifies system settings for automated use + +# shellcheck source=../common/try_catch.sh +source "${BASH_SOURCE%/*}/../common/try_catch.sh" + +NTS_IP=10.212.2.216 + +ExceptionGsettings1=100 +ExceptionGsettings2=101 +ExceptionGsettings3=102 +ExceptionNTS=103 +ExceptionDISPLAY=104 + +try +( + echo "Timeout for blanking the screen (0 = never)" + gsettings set org.gnome.desktop.session idle-delay 0 || throw $ExceptionGsettings1 + echo "Prevents screen lock when screesaver goes active." + gsettings set org.gnome.desktop.screensaver lock-enabled false || throw $ExceptionGsettings2 + echo "Disable questions on shutdown." + gsettings set com.canonical.indicator.session suppress-logout-restart-shutdown true || throw $ExceptionGsettings3 + + echo "Set Network Test Server address to $NTS_IP in /etc/hosts" + echo "$NTS_IP qt-test-server qt-test-server.qt-test-net" | sudo tee -a /etc/hosts || throw $ExceptionNTS + echo "Set DISPLAY" + echo 'export DISPLAY=":0"' >> ~/.bashrc || throw $ExceptionDISPLAY +) +catch || { + case $ex_code in + $ExceptionGsettings1) + echo "Failed to disable black screen." + exit 1; + ;; + $ExceptionGsettings2) + echo "Failed to prevent screen lock." + exit 1; + ;; + $ExceptionGsettings3) + echo "Failed to disable questions on shutdown." + exit 1; + ;; + $ExceptionNTS) + echo "Failed to set network teset server address into /etc/hosts." + exit 1; + ;; + $ExceptionDISPLAY) + echo "Failed to set DISPLAY into ~/.bashrc." + exit 1; + ;; + esac +} + diff --git a/coin/provisioning/qtci-linux-Ubuntu-16.04-x86_64/002-apt.sh b/coin/provisioning/qtci-linux-Ubuntu-16.04-x86_64/002-apt.sh new file mode 100755 index 00000000..8b28c981 --- /dev/null +++ b/coin/provisioning/qtci-linux-Ubuntu-16.04-x86_64/002-apt.sh @@ -0,0 +1,102 @@ +#!/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$ +## +############################################################################# + +# Install required packages with APT + +source "${BASH_SOURCE%/*}/../common/try_catch.sh" + +ExceptionAPTUpdate=100 +ExceptionAPT=101 +ExceptionSED=102 + +try +( + echo "Disabling auto update" + sudo sed -i 's/APT::Periodic::Update-Package-Lists "1";/APT::Periodic::Update-Package-Lists "0";/' /etc/apt/apt.conf.d/10periodic || throw $ExceptionSED + echo "Running update for apt" + sudo apt update + echo "Installing packages" + # Git is not needed by builds themselves, but is nice to have + # immediately as one starts debugging + sudo DEBIAN_FRONTEND=noninteractive apt -q -y install git || throw $ExceptionAPT + # 7zip is a needed decompressing tool + sudo DEBIAN_FRONTEND=noninteractive apt -q -y install p7zip || throw $ExceptionAPT + # libssl-dev provides headers for OpenSSL + sudo DEBIAN_FRONTEND=noninteractive apt -q -y install libssl-dev || throw $ExceptionAPT + # Needed libraries for X11 support accordingly to https://wiki.qt.io/Building_Qt_5_from_Git + sudo DEBIAN_FRONTEND=noninteractive apt -q -y install "^libxcb.*" libx11-xcb-dev libglu1-mesa-dev libxrender-dev libxi-dev || throw $ExceptionAPT + # Enable linking to system dbus + sudo DEBIAN_FRONTEND=noninteractive apt -q -y install libdbus-1-dev || throw $ExceptionAPT + # Needed libraries for WebEngine + sudo DEBIAN_FRONTEND=noninteractive apt -q -y install libudev-dev libegl1-mesa-dev libfontconfig1-dev libxss-dev || throw $ExceptionAPT + # Common event loop handling + sudo DEBIAN_FRONTEND=noninteractive apt -q -y install libglib2.0-dev || throw $ExceptionAPT + # MySQL support + sudo DEBIAN_FRONTEND=noninteractive apt -q -y install libmysqlclient-dev || throw $ExceptionAPT + # PostgreSQL support + sudo DEBIAN_FRONTEND=noninteractive apt -q -y install libpq-dev || throw $ExceptionAPT + # SQLite support + sudo DEBIAN_FRONTEND=noninteractive apt -q -y install libsqlite3-dev || throw $ExceptionAPT + # ODBC support + sudo DEBIAN_FRONTEND=noninteractive apt -q -y install unixodbc-dev || throw $ExceptionAPT + # Support for FreeType font engine + sudo DEBIAN_FRONTEND=noninteractive apt -q -y install libfreetype6-dev || throw $ExceptionAPT + # Enable the usage of system jpeg libraries + sudo DEBIAN_FRONTEND=noninteractive apt -q -y install libjpeg-dev || throw $ExceptionAPT + # Enable support for printer driver + sudo DEBIAN_FRONTEND=noninteractive apt -q -y install libcups2-dev || throw $ExceptionAPT + # Install libraries needed for QtMultimedia to be able to support all plugins + sudo DEBIAN_FRONTEND=noninteractive apt -q -y install libasound2-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev || throw $ExceptionAPT + sudo DEBIAN_FRONTEND=noninteractive apt -q -y install libgstreamer-plugins-good1.0-dev libgstreamer-plugins-bad1.0-dev || throw $ExceptionAPT + # Support for cross-building to x86 (needed by WebEngine boot2qt builds) + sudo DEBIAN_FRONTEND=noninteractive apt -q -y install g++-multilib || throw $ExceptionAPT +) +catch || { + case $ex_code in + $ExceptionAPTUpdate) + echo "Failed to run APT update." + exit 1; + ;; + $ExceptionAPT) + echo "Failed to install package." + exit 1; + ;; + $ExceptionSED) + echo "Failed to disable auto update." + exit 1; + ;; + esac +} + diff --git a/coin/provisioning/qtci-linux-Ubuntu-16.04-x86_64/003-apt-update.sh b/coin/provisioning/qtci-linux-Ubuntu-16.04-x86_64/003-apt-update.sh deleted file mode 100644 index 2f7e2e47..00000000 --- a/coin/provisioning/qtci-linux-Ubuntu-16.04-x86_64/003-apt-update.sh +++ /dev/null @@ -1,2 +0,0 @@ -#!/usr/bin/env bash -sudo apt-get update diff --git a/coin/provisioning/qtci-linux-Ubuntu-16.04-x86_64/003-qemu.sh b/coin/provisioning/qtci-linux-Ubuntu-16.04-x86_64/003-qemu.sh new file mode 100755 index 00000000..f978003b --- /dev/null +++ b/coin/provisioning/qtci-linux-Ubuntu-16.04-x86_64/003-qemu.sh @@ -0,0 +1,66 @@ +#!/usr/bin/env 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$ +## +############################################################################# + +set -e +# build latest qemu to usermode +sudo apt-get -y install automake autoconf libtool + +tempDir=$(mktemp -d) || echo "Failed to create temporary directory" +git clone git://git.qemu.org/qemu.git "$tempDir" +cd "$tempDir" + +#latest commit from the master proven to work +git checkout c7f1cf01b8245762ca5864e835d84f6677ae8b1f +git submodule update --init pixman +./configure --target-list=arm-linux-user --static +make +sudo make install +rm -rf "$tempDir" + +# Enable binfmt support +sudo apt-get -y install binfmt-support + +# Install qemu binfmt +sudo update-binfmts --package qemu-arm --install arm \ +/usr/local/bin/qemu-arm \ +--magic \ +"\x7f\x45\x4c\x46\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28\x00" \ +--mask \ +"\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff" + +# First test using QFont fails if fonts-noto-cjk is installed. This happens because +# running fontcache for that font takes > 5 mins when run on QEMU. Running fc-cache +# doesn't help since host version creates cache for a wrong architecture and running +# armv7 fc-cache segfaults on QEMU. +sudo DEBIAN_FRONTEND=noninteractive apt-get -y remove fonts-noto-cjk diff --git a/coin/provisioning/qtci-macos-10.12-x86_64/003-bashprofile.sh b/coin/provisioning/qtci-macos-10.12-x86_64/003-bashprofile.sh new file mode 100644 index 00000000..0fbe7628 --- /dev/null +++ b/coin/provisioning/qtci-macos-10.12-x86_64/003-bashprofile.sh @@ -0,0 +1,5 @@ +#!/bin/sh + +# Read .bashrc if exist +printf -- "# Get the aliases and functions\nif [ -f ~/.bashrc ]; then\n . ~/.bashrc\nfi\n" >> ~/.bash_profile + diff --git a/coin/provisioning/qtci-macos-10.12-x86_64/005-systemsetup.sh b/coin/provisioning/qtci-macos-10.12-x86_64/005-systemsetup.sh new file mode 100755 index 00000000..48430389 --- /dev/null +++ b/coin/provisioning/qtci-macos-10.12-x86_64/005-systemsetup.sh @@ -0,0 +1,117 @@ +#!/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$ +## +############################################################################# + +# This script modified system settings for automated use + +# shellcheck source=../common/try_catch.sh +source "${BASH_SOURCE%/*}/../common/try_catch.sh" + +VNCPassword=qt +NTS_IP=10.212.2.216 + +ExceptionDisableScreensaver=100 +ExceptionSetInitialDelay=101 +ExceptionSetDelay=102 +ExceptionVNC=103 +ExceptionNTS=104 + +try +( + echo "Disable Screensaver" + mkdir -p "$HOME/Library/LaunchAgents" || throw $ExceptionDisableScreensaver + ( + cat >"$HOME/Library/LaunchAgents/no-screensaver.plist" <<EOT +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> + +<plist version="1.0"> + <dict> + <key>Label</key> + <string>org.qt.io.screensaver_disable</string> + <key>ProgramArguments</key> + <array> + <string>defaults</string> + <string>-currentHost</string> + <string>write</string> + <string>com.apple.screensaver</string> + <string>idleTime</string> + <string>0</string> + </array> + <key>RunAtLoad</key> + <true/> + <key>KeepAlive</key> + <false/> + </dict> +</plist> +EOT + ) || throw $ExceptionDisableScreensaver + + echo "Set keyboard type rates and delays" + # normal minimum is 15 (225 ms) + defaults write -g InitialKeyRepeat -int 15 || throw $ExceptionSetInitialDelay + # normal minimum is 2 (30 ms) + defaults write -g KeyRepeat -int 2 || throw $ExceptionSetDelay + + echo "Enable remote desktop sharing" + sudo /System/Library/CoreServices/RemoteManagement/ARDAgent.app/Contents/Resources/kickstart -activate -configure -access -on -clientopts -setvnclegacy -vnclegacy yes -clientopts -setvncpw -vncpw $VNCPassword -restart -agent -privs -all || throw $ExceptionVNC + + echo "Set Network Test Server address to $NTS_IP in /etc/hosts" + echo "$NTS_IP qt-test-server qt-test-server.qt-test-net" | sudo tee -a /etc/hosts || throw $ExceptionNTS + +) +catch || { + case $ex_code in + $ExceptionDisableScreensaver) + echo "Failed to disable screensaver." + exit 1; + ;; + $ExceptionSetInitialDelay) + echo "Failed to set initial delay of keyboard." + exit 1; + ;; + $ExceptionSetDelay) + echo "Failed to set delay of keyboard." + exit 1; + ;; + $ExceptionVNC) + echo "Failed to enable VNC." + exit 1; + ;; + $ExceptionNTS) + echo "Failed to set NTS." + exit 1; + ;; + esac +} diff --git a/coin/provisioning/qtci-osx-10.11-x86_64/crashreporter.sh b/coin/provisioning/qtci-macos-10.12-x86_64/006-crashreporter.sh index ba8dbdd3..ba8dbdd3 100644..100755 --- a/coin/provisioning/qtci-osx-10.11-x86_64/crashreporter.sh +++ b/coin/provisioning/qtci-macos-10.12-x86_64/006-crashreporter.sh diff --git a/coin/provisioning/qtci-windows-10-x86_64/06-msvc2015_update.ps1 b/coin/provisioning/qtci-macos-10.12-x86_64/015-xz.sh index 83ff3f48..eca6858c 100644..100755 --- a/coin/provisioning/qtci-windows-10-x86_64/06-msvc2015_update.ps1 +++ b/coin/provisioning/qtci-macos-10.12-x86_64/015-xz.sh @@ -1,3 +1,5 @@ +#!/bin/bash + ############################################################################# ## ## Copyright (C) 2017 The Qt Company Ltd. @@ -30,4 +32,19 @@ ## $QT_END_LICENSE$ ## ############################################################################# -. "$PSScriptRoot\..\common\msvc2015_update.ps1" + +# This script installs XZ-Utils + +# XZ-Utils are needed for uncompressing xz-compressed files + +# shellcheck source=../common/try_catch.sh +source "${BASH_SOURCE%/*}/../common/InstallPKGFromURL.sh" + +PrimaryUrl="http://ci-files01-hki.ci.local/input/mac/macos_10.12_sierra/XZ.pkg" +AltUrl="http://sourceforge.net/projects/macpkg/files/XZ/5.0.7/XZ.pkg" +SHA1="f0c1f82ebcffe0bd4b8b57b6a77805db56b2de67" +DestDir="/" + +InstallPKGFromURL "$PrimaryUrl" "$AltUrl" "$SHA1" "$DestDir" + +echo "XZ = 5.0.7" >> ~/versions.txt diff --git a/coin/provisioning/qtci-macos-10.12-x86_64/020-java.sh b/coin/provisioning/qtci-macos-10.12-x86_64/020-java.sh new file mode 100755 index 00000000..6ae54526 --- /dev/null +++ b/coin/provisioning/qtci-macos-10.12-x86_64/020-java.sh @@ -0,0 +1,128 @@ +#!/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$ +## +############################################################################# + +# This script installs JDK +echo "Installing Java Development Kit" + +# shellcheck source=../common/try_catch.sh +source "${BASH_SOURCE%/*}/../common/try_catch.sh" + +ExceptionDownloadPrimaryUrl=100 +ExceptionDownloadAltUrl=101 +ExceptionSHA1=102 +ExceptionAttachImage=103 +ExceptionInstall=104 +ExceptionDetachImage=105 +ExceptionRemoveTmpFile=106 +ExceptionDisableAutoUpdate=107 + + +url=http://ci-files01-hki.ci.local/input/mac/macos_10.12_sierra/jdk-8u102-macosx-x64.dmg +url_alt=http://download.oracle.com/otn-pub/java/jdk/8u102-b14/jdk-8u102-macosx-x64.dmg +targetFile=/tmp/jdk-8u102-macosx-x64.dmg +expectedSha1=1405af955f14e32aae187b5754a716307db22104 + +try +( + try + ( + echo "Downloading 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 tar.gz from alternative URL '$url_alt'" + curl --fail -L --retry 5 --retry-delay 5 -j -k -H "Cookie: oraclelicense=accept-securebackup-cookie" -o "$targetFile" "$url_alt" || throw $ExceptionDownloadAltUrl + ;; + esac + } + echo "Checking SHA1 on '$targetFile'" + echo "$expectedSha1 *$targetFile" | shasum --check || throw $ExceptionSHA1 + + echo Mounting DMG + hdiutil attach "$targetFile" || throw $ExceptionAttachImage + + echo Installing JDK + (cd /Volumes/JDK\ 8\ Update\ 102/ && sudo installer -package JDK\ 8\ Update\ 102.pkg -target /) || throw $ExceptionInstall + + hdiutil detach /dev/disk1s1 || throw $ExceptionDetachImage + + echo "Removing temporary file '$targetFile'" + rm "$targetFile" || throw $ExceptionRemoveTmpFile + + echo "Disable auto update" + sudo defaults write /Library/Preferences/com.oracle.java.Java-Updater JavaAutoUpdateEnabled -bool false || throw $ExceptionDisableAutoUpdate + + echo "JDK Version = 8 update 102" >> ~/versions.txt +) +catch || { + case $ex_code in + $ExceptionDownloadPrimaryUrl) + echo "Failed to download JDK from primary URL." + exit 1; + ;; + $ExceptionDownloadAltUrl) + echo "Failed to download JDK from alternative URL." + exit 1; + ;; + $ExceptionSHA1) + echo "Failed to check SHA1." + exit 1; + ;; + $ExceptionAttachImage) + echo "Failed to attach image." + exit 1; + ;; + $ExceptionInstall) + echo "Failed to install JDK." + exit 1; + ;; + $ExceptionDetachImage) + echo "Failed to detach image." + exit 1; + ;; + $ExceptionRemoveTmpFile) + echo "Failed to remove temporary file." + exit 1; + ;; + $ExceptionDisableAutoUpdate) + echo "Failed to disable auto update." + exit 1; + ;; + + esac +} diff --git a/coin/provisioning/qtci-macos-10.12-x86_64/020-xcode.sh b/coin/provisioning/qtci-macos-10.12-x86_64/020-xcode.sh new file mode 100755 index 00000000..97ce19ba --- /dev/null +++ b/coin/provisioning/qtci-macos-10.12-x86_64/020-xcode.sh @@ -0,0 +1,51 @@ +#!/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$ +## +############################################################################# + +# This script installs Xcode +# Prerequisites: Have Xcode prefetched to local cache as xz compressed. +# This can be achieved by fetching Xcode_8.xip from Apple Store. +# Uncompress it with 'xar -xf Xcode_8.xip' +# Then get https://gist.githubusercontent.com/pudquick/ff412bcb29c9c1fa4b8d/raw/24b25538ea8df8d0634a2a6189aa581ccc6a5b4b/parse_pbzx2.py +# with which you can run 'python parse_pbzx2.py Content'. +# This will give you a file called "Content.part00.cpio.xz" that +# can be renamed to Xcode_8.xz for this script. + +# shellcheck source=../common/try_catch.sh +source "${BASH_SOURCE%/*}/../common/try_catch.sh" + +# shellcheck source=../common/install_xcode.sh +source "${BASH_SOURCE%/*}/../common/install_xcode.sh" + +InstallXCode /net/ci-files01-hki.ci.local/hdd/www/input/mac/macos_10.12_sierra/Xcode_8.2.1.xz 8.2.1 diff --git a/coin/provisioning/qtci-macos-10.12-x86_64/025-cmake.sh b/coin/provisioning/qtci-macos-10.12-x86_64/025-cmake.sh new file mode 100755 index 00000000..de025b55 --- /dev/null +++ b/coin/provisioning/qtci-macos-10.12-x86_64/025-cmake.sh @@ -0,0 +1,51 @@ +#!/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$ +## +############################################################################# + +# This script installs CMake + +# CMake is needed for autotests that verify that Qt can be built with CMake + +# shellcheck source=../common/InstallAppFromCompressedFileFromURL.sh +source "${BASH_SOURCE%/*}/../common/InstallAppFromCompressedFileFromURL.sh" + +PrimaryUrl="http://ci-files01-hki.ci.local/input/mac/macos_10.12_sierra/cmake-3.6.2-Darwin-x86_64.tar.gz" +AltUrl="https://cmake.org/files/v3.6/cmake-3.6.2-Darwin-x86_64.tar.gz" +SHA1="13835afa3aea939e07a7ecccedcc041dd8c3a86e" +appPrefix="cmake-3.6.2-Darwin-x86_64" + +InstallAppFromCompressedFileFromURL "$PrimaryUrl" "$AltUrl" "$SHA1" "$appPrefix" + +echo "export PATH=/Applications/CMake.app/Contents/bin:$PATH" >> ~/.bashrc +echo "CMake = 3.6.2" >> ~/versions.txt diff --git a/coin/provisioning/qtci-macos-10.12-x86_64/025-mysql.sh b/coin/provisioning/qtci-macos-10.12-x86_64/025-mysql.sh new file mode 100755 index 00000000..54389916 --- /dev/null +++ b/coin/provisioning/qtci-macos-10.12-x86_64/025-mysql.sh @@ -0,0 +1,54 @@ +#!/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$ +## +############################################################################# + +# This script installs MySQL + +# MySQL is needed for Qt to be able to support MySQL + +# shellcheck source=../common/InstallAppFromCompressedFileFromURL.sh +source "${BASH_SOURCE%/*}/../common/InstallAppFromCompressedFileFromURL.sh" + +PrimaryUrl="http://ci-files01-hki.ci.local/input/mac/macos_10.12_sierra/mysql-5.7.15-osx10.11-x86_64.tar.gz" +AltUrl="https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.15-osx10.11-x86_64.tar.gz" +SHA1="07949bd42f350b0504a1536b8830b809b4a34fca" +appPrefix="" +targetDir="/opt/mysql57/" + +sudo mkdir -p "/opt" + +InstallAppFromCompressedFileFromURL "$PrimaryUrl" "$AltUrl" "$SHA1" "$appPrefix" "$targetDir" + +echo "export MYSQLBINPATH=/opt/mysql57/bin" >> ~/.bashrc +echo "MySQL = 5.7.15" >> ~/versions.txt diff --git a/coin/provisioning/qtci-macos-10.12-x86_64/025-postgresql.sh b/coin/provisioning/qtci-macos-10.12-x86_64/025-postgresql.sh new file mode 100755 index 00000000..e699933d --- /dev/null +++ b/coin/provisioning/qtci-macos-10.12-x86_64/025-postgresql.sh @@ -0,0 +1,53 @@ +#!/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$ +## +############################################################################# + +# This script installs PostgreSQL + +# PostgreSQL is needed for Qt to be able to support PostgreSQL + +# shellcheck source=../common/InstallAppFromCompressedFileFromURL.sh +source "${BASH_SOURCE%/*}/../common/InstallAppFromCompressedFileFromURL.sh" + +psqlVersion="9.6.0" + +PrimaryUrl="http://ci-files01-hki.ci.local/input/mac/macos_10.12_sierra/Postgres-$psqlVersion.zip" +AltUrl="https://github.com/PostgresApp/PostgresApp/releases/download/$psqlVersion/Postgres-$psqlVersion.zip" +SHA1="5078e44663787006ca55fa3b5e2be598bed82eb5" +appPrefix="" + +InstallAppFromCompressedFileFromURL "$PrimaryUrl" "$AltUrl" "$SHA1" "$appPrefix" + +echo "export POSTGRESQLBINPATH=/Applications/Postgres.app/Contents/Versions/9.6/bin" >> ~/.bashrc +echo "PostgreSQL = $psqlVersion" >> ~/versions.txt diff --git a/coin/provisioning/qtci-macos-10.12-x86_64/030-android.sh b/coin/provisioning/qtci-macos-10.12-x86_64/030-android.sh new file mode 100755 index 00000000..e5ab2ced --- /dev/null +++ b/coin/provisioning/qtci-macos-10.12-x86_64/030-android.sh @@ -0,0 +1,128 @@ +#!/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$ +## +############################################################################# + +# This script install Android sdk and ndk. + +# It also runs update for SDK API, latest SDK tools, latest platform-tools and build-tools version + +# shellcheck source=../common/try_catch.sh +source "${BASH_SOURCE%/*}/../common/try_catch.sh" +# shellcheck source=../common/DownloadURL.sh +source "${BASH_SOURCE%/*}/../common/DownloadURL.sh" + +targetFolder="/opt/android" +sdkTargetFolder="$targetFolder/sdk" + +baseUrl="http://ci-files01-hki.ci.local/input/android" +baseAltUrl="https://dl.google.com/android/repository/" + +toolsVersion="r25.2.5" +toolsFile="tools_$toolsVersion-macosx.zip" +ndkVersion="r10e" +ndkFile="android-ndk-$ndkVersion-darwin-x86_64.zip" +sdkBuildToolsVersion="25.0.2" +sdkApiLevel="android-21" + +toolsSha1="d2168d963ac5b616e3d3ddaf21511d084baf3659" +ndkSha1="6be8598e4ed3d9dd42998c8cb666f0ee502b1294" + +toolsDlUrl="$baseUrl/$toolsFile" +ndkDlUrl="$baseUrl/$ndkFile" +toolsAltDlUrl="$baseAltUrl/$toolsFile" +ndkAltDlUrl="$baseAltUrl/$ndkFile" + +toolsTargetFile="/tmp/$toolsFile" +ndkTargetFile="/tmp/$ndkFile" + +ExceptionUnzipTools=100 +ExceptionUnzipNdk=101 +ExceptionRmTools=102 +ExceptionRmNdk=103 +ExceptionSdkManager=104 + +try +( + DownloadURL "$toolsDlUrl" "$toolsAltDlUrl" "$toolsSha1" "$toolsTargetFile" + DownloadURL "$ndkDlUrl" "$ndkAltDlUrl" "$ndkSha1" "$ndkTargetFile" + echo "Unzipping Android NDK to '$targetFolder'" + sudo unzip -q "$ndkTargetFile" -d "$targetFolder" || throw $ExceptionUnzipNdk + echo "Unzipping Android Tools to '$sdkTargetFolder'" + sudo unzip -q "$toolsTargetFile" -d "$sdkTargetFolder" || throw $ExceptionUnzipTools + + echo "Removing temporary files." + rm "$toolsTargetFile" || throw $ExceptionRmTools + rm "$ndkTargetFile" || throw $ExceptionRmNdk + + echo "Changing ownership of Android files." + sudo chown -R qt:wheel "$targetFolder" + + echo "Running SDK manager for platforms;$sdkApiLevel, tools, platform-tools and build-tools;$sdkBuildToolsVersion." + echo "y" |"$sdkTargetFolder/tools/bin/sdkmanager" "platforms;$sdkApiLevel" "tools" "platform-tools" "build-tools;$sdkBuildToolsVersion" || throw $ExceptionSdkManager + + echo "export ANDROID_SDK_ROOT=$sdkTargetFolder" >> ~/.bashrc + echo "export ANDROID_NDK_HOME=$targetFolder/android-ndk-$ndkVersion" >> ~/.bashrc + echo "export ANDROID_NDK_HOST=darwin-x86_64" >> ~/.bashrc + echo "export ANDROID_API_VERSION=$sdkApiLevel" >> ~/.bashrc + + echo "Android SDK tools = $toolsVersion" >> ~/version.txt + echo "Android SDK Build Tools = $sdkBuildToolsVersion" >> ~/version.txt + echo "Android SDK API level = $sdkApiLevel" >> ~/version.txt + echo "Android NDK = $ndkVersion" >> ~/version.txt +) +catch || { + case $ex_code in + $ExceptionUnzipTools) + echo "Failed to unzip Android SDK Tools." + exit 1; + ;; + $ExceptionUnzipNdk) + echo "Failed to unzip Android NDK." + exit 1; + ;; + $ExceptionRmTools) + echo "Failed to remove temporary tools package '$toolsTargetFile'." + exit 1; + ;; + $ExceptionRmNdk) + echo "Failed to remove temporary NDK package '$ndkTargetFile'." + exit 1; + ;; + $ExceptionSdkManager) + echo "Failed to run sdkmanager." + exit 1; + ;; + esac +} + diff --git a/coin/provisioning/qtci-macos-10.12-x86_64/035-openssl.sh b/coin/provisioning/qtci-macos-10.12-x86_64/035-openssl.sh new file mode 100755 index 00000000..acd0bd74 --- /dev/null +++ b/coin/provisioning/qtci-macos-10.12-x86_64/035-openssl.sh @@ -0,0 +1,117 @@ +#!/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$ +## +############################################################################# + +# This script install OpenSSL + +# shellcheck source=../common/try_catch.sh +source "${BASH_SOURCE%/*}/../common/try_catch.sh" +# shellcheck source=../common/InstallFromCompressedFileFromURL.sh +source "${BASH_SOURCE%/*}/../common/InstallFromCompressedFileFromURL.sh" + +opensslVersion="1.0.2k" +opensslFile="openssl-$opensslVersion.tar.gz" +opensslDlUrl="http://ci-files01-hki.ci.local/input/openssl/$opensslFile" +opensslAltDlUrl="https://www.openssl.org/source/$opensslFile" +opensslSha1="5f26a624479c51847ebd2f22bb9f84b3b44dcb44" + +# Below target location has been hard coded into Coin. +# QTQAINFRA-1195 +opensslTargetLocation="/usr/local/opt/openssl" + +ExceptionCD=100 +ExceptionConfig=101 +ExceptionMake=102 +ExceptionInstall=103 +ExceptionLN=104 +ExceptionCertificate=105 +ExceptionCleanup=106 + +try +( + InstallFromCompressedFileFromURL "$opensslDlUrl" "$opensslAltDlUrl" "$opensslSha1" "/tmp/openssl-$opensslVersion" "openssl-$opensslVersion" + cd "/tmp/openssl-$opensslVersion" || throw $ExceptionCD + pwd + sudo ./config --prefix=/usr/local/openssl-$opensslVersion || throw $ExceptionConfig + echo "Running 'make' for OpenSSL" + sudo make --silent > /tmp/openssl_make.log 2>&1 || throw $ExceptionMake + echo "Running 'make install' for OpenSSL" + sudo make --silent install > /tmp/openssl_make_install.log 2>&1 || throw $ExceptionInstall + + path=$(echo "$opensslTargetLocation" | sed -E 's/(.*)\/.*$/\1/') + sudo mkdir -p "$path" + sudo ln -s /usr/local/openssl-$opensslVersion $opensslTargetLocation || throw $ExceptionLN + + echo "export PATH=\"$opensslTargetLocation/bin:$PATH\"" >> ~/.bashrc + echo "export MANPATH=\"$opensslTargetLocation/share/man:$MANPATH\"" >> ~/.bashrc + + security find-certificate -a -p /Library/Keychains/System.keychain | sudo tee -a $opensslTargetLocation/ssl/cert.pem || throw $ExceptionCertificate + security find-certificate -a -p /System/Library/Keychains/SystemRootCertificates.keychain | sudo tee -a $opensslTargetLocation/ssl/cert.pem || throw $ExceptionCertificate + + sudo rm -rf /tmp/openssl-$opensslVersion || throw $ExceptionCleanup + + echo "OpenSSL = $opensslVersion" >> ~/versions.txt +) +catch || { + case $ex_code in + $ExceptionCD) + echo "Failed to change directory to /tmp/openssl-$opensslVersion." + exit 1; + ;; + $ExceptionConfig) + echo "Failed to run config for OpenSSL." + exit 1; + ;; + $ExceptionMake) + echo "Failed to run 'make' for OpenSSL." + exit 1; + ;; + $ExceptionInstall) + echo "Failed to run 'make install' for OpenSSL." + exit 1; + ;; + $ExceptionLN) + echo "Failed to create a soft link for OpenSSL." + exit 1; + ;; + $ExceptionCertificate) + echo "Failed to install Certificate for OpenSSL." + exit 1; + ;; + $ExceptionCleanup) + echo "Failed to clean up /tmp/openssl-$opensslVersion." + exit 1; + ;; + esac +} diff --git a/coin/provisioning/qtci-osx-10.10-x86_64/android.sh b/coin/provisioning/qtci-osx-10.10-x86_64/android.sh index 559eabd6..fae4f7b9 100644 --- a/coin/provisioning/qtci-osx-10.10-x86_64/android.sh +++ b/coin/provisioning/qtci-osx-10.10-x86_64/android.sh @@ -35,11 +35,12 @@ # This script install Android sdk and ndk. -# It also runs update for SDK API level 18, latest SDK tools, latest platform-tools and - build-tools +# It also runs update for SDK API level 21, latest SDK tools, latest platform-tools and - build-tools # Android 16 is the minimum requirement for Qt 5.7 applications, but we need something more recent than that for building Qt itself. -# E.g The Bluetooth features that require Android 18 will disable themselves dynamically when running on an Android 16 device. -# That's why we need to use Andoid-18 API version and decision was made to use it also with Qt 5.6. +# E.g The Bluetooth features that require Android 21 will disable themselves dynamically when running on an Android 16 device. +# That's why we need to use Andoid-21 API version in Qt 5.9. + set -e targetFolder="/opt/android" @@ -48,7 +49,7 @@ baseUrl="http://ci-files01-hki.ci.local/input/android" # SDK sdkVersion="android-sdk_r24.4.1-macosx.zip" sdkBuildToolsVersion="24.0.2" -sdkApiLevel="android-18" +sdkApiLevel="android-21" sdkUrl="$baseUrl/$sdkVersion" sdkSha1="85a9cccb0b1f9e6f1f616335c5f07107553840cd" sdkTargetFile="$targetFolder/$sdkVersion" @@ -93,10 +94,10 @@ InstallAndroidPackage $targetFolder $sdkVersion $sdkUrl $sdkSha1 $sdkTargetFile echo "Installing Android NDK version $ndkVersion..." InstallAndroidPackage $targetFolder $ndkVersion $ndkUrl $ndkSha1 $ndkTargetFile "$ndkExtract" $ndkFolderName $ndkName -# run update for Android SDK and install SDK API version 18, latest SDK tools, platform-tools and build-tools -echo "Running Android SDK update for API version 18, SDK-tools, platform-tools and build-tools-$sdkBuildToolsVersion..." +# run update for Android SDK and install SDK API version 21, latest SDK tools, platform-tools and build-tools +echo "Running Android SDK update for API version 21, SDK-tools, platform-tools and build-tools-$sdkBuildToolsVersion..." echo "y" |$targetFolder/sdk/tools/android update sdk --no-ui --all --filter $sdkApiLevel,tools,platform-tools,build-tools-$sdkBuildToolsVersion || echo "Failed to run update" -# For Qt 5.6, we by default require API levels 10, 11, 16 and 18, but we can override this by setting ANDROID_API_VERSION=android-18 +# For Qt 5.6, we by default require API levels 10, 11, 16 and 21, but we can override this by setting ANDROID_API_VERSION=android-21 # From Qt 5.7 forward, if android-16 is not installed, Qt will automatically use more recent one. -echo 'export ANDROID_API_VERSION=android-18' >> ~/.bashrc +echo 'export ANDROID_API_VERSION=android-21' >> ~/.bashrc diff --git a/coin/provisioning/qtci-osx-10.11-x86_64/002-disable-screensaver.sh b/coin/provisioning/qtci-osx-10.11-x86_64/002-disable-screensaver.sh deleted file mode 100644 index 44df94e7..00000000 --- a/coin/provisioning/qtci-osx-10.11-x86_64/002-disable-screensaver.sh +++ /dev/null @@ -1,26 +0,0 @@ -#!/bin/sh - -mkdir -p $HOME/Library/LaunchAgents -cat >$HOME/Library/LaunchAgents/no-screensaver.plist <<EOT -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE plist PUBLIC "-//Apple/DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> -<plist version="1.0"> - <dict> - <key>Label</key> - <string>org.qt.io.screensaver_disable</string> - <key>ProgramArguments</key> - <array> - <string>defaults</string> - <string>-currentHost</string> - <string>write</string> - <string>com.apple.screensaver</string> - <string>idleTime</string> - <string>0</string> - </array> - <key>RunAtLoad</key> - <true/> - <key>KeepAlive</key> - <false/> - </dict> -</plist> -EOT diff --git a/coin/provisioning/qtci-osx-10.11-x86_64/005-systemsetup.sh b/coin/provisioning/qtci-osx-10.11-x86_64/005-systemsetup.sh new file mode 100755 index 00000000..47bf03f8 --- /dev/null +++ b/coin/provisioning/qtci-osx-10.11-x86_64/005-systemsetup.sh @@ -0,0 +1,118 @@ +#!/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$ +## +############################################################################# + +# This script modified system settings for automated use + +# shellcheck source=../common/try_catch.sh +source "${BASH_SOURCE%/*}/../common/try_catch.sh" + +VNCPassword=qt +NTS_IP=10.212.2.216 + +ExceptionDisableScreensaver=100 +ExceptionSetInitialDelay=101 +ExceptionSetDelay=102 +ExceptionVNC=103 +ExceptionNTS=104 + +try +( + echo "Disable Screensaver" + mkdir -p "$HOME/Library/LaunchAgents" || throw $ExceptionDisableScreensaver + ( + cat >"$HOME/Library/LaunchAgents/no-screensaver.plist" <<EOT +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> + +<plist version="1.0"> + <dict> + <key>Label</key> + <string>org.qt.io.screensaver_disable</string> + <key>ProgramArguments</key> + <array> + <string>defaults</string> + <string>-currentHost</string> + <string>write</string> + <string>com.apple.screensaver</string> + <string>idleTime</string> + <string>0</string> + </array> + <key>RunAtLoad</key> + <true/> + <key>KeepAlive</key> + <false/> + </dict> +</plist> +EOT + ) || throw $ExceptionDisableScreensaver + + echo "Set keyboard type rates and delays" + # normal minimum is 15 (225 ms) + defaults write -g InitialKeyRepeat -int 15 || throw $ExceptionSetInitialDelay + # normal minimum is 2 (30 ms) + defaults write -g KeyRepeat -int 2 || throw $ExceptionSetDelay + + echo "Enable remote desktop sharing" + sudo /System/Library/CoreServices/RemoteManagement/ARDAgent.app/Contents/Resources/kickstart -activate -configure -access -on -clientopts -setvnclegacy -vnclegacy yes -clientopts -setvncpw -vncpw $VNCPassword -restart -agent -privs -all || throw $ExceptionVNC + + echo "Set Network Test Server address to $NTS_IP in /etc/hosts" + echo "$NTS_IP qt-test-server qt-test-server.qt-test-net" | sudo tee -a /etc/hosts || throw $ExceptionNTS + +) +catch || { + case $ex_code in + $ExceptionDisableScreensaver) + echo "Failed to disable screensaver." + exit 1; + ;; + $ExceptionSetInitialDelay) + echo "Failed to set initial delay of keyboard." + exit 1; + ;; + $ExceptionSetDelay) + echo "Failed to set delay of keyboard." + exit 1; + ;; + $ExceptionVNC) + echo "Failed to enable VNC." + exit 1; + ;; + $ExceptionNTS) + echo "Failed to set NTS." + exit 1; + ;; + esac +} + diff --git a/coin/provisioning/qtci-osx-10.11-x86_64/01-macos-removethemall.sh b/coin/provisioning/qtci-osx-10.11-x86_64/01-macos-removethemall.sh deleted file mode 100644 index 6b56aac4..00000000 --- a/coin/provisioning/qtci-osx-10.11-x86_64/01-macos-removethemall.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/usr/bin/env bash -BASEDIR=$(dirname "$0") -source "$BASEDIR/../common/01-macos-removethemall.sh" - diff --git a/coin/provisioning/qtci-windows-10-x86/06-msvc2015_update.ps1 b/coin/provisioning/qtci-osx-10.11-x86_64/015-xz.sh index 83ff3f48..dcd8fead 100644..100755 --- a/coin/provisioning/qtci-windows-10-x86/06-msvc2015_update.ps1 +++ b/coin/provisioning/qtci-osx-10.11-x86_64/015-xz.sh @@ -1,3 +1,5 @@ +#!/bin/bash + ############################################################################# ## ## Copyright (C) 2017 The Qt Company Ltd. @@ -30,4 +32,19 @@ ## $QT_END_LICENSE$ ## ############################################################################# -. "$PSScriptRoot\..\common\msvc2015_update.ps1" + +# This script installs XZ-Utils + +# XZ-Utils are needed for uncompressing xz-compressed files + +# shellcheck source=../common/try_catch.sh +source "${BASH_SOURCE%/*}/../common/InstallPKGFromURL.sh" + +PrimaryUrl="http://ci-files01-hki.ci.local/input/mac/osx_10.11_el_capitan/XZ.pkg" +AltUrl="http://sourceforge.net/projects/macpkg/files/XZ/5.0.7/XZ.pkg" +SHA1="f0c1f82ebcffe0bd4b8b57b6a77805db56b2de67" +DestDir="/" + +InstallPKGFromURL "$PrimaryUrl" "$AltUrl" "$SHA1" "$DestDir" + +echo "XZ = 5.0.7" >> ~/versions.txt diff --git a/coin/provisioning/qtci-osx-10.11-x86_64/020-xcode.sh b/coin/provisioning/qtci-osx-10.11-x86_64/020-xcode.sh new file mode 100755 index 00000000..7555c752 --- /dev/null +++ b/coin/provisioning/qtci-osx-10.11-x86_64/020-xcode.sh @@ -0,0 +1,53 @@ +#!/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$ +## +############################################################################# + +# This script installs Xcode +# Prerequisites: Have Xcode prefetched to local cache as xz compressed. +# This can be achieved by fetching Xcode_8.xip from Apple Store. +# Uncompress it with 'xar -xf Xcode_8.xip' +# Then get https://gist.githubusercontent.com/pudquick/ff412bcb29c9c1fa4b8d/raw/24b25538ea8df8d0634a2a6189aa581ccc6a5b4b/parse_pbzx2.py +# with which you can run 'python parse_pbzx2.py Content'. +# This will give you a file called "Content.part00.cpio.xz" that +# can be renamed to Xcode_8.xz for this script. + + + +# shellcheck source=../common/try_catch.sh +source "${BASH_SOURCE%/*}/../common/try_catch.sh" + +# shellcheck source=../common/install_xcode.sh +source "${BASH_SOURCE%/*}/../common/install_xcode.sh" + +InstallXCode /net/ci-files01-hki.ci.local/hdd/www/input/mac/Xcode_8.2.xz 8.2 diff --git a/coin/provisioning/qtci-osx-10.11-x86_64/025-cmake.sh b/coin/provisioning/qtci-osx-10.11-x86_64/025-cmake.sh new file mode 100755 index 00000000..085225d7 --- /dev/null +++ b/coin/provisioning/qtci-osx-10.11-x86_64/025-cmake.sh @@ -0,0 +1,51 @@ +#!/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$ +## +############################################################################# + +# This script installs CMake + +# CMake is needed for autotests that verify that Qt can be built with CMake + +# shellcheck source=../common/InstallAppFromCompressedFileFromURL.sh +source "${BASH_SOURCE%/*}/../common/InstallAppFromCompressedFileFromURL.sh" + +PrimaryUrl="http://ci-files01-hki.ci.local/input/mac/osx_10.11_el_capitan/cmake-3.6.2-Darwin-x86_64.tar.gz" +AltUrl="https://cmake.org/files/v3.6/cmake-3.6.2-Darwin-x86_64.tar.gz" +SHA1="13835afa3aea939e07a7ecccedcc041dd8c3a86e" +appPrefix="cmake-3.6.2-Darwin-x86_64" + +InstallAppFromCompressedFileFromURL "$PrimaryUrl" "$AltUrl" "$SHA1" "$appPrefix" + +echo "export PATH=/Applications/CMake.app/Contents/bin:$PATH" >> ~/.bashrc +echo "CMake = 3.6.2" >> ~/versions.txt diff --git a/coin/provisioning/qtci-linux-Ubuntu-16.04-x86_64/006-qt-build-dependencies.sh b/coin/provisioning/qtci-osx-10.11-x86_64/025-mysql.sh index 30a6caad..4d938890 100644..100755 --- a/coin/provisioning/qtci-linux-Ubuntu-16.04-x86_64/006-qt-build-dependencies.sh +++ b/coin/provisioning/qtci-osx-10.11-x86_64/025-mysql.sh @@ -1,4 +1,4 @@ -#!/usr/bin/env bash +#!/bin/bash ############################################################################# ## @@ -33,14 +33,23 @@ ## ############################################################################# -sudo apt-get -y build-dep qt5-default +# This script installs MySQL -# qtbase -sudo apt-get -y install "^libxcb.*" libx11-xcb-dev libglu1-mesa-dev libxrender-dev libxi-dev -sudo apt-get -y install libxcb-xinerama0-dev libdbus-1-dev libatspi2.0-dev +# MySQL is needed for Qt to be able to support MySQL -# qtmultimedia -sudo apt-get -y install libasound2-dev libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev +# shellcheck source=../common/InstallAppFromCompressedFileFromURL.sh +source "${BASH_SOURCE%/*}/../common/InstallAppFromCompressedFileFromURL.sh" + +PrimaryUrl="http://ci-files01-hki.ci.local/input/mac/osx_10.11_el_capitan/mysql-5.7.15-osx10.11-x86_64.tar.gz" +AltUrl="https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.15-osx10.11-x86_64.tar.gz" +SHA1="07949bd42f350b0504a1536b8830b809b4a34fca" +appPrefix="" +targetDir="/opt/mysql57/" + +sudo mkdir -p "/opt" + +InstallAppFromCompressedFileFromURL "$PrimaryUrl" "$AltUrl" "$SHA1" "$appPrefix" "$targetDir" + +echo "export MYSQLBINPATH=/opt/mysql57/bin" >> ~/.bashrc +echo "MySQL = 5.7.15" >> ~/versions.txt -# qtwebengine -sudo apt-get -y install libssl-dev libxcursor-dev libxcomposite-dev libxdamage-dev libxrandr-dev libfontconfig1-dev libcap-dev libxtst-dev libpulse-dev libudev-dev libpci-dev libnss3-dev libasound2-dev libxss-dev libegl1-mesa-dev gperf bison diff --git a/coin/provisioning/qtci-osx-10.11-x86_64/025-postgresql.sh b/coin/provisioning/qtci-osx-10.11-x86_64/025-postgresql.sh new file mode 100755 index 00000000..381fedf2 --- /dev/null +++ b/coin/provisioning/qtci-osx-10.11-x86_64/025-postgresql.sh @@ -0,0 +1,52 @@ +#!/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$ +## +############################################################################# + +# This script installs PostgreSQL + +# PostgreSQL is needed for Qt to be able to support PostgreSQL + +# shellcheck source=../common/InstallAppFromCompressedFileFromURL.sh +source "${BASH_SOURCE%/*}/../common/InstallAppFromCompressedFileFromURL.sh" + +PrimaryUrl="http://ci-files01-hki.ci.local/input/mac/osx_10.11_el_capitan/Postgres-9.6.0.zip" +AltUrl="https://github.com/PostgresApp/PostgresApp/releases/download/9.6.0/Postgres-9.6.0.zip" +SHA1="5078e44663787006ca55fa3b5e2be598bed82eb5" +appPrefix="" + +InstallAppFromCompressedFileFromURL "$PrimaryUrl" "$AltUrl" "$SHA1" "$appPrefix" + +echo "export POSTGRESQLBINPATH=/Applications/Postgres.app/Contents/Versions/9.6/bin" >> ~/.bashrc +echo "PostgreSQL = 9.6.0" >> ~/versions.txt + diff --git a/coin/provisioning/qtci-osx-10.11-x86_64/android.sh b/coin/provisioning/qtci-osx-10.11-x86_64/android.sh deleted file mode 100644 index 559eabd6..00000000 --- a/coin/provisioning/qtci-osx-10.11-x86_64/android.sh +++ /dev/null @@ -1,102 +0,0 @@ -#!/bin/sh - -############################################################################# -## -## 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 install Android sdk and ndk. - -# It also runs update for SDK API level 18, latest SDK tools, latest platform-tools and - build-tools - -# Android 16 is the minimum requirement for Qt 5.7 applications, but we need something more recent than that for building Qt itself. -# E.g The Bluetooth features that require Android 18 will disable themselves dynamically when running on an Android 16 device. -# That's why we need to use Andoid-18 API version and decision was made to use it also with Qt 5.6. - -set -e -targetFolder="/opt/android" -baseUrl="http://ci-files01-hki.ci.local/input/android" - -# SDK -sdkVersion="android-sdk_r24.4.1-macosx.zip" -sdkBuildToolsVersion="24.0.2" -sdkApiLevel="android-18" -sdkUrl="$baseUrl/$sdkVersion" -sdkSha1="85a9cccb0b1f9e6f1f616335c5f07107553840cd" -sdkTargetFile="$targetFolder/$sdkVersion" -sdkExtract="unzip $sdkTargetFile -d $targetFolder" -sdkFolderName="android-sdk-macosx" -sdkName="sdk" - -# NDK -ndkVersion="android-ndk-r10e-darwin-x86_64.zip" -ndkUrl="$baseUrl/$ndkVersion" -ndkSha1="6be8598e4ed3d9dd42998c8cb666f0ee502b1294" -ndkTargetFile="$targetFolder/$ndkVersion" -ndkExtract="unzip $ndkTargetFile -d $targetFolder" -ndkFolderName="android-ndk-r10e" -ndkName="ndk" - -function InstallAndroidPackage { - targetFolder=$1 - version=$2 - url=$3 - sha1=$4 - targetFile=$5 - extract=$6 - folderName=$7 - name=$8 - - sudo curl --retry 5 --retry-delay 10 --retry-max-time 60 $url -o $targetFile || echo "Failed to download '$url' multiple times" - shasum $targetFile |grep $sha1 || echo "shasum check failed !" - sudo chmod 755 $targetFile - sudo $extract || echo "Failed to extract $url" - sudo chown -R qt:wheel $targetFolder/$folderName - sudo mv $targetFolder/$folderName $targetFolder/$name || echo "Failed to rename $name" - sudo rm -fr $targetFolder/$version || echo "Failed to remove $targetFolder/$version" -} - -sudo mkdir $targetFolder -# Install Android SDK -echo "Installing Android SDK version $sdkVersion..." -InstallAndroidPackage $targetFolder $sdkVersion $sdkUrl $sdkSha1 $sdkTargetFile "$sdkExtract" $sdkFolderName $sdkName - -# Install Android NDK -echo "Installing Android NDK version $ndkVersion..." -InstallAndroidPackage $targetFolder $ndkVersion $ndkUrl $ndkSha1 $ndkTargetFile "$ndkExtract" $ndkFolderName $ndkName - -# run update for Android SDK and install SDK API version 18, latest SDK tools, platform-tools and build-tools -echo "Running Android SDK update for API version 18, SDK-tools, platform-tools and build-tools-$sdkBuildToolsVersion..." -echo "y" |$targetFolder/sdk/tools/android update sdk --no-ui --all --filter $sdkApiLevel,tools,platform-tools,build-tools-$sdkBuildToolsVersion || echo "Failed to run update" - -# For Qt 5.6, we by default require API levels 10, 11, 16 and 18, but we can override this by setting ANDROID_API_VERSION=android-18 -# From Qt 5.7 forward, if android-16 is not installed, Qt will automatically use more recent one. -echo 'export ANDROID_API_VERSION=android-18' >> ~/.bashrc diff --git a/coin/provisioning/qtci-windows-10-x86/02-python.ps1 b/coin/provisioning/qtci-windows-10-x86/02-python.ps1 index 0e401c02..27c618e1 100644 --- a/coin/provisioning/qtci-windows-10-x86/02-python.ps1 +++ b/coin/provisioning/qtci-windows-10-x86/02-python.ps1 @@ -1 +1 @@ -. "$PSScriptRoot\..\common\02-python.ps1" +. "$PSScriptRoot\..\common\python.ps1" 32 diff --git a/coin/provisioning/qtci-windows-10-x86/msvc_2015_update3_patch.ps1 b/coin/provisioning/qtci-windows-10-x86/msvc_2015_update3_patch.ps1 new file mode 100644 index 00000000..f16b5ef4 --- /dev/null +++ b/coin/provisioning/qtci-windows-10-x86/msvc_2015_update3_patch.ps1 @@ -0,0 +1,50 @@ +############################################################################# +## +## 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\..\common\helpers.ps1" + +# Install Cumulative Servicing Release Visual Studio 2015 update 3 +# Original download page: https://msdn.microsoft.com/en-us/library/mt752379.aspx +# http://ci-files01-hki.ci.local/input/windows/vs14-kb3165756.exe + +$version = "2015 update3 (KB3165756)" +$package = "C:\Windows\Temp\vs14-kb3165756.exe" +$url_cache = "http://ci-files01-hki.ci.local/input/windows/vs14-kb3165756.exe" +$url_official = "http://go.microsoft.com/fwlink/?LinkID=816878" +$sha1 = "6a21d9b291ca75d44baad95e278fdc0d05d84c02" + +echo "Fetching patch for Visual Studio $version..." +Download $url_official $url_cache $package +Verify-Checksum $package $sha1 +echo "Installing patch for Visual Studio $version..." +cmd /c "$package /norestart /Quiet" +remove-item $package diff --git a/coin/provisioning/qtci-windows-10-x86_64/02-python.ps1 b/coin/provisioning/qtci-windows-10-x86_64/02-python.ps1 index 0e401c02..44c1c5ff 100644 --- a/coin/provisioning/qtci-windows-10-x86_64/02-python.ps1 +++ b/coin/provisioning/qtci-windows-10-x86_64/02-python.ps1 @@ -1 +1 @@ -. "$PSScriptRoot\..\common\02-python.ps1" +. "$PSScriptRoot\..\common\python.ps1" 64 diff --git a/coin/provisioning/qtci-windows-10-x86_64/msvc_2015_update3_patch.ps1 b/coin/provisioning/qtci-windows-10-x86_64/msvc_2015_update3_patch.ps1 new file mode 100644 index 00000000..f16b5ef4 --- /dev/null +++ b/coin/provisioning/qtci-windows-10-x86_64/msvc_2015_update3_patch.ps1 @@ -0,0 +1,50 @@ +############################################################################# +## +## 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\..\common\helpers.ps1" + +# Install Cumulative Servicing Release Visual Studio 2015 update 3 +# Original download page: https://msdn.microsoft.com/en-us/library/mt752379.aspx +# http://ci-files01-hki.ci.local/input/windows/vs14-kb3165756.exe + +$version = "2015 update3 (KB3165756)" +$package = "C:\Windows\Temp\vs14-kb3165756.exe" +$url_cache = "http://ci-files01-hki.ci.local/input/windows/vs14-kb3165756.exe" +$url_official = "http://go.microsoft.com/fwlink/?LinkID=816878" +$sha1 = "6a21d9b291ca75d44baad95e278fdc0d05d84c02" + +echo "Fetching patch for Visual Studio $version..." +Download $url_official $url_cache $package +Verify-Checksum $package $sha1 +echo "Installing patch for Visual Studio $version..." +cmd /c "$package /norestart /Quiet" +remove-item $package diff --git a/coin/provisioning/qtci-windows-7-x86/02-python.ps1 b/coin/provisioning/qtci-windows-7-x86/02-python.ps1 index 0e401c02..27c618e1 100644 --- a/coin/provisioning/qtci-windows-7-x86/02-python.ps1 +++ b/coin/provisioning/qtci-windows-7-x86/02-python.ps1 @@ -1 +1 @@ -. "$PSScriptRoot\..\common\02-python.ps1" +. "$PSScriptRoot\..\common\python.ps1" 32 diff --git a/coin/provisioning/qtci-windows-7-x86/06-android.ps1 b/coin/provisioning/qtci-windows-7-x86/06-android.ps1 index 96be39a3..ca641d25 100644 --- a/coin/provisioning/qtci-windows-7-x86/06-android.ps1 +++ b/coin/provisioning/qtci-windows-7-x86/06-android.ps1 @@ -1,10 +1,10 @@ . "$PSScriptRoot\..\common\helpers.ps1" # This script installs Android sdk and ndk -# It also runs update for SDK API level 18, latest SDK tools, latest platform-tools and build-tools version $sdkBuildToolsVersion +# It also runs update for SDK API level 21, latest SDK tools, latest platform-tools and build-tools version $sdkBuildToolsVersion # Android 16 is the minimum requirement for Qt 5.7 applications, but we need something more recent than that for building Qt itself. -# E.g the bluetooth features that require Android 18 will disable themselves dynamically when running on Android 16 device. -# That's why we need to use Andoid-18 API version and decision was made to use it also with Qt 5.6. +# E.g The Bluetooth features that require Android 21 will disable themselves dynamically when running on an Android 16 device. +# That's why we need to use Andoid-21 API version in Qt 5.9. # NDK $ndkVersion = "r10e" @@ -17,7 +17,7 @@ $ndkZip = "c:\Windows\Temp\android_ndk_$ndkVersion.zip" # SDK $sdkVersion = "r24.4.1" $sdkApi = "ANDROID_API_VERSION" -$sdkApiLevel = "android-18" +$sdkApiLevel = "android-21" $sdkBuildToolsVersion = "23.0.3" $sdkCachedUrl= "http://ci-files01-hki.ci.local/input/android/android-sdk_$sdkVersion-windows.zip" $sdkOfficialUrl = "https://dl.google.com/android/android-sdk_$sdkVersion-windows.zip" diff --git a/coin/provisioning/qtci-windows-8-x86/02-python.ps1 b/coin/provisioning/qtci-windows-8-x86/02-python.ps1 deleted file mode 100644 index 0e401c02..00000000 --- a/coin/provisioning/qtci-windows-8-x86/02-python.ps1 +++ /dev/null @@ -1 +0,0 @@ -. "$PSScriptRoot\..\common\02-python.ps1" diff --git a/coin/provisioning/qtci-windows-8-x86/06-python.ps1 b/coin/provisioning/qtci-windows-8-x86/06-python.ps1 new file mode 100644 index 00000000..27c618e1 --- /dev/null +++ b/coin/provisioning/qtci-windows-8-x86/06-python.ps1 @@ -0,0 +1 @@ +. "$PSScriptRoot\..\common\python.ps1" 32 diff --git a/coin/provisioning/qtci-windows-8-x86_64/02-python.ps1 b/coin/provisioning/qtci-windows-8-x86_64/02-python.ps1 deleted file mode 100644 index 0e401c02..00000000 --- a/coin/provisioning/qtci-windows-8-x86_64/02-python.ps1 +++ /dev/null @@ -1 +0,0 @@ -. "$PSScriptRoot\..\common\02-python.ps1" diff --git a/coin/provisioning/qtci-windows-8-x86_64/06-python.ps1 b/coin/provisioning/qtci-windows-8-x86_64/06-python.ps1 new file mode 100644 index 00000000..44c1c5ff --- /dev/null +++ b/coin/provisioning/qtci-windows-8-x86_64/06-python.ps1 @@ -0,0 +1 @@ +. "$PSScriptRoot\..\common\python.ps1" 64 |