aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFrederik Gladhorn <frederik.gladhorn@qt.io>2016-06-28 15:58:17 +0000
committerThe Qt Project <gerrit-noreply@qt-project.org>2016-06-28 15:58:17 +0000
commitf4c6a9c97cd217ef7222cb522181025eaef41337 (patch)
tree5bd03b1a73703f4d85fad309960f7e86ce129f58
parentf78835e062d134d8d632a3a52160bb50348ed7c9 (diff)
parent39a03d3d6a55cc676871caad674514afa274090d (diff)
Merge "Merge remote-tracking branch 'origin/5.7' into dev" into refs/staging/dev
-rw-r--r--.gitmodules89
-rw-r--r--LICENSE.GPLv22
-rw-r--r--LICENSE.GPLv32
-rw-r--r--LICENSE.LGPLv212
-rw-r--r--LICENSE.LGPLv32
-rw-r--r--README29
-rw-r--r--coin/README11
-rw-r--r--coin/provisioning/common/helpers.ps131
-rw-r--r--coin/provisioning/common/icu.ps19
-rw-r--r--coin/provisioning/common/jom.ps19
-rw-r--r--coin/provisioning/common/patch_qnx.ps151
-rw-r--r--coin/provisioning/qtci-linux-RHEL-6.6-x86_64/install_icu.sh70
-rw-r--r--coin/provisioning/qtci-linux-RHEL-6.6-x86_64/odbc.sh4
-rw-r--r--coin/provisioning/qtci-linux-RHEL-6.6-x86_64/patch_qnx.sh64
-rw-r--r--coin/provisioning/qtci-linux-Ubuntu-14.04-x86_64/freeopcua.sh49
-rw-r--r--coin/provisioning/qtci-osx-10.10/crashreporter.sh2
-rw-r--r--coin/provisioning/qtci-osx-10.11/crashreporter.sh2
-rw-r--r--coin/provisioning/qtci-osx-10.8/crashreporter.sh2
-rw-r--r--coin/provisioning/qtci-osx-10.9/crashreporter.sh2
-rw-r--r--coin/provisioning/qtci-windows-10-x86/icu.ps11
-rw-r--r--coin/provisioning/qtci-windows-10-x86/jom.ps11
-rw-r--r--coin/provisioning/qtci-windows-10-x86_64/icu.ps11
-rw-r--r--coin/provisioning/qtci-windows-10-x86_64/jom.ps11
-rw-r--r--coin/provisioning/qtci-windows-7-x86/icu.ps11
-rw-r--r--coin/provisioning/qtci-windows-7-x86/jom.ps11
-rw-r--r--coin/provisioning/qtci-windows-7-x86/patch_qnx.ps11
-rw-r--r--coin/provisioning/qtci-windows-8-x86/icu.ps11
-rw-r--r--coin/provisioning/qtci-windows-8-x86/jom.ps11
-rw-r--r--coin/provisioning/qtci-windows-8-x86_64/icu.ps11
-rw-r--r--coin/provisioning/qtci-windows-8-x86_64/jom.ps11
-rwxr-xr-xinit-repository124
31 files changed, 471 insertions, 96 deletions
diff --git a/.gitmodules b/.gitmodules
index d721c699..977a8947 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -2,72 +2,72 @@
path = qtbase
url = ../qtbase.git
branch = dev
- initrepo = true
+ status = essential
[submodule "qtsvg"]
depends = qtbase
path = qtsvg
url = ../qtsvg.git
branch = dev
- initrepo = true
+ status = addon
[submodule "qtdeclarative"]
depends = qtbase
recommends = qtsvg qtxmlpatterns
path = qtdeclarative
url = ../qtdeclarative.git
branch = dev
- initrepo = true
+ status = essential
[submodule "qtactiveqt"]
depends = qtbase
path = qtactiveqt
url = ../qtactiveqt.git
branch = dev
- initrepo = true
+ status = addon
[submodule "qtscript"]
depends = qtbase
recommends = qttools
path = qtscript
url = ../qtscript.git
branch = dev
- initrepo = true
+ status = deprecated
[submodule "qtmultimedia"]
depends = qtbase
recommends = qtdeclarative
path = qtmultimedia
url = ../qtmultimedia.git
branch = dev
- initrepo = true
+ status = essential
[submodule "qttools"]
depends = qtbase
recommends = qtdeclarative qtactiveqt qtwebkit
path = qttools
url = ../qttools.git
branch = dev
- initrepo = true
+ status = essential
[submodule "qtxmlpatterns"]
depends = qtbase
path = qtxmlpatterns
url = ../qtxmlpatterns.git
branch = dev
- initrepo = true
+ status = addon
[submodule "qttranslations"]
depends = qttools
path = qttranslations
url = ../qttranslations.git
branch = dev
- initrepo = true
+ status = essential
priority = 30
[submodule "qtdoc"]
depends = qtdeclarative
path = qtdoc
url = ../qtdoc.git
branch = dev
- initrepo = true
+ status = essential
priority = 40
[submodule "qtrepotools"]
path = qtrepotools
url = ../qtrepotools.git
branch = master
- initrepo = true
+ status = essential
qt = false
[submodule "qtwebkit"]
depends = qtbase
@@ -75,6 +75,7 @@
path = qtwebkit
url = ../qtwebkit.git
branch = dev
+ status = obsolete
project = WebKit.pro
priority = 20
[submodule "qtwebkit-examples"]
@@ -82,12 +83,13 @@
path = qtwebkit-examples
url = ../qtwebkit-examples.git
branch = dev
+ status = obsolete
[submodule "qtqa"]
depends = qtbase
path = qtqa
url = ../qtqa.git
branch = master
- initrepo = true
+ status = essential
priority = 50
[submodule "qtlocation"]
depends = qtbase
@@ -95,207 +97,216 @@
path = qtlocation
url = ../qtlocation.git
branch = dev
- initrepo = true
+ status = addon
[submodule "qtsensors"]
depends = qtbase
recommends = qtdeclarative
path = qtsensors
url = ../qtsensors.git
branch = dev
- initrepo = true
+ status = addon
[submodule "qtsystems"]
depends = qtbase
recommends = qtdeclarative
path = qtsystems
url = ../qtsystems.git
branch = dev
+ status = ignore
[submodule "qtfeedback"]
depends = qtdeclarative
recommends = qtmultimedia
path = qtfeedback
url = ../qtfeedback.git
branch = master
+ status = ignore
[submodule "qtdocgallery"]
depends = qtdeclarative
path = qtdocgallery
url = ../qtdocgallery.git
branch = master
+ status = ignore
[submodule "qtpim"]
depends = qtdeclarative
path = qtpim
url = ../qtpim.git
branch = dev
+ status = ignore
[submodule "qtconnectivity"]
depends = qtbase
recommends = qtdeclarative qtandroidextras
path = qtconnectivity
url = ../qtconnectivity.git
branch = dev
- initrepo = true
+ status = addon
[submodule "qtwayland"]
depends = qtbase
recommends = qtdeclarative
path = qtwayland
url = ../qtwayland.git
branch = dev
- initrepo = true
+ status = addon
[submodule "qt3d"]
depends = qtdeclarative qtimageformats
+ recommends = qtgamepad
path = qt3d
url = ../qt3d.git
branch = dev
- initrepo = true
+ status = addon
[submodule "qtimageformats"]
depends = qtbase
path = qtimageformats
url = ../qtimageformats.git
branch = dev
- initrepo = true
+ status = addon
[submodule "qtquick1"]
depends = qtscript
recommends = qtsvg qtxmlpatterns
path = qtquick1
url = ../qtquick1.git
branch = dev
+ status = ignore
[submodule "qtgraphicaleffects"]
depends = qtdeclarative
path = qtgraphicaleffects
url = ../qtgraphicaleffects.git
branch = dev
- initrepo = true
+ status = addon
[submodule "qtquickcontrols"]
depends = qtdeclarative
recommends = qtgraphicaleffects
path = qtquickcontrols
url = ../qtquickcontrols.git
branch = dev
- initrepo = true
+ status = essential
[submodule "qtserialbus"]
depends = qtserialport
path = qtserialbus
url = ../qtserialbus.git
branch = dev
+ status = preview
[submodule "qtserialport"]
depends = qtbase
path = qtserialport
url = ../qtserialport.git
branch = dev
- initrepo = true
+ status = addon
[submodule "qtx11extras"]
depends = qtbase
path = qtx11extras
url = ../qtx11extras.git
branch = dev
- initrepo = true
+ status = addon
[submodule "qtmacextras"]
depends = qtbase
path = qtmacextras
url = ../qtmacextras.git
branch = dev
- initrepo = true
+ status = addon
[submodule "qtwinextras"]
depends = qtbase
recommends = qtdeclarative qtmultimedia
path = qtwinextras
url = ../qtwinextras.git
branch = dev
- initrepo = true
+ status = addon
[submodule "qtandroidextras"]
depends = qtbase
path = qtandroidextras
url = ../qtandroidextras.git
branch = dev
- initrepo = true
+ status = addon
[submodule "qtenginio"]
depends = qtdeclarative
path = qtenginio
url = ../qtenginio.git
branch = dev
- initrepo = true
+ status = ignore
[submodule "qtwebsockets"]
depends = qtbase
recommends = qtdeclarative
path = qtwebsockets
url = ../qtwebsockets.git
branch = dev
- initrepo = true
+ status = addon
[submodule "qtwebchannel"]
depends = qtbase
recommends = qtdeclarative qtwebsockets
path = qtwebchannel
url = ../qtwebchannel.git
branch = dev
- initrepo = true
+ status = addon
[submodule "qtwebengine"]
depends = qtquickcontrols qtwebchannel
recommends = qtlocation
path = qtwebengine
url = ../qtwebengine.git
branch = dev
- initrepo = true
+ status = addon
priority = 10
[submodule "qtcanvas3d"]
depends = qtdeclarative
path = qtcanvas3d
url = ../qtcanvas3d.git
branch = dev
- initrepo = true
+ status = addon
[submodule "qtwebview"]
depends = qtdeclarative
recommends = qtwebengine
path = qtwebview
url = ../qtwebview.git
branch = dev
- initrepo = true
+ status = addon
[submodule "qtquickcontrols2"]
- depends = qtquickcontrols
+ depends = qtgraphicaleffects
path = qtquickcontrols2
url = ../qtquickcontrols2.git
branch = dev
- initrepo = true
+ status = addon
[submodule "qtpurchasing"]
depends = qtbase
recommends = qtdeclarative
path = qtpurchasing
url = ../qtpurchasing.git
branch = dev
- initrepo = true
+ status = addon
[submodule "qtcharts"]
depends = qtbase
recommends = qtdeclarative qtmultimedia
path = qtcharts
url = ../qtcharts.git
branch = dev
- initrepo = true
+ status = addon
[submodule "qtdatavis3d"]
depends = qtbase
recommends = qtdeclarative qtmultimedia
path = qtdatavis3d
url = ../qtdatavis3d.git
branch = dev
- initrepo = true
+ status = addon
[submodule "qtvirtualkeyboard"]
depends = qtbase qtdeclarative qtsvg
recommends = qtmultimedia qtquickcontrols
path = qtvirtualkeyboard
url = ../qtvirtualkeyboard.git
branch = dev
- initrepo = true
+ status = addon
[submodule "qtgamepad"]
depends = qtbase
recommends = qtdeclarative
path = qtgamepad
url = ../qtgamepad
branch = dev
- initrepo = true
+ status = preview
[submodule "qtscxml"]
depends = qtbase qtdeclarative
path = qtscxml
url = ../qtscxml
branch = dev
- initrepo = true
+ status = preview
[submodule "qtspeech"]
depends = qtbase
+ recommends = qtdeclarative qtmultimedia
path = qtspeech
url = ../qtspeech
branch = dev
+ status = ignore
diff --git a/LICENSE.GPLv2 b/LICENSE.GPLv2
index 6dbb032f..a4244777 100644
--- a/LICENSE.GPLv2
+++ b/LICENSE.GPLv2
@@ -3,7 +3,7 @@
The Qt Toolkit is Copyright (C) 2015 The Qt Company Ltd.
Contact: http://www.qt.io/licensing/
- You may use, distribute and copy the Qt GUI Toolkit under the terms of
+ You may use, distribute and copy the Qt Toolkit under the terms of
GNU General Public License version 2, which is displayed below.
-------------------------------------------------------------------------
diff --git a/LICENSE.GPLv3 b/LICENSE.GPLv3
index 4e49b122..71c4ad49 100644
--- a/LICENSE.GPLv3
+++ b/LICENSE.GPLv3
@@ -3,7 +3,7 @@
The Qt Toolkit is Copyright (C) 2015 The Qt Company Ltd.
Contact: http://www.qt.io/licensing/
- You may use, distribute and copy the Qt GUI Toolkit under the terms of
+ You may use, distribute and copy the Qt Toolkit under the terms of
GNU Lesser General Public License version 3. That license references
the General Public License version 3, that is displayed below. Other
portions of the Qt Toolkit may be licensed directly under this license.
diff --git a/LICENSE.LGPLv21 b/LICENSE.LGPLv21
index 6e184611..dfcab5e2 100644
--- a/LICENSE.LGPLv21
+++ b/LICENSE.LGPLv21
@@ -3,7 +3,7 @@
The Qt Toolkit is Copyright (C) 2015 The Qt Company Ltd.
Contact: http://www.qt.io/licensing/
- You may use, distribute and copy the Qt GUI Toolkit under the terms of
+ You may use, distribute and copy the Qt Toolkit under the terms of
GNU Lesser General Public License version 2.1, which is displayed below.
-------------------------------------------------------------------------
diff --git a/LICENSE.LGPLv3 b/LICENSE.LGPLv3
index 4d67bac0..6bf924cd 100644
--- a/LICENSE.LGPLv3
+++ b/LICENSE.LGPLv3
@@ -3,7 +3,7 @@
The Qt Toolkit is Copyright (C) 2015 The Qt Company Ltd.
Contact: http://www.qt.io/licensing/
- You may use, distribute and copy the Qt GUI Toolkit under the terms of
+ You may use, distribute and copy the Qt Toolkit under the terms of
GNU Lesser General Public License version 3, which is displayed below.
This license makes reference to the version 3 of the GNU General
Public License, which you can find in the LICENSE.GPLv3 file.
diff --git a/README b/README
index ff169fe2..7781f47b 100644
--- a/README
+++ b/README
@@ -16,29 +16,6 @@ HOW TO BUILD QT5
please see section "Setting up your machine" on:
http://wiki.qt.io/Get_The_Source
- Optional requirements
- ---------------------
-
- - OpenSSL for SSL sockets or HTTPS
- - Wayland
-
- New dependencies in Qt 5
- ------------------------
-
- Linux: On systems running X11, the XCB libraries are required for
- the platform plugin to build. qtbase/src/plugins/platforms/xcb/README
- lists the required packages.
-
- Qt 5 can make use of the ICU libraries providing Unicode and Globalization
- support (see http://site.icu-project.org/). They are required for building
- QtWebKit.
- On Linux, they will be auto-detected.
- On Windows, they need to be manually installed and the "include" and "lib"
- folders of the ICU installation must be appended to the INCLUDE and LIB
- environment variables after calling the Windows SDK setup script.
- The "bin" folder of the ICU installation should be appended to the PATH
- environment variable in order to for the DLLs to be found at run-time.
-
Licensing:
----------
@@ -110,11 +87,11 @@ HOW TO BUILD QT5
default in the build system.
It is possible to build selected modules with their dependencies by doing
- a `make module-<foo>'. For example, to build only qtscript and qtwebkit,
- and the modules they depend on:
+ a `make module-<foo>'. For example, to build only qtdeclarative,
+ and the modules it depends on:
./configure -prefix $PWD/qtbase <license>
- make -j4 module-qtscript module-qtwebkit
+ make -j4 module-qtdeclarative
This can save a lot of time if you are only interested in a subset of Qt5.
diff --git a/coin/README b/coin/README
new file mode 100644
index 00000000..2fb3fe2d
--- /dev/null
+++ b/coin/README
@@ -0,0 +1,11 @@
+Continuous Integration
+======================
+
+This directory contains files used by Qt's Continuous Integration system (Coin).
+
+provisioning
+------------
+Contains scripts that apply to different test machines in order to run automatic tests on them.
+For Windows scripts, make sure that the machine has "Set-ExecutionPolicy RemoteSigned -Force" set.
+(Run as admin in PowerShell)
+
diff --git a/coin/provisioning/common/helpers.ps1 b/coin/provisioning/common/helpers.ps1
new file mode 100644
index 00000000..d7b957f3
--- /dev/null
+++ b/coin/provisioning/common/helpers.ps1
@@ -0,0 +1,31 @@
+function Verify-Checksum
+{
+ Param (
+ [string]$File=$(throw("You must specify a filename to get the checksum of.")),
+ [string]$Expected=$(throw("Checksum required")),
+ [ValidateSet("sha1","md5")][string]$Algorithm="sha1"
+ )
+ $fs = new-object System.IO.FileStream $File, "Open"
+ $algo = [type]"System.Security.Cryptography.$Algorithm"
+ $crypto = $algo::Create()
+ $hash = [BitConverter]::ToString($crypto.ComputeHash($fs)).Replace("-", "")
+ $fs.Close()
+ if ($hash -ne $Expected) {
+ Write-Error "Checksum verification failed, got: '$hash' expected: '$Expected'"
+ }
+}
+
+function Extract-Zip
+{
+ Param (
+ [string]$Source,
+ [string]$Destination
+ )
+ echo "Extracting '$Source' to '$Destination'..."
+
+ New-Item -ItemType Directory -Force -Path $Destination
+ $shell = new-object -com shell.application
+ $zipfile = $shell.Namespace($Source)
+ $destinationFolder = $shell.Namespace($Destination)
+ $destinationFolder.CopyHere($zipfile.Items(), 16)
+}
diff --git a/coin/provisioning/common/icu.ps1 b/coin/provisioning/common/icu.ps1
new file mode 100644
index 00000000..4be185e5
--- /dev/null
+++ b/coin/provisioning/common/icu.ps1
@@ -0,0 +1,9 @@
+# ICU is already pre-installed on Windows machines, it would be nice to have
+# the installation script, but for now let's just export the right variables
+
+# FIXME: do we really want to have it per MSVC version? What about MSVC2015?
+[Environment]::SetEnvironmentVariable("CI_ICU_PATH_MSVC2012", "C:\\Utils\\icu_53_1_msvc_2012_64_devel\\icu53_1", "Machine")
+[Environment]::SetEnvironmentVariable("CI_ICU_PATH_MSVC2013", "C:\\Utils\\icu_53_1_msvc_2013_64_devel\\icu53_1", "Machine")
+
+# FIXME: do we really want to use the 4.8.2 ICU build?
+[Environment]::SetEnvironmentVariable("CI_ICU_PATH_Mingw49", "C:\Utils\icu_53_1_Mingw_builds_4_8_2_posix_seh_64_devel\icu53_1", "Machine")
diff --git a/coin/provisioning/common/jom.ps1 b/coin/provisioning/common/jom.ps1
new file mode 100644
index 00000000..ef012b64
--- /dev/null
+++ b/coin/provisioning/common/jom.ps1
@@ -0,0 +1,9 @@
+. "$PSScriptRoot\helpers.ps1"
+
+$zip = "c:\users\qt\downloads\jom_1_1_0.zip"
+
+Invoke-WebRequest -UseBasicParsing http://download.qt.io/official_releases/jom/jom_1_1_0.zip -OutFile $zip
+Verify-Checksum $zip "C4149FE706B25738B4C4E54C73E180B9CAB55832"
+Extract-Zip $zip C:\Utils\Jom
+
+[Environment]::SetEnvironmentVariable("CI_JOM_PATH", "C:\Utils\Jom", "Machine")
diff --git a/coin/provisioning/common/patch_qnx.ps1 b/coin/provisioning/common/patch_qnx.ps1
new file mode 100644
index 00000000..2fca7b67
--- /dev/null
+++ b/coin/provisioning/common/patch_qnx.ps1
@@ -0,0 +1,51 @@
+#############################################################################
+##
+## Copyright (C) 2016 The Qt Company Ltd.
+## Contact: http://www.qt.io/licensing/
+##
+## This file is part of the test suite of the Qt Toolkit.
+##
+## $QT_BEGIN_LICENSE:LGPL21$
+## Commercial License Usage
+## Licensees holding valid commercial Qt licenses may use this file in
+## accordance with the commercial license agreement provided with the
+## Software or, alternatively, in accordance with the terms contained in
+## a written agreement between you and The Qt Company. For licensing terms
+## and conditions see http://www.qt.io/terms-conditions. For further
+## information use the contact form at http://www.qt.io/contact-us.
+##
+## GNU Lesser General Public License Usage
+## Alternatively, this file may be used under the terms of the GNU Lesser
+## General Public License version 2.1 or version 3 as published by the Free
+## Software Foundation and appearing in the file LICENSE.LGPLv21 and
+## LICENSE.LGPLv3 included in the packaging of this file. Please review the
+## following information to ensure the GNU Lesser General Public License
+## requirements will be met: https://www.gnu.org/licenses/lgpl.html and
+## http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+##
+## As a special exception, The Qt Company gives you certain additional
+## rights. These rights are described in The Qt Company LGPL Exception
+## version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+##
+## $QT_END_LICENSE$
+##
+#############################################################################
+
+# Patch QNX SDK due to issues in the standard library.
+# The patches are available here:
+# http://www.qnx.com/download/feature.html?programid=27555
+# A copy of the patch must be in the root of the Coin path in
+# provisioning/qnx/patch-660-4367-RS6069_cpp-headers.zip
+
+
+. "$PSScriptRoot\helpers.ps1"
+
+$zip = "c:\users\qt\downloads\patch-660-4367-RS6069_cpp-headers.zip"
+$sha1 = "57A11FFE4434AD567B3C36F7B828DBB468A9E565"
+$tempDir = "C:\temp\qnx_path"
+
+Invoke-WebRequest -UseBasicParsing http://${Env:COIN_WEBSERVER_ADDRESS}/coin/provisioning/qnx/patch-660-4367-RS6069_cpp-headers.zip -OutFile $zip
+Verify-Checksum $zip $sha1
+Extract-Zip $zip $tempDir
+Copy-Item $tempDir\patches\660-4367\target\* C:\qnx660\target\ -recurse -force
+Remove-Item $tempDir -recurse
diff --git a/coin/provisioning/qtci-linux-RHEL-6.6-x86_64/install_icu.sh b/coin/provisioning/qtci-linux-RHEL-6.6-x86_64/install_icu.sh
new file mode 100644
index 00000000..02ddda3f
--- /dev/null
+++ b/coin/provisioning/qtci-linux-RHEL-6.6-x86_64/install_icu.sh
@@ -0,0 +1,70 @@
+#!/bin/env bash
+
+#############################################################################
+##
+## Copyright (C) 2016 The Qt Company Ltd.
+## Contact: http://www.qt.io/licensing/
+##
+## This file is part of the test suite of the Qt Toolkit.
+##
+## $QT_BEGIN_LICENSE:LGPL21$
+## Commercial License Usage
+## Licensees holding valid commercial Qt licenses may use this file in
+## accordance with the commercial license agreement provided with the
+## Software or, alternatively, in accordance with the terms contained in
+## a written agreement between you and The Qt Company. For licensing terms
+## and conditions see http://www.qt.io/terms-conditions. For further
+## information use the contact form at http://www.qt.io/contact-us.
+##
+## GNU Lesser General Public License Usage
+## Alternatively, this file may be used under the terms of the GNU Lesser
+## General Public License version 2.1 or version 3 as published by the Free
+## Software Foundation and appearing in the file LICENSE.LGPLv21 and
+## LICENSE.LGPLv3 included in the packaging of this file. Please review the
+## following information to ensure the GNU Lesser General Public License
+## requirements will be met: https://www.gnu.org/licenses/lgpl.html and
+## http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+##
+## As a special exception, The Qt Company gives you certain additional
+## rights. These rights are described in The Qt Company LGPL Exception
+## version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+##
+## $QT_END_LICENSE$
+##
+#############################################################################
+
+# This script installs the right ICU version
+
+set -e
+icuVersion="56.1"
+icuLocation="/usr/lib64"
+sha1="f2eab775c04ce5f3bdae6c47d06b62158b5d6753"
+
+function Install7ZPackageFromURL {
+ url=$1
+ expectedSha1=$2
+ targetDirectory=$3
+
+ targetFile=`mktemp` || echo "Failed to create temporary file"
+ wget --tries=5 --waitretry=5 --output-document=$targetFile $url || echo "Failed to download '$url' multiple times"
+ echo "$expectedSha1 $targetFile" | sha1sum --check || echo "Failed to check sha1sum"
+ sudo /usr/local/bin/7z x -yo$targetDirectory $targetFile || echo "Failed to unzip $url archive"
+ rm $targetFile
+}
+
+echo "Installing custom ICU $icuVersion $sha1 packages on RHEL to $icuLocation"
+
+baseBinaryPackageURL="http://master.qt.io/development_releases/prebuilt/icu/prebuilt/$icuVersion/icu-linux-g++-Rhel6.6-x64.7z"
+Install7ZPackageFromURL $baseBinaryPackageURL $sha1 "/usr/lib64"
+
+echo "Installing custom ICU devel packages on RHEL"
+
+sha1Dev="82f8b216371b848b8d36ecec7fe7b6e9b0dba0df"
+develPackageURL="http://master.qt.io/development_releases/prebuilt/icu/prebuilt/$icuVersion/icu-linux-g++-Rhel6.6-x64-devel.7z"
+tempDir=`mktemp -d` || echo "Failed to create temporary directory"
+trap "sudo rm -fr $tempDir" EXIT
+Install7ZPackageFromURL $develPackageURL $sha1Dev $tempDir
+sudo cp -a $tempDir/lib/* /usr/lib64
+sudo cp -a $tempDir/* /usr/
+
+sudo /sbin/ldconfig
diff --git a/coin/provisioning/qtci-linux-RHEL-6.6-x86_64/odbc.sh b/coin/provisioning/qtci-linux-RHEL-6.6-x86_64/odbc.sh
new file mode 100644
index 00000000..f6c90a75
--- /dev/null
+++ b/coin/provisioning/qtci-linux-RHEL-6.6-x86_64/odbc.sh
@@ -0,0 +1,4 @@
+# provides: odbc devel packages on RHEL
+# version: provided by default Linux distribution repository
+# needed for configure -plugin-sql-odbc in qtbase
+sudo yum install -y unixODBC-devel
diff --git a/coin/provisioning/qtci-linux-RHEL-6.6-x86_64/patch_qnx.sh b/coin/provisioning/qtci-linux-RHEL-6.6-x86_64/patch_qnx.sh
new file mode 100644
index 00000000..19993ecc
--- /dev/null
+++ b/coin/provisioning/qtci-linux-RHEL-6.6-x86_64/patch_qnx.sh
@@ -0,0 +1,64 @@
+#!/bin/env bash
+
+#############################################################################
+##
+## Copyright (C) 2016 The Qt Company Ltd.
+## Contact: http://www.qt.io/licensing/
+##
+## This file is part of the test suite of the Qt Toolkit.
+##
+## $QT_BEGIN_LICENSE:LGPL21$
+## Commercial License Usage
+## Licensees holding valid commercial Qt licenses may use this file in
+## accordance with the commercial license agreement provided with the
+## Software or, alternatively, in accordance with the terms contained in
+## a written agreement between you and The Qt Company. For licensing terms
+## and conditions see http://www.qt.io/terms-conditions. For further
+## information use the contact form at http://www.qt.io/contact-us.
+##
+## GNU Lesser General Public License Usage
+## Alternatively, this file may be used under the terms of the GNU Lesser
+## General Public License version 2.1 or version 3 as published by the Free
+## Software Foundation and appearing in the file LICENSE.LGPLv21 and
+## LICENSE.LGPLv3 included in the packaging of this file. Please review the
+## following information to ensure the GNU Lesser General Public License
+## requirements will be met: https://www.gnu.org/licenses/lgpl.html and
+## http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+##
+## As a special exception, The Qt Company gives you certain additional
+## rights. These rights are described in The Qt Company LGPL Exception
+## version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+##
+## $QT_END_LICENSE$
+##
+#############################################################################
+
+# Patch QNX SDK due to issues in the standard library.
+# The patches are available here:
+# http://www.qnx.com/download/feature.html?programid=27555
+# A copy of the patch must be in the root of the Coin path in
+# provisioning/qnx/patch-660-4367-RS6069_cpp-headers.zip
+
+set -e
+sha1="57a11ffe4434ad567b3c36f7b828dbb468a9e565"
+
+function InstallZipPackageFromURL {
+ url=$1
+ expectedSha1=$2
+ targetDirectory=$3
+
+ targetFile=`mktemp` || echo "Failed to create temporary file"
+ wget --tries=5 --waitretry=5 --output-document=$targetFile $url || echo "Failed to download '$url' multiple times"
+ echo "$expectedSha1 $targetFile" | sha1sum --check || echo "Failed to check sha1sum"
+
+ tempDir=`mktemp -d` || echo "Failed to create temporary directory"
+ /usr/bin/unzip -o -d $tempDir $targetFile || echo "Failed to unzip $url archive"
+ trap "sudo rm -fr $targetFile $tempDir" EXIT
+
+ sudo cp -rafv $tempDir/patches/660-4367/target/* /opt/qnx660/target/
+}
+
+echo "Patching QNX"
+
+baseBinaryPackageURL="http://${COIN_WEBSERVER_ADDRESS}/coin/provisioning/qnx/patch-660-4367-RS6069_cpp-headers.zip"
+InstallZipPackageFromURL $baseBinaryPackageURL $sha1 "/opt/qnx660/target/"
diff --git a/coin/provisioning/qtci-linux-Ubuntu-14.04-x86_64/freeopcua.sh b/coin/provisioning/qtci-linux-Ubuntu-14.04-x86_64/freeopcua.sh
new file mode 100644
index 00000000..b14e94a6
--- /dev/null
+++ b/coin/provisioning/qtci-linux-Ubuntu-14.04-x86_64/freeopcua.sh
@@ -0,0 +1,49 @@
+#!/bin/env bash
+
+#############################################################################
+##
+## Copyright (C) 2016 The Qt Company Ltd.
+## Contact: http://www.qt.io/licensing/
+##
+## This file is part of the test suite of the Qt Toolkit.
+##
+## $QT_BEGIN_LICENSE:LGPL21$
+## Commercial License Usage
+## Licensees holding valid commercial Qt licenses may use this file in
+## accordance with the commercial license agreement provided with the
+## Software or, alternatively, in accordance with the terms contained in
+## a written agreement between you and The Qt Company. For licensing terms
+## and conditions see http://www.qt.io/terms-conditions. For further
+## information use the contact form at http://www.qt.io/contact-us.
+##
+## GNU Lesser General Public License Usage
+## Alternatively, this file may be used under the terms of the GNU Lesser
+## General Public License version 2.1 or version 3 as published by the Free
+## Software Foundation and appearing in the file LICENSE.LGPLv21 and
+## LICENSE.LGPLv3 included in the packaging of this file. Please review the
+## following information to ensure the GNU Lesser General Public License
+## requirements will be met: https://www.gnu.org/licenses/lgpl.html and
+## http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+##
+## As a special exception, The Qt Company gives you certain additional
+## rights. These rights are described in The Qt Company LGPL Exception
+## version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+##
+## $QT_END_LICENSE$
+##
+#############################################################################
+
+sudo apt-get update
+sudo apt-get install -y libboost-dev libboost-thread-dev libboost-system-dev libboost-program-options-dev libboost-filesystem-dev libxml2-dev libboost-regex-dev
+
+TEMPDIR=$(mktemp --directory) || echo "Failed to create temporary directory"
+trap "sudo rm -fr $TEMPDIR" EXIT
+cd $TEMPDIR
+git clone https://github.com/FreeOpcUa/freeopcua.git freeopcua
+cd freeopcua
+git checkout 57b6993d39b6761af773fa4fa37c3fbd39c764f1
+mkdir build
+cd build
+cmake -DCMAKE_INSTALL_PREFIX:PATH=/usr/local ..
+make
+sudo make install
diff --git a/coin/provisioning/qtci-osx-10.10/crashreporter.sh b/coin/provisioning/qtci-osx-10.10/crashreporter.sh
new file mode 100644
index 00000000..ba8dbdd3
--- /dev/null
+++ b/coin/provisioning/qtci-osx-10.10/crashreporter.sh
@@ -0,0 +1,2 @@
+#!/bin/sh
+defaults write com.apple.CrashReporter DialogType server
diff --git a/coin/provisioning/qtci-osx-10.11/crashreporter.sh b/coin/provisioning/qtci-osx-10.11/crashreporter.sh
new file mode 100644
index 00000000..ba8dbdd3
--- /dev/null
+++ b/coin/provisioning/qtci-osx-10.11/crashreporter.sh
@@ -0,0 +1,2 @@
+#!/bin/sh
+defaults write com.apple.CrashReporter DialogType server
diff --git a/coin/provisioning/qtci-osx-10.8/crashreporter.sh b/coin/provisioning/qtci-osx-10.8/crashreporter.sh
new file mode 100644
index 00000000..ba8dbdd3
--- /dev/null
+++ b/coin/provisioning/qtci-osx-10.8/crashreporter.sh
@@ -0,0 +1,2 @@
+#!/bin/sh
+defaults write com.apple.CrashReporter DialogType server
diff --git a/coin/provisioning/qtci-osx-10.9/crashreporter.sh b/coin/provisioning/qtci-osx-10.9/crashreporter.sh
new file mode 100644
index 00000000..ba8dbdd3
--- /dev/null
+++ b/coin/provisioning/qtci-osx-10.9/crashreporter.sh
@@ -0,0 +1,2 @@
+#!/bin/sh
+defaults write com.apple.CrashReporter DialogType server
diff --git a/coin/provisioning/qtci-windows-10-x86/icu.ps1 b/coin/provisioning/qtci-windows-10-x86/icu.ps1
new file mode 100644
index 00000000..325be36a
--- /dev/null
+++ b/coin/provisioning/qtci-windows-10-x86/icu.ps1
@@ -0,0 +1 @@
+. "$PSScriptRoot\..\common\icu.ps1"
diff --git a/coin/provisioning/qtci-windows-10-x86/jom.ps1 b/coin/provisioning/qtci-windows-10-x86/jom.ps1
new file mode 100644
index 00000000..842c65dd
--- /dev/null
+++ b/coin/provisioning/qtci-windows-10-x86/jom.ps1
@@ -0,0 +1 @@
+. "$PSScriptRoot\..\common\jom.ps1"
diff --git a/coin/provisioning/qtci-windows-10-x86_64/icu.ps1 b/coin/provisioning/qtci-windows-10-x86_64/icu.ps1
new file mode 100644
index 00000000..325be36a
--- /dev/null
+++ b/coin/provisioning/qtci-windows-10-x86_64/icu.ps1
@@ -0,0 +1 @@
+. "$PSScriptRoot\..\common\icu.ps1"
diff --git a/coin/provisioning/qtci-windows-10-x86_64/jom.ps1 b/coin/provisioning/qtci-windows-10-x86_64/jom.ps1
new file mode 100644
index 00000000..842c65dd
--- /dev/null
+++ b/coin/provisioning/qtci-windows-10-x86_64/jom.ps1
@@ -0,0 +1 @@
+. "$PSScriptRoot\..\common\jom.ps1"
diff --git a/coin/provisioning/qtci-windows-7-x86/icu.ps1 b/coin/provisioning/qtci-windows-7-x86/icu.ps1
new file mode 100644
index 00000000..325be36a
--- /dev/null
+++ b/coin/provisioning/qtci-windows-7-x86/icu.ps1
@@ -0,0 +1 @@
+. "$PSScriptRoot\..\common\icu.ps1"
diff --git a/coin/provisioning/qtci-windows-7-x86/jom.ps1 b/coin/provisioning/qtci-windows-7-x86/jom.ps1
new file mode 100644
index 00000000..842c65dd
--- /dev/null
+++ b/coin/provisioning/qtci-windows-7-x86/jom.ps1
@@ -0,0 +1 @@
+. "$PSScriptRoot\..\common\jom.ps1"
diff --git a/coin/provisioning/qtci-windows-7-x86/patch_qnx.ps1 b/coin/provisioning/qtci-windows-7-x86/patch_qnx.ps1
new file mode 100644
index 00000000..41210dcb
--- /dev/null
+++ b/coin/provisioning/qtci-windows-7-x86/patch_qnx.ps1
@@ -0,0 +1 @@
+. "$PSScriptRoot\..\common\patch_qnx.ps1"
diff --git a/coin/provisioning/qtci-windows-8-x86/icu.ps1 b/coin/provisioning/qtci-windows-8-x86/icu.ps1
new file mode 100644
index 00000000..325be36a
--- /dev/null
+++ b/coin/provisioning/qtci-windows-8-x86/icu.ps1
@@ -0,0 +1 @@
+. "$PSScriptRoot\..\common\icu.ps1"
diff --git a/coin/provisioning/qtci-windows-8-x86/jom.ps1 b/coin/provisioning/qtci-windows-8-x86/jom.ps1
new file mode 100644
index 00000000..842c65dd
--- /dev/null
+++ b/coin/provisioning/qtci-windows-8-x86/jom.ps1
@@ -0,0 +1 @@
+. "$PSScriptRoot\..\common\jom.ps1"
diff --git a/coin/provisioning/qtci-windows-8-x86_64/icu.ps1 b/coin/provisioning/qtci-windows-8-x86_64/icu.ps1
new file mode 100644
index 00000000..325be36a
--- /dev/null
+++ b/coin/provisioning/qtci-windows-8-x86_64/icu.ps1
@@ -0,0 +1 @@
+. "$PSScriptRoot\..\common\icu.ps1"
diff --git a/coin/provisioning/qtci-windows-8-x86_64/jom.ps1 b/coin/provisioning/qtci-windows-8-x86_64/jom.ps1
new file mode 100644
index 00000000..842c65dd
--- /dev/null
+++ b/coin/provisioning/qtci-windows-8-x86_64/jom.ps1
@@ -0,0 +1 @@
+. "$PSScriptRoot\..\common\jom.ps1"
diff --git a/init-repository b/init-repository
index f0407f63..954237d0 100755
--- a/init-repository
+++ b/init-repository
@@ -71,9 +71,13 @@ Options:
--module-subset=<module1>,<module2>...
Only initialize the specified subset of modules given as the
argument. Specified modules must already exist in .gitmodules. The
- string "all" results in cloning all known modules. The default is
- the set of maintained modules. Module names may be prefixed with a
- dash to exclude them from a bigger set.
+ string "all" results in cloning all known modules. The strings
+ "essential", "addon", "preview", "deprecated", "obsolete", and
+ "ignore" refer to classes of modules; "default" maps to
+ "essential,addon,preview,deprecated", which corresponds with the
+ set of maintained modules and is also the default set. Module
+ names may be prefixed with a dash to exclude them from a bigger
+ set, e.g. "all,-ignore".
--no-update
Skip the `git submodule update' command.
@@ -151,9 +155,13 @@ EOF
}
use Carp qw( confess );
+use Cwd qw( getcwd abs_path );
use English qw( -no_match_vars );
+use File::Spec::Functions qw ( rel2abs );
use Getopt::Long qw( GetOptions );
-use Cwd qw( getcwd );
+
+my $script_path = abs_path($0);
+$script_path =~ s,[/\\][^/\\]+$,,;
my $GERRIT_SSH_BASE
= 'ssh://@USER@codereview.qt-project.org@PORT@/';
@@ -234,6 +242,7 @@ sub parse_arguments
# Replace any double trailing slashes from end of mirror
$self->{'mirror-url'} =~ s{//+$}{/};
+ $self->{'module-subset'} =~ s/\bdefault\b/preview,essential,addon,deprecated/;
$self->{'module-subset'} = [ split(/,/, $self->{'module-subset'}) ];
return;
@@ -272,6 +281,14 @@ sub git_submodule_init
return;
}
+use constant {
+ STS_PREVIEW => 1,
+ STS_ESSENTIAL => 2,
+ STS_ADDON => 3,
+ STS_DEPRECATED => 4,
+ STS_OBSOLETE => 5
+};
+
sub git_clone_all_submodules
{
my ($self, $my_repo_base, $co_branch, @subset) = @_;
@@ -296,21 +313,57 @@ sub git_clone_all_submodules
$subbases{$mod} = $base;
} elsif ($2 eq "update") {
push @subset, '-'.$1 if ($3 eq 'none');
- } elsif ($2 eq "initrepo") {
- $subinits{$1} = ($3 eq "yes" or $3 eq "true");
+ } elsif ($2 eq "status") {
+ if ($3 eq "preview") {
+ $subinits{$1} = STS_PREVIEW;
+ } elsif ($3 eq "essential") {
+ $subinits{$1} = STS_ESSENTIAL;
+ } elsif ($3 eq "addon") {
+ $subinits{$1} = STS_ADDON;
+ } elsif ($3 eq "deprecated") {
+ $subinits{$1} = STS_DEPRECATED;
+ } elsif ($3 eq "obsolete") {
+ $subinits{$1} = STS_OBSOLETE;
+ } elsif ($3 eq "ignore") {
+ delete $subinits{$1};
+ } else {
+ die("Invalid subrepo status '$3' for '$1'.\n");
+ }
}
}
my %include = ();
foreach my $mod (@subset) {
+ my $del = ($mod =~ s/^-//);
+ my $fail = 0;
+ my @what;
if ($mod eq "all") {
- map { $include{$_} = 1; } keys %subbases;
- } elsif ($mod eq "default") {
- map { $include{$_} = 1; } grep { $subinits{$_} } keys %subbases;
- } elsif ($mod =~ s/^-//) {
- delete $include{$mod};
+ @what = keys %subbases;
+ } elsif ($mod eq "essential") {
+ @what = grep { ($subinits{$_} || 0) eq STS_ESSENTIAL } keys %subbases;
+ } elsif ($mod eq "addon") {
+ @what = grep { ($subinits{$_} || 0) eq STS_ADDON } keys %subbases;
+ } elsif ($mod eq "preview") {
+ @what = grep { ($subinits{$_} || 0) eq STS_PREVIEW } keys %subbases;
+ } elsif ($mod eq "deprecated") {
+ @what = grep { ($subinits{$_} || 0) eq STS_DEPRECATED } keys %subbases;
+ } elsif ($mod eq "obsolete") {
+ @what = grep { ($subinits{$_} || 0) eq STS_OBSOLETE } keys %subbases;
+ } elsif ($mod eq "ignore") {
+ @what = grep { ($subinits{$_} || 0) eq 0 } keys %subbases;
+ } elsif (defined($subdirs{$mod})) {
+ push @what, $mod;
} else {
- $include{$mod} = 1;
+ $fail = 1;
+ }
+ if ($del) {
+ print "Warning: excluding non-existent module '$mod'.\n"
+ if ($fail);
+ map { delete $include{$_} } @what;
+ } else {
+ die("Error: module subset names non-existent '$mod'.\n")
+ if ($fail);
+ map { $include{$_} = 1; } @what;
}
}
@@ -483,11 +536,16 @@ sub ensure_link
return if (!$self->{'force-hooks'} and -f $tgt);
unlink($tgt); # In case we have a dead symlink or pre-existing hook
print "Aliasing $src\n as $tgt ...\n" if (!$self->{quiet});
- return if eval { symlink($src, $tgt) };
+ if ($^O ne "msys" && $^O ne "MSWin32") {
+ return if eval { symlink($src, $tgt) };
+ }
# Windows doesn't do (proper) symlinks. As the post_commit script needs
# them to locate itself, we write a forwarding script instead.
open SCRIPT, ">".$tgt or die "Cannot create forwarding script $tgt: $!\n";
- print SCRIPT "#!/bin/sh\nexec `dirname \$0`/$src \"\$\@\"\n";
+ # Make the path palatable for MSYS.
+ $src =~ s,\\,/,g;
+ $src =~ s,^(.):/,/$1/,g;
+ print SCRIPT "#!/bin/sh\nexec $src \"\$\@\"\n";
close SCRIPT;
}
@@ -495,19 +553,31 @@ sub git_install_hooks
{
my ($self) = @_;
- return if (!-d 'qtrepotools/git-hooks');
-
- # Force C locale as git submodule returns the localized string "Entering"
- local $ENV{LC_ALL} = 'C';
- chomp(my @modules = `git submodule foreach :`);
- push @modules, "";
- for my $module (@modules) {
- $module =~ s,^Entering \'([^\']+)\'$,$1/,;
- my $rel = $module;
- $rel =~ s,[^/]+,..,g;
- $rel .= "../../qtrepotools/git-hooks/";
- $self->ensure_link($rel.'gerrit_commit_msg_hook', $module.'.git/hooks/commit-msg');
- $self->ensure_link($rel.'git_post_commit_hook', $module.'.git/hooks/post-commit');
+ my $hooks = $script_path.'/qtrepotools/git-hooks';
+ return if (!-d $hooks);
+
+ my @configresult = qx(git config --list --local);
+ foreach my $line (@configresult) {
+ next if ($line !~ /submodule\.([^.=]+)\.url=/);
+ my $module = $1;
+ my $module_gitdir = $module.'/.git';
+ if (!-d $module_gitdir) {
+ open GITD, $module_gitdir or die "Cannot open $module: $!\n";
+ my $gd = <GITD>;
+ close GITD;
+ chomp($gd);
+ $gd =~ s/^gitdir: // or die "Malformed .git file $module_gitdir\n";
+ $module_gitdir = rel2abs($gd, $module);
+ if (open COMD, $module_gitdir.'/commondir') {
+ my $cd = <COMD>;
+ chomp($cd);
+ $module_gitdir .= '/'.$cd;
+ $module_gitdir = abs_path($module_gitdir);
+ close COMD;
+ }
+ }
+ $self->ensure_link($hooks.'/gerrit_commit_msg_hook', $module_gitdir.'/hooks/commit-msg');
+ $self->ensure_link($hooks.'/git_post_commit_hook', $module_gitdir.'/hooks/post-commit');
}
}