From beecc6e86e1e8b9aaf4c9029c36e53a94c01a957 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tony=20Saraj=C3=A4rvi?= Date: Tue, 31 Oct 2017 11:52:13 +0200 Subject: [PATCH] Use vanilla OS X 10.11 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 --- coin/platform_configs/default.txt | 4 +- coin/platform_configs/qt5.txt | 6 +- .../InstallAppFromCompressedFileFromURL.sh | 136 ++++++++++++++++++ coin/provisioning/common/cmake.sh | 51 +++++++ coin/provisioning/common/homebrew.sh | 3 + .../common/install-commandlinetools.sh | 88 ++++++++++++ coin/provisioning/common/install_xcode.sh | 91 ++++++++++++ coin/provisioning/common/libclang.sh | 72 ++++++++++ .../001-crashreporter.sh | 0 .../002-disable-screensaver.sh | 26 ---- .../qtci-osx-10.11-x86_64/003-bashprofile.sh | 0 .../004-fix-virtualenv.sh | 17 --- .../qtci-osx-10.11-x86_64/005-systemsetup.sh | 129 +++++++++++++++++ .../qtci-osx-10.11-x86_64/007-SSL_keychain.sh | 3 + .../01-macos-removethemall.sh | 4 - .../qtci-osx-10.11-x86_64/015-xz.sh | 50 +++++++ .../qtci-osx-10.11-x86_64/020-java.sh | 129 +++++++++++++++++ .../qtci-osx-10.11-x86_64/020-xcode.sh | 53 +++++++ .../021-install-commandlinetools.sh | 43 ++++++ .../qtci-osx-10.11-x86_64/025-cmake.sh | 4 + .../qtci-osx-10.11-x86_64/025-homebrew.sh | 4 + .../qtci-osx-10.11-x86_64/025-mysql.sh | 55 +++++++ .../qtci-osx-10.11-x86_64/025-postgresql.sh | 52 +++++++ .../qtci-osx-10.11-x86_64/025-python3.sh | 0 .../qtci-osx-10.11-x86_64/026-p7zip.sh | 4 + .../qtci-osx-10.11-x86_64/027-libclang.sh | 6 + .../{android.sh => 030-android.sh} | 23 ++- .../qtci-osx-10.11-x86_64/035-openssl.sh | 116 +++++++++++++++ .../qtci-osx-10.11-x86_64/crashreporter.sh | 2 - 29 files changed, 1110 insertions(+), 61 deletions(-) create mode 100644 coin/provisioning/common/InstallAppFromCompressedFileFromURL.sh create mode 100755 coin/provisioning/common/cmake.sh create mode 100755 coin/provisioning/common/homebrew.sh create mode 100644 coin/provisioning/common/install-commandlinetools.sh create mode 100755 coin/provisioning/common/install_xcode.sh create mode 100755 coin/provisioning/common/libclang.sh mode change 100644 => 100755 coin/provisioning/qtci-osx-10.11-x86_64/001-crashreporter.sh delete mode 100644 coin/provisioning/qtci-osx-10.11-x86_64/002-disable-screensaver.sh mode change 100644 => 100755 coin/provisioning/qtci-osx-10.11-x86_64/003-bashprofile.sh delete mode 100755 coin/provisioning/qtci-osx-10.11-x86_64/004-fix-virtualenv.sh create mode 100755 coin/provisioning/qtci-osx-10.11-x86_64/005-systemsetup.sh create mode 100755 coin/provisioning/qtci-osx-10.11-x86_64/007-SSL_keychain.sh delete mode 100644 coin/provisioning/qtci-osx-10.11-x86_64/01-macos-removethemall.sh create mode 100755 coin/provisioning/qtci-osx-10.11-x86_64/015-xz.sh create mode 100755 coin/provisioning/qtci-osx-10.11-x86_64/020-java.sh create mode 100755 coin/provisioning/qtci-osx-10.11-x86_64/020-xcode.sh create mode 100755 coin/provisioning/qtci-osx-10.11-x86_64/021-install-commandlinetools.sh create mode 100755 coin/provisioning/qtci-osx-10.11-x86_64/025-cmake.sh create mode 100755 coin/provisioning/qtci-osx-10.11-x86_64/025-homebrew.sh create mode 100755 coin/provisioning/qtci-osx-10.11-x86_64/025-mysql.sh create mode 100755 coin/provisioning/qtci-osx-10.11-x86_64/025-postgresql.sh mode change 100644 => 100755 coin/provisioning/qtci-osx-10.11-x86_64/025-python3.sh create mode 100755 coin/provisioning/qtci-osx-10.11-x86_64/026-p7zip.sh create mode 100755 coin/provisioning/qtci-osx-10.11-x86_64/027-libclang.sh rename coin/provisioning/qtci-osx-10.11-x86_64/{android.sh => 030-android.sh} (83%) mode change 100644 => 100755 create mode 100755 coin/provisioning/qtci-osx-10.11-x86_64/035-openssl.sh delete mode 100644 coin/provisioning/qtci-osx-10.11-x86_64/crashreporter.sh diff --git a/coin/platform_configs/default.txt b/coin/platform_configs/default.txt index c41f3d7f..28098927 100644 --- a/coin/platform_configs/default.txt +++ b/coin/platform_configs/default.txt @@ -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 diff --git a/coin/platform_configs/qt5.txt b/coin/platform_configs/qt5.txt index 92d55b1f..4e80f6b8 100644 --- a/coin/platform_configs/qt5.txt +++ b/coin/platform_configs/qt5.txt @@ -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 index 00000000..2af2db10 --- /dev/null +++ b/coin/provisioning/common/InstallAppFromCompressedFileFromURL.sh @@ -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 index 00000000..e10dd41d --- /dev/null +++ b/coin/provisioning/common/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=./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 index 00000000..a6efe123 --- /dev/null +++ b/coin/provisioning/common/homebrew.sh @@ -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)" > ~/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 index 00000000..c6f00ee7 --- /dev/null +++ b/coin/provisioning/common/install_xcode.sh @@ -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 index 00000000..97a35924 --- /dev/null +++ b/coin/provisioning/common/libclang.sh @@ -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/001-crashreporter.sh b/coin/provisioning/qtci-osx-10.11-x86_64/001-crashreporter.sh old mode 100644 new mode 100755 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 < - - - - Label - org.qt.io.screensaver_disable - ProgramArguments - - defaults - -currentHost - write - com.apple.screensaver - idleTime - 0 - - RunAtLoad - - KeepAlive - - - -EOT diff --git a/coin/provisioning/qtci-osx-10.11-x86_64/003-bashprofile.sh b/coin/provisioning/qtci-osx-10.11-x86_64/003-bashprofile.sh old mode 100644 new mode 100755 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 index f3646572..00000000 --- a/coin/provisioning/qtci-osx-10.11-x86_64/004-fix-virtualenv.sh +++ /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 index 00000000..4a07bbbe --- /dev/null +++ b/coin/provisioning/qtci-osx-10.11-x86_64/005-systemsetup.sh @@ -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" < + + + + + Label + org.qt.io.screensaver_disable + ProgramArguments + + defaults + -currentHost + write + com.apple.screensaver + idleTime + 0 + + RunAtLoad + + KeepAlive + + + +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 index 00000000..61406203 --- /dev/null +++ b/coin/provisioning/qtci-osx-10.11-x86_64/007-SSL_keychain.sh @@ -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 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-osx-10.11-x86_64/015-xz.sh b/coin/provisioning/qtci-osx-10.11-x86_64/015-xz.sh new file mode 100755 index 00000000..8a3999b9 --- /dev/null +++ b/coin/provisioning/qtci-osx-10.11-x86_64/015-xz.sh @@ -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 index 00000000..b90313e1 --- /dev/null +++ b/coin/provisioning/qtci-osx-10.11-x86_64/020-java.sh @@ -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 index 00000000..37acc2ee --- /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.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 index 00000000..9145c12a --- /dev/null +++ b/coin/provisioning/qtci-osx-10.11-x86_64/021-install-commandlinetools.sh @@ -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 index 00000000..ddb01d64 --- /dev/null +++ b/coin/provisioning/qtci-osx-10.11-x86_64/025-cmake.sh @@ -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 index 00000000..63ec9b69 --- /dev/null +++ b/coin/provisioning/qtci-osx-10.11-x86_64/025-homebrew.sh @@ -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 index 00000000..1e4de16a --- /dev/null +++ b/coin/provisioning/qtci-osx-10.11-x86_64/025-mysql.sh @@ -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 index 00000000..a990829e --- /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.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/025-python3.sh b/coin/provisioning/qtci-osx-10.11-x86_64/025-python3.sh old mode 100644 new mode 100755 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 index 00000000..4fb9ddbc --- /dev/null +++ b/coin/provisioning/qtci-osx-10.11-x86_64/026-p7zip.sh @@ -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 index 00000000..ba962b00 --- /dev/null +++ b/coin/provisioning/qtci-osx-10.11-x86_64/027-libclang.sh @@ -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 diff --git a/coin/provisioning/qtci-osx-10.11-x86_64/android.sh b/coin/provisioning/qtci-osx-10.11-x86_64/030-android.sh old mode 100644 new mode 100755 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 ac1a02d3..baf77a61 --- a/coin/provisioning/qtci-osx-10.11-x86_64/android.sh +++ b/coin/provisioning/qtci-osx-10.11-x86_64/030-android.sh @@ -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 index 00000000..aa494c9e --- /dev/null +++ b/coin/provisioning/qtci-osx-10.11-x86_64/035-openssl.sh @@ -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 index ba8dbdd3..00000000 --- a/coin/provisioning/qtci-osx-10.11-x86_64/crashreporter.sh +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/sh -defaults write com.apple.CrashReporter DialogType server