diff options
Diffstat (limited to 'coin/provisioning')
23 files changed, 306 insertions, 0 deletions
diff --git a/coin/provisioning/common/helpers.ps1 b/coin/provisioning/common/helpers.ps1 new file mode 100644 index 00000000..d7b957f3 --- /dev/null +++ b/coin/provisioning/common/helpers.ps1 @@ -0,0 +1,31 @@ +function Verify-Checksum +{ + Param ( + [string]$File=$(throw("You must specify a filename to get the checksum of.")), + [string]$Expected=$(throw("Checksum required")), + [ValidateSet("sha1","md5")][string]$Algorithm="sha1" + ) + $fs = new-object System.IO.FileStream $File, "Open" + $algo = [type]"System.Security.Cryptography.$Algorithm" + $crypto = $algo::Create() + $hash = [BitConverter]::ToString($crypto.ComputeHash($fs)).Replace("-", "") + $fs.Close() + if ($hash -ne $Expected) { + Write-Error "Checksum verification failed, got: '$hash' expected: '$Expected'" + } +} + +function Extract-Zip +{ + Param ( + [string]$Source, + [string]$Destination + ) + echo "Extracting '$Source' to '$Destination'..." + + New-Item -ItemType Directory -Force -Path $Destination + $shell = new-object -com shell.application + $zipfile = $shell.Namespace($Source) + $destinationFolder = $shell.Namespace($Destination) + $destinationFolder.CopyHere($zipfile.Items(), 16) +} diff --git a/coin/provisioning/common/icu.ps1 b/coin/provisioning/common/icu.ps1 new file mode 100644 index 00000000..4be185e5 --- /dev/null +++ b/coin/provisioning/common/icu.ps1 @@ -0,0 +1,9 @@ +# ICU is already pre-installed on Windows machines, it would be nice to have +# the installation script, but for now let's just export the right variables + +# FIXME: do we really want to have it per MSVC version? What about MSVC2015? +[Environment]::SetEnvironmentVariable("CI_ICU_PATH_MSVC2012", "C:\\Utils\\icu_53_1_msvc_2012_64_devel\\icu53_1", "Machine") +[Environment]::SetEnvironmentVariable("CI_ICU_PATH_MSVC2013", "C:\\Utils\\icu_53_1_msvc_2013_64_devel\\icu53_1", "Machine") + +# FIXME: do we really want to use the 4.8.2 ICU build? +[Environment]::SetEnvironmentVariable("CI_ICU_PATH_Mingw49", "C:\Utils\icu_53_1_Mingw_builds_4_8_2_posix_seh_64_devel\icu53_1", "Machine") diff --git a/coin/provisioning/common/jom.ps1 b/coin/provisioning/common/jom.ps1 new file mode 100644 index 00000000..ef012b64 --- /dev/null +++ b/coin/provisioning/common/jom.ps1 @@ -0,0 +1,9 @@ +. "$PSScriptRoot\helpers.ps1" + +$zip = "c:\users\qt\downloads\jom_1_1_0.zip" + +Invoke-WebRequest -UseBasicParsing http://download.qt.io/official_releases/jom/jom_1_1_0.zip -OutFile $zip +Verify-Checksum $zip "C4149FE706B25738B4C4E54C73E180B9CAB55832" +Extract-Zip $zip C:\Utils\Jom + +[Environment]::SetEnvironmentVariable("CI_JOM_PATH", "C:\Utils\Jom", "Machine") diff --git a/coin/provisioning/common/patch_qnx.ps1 b/coin/provisioning/common/patch_qnx.ps1 new file mode 100644 index 00000000..2fca7b67 --- /dev/null +++ b/coin/provisioning/common/patch_qnx.ps1 @@ -0,0 +1,51 @@ +############################################################################# +## +## 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$ +## +############################################################################# + +# Patch QNX SDK due to issues in the standard library. +# The patches are available here: +# http://www.qnx.com/download/feature.html?programid=27555 +# A copy of the patch must be in the root of the Coin path in +# provisioning/qnx/patch-660-4367-RS6069_cpp-headers.zip + + +. "$PSScriptRoot\helpers.ps1" + +$zip = "c:\users\qt\downloads\patch-660-4367-RS6069_cpp-headers.zip" +$sha1 = "57A11FFE4434AD567B3C36F7B828DBB468A9E565" +$tempDir = "C:\temp\qnx_path" + +Invoke-WebRequest -UseBasicParsing http://${Env:COIN_WEBSERVER_ADDRESS}/coin/provisioning/qnx/patch-660-4367-RS6069_cpp-headers.zip -OutFile $zip +Verify-Checksum $zip $sha1 +Extract-Zip $zip $tempDir +Copy-Item $tempDir\patches\660-4367\target\* C:\qnx660\target\ -recurse -force +Remove-Item $tempDir -recurse 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 new file mode 100644 index 00000000..02ddda3f --- /dev/null +++ b/coin/provisioning/qtci-linux-RHEL-6.6-x86_64/install_icu.sh @@ -0,0 +1,70 @@ +#!/bin/env bash + +############################################################################# +## +## Copyright (C) 2016 The Qt Company Ltd. +## Contact: http://www.qt.io/licensing/ +## +## This file is part of the test suite of the Qt Toolkit. +## +## $QT_BEGIN_LICENSE:LGPL21$ +## Commercial License Usage +## Licensees holding valid commercial Qt licenses may use this file in +## accordance with the commercial license agreement provided with the +## Software or, alternatively, in accordance with the terms contained in +## a written agreement between you and The Qt Company. For licensing terms +## and conditions see http://www.qt.io/terms-conditions. For further +## information use the contact form at http://www.qt.io/contact-us. +## +## GNU Lesser General Public License Usage +## Alternatively, this file may be used under the terms of the GNU Lesser +## General Public License version 2.1 or version 3 as published by the Free +## Software Foundation and appearing in the file LICENSE.LGPLv21 and +## LICENSE.LGPLv3 included in the packaging of this file. Please review the +## following information to ensure the GNU Lesser General Public License +## requirements will be met: https://www.gnu.org/licenses/lgpl.html and +## http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +## +## As a special exception, The Qt Company gives you certain additional +## rights. These rights are described in The Qt Company LGPL Exception +## version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +## +## $QT_END_LICENSE$ +## +############################################################################# + +# This script installs the right ICU version + +set -e +icuVersion="56.1" +icuLocation="/usr/lib64" +sha1="f2eab775c04ce5f3bdae6c47d06b62158b5d6753" + +function Install7ZPackageFromURL { + url=$1 + expectedSha1=$2 + targetDirectory=$3 + + targetFile=`mktemp` || echo "Failed to create temporary file" + wget --tries=5 --waitretry=5 --output-document=$targetFile $url || echo "Failed to download '$url' multiple times" + echo "$expectedSha1 $targetFile" | sha1sum --check || echo "Failed to check sha1sum" + sudo /usr/local/bin/7z x -yo$targetDirectory $targetFile || echo "Failed to unzip $url archive" + rm $targetFile +} + +echo "Installing custom ICU $icuVersion $sha1 packages on RHEL to $icuLocation" + +baseBinaryPackageURL="http://master.qt.io/development_releases/prebuilt/icu/prebuilt/$icuVersion/icu-linux-g++-Rhel6.6-x64.7z" +Install7ZPackageFromURL $baseBinaryPackageURL $sha1 "/usr/lib64" + +echo "Installing custom ICU devel packages on RHEL" + +sha1Dev="82f8b216371b848b8d36ecec7fe7b6e9b0dba0df" +develPackageURL="http://master.qt.io/development_releases/prebuilt/icu/prebuilt/$icuVersion/icu-linux-g++-Rhel6.6-x64-devel.7z" +tempDir=`mktemp -d` || echo "Failed to create temporary directory" +trap "sudo rm -fr $tempDir" EXIT +Install7ZPackageFromURL $develPackageURL $sha1Dev $tempDir +sudo cp -a $tempDir/lib/* /usr/lib64 +sudo cp -a $tempDir/* /usr/ + +sudo /sbin/ldconfig diff --git a/coin/provisioning/qtci-linux-RHEL-6.6-x86_64/odbc.sh b/coin/provisioning/qtci-linux-RHEL-6.6-x86_64/odbc.sh new file mode 100644 index 00000000..f6c90a75 --- /dev/null +++ b/coin/provisioning/qtci-linux-RHEL-6.6-x86_64/odbc.sh @@ -0,0 +1,4 @@ +# provides: odbc devel packages on RHEL +# version: provided by default Linux distribution repository +# needed for configure -plugin-sql-odbc in qtbase +sudo yum install -y unixODBC-devel diff --git a/coin/provisioning/qtci-linux-RHEL-6.6-x86_64/patch_qnx.sh b/coin/provisioning/qtci-linux-RHEL-6.6-x86_64/patch_qnx.sh new file mode 100644 index 00000000..19993ecc --- /dev/null +++ b/coin/provisioning/qtci-linux-RHEL-6.6-x86_64/patch_qnx.sh @@ -0,0 +1,64 @@ +#!/bin/env bash + +############################################################################# +## +## Copyright (C) 2016 The Qt Company Ltd. +## Contact: http://www.qt.io/licensing/ +## +## This file is part of the test suite of the Qt Toolkit. +## +## $QT_BEGIN_LICENSE:LGPL21$ +## Commercial License Usage +## Licensees holding valid commercial Qt licenses may use this file in +## accordance with the commercial license agreement provided with the +## Software or, alternatively, in accordance with the terms contained in +## a written agreement between you and The Qt Company. For licensing terms +## and conditions see http://www.qt.io/terms-conditions. For further +## information use the contact form at http://www.qt.io/contact-us. +## +## GNU Lesser General Public License Usage +## Alternatively, this file may be used under the terms of the GNU Lesser +## General Public License version 2.1 or version 3 as published by the Free +## Software Foundation and appearing in the file LICENSE.LGPLv21 and +## LICENSE.LGPLv3 included in the packaging of this file. Please review the +## following information to ensure the GNU Lesser General Public License +## requirements will be met: https://www.gnu.org/licenses/lgpl.html and +## http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +## +## As a special exception, The Qt Company gives you certain additional +## rights. These rights are described in The Qt Company LGPL Exception +## version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +## +## $QT_END_LICENSE$ +## +############################################################################# + +# Patch QNX SDK due to issues in the standard library. +# The patches are available here: +# http://www.qnx.com/download/feature.html?programid=27555 +# A copy of the patch must be in the root of the Coin path in +# provisioning/qnx/patch-660-4367-RS6069_cpp-headers.zip + +set -e +sha1="57a11ffe4434ad567b3c36f7b828dbb468a9e565" + +function InstallZipPackageFromURL { + url=$1 + expectedSha1=$2 + targetDirectory=$3 + + targetFile=`mktemp` || echo "Failed to create temporary file" + wget --tries=5 --waitretry=5 --output-document=$targetFile $url || echo "Failed to download '$url' multiple times" + echo "$expectedSha1 $targetFile" | sha1sum --check || echo "Failed to check sha1sum" + + tempDir=`mktemp -d` || echo "Failed to create temporary directory" + /usr/bin/unzip -o -d $tempDir $targetFile || echo "Failed to unzip $url archive" + trap "sudo rm -fr $targetFile $tempDir" EXIT + + sudo cp -rafv $tempDir/patches/660-4367/target/* /opt/qnx660/target/ +} + +echo "Patching QNX" + +baseBinaryPackageURL="http://${COIN_WEBSERVER_ADDRESS}/coin/provisioning/qnx/patch-660-4367-RS6069_cpp-headers.zip" +InstallZipPackageFromURL $baseBinaryPackageURL $sha1 "/opt/qnx660/target/" diff --git a/coin/provisioning/qtci-linux-Ubuntu-14.04-x86_64/freeopcua.sh b/coin/provisioning/qtci-linux-Ubuntu-14.04-x86_64/freeopcua.sh new file mode 100644 index 00000000..b14e94a6 --- /dev/null +++ b/coin/provisioning/qtci-linux-Ubuntu-14.04-x86_64/freeopcua.sh @@ -0,0 +1,49 @@ +#!/bin/env bash + +############################################################################# +## +## Copyright (C) 2016 The Qt Company Ltd. +## Contact: http://www.qt.io/licensing/ +## +## This file is part of the test suite of the Qt Toolkit. +## +## $QT_BEGIN_LICENSE:LGPL21$ +## Commercial License Usage +## Licensees holding valid commercial Qt licenses may use this file in +## accordance with the commercial license agreement provided with the +## Software or, alternatively, in accordance with the terms contained in +## a written agreement between you and The Qt Company. For licensing terms +## and conditions see http://www.qt.io/terms-conditions. For further +## information use the contact form at http://www.qt.io/contact-us. +## +## GNU Lesser General Public License Usage +## Alternatively, this file may be used under the terms of the GNU Lesser +## General Public License version 2.1 or version 3 as published by the Free +## Software Foundation and appearing in the file LICENSE.LGPLv21 and +## LICENSE.LGPLv3 included in the packaging of this file. Please review the +## following information to ensure the GNU Lesser General Public License +## requirements will be met: https://www.gnu.org/licenses/lgpl.html and +## http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +## +## As a special exception, The Qt Company gives you certain additional +## rights. These rights are described in The Qt Company LGPL Exception +## version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +## +## $QT_END_LICENSE$ +## +############################################################################# + +sudo apt-get update +sudo apt-get install -y libboost-dev libboost-thread-dev libboost-system-dev libboost-program-options-dev libboost-filesystem-dev libxml2-dev libboost-regex-dev + +TEMPDIR=$(mktemp --directory) || echo "Failed to create temporary directory" +trap "sudo rm -fr $TEMPDIR" EXIT +cd $TEMPDIR +git clone https://github.com/FreeOpcUa/freeopcua.git freeopcua +cd freeopcua +git checkout 57b6993d39b6761af773fa4fa37c3fbd39c764f1 +mkdir build +cd build +cmake -DCMAKE_INSTALL_PREFIX:PATH=/usr/local .. +make +sudo make install diff --git a/coin/provisioning/qtci-osx-10.10/crashreporter.sh b/coin/provisioning/qtci-osx-10.10/crashreporter.sh new file mode 100644 index 00000000..ba8dbdd3 --- /dev/null +++ b/coin/provisioning/qtci-osx-10.10/crashreporter.sh @@ -0,0 +1,2 @@ +#!/bin/sh +defaults write com.apple.CrashReporter DialogType server diff --git a/coin/provisioning/qtci-osx-10.11/crashreporter.sh b/coin/provisioning/qtci-osx-10.11/crashreporter.sh new file mode 100644 index 00000000..ba8dbdd3 --- /dev/null +++ b/coin/provisioning/qtci-osx-10.11/crashreporter.sh @@ -0,0 +1,2 @@ +#!/bin/sh +defaults write com.apple.CrashReporter DialogType server diff --git a/coin/provisioning/qtci-osx-10.8/crashreporter.sh b/coin/provisioning/qtci-osx-10.8/crashreporter.sh new file mode 100644 index 00000000..ba8dbdd3 --- /dev/null +++ b/coin/provisioning/qtci-osx-10.8/crashreporter.sh @@ -0,0 +1,2 @@ +#!/bin/sh +defaults write com.apple.CrashReporter DialogType server diff --git a/coin/provisioning/qtci-osx-10.9/crashreporter.sh b/coin/provisioning/qtci-osx-10.9/crashreporter.sh new file mode 100644 index 00000000..ba8dbdd3 --- /dev/null +++ b/coin/provisioning/qtci-osx-10.9/crashreporter.sh @@ -0,0 +1,2 @@ +#!/bin/sh +defaults write com.apple.CrashReporter DialogType server diff --git a/coin/provisioning/qtci-windows-10-x86/icu.ps1 b/coin/provisioning/qtci-windows-10-x86/icu.ps1 new file mode 100644 index 00000000..325be36a --- /dev/null +++ b/coin/provisioning/qtci-windows-10-x86/icu.ps1 @@ -0,0 +1 @@ +. "$PSScriptRoot\..\common\icu.ps1" diff --git a/coin/provisioning/qtci-windows-10-x86/jom.ps1 b/coin/provisioning/qtci-windows-10-x86/jom.ps1 new file mode 100644 index 00000000..842c65dd --- /dev/null +++ b/coin/provisioning/qtci-windows-10-x86/jom.ps1 @@ -0,0 +1 @@ +. "$PSScriptRoot\..\common\jom.ps1" diff --git a/coin/provisioning/qtci-windows-10-x86_64/icu.ps1 b/coin/provisioning/qtci-windows-10-x86_64/icu.ps1 new file mode 100644 index 00000000..325be36a --- /dev/null +++ b/coin/provisioning/qtci-windows-10-x86_64/icu.ps1 @@ -0,0 +1 @@ +. "$PSScriptRoot\..\common\icu.ps1" diff --git a/coin/provisioning/qtci-windows-10-x86_64/jom.ps1 b/coin/provisioning/qtci-windows-10-x86_64/jom.ps1 new file mode 100644 index 00000000..842c65dd --- /dev/null +++ b/coin/provisioning/qtci-windows-10-x86_64/jom.ps1 @@ -0,0 +1 @@ +. "$PSScriptRoot\..\common\jom.ps1" diff --git a/coin/provisioning/qtci-windows-7-x86/icu.ps1 b/coin/provisioning/qtci-windows-7-x86/icu.ps1 new file mode 100644 index 00000000..325be36a --- /dev/null +++ b/coin/provisioning/qtci-windows-7-x86/icu.ps1 @@ -0,0 +1 @@ +. "$PSScriptRoot\..\common\icu.ps1" diff --git a/coin/provisioning/qtci-windows-7-x86/jom.ps1 b/coin/provisioning/qtci-windows-7-x86/jom.ps1 new file mode 100644 index 00000000..842c65dd --- /dev/null +++ b/coin/provisioning/qtci-windows-7-x86/jom.ps1 @@ -0,0 +1 @@ +. "$PSScriptRoot\..\common\jom.ps1" diff --git a/coin/provisioning/qtci-windows-7-x86/patch_qnx.ps1 b/coin/provisioning/qtci-windows-7-x86/patch_qnx.ps1 new file mode 100644 index 00000000..41210dcb --- /dev/null +++ b/coin/provisioning/qtci-windows-7-x86/patch_qnx.ps1 @@ -0,0 +1 @@ +. "$PSScriptRoot\..\common\patch_qnx.ps1" diff --git a/coin/provisioning/qtci-windows-8-x86/icu.ps1 b/coin/provisioning/qtci-windows-8-x86/icu.ps1 new file mode 100644 index 00000000..325be36a --- /dev/null +++ b/coin/provisioning/qtci-windows-8-x86/icu.ps1 @@ -0,0 +1 @@ +. "$PSScriptRoot\..\common\icu.ps1" diff --git a/coin/provisioning/qtci-windows-8-x86/jom.ps1 b/coin/provisioning/qtci-windows-8-x86/jom.ps1 new file mode 100644 index 00000000..842c65dd --- /dev/null +++ b/coin/provisioning/qtci-windows-8-x86/jom.ps1 @@ -0,0 +1 @@ +. "$PSScriptRoot\..\common\jom.ps1" diff --git a/coin/provisioning/qtci-windows-8-x86_64/icu.ps1 b/coin/provisioning/qtci-windows-8-x86_64/icu.ps1 new file mode 100644 index 00000000..325be36a --- /dev/null +++ b/coin/provisioning/qtci-windows-8-x86_64/icu.ps1 @@ -0,0 +1 @@ +. "$PSScriptRoot\..\common\icu.ps1" diff --git a/coin/provisioning/qtci-windows-8-x86_64/jom.ps1 b/coin/provisioning/qtci-windows-8-x86_64/jom.ps1 new file mode 100644 index 00000000..842c65dd --- /dev/null +++ b/coin/provisioning/qtci-windows-8-x86_64/jom.ps1 @@ -0,0 +1 @@ +. "$PSScriptRoot\..\common\jom.ps1" |