Use vanilla OS X 10.11
authorTony Sarajärvi <tony.sarajarvi@qt.io>
Tue, 31 Oct 2017 09:52:13 +0000 (11:52 +0200)
committerTony Sarajärvi <tony.sarajarvi@qt.io>
Mon, 22 Jan 2018 12:11:50 +0000 (12:11 +0000)
The old version takes up 60GB of disk space which we need to deploy
to all hosts building Qt. As this adds up, should use the same
tier1 images as all the other branches also use.

Task-number: QTQAINFRA-1629
Task-number: QTBUG-64729
Change-Id: I132b65c381a097333577f3132dc61b87da1c78da
Reviewed-by: Heikki Halmet <heikki.halmet@qt.io>
29 files changed:
coin/platform_configs/default.txt
coin/platform_configs/qt5.txt
coin/provisioning/common/InstallAppFromCompressedFileFromURL.sh [new file with mode: 0644]
coin/provisioning/common/cmake.sh [new file with mode: 0755]
coin/provisioning/common/homebrew.sh [new file with mode: 0755]
coin/provisioning/common/install-commandlinetools.sh [new file with mode: 0644]
coin/provisioning/common/install_xcode.sh [new file with mode: 0755]
coin/provisioning/common/libclang.sh [new file with mode: 0755]
coin/provisioning/qtci-osx-10.11-x86_64/001-crashreporter.sh [changed mode: 0644->0755]
coin/provisioning/qtci-osx-10.11-x86_64/002-disable-screensaver.sh [deleted file]
coin/provisioning/qtci-osx-10.11-x86_64/003-bashprofile.sh [changed mode: 0644->0755]
coin/provisioning/qtci-osx-10.11-x86_64/004-fix-virtualenv.sh [deleted file]
coin/provisioning/qtci-osx-10.11-x86_64/005-systemsetup.sh [new file with mode: 0755]
coin/provisioning/qtci-osx-10.11-x86_64/007-SSL_keychain.sh [new file with mode: 0755]
coin/provisioning/qtci-osx-10.11-x86_64/01-macos-removethemall.sh [deleted file]
coin/provisioning/qtci-osx-10.11-x86_64/015-xz.sh [new file with mode: 0755]
coin/provisioning/qtci-osx-10.11-x86_64/020-java.sh [new file with mode: 0755]
coin/provisioning/qtci-osx-10.11-x86_64/020-xcode.sh [new file with mode: 0755]
coin/provisioning/qtci-osx-10.11-x86_64/021-install-commandlinetools.sh [new file with mode: 0755]
coin/provisioning/qtci-osx-10.11-x86_64/025-cmake.sh [new file with mode: 0755]
coin/provisioning/qtci-osx-10.11-x86_64/025-homebrew.sh [new file with mode: 0755]
coin/provisioning/qtci-osx-10.11-x86_64/025-mysql.sh [new file with mode: 0755]
coin/provisioning/qtci-osx-10.11-x86_64/025-postgresql.sh [new file with mode: 0755]
coin/provisioning/qtci-osx-10.11-x86_64/025-python3.sh [changed mode: 0644->0755]
coin/provisioning/qtci-osx-10.11-x86_64/026-p7zip.sh [new file with mode: 0755]
coin/provisioning/qtci-osx-10.11-x86_64/027-libclang.sh [new file with mode: 0755]
coin/provisioning/qtci-osx-10.11-x86_64/030-android.sh [moved from coin/provisioning/qtci-osx-10.11-x86_64/android.sh with 83% similarity, mode: 0755]
coin/provisioning/qtci-osx-10.11-x86_64/035-openssl.sh [new file with mode: 0755]
coin/provisioning/qtci-osx-10.11-x86_64/crashreporter.sh [deleted file]

index c41f3d7..2809892 100644 (file)
@@ -14,11 +14,11 @@ qtci-windows-8.1-x86_64             Windows_Phone_8_1   armv4       MSVC2013
 qtci-windows-8.1-x86_64             WinRT_8_1                       MSVC2013    Packaging DebugAndRelease Release DisableTests UploadConfigureExe
 qtci-linux-OpenSuSE-13.01-x86_64                                    GCC         DeveloperBuild NoPch
 qtci-linux-RHEL-6.6-x86_64                                          GCC         Packaging Release NoUseGoldLinker
-qtci-osx-10.11-x86_64                                               Clang       Packaging DebugAndRelease Release
+qtci-osx-10.11-x86_64-3                                             Clang       Packaging DebugAndRelease Release
 qtci-osx-10.10-x86_64                                               Clang       DebugAndRelease Release DisableTests
 qtci-osx-10.9-x86_64                                                Clang       DeveloperBuild Release QtNamespace NoPch
 qtci-osx-10.8-x86_64                                                Clang       Release NoFramework
-qtci-osx-10.11-x86_64               IOS_ANY             x86_64      Clang       Release DisableTests Static
+qtci-osx-10.11-x86_64-3             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-1    Boot2Qt_Fido        armv7       GCC         DisableTests
 qtci-linux-RHEL-6.6-x86_64          QNX_660             armv7       GCC         Packaging Release DisableTests OpenGLES2 NoUseGoldLinker
index 92d55b1..4e80f6b 100644 (file)
@@ -6,12 +6,12 @@ qtci-windows-10-x86_64-8    WinRT_10                        MSVC2015    Packagin
 qtci-linux-RHEL-6.6-x86_64  Android_ANY         x86         GCC         Packaging Release DisableTests OpenGLES2 NoUseGoldLinker
 qtci-windows-7-x86-2        Android_ANY         armv7       Mingw49     Packaging Release DisableTests OpenGLES2 UploadConfigureExe
 qtci-windows-7-x86-2        Android_ANY         x86         Mingw49     Packaging Release DisableTests OpenGLES2 UploadConfigureExe
-qtci-osx-10.11-x86_64       Android_ANY         armv7       GCC         Packaging Release DisableTests OpenGLES2
-qtci-osx-10.11-x86_64       Android_ANY         x86         GCC         Packaging Release DisableTests OpenGLES2
+qtci-osx-10.11-x86_64-3     Android_ANY         armv7       GCC         Packaging Release DisableTests OpenGLES2
+qtci-osx-10.11-x86_64-3     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-10-x86_64-7    QNX_660             armv7       Mingw53     Packaging Release DisableTests OpenGLES2
 qtci-windows-10-x86_64-7    QNX_660             x86         Mingw53     Packaging Release DisableTests OpenGLES2
 # target arch is used here only for documentation the value is ignored
 qtci-windows-10-x86_64-8    WinRT_10            armv7       MSVC2015    Packaging DebugAndRelease Release DisableTests UploadConfigureExe
 
-qtci-osx-10.11-x86_64       IOS_ANY             multi       Clang       Packaging DebugAndRelease DisableTests Static
+qtci-osx-10.11-x86_64-3     IOS_ANY             multi       Clang       Packaging DebugAndRelease DisableTests Static
diff --git a/coin/provisioning/common/InstallAppFromCompressedFileFromURL.sh b/coin/provisioning/common/InstallAppFromCompressedFileFromURL.sh
new file mode 100644 (file)
index 0000000..2af2db1
--- /dev/null
@@ -0,0 +1,136 @@
+#!/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"
+
+ExceptionDownload=99
+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
+        # macOS 10.10 mktemp does require prefix
+        if [[ $OSTYPE == "darwin14" ]]; then
+            targetDirectory=$(mktemp -d -t '10.10') || throw $ExceptionCreateTmpDirectory
+        else
+            targetDirectory=$(mktemp -d) || throw $ExceptionCreateTmpDirectory
+        fi
+        (DownloadURL "$url" "$url_alt" "$expectedSha1" "$targetFile") || throw $ExceptionDownload
+        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
+            $ExceptionDownload)
+                exit 1;
+            ;;
+            $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/cmake.sh b/coin/provisioning/common/cmake.sh
new file mode 100755 (executable)
index 0000000..e10dd41
--- /dev/null
@@ -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=./InstallAppFromCompressedFileFromURL.sh
+source "${BASH_SOURCE%/*}/InstallAppFromCompressedFileFromURL.sh"
+
+PrimaryUrl="http://ci-files01-hki.intra.qt.io/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/common/homebrew.sh b/coin/provisioning/common/homebrew.sh
new file mode 100755 (executable)
index 0000000..a6efe12
--- /dev/null
@@ -0,0 +1,3 @@
+#!/usr/bin/env bash
+# Will install homebrew package manager for macOS
+/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" </dev/null
diff --git a/coin/provisioning/common/install-commandlinetools.sh b/coin/provisioning/common/install-commandlinetools.sh
new file mode 100644 (file)
index 0000000..b54d87b
--- /dev/null
@@ -0,0 +1,88 @@
+#!/bin/bash
+
+#############################################################################
+##
+## Copyright (C) 2017 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$
+##
+#############################################################################
+source "${BASH_SOURCE%/*}/DownloadURL.sh"
+source "${BASH_SOURCE%/*}/try_catch.sh"
+set -ex
+
+# Command line tools is need by Homebrew
+
+function InstallCommandLineTools {
+
+    ExceptionMount=101
+    ExceptionInstall=102
+    ExceptionUnmount=103
+
+    url=$1
+    url_alt=$2
+    expectedSha1=$3
+    packageName=$4
+    version=$5
+
+    try
+    (
+        DownloadURL $url $url_alt $expectedSha1 /tmp/$packageName
+        echo "Mounting $packageName"
+        hdiutil attach /tmp/$packageName || throw $ExceptionMount
+        cd "/Volumes/Command Line Developer Tools"
+        echo "Installing"
+        sudo installer -verbose -pkg *.pkg -target / || throw $ExceptionInstall
+        cd /
+        # Let's fait for 5 second before unmounting. Sometimes resource is busy and cant be unmounted
+        sleep 3
+        echo "Unmounting"
+        umount /Volumes/Command\ Line\ Developer\ Tools/ || throw $ExceptionUnmount
+        echo "Removing $packageName"
+        rm /tmp/$packageName
+
+        echo "Command Line Tools = $version" >> ~/versions.txt
+    )
+    catch || {
+        case $ex_code in
+            $ExceptionMount)
+                echo "Failed to mount."
+                exit 1;
+            ;;
+            $ExceptionInstall)
+                echo "Failed to install command line tools."
+                exit 1;
+            ;;
+            $ExceptionUnmount)
+                echo "Failed to unmount."
+                exit 1;
+
+        esac
+    }
+
+}
diff --git a/coin/provisioning/common/install_xcode.sh b/coin/provisioning/common/install_xcode.sh
new file mode 100755 (executable)
index 0000000..c6f00ee
--- /dev/null
@@ -0,0 +1,91 @@
+#!/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
+    ExceptionDeveloperMode=113
+
+    sourceFile=$1
+    version=$2
+
+    try
+    (
+        echo "Uncompressing and installing '$sourceFile'"
+        xzcat < "$sourceFile" | (cd /Applications/ && sudo cpio -dmi) || throw $ExceptionCPIO
+
+        echo "Accept license"
+        sudo xcodebuild -license accept || throw $ExceptionAcceptLicense
+
+        echo "Enabling developer mode, so that using lldb does not require interactive password entry"
+        sudo /usr/sbin/DevToolsSecurity -enable || throw $ExceptionDeveloperMode
+
+        echo "Xcode = $version" >> ~/versions.txt
+    )
+    catch || {
+        case $ex_code in
+            $ExceptionCPIO)
+                echo "Failed to unarchive .cpio."
+                exit 1;
+            ;;
+            $ExceptionDeveloperMode)
+                echo "Failed to enable developer mode."
+                exit 1;
+            ;;
+            $ExceptionAcceptLicense)
+                echo "Failed to accept license."
+                exit 1;
+            ;;
+
+        esac
+    }
+
+}
+
diff --git a/coin/provisioning/common/libclang.sh b/coin/provisioning/common/libclang.sh
new file mode 100755 (executable)
index 0000000..97a3592
--- /dev/null
@@ -0,0 +1,72 @@
+#!/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$
+##
+#############################################################################
+
+# PySide versions following 5.6 use a C++ parser based on Clang (http://clang.org/).
+# The Clang library (C-bindings), version 3.9 or higher is required for building.
+
+# This same script is used to provision libclang to Linux and macOS.
+# In case of Linux, we expect to get the values as args
+set -e
+
+BASEDIR=$(dirname "$0")
+url=$1
+sha1=$2
+version=$3
+if [ $# -eq 0 ]
+  then
+    # The default values are for macOS package
+    echo "Using macOS defaults"
+    version="4.0"
+    url="https://download.qt.io/development_releases/prebuilt/libclang/libclang-release_${version//\./}-mac.7z"
+    sha1="4781d154b274b2aec99b878c364f0ea80ff00a80"
+fi
+
+zip="libclang.7z"
+destination="/usr/local/libclang-$version"
+
+curl --fail -L --retry 5 --retry-delay 5 -o "$zip" "$url"
+_shasum=sha1sum
+if [[ "$OSTYPE" == "darwin"* ]]; then
+    echo "DARWIN"
+    _shasum=/usr/bin/shasum
+fi
+echo "$sha1  $zip" | $_shasum --check
+7z x $zip -o/tmp/
+rm -rf $zip
+
+sudo mv /tmp/libclang $destination
+
+echo "export LLVM_INSTALL_DIR=$destination" >> ~/.bash_profile
+echo "libClang = $version" >> ~/versions.txt
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 (file)
index 44df94e..0000000
+++ /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/004-fix-virtualenv.sh b/coin/provisioning/qtci-osx-10.11-x86_64/004-fix-virtualenv.sh
deleted file mode 100755 (executable)
index f364657..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-#!/usr/bin/env bash
-
-# macOS 10.11 template doesn't have working virtualenv installation.
-# To fix that, we first have to install pip to install virtualenv
-# Install pip
-curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
-sudo python get-pip.py
-rm get-pip.py
-
-# remove link pointing to broken virtualenv
-sudo rm /opt/local/bin/virtualenv
-sudo pip install virtualenv
-
-# fix the link. This is optional, while the new installation is
-# already in PATH, but there will be virtualenv-2.6 in /opt/local/bin
-# which might be confusing
-sudo ln -s /usr/local/bin/virtualenv /opt/local/bin/virtualenv
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 (executable)
index 0000000..4a07bbb
--- /dev/null
@@ -0,0 +1,129 @@
+#!/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
+ExceptionDisableScreensaverPassword=105
+
+try
+(
+    echo "Disable Screensaver"
+    # For current session
+    defaults -currentHost write com.apple.screensaver idleTime 0 || throw $ExceptionDisableScreensaver
+
+    # For session after a reboot
+    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
+
+    defaults write com.apple.screensaver askForPassword -int 0 || throw $ExceptionDisableScreensaverPassword
+
+    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;
+        ;;
+        $ExceptionDisableScreensaverPassword)
+            echo "Failed to disable requiring of password after screensaver is enabled."
+            exit 1;
+        ;;
+    esac
+}
+
diff --git a/coin/provisioning/qtci-osx-10.11-x86_64/007-SSL_keychain.sh b/coin/provisioning/qtci-osx-10.11-x86_64/007-SSL_keychain.sh
new file mode 100755 (executable)
index 0000000..6140620
--- /dev/null
@@ -0,0 +1,3 @@
+#!/bin/sh
+# Enables the usage of temporary keychains for SSL autotests
+echo "export QT_SSL_USE_TEMPORARY_KEYCHAIN=1" >> ~/.bashrc
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 (file)
index 6b56aac..0000000
+++ /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-osx-10.11-x86_64/015-xz.sh b/coin/provisioning/qtci-osx-10.11-x86_64/015-xz.sh
new file mode 100755 (executable)
index 0000000..8a3999b
--- /dev/null
@@ -0,0 +1,50 @@
+#!/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 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.intra.qt.io/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-java.sh b/coin/provisioning/qtci-osx-10.11-x86_64/020-java.sh
new file mode 100755 (executable)
index 0000000..b90313e
--- /dev/null
@@ -0,0 +1,129 @@
+#!/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.intra.qt.io/input/mac/osx_10.11_el_capitan/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
+
+    disk=`hdiutil info | grep '/Volumes/JDK 8 Update 102' | awk '{print $1}'`
+    hdiutil detach $disk || 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-osx-10.11-x86_64/020-xcode.sh b/coin/provisioning/qtci-osx-10.11-x86_64/020-xcode.sh
new file mode 100755 (executable)
index 0000000..37acc2e
--- /dev/null
@@ -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.intra.qt.io/hdd/www/input/mac/Xcode_8.2.xz 8.2
diff --git a/coin/provisioning/qtci-osx-10.11-x86_64/021-install-commandlinetools.sh b/coin/provisioning/qtci-osx-10.11-x86_64/021-install-commandlinetools.sh
new file mode 100755 (executable)
index 0000000..9145c12
--- /dev/null
@@ -0,0 +1,43 @@
+#!/bin/bash
+
+#############################################################################
+##
+## Copyright (C) 2017 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$
+##
+#############################################################################
+source "${BASH_SOURCE%/*}/../common/install-commandlinetools.sh"
+
+version="8.2"
+packageName="Command_Line_Tools_macOS_10.11_for_Xcode_$version.dmg"
+url="http://ci-files01-hki.intra.qt.io/input/mac/$packageName"
+sha1="4df615ca765ac1a1e681ddcbca79fc15990e3b25"
+
+InstallCommandLineTools $url $url $sha1 $packageName $version
+
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 (executable)
index 0000000..ddb01d6
--- /dev/null
@@ -0,0 +1,4 @@
+#!/usr/bin/env bash
+
+BASEDIR=$(dirname "$0")
+$BASEDIR/../common/cmake.sh
diff --git a/coin/provisioning/qtci-osx-10.11-x86_64/025-homebrew.sh b/coin/provisioning/qtci-osx-10.11-x86_64/025-homebrew.sh
new file mode 100755 (executable)
index 0000000..63ec9b6
--- /dev/null
@@ -0,0 +1,4 @@
+#!/usr/bin/env bash
+
+BASEDIR=$(dirname "$0")
+$BASEDIR/../common/homebrew.sh
diff --git a/coin/provisioning/qtci-osx-10.11-x86_64/025-mysql.sh b/coin/provisioning/qtci-osx-10.11-x86_64/025-mysql.sh
new file mode 100755 (executable)
index 0000000..1e4de16
--- /dev/null
@@ -0,0 +1,55 @@
+#!/bin/bash
+
+#############################################################################
+##
+## Copyright (C) 2016 The Qt Company Ltd.
+## Contact: http://www.qt.io/licensing/
+##
+## This file is part of the test suite of the Qt Toolkit.
+##
+## $QT_BEGIN_LICENSE:LGPL21$
+## Commercial License Usage
+## Licensees holding valid commercial Qt licenses may use this file in
+## accordance with the commercial license agreement provided with the
+## Software or, alternatively, in accordance with the terms contained in
+## a written agreement between you and The Qt Company. For licensing terms
+## and conditions see http://www.qt.io/terms-conditions. For further
+## information use the contact form at http://www.qt.io/contact-us.
+##
+## GNU Lesser General Public License Usage
+## Alternatively, this file may be used under the terms of the GNU Lesser
+## General Public License version 2.1 or version 3 as published by the Free
+## Software Foundation and appearing in the file LICENSE.LGPLv21 and
+## LICENSE.LGPLv3 included in the packaging of this file. Please review the
+## following information to ensure the GNU Lesser General Public License
+## requirements will be met: https://www.gnu.org/licenses/lgpl.html and
+## http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+##
+## As a special exception, The Qt Company gives you certain additional
+## rights. These rights are described in The Qt Company LGPL Exception
+## version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+##
+## $QT_END_LICENSE$
+##
+#############################################################################
+
+# This script installs 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.intra.qt.io/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
+
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 (executable)
index 0000000..a990829
--- /dev/null
@@ -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.intra.qt.io/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/026-p7zip.sh b/coin/provisioning/qtci-osx-10.11-x86_64/026-p7zip.sh
new file mode 100755 (executable)
index 0000000..4fb9ddb
--- /dev/null
@@ -0,0 +1,4 @@
+#!/usr/bin/env bash
+# Install 7z to be used from command line
+brew update
+brew install p7zip
diff --git a/coin/provisioning/qtci-osx-10.11-x86_64/027-libclang.sh b/coin/provisioning/qtci-osx-10.11-x86_64/027-libclang.sh
new file mode 100755 (executable)
index 0000000..ba962b0
--- /dev/null
@@ -0,0 +1,6 @@
+#!/usr/bin/env bash
+# requires: 7z
+
+BASEDIR=$(dirname "$0")
+# There is only one mac package and common script uses it as a default
+$BASEDIR/../common/libclang.sh
old mode 100644 (file)
new mode 100755 (executable)
similarity index 83%
rename from coin/provisioning/qtci-osx-10.11-x86_64/android.sh
rename to coin/provisioning/qtci-osx-10.11-x86_64/030-android.sh
index ac1a02d..baf77a6
@@ -41,7 +41,7 @@
 # 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
+set -ex
 targetFolder="/opt/android"
 basePath="/net/ci-files01-hki.intra.qt.io/hdd/www/input/android"
 
@@ -50,14 +50,14 @@ sdkVersion="android-sdk_r24.4.1-macosx.zip"
 sdkBuildToolsVersion="24.0.2"
 sdkApiLevel="android-18"
 sdkSourceFile="$basePath/$sdkVersion"
-sdkExtract="unzip $sdkSourceFile -d $targetFolder"
+sdkExtract="unzip -q $sdkSourceFile -d $targetFolder"
 sdkFolderName="android-sdk-macosx"
 sdkName="sdk"
 
 # NDK
 ndkVersion="android-ndk-r10e-darwin-x86_64.zip"
 ndkSourceFile="$basePath/$ndkVersion"
-ndkExtract="unzip $ndkSourceFile -d $targetFolder"
+ndkExtract="unzip -q $ndkSourceFile -d $targetFolder"
 ndkFolderName="android-ndk-r10e"
 ndkName="ndk"
 
@@ -68,9 +68,9 @@ function InstallAndroidPackage {
     folderName=$4
     name=$5
 
-    sudo $extract || echo "Failed to extract $url"
+    sudo $extract
     sudo chown -R qt:wheel $targetFolder/$folderName
-    sudo mv $targetFolder/$folderName $targetFolder/$name || echo "Failed to rename $name"
+    sudo mv $targetFolder/$folderName $targetFolder/$name
 }
 
 sudo mkdir $targetFolder
@@ -84,8 +84,17 @@ InstallAndroidPackage $targetFolder $ndkVersion "$ndkExtract" $ndkFolderName $nd
 
 # 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"
+echo "y" |$targetFolder/sdk/tools/android update sdk --no-ui --all --filter $sdkApiLevel,tools,platform-tools,build-tools-$sdkBuildToolsVersion
 
 # 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_SDK_HOME=$targetFolder/$sdkName" >> ~/.bashrc
+echo "export ANDROID_NDK_HOME=$targetFolder/$ndkName" >> ~/.bashrc
+echo "export ANDROID_NDK_HOST=darwin-x86_64" >> ~/.bashrc
+echo "export ANDROID_API_VERSION=$sdkApiLevel" >> ~/.bashrc
+
+echo "Android SDK tools = r24.4.1" >> ~/versions.txt
+echo "Android SDK Build Tools = $sdkBuildToolsVersion" >> ~/versions.txt
+echo "Android SDK API level = $sdkApiLevel" >> ~/versions.txt
+echo "Android NDK = r10e" >> ~/versions.txt
+
diff --git a/coin/provisioning/qtci-osx-10.11-x86_64/035-openssl.sh b/coin/provisioning/qtci-osx-10.11-x86_64/035-openssl.sh
new file mode 100755 (executable)
index 0000000..aa494c9
--- /dev/null
@@ -0,0 +1,116 @@
+#!/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.intra.qt.io/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
+    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.11-x86_64/crashreporter.sh b/coin/provisioning/qtci-osx-10.11-x86_64/crashreporter.sh
deleted file mode 100644 (file)
index ba8dbdd..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-#!/bin/sh
-defaults write com.apple.CrashReporter DialogType server