diff options
Diffstat (limited to 'coin/provisioning')
122 files changed, 1725 insertions, 397 deletions
diff --git a/coin/provisioning/common/linux/android_linux.sh b/coin/provisioning/common/linux/android_linux.sh index 68e77dd1..d0fc607e 100755 --- a/coin/provisioning/common/linux/android_linux.sh +++ b/coin/provisioning/common/linux/android_linux.sh @@ -51,13 +51,13 @@ basePath="http://ci-files01-hki.intra.qt.io/input/android" toolsVersion="r25.2.5" toolsFile="tools_$toolsVersion-linux.zip" -ndkVersion="r10e" +ndkVersion="r16b" ndkFile="android-ndk-$ndkVersion-linux-x86_64.zip" sdkBuildToolsVersion="25.0.2" sdkApiLevel="android-21" toolsSha1="72df3aa1988c0a9003ccdfd7a13a7b8bd0f47fc1" -ndkSha1="f692681b007071103277f6edc6f91cb5c5494a32" +ndkSha1="42aa43aae89a50d1c66c3f9fdecd676936da6128" toolsTargetFile="/tmp/$toolsFile" toolsSourceFile="$basePath/$toolsFile" @@ -74,7 +74,7 @@ rm "$ndkTargetFile" rm "$toolsTargetFile" echo "Changing ownership of Android files." -if uname -a |grep -q "el6\|el7"; then +if uname -a |grep -q "el7"; then sudo chown -R qt:wheel "$targetFolder" else sudo chown -R qt:users "$targetFolder" diff --git a/coin/provisioning/qtci-linux-RHEL-6.6-x86_64/01-refresh-subscription-manager.sh b/coin/provisioning/common/linux/apt_wait_loop.sh index 84238ebf..b34e1ebc 100755 --- a/coin/provisioning/qtci-linux-RHEL-6.6-x86_64/01-refresh-subscription-manager.sh +++ b/coin/provisioning/common/linux/apt_wait_loop.sh @@ -35,9 +35,10 @@ set -ex -# refresh local certificates -sudo subscription-manager refresh - -# Attach available subscriptions to system. This is needed when subscriptions are renewed. -sudo subscription-manager attach --auto +function waitLoop { +while sudo fuser /var/lib/dpkg/lock >/dev/null 2>&1 ; do + echo "Waiting for other software managers to finish..." + sleep 0.5 +done +} diff --git a/coin/provisioning/common/linux/cmake_linux.sh b/coin/provisioning/common/linux/cmake_linux.sh index 9b4f6851..2b8d71d0 100755 --- a/coin/provisioning/common/linux/cmake_linux.sh +++ b/coin/provisioning/common/linux/cmake_linux.sh @@ -5,7 +5,7 @@ ## 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. +## This file is part of the provisioning scripts of the Qt Toolkit. ## ## $QT_BEGIN_LICENSE:LGPL21$ ## Commercial License Usage diff --git a/coin/provisioning/common/linux/docker.sh b/coin/provisioning/common/linux/docker.sh new file mode 100755 index 00000000..16af0a0a --- /dev/null +++ b/coin/provisioning/common/linux/docker.sh @@ -0,0 +1,52 @@ +#!/usr/bin/env bash + +############################################################################# +## +## Copyright (C) 2017 The Qt Company Ltd. +## Contact: http://www.qt.io/licensing/ +## +## This file is part of the provisioning scripts of the Qt Toolkit. +## +## $QT_BEGIN_LICENSE:LGPL21$ +## Commercial License Usage +## Licensees holding valid commercial Qt licenses may use this file in +## accordance with the commercial license agreement provided with the +## Software or, alternatively, in accordance with the terms contained in +## a written agreement between you and The Qt Company. For licensing terms +## and conditions see http://www.qt.io/terms-conditions. For further +## information use the contact form at http://www.qt.io/contact-us. +## +## GNU Lesser General Public License Usage +## Alternatively, this file may be used under the terms of the GNU Lesser +## General Public License version 2.1 or version 3 as published by the Free +## Software Foundation and appearing in the file LICENSE.LGPLv21 and +## LICENSE.LGPLv3 included in the packaging of this file. Please review the +## following information to ensure the GNU Lesser General Public License +## requirements will be met: https://www.gnu.org/licenses/lgpl.html and +## http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +## +## As a special exception, The Qt Company gives you certain additional +## rights. These rights are described in The Qt Company LGPL Exception +## version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +## +## $QT_END_LICENSE$ +## +############################################################################# + +set -ex + +# Download and install the docker engine. +sudo apt-get install curl -y +curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - +sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" +sudo apt-get update +sudo apt-get install docker-ce -y +sudo usermod -a -G docker $USER +sudo docker info + +# Download and install the docker-compose extension. +sudo curl -L https://github.com/docker/compose/releases/download/1.21.0/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose +sudo chmod +x /usr/local/bin/docker-compose + +# Start testserver provisioning +source "${BASH_SOURCE%/*}/testserver/docker_testserver.sh" diff --git a/coin/provisioning/common/linux/gcc.sh b/coin/provisioning/common/linux/gcc.sh new file mode 100755 index 00000000..44ff654b --- /dev/null +++ b/coin/provisioning/common/linux/gcc.sh @@ -0,0 +1,102 @@ +#!/usr/bin/env bash + +############################################################################# +## +## Copyright (C) 2018 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 builds GCC from sources + +# shellcheck source=../unix/DownloadURL.sh +source "${BASH_SOURCE%/*}/../unix/DownloadURL.sh" + +set -ex + +function InstallGCC() { + version=$1 + priority=$2 + prebuiltSHA1=$3 + sourcesSHA1=$4 + + tmpFolder="/tmp" + + prebuiltGCC="http://ci-files01-hki.intra.qt.io/input/gcc/gcc-$version-prebuilt.tar.gz" + prebuiltTarget="$tmpFolder/gcc-$version-prebuilt.tar.gz" + installPrefix="/usr/local" + + suffixVersion=$(echo "$version" | cut -d "." -f1,2) + sourceFile="gcc-$version.tar.xz" + cachedUrl="http://ci-files01-hki.intra.qt.io/input/gcc/$sourceFile" + officialUrl="ftp://ftp.mpi-sb.mpg.de/pub/gnu/mirror/gcc.gnu.org/pub/gcc/releases/gcc-$version/$sourceFile" + + targetFile="$tmpFolder/$sourceFile" + buildFolder="$HOME/gcc_build" + + echo "Fetching prebuilt GCC." + curl --fail -L --retry 5 --retry-delay 5 -o "$prebuiltTarget" "$prebuiltGCC" || ( + echo "Fetching prebuilt GCC failed. Building from sources." + DownloadURL "$cachedUrl" "$officialUrl" "$sourcesSHA1" "$targetFile" + ) + + if [ -f "$prebuiltTarget" ]; then + echo "$prebuiltSHA1 *$prebuiltTarget" | sha1sum -c - + sudo tar -xzf "$prebuiltTarget" -C "$installPrefix" + rm -rf "$prebuiltTarget" + else + tar -C "$tmpFolder" -xJf "$targetFile" + mkdir -p "$buildFolder" + cd "$tmpFolder/gcc-$version" + sudo "$tmpFolder/gcc-$version/contrib/download_prerequisites" + cd "$buildFolder" + "$tmpFolder/gcc-$version/configure" --disable-bootstrap --enable-languages=c,c++,lto --prefix="$installPrefix" --program-suffix="-$suffixVersion" + make -j4 + sudo make install + + rm -rf "$targetFile" + rm -rf "$tmpFolder/gcc-$version" + fi + + # openSUSE has update-alternatives under /usr/sbin and it has grouped the commands by means of master and slave links + if [ -f "/usr/sbin/update-alternatives" ]; then + sudo /usr/sbin/update-alternatives --install /usr/bin/gcc gcc "$installPrefix/bin/gcc-$suffixVersion" "$priority" \ + --slave /usr/bin/g++ g++ "$installPrefix/bin/g++-$suffixVersion" \ + --slave /usr/bin/cc cc "$installPrefix/bin/gcc-$suffixVersion" \ + --slave /usr/bin/c++ c++ "$installPrefix/bin/g++-$suffixVersion" + else + sudo /usr/bin/update-alternatives --install /usr/bin/gcc gcc "$installPrefix/bin/gcc-$suffixVersion" "$priority" + sudo /usr/bin/update-alternatives --install /usr/bin/g++ g++ "$installPrefix/bin/g++-$suffixVersion" "$priority" + sudo /usr/bin/update-alternatives --install /usr/bin/cc cc "$installPrefix/bin/gcc-$suffixVersion" "$priority" + sudo /usr/bin/update-alternatives --install /usr/bin/c++ c++ "$installPrefix/bin/g++-$suffixVersion" "$priority" + fi + + + echo "GCC = $version" >> ~/versions.txt +} diff --git a/coin/provisioning/common/linux/open62541.sh b/coin/provisioning/common/linux/open62541.sh index 97a76886..962e8963 100755 --- a/coin/provisioning/common/linux/open62541.sh +++ b/coin/provisioning/common/linux/open62541.sh @@ -5,7 +5,7 @@ ## 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. +## This file is part of the provisioning scripts of the Qt Toolkit. ## ## $QT_BEGIN_LICENSE:LGPL21$ ## Commercial License Usage @@ -59,15 +59,15 @@ sudo pip install six git clone https://github.com/open62541/open62541.git open62541 cd open62541 -git checkout 8845e493d7751fd4eee3917b540e5346646b9cf7 +git checkout 215651ab8db94e5eacdd10ec26a5a9fb96b9301f mkdir build cd build -cmake -DUA_ENABLE_AMALGAMATION=ON -DUA_ENABLE_METHODCALLS=ON -DCMAKE_INSTALL_PREFIX:PATH=/usr/local -DLIB_INSTALL_DIR:PATH=/usr/local/lib/open62541 .. +TARGETPATH=/opt/open62541 +cmake -DUA_ENABLE_AMALGAMATION=ON -DUA_ENABLE_METHODCALLS=ON -DCMAKE_INSTALL_PREFIX:PATH="$TARGETPATH" .. make sudo make install sudo /sbin/ldconfig -SetEnvVar "QTOPCUA_OPEN62541_LIB_PATH" "/usr/local/lib/open62541" -SetEnvVar "QTOPCUA_OPEN62541_INCLUDE_PATH" "/usr/local/include/open62541" +SetEnvVar "CI_OPEN62541_GCC_X64_PREFIX" "$TARGETPATH" diff --git a/coin/provisioning/common/linux/testserver/apache2/Dockerfile b/coin/provisioning/common/linux/testserver/apache2/Dockerfile new file mode 100644 index 00000000..bb2dc850 --- /dev/null +++ b/coin/provisioning/common/linux/testserver/apache2/Dockerfile @@ -0,0 +1,6 @@ +FROM ubuntu:16.04 +RUN apt-get update && apt-get install -y apache2 libcgi-session-perl wget avahi-daemon +EXPOSE 80 443 + +# install configurations and test data +RUN wget https://tools.ietf.org/rfc/rfc3252.txt diff --git a/coin/provisioning/common/linux/testserver/danted/Dockerfile b/coin/provisioning/common/linux/testserver/danted/Dockerfile new file mode 100644 index 00000000..eb2ac6ff --- /dev/null +++ b/coin/provisioning/common/linux/testserver/danted/Dockerfile @@ -0,0 +1,9 @@ +FROM ubuntu:16.04 +RUN apt-get update && apt-get install -y gdebi-core=0.9.5.7ubuntu1 wget avahi-daemon +RUN wget http://ppa.launchpad.net/dajhorn/dante/ubuntu/pool/main/d/dante/dante-server_1.4.1-1_amd64.deb +RUN gdebi -n dante-server_1.4.1-1_amd64.deb +EXPOSE 1080-1081 + +# install configurations and test data +COPY danted /etc/init.d/ +COPY danted-authenticating /etc/init.d/ diff --git a/coin/provisioning/common/linux/testserver/danted/danted b/coin/provisioning/common/linux/testserver/danted/danted new file mode 100755 index 00000000..1da8203e --- /dev/null +++ b/coin/provisioning/common/linux/testserver/danted/danted @@ -0,0 +1,93 @@ +#! /bin/sh +### BEGIN INIT INFO +# Provides: danted +# Required-Start: $remote_fs $syslog +# Required-Stop: $remote_fs $syslog +# Default-Start: 2 3 4 5 +# Default-Stop: 0 1 6 +# Short-Description: SOCKS (v4 and v5) proxy daemon (danted) +### END INIT INFO +# +# dante SOCKS server init.d file. Based on /etc/init.d/skeleton: +# Version: @(#)skeleton 1.8 03-Mar-1998 miquels@cistron.nl + +PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin +DAEMON=/usr/sbin/danted +NAME=danted +DESC="Dante SOCKS daemon" +PIDFILE=/var/run/$NAME.pid +CONFFILE=/etc/$NAME.conf + +test -f $DAEMON || exit 0 + +set -e + +# This function makes sure that the Dante server can write to the pid-file. +touch_pidfile () +{ + if [ -r $CONFFILE ]; then + uid="`sed -n -e 's/[[:space:]]//g' -e 's/#.*//' -e '/^user\.privileged/{s/[^:]*://p;q;}' \ + $CONFFILE`" + if [ -n "$uid" ]; then + touch $PIDFILE + chown $uid $PIDFILE + fi + fi +} + +. /lib/lsb/init-functions + +case "$1" in + start) + if ! egrep -cve '^ *(#|$)' \ + -e '^(logoutput|user\.((not)?privileged|libwrap)):' $CONFFILE > /dev/null + then + echo "Not starting $DESC: not configured." + exit 0 + fi + echo -n "Starting $DESC: " + touch_pidfile + start-stop-daemon --start --quiet --oknodo --pidfile $PIDFILE --exec $DAEMON -- -D + echo "$NAME." + ;; + stop) + echo -n "Stopping $DESC: " + start-stop-daemon --stop --quiet --oknodo --pidfile $PIDFILE --exec $DAEMON + echo "$NAME." + ;; + reload|force-reload) + # + # If the daemon can reload its config files on the fly + # for example by sending it SIGHUP, do it here. + # + # If the daemon responds to changes in its config file + # directly anyway, make this a do-nothing entry. + # + echo "Reloading $DESC configuration files." + start-stop-daemon --stop --signal 1 --quiet --pidfile $PIDFILE --exec $DAEMON -- -D + ;; + restart) + # + # If the "reload" option is implemented, move the "force-reload" + # option to the "reload" entry above. If not, "force-reload" is + # just the same as "restart". + # + echo -n "Restarting $DESC: " + start-stop-daemon --stop --quiet --pidfile $PIDFILE --exec $DAEMON + sleep 1 + touch_pidfile + start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON -- -D + echo "$NAME." + ;; + status) + status_of_proc "$DAEMON" "$NAME" && exit 0 || exit $? + ;; + *) + N=/etc/init.d/$NAME + # echo "Usage: $N {start|stop|restart|reload|force-reload}" >&2 + echo "Usage: $N {start|stop|restart|force-reload}" >&2 + exit 1 + ;; +esac + +exit 0 diff --git a/coin/provisioning/common/linux/testserver/danted/danted-authenticating b/coin/provisioning/common/linux/testserver/danted/danted-authenticating new file mode 100755 index 00000000..7aa35db6 --- /dev/null +++ b/coin/provisioning/common/linux/testserver/danted/danted-authenticating @@ -0,0 +1,97 @@ +#! /bin/sh +### BEGIN INIT INFO +# Provides: danted-authenticating +# Required-Start: $remote_fs $syslog +# Required-Stop: $remote_fs $syslog +# Default-Start: 2 3 4 5 +# Default-Stop: 0 1 6 +# Short-Description: SOCKS (v4 and v5) proxy daemon (danted) +### END INIT INFO +# +# dante SOCKS server init.d file. Based on /etc/init.d/skeleton: +# Version: @(#)skeleton 1.8 03-Mar-1998 miquels@cistron.nl + +PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin +DAEMON=/usr/sbin/danted +NAME=danted-authenticating +DESC="Dante SOCKS daemon" +PIDFILE=/var/run/$NAME.pid +CONFFILE=/etc/$NAME.conf +DANTED_ARGS="-D -f $CONFFILE" + +test -f $DAEMON || exit 0 + +set -e + +# This function makes sure that the Dante server can write to the pid-file. +touch_pidfile () +{ + if [ -r $CONFFILE ]; then + uid="`sed -n -e 's/[[:space:]]//g' -e 's/#.*//' -e '/^user\.privileged/{s/[^:]*://p;q;}' \ + $CONFFILE`" + if [ -n "$uid" ]; then + touch $PIDFILE + chown $uid $PIDFILE + fi + fi +} + +. /lib/lsb/init-functions + +case "$1" in + start) + if ! egrep -cve '^ *(#|$)' \ + -e '^(logoutput|user\.((not)?privileged|libwrap)):' $CONFFILE > /dev/null + then + echo "Not starting $DESC: not configured." + exit 0 + fi + echo -n "Starting $DESC: " + touch_pidfile + start-stop-daemon --start --quiet --oknodo --pidfile $PIDFILE \ + --exec $DAEMON -- $DANTED_ARGS + echo "$NAME." + ;; + stop) + echo -n "Stopping $DESC: " + start-stop-daemon --stop --quiet --oknodo --pidfile $PIDFILE --exec $DAEMON + echo "$NAME." + ;; + reload|force-reload) + # + # If the daemon can reload its config files on the fly + # for example by sending it SIGHUP, do it here. + # + # If the daemon responds to changes in its config file + # directly anyway, make this a do-nothing entry. + # + echo "Reloading $DESC configuration files." + start-stop-daemon --stop --signal 1 --quiet --pidfile $PIDFILE \ + --exec $DAEMON -- $DANTED_ARGS + ;; + restart) + # + # If the "reload" option is implemented, move the "force-reload" + # option to the "reload" entry above. If not, "force-reload" is + # just the same as "restart". + # + echo -n "Restarting $DESC: " + start-stop-daemon --stop --quiet --pidfile $PIDFILE --exec $DAEMON + sleep 1 + touch_pidfile + start-stop-daemon --start --quiet --pidfile $PIDFILE \ + --exec $DAEMON -- $DANTED_ARGS + echo "$NAME." + ;; + status) + status_of_proc "$DAEMON" "$NAME" && exit 0 || exit $? + ;; + *) + N=/etc/init.d/$NAME + # echo "Usage: $N {start|stop|restart|reload|force-reload}" >&2 + echo "Usage: $N {start|stop|restart|force-reload}" >&2 + exit 1 + ;; +esac + +exit 0 diff --git a/coin/provisioning/common/linux/testserver/docker_testserver.sh b/coin/provisioning/common/linux/testserver/docker_testserver.sh new file mode 100755 index 00000000..a88e89b9 --- /dev/null +++ b/coin/provisioning/common/linux/testserver/docker_testserver.sh @@ -0,0 +1,58 @@ +#!/usr/bin/env bash + +############################################################################# +## +## Copyright (C) 2017 The Qt Company Ltd. +## Contact: http://www.qt.io/licensing/ +## +## This file is part of the provisioning scripts of the Qt Toolkit. +## +## $QT_BEGIN_LICENSE:LGPL21$ +## Commercial License Usage +## Licensees holding valid commercial Qt licenses may use this file in +## accordance with the commercial license agreement provided with the +## Software or, alternatively, in accordance with the terms contained in +## a written agreement between you and The Qt Company. For licensing terms +## and conditions see http://www.qt.io/terms-conditions. For further +## information use the contact form at http://www.qt.io/contact-us. +## +## GNU Lesser General Public License Usage +## Alternatively, this file may be used under the terms of the GNU Lesser +## General Public License version 2.1 or version 3 as published by the Free +## Software Foundation and appearing in the file LICENSE.LGPLv21 and +## LICENSE.LGPLv3 included in the packaging of this file. Please review the +## following information to ensure the GNU Lesser General Public License +## requirements will be met: https://www.gnu.org/licenses/lgpl.html and +## http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +## +## As a special exception, The Qt Company gives you certain additional +## rights. These rights are described in The Qt Company LGPL Exception +## version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +## +## $QT_END_LICENSE$ +## +############################################################################# + +set -ex + +# Using SHA-1 of each server context as the tag of docker images. A tag labels a +# specific image version. It is used by docker compose file (docker-compose.yml) +# to launch the corresponding docker containers. If one of the server contexts +# (./apache2, ./danted, ...) gets changes, all the related compose files in +# qtbase should be updated as well. +# +# For example, here's how to get the SHA-1 of apache test server. +# find ./apache2 -type f -print0 | sort -z | xargs -r0 sha1sum | \ +# awk '{ print $1 }' | sha1sum | awk '{ print $1 }' + +testserver='apache2 squid vsftpd ftp-proxy danted' + +for server in $testserver +do + context="${BASH_SOURCE%/*}/$server" + sha1=$(find $context -type f -print0 | sort -z | xargs -r0 sha1sum | awk '{ print $1 }' | \ + sha1sum | awk '{ print $1 }') + sudo docker build -t qt-test-server-$server:$sha1 $context +done + +sudo docker images diff --git a/coin/provisioning/common/linux/testserver/ftp-proxy/Dockerfile b/coin/provisioning/common/linux/testserver/ftp-proxy/Dockerfile new file mode 100644 index 00000000..cecb2dca --- /dev/null +++ b/coin/provisioning/common/linux/testserver/ftp-proxy/Dockerfile @@ -0,0 +1,3 @@ +FROM ubuntu:16.04 +RUN apt-get update && apt-get install -y ftp-proxy=1.9.2.4-10 avahi-daemon +EXPOSE 2121 diff --git a/coin/provisioning/common/linux/testserver/squid/Dockerfile b/coin/provisioning/common/linux/testserver/squid/Dockerfile new file mode 100644 index 00000000..0b930bca --- /dev/null +++ b/coin/provisioning/common/linux/testserver/squid/Dockerfile @@ -0,0 +1,3 @@ +FROM ubuntu:16.04 +RUN apt-get update && apt-get install -y squid=3.5.12-1ubuntu7.5 avahi-daemon +EXPOSE 3128-3130 diff --git a/coin/provisioning/common/linux/testserver/vsftpd/Dockerfile b/coin/provisioning/common/linux/testserver/vsftpd/Dockerfile new file mode 100644 index 00000000..f8e32d40 --- /dev/null +++ b/coin/provisioning/common/linux/testserver/vsftpd/Dockerfile @@ -0,0 +1,6 @@ +FROM ubuntu:16.04 +RUN apt-get update && apt-get install -y vsftpd=3.0.3-3ubuntu2 ftp=0.17-33 wget avahi-daemon +EXPOSE 20-21 + +# install configurations and test data +RUN wget https://tools.ietf.org/rfc/rfc3252.txt diff --git a/coin/provisioning/qtci-linux-Ubuntu-16.04-x86_64/99-version.sh b/coin/provisioning/common/linux/ubuntu-version.sh index 21a4c4cf..d403df13 100755 --- a/coin/provisioning/qtci-linux-Ubuntu-16.04-x86_64/99-version.sh +++ b/coin/provisioning/common/linux/ubuntu-version.sh @@ -43,4 +43,4 @@ echo "***** All installed packages *****" >> ~/versions.txt apt list --installed >> ~/versions.txt echo "*********************************************" >> ~/versions.txt -"$(dirname "$0")/../common/linux/version.sh" +"$(dirname "$0")/version.sh" diff --git a/coin/provisioning/common/linux/version.sh b/coin/provisioning/common/linux/version.sh index ed24d805..3e2a7f19 100755 --- a/coin/provisioning/common/linux/version.sh +++ b/coin/provisioning/common/linux/version.sh @@ -5,7 +5,7 @@ ## 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. +## This file is part of the provisioning scripts of the Qt Toolkit. ## ## $QT_BEGIN_LICENSE:LGPL21$ ## Commercial License Usage diff --git a/coin/provisioning/common/macos/cmake.sh b/coin/provisioning/common/macos/cmake.sh index f926de89..e22425b7 100755 --- a/coin/provisioning/common/macos/cmake.sh +++ b/coin/provisioning/common/macos/cmake.sh @@ -42,13 +42,13 @@ source "${BASH_SOURCE%/*}/InstallAppFromCompressedFileFromURL.sh" # shellcheck source=../unix/SetEnvVar.sh source "${BASH_SOURCE%/*}/../unix/SetEnvVar.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" +PrimaryUrl="http://ci-files01-hki.intra.qt.io/input/mac/macos_10.13_high_sierra/cmake-3.11.3-Darwin-x86_64.tar.gz" +AltUrl="https://cmake.org/files/v3.11/cmake-3.11.3-Darwin-x86_64.tar.gz" +SHA1="3d13de8020ce560159fa5cecb669498c48552d96" +appPrefix="cmake-3.11.3-Darwin-x86_64" InstallAppFromCompressedFileFromURL "$PrimaryUrl" "$AltUrl" "$SHA1" "$appPrefix" SetEnvVar "PATH" "/Applications/CMake.app/Contents/bin:\$PATH" -echo "CMake = 3.6.2" >> ~/versions.txt +echo "CMake = 3.11.3" >> ~/versions.txt diff --git a/coin/provisioning/qtci-linux-RHEL-6.6-x86_64/01-systemsetup.sh b/coin/provisioning/common/macos/disable_spotlight.sh index 99612260..7c60b52b 100755 --- a/coin/provisioning/qtci-linux-RHEL-6.6-x86_64/01-systemsetup.sh +++ b/coin/provisioning/common/macos/disable_spotlight.sh @@ -33,12 +33,6 @@ ## ############################################################################# -set -ex - -# shellcheck source=../common/unix/check_and_set_proxy.sh -source "${BASH_SOURCE%/*}/../common/unix/check_and_set_proxy.sh" - -# shellcheck disable=SC2031 -if [ "$http_proxy" != "" ]; then - echo "proxy=$proxy" | sudo tee -a /etc/yum.conf -fi +# Disable spotlight and and stop indexing +sudo mdutil -a -i off +sudo defaults write /.Spotlight-V100/VolumeConfiguration Exclusions -array "/Volumes" diff --git a/coin/provisioning/common/macos/install-commandlinetools.sh b/coin/provisioning/common/macos/install-commandlinetools.sh index 2be234e7..7b0ead98 100755 --- a/coin/provisioning/common/macos/install-commandlinetools.sh +++ b/coin/provisioning/common/macos/install-commandlinetools.sh @@ -5,7 +5,7 @@ ## 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. +## This file is part of the provisioning scripts of the Qt Toolkit. ## ## $QT_BEGIN_LICENSE:LGPL21$ ## Commercial License Usage diff --git a/coin/provisioning/common/macos/install_xcode.sh b/coin/provisioning/common/macos/install_xcode.sh index e569bee5..5eddb72f 100755 --- a/coin/provisioning/common/macos/install_xcode.sh +++ b/coin/provisioning/common/macos/install_xcode.sh @@ -49,11 +49,27 @@ function InstallXCode() { version=$2 echo "Uncompressing and installing '$sourceFile'" - xzcat < "$sourceFile" | (cd /Applications/ && sudo cpio -dmi) + if [[ $sourceFile =~ tar ]]; then + cd /Applications/ && sudo tar -zxf "$sourceFile" + else + xzcat < "$sourceFile" | (cd /Applications/ && sudo cpio -dmi) + fi + + echo "Versioning application bundle" + majorVersion=$(echo $version | cut -d '.' -f 1) + versionedAppBundle="/Applications/Xcode${majorVersion}.app" + sudo mv /Applications/Xcode.app ${versionedAppBundle} + + echo "Selecting Xcode" + sudo xcode-select --switch ${versionedAppBundle} echo "Accept license" sudo xcodebuild -license accept + echo "Install packages" + # -runFirstLaunch is valid in 9.x + sudo xcodebuild -runFirstLaunch || true + echo "Enabling developer mode, so that using lldb does not require interactive password entry" sudo /usr/sbin/DevToolsSecurity -enable diff --git a/coin/provisioning/common/macos/python3.sh b/coin/provisioning/common/macos/python3.sh index 545a6d02..35bccc93 100755 --- a/coin/provisioning/common/macos/python3.sh +++ b/coin/provisioning/common/macos/python3.sh @@ -52,10 +52,14 @@ InstallPKGFromURL "$PrimaryUrl" "$AltUrl" "$SHA1" "$DestDir" InstallPip python3.6 -/Library/Frameworks/Python.framework/Versions/3.6/bin/pip3 install virtualenv +/Library/Frameworks/Python.framework/Versions/3.6/bin/pip3 install virtualenv wheel SetEnvVar "PYTHON3_PATH" "/Library/Frameworks/Python.framework/Versions/3.6/bin" SetEnvVar "PIP3_PATH" "/Library/Frameworks/Python.framework/Versions/3.6/bin" +# Install all needed packages in a special wheel cache directory +/Library/Frameworks/Python.framework/Versions/3.6/bin/pip3 wheel --wheel-dir $HOME/python3-wheels -r ${BASH_SOURCE%/*}/../shared/requirements.txt +SetEnvVar "PYTHON3_WHEEL_CACHE" "$HOME/python3-wheels" + echo "python3 = 3.6.1" >> ~/versions.txt diff --git a/coin/provisioning/common/shared/requirements.txt b/coin/provisioning/common/shared/requirements.txt new file mode 100644 index 00000000..12380d85 --- /dev/null +++ b/coin/provisioning/common/shared/requirements.txt @@ -0,0 +1,19 @@ +# This file holds all python3 packages need for a certain qt module +# When adding new packages here, first add a comment with the name of the module +# Then all the packages. Duplicates are wanted as every module should install +# all packages it needs and shouldn't depend on a package from another module +# +# qtivi +antlr4-python3-runtime==4.7.1 +argh==0.26.2 +click==6.7 +coloredlogs==10.0 +humanfriendly==4.15.1 +Jinja2==2.10 +MarkupSafe==1.0 +path.py==11.0.1 +pathtools==0.1.2 +PyYAML==3.13 +six==1.11.0 +typing==3.6.4 +watchdog==0.8.3 diff --git a/coin/provisioning/common/unix/DownloadURL.sh b/coin/provisioning/common/unix/DownloadURL.sh index 14d1322d..2d82af58 100755 --- a/coin/provisioning/common/unix/DownloadURL.sh +++ b/coin/provisioning/common/unix/DownloadURL.sh @@ -5,7 +5,7 @@ ## 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. +## This file is part of the provisioning scripts of the Qt Toolkit. ## ## $QT_BEGIN_LICENSE:LGPL21$ ## Commercial License Usage diff --git a/coin/provisioning/common/unix/InstallFromCompressedFileFromURL.sh b/coin/provisioning/common/unix/InstallFromCompressedFileFromURL.sh index b616efb9..1185afeb 100755 --- a/coin/provisioning/common/unix/InstallFromCompressedFileFromURL.sh +++ b/coin/provisioning/common/unix/InstallFromCompressedFileFromURL.sh @@ -5,7 +5,7 @@ ## 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. +## This file is part of the provisioning scripts of the Qt Toolkit. ## ## $QT_BEGIN_LICENSE:LGPL21$ ## Commercial License Usage diff --git a/coin/provisioning/common/unix/SetEnvVar.sh b/coin/provisioning/common/unix/SetEnvVar.sh index e1b69169..d5aa4dcd 100755 --- a/coin/provisioning/common/unix/SetEnvVar.sh +++ b/coin/provisioning/common/unix/SetEnvVar.sh @@ -5,7 +5,7 @@ ## 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. +## This file is part of the provisioning scripts of the Qt Toolkit. ## ## $QT_BEGIN_LICENSE:LGPL21$ ## Commercial License Usage diff --git a/coin/provisioning/common/unix/check_and_set_proxy.sh b/coin/provisioning/common/unix/check_and_set_proxy.sh index 3e55b09f..8ada72ab 100755 --- a/coin/provisioning/common/unix/check_and_set_proxy.sh +++ b/coin/provisioning/common/unix/check_and_set_proxy.sh @@ -4,7 +4,7 @@ ## 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. +## This file is part of the provisioning scripts of the Qt Toolkit. ## ## $QT_BEGIN_LICENSE:LGPL21$ ## Commercial License Usage diff --git a/coin/provisioning/common/unix/libclang.sh b/coin/provisioning/common/unix/libclang.sh index 645cf6ec..a9d1cc49 100755 --- a/coin/provisioning/common/unix/libclang.sh +++ b/coin/provisioning/common/unix/libclang.sh @@ -48,18 +48,12 @@ source "${BASH_SOURCE%/*}/SetEnvVar.sh" source "${BASH_SOURCE%/*}/DownloadURL.sh" libclang_version=6.0 -libclang_version_Rhel6=4.0 if uname -a |grep -q Darwin; then version=$libclang_version url="https://download.qt.io/development_releases/prebuilt/libclang/qt/libclang-release_${version//\./}-mac.7z" url_cached="http://ci-files01-hki.intra.qt.io/input/libclang/qt/libclang-release_${version//\./}-mac.7z" sha1="0af8ab8c1174faf4b721d079587190fc32ea8364" -elif uname -a |grep -q "el6"; then - version=$libclang_version_Rhel6 - url="https://download.qt.io/development_releases/prebuilt/libclang/qt/libclang-release_${version//\./}-linux-Rhel6.6-gcc4.9-x86_64.7z" - url_cached="http://ci-files01-hki.intra.qt.io/input/libclang/qt/libclang-release_${version//\./}-linux-Rhel6.6-gcc4.9-x86_64.7z" - sha1="c7466109628418a6aa3db8b3f5825f847f1c4952" else version=$libclang_version url="https://download.qt.io/development_releases/prebuilt/libclang/qt/libclang-release_${version//\./}-linux-Rhel7.2-gcc5.3-x86_64.7z" @@ -79,8 +73,6 @@ sudo mv /tmp/libclang "$destination" echo "export LLVM_INSTALL_DIR=$destination" >> ~/.bash_profile echo "libClang = $version" >> ~/versions.txt -if [ "$version" == "6.0" ]; then - # This is a hacked static build of libclang which requires special - # handling on the qdoc side. - SetEnvVar "QDOC_USE_STATIC_LIBCLANG" "1" -fi +# This is a hacked static build of libclang which requires special +# handling on the qdoc side. +SetEnvVar "QDOC_USE_STATIC_LIBCLANG" "1" diff --git a/coin/provisioning/common/unix/mqtt_broker.sh b/coin/provisioning/common/unix/mqtt_broker.sh index 2d79c77b..c6a65305 100644 --- a/coin/provisioning/common/unix/mqtt_broker.sh +++ b/coin/provisioning/common/unix/mqtt_broker.sh @@ -5,7 +5,7 @@ ## 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. +## This file is part of the provisioning scripts of the Qt Toolkit. ## ## $QT_BEGIN_LICENSE:LGPL21$ ## Commercial License Usage @@ -39,10 +39,10 @@ source "${BASH_SOURCE%/*}/InstallFromCompressedFileFromURL.sh" source "${BASH_SOURCE%/*}/../unix/SetEnvVar.sh" -CommitSHA="5e14a65bbf602fe5d58afdd1394ce76d41ed5c65" +CommitSHA="20bad2475c27a6e1d24a56d90a9fceb40963261e" PrimaryUrl="http://ci-files01-hki.ci.local/input/mqtt_broker/paho.mqtt.testing-$CommitSHA.zip" AltUrl="https://github.com/eclipse/paho.mqtt.testing/archive/$CommitSHA.zip" -SHA1="6afc375c2702eb36a960f38dd4912a3422d679fd" +SHA1="a0ac88715c2aebb9573a113dc13925a90da19233" targetFolder="/opt/paho_broker" appPrefix="paho.mqtt.testing-$CommitSHA" diff --git a/coin/provisioning/common/unix/squishInstall.sh b/coin/provisioning/common/unix/squishInstall.sh index c946dfdc..0f31e5fd 100755 --- a/coin/provisioning/common/unix/squishInstall.sh +++ b/coin/provisioning/common/unix/squishInstall.sh @@ -38,9 +38,9 @@ set -ex # This script will install squish package for Linux and Mac. # Squish is need by Release Test Automation (RTA) -version="6.3.0" +version="6.3.2" # Branch version without dot -qtBranch="59x" +qtBranch="510x" squishFolder="/opt/squish" squishUrl="ci-files01-hki.intra.qt.io:/hdd/www/input/squish/coin/$qtBranch/" squishFile="squish-$version-qt$qtBranch-linux64.run" @@ -76,7 +76,7 @@ function MountAndInstall { usersGroup="staff" mountFolder="/Volumes" squishLicenseDir="/Users/qt" - elif uname -a |grep -q "el6\|el7"; then + elif uname -a |grep -q "el7"; then usersGroup="qt" mountFolder="/tmp" squishLicenseDir="/root" @@ -129,6 +129,7 @@ function MountAndInstall { echo "'run-file', no need to uncompress" sudo cp $targetFileMount $targetDirectory UnMount + sudo chmod +x $targetDirectory/$targetFile sudo $targetDirectory/$targetFile unattended=1 targetdir="$targetDirectory/package" qtpath="$targetDirectory" > /dev/null 2>&1 sudo rm -fr "$targetDirectory/$targetFile" if uname -a |grep -q "Ubuntu"; then @@ -160,7 +161,7 @@ MountAndInstall "$squishLicenseUrl" "$squishFolder" "$squishLicenseFile" echo "Installing squish $version.." MountAndInstall "$squishUrl" "$squishFolder" "$squishFile" -echo "Installing test suite for squish" +echo "Installing provisioning scripts for squish" MountAndInstall "$testSuiteUrl" "$squishFolder" "$testSuite.tar.gz" echo "Verifying Squish Installation" diff --git a/coin/provisioning/common/windows/android-openssl.ps1 b/coin/provisioning/common/windows/android-openssl.ps1 index d838fcc8..ccd24cb9 100644 --- a/coin/provisioning/common/windows/android-openssl.ps1 +++ b/coin/provisioning/common/windows/android-openssl.ps1 @@ -53,9 +53,9 @@ Rename-Item C:\Utils\openssl-$version $destination Remove-Item -Path $zip Remove-Item C:\Utils\openssl-$version.tar -Set-EnvironmentVariable "CC" "C:\utils\android-ndk-r10e\toolchains\arm-linux-androideabi-4.9\prebuilt\windows\bin\arm-linux-androideabi-gcc" -Set-EnvironmentVariable "AR" "C:\utils\android-ndk-r10e\toolchains\arm-linux-androideabi-4.9\prebuilt\windows\bin\arm-linux-androideabi-ar" -Set-EnvironmentVariable "ANDROID_DEV" "C:\utils\android-ndk-r10e\platforms\android-18\arch-arm\usr" +Set-EnvironmentVariable "CC" "C:\utils\android-ndk-r16b\toolchains\llvm\prebuilt\linux-x86_64\bin\clang" +Set-EnvironmentVariable "AR" "C:\utils\android-ndk-r16b\toolchains\llvm\prebuilt\linux-x86_64\bin\llvm-ar" +Set-EnvironmentVariable "ANDROID_DEV" "C:\utils\android-ndk-r16b\platforms\android-18\arch-arm\usr" # Make sure configure for openssl has a "make" and "perl" available $env:PATH = $env:PATH + ";C:\msys\1.0\bin;C:\strawberry\perl\bin" diff --git a/coin/provisioning/common/windows/android.ps1 b/coin/provisioning/common/windows/android.ps1 index 9a09e919..f83a8e60 100644 --- a/coin/provisioning/common/windows/android.ps1 +++ b/coin/provisioning/common/windows/android.ps1 @@ -40,10 +40,10 @@ # That's why we need to use Andoid-21 API version in Qt 5.9. # NDK -$ndkVersion = "r10e" +$ndkVersion = "r16b" $ndkCachedUrl = "\\ci-files01-hki.intra.qt.io\provisioning\android\android-ndk-$ndkVersion-windows-x86.zip" $ndkOfficialUrl = "https://dl.google.com/android/repository/android-ndk-$ndkVersion-windows-x86.zip" -$ndkChecksum = "1d0b8f2835be741f3048fb03c0a3e9f71ab7f357" +$ndkChecksum = "becaf3d445a4877ca1a9300a62f0934a4838c7fa" $ndkFolder = "c:\utils\android-ndk-$ndkVersion" $ndkZip = "c:\Windows\Temp\android_ndk_$ndkVersion.zip" diff --git a/coin/provisioning/common/windows/mqtt_broker.ps1 b/coin/provisioning/common/windows/mqtt_broker.ps1 index f362f55c..301667b4 100644 --- a/coin/provisioning/common/windows/mqtt_broker.ps1 +++ b/coin/provisioning/common/windows/mqtt_broker.ps1 @@ -3,7 +3,7 @@ ## 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. +## This file is part of the provisioning scripts of the Qt Toolkit. ## ## $QT_BEGIN_LICENSE:LGPL21$ ## Commercial License Usage @@ -35,8 +35,8 @@ Write-Host "MQTT: Downloading Paho test broker..." $zip = Get-DownloadLocation "pahotest.zip" -$commitSHA = "5e14a65bbf602fe5d58afdd1394ce76d41ed5c65" -$sha1 = "6afc375c2702eb36a960f38dd4912a3422d679fd" +$commitSHA = "20bad2475c27a6e1d24a56d90a9fceb40963261e" +$sha1 = "a0ac88715c2aebb9573a113dc13925a90da19233" $internalUrl = "http://ci-files01-hki.ci.local/input/mqtt_broker/paho.mqtt.testing-$commitSHA.zip" $externalUrl = "https://github.com/eclipse/paho.mqtt.testing/archive/$commitSHA.zip" diff --git a/coin/provisioning/common/windows/opcua_unifiedautomation.ps1 b/coin/provisioning/common/windows/opcua_unifiedautomation.ps1 new file mode 100644 index 00000000..18f562c9 --- /dev/null +++ b/coin/provisioning/common/windows/opcua_unifiedautomation.ps1 @@ -0,0 +1,59 @@ +############################################################################# +## +## Copyright (C) 2018 The Qt Company Ltd. +## Contact: http://www.qt.io/licensing/ +## +## This file is part of the provisioning scripts of the Qt Toolkit. +## +## $QT_BEGIN_LICENSE:LGPL21$ +## Commercial License Usage +## Licensees holding valid commercial Qt licenses may use this file in +## accordance with the commercial license agreement provided with the +## Software or, alternatively, in accordance with the terms contained in +## a written agreement between you and The Qt Company. For licensing terms +## and conditions see http://www.qt.io/terms-conditions. For further +## information use the contact form at http://www.qt.io/contact-us. +## +## GNU Lesser General Public License Usage +## Alternatively, this file may be used under the terms of the GNU Lesser +## General Public License version 2.1 or version 3 as published by the Free +## Software Foundation and appearing in the file LICENSE.LGPLv21 and +## LICENSE.LGPLv3 included in the packaging of this file. Please review the +## following information to ensure the GNU Lesser General Public License +## requirements will be met: https://www.gnu.org/licenses/lgpl.html and +## http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +## +## As a special exception, The Qt Company gives you certain additional +## rights. These rights are described in The Qt Company LGPL Exception +## version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +## +## $QT_END_LICENSE$ +## +############################################################################# + +. "$PSScriptRoot\helpers.ps1" + +$zip = Get-DownloadLocation "uasdkcpp.zip" +$sha1 = "e1927dbd5d8bb459b468fa70a70b1de51a4ce022" +$installLocation = "C:\Utils\uacpp" + +Write-Host "UACPPSDK: Downloading Unified Automation CPP installer..." +$internalUrl = "http://ci-files01-hki.ci.local/input/opcua_uacpp/uasdkcppbundle-bin-EVAL-win32-x86-vs2015-v1.5.6-361.zip" +# No public download link exists +$externalUrl = $internalUrl + +Download $externalUrl $internalUrl $zip +Verify-Checksum $zip $sha1 + +Write-Host "UACPPSDK: Installing $zip..." +Extract-7Zip $zip (Get-DefaultDownloadLocation) +Remove-Item -Path $zip + +$executable = (Get-DefaultDownloadLocation) + "uasdkcppbundle-bin-EVAL-win32-x86-vs2015-v1.5.6-361.exe" +$arguments = "/S /D=$installLocation" +Run-Executable $executable $arguments +Write-Host "UACPPSDK: Installer done." +Remove-Item $executable + +Write-Host "Set environment variable for COIN to locate SDK" +Set-EnvironmentVariable "CI_UACPP_msvc2015_x86_PREFIX" "$installLocation" diff --git a/coin/provisioning/common/windows/open62541.ps1 b/coin/provisioning/common/windows/open62541.ps1 new file mode 100644 index 00000000..beb09487 --- /dev/null +++ b/coin/provisioning/common/windows/open62541.ps1 @@ -0,0 +1,265 @@ +############################################################################# +## +## Copyright (C) 2018 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$ +## +############################################################################# + +Param ( + [string]$targetCommand= "" + ) + +. "$PSScriptRoot\helpers.ps1" + +## Variables for builds +$commitSHA = "215651ab8db94e5eacdd10ec26a5a9fb96b9301f" +$sha1 = "8d899f986071525be73e1ee8565b28ea10536d7d" +$extractTarget = "C:\open62541_build" + +function CreateArchive +{ + param( + [string]$sourceDirectory=$(throw("You must specify a directory")), + [string]$archiveName=$(throw("You must specify an archive name")) + ) + + if ((Get-Command "7z.exe" -ErrorAction SilentlyContinue) -eq $null) { + $zipExe = join-path (${env:ProgramFiles(x86)}, ${env:ProgramFiles}, ${env:ProgramW6432} -ne $null)[0] '7-zip\7z.exe' + if (-not (test-path $zipExe)) { + $zipExe = "C:\Utils\sevenzip\7z.exe" + if (-not (test-path $zipExe)) { + throw "Could not find 7-zip." + } + } + } else { + $zipExe = "7z.exe" + } + + Run-Executable $zipExe "a -y `"$archiveName`" `"$sourceDirectory`"" +} + +function PrepareRepository +{ + $username = $env:USERNAME + $zip = "c:\users\$username\downloads\open62541.zip" + + $externalUrl = "https://github.com/open62541/open62541/archive/$commitSHA.zip" + $internalUrl = "http://ci-files01-hki.ci.local/input/open62541/$commitSHA.zip" + + Download $externalUrl $internalUrl $zip + Verify-Checksum $zip $sha1 + + Extract-7Zip $zip $extractTarget +} + +function PushDevEnvironment +{ + # Provisioning updates the registry entries for PATH etc. However, they are not + # propagated to the next provisioning script and hence need to be manually + # read / set. + $adaptedPath = $env:PATH + $jomLocation = [Environment]::GetEnvironmentVariable("CI_JOM_PATH", "Machine") + $adaptedPath = $adaptedPath + ";" + $jomLocation + $adaptedPath = $adaptedPath + ";" + "C:\Python27" + $adaptedPath = $adaptedPath + ";" + "C:\CMake\bin" + [Environment]::SetEnvironmentVariable("PATH", $adaptedPath, "Process") +} + +function MSVCEnvironment +{ + Param ( + [string]$msvcDir=$(throw("No VS Directory specified")), + [string]$msvcbat=$(throw("No vsvars batch file specified")) + ) + + Push-Location $msvcDir + cmd /c "$msvcbat&set" | + foreach { + if ($_ -match "=") { + $v = $_.split("="); Set-Item -force -path "ENV:\$($v[0])" -value "$($v[1])" + } + } + Pop-Location +} + +function BuildAndInstallOpen62541 +{ + Param ( + [string]$Type=$(throw("You must specify the dev type [mingw530, mingw630, mingw730, msvc2015, msvc2017]")), + [string]$Platform=$(throw("You must specify the target platform [x86, x64]")), + [string]$MakeCommand=$(throw("You must specify a make command [mingw32-make, nmake]")) + ) + Write-Host "### Open62541: Supposed to build with: $Type $Platform $MakeCommand" + + ## Make Build directory + $buildDir = "$extractTarget\open62541-$commitSHA\build" + "_" + $Type + "_" + $Platform + if (Test-Path $buildDir) { + Write-Host " Deleting pre-existing build directory" + Remove-Item $buildDir -Force -Recurse + } + New-Item -ItemType Directory -Force -Path $buildDir + Push-Location $buildDir + + ## Invoke Cmake + $makeGenerator = "NMake Makefiles JOM" + $installTarget = "C:\Utils\open62541" + "_" + $Type + "_" + $Platform + if (Test-Path $installTarget) { + Write-Host " Deleting pre-existing install directory" + Remove-Item $installTarget -Force -Recurse + } + + if ($Type.StartsWith("mingw")) { + $makeGenerator = "MinGW Makefiles" + } + cmake -G "$makeGenerator" -DUA_ENABLE_AMALGAMATION=ON -DUA_ENABLE_METHODCALLS=ON -DCMAKE_INSTALL_PREFIX:PATH=$installTarget -DLIB_INSTALL_DIR:PATH=$installTarget/lib .. + + ## Call build command + Write-Host "### Open62541: Compilation ###" + Run-Executable $MakeCommand + + ## call install command + Write-Host "### Open62541: Installation ###" + Run-Executable $MakeCommand install + + $platformVariable = "CI_OPEN62541_" + $Type + "_" + $Platform + "_PREFIX" + Set-EnvironmentVariable $platformVariable $installTarget + + ## Packaging + Push-Location "C:\Utils" + $archiveName = "open62541_" + $Type + "_" + $Platform + ".7z" + CreateArchive $installTarget $archiveName + Pop-Location + + ## cleanup build directory + Write-Host "### Open62541: Cleanup ###" + Pop-Location + Remove-Item $buildDir -Force -Recurse +} + +function DownloadAndInstall +{ + Param ( + [string]$Type=$(throw("You must specify the dev type [mingw530, mingw630, mingw730, msvc2015, msvc2017]")), + [string]$Platform=$(throw("You must specify the target platform [x86, x64]")) + ) + $baseLocation = "http://ci-files01-hki.intra.qt.io/input/open62541/" + $targetName = "open62541_" + $Type + "_" + $Platform + $archiveName = $targetName + ".7z" + $downloadUrl = $baseLocation + $archiveName + + # Download + $downloadTarget = "C:\Utils\" + $archiveName + Download $downloadUrl $downloadUrl $downloadTarget + + # Extract + Push-Location C:\Utils + Extract-7Zip $downloadTarget C:\Utils + Pop-Location + + # Set environment variable + $platformVariable = "CI_OPEN62541_" + $Type + "_" + $Platform + $platformPath = "C:\Utils\" + $targetName + Set-EnvironmentVariable $platformVariable $platformPath +} + +############################## +# Startup # +############################## +if ($targetCommand.StartsWith("mingw")) { + Write-Host "### Creating Open62541 for MinGW" + $mingwPath = [Environment]::GetEnvironmentVariable($targetCommand, "Machine") + if (!$mingwPath) { + throw("Could not find mingw") + } + + # Strawberry has its own gcc, put mingw in front + $adaptedPath = $mingwPath + "\bin;" + [Environment]::GetEnvironmentVariable("PATH", "Machine") + [Environment]::SetEnvironmentVariable("PATH", $adaptedPath, "Process") + + PushDevEnvironment + BuildAndInstallOpen62541 $targetCommand x86 "mingw32-make" +} elseif ($targetCommand -eq "msvc2015_x86") { + Write-Host "### Creating Open62541 for MSVC2015 x86" + MSVCEnvironment "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC" "vcvarsall.bat x86" + PushDevEnvironment + BuildAndInstallOpen62541 msvc2015 x86 jom +} elseif ($targetCommand -eq "msvc2015_x64") { + Write-Host "### Creating Open62541 for MSVC2015 x64" + MSVCEnvironment "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC" "vcvarsall.bat amd64" + PushDevEnvironment + BuildAndInstallOpen62541 msvc2015 x64 jom +} elseif ($targetCommand -eq "msvc2017_x86") { + Write-Host "### Creating Open62541 for MSVC2017 x86" + MSVCEnvironment "C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\VC\Auxiliary\Build" vcvars32.bat + PushDevEnvironment + BuildAndInstallOpen62541 msvc2017 x86 jom +} elseif ($targetCommand -eq "msvc2017_x64") { + Write-Host "### Creating Open62541 for MSVC2017 x64" + MSVCEnvironment "C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\VC\Auxiliary\Build" vcvars64.bat + PushDevEnvironment + BuildAndInstallOpen62541 msvc2017 x64 jom +} elseif ($targetCommand -eq "prepare") { + PrepareRepository +} elseif ($targetCommand -eq "build") { + Write-Host "### Building for all supported platforms" + PrepareRepository + Write-Host "### Invoking MinGW530 build" + PowerShell -ExecutionPolicy Bypass -File "$PSScriptRoot\open62541.ps1" -targetCommand mingw530 + Write-Host "### Invoking MinGW630 build" + PowerShell -ExecutionPolicy Bypass -File "$PSScriptRoot\open62541.ps1" -targetCommand mingw630 + Write-Host "### Invoking MinGW730 build" + PowerShell -ExecutionPolicy Bypass -File "$PSScriptRoot\open62541.ps1" -targetCommand mingw730 + Write-Host "### Invoking MSVC2015 build" + PowerShell -ExecutionPolicy Bypass -File "$PSScriptRoot\open62541.ps1" -targetCommand msvc2015_x86 + PowerShell -ExecutionPolicy Bypass -File "$PSScriptRoot\open62541.ps1" -targetCommand msvc2015_x64 + Write-Host "### Invoking MSVC2017 build" + PowerShell -ExecutionPolicy Bypass -File "$PSScriptRoot\open62541.ps1" -targetCommand msvc2017_x86 + PowerShell -ExecutionPolicy Bypass -File "$PSScriptRoot\open62541.ps1" -targetCommand msvc2017_x64 + Write-Host "### Archives have been generated at C:/Utils. Please upload manually" +} elseif ($targetCommand -eq "packaged") { + Write-Host "### Expecting pre-built packages, download and install from archives" + Write-Host "### MinGW530 x64" + DownloadAndInstall mingw530 x86 + Write-Host "### MinGW630 x64" + DownloadAndInstall mingw630 x86 + Write-Host "### MinGW730 x64" + DownloadAndInstall mingw730 x64 + Write-Host "### MSVC2015 x86" + DownloadAndInstall msvc2015 x86 + Write-Host "### MSVC2015 x64" + DownloadAndInstall msvc2015 x64 + Write-Host "### MSVC2017 x64" + DownloadAndInstall msvc2017 x64 +} elseif ($targetCommand) { + Write-Host "### Unknown parameter specified:" $targetCommand " Options are: mingw, msvc2015_x(86/64), msvc2017_x(86/64)" + throw("Unknown parameter") +} else { + # Default behavior + PowerShell -ExecutionPolicy Bypass -File "$PSScriptRoot\open62541.ps1" -targetCommand build +} diff --git a/coin/provisioning/common/windows/python.ps1 b/coin/provisioning/common/windows/python.ps1 index e2855c75..aee4c199 100644 --- a/coin/provisioning/common/windows/python.ps1 +++ b/coin/provisioning/common/windows/python.ps1 @@ -3,7 +3,7 @@ ## 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. +## This file is part of the provisioning scripts of the Qt Toolkit. ## ## $QT_BEGIN_LICENSE:LGPL21$ ## Commercial License Usage @@ -83,4 +83,7 @@ if (IsProxyEnabled) { } Run-Executable "$targetDir\Scripts\pip.exe" "$pip_args install virtualenv" +# Install PyPDF2 for QSR documentation +Run-Executable "$targetDir\Scripts\pip.exe" "$pip_args install PyPDF2" + Write-Output "Python-$archVer = $version" >> ~/versions.txt diff --git a/coin/provisioning/common/windows/python3.ps1 b/coin/provisioning/common/windows/python3.ps1 index 473fe65c..c05c022c 100644 --- a/coin/provisioning/common/windows/python3.ps1 +++ b/coin/provisioning/common/windows/python3.ps1 @@ -4,7 +4,7 @@ ## Copyright (C) 2017 Pelagicore AG ## Contact: http://www.qt.io/licensing/ ## -## This file is part of the test suite of the Qt Toolkit. +## This file is part of the provisioning scripts of the Qt Toolkit. ## ## $QT_BEGIN_LICENSE:LGPL21$ ## Commercial License Usage @@ -79,7 +79,15 @@ if (IsProxyEnabled) { Write-Host "Using proxy ($proxy) with pip" $pip_args = "--proxy=$proxy" } -Run-Executable "$install_path\Scripts\pip3.exe" "$pip_args install virtualenv" +Run-Executable "$install_path\Scripts\pip3.exe" "$pip_args install virtualenv wheel" + +# Install all needed packages in a special wheel cache directory +$python3_wheel_dir="$install_path\python3-wheels" +Run-Executable "$install_path\Scripts\pip3.exe" "$pip_args wheel --wheel-dir $python3_wheel_dir -r $PSScriptRoot\..\shared\requirements.txt" +Set-EnvironmentVariable "PYTHON3_WHEEL_CACHE" "$python3_wheel_dir" + +# Install PyPDF2 for QSR documentation +Run-Executable "$install_path\Scripts\pip3.exe" "$pip_args install PyPDF2" Write-Output "Python3-$archVer = $version" >> ~/versions.txt diff --git a/coin/provisioning/common/windows/squishInstall.ps1 b/coin/provisioning/common/windows/squishInstall.ps1 index 8db53ca7..5fb032f5 100644 --- a/coin/provisioning/common/windows/squishInstall.ps1 +++ b/coin/provisioning/common/windows/squishInstall.ps1 @@ -38,11 +38,11 @@ # NOTE! Make sure 64bit versions are always installed before 32bit, # because they use same folder name before a rename -$version = "6.3.0" +$version = "6.3.2" # Qt branch without dot (*.*) -$qtBranch = "59x" -# So far Squish built with Qt5.9 works also with 5.10 and 5.11, but we have to be prepared that on some point +$qtBranch = "510x" +# So far Squish built with Qt5.10 works also with 5.11, but we have to be prepared that on some point # the compatibility breaks, and we may need to have separate Squish packages for different Qt versions. $targetDir = "C:\Utils\squish" diff --git a/coin/provisioning/common/windows/vc_redist.ps1 b/coin/provisioning/common/windows/vc_redist.ps1 index c356ca2c..f68846f0 100644 --- a/coin/provisioning/common/windows/vc_redist.ps1 +++ b/coin/provisioning/common/windows/vc_redist.ps1 @@ -4,7 +4,7 @@ ## Copyright (C) 2017 Pelagicore AG ## Contact: http://www.qt.io/licensing/ ## -## This file is part of the test suite of the Qt Toolkit. +## This file is part of the provisioning scripts of the Qt Toolkit. ## ## $QT_BEGIN_LICENSE:LGPL21$ ## Commercial License Usage diff --git a/coin/provisioning/common/windows/vclibs_debug.ps1 b/coin/provisioning/common/windows/vclibs_debug.ps1 new file mode 100644 index 00000000..ef387ab4 --- /dev/null +++ b/coin/provisioning/common/windows/vclibs_debug.ps1 @@ -0,0 +1,23 @@ +. "$PSScriptRoot\helpers.ps1" + +function Install-VCLibsDebug +{ + Param ( + [string]$Arch + ) + + $installedPackage = Get-AppxPackage Microsoft.VCLibs.140.00.Debug | Where-Object {$_.Architecture -eq $Arch} + if ($installedPackage) { + Write-Host "Debug VCLibs already installed for $Arch." + return + } + + if (Is64BitWinHost) { + $ProgramFiles = "Program Files (x86)" + } else { + $ProgramFiles = "Program Files" + } + Add-AppxPackage "C:\$ProgramFiles\Microsoft SDKs\Windows Kits\10\ExtensionSDKs\Microsoft.VCLibs\14.0\Appx\Debug\$Arch\Microsoft.VCLibs.$Arch.Debug.14.00.appx" + + Write-Host "Debug VCLibs successfully installed for $Arch." +} diff --git a/coin/provisioning/qtci-linux-RHEL-6.6-x86_64/05-subscription-manager-tooling.sh b/coin/provisioning/qtci-linux-RHEL-6.6-x86_64/05-subscription-manager-tooling.sh deleted file mode 100755 index d3072b37..00000000 --- a/coin/provisioning/qtci-linux-RHEL-6.6-x86_64/05-subscription-manager-tooling.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/usr/bin/env bash -# provides: fix for possible bug in the subscription manager -# version: provided by RedHat -# needed for yum to work properly in case there is incorrect data in -# the sslclientkey repository parameter value - -set -ex - -sudo rm -f /etc/pki/entitlement/* -sudo subscription-manager refresh diff --git a/coin/provisioning/qtci-linux-RHEL-6.6-x86_64/06-odbc.sh b/coin/provisioning/qtci-linux-RHEL-6.6-x86_64/06-odbc.sh deleted file mode 100755 index c8edc2a2..00000000 --- a/coin/provisioning/qtci-linux-RHEL-6.6-x86_64/06-odbc.sh +++ /dev/null @@ -1,8 +0,0 @@ -#!/usr/bin/env bash -# provides: odbc devel packages on RHEL -# version: provided by default Linux distribution repository -# needed for configure -plugin-sql-odbc in qtbase - -set -ex - -sudo yum install -y unixODBC-devel diff --git a/coin/provisioning/qtci-linux-RHEL-6.6-x86_64/08-pythondev.sh b/coin/provisioning/qtci-linux-RHEL-6.6-x86_64/08-pythondev.sh deleted file mode 100755 index 6152c7e5..00000000 --- a/coin/provisioning/qtci-linux-RHEL-6.6-x86_64/08-pythondev.sh +++ /dev/null @@ -1,17 +0,0 @@ -#!/usr/bin/env bash -# provides: python development libraries -# version: provided by default Linux distribution repository -# needed to build pyside - -set -ex - -sudo yum install -y python-devel python-virtualenv - -# install python3 -sudo yum install -y python34-devel - -# install pip3 -wget https://bootstrap.pypa.io/get-pip.py -sudo python3 get-pip.py -sudo rm -f get-pip.py -sudo pip3 install virtualenv diff --git a/coin/provisioning/qtci-linux-RHEL-6.6-x86_64/09-cmake.sh b/coin/provisioning/qtci-linux-RHEL-6.6-x86_64/09-cmake.sh deleted file mode 100755 index 74520b6e..00000000 --- a/coin/provisioning/qtci-linux-RHEL-6.6-x86_64/09-cmake.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/usr/bin/env bash -set -ex - -"$(dirname "$0")/../common/linux/cmake_linux.sh" diff --git a/coin/provisioning/qtci-linux-RHEL-6.6-x86_64/20-libusb.sh b/coin/provisioning/qtci-linux-RHEL-6.6-x86_64/20-libusb.sh deleted file mode 100755 index b156e8f9..00000000 --- a/coin/provisioning/qtci-linux-RHEL-6.6-x86_64/20-libusb.sh +++ /dev/null @@ -1,6 +0,0 @@ -#!/usr/bin/env bash -# Required for tqtc-boot2qt/qdb - -set -ex - -sudo yum install -y libusb1-devel diff --git a/coin/provisioning/qtci-linux-RHEL-6.6-x86_64/30-install_icu.sh b/coin/provisioning/qtci-linux-RHEL-6.6-x86_64/30-install_icu.sh deleted file mode 100755 index 90d4199f..00000000 --- a/coin/provisioning/qtci-linux-RHEL-6.6-x86_64/30-install_icu.sh +++ /dev/null @@ -1,80 +0,0 @@ -#!/usr/bin/env bash - -############################################################################# -## -## Copyright (C) 2018 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$ -## -############################################################################# - -# shellcheck source=../common/unix/DownloadURL.sh -source "${BASH_SOURCE%/*}/../common/unix/DownloadURL.sh" - -# This script installs the right ICU version - -set -ex -icuVersion="56.1" -icuLocation="/usr/lib64" -sha1="f2eab775c04ce5f3bdae6c47d06b62158b5d6753" - -function Install7ZPackageFromURL { - url=$1 - urlExt=$2 - expectedSha1=$3 - targetDirectory=$4 - - targetFile=$(mktemp) - DownloadURL "$url" "$urlExt" "$expectedSha1" "$targetFile" - sudo /usr/local/bin/7z x -yo"$targetDirectory" "$targetFile" - rm "$targetFile" -} - -echo "Installing custom ICU $icuVersion $sha1 packages on RHEL to $icuLocation" - -baseBinaryPackageURL="http://ci-files01-hki.intra.qt.io/input/icu/$icuVersion/icu-linux-g++-Rhel6.6-x64.7z" -baseBinaryPackageExternalUrl="http://master.qt.io/development_releases/prebuilt/icu/prebuilt/$icuVersion/icu-linux-g++-Rhel6.6-x64.7z" -Install7ZPackageFromURL "$baseBinaryPackageURL" "$baseBinaryPackageExternalUrl" "$sha1" "/usr/lib64" - -echo "Installing custom ICU devel packages on RHEL" - -sha1Dev="82f8b216371b848b8d36ecec7fe7b6e9b0dba0df" -develPackageURL="http://ci-files01-hki.intra.qt.io/input/icu/$icuVersion/icu-linux-g++-Rhel6.6-x64-devel.7z" -develPackageExternalUrl="http://master.qt.io/development_releases/prebuilt/icu/prebuilt/$icuVersion/icu-linux-g++-Rhel6.6-x64-devel.7z" -tempDir=$(mktemp -d) -# shellcheck disable=SC2064 -trap "sudo rm -fr $tempDir" EXIT -Install7ZPackageFromURL "$develPackageURL" "$develPackageExternalUrl" "$sha1Dev" "$tempDir" -sudo cp -a "$tempDir/lib"/* /usr/lib64 -sudo cp -a "$tempDir"/* /usr/ - -sudo /sbin/ldconfig - -# Storage version information to ~/versions.txt, which is used to print version information to provision log. -echo "ICU = $icuVersion" >> ~/versions.txt - diff --git a/coin/provisioning/qtci-linux-RHEL-6.6-x86_64/99-version.sh b/coin/provisioning/qtci-linux-RHEL-6.6-x86_64/99-version.sh deleted file mode 100755 index 1354bf6b..00000000 --- a/coin/provisioning/qtci-linux-RHEL-6.6-x86_64/99-version.sh +++ /dev/null @@ -1,48 +0,0 @@ -#!/usr/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 needs to be called last during provisioning so that the software information will show up last in provision log. - -# Storage installed RPM packages information - -set -ex - -# shellcheck disable=SC2129 -echo "*********************************************" >> ~/versions.txt -echo "***** All installed RPM packages *****" >> ~/versions.txt -rpm -q -a | sort >> ~/versions.txt -echo "*********************************************" >> ~/versions.txt - -"$(dirname "$0")/../common/linux/version.sh" diff --git a/coin/provisioning/qtci-linux-RHEL-7.4-x86_64/04-install-packages.sh b/coin/provisioning/qtci-linux-RHEL-7.4-x86_64/04-install-packages.sh index fba8c1b2..4e2799ff 100755 --- a/coin/provisioning/qtci-linux-RHEL-7.4-x86_64/04-install-packages.sh +++ b/coin/provisioning/qtci-linux-RHEL-7.4-x86_64/04-install-packages.sh @@ -106,4 +106,11 @@ sudo ln -s /opt/rh/rh-python36/root/usr/bin/pip3 /usr/local/bin/pip3 # We shouldn't use yum to install virtualenv. The one found from package repo is not # working, but we can use installed pip sudo pip install --upgrade pip -sudo pip install virtualenv +sudo pip install virtualenv wheel + +sudo /usr/local/bin/pip3 install wheel +# Install all needed packages in a special wheel cache directory +/usr/local/bin/pip3 wheel --wheel-dir $HOME/python3-wheels -r ${BASH_SOURCE%/*}/../common/shared/requirements.txt + +source "${BASH_SOURCE%/*}/../common/unix/SetEnvVar.sh" +SetEnvVar "PYTHON3_WHEEL_CACHE" "$HOME/python3-wheels" diff --git a/coin/provisioning/qtci-linux-RHEL-7.4-x86_64/22-mqtt_broker.sh b/coin/provisioning/qtci-linux-RHEL-7.4-x86_64/22-mqtt_broker.sh index 505374c5..e677427f 100755 --- a/coin/provisioning/qtci-linux-RHEL-7.4-x86_64/22-mqtt_broker.sh +++ b/coin/provisioning/qtci-linux-RHEL-7.4-x86_64/22-mqtt_broker.sh @@ -5,7 +5,7 @@ ## 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. +## This file is part of the provisioning scripts of the Qt Toolkit. ## ## $QT_BEGIN_LICENSE:LGPL21$ ## Commercial License Usage diff --git a/coin/provisioning/qtci-linux-RHEL-7.4-x86_64/50-open62541.sh b/coin/provisioning/qtci-linux-RHEL-7.4-x86_64/50-open62541.sh index 049cdd2d..21c926b8 100755 --- a/coin/provisioning/qtci-linux-RHEL-7.4-x86_64/50-open62541.sh +++ b/coin/provisioning/qtci-linux-RHEL-7.4-x86_64/50-open62541.sh @@ -5,7 +5,7 @@ ## 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. +## This file is part of the provisioning scripts of the Qt Toolkit. ## ## $QT_BEGIN_LICENSE:LGPL21$ ## Commercial License Usage diff --git a/coin/provisioning/qtci-linux-Ubuntu-16.04-x86_64/02-apt.sh b/coin/provisioning/qtci-linux-Ubuntu-16.04-x86_64/02-apt.sh index e613edc0..2855d70d 100755 --- a/coin/provisioning/qtci-linux-Ubuntu-16.04-x86_64/02-apt.sh +++ b/coin/provisioning/qtci-linux-Ubuntu-16.04-x86_64/02-apt.sh @@ -110,6 +110,7 @@ installPackages+=(python-pip) installPackages+=(python3-dev) installPackages+=(python3-pip) installPackages+=(python3-virtualenv) +installPackages+=(python3-wheel) # Needed to be able to build Yocto installPackages+=(chrpath) installPackages+=(gawk) @@ -157,12 +158,20 @@ installPackages+=(libbluetooth-dev) #VirtualBox for RTA installPackages+=(virtualbox) installPackages+=(dkms) +#Pypdf for QSR documentation +installPackages+=(python-pypdf2) echo "Running update for apt" sudo apt-get update echo "Installing packages" sudo DEBIAN_FRONTEND=noninteractive apt-get -q -y install "${installPackages[@]}" +# Install all needed packages in a special wheel cache directory +pip3 wheel --wheel-dir $HOME/python3-wheels -r ${BASH_SOURCE%/*}/../common/shared/requirements.txt + +source "${BASH_SOURCE%/*}/../common/unix/SetEnvVar.sh" +SetEnvVar "PYTHON3_WHEEL_CACHE" "$HOME/python3-wheels" + sudo tee "/etc/apt/sources.list" > /dev/null <<-EOC deb [arch=amd64] http://repo-clones.ci.qt.io/apt-mirror/mirror/ubuntu.trumpetti.atm.tut.fi/ubuntu/ xenial main restricted universe multiverse deb [arch=amd64] http://repo-clones.ci.qt.io/apt-mirror/mirror/ubuntu.trumpetti.atm.tut.fi/ubuntu/ xenial-updates main restricted universe multiverse diff --git a/coin/provisioning/qtci-linux-Ubuntu-16.04-x86_64/22-mqtt_broker.sh b/coin/provisioning/qtci-linux-Ubuntu-16.04-x86_64/22-mqtt_broker.sh index 04c09770..c2331d16 100755 --- a/coin/provisioning/qtci-linux-Ubuntu-16.04-x86_64/22-mqtt_broker.sh +++ b/coin/provisioning/qtci-linux-Ubuntu-16.04-x86_64/22-mqtt_broker.sh @@ -5,7 +5,7 @@ ## 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. +## This file is part of the provisioning scripts of the Qt Toolkit. ## ## $QT_BEGIN_LICENSE:LGPL21$ ## Commercial License Usage diff --git a/coin/provisioning/qtci-linux-Ubuntu-16.04-x86_64/42-freeopcua.sh b/coin/provisioning/qtci-linux-Ubuntu-16.04-x86_64/42-freeopcua.sh deleted file mode 100755 index 6570e107..00000000 --- a/coin/provisioning/qtci-linux-Ubuntu-16.04-x86_64/42-freeopcua.sh +++ /dev/null @@ -1,51 +0,0 @@ -#!/usr/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 955cc5b924cf310fc15b376a11f4b7b9db28980b -mkdir build -cd build -source ~/.profile -cmake -DCMAKE_INSTALL_PREFIX:PATH=/usr/local .. -make -sudo make install -sudo /sbin/ldconfig diff --git a/coin/provisioning/qtci-linux-Ubuntu-16.04-x86_64/50-open62541.sh b/coin/provisioning/qtci-linux-Ubuntu-16.04-x86_64/50-open62541.sh index 6cc2b44f..a4b63493 100755 --- a/coin/provisioning/qtci-linux-Ubuntu-16.04-x86_64/50-open62541.sh +++ b/coin/provisioning/qtci-linux-Ubuntu-16.04-x86_64/50-open62541.sh @@ -5,7 +5,7 @@ ## 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. +## This file is part of the provisioning scripts of the Qt Toolkit. ## ## $QT_BEGIN_LICENSE:LGPL21$ ## Commercial License Usage diff --git a/coin/provisioning/qtci-linux-Ubuntu-16.04-x86_64/60-qnx660.sh b/coin/provisioning/qtci-linux-Ubuntu-16.04-x86_64/60-qnx660.sh index 6b5cf23c..37aec494 100755 --- a/coin/provisioning/qtci-linux-Ubuntu-16.04-x86_64/60-qnx660.sh +++ b/coin/provisioning/qtci-linux-Ubuntu-16.04-x86_64/60-qnx660.sh @@ -5,7 +5,7 @@ ## Copyright (C) 2018 The Qt Company Ltd. ## Contact: http://www.qt.io/licensing/ ## -## This file is part of the test suite of the Qt Toolkit. +## This file is part of the provisioning scripts of the Qt Toolkit. ## ## $QT_BEGIN_LICENSE:LGPL21$ ## Commercial License Usage diff --git a/coin/provisioning/qtci-linux-Ubuntu-16.04-x86_64/70-qnx700.sh b/coin/provisioning/qtci-linux-Ubuntu-16.04-x86_64/70-qnx700.sh index 7f24d224..c4740556 100755 --- a/coin/provisioning/qtci-linux-Ubuntu-16.04-x86_64/70-qnx700.sh +++ b/coin/provisioning/qtci-linux-Ubuntu-16.04-x86_64/70-qnx700.sh @@ -5,7 +5,7 @@ ## 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. +## This file is part of the provisioning scripts of the Qt Toolkit. ## ## $QT_BEGIN_LICENSE:LGPL21$ ## Commercial License Usage diff --git a/coin/provisioning/qtci-linux-Ubuntu-16.04-x86_64/80-docker.sh b/coin/provisioning/qtci-linux-Ubuntu-16.04-x86_64/80-docker.sh new file mode 100755 index 00000000..4a6681f3 --- /dev/null +++ b/coin/provisioning/qtci-linux-Ubuntu-16.04-x86_64/80-docker.sh @@ -0,0 +1,4 @@ +#!/bin/bash + +BASEDIR=$(dirname "$0") +$BASEDIR/../common/linux/docker.sh diff --git a/coin/provisioning/qtci-linux-Ubuntu-18.04-x86_64/01-systemsetup.sh b/coin/provisioning/qtci-linux-Ubuntu-18.04-x86_64/01-systemsetup.sh new file mode 100755 index 00000000..96bf23f8 --- /dev/null +++ b/coin/provisioning/qtci-linux-Ubuntu-18.04-x86_64/01-systemsetup.sh @@ -0,0 +1,70 @@ +#!/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$ +## +############################################################################# + +# This script modifies system settings for automated use + +set -ex + +# shellcheck source=../common/unix/check_and_set_proxy.sh +source "${BASH_SOURCE%/*}/../common/unix/check_and_set_proxy.sh" + +NTS_IP=10.212.2.216 + +echo "Set timezone to UTC." +sudo timedatectl set-timezone Etc/UTC +echo "Timeout for blanking the screen (0 = never)" +gsettings set org.gnome.desktop.session idle-delay 0 +echo "Prevents screen lock when screesaver goes active." +gsettings set org.gnome.desktop.screensaver lock-enabled false +echo "Set grub timeout to 0" +sudo sed -i 's|GRUB_TIMEOUT=10|GRUB_TIMEOUT=0|g' /etc/default/grub +sudo update-grub + +# https://bugs.launchpad.net/ubuntu/+source/systemd/+bug/1624320 +echo "Setting up workaround for Ubuntu systemd resolve bug" +sudo rm -f /etc/resolv.conf +sudo ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf + +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 + +echo 'LC_ALL=en_US.UTF8' | sudo tee /etc/default/locale + +if [ "$http_proxy" != "" ]; then + echo "Acquire::http::Proxy \"$proxy\";" | sudo tee -a /etc/apt/apt.conf +fi + +# This script diverts qtlogging.ini file so we don't get debugging related auto-test failures. +sudo dpkg-divert --divert /etc/xdg/QtProject/qtlogging.ini.foo --rename /etc/xdg/QtProject/qtlogging.ini diff --git a/coin/provisioning/qtci-linux-Ubuntu-18.04-x86_64/02-apt.sh b/coin/provisioning/qtci-linux-Ubuntu-18.04-x86_64/02-apt.sh new file mode 100755 index 00000000..92b7a990 --- /dev/null +++ b/coin/provisioning/qtci-linux-Ubuntu-18.04-x86_64/02-apt.sh @@ -0,0 +1,159 @@ +#!/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$ +## +############################################################################# + +# Install required packages with APT + +# shellcheck source=../common/linux/apt_wait_loop.sh +source "${BASH_SOURCE%/*}/../common/linux/apt_wait_loop.sh" + +echo "Disabling auto update" +sudo sed -i 's/APT::Periodic::Update-Package-Lists "1";/APT::Periodic::Update-Package-Lists "0";/' /etc/apt/apt.conf.d/10periodic +for service in apt-daily.timer apt-daily-upgrade.timer apt-daily.service apt-daily-upgrade.service; do + sudo systemctl stop $service + sudo systemctl disable $service +done +# Git is not needed by builds themselves, but is nice to have +# immediately as one starts debugging +installPackages+=(git) +# 7zip is a needed decompressing tool +installPackages+=(p7zip-full) +# To be able to mount yocto-cache during builds +installPackages+=(nfs-common) +# libssl-dev provides headers for OpenSSL +installPackages+=(libssl-dev) +# Needed libraries for X11 support accordingly to https://wiki.qt.io/Building_Qt_5_from_Git +installPackages+=("^libxcb.*") +installPackages+=(libxkbcommon-dev) +installPackages+=(libxkbcommon-x11-dev) +installPackages+=(libx11-xcb-dev) +installPackages+=(libglu1-mesa-dev) +installPackages+=(libxrender-dev) +installPackages+=(libxi-dev) +# Enable linking to system dbus +installPackages+=(libdbus-1-dev) +# Needed libraries for WebEngine +installPackages+=(libudev-dev) +installPackages+=(libegl1-mesa-dev) +installPackages+=(libfontconfig1-dev) +installPackages+=(libxss-dev) +# Common event loop handling +installPackages+=(libglib2.0-dev) +# MySQL support +installPackages+=(libmysqlclient-dev) +# PostgreSQL support +installPackages+=(libpq-dev) +# SQLite support +installPackages+=(libsqlite3-dev) +# ODBC support +installPackages+=(unixodbc-dev) +# Support for FreeType font engine +installPackages+=(libfreetype6-dev) +# Enable the usage of system jpeg libraries +installPackages+=(libjpeg-dev) +# Enable support for printer driver +installPackages+=(libcups2-dev) +# Install libraries needed for QtMultimedia to be able to support all plugins +installPackages+=(libasound2-dev) +installPackages+=(libgstreamer1.0-dev) +installPackages+=(libgstreamer-plugins-base1.0-dev) +installPackages+=(libgstreamer-plugins-good1.0-dev) +installPackages+=(libgstreamer-plugins-bad1.0-dev) +# Support for cross-building to x86 (needed by WebEngine boot2qt builds) +installPackages+=(g++-multilib) +# python3 development package +installPackages+=(python3-dev) +installPackages+=(python3-pip) +installPackages+=(python3-virtualenv) +installPackages+=(python3-wheel) +# python2 development package +installPackages+=(python-dev) +# Automates interactive applications (Needed by RTA to automate configure testing) +installPackages+=(expect) +installPackages+=(mesa-common-dev) +installPackages+=(libgl1-mesa-glx) +installPackages+=(libgl1-mesa-dev) +installPackages+=(libegl1-mesa-dev) +installPackages+=(curl) +installPackages+=(libicu-dev) +installPackages+=(zlib1g-dev) +installPackages+=(zlib1g) +installPackages+=(openjdk-8-jdk) +installPackages+=(libgtk-3-dev) +installPackages+=(ninja-build) +installPackages+=(libssl-dev) +installPackages+=(libxcursor-dev) +installPackages+=(libxcomposite-dev) +installPackages+=(libxdamage-dev) +installPackages+=(libxrandr-dev) +installPackages+=(libfontconfig1-dev) +installPackages+=(libxss-dev) +installPackages+=(libsrtp0-dev) +installPackages+=(libwebp-dev) +installPackages+=(libjsoncpp-dev) +installPackages+=(libopus-dev) +installPackages+=(libminizip-dev) +installPackages+=(libavutil-dev) +installPackages+=(libavformat-dev) +installPackages+=(libavcodec-dev) +installPackages+=(libevent-dev) +installPackages+=(bison) +installPackages+=(flex) +installPackages+=(gperf) +installPackages+=(libasound2-dev) +installPackages+=(libpulse-dev) +installPackages+=(libxtst-dev) +installPackages+=(libnspr4-dev) +installPackages+=(libnss3-dev) +installPackages+=(libnss3) +installPackages+=(libopenal-dev) +installPackages+=(libbluetooth-dev) +#VirtualBox for RTA +installPackages+=(virtualbox) +installPackages+=(dkms) +# Needed for qtspeech +installPackages+=(libspeechd-dev) + +echo "Installing packages" +waitLoop +sudo DEBIAN_FRONTEND=noninteractive apt-get -q -y install "${installPackages[@]}" +echo "Running update for apt" +waitLoop +sudo apt-get update + +# Install all needed packages in a special wheel cache directory +pip3 wheel --wheel-dir $HOME/python3-wheels -r ${BASH_SOURCE%/*}/../common/shared/requirements.txt + +source "${BASH_SOURCE%/*}/../common/unix/SetEnvVar.sh" +SetEnvVar "PYTHON3_WHEEL_CACHE" "$HOME/python3-wheels" diff --git a/coin/provisioning/qtci-linux-RHEL-6.6-x86_64/02-disable-ntp.sh b/coin/provisioning/qtci-linux-Ubuntu-18.04-x86_64/02-disable-ntp.sh index 89806892..89806892 100755 --- a/coin/provisioning/qtci-linux-RHEL-6.6-x86_64/02-disable-ntp.sh +++ b/coin/provisioning/qtci-linux-Ubuntu-18.04-x86_64/02-disable-ntp.sh diff --git a/coin/provisioning/qtci-linux-Ubuntu-18.04-x86_64/03-gcc.sh b/coin/provisioning/qtci-linux-Ubuntu-18.04-x86_64/03-gcc.sh new file mode 100755 index 00000000..62940e21 --- /dev/null +++ b/coin/provisioning/qtci-linux-Ubuntu-18.04-x86_64/03-gcc.sh @@ -0,0 +1,9 @@ +#!/usr/bin/env bash + +set -ex + +# shellcheck source=../common/linux/gcc.sh +source "${BASH_SOURCE%/*}/../common/linux/gcc.sh" + +InstallGCC 8.2.0 50 19e40bea7df5dbadb22eec09ada621ecd9235687 19926bdb6c4b58891015929853d41aeff019d400 + diff --git a/coin/provisioning/qtci-linux-Ubuntu-16.04-x86_64/03-qemu.sh b/coin/provisioning/qtci-linux-Ubuntu-18.04-x86_64/03-qemu.sh index b2057b21..e3faa20e 100755 --- a/coin/provisioning/qtci-linux-Ubuntu-16.04-x86_64/03-qemu.sh +++ b/coin/provisioning/qtci-linux-Ubuntu-18.04-x86_64/03-qemu.sh @@ -45,8 +45,82 @@ cd "$tempDir" #latest commit from the master proven to work git checkout c7f1cf01b8245762ca5864e835d84f6677ae8b1f +git cherry-pick 75e5b70e6b5dcc4f2219992d7cffa462aa406af0 +git cherry-pick 04b33e21866412689f18b7ad6daf0a54d8f959a7 git submodule update --init pixman -./configure --target-list=arm-linux-user,aarch64-linux-user --static + +patch -p1 <<EOT +From aad6a8f17dc7ad3681d2d98a01e474a8904a129b Mon Sep 17 00:00:00 2001 +From: Simon Hausmann <simon.hausmann@qt.io> +Date: Fri, 24 Aug 2018 10:38:29 +0200 +Subject: [PATCH] linux-user: add support for MADV_DONTNEED + +Most flags to madvise() are just hints, so typically ignoring the +syscall and returning okay is fine. However applications exist that do +rely on MADV_DONTNEED behavior to guarantee that upon subsequent access +the mapping is refreshed from the backing file or zero for anonymous +mappings. +--- + linux-user/mmap.c | 18 ++++++++++++++++++ + linux-user/qemu.h | 1 + + linux-user/syscall.c | 6 +----- + 3 files changed, 20 insertions(+), 5 deletions(-) + +diff --git a/linux-user/mmap.c b/linux-user/mmap.c +index 61685bf79e..cb3069f27e 100644 +--- a/linux-user/mmap.c ++++ b/linux-user/mmap.c +@@ -764,3 +764,16 @@ int target_msync(abi_ulong start, abi_ulong len, int flags) + start &= qemu_host_page_mask; + return msync(g2h(start), end - start, flags); + } ++ ++int target_madvise(abi_ulong start, abi_ulong len, int flags) ++{ ++ /* A straight passthrough may not be safe because qemu sometimes ++ turns private file-backed mappings into anonymous mappings. ++ Most flags are hints, except for MADV_DONTNEED that applications ++ may rely on to zero out pages, so we pass that through. ++ Otherwise returning success is ok. */ ++ if (flags & MADV_DONTNEED) { ++ return madvise(g2h(start), len, MADV_DONTNEED); ++ } ++ return 0; ++} +diff --git a/linux-user/qemu.h b/linux-user/qemu.h +index 4edd7d0c08..3c975909a1 100644 +--- a/linux-user/qemu.h ++++ b/linux-user/qemu.h +@@ -429,6 +429,7 @@ int target_munmap(abi_ulong start, abi_ulong len); + abi_long target_mremap(abi_ulong old_addr, abi_ulong old_size, + abi_ulong new_size, unsigned long flags, + abi_ulong new_addr); ++int target_madvise(abi_ulong start, abi_ulong len, int flags); + int target_msync(abi_ulong start, abi_ulong len, int flags); + extern unsigned long last_brk; + extern abi_ulong mmap_next_start; +diff --git a/linux-user/syscall.c b/linux-user/syscall.c +index 11a311f9db..94d8abc745 100644 +--- a/linux-user/syscall.c ++++ b/linux-user/syscall.c +@@ -11148,11 +11148,7 @@ abi_long do_syscall(void *cpu_env, int num, abi_long arg1, + + #ifdef TARGET_NR_madvise + case TARGET_NR_madvise: +- /* A straight passthrough may not be safe because qemu sometimes +- turns private file-backed mappings into anonymous mappings. +- This will break MADV_DONTNEED. +- This is a hint, so ignoring and returning success is ok. */ +- ret = get_errno(0); ++ ret = get_errno(target_madvise(arg1, arg2, arg3)); + break; + #endif + #if TARGET_ABI_BITS == 32 +-- +2.17.1 +EOT + +./configure --target-list=arm-linux-user,aarch64-linux-user --static --disable-werror make sudo make install rm -rf "$tempDir" diff --git a/coin/provisioning/qtci-linux-Ubuntu-18.04-x86_64/04-libclang.sh b/coin/provisioning/qtci-linux-Ubuntu-18.04-x86_64/04-libclang.sh new file mode 100755 index 00000000..0d18dbcf --- /dev/null +++ b/coin/provisioning/qtci-linux-Ubuntu-18.04-x86_64/04-libclang.sh @@ -0,0 +1,4 @@ +#!/usr/bin/env bash + +BASEDIR=$(dirname "$0") +"$BASEDIR/../common/unix/libclang.sh" diff --git a/coin/provisioning/qtci-linux-Ubuntu-16.04-x86_64/04-yocto.sh b/coin/provisioning/qtci-linux-Ubuntu-18.04-x86_64/04-yocto.sh index cc799702..fbe669d9 100755 --- a/coin/provisioning/qtci-linux-Ubuntu-16.04-x86_64/04-yocto.sh +++ b/coin/provisioning/qtci-linux-Ubuntu-18.04-x86_64/04-yocto.sh @@ -42,11 +42,11 @@ source "${BASH_SOURCE%/*}/../common/unix/SetEnvVar.sh" echo "Installing Yocto toolchain for 32-bit b2qt..." -versionARM="2.3.1" -package="b2qt-x86_64-meta-toolchain-b2qt-embedded-sdk-qemuarmv7-41b0b46.sh" +versionARM="2.3.4" +package="b2qt-x86_64-meta-toolchain-b2qt-embedded-sdk-qemuarmv7-7608ebe.sh" PrimaryUrl="http://ci-files01-hki.intra.qt.io/input/boot2qt/pyro/$package" AltUrl="http://download.qt.io/development_releases/prebuilt/boot2qt/pyro/$package" -SHA1="f17cce550c9d2148f11ae5c760f43a67e9813a45" +SHA1="db7a0f4f9ddd5992a563d5348889021a7ceb1c56" yoctoInstaller="/tmp/yocto-toolchain-ARMv7.sh" yoctoLocationARMv7="/opt/yocto-armv7" sysrootARMv7="sysroots/armv7ahf-neon-poky-linux-gnueabi" @@ -60,11 +60,11 @@ rm -rf "$yoctoInstaller" echo "Installing Yocto toolchain for 64-bit b2qt..." -versionARM64="2.3.1" -package="b2qt-x86_64-meta-toolchain-b2qt-embedded-sdk-qemuarm64-41b0b46.sh" +versionARM64="2.3.4" +package="b2qt-x86_64-meta-toolchain-b2qt-embedded-sdk-qemuarm64-7608ebe.sh" PrimaryUrl="http://ci-files01-hki.intra.qt.io/input/boot2qt/pyro/$package" AltUrl="http://download.qt.io/development_releases/prebuilt/boot2qt/pyro/$package" -SHA1="b49d7ec8a6339dda5a82815dc31fed1fae00851d" +SHA1="5dcae7c6cbc266798ba49a9e51fff1f06790729d" yoctoInstaller="/tmp/yocto-toolchain-ARM64.sh" yoctoLocationARM64="/opt/yocto-arm64" sysrootARM64="sysroots/aarch64-poky-linux" diff --git a/coin/provisioning/qtci-linux-Ubuntu-16.04-x86_64/10-openssl_for_android_linux.sh b/coin/provisioning/qtci-linux-Ubuntu-18.04-x86_64/10-openssl_for_android_linux.sh index 0f89e72c..0f89e72c 100755 --- a/coin/provisioning/qtci-linux-Ubuntu-16.04-x86_64/10-openssl_for_android_linux.sh +++ b/coin/provisioning/qtci-linux-Ubuntu-18.04-x86_64/10-openssl_for_android_linux.sh diff --git a/coin/provisioning/qtci-linux-Ubuntu-18.04-x86_64/22-mqtt_broker.sh b/coin/provisioning/qtci-linux-Ubuntu-18.04-x86_64/22-mqtt_broker.sh new file mode 100755 index 00000000..4527e984 --- /dev/null +++ b/coin/provisioning/qtci-linux-Ubuntu-18.04-x86_64/22-mqtt_broker.sh @@ -0,0 +1,36 @@ +#!/usr/bin/env bash + +############################################################################# +## +## Copyright (C) 2018 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$ +## +############################################################################# + +source "${BASH_SOURCE%/*}/../common/unix/mqtt_broker.sh" diff --git a/coin/provisioning/qtci-osx-10.11-x86_64/01-system_updates.sh b/coin/provisioning/qtci-linux-Ubuntu-18.04-x86_64/30-fbx.sh index 94b53309..d8df4375 100755 --- a/coin/provisioning/qtci-osx-10.11-x86_64/01-system_updates.sh +++ b/coin/provisioning/qtci-linux-Ubuntu-18.04-x86_64/30-fbx.sh @@ -3,4 +3,4 @@ set -ex BASEDIR=$(dirname "$0") -$BASEDIR/../common/macos/system_updates.sh +"$BASEDIR/../common/linux/fbx_linux.sh" diff --git a/coin/provisioning/qtci-linux-Ubuntu-18.04-x86_64/40-android_linux.sh b/coin/provisioning/qtci-linux-Ubuntu-18.04-x86_64/40-android_linux.sh new file mode 100755 index 00000000..0527fe85 --- /dev/null +++ b/coin/provisioning/qtci-linux-Ubuntu-18.04-x86_64/40-android_linux.sh @@ -0,0 +1,39 @@ +#!/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$ +## +############################################################################# + +set -ex + +# shellcheck source=../common/linux/android_linux.sh +source "${BASH_SOURCE%/*}/../common/linux/android_linux.sh" diff --git a/coin/provisioning/qtci-linux-Ubuntu-18.04-x86_64/40-cmake.sh b/coin/provisioning/qtci-linux-Ubuntu-18.04-x86_64/40-cmake.sh new file mode 100755 index 00000000..db8a3ff5 --- /dev/null +++ b/coin/provisioning/qtci-linux-Ubuntu-18.04-x86_64/40-cmake.sh @@ -0,0 +1,5 @@ +#!/bin/bash + +BASEDIR=$(dirname "$0") +"$BASEDIR/../common/linux/cmake_linux.sh" + diff --git a/coin/provisioning/qtci-linux-RHEL-6.6-x86_64/08-libclang.sh b/coin/provisioning/qtci-linux-Ubuntu-18.04-x86_64/60-qnx660.sh index 9eb7e086..6b5cf23c 100755 --- a/coin/provisioning/qtci-linux-RHEL-6.6-x86_64/08-libclang.sh +++ b/coin/provisioning/qtci-linux-Ubuntu-18.04-x86_64/60-qnx660.sh @@ -1,4 +1,4 @@ -#!/usr/bin/env bash +#!/bin/env bash ############################################################################# ## @@ -32,8 +32,7 @@ ## $QT_END_LICENSE$ ## ############################################################################# + set -ex -BASEDIR=$(dirname "$0") -# shellcheck source=../common/unix/libclang.sh -"$BASEDIR/../common/unix/libclang.sh" "$URL" "$SHA1" "$VERSION" +source "${BASH_SOURCE%/*}/../common/linux/qnx_660.sh" diff --git a/coin/provisioning/qtci-linux-RHEL-6.6-x86_64/22-mqtt_broker.sh b/coin/provisioning/qtci-linux-Ubuntu-18.04-x86_64/70-qnx700.sh index 505374c5..7f24d224 100755 --- a/coin/provisioning/qtci-linux-RHEL-6.6-x86_64/22-mqtt_broker.sh +++ b/coin/provisioning/qtci-linux-Ubuntu-18.04-x86_64/70-qnx700.sh @@ -1,4 +1,4 @@ -#!/usr/bin/env bash +#!/bin/env bash ############################################################################# ## @@ -33,5 +33,6 @@ ## ############################################################################# -# shellcheck source=../common/unix/mqtt_broker.sh -source "${BASH_SOURCE%/*}/../common/unix/mqtt_broker.sh" +set -ex + +source "${BASH_SOURCE%/*}/../common/linux/qnx_700.sh" diff --git a/coin/provisioning/qtci-linux-Ubuntu-18.04-x86_64/80-docker.sh b/coin/provisioning/qtci-linux-Ubuntu-18.04-x86_64/80-docker.sh new file mode 100755 index 00000000..4a6681f3 --- /dev/null +++ b/coin/provisioning/qtci-linux-Ubuntu-18.04-x86_64/80-docker.sh @@ -0,0 +1,4 @@ +#!/bin/bash + +BASEDIR=$(dirname "$0") +$BASEDIR/../common/linux/docker.sh diff --git a/coin/provisioning/qtci-linux-Ubuntu-18.04-x86_64/90-squish.sh b/coin/provisioning/qtci-linux-Ubuntu-18.04-x86_64/90-squish.sh new file mode 100755 index 00000000..e4281588 --- /dev/null +++ b/coin/provisioning/qtci-linux-Ubuntu-18.04-x86_64/90-squish.sh @@ -0,0 +1,4 @@ +#!/usr/bin/env bash +BASEDIR=$(dirname "$0") +"$BASEDIR/../common/unix/squishInstall.sh" + diff --git a/coin/provisioning/qtci-linux-Ubuntu-18.04-x86_64/99-version.sh b/coin/provisioning/qtci-linux-Ubuntu-18.04-x86_64/99-version.sh new file mode 100644 index 00000000..b062800a --- /dev/null +++ b/coin/provisioning/qtci-linux-Ubuntu-18.04-x86_64/99-version.sh @@ -0,0 +1,4 @@ +#!/bin/bash + +BASEDIR=$(dirname "$0") +$BASEDIR/../common/linux/ubuntu-version.sh diff --git a/coin/provisioning/qtci-linux-Ubuntu-16.04-x86_64/yocto_ssh_configurations.sh b/coin/provisioning/qtci-linux-Ubuntu-18.04-x86_64/yocto_ssh_configurations.sh index 7f32e073..e4d988fc 100755 --- a/coin/provisioning/qtci-linux-Ubuntu-16.04-x86_64/yocto_ssh_configurations.sh +++ b/coin/provisioning/qtci-linux-Ubuntu-18.04-x86_64/yocto_ssh_configurations.sh @@ -5,7 +5,7 @@ ## Copyright (C) 2018 The Qt Company Ltd. ## Contact: http://www.qt.io/licensing/ ## -## This file is part of the test suite of the Qt Toolkit. +## This file is part of the provisioning scripts of the Qt Toolkit. ## ## $QT_BEGIN_LICENSE:LGPL21$ ## Commercial License Usage diff --git a/coin/provisioning/qtci-linux-openSUSE-42.3-x86_64/01-systemsetup.sh b/coin/provisioning/qtci-linux-openSUSE-42.3-x86_64/01-systemsetup.sh index 0e677642..61c19510 100755 --- a/coin/provisioning/qtci-linux-openSUSE-42.3-x86_64/01-systemsetup.sh +++ b/coin/provisioning/qtci-linux-openSUSE-42.3-x86_64/01-systemsetup.sh @@ -10,15 +10,24 @@ source "${BASH_SOURCE%/*}/../common/unix/check_and_set_proxy.sh" sed -i '$ a\[Daemon\]\nAutolock=false\nLockOnResume=false' ~/.config/kscreenlockerrc +sudo sed -i 's|GRUB_TIMEOUT=8|GRUB_TIMEOUT=0|g' /etc/default/grub +sudo grub2-mkconfig -o /boot/grub2/grub.cfg + echo "Set Network Test Server address to $network_test_server_ip in /etc/hosts" echo "$network_test_server_ip qt-test-server qt-test-server.qt-test-net" | sudo tee -a /etc/hosts echo "Set DISPLAY" echo 'export DISPLAY=":0"' >> ~/.bashrc echo "Disabling file indexing." sudo balooctl disable -echo "Disable update notifications" + +while sudo fuser /usr/lib/packagekitd >/dev/null 2>&1 ; do + echo "Waiting for PackageKit to finish..." + sleep 0.5 +done +echo "Disabling update notifications" sudo zypper -nq remove plasma5-pk-updates + # shellcheck disable=SC2031 if [ "$http_proxy" != "" ]; then sudo sed -i 's/PROXY_ENABLED=\"no\"/PROXY_ENABLED=\"yes\"/' /etc/sysconfig/proxy diff --git a/coin/provisioning/qtci-linux-openSUSE-42.3-x86_64/08-pythondev.sh b/coin/provisioning/qtci-linux-openSUSE-42.3-x86_64/08-pythondev.sh index e7cdd4a7..208762d3 100755 --- a/coin/provisioning/qtci-linux-openSUSE-42.3-x86_64/08-pythondev.sh +++ b/coin/provisioning/qtci-linux-openSUSE-42.3-x86_64/08-pythondev.sh @@ -9,4 +9,10 @@ sudo pkcon -y refresh sudo pkcon -y install python-devel python-virtualenv # install python3 -sudo pkcon -y install libpython3_4m1_0 python3-base python3 python3-pip python3-devel python3-virtualenv +sudo pkcon -y install libpython3_4m1_0 python3-base python3 python3-pip python3-devel python3-virtualenv python3-wheel + +# Install all needed packages in a special wheel cache directory +pip3 wheel --wheel-dir $HOME/python3-wheels -r ${BASH_SOURCE%/*}/../common/shared/requirements.txt + +source "${BASH_SOURCE%/*}/../common/unix/SetEnvVar.sh" +SetEnvVar "PYTHON3_WHEEL_CACHE" "$HOME/python3-wheels" diff --git a/coin/provisioning/qtci-linux-openSUSE-42.3-x86_64/22-mqtt_broker.sh b/coin/provisioning/qtci-linux-openSUSE-42.3-x86_64/22-mqtt_broker.sh index 505374c5..e677427f 100755 --- a/coin/provisioning/qtci-linux-openSUSE-42.3-x86_64/22-mqtt_broker.sh +++ b/coin/provisioning/qtci-linux-openSUSE-42.3-x86_64/22-mqtt_broker.sh @@ -5,7 +5,7 @@ ## 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. +## This file is part of the provisioning scripts of the Qt Toolkit. ## ## $QT_BEGIN_LICENSE:LGPL21$ ## Commercial License Usage diff --git a/coin/provisioning/qtci-linux-openSUSE-42.3-x86_64/50-open62541.sh b/coin/provisioning/qtci-linux-openSUSE-42.3-x86_64/50-open62541.sh index 049cdd2d..21c926b8 100755 --- a/coin/provisioning/qtci-linux-openSUSE-42.3-x86_64/50-open62541.sh +++ b/coin/provisioning/qtci-linux-openSUSE-42.3-x86_64/50-open62541.sh @@ -5,7 +5,7 @@ ## 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. +## This file is part of the provisioning scripts of the Qt Toolkit. ## ## $QT_BEGIN_LICENSE:LGPL21$ ## Commercial License Usage diff --git a/coin/provisioning/qtci-macos-10.12-x86_64/06-disable_spotlight.sh b/coin/provisioning/qtci-macos-10.12-x86_64/06-disable_spotlight.sh new file mode 100755 index 00000000..d991e6c0 --- /dev/null +++ b/coin/provisioning/qtci-macos-10.12-x86_64/06-disable_spotlight.sh @@ -0,0 +1,2 @@ +#!/usr/bin/env bash +$(dirname "$0")/../common/macos/disable_spotlight.sh diff --git a/coin/provisioning/qtci-macos-10.12-x86_64/21-install-commandlinetools.sh b/coin/provisioning/qtci-macos-10.12-x86_64/21-install-commandlinetools.sh index d534e74d..462ac422 100755 --- a/coin/provisioning/qtci-macos-10.12-x86_64/21-install-commandlinetools.sh +++ b/coin/provisioning/qtci-macos-10.12-x86_64/21-install-commandlinetools.sh @@ -5,7 +5,7 @@ ## 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. +## This file is part of the provisioning scripts of the Qt Toolkit. ## ## $QT_BEGIN_LICENSE:LGPL21$ ## Commercial License Usage diff --git a/coin/provisioning/qtci-macos-10.13-x86_64/01-sha1sum-compatibility.sh b/coin/provisioning/qtci-macos-10.13-x86_64/01-sha1sum-compatibility.sh new file mode 100755 index 00000000..c3936499 --- /dev/null +++ b/coin/provisioning/qtci-macos-10.13-x86_64/01-sha1sum-compatibility.sh @@ -0,0 +1,50 @@ +#!/usr/bin/env bash + +############################################################################# +## +## Copyright (C) 2018 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$ +## +############################################################################# + +# On macOS the sha1 tool is named 'shasum' while on all other unix systems it is called 'sha1sum'. +# In order to make all unix provioning scripts run on macOS without special case handling +# a symbolic link is created. +# The shasum tool is a perl script which does some globbing to determine the perl version. The +# symbolic link has to point directly to the binary including the perl version. +# Additionally the CI seems to have multiple parallel perl versions installed which causes +# multiple shasum tools to be present (shasum5.16, shasum5.18). +# +# Currently this is +# /usr/local/bin/sha1sum -> /usr/bin/shasum5.18 + +[ -d /usr/local/bin ] || sudo mkdir -p /usr/local/bin +# shellcheck disable=SC2012 +SHASUM_TOOLNAME=$(ls -r /usr/bin/shasum?.* | head -n1) +sudo ln -s "${SHASUM_TOOLNAME}" /usr/local/bin/sha1sum diff --git a/coin/provisioning/qtci-osx-10.11-x86_64/02-disable-ntp.sh b/coin/provisioning/qtci-macos-10.13-x86_64/02-disable-ntp.sh index 32528873..32528873 100644..100755 --- a/coin/provisioning/qtci-osx-10.11-x86_64/02-disable-ntp.sh +++ b/coin/provisioning/qtci-macos-10.13-x86_64/02-disable-ntp.sh diff --git a/coin/provisioning/qtci-osx-10.11-x86_64/03-bashprofile.sh b/coin/provisioning/qtci-macos-10.13-x86_64/03-bashprofile.sh index 2c3e45f3..2c3e45f3 100755 --- a/coin/provisioning/qtci-osx-10.11-x86_64/03-bashprofile.sh +++ b/coin/provisioning/qtci-macos-10.13-x86_64/03-bashprofile.sh diff --git a/coin/provisioning/qtci-osx-10.11-x86_64/05-systemsetup.sh b/coin/provisioning/qtci-macos-10.13-x86_64/05-systemsetup.sh index 4a631b4f..4737b8e9 100755 --- a/coin/provisioning/qtci-osx-10.11-x86_64/05-systemsetup.sh +++ b/coin/provisioning/qtci-macos-10.13-x86_64/05-systemsetup.sh @@ -2,7 +2,7 @@ ############################################################################# ## -## Copyright (C) 2017 The Qt Company Ltd. +## Copyright (C) 2018 The Qt Company Ltd. ## Contact: http://www.qt.io/licensing/ ## ## This file is part of the provisioning scripts of the Qt Toolkit. @@ -33,10 +33,10 @@ ## ############################################################################# -# This script modified system settings for automated use - set -ex +# This script modified system settings for automated use + VNCPassword=qt NTS_IP=10.212.2.216 @@ -87,4 +87,3 @@ sudo /System/Library/CoreServices/RemoteManagement/ARDAgent.app/Contents/Resourc 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 - diff --git a/coin/provisioning/qtci-osx-10.11-x86_64/01-crashreporter.sh b/coin/provisioning/qtci-macos-10.13-x86_64/06-crashreporter.sh index 8461c656..8461c656 100755 --- a/coin/provisioning/qtci-osx-10.11-x86_64/01-crashreporter.sh +++ b/coin/provisioning/qtci-macos-10.13-x86_64/06-crashreporter.sh diff --git a/coin/provisioning/qtci-macos-10.13-x86_64/06-disable_spotlight.sh b/coin/provisioning/qtci-macos-10.13-x86_64/06-disable_spotlight.sh new file mode 100755 index 00000000..d991e6c0 --- /dev/null +++ b/coin/provisioning/qtci-macos-10.13-x86_64/06-disable_spotlight.sh @@ -0,0 +1,2 @@ +#!/usr/bin/env bash +$(dirname "$0")/../common/macos/disable_spotlight.sh diff --git a/coin/provisioning/qtci-osx-10.10-x86_64/06-disable_update_downloads.sh b/coin/provisioning/qtci-macos-10.13-x86_64/06-disable_update_downloads.sh index 3c11214d..3c11214d 100755 --- a/coin/provisioning/qtci-osx-10.10-x86_64/06-disable_update_downloads.sh +++ b/coin/provisioning/qtci-macos-10.13-x86_64/06-disable_update_downloads.sh diff --git a/coin/provisioning/qtci-osx-10.11-x86_64/07-SSL_keychain.sh b/coin/provisioning/qtci-macos-10.13-x86_64/07-SSL_keychain.sh index 610f7a8e..6e7c796a 100755 --- a/coin/provisioning/qtci-osx-10.11-x86_64/07-SSL_keychain.sh +++ b/coin/provisioning/qtci-macos-10.13-x86_64/07-SSL_keychain.sh @@ -1,4 +1,4 @@ -#!/usr/bin/env bash +#!/usr/bin/env sh set -ex @@ -7,4 +7,3 @@ source "${BASH_SOURCE%/*}/../common/unix/SetEnvVar.sh" # Enables the usage of temporary keychains for SSL autotests SetEnvVar "QT_SSL_USE_TEMPORARY_KEYCHAIN" "1" - diff --git a/coin/provisioning/qtci-osx-10.11-x86_64/15-xz.sh b/coin/provisioning/qtci-macos-10.13-x86_64/15-xz.sh index 13b05040..06437ee1 100755 --- a/coin/provisioning/qtci-osx-10.11-x86_64/15-xz.sh +++ b/coin/provisioning/qtci-macos-10.13-x86_64/15-xz.sh @@ -2,7 +2,7 @@ ############################################################################# ## -## Copyright (C) 2017 The Qt Company Ltd. +## Copyright (C) 2018 The Qt Company Ltd. ## Contact: http://www.qt.io/licensing/ ## ## This file is part of the provisioning scripts of the Qt Toolkit. @@ -39,10 +39,10 @@ set -ex -# shellcheck source=../common/macos/InstallPKGFromURL.sh +# shellcheck source=../common/macos/InstallPKGFromURL source "${BASH_SOURCE%/*}/../common/macos/InstallPKGFromURL.sh" -PrimaryUrl="http://ci-files01-hki.intra.qt.io/input/mac/osx_10.11_el_capitan/XZ.pkg" +PrimaryUrl="http://ci-files01-hki.intra.qt.io/input/mac/macos_10.12_sierra/XZ.pkg" AltUrl="http://sourceforge.net/projects/macpkg/files/XZ/5.0.7/XZ.pkg" SHA1="f0c1f82ebcffe0bd4b8b57b6a77805db56b2de67" DestDir="/" diff --git a/coin/provisioning/qtci-osx-10.11-x86_64/30-java.sh b/coin/provisioning/qtci-macos-10.13-x86_64/20-java.sh index 8877c40b..8877c40b 100755 --- a/coin/provisioning/qtci-osx-10.11-x86_64/30-java.sh +++ b/coin/provisioning/qtci-macos-10.13-x86_64/20-java.sh diff --git a/coin/provisioning/qtci-osx-10.11-x86_64/20-xcode.sh b/coin/provisioning/qtci-macos-10.13-x86_64/20-xcode.sh index a067f637..edcb2345 100755 --- a/coin/provisioning/qtci-osx-10.11-x86_64/20-xcode.sh +++ b/coin/provisioning/qtci-macos-10.13-x86_64/20-xcode.sh @@ -2,7 +2,7 @@ ############################################################################# ## -## Copyright (C) 2017 The Qt Company Ltd. +## Copyright (C) 2018 The Qt Company Ltd. ## Contact: http://www.qt.io/licensing/ ## ## This file is part of the provisioning scripts of the Qt Toolkit. @@ -35,16 +35,19 @@ # 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' +# This can be achieved by fetching Xcode_9.xip from Apple Store. +# Uncompress it with 'xar -xf Xcode_9.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. +# This will give you five files called "Content.part<00..05>.cpio.xz". +# Extract those that have the extension .xz with xz. +# "cat" together all the content files "cat file1, file2, file3, file4, file5 >file_new" +# Compress the new file with xz back to something like Xcode_9.xz +# Upload the file to temporary storage for this script to use. set -ex # shellcheck source=../common/macos/install_xcode.sh source "${BASH_SOURCE%/*}/../common/macos/install_xcode.sh" -InstallXCode /net/ci-files01-hki.intra.qt.io/hdd/www/input/mac/Xcode_8.2.xz 8.2 +InstallXCode /net/ci-files01-hki.intra.qt.io/hdd/www/input/mac/Xcode_9.4.1.tar.gz 9.4.1 diff --git a/coin/provisioning/qtci-osx-10.11-x86_64/21-install-commandlinetools.sh b/coin/provisioning/qtci-macos-10.13-x86_64/21-install-commandlinetools.sh index cb7dcfc6..ecd1bee4 100755 --- a/coin/provisioning/qtci-osx-10.11-x86_64/21-install-commandlinetools.sh +++ b/coin/provisioning/qtci-macos-10.13-x86_64/21-install-commandlinetools.sh @@ -2,10 +2,10 @@ ############################################################################# ## -## Copyright (C) 2017 The Qt Company Ltd. +## Copyright (C) 2018 The Qt Company Ltd. ## Contact: http://www.qt.io/licensing/ ## -## This file is part of the test suite of the Qt Toolkit. +## This file is part of the provisioning scripts of the Qt Toolkit. ## ## $QT_BEGIN_LICENSE:LGPL21$ ## Commercial License Usage @@ -37,10 +37,10 @@ set -ex source "${BASH_SOURCE%/*}/../common/macos/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" +version="9.4.1" +packageName="Command_Line_Tools_macOS_10.13_for_Xcode_$version.dmg" +url="http://ci-files01-hki.intra.qt.io/input/mac/macos_10.13_high_sierra/$packageName" +sha1="efe51c11c2c99a5f1a98bbd3772dc3fa3ce78904" InstallCommandLineTools $url $url $sha1 $packageName $version diff --git a/coin/provisioning/qtci-osx-10.11-x86_64/25-cmake.sh b/coin/provisioning/qtci-macos-10.13-x86_64/25-cmake.sh index e5dd1910..e5dd1910 100755 --- a/coin/provisioning/qtci-osx-10.11-x86_64/25-cmake.sh +++ b/coin/provisioning/qtci-macos-10.13-x86_64/25-cmake.sh diff --git a/coin/provisioning/qtci-osx-10.11-x86_64/25-homebrew.sh b/coin/provisioning/qtci-macos-10.13-x86_64/25-homebrew.sh index 0ead5a58..0ead5a58 100755 --- a/coin/provisioning/qtci-osx-10.11-x86_64/25-homebrew.sh +++ b/coin/provisioning/qtci-macos-10.13-x86_64/25-homebrew.sh diff --git a/coin/provisioning/qtci-osx-10.11-x86_64/25-mysql.sh b/coin/provisioning/qtci-macos-10.13-x86_64/25-mysql.sh index 1908c79b..d873499c 100755 --- a/coin/provisioning/qtci-osx-10.11-x86_64/25-mysql.sh +++ b/coin/provisioning/qtci-macos-10.13-x86_64/25-mysql.sh @@ -2,10 +2,10 @@ ############################################################################# ## -## Copyright (C) 2016 The Qt Company Ltd. +## Copyright (C) 2018 The Qt Company Ltd. ## Contact: http://www.qt.io/licensing/ ## -## This file is part of the test suite of the Qt Toolkit. +## This file is part of the provisioning scripts of the Qt Toolkit. ## ## $QT_BEGIN_LICENSE:LGPL21$ ## Commercial License Usage @@ -44,7 +44,7 @@ source "${BASH_SOURCE%/*}/../common/macos/InstallAppFromCompressedFileFromURL.sh # shellcheck source=../common/unix/SetEnvVar.sh source "${BASH_SOURCE%/*}/../common/unix/SetEnvVar.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" +PrimaryUrl="http://ci-files01-hki.intra.qt.io/input/mac/macos_10.12_sierra/mysql-5.7.15-osx10.11-x86_64.tar.gz" AltUrl="https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.15-osx10.11-x86_64.tar.gz" SHA1="07949bd42f350b0504a1536b8830b809b4a34fca" appPrefix="" @@ -55,6 +55,4 @@ sudo mkdir -p "/opt" InstallAppFromCompressedFileFromURL "$PrimaryUrl" "$AltUrl" "$SHA1" "$appPrefix" "$targetDir" SetEnvVar "MYSQLBINPATH" "/opt/mysql57/bin" - echo "MySQL = 5.7.15" >> ~/versions.txt - diff --git a/coin/provisioning/qtci-macos-10.13-x86_64/25-pip.sh b/coin/provisioning/qtci-macos-10.13-x86_64/25-pip.sh new file mode 100755 index 00000000..69c6b318 --- /dev/null +++ b/coin/provisioning/qtci-macos-10.13-x86_64/25-pip.sh @@ -0,0 +1,6 @@ +#!/usr/bin/env bash + +set -ex + +BASEDIR=$(dirname "$0") +$BASEDIR/../common/macos/pip.sh diff --git a/coin/provisioning/qtci-osx-10.11-x86_64/25-postgresql.sh b/coin/provisioning/qtci-macos-10.13-x86_64/25-postgresql.sh index 7fedb4a2..e59f0f03 100755 --- a/coin/provisioning/qtci-osx-10.11-x86_64/25-postgresql.sh +++ b/coin/provisioning/qtci-macos-10.13-x86_64/25-postgresql.sh @@ -2,7 +2,7 @@ ############################################################################# ## -## Copyright (C) 2017 The Qt Company Ltd. +## Copyright (C) 2018 The Qt Company Ltd. ## Contact: http://www.qt.io/licensing/ ## ## This file is part of the provisioning scripts of the Qt Toolkit. @@ -44,14 +44,14 @@ source "${BASH_SOURCE%/*}/../common/macos/InstallAppFromCompressedFileFromURL.sh # shellcheck source=../common/unix/SetEnvVar.sh source "${BASH_SOURCE%/*}/../common/unix/SetEnvVar.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" +psqlVersion="9.6.0" + +PrimaryUrl="http://ci-files01-hki.intra.qt.io/input/mac/macos_10.12_sierra/Postgres-$psqlVersion.zip" +AltUrl="https://github.com/PostgresApp/PostgresApp/releases/download/$psqlVersion/Postgres-$psqlVersion.zip" SHA1="5078e44663787006ca55fa3b5e2be598bed82eb5" appPrefix="" InstallAppFromCompressedFileFromURL "$PrimaryUrl" "$AltUrl" "$SHA1" "$appPrefix" SetEnvVar "POSTGRESQLBINPATH" "/Applications/Postgres.app/Contents/Versions/9.6/bin" - -echo "PostgreSQL = 9.6.0" >> ~/versions.txt - +echo "PostgreSQL = $psqlVersion" >> ~/versions.txt diff --git a/coin/provisioning/qtci-osx-10.10-x86_64/25-python2.sh b/coin/provisioning/qtci-macos-10.13-x86_64/25-python2.sh index ef65edad..ef65edad 100755 --- a/coin/provisioning/qtci-osx-10.10-x86_64/25-python2.sh +++ b/coin/provisioning/qtci-macos-10.13-x86_64/25-python2.sh diff --git a/coin/provisioning/qtci-osx-10.11-x86_64/25-python3.sh b/coin/provisioning/qtci-macos-10.13-x86_64/25-python3.sh index 92b05bf3..92b05bf3 100755 --- a/coin/provisioning/qtci-osx-10.11-x86_64/25-python3.sh +++ b/coin/provisioning/qtci-macos-10.13-x86_64/25-python3.sh diff --git a/coin/provisioning/qtci-osx-10.11-x86_64/26-p7zip.sh b/coin/provisioning/qtci-macos-10.13-x86_64/26-p7zip.sh index 15511332..15511332 100755 --- a/coin/provisioning/qtci-osx-10.11-x86_64/26-p7zip.sh +++ b/coin/provisioning/qtci-macos-10.13-x86_64/26-p7zip.sh diff --git a/coin/provisioning/qtci-macos-10.13-x86_64/26-virtualenv.sh b/coin/provisioning/qtci-macos-10.13-x86_64/26-virtualenv.sh new file mode 100755 index 00000000..a35d26ca --- /dev/null +++ b/coin/provisioning/qtci-macos-10.13-x86_64/26-virtualenv.sh @@ -0,0 +1,6 @@ +#!/usr/bin/env bash + +set -ex + +BASEDIR=$(dirname "$0") +$BASEDIR/../common/macos/virtualenv.sh diff --git a/coin/provisioning/qtci-macos-10.13-x86_64/27-libclang.sh b/coin/provisioning/qtci-macos-10.13-x86_64/27-libclang.sh new file mode 100755 index 00000000..fea11e01 --- /dev/null +++ b/coin/provisioning/qtci-macos-10.13-x86_64/27-libclang.sh @@ -0,0 +1,7 @@ +#!/usr/bin/env bash + +set -ex + +BASEDIR=$(dirname "$0") +# There is only one mac package and common script uses it as a default +$BASEDIR/../common/unix/libclang.sh diff --git a/coin/provisioning/qtci-macos-10.12-x86_64/30-android.sh b/coin/provisioning/qtci-macos-10.13-x86_64/30-android.sh index d206369c..a86387bb 100755 --- a/coin/provisioning/qtci-macos-10.12-x86_64/30-android.sh +++ b/coin/provisioning/qtci-macos-10.13-x86_64/30-android.sh @@ -2,7 +2,7 @@ ############################################################################# ## -## Copyright (C) 2017 The Qt Company Ltd. +## Copyright (C) 2018 The Qt Company Ltd. ## Contact: http://www.qt.io/licensing/ ## ## This file is part of the provisioning scripts of the Qt Toolkit. @@ -49,13 +49,13 @@ basePath="/net/ci-files01-hki.intra.qt.io/hdd/www/input/android" toolsVersion="r25.2.5" toolsFile="tools_$toolsVersion-macosx.zip" -ndkVersion="r10e" +ndkVersion="r16b" ndkFile="android-ndk-$ndkVersion-darwin-x86_64.zip" sdkBuildToolsVersion="25.0.2" sdkApiLevel="android-21" toolsSha1="d2168d963ac5b616e3d3ddaf21511d084baf3659" -ndkSha1="6be8598e4ed3d9dd42998c8cb666f0ee502b1294" +ndkSha1="e51e615449b98c716cf912057e2682e75d55e2de" toolsTargetFile="/tmp/$toolsFile" toolsSourceFile="$basePath/$toolsFile" diff --git a/coin/provisioning/qtci-macos-10.13-x86_64/30-fbx.sh b/coin/provisioning/qtci-macos-10.13-x86_64/30-fbx.sh new file mode 100755 index 00000000..9ce5d9ff --- /dev/null +++ b/coin/provisioning/qtci-macos-10.13-x86_64/30-fbx.sh @@ -0,0 +1,7 @@ +#!/usr/bin/env bash + +set -ex + +BASEDIR=$(dirname "$0") +$BASEDIR/../common/macos/fbx_macos.sh + diff --git a/coin/provisioning/qtci-macos-10.13-x86_64/35-openssl.sh b/coin/provisioning/qtci-macos-10.13-x86_64/35-openssl.sh new file mode 100755 index 00000000..606a9c12 --- /dev/null +++ b/coin/provisioning/qtci-macos-10.13-x86_64/35-openssl.sh @@ -0,0 +1,76 @@ +#!/usr/bin/env bash + +############################################################################# +## +## Copyright (C) 2018 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 + +set -ex + +# shellcheck source=../common/unix/InstallFromCompressedFileFromURL.sh +source "${BASH_SOURCE%/*}/../common/unix/InstallFromCompressedFileFromURL.sh" +# shellcheck source=../common/unix/SetEnvVar.sh +source "${BASH_SOURCE%/*}/../common/unix/SetEnvVar.sh" + +opensslVersion="1.0.2o" +opensslFile="openssl-$opensslVersion.tar.gz" +opensslDlUrl="http://ci-files01-hki.intra.qt.io/input/openssl/$opensslFile" +opensslAltDlUrl="https://www.openssl.org/source/$opensslFile" +opensslSha1="a47faaca57b47a0d9d5fb085545857cc92062691" + +# Below target location has been hard coded into Coin. +# QTQAINFRA-1195 +opensslTargetLocation="/usr/local/opt/openssl" + +InstallFromCompressedFileFromURL "$opensslDlUrl" "$opensslAltDlUrl" "$opensslSha1" "/tmp/openssl-$opensslVersion" "openssl-$opensslVersion" +cd "/tmp/openssl-$opensslVersion" +pwd +sudo ./config --prefix=/usr/local/openssl-$opensslVersion +echo "Running 'make' for OpenSSL" +sudo make --silent > /tmp/openssl_make.log 2>&1 +echo "Running 'make install' for OpenSSL" +sudo make --silent install > /tmp/openssl_make_install.log 2>&1 + +path=$(echo "$opensslTargetLocation" | sed -E 's/(.*)\/.*$/\1/') +sudo mkdir -p "$path" +sudo ln -s /usr/local/openssl-$opensslVersion $opensslTargetLocation + +SetEnvVar "PATH" "\"$opensslTargetLocation/bin:\$PATH\"" +SetEnvVar "MANPATH" "\"$opensslTargetLocation/share/man:\$MANPATH\"" + +security find-certificate -a -p /Library/Keychains/System.keychain | sudo tee -a $opensslTargetLocation/ssl/cert.pem +security find-certificate -a -p /System/Library/Keychains/SystemRootCertificates.keychain | sudo tee -a $opensslTargetLocation/ssl/cert.pem + +sudo rm -rf /tmp/openssl-$opensslVersion + +echo "OpenSSL = $opensslVersion" >> ~/versions.txt diff --git a/coin/provisioning/qtci-linux-RHEL-6.6-x86_64/03-install-rhel-epel.sh b/coin/provisioning/qtci-macos-10.13-x86_64/40-qnx700.sh index 21a45506..a5547972 100755 --- a/coin/provisioning/qtci-linux-RHEL-6.6-x86_64/03-install-rhel-epel.sh +++ b/coin/provisioning/qtci-macos-10.13-x86_64/40-qnx700.sh @@ -1,4 +1,4 @@ -#!/usr/bin/env bash +#!/bin/bash ############################################################################# ## @@ -33,17 +33,25 @@ ## ############################################################################# -# shellcheck source=../common/unix/DownloadURL.sh -source "${BASH_SOURCE%/*}/../common/unix/DownloadURL.sh" +# This script installs QNX 7. -package="epel-release-6-8.noarch.rpm" -primaryUrl="https://dl.fedoraproject.org/pub/epel/6/x86_64/Packages/e/$package" -cacheUrl="http://ci-files01-hki.intra.qt.io/input/rhel6/$package" -sha1="2b2767a5ae0de30b9c7b840f2e34f5dd9deaf19a" -targetFile="/tmp/$package" +targetFolder="/opt/" +sourceFile="/net/ci-files01-hki.intra.qt.io/hdd/www/input/qnx/qnx700_mac.zip" +folderName="qnx700" -DownloadURL "$primaryUrl" "$cacheUrl" "$sha1" "$targetFile" +sudo mkdir -p "$targetFolder" -sudo rpm -ivh "$targetFile" -rm "$targetFile" +echo "Extracting QNX 7" +sudo unzip -q "$sourceFile" -d "$targetFolder" + +sudo chown -R qt:wheel "$targetFolder"/"$folderName" + +# Verify that we have last file in zip +if [ ! -f $targetFolder/$folderName/qnxsdp-env.sh ]; then + exit 1 +fi + +# Set env variables +echo "export QNX_700=$targetFolder/$folderName" >> ~/.bashrc +echo "QNX SDP = 7.0.0" >> ~/versions.txt diff --git a/coin/provisioning/qtci-macos-10.13-x86_64/55-signtools.sh b/coin/provisioning/qtci-macos-10.13-x86_64/55-signtools.sh new file mode 100755 index 00000000..0b9bbb00 --- /dev/null +++ b/coin/provisioning/qtci-macos-10.13-x86_64/55-signtools.sh @@ -0,0 +1,138 @@ +#!/usr/bin/env sh + +############################################################################# +## +## Copyright (C) 2018 The Qt Company Ltd. +## Contact: http://www.qt.io/licensing/ +## +## This file is part of the provisioning scripts of the Qt Toolkit. +## +## $QT_BEGIN_LICENSE:LGPL21$ +## Commercial License Usage +## Licensees holding valid commercial Qt licenses may use this file in +## accordance with the commercial license agreement provided with the +## Software or, alternatively, in accordance with the terms contained in +## a written agreement between you and The Qt Company. For licensing terms +## and conditions see http://www.qt.io/terms-conditions. For further +## information use the contact form at http://www.qt.io/contact-us. +## +## GNU Lesser General Public License Usage +## Alternatively, this file may be used under the terms of the GNU Lesser +## General Public License version 2.1 or version 3 as published by the Free +## Software Foundation and appearing in the file LICENSE.LGPLv21 and +## LICENSE.LGPLv3 included in the packaging of this file. Please review the +## following information to ensure the GNU Lesser General Public License +## requirements will be met: https://www.gnu.org/licenses/lgpl.html and +## http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +## +## As a special exception, The Qt Company gives you certain additional +## rights. These rights are described in The Qt Company LGPL Exception +## version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +## +## $QT_END_LICENSE$ +## +############################################################################# + +# Install tools for singing packages +# This script assume that OS is vanilla. Target machine dosen't have any signing certificates installed. + +set -ex + +cache="http://ci-files01-hki.intra.qt.io/input" +cacheSigningTools="$cache/mac/sign_tools" +targetFolder="/Users/qt" +keychains="$targetFolder/Library/Keychains" + +Install() { + + url=$1 + targetFile=$2 + expectedSha1=$3 + + echo "Fetching $targetFile from $url..." + curl --retry 5 --retry-delay 10 --retry-max-time 60 "$url" -o "$targetFile" + shasum "$targetFile" |grep "$expectedSha1" + +} + +# qt-license +sha1QtLicense="9d59241d16f68d914f1c7aa1dc23e05faa169e8d" +Install "$cache/semisecure/.qt-license" "$targetFolder/.qt-license" $sha1QtLicense + +# Login keychain +sha1LoginKeychainPassword="aae58d00d0a1b179a09f21cfc67f9d16fb95ff36" +Install "$cacheSigningTools/login_keychain_password.txt" "$targetFolder/login_keychain_password.txt" "$sha1LoginKeychainPassword" +loginKeychainPassword=$(<"$targetFolder/login_keychain_password.txt") +loginKeychain=$keychains/login.keychain + +echo "Setting login.keychain as default keychain.." +security default-keychain -s $loginKeychain* +echo "Unlocking Login keychain with password.." +security unlock-keychain -p "$loginKeychainPassword" $loginKeychain* + +echo "remove the "Lock after X minutes of inactivity" from login.keychain" +security set-keychain-settings $loginKeychain + +# Apple Worldwide Developer Relations Certification Authority -> https://developer.apple.com/certificationauthority/AppleWWDRCA.cer +sha1AppleWWDRCA="ff6797793a3cd798dc5b2abef56f73edc9f83a64" +Install "$cacheSigningTools/AppleWWDRCA.cer" "$targetFolder/AppleWWDRCA.cer" $sha1AppleWWDRCA +sudo security add-certificates -k $loginKeychain* "$targetFolder/AppleWWDRCA.cer" + +# Developer ID Certification Authority -> https://www.apple.com/certificateauthority/DeveloperIDCA.cer +sha1DeveloperIDCA="3b166c3b7dc4b751c9fe2afab9135641e388e186" +Install "$cacheSigningTools/DeveloperIDCA.cer" "$targetFolder/DeveloperIDCA.cer" $sha1DeveloperIDCA +sudo security add-certificates -k $loginKeychain* "$targetFolder/DeveloperIDCA.cer" + +# Create script to unlock keychain 'security unlock-keychain -p 'password' Developer_ID_TheQtCompany.keychain' +sha1UnLockKeychain="4398870e3f558ad28c80566b5f70e24dc29ea724" +unlockKeychain=$targetFolder/unlock-keychain.sh +Install "$cacheSigningTools/unlock-keychain.sh" "$unlockKeychain" $sha1UnLockKeychain +sudo chmod 755 "$unlockKeychain" + +# Codesigning requirements file. The bundle identifier in the requirements file should match the identifier of the application that is signed. +shaCsreq="2c3f00b1845a0f475673fd6934ba25ea51d1f910" +csreq=$targetFolder/csreq_qt_company.txt +Install "$cacheSigningTools/csreq_qt_company.txt" "$csreq" $shaCsreq +chmod 755 "$csreq" + +# iOS signing tools +devIDKeychain="Developer_ID_TheQtCompany.keychain" +shaDevIdKeychain="0420a129c17725a97afd6fdafeb9cddfb80a65ca" +Install "$cacheSigningTools/$devIDKeychain" "$keychains/$devIDKeychain" $shaDevIdKeychain +echo "Opening $devIDKeychain.." +open "$keychains/$devIDKeychain" + +sha1DeveloperIDTheQtCompanyKeychainPassword="d758e067736bbda7a91ffaec66cd38afdaf68ea6" +Install "$cacheSigningTools/Developer_ID_TheQtCompany_keychain_password.txt" "$targetFolder/Developer_ID_TheQtCompany_keychain_password.txt" "$sha1DeveloperIDTheQtCompanyKeychainPassword" +DeveloperIDTheQtCompanyKeychainPassword=$(<"$targetFolder/Developer_ID_TheQtCompany_keychain_password.txt") + +echo "Unlocking $devIDKeychain with password.." +security unlock-keychain -p "$DeveloperIDTheQtCompanyKeychainPassword" $keychains/Developer_ID_TheQtCompany.keychain +security set-keychain-settings $keychains/Developer_ID_TheQtCompany.keychain + +sha1Ios="aae58d00d0a1b179a09f21cfc67f9d16fb95ff36" +Install "$cacheSigningTools/ios_password.txt" "$targetFolder/ios_password.txt" $sha1Ios +iosPassword=$(<"$targetFolder/ios_password.txt") + +iPhoneDeveloper="iosdevelopment.p12" +shaIPhoneDeveloper="f48f6827e8d0ccdc764cb987e401b9a6f7d3f10c" +Install "$cacheSigningTools/latest_ios_cert/$iPhoneDeveloper" "$targetFolder/$iPhoneDeveloper" $shaIPhoneDeveloper +echo "Importing $iPhoneDeveloper.." +security import $targetFolder/$iPhoneDeveloper -k $loginKeychain* -P $iosPassword -T /usr/bin/codesign + +iPhoneDistribution="iosdistribution.p12" +shaIPhoneDistribution="64b1174fc3ce0eca044fbc9fa144f6a2d4330171" +Install "$cacheSigningTools/latest_ios_cert/$iPhoneDistribution" "$targetFolder/$iPhoneDistribution" $shaIPhoneDistribution +echo "Importing $iPhoneDistribution.." +security import "$targetFolder/$iPhoneDistribution" -k $loginKeychain* -P $iosPassword -T /usr/bin/codesign + +# Mobileprovision +echo "Creating directory $targetFolder/Library/MobileDevice/Provisioning Profiles.." +mkdir "$targetFolder/Library/MobileDevice" +mkdir "$targetFolder/Library/MobileDevice/Provisioning Profiles" +shaMobileprovision="88c67c95a6f59e6463a00da0b5021f581db624bf" +Install "$cacheSigningTools/latest_ios_cert/iOS_Dev08112017.mobileprovision" "$targetFolder/Library/MobileDevice/Provisioning Profiles/iOS_Dev08112017.mobileprovision" $shaMobileprovision + +# Removing password files +rm -fr "$targetFolder/login_keychain_password.txt" + diff --git a/coin/provisioning/qtci-osx-10.11-x86_64/90-squish.sh b/coin/provisioning/qtci-macos-10.13-x86_64/90-squish.sh index 27ff15c3..27ff15c3 100755 --- a/coin/provisioning/qtci-osx-10.11-x86_64/90-squish.sh +++ b/coin/provisioning/qtci-macos-10.13-x86_64/90-squish.sh diff --git a/coin/provisioning/qtci-osx-10.10-x86_64/01-sha1sum-compatibility.sh b/coin/provisioning/qtci-osx-10.10-x86_64/01-sha1sum-compatibility.sh deleted file mode 120000 index 58a40af4..00000000 --- a/coin/provisioning/qtci-osx-10.10-x86_64/01-sha1sum-compatibility.sh +++ /dev/null @@ -1 +0,0 @@ -../common/macos/sha1sum-compatibility.sh
\ No newline at end of file diff --git a/coin/provisioning/qtci-osx-10.11-x86_64/01-sha1sum-compatibility.sh b/coin/provisioning/qtci-osx-10.11-x86_64/01-sha1sum-compatibility.sh deleted file mode 120000 index 58a40af4..00000000 --- a/coin/provisioning/qtci-osx-10.11-x86_64/01-sha1sum-compatibility.sh +++ /dev/null @@ -1 +0,0 @@ -../common/macos/sha1sum-compatibility.sh
\ No newline at end of file diff --git a/coin/provisioning/qtci-osx-10.11-x86_64/06-disable_update_downloads.sh b/coin/provisioning/qtci-osx-10.11-x86_64/06-disable_update_downloads.sh deleted file mode 100755 index 3c11214d..00000000 --- a/coin/provisioning/qtci-osx-10.11-x86_64/06-disable_update_downloads.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/usr/bin/env bash -set -ex -BASEDIR=$(dirname "$0") -"$BASEDIR"/../common/macos/disable_update_downloads.sh diff --git a/coin/provisioning/qtci-osx-10.11-x86_64/25-python2.sh b/coin/provisioning/qtci-osx-10.11-x86_64/25-python2.sh deleted file mode 100755 index ef65edad..00000000 --- a/coin/provisioning/qtci-osx-10.11-x86_64/25-python2.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/usr/bin/env bash -set -ex - -source "${BASH_SOURCE%/*}/../common/macos/python2.sh" diff --git a/coin/provisioning/qtci-osx-10.11-x86_64/27-libclang.sh b/coin/provisioning/qtci-osx-10.11-x86_64/27-libclang.sh deleted file mode 100755 index 91872201..00000000 --- a/coin/provisioning/qtci-osx-10.11-x86_64/27-libclang.sh +++ /dev/null @@ -1,8 +0,0 @@ -#!/usr/bin/env bash - -set -ex - -BASEDIR=$(dirname "$0") -# There is only one mac package -# shellcheck source=../common/unix/libclang.sh -"$BASEDIR/../common/unix/libclang.sh" diff --git a/coin/provisioning/qtci-windows-10-x86/90-vclibs_debug.ps1 b/coin/provisioning/qtci-windows-10-x86/90-vclibs_debug.ps1 new file mode 100644 index 00000000..56ecb97b --- /dev/null +++ b/coin/provisioning/qtci-windows-10-x86/90-vclibs_debug.ps1 @@ -0,0 +1,3 @@ +. "$PSScriptRoot\..\common\windows\vclibs_debug.ps1" + +Install-VCLibsDebug X86 diff --git a/coin/provisioning/qtci-windows-10-x86_64/01-remove-ms-zune.ps1 b/coin/provisioning/qtci-windows-10-x86_64/01-remove-ms-zune.ps1 new file mode 100644 index 00000000..6a398725 --- /dev/null +++ b/coin/provisioning/qtci-windows-10-x86_64/01-remove-ms-zune.ps1 @@ -0,0 +1,2 @@ +Remove-AppxPackage Microsoft.ZuneVideo_10.17092.13511.0_x64__8wekyb3d8bbwe +Remove-AppxPackage Microsoft.ZuneMusic_10.17083.18321.0_x64__8wekyb3d8bbwe diff --git a/coin/provisioning/qtci-windows-10-x86_64/79-opcua_unifiedautomation.ps1 b/coin/provisioning/qtci-windows-10-x86_64/79-opcua_unifiedautomation.ps1 new file mode 100644 index 00000000..e7f14459 --- /dev/null +++ b/coin/provisioning/qtci-windows-10-x86_64/79-opcua_unifiedautomation.ps1 @@ -0,0 +1 @@ +. "$PSScriptRoot\..\common\windows\opcua_unifiedautomation.ps1" diff --git a/coin/provisioning/qtci-windows-10-x86_64/79-open62541.ps1 b/coin/provisioning/qtci-windows-10-x86_64/79-open62541.ps1 new file mode 100644 index 00000000..9b532392 --- /dev/null +++ b/coin/provisioning/qtci-windows-10-x86_64/79-open62541.ps1 @@ -0,0 +1 @@ +. "$PSScriptRoot\..\common\windows\open62541.ps1" diff --git a/coin/provisioning/qtci-windows-10-x86_64/90-signing-tools.ps1 b/coin/provisioning/qtci-windows-10-x86_64/90-signing-tools.ps1 index daaab36f..2ad25685 100644 --- a/coin/provisioning/qtci-windows-10-x86_64/90-signing-tools.ps1 +++ b/coin/provisioning/qtci-windows-10-x86_64/90-signing-tools.ps1 @@ -4,7 +4,7 @@ ## Copyright (C) 2017 Pelagicore AG ## Contact: http://www.qt.io/licensing/ ## -## This file is part of the test suite of the Qt Toolkit. +## This file is part of the provisioning scripts of the Qt Toolkit. ## ## $QT_BEGIN_LICENSE:LGPL21$ ## Commercial License Usage diff --git a/coin/provisioning/qtci-windows-10-x86_64/90-vclibs_debug.ps1 b/coin/provisioning/qtci-windows-10-x86_64/90-vclibs_debug.ps1 new file mode 100644 index 00000000..49148017 --- /dev/null +++ b/coin/provisioning/qtci-windows-10-x86_64/90-vclibs_debug.ps1 @@ -0,0 +1,3 @@ +. "$PSScriptRoot\..\common\windows\vclibs_debug.ps1" + +Install-VCLibsDebug X64 diff --git a/coin/provisioning/qtci-windows-7-x86/09-install-mingw530.ps1 b/coin/provisioning/qtci-windows-7-x86/09-install-mingw530.ps1 deleted file mode 100644 index 684816f0..00000000 --- a/coin/provisioning/qtci-windows-7-x86/09-install-mingw530.ps1 +++ /dev/null @@ -1,10 +0,0 @@ -. "$PSScriptRoot\..\common\windows\install-mingw.ps1" - -# This script will install MinGW 5.3.0 - -$release = "i686-5.3.0-release-posix-dwarf-rt_v4-rev0" -$sha1 = "D4F21D25F3454F8EFDADA50E5AD799A0A9E07C6A" - -InstallMinGW $release $sha1 - - diff --git a/coin/provisioning/qtci-windows-7-x86/09-install-mingw730.ps1 b/coin/provisioning/qtci-windows-7-x86/09-install-mingw730.ps1 new file mode 100644 index 00000000..c893926e --- /dev/null +++ b/coin/provisioning/qtci-windows-7-x86/09-install-mingw730.ps1 @@ -0,0 +1,10 @@ +. "$PSScriptRoot\..\common\windows\install-mingw.ps1" + +# This script will install MinGW 7.3.0 + +$release = "i686-7.3.0-release-posix-dwarf-rt_v5-rev0" +$sha1 = "96e11c754b379c093e1cb3133f71db5b9f3e0532" + +InstallMinGW $release $sha1 + + diff --git a/coin/provisioning/qtci-windows-7-x86/79-open62541.ps1 b/coin/provisioning/qtci-windows-7-x86/79-open62541.ps1 new file mode 100644 index 00000000..85bfb98c --- /dev/null +++ b/coin/provisioning/qtci-windows-7-x86/79-open62541.ps1 @@ -0,0 +1,2 @@ +. "$PSScriptRoot\..\common\windows\open62541.ps1" -targetCommand prepare +. "$PSScriptRoot\..\common\windows\open62541.ps1" -targetCommand mingw730 |