diff options
67 files changed, 255 insertions, 79 deletions
diff --git a/.gitmodules b/.gitmodules index 2f6addc7..b3c46af7 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,60 +1,60 @@ [submodule "qtbase"] path = qtbase url = ../qtbase.git - branch = 5.13 + branch = dev status = essential [submodule "qtsvg"] depends = qtbase path = qtsvg url = ../qtsvg.git - branch = 5.13 + branch = dev status = addon [submodule "qtdeclarative"] depends = qtbase recommends = qtsvg path = qtdeclarative url = ../qtdeclarative.git - branch = 5.13 + branch = dev status = essential [submodule "qtactiveqt"] depends = qtbase path = qtactiveqt url = ../qtactiveqt.git - branch = 5.13 + branch = dev status = addon [submodule "qtscript"] depends = qtbase recommends = qttools path = qtscript url = ../qtscript.git - branch = 5.13 + branch = dev status = deprecated [submodule "qtmultimedia"] depends = qtbase recommends = qtdeclarative path = qtmultimedia url = ../qtmultimedia.git - branch = 5.13 + branch = dev status = essential [submodule "qttools"] depends = qtbase recommends = qtdeclarative qtactiveqt path = qttools url = ../qttools.git - branch = 5.13 + branch = dev status = essential [submodule "qtxmlpatterns"] depends = qtbase recommends = qtdeclarative path = qtxmlpatterns url = ../qtxmlpatterns.git - branch = 5.13 + branch = dev status = deprecated [submodule "qttranslations"] depends = qttools path = qttranslations url = ../qttranslations.git - branch = 5.13 + branch = dev status = essential priority = 30 [submodule "qtdoc"] @@ -62,7 +62,7 @@ recommends = qtmultimedia qtquickcontrols qtquickcontrols2 path = qtdoc url = ../qtdoc.git - branch = 5.13 + branch = dev status = essential priority = 40 [submodule "qtrepotools"] @@ -83,14 +83,14 @@ recommends = qtdeclarative qtquickcontrols qtquickcontrols2 qtserialport path = qtlocation url = ../qtlocation.git - branch = 5.13 + branch = dev status = addon [submodule "qtsensors"] depends = qtbase recommends = qtdeclarative path = qtsensors url = ../qtsensors.git - branch = 5.13 + branch = dev status = addon [submodule "qtsystems"] depends = qtbase @@ -123,99 +123,99 @@ recommends = qtdeclarative qtandroidextras path = qtconnectivity url = ../qtconnectivity.git - branch = 5.13 + branch = dev status = addon [submodule "qtwayland"] depends = qtbase recommends = qtdeclarative path = qtwayland url = ../qtwayland.git - branch = 5.13 + branch = dev status = addon [submodule "qt3d"] depends = qtbase recommends = qtdeclarative qtimageformats qtgamepad path = qt3d url = ../qt3d.git - branch = 5.13 + branch = dev status = addon [submodule "qtimageformats"] depends = qtbase path = qtimageformats url = ../qtimageformats.git - branch = 5.13 + branch = dev status = addon [submodule "qtgraphicaleffects"] depends = qtdeclarative path = qtgraphicaleffects url = ../qtgraphicaleffects.git - branch = 5.13 + branch = dev status = addon [submodule "qtquickcontrols"] depends = qtdeclarative recommends = qtgraphicaleffects path = qtquickcontrols url = ../qtquickcontrols.git - branch = 5.13 + branch = dev status = addon [submodule "qtserialbus"] depends = qtbase recommends = qtserialport path = qtserialbus url = ../qtserialbus.git - branch = 5.13 + branch = dev status = addon [submodule "qtserialport"] depends = qtbase path = qtserialport url = ../qtserialport.git - branch = 5.13 + branch = dev status = addon [submodule "qtx11extras"] depends = qtbase path = qtx11extras url = ../qtx11extras.git - branch = 5.13 + branch = dev status = addon [submodule "qtmacextras"] depends = qtbase path = qtmacextras url = ../qtmacextras.git - branch = 5.13 + branch = dev status = addon [submodule "qtwinextras"] depends = qtbase recommends = qtdeclarative qtmultimedia path = qtwinextras url = ../qtwinextras.git - branch = 5.13 + branch = dev status = addon [submodule "qtandroidextras"] depends = qtbase path = qtandroidextras url = ../qtandroidextras.git - branch = 5.13 + branch = dev status = addon [submodule "qtwebsockets"] depends = qtbase recommends = qtdeclarative path = qtwebsockets url = ../qtwebsockets.git - branch = 5.13 + branch = dev status = addon [submodule "qtwebchannel"] depends = qtbase recommends = qtdeclarative qtwebsockets path = qtwebchannel url = ../qtwebchannel.git - branch = 5.13 + branch = dev status = addon [submodule "qtwebengine"] depends = qtdeclarative recommends = qtquickcontrols qtquickcontrols2 qtlocation qtwebchannel qttools path = qtwebengine url = ../qtwebengine.git - branch = 5.13 + branch = dev status = addon priority = 10 [submodule "qtcanvas3d"] @@ -229,86 +229,92 @@ recommends = qtwebengine path = qtwebview url = ../qtwebview.git - branch = 5.13 + branch = dev status = addon [submodule "qtquickcontrols2"] depends = qtgraphicaleffects recommends = qtimageformats path = qtquickcontrols2 url = ../qtquickcontrols2.git - branch = 5.13 + branch = dev status = essential [submodule "qtpurchasing"] depends = qtbase recommends = qtdeclarative qtandroidextras path = qtpurchasing url = ../qtpurchasing.git - branch = 5.13 + branch = dev status = addon [submodule "qtcharts"] depends = qtbase recommends = qtdeclarative qtmultimedia path = qtcharts url = ../qtcharts.git - branch = 5.13 + branch = dev status = addon [submodule "qtdatavis3d"] depends = qtbase recommends = qtdeclarative qtmultimedia path = qtdatavis3d url = ../qtdatavis3d.git - branch = 5.13 + branch = dev status = addon [submodule "qtvirtualkeyboard"] depends = qtbase qtdeclarative qtsvg recommends = qtmultimedia qtquickcontrols path = qtvirtualkeyboard url = ../qtvirtualkeyboard.git - branch = 5.13 + branch = dev status = addon [submodule "qtgamepad"] depends = qtbase recommends = qtdeclarative path = qtgamepad url = ../qtgamepad.git - branch = 5.13 + branch = dev status = addon [submodule "qtscxml"] depends = qtbase qtdeclarative path = qtscxml url = ../qtscxml.git - branch = 5.13 + branch = dev status = addon [submodule "qtspeech"] depends = qtbase recommends = qtdeclarative qtmultimedia path = qtspeech url = ../qtspeech.git - branch = 5.13 + branch = dev status = addon [submodule "qtnetworkauth"] depends = qtbase path = qtnetworkauth url = ../qtnetworkauth.git - branch = 5.13 + branch = dev status = addon [submodule "qtremoteobjects"] depends = qtbase recommends = qtdeclarative path = qtremoteobjects url = ../qtremoteobjects.git - branch = 5.13 + branch = dev status = addon [submodule "qtwebglplugin"] depends = qtbase qtwebsockets recommends = qtdeclarative path = qtwebglplugin url = ../qtwebglplugin.git - branch = 5.13 + branch = dev status = addon [submodule "qtlottie"] depends = qtbase qtdeclarative path = qtlottie url = ../qtlottie.git - branch = 5.13 + branch = dev + status = preview +[submodule "qtquicktimeline"] + depends = qtbase qtdeclarative + path = qtquicktimeline + url = ../qtquicktimeline + branch = dev status = preview diff --git a/coin/platform_configs/default.yaml b/coin/platform_configs/default.yaml index c24ef38e..8de9e023 100644 --- a/coin/platform_configs/default.yaml +++ b/coin/platform_configs/default.yaml @@ -50,11 +50,6 @@ Compiler: 'GCC' Features: ['OutOfSourceBuild', 'Documentation'] Configure arguments: '-opensource -confirm-license -verbose -prefix /home/qt/work/install -developer-build -nomake tests -R . -qtlibinfix TestInfix -qtnamespace TestNamespace -openssl -I {{.Env.OPENSSL_HOME}}/include -L {{.Env.OPENSSL_HOME}}/lib' -- - Template: 'qtci-linux-Ubuntu-18.04-x86_64' - Compiler: 'GCC' - Features: ['DisableTests'] - Configure arguments: '-opensource -confirm-license -verbose -prefix /home/qt/work/install -developer-build -nomake tests -no-opengl -R . -openssl -I {{.Env.OPENSSL_HOME}}/include -L {{.Env.OPENSSL_HOME}}/lib' - Template: 'qtci-linux-openSUSE-15.0-x86_64' diff --git a/coin/platform_configs/meta-boot2qt.yaml b/coin/platform_configs/meta-boot2qt.yaml new file mode 100644 index 00000000..95cc79c4 --- /dev/null +++ b/coin/platform_configs/meta-boot2qt.yaml @@ -0,0 +1,40 @@ +- + Template: 'qtci-linux-Ubuntu-18.04-x86_64' + Compiler: 'Yocto' + Target arch: 'TARGET1' +- + Template: 'qtci-linux-Ubuntu-18.04-x86_64' + Compiler: 'Yocto' + Target arch: 'TARGET2' +- + Template: 'qtci-linux-Ubuntu-18.04-x86_64' + Compiler: 'Yocto' + Target arch: 'TARGET3' +- + Template: 'qtci-linux-Ubuntu-18.04-x86_64' + Compiler: 'Yocto' + Target arch: 'TARGET4' +- + Template: 'qtci-linux-Ubuntu-18.04-x86_64' + Compiler: 'Yocto' + Target arch: 'TARGET5' +- + Template: 'qtci-linux-Ubuntu-18.04-x86_64' + Compiler: 'Yocto' + Target arch: 'TARGET6' +- + Template: 'qtci-linux-Ubuntu-18.04-x86_64' + Compiler: 'Yocto' + Target arch: 'TARGET7' +- + Template: 'qtci-linux-Ubuntu-18.04-x86_64' + Compiler: 'Yocto' + Target arch: 'TARGET8' +- + Template: 'qtci-linux-Ubuntu-18.04-x86_64' + Compiler: 'Yocto' + Target arch: 'TARGET9' +- + Template: 'qtci-linux-Ubuntu-18.04-x86_64' + Compiler: 'Yocto' + Target arch: 'TARGET10' diff --git a/coin/platform_configs/qt5.yaml b/coin/platform_configs/qt5.yaml index 69f1c7e3..b72ab7c2 100644 --- a/coin/platform_configs/qt5.yaml +++ b/coin/platform_configs/qt5.yaml @@ -15,12 +15,12 @@ Template: 'qtci-windows-7-x86-3' Compiler: 'Mingw73' Features: ['Packaging', 'DisableTests'] - Configure arguments: '-opensource -confirm-license -verbose -prefix c:\Users\qt\work\install -release -debug-and-release -nomake tests -nomake examples -opengl dynamic -openssl -I %OPENSSL_INCLUDE_x86% -L %OPENSSL_LIB_x86% -no-sql-mysql -plugin-sql-sqlite -plugin-sql-odbc -I %MYSQL_INCLUDE_x86% -L %MYSQL_LIB_x86% -plugin-sql-psql -I %POSTGRESQL_INCLUDE_x86% -L %POSTGRESQL_LIB_x86% -platform win32-g++' + Configure arguments: '-opensource -confirm-license -verbose -prefix c:\Users\qt\work\install -release -nomake tests -nomake examples -opengl dynamic -openssl -I %OPENSSL_INCLUDE_x86% -L %OPENSSL_LIB_x86% -no-sql-mysql -plugin-sql-sqlite -plugin-sql-odbc -I %MYSQL_INCLUDE_x86% -L %MYSQL_LIB_x86% -plugin-sql-psql -I %POSTGRESQL_INCLUDE_x86% -L %POSTGRESQL_LIB_x86% -platform win32-g++' - Template: 'qtci-windows-10-x86_64-14' Compiler: 'Mingw73' Features: ['Packaging', 'DisableTests'] - Configure arguments: '-opensource -confirm-license -verbose -prefix c:\Users\qt\work\install -release -debug-and-release -nomake tests -nomake examples -opengl dynamic -openssl -I %OPENSSL_INCLUDE_x64% -L %OPENSSL_LIB_x64% -no-sql-mysql -plugin-sql-sqlite -plugin-sql-odbc -I %MYSQL_INCLUDE_x64% -L %MYSQL_LIB_x64% -plugin-sql-psql -I %POSTGRESQL_INCLUDE_x64% -L %POSTGRESQL_LIB_x64% -platform win32-g++' + Configure arguments: '-opensource -confirm-license -verbose -prefix c:\Users\qt\work\install -release -nomake tests -nomake examples -opengl dynamic -openssl -I %OPENSSL_INCLUDE_x64% -L %OPENSSL_LIB_x64% -no-sql-mysql -plugin-sql-sqlite -plugin-sql-odbc -I %MYSQL_INCLUDE_x64% -L %MYSQL_LIB_x64% -plugin-sql-psql -I %POSTGRESQL_INCLUDE_x64% -L %POSTGRESQL_LIB_x64% -platform win32-g++' - Template: 'qtci-windows-10-x86_64-14' Target os: 'WinRT_10' @@ -133,12 +133,6 @@ Features: ['Packaging', 'DisableTests'] Configure arguments: '-opensource -confirm-license -verbose -prefix /home/qt/work/install -release -nomake tests -nomake examples -no-sql-mysql -no-use-gold-linker -opengl es2 -qpa qnx -xplatform qnx-x86-64-qcc' - - Template: 'qtci-windows-10-x86_64-14' - Target os: 'WebAssembly' - Compiler: 'Mingw73' - Features: ['Packaging', 'DisableTests'] - Configure arguments: '-opensource -confirm-license -verbose -prefix c:\Users\qt\work\install -release -nomake examples -nomake tests -no-feature-thread -static -no-dbus -no-headersclean -no-ssl -no-warnings-are-errors -no-pch -platform win32-g++ -xplatform wasm-emscripten' -- Template: 'qtci-macos-10.13-x86_64-2' Target os: 'WebAssembly' Compiler: 'Clang' diff --git a/coin/platform_configs/qtwebkit.yaml b/coin/platform_configs/qtwebkit.yaml index 49426405..0a1d5d31 100644 --- a/coin/platform_configs/qtwebkit.yaml +++ b/coin/platform_configs/qtwebkit.yaml @@ -2,4 +2,4 @@ Template: 'qtci-windows-7-x86-3' Compiler: 'Mingw73' Features: ['Packaging', 'DisableTests'] - Configure arguments: '-opensource -confirm-license -verbose -prefix c:\Users\qt\work\install -release -debug-and-release -nomake tests -nomake examples -opengl dynamic -openssl -I %OPENSSL_INCLUDE_x86% -L %OPENSSL_LIB_x86% -no-sql-mysql -plugin-sql-sqlite -plugin-sql-odbc -I %MYSQL_INCLUDE_x86% -L %MYSQL_LIB_x86% -plugin-sql-psql -I %POSTGRESQL_INCLUDE_x86% -L %POSTGRESQL_LIB_x86% -platform win32-g++' + Configure arguments: '-opensource -confirm-license -verbose -prefix c:\Users\qt\work\install -release -nomake tests -nomake examples -opengl dynamic -openssl -I %OPENSSL_INCLUDE_x86% -L %OPENSSL_LIB_x86% -no-sql-mysql -plugin-sql-sqlite -plugin-sql-odbc -I %MYSQL_INCLUDE_x86% -L %MYSQL_LIB_x86% -plugin-sql-psql -I %POSTGRESQL_INCLUDE_x86% -L %POSTGRESQL_LIB_x86% -platform win32-g++' diff --git a/coin/provisioning/common/linux/docker.sh b/coin/provisioning/common/linux/docker.sh index 1d9e8419..9be84e38 100755 --- a/coin/provisioning/common/linux/docker.sh +++ b/coin/provisioning/common/linux/docker.sh @@ -2,7 +2,7 @@ ############################################################################# ## -## Copyright (C) 2018 The Qt Company Ltd. +## Copyright (C) 2019 The Qt Company Ltd. ## Contact: http://www.qt.io/licensing/ ## ## This file is part of the provisioning scripts of the Qt Toolkit. @@ -42,14 +42,15 @@ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubun sudo apt-get update sudo apt-get install docker-ce -y sudo usermod -a -G docker $USER -sudo docker info +sudo docker --version # 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 +sudo docker-compose --version # Install Avahi to discover Docker containers in the test network sudo apt-get install avahi-daemon -y # Start testserver provisioning -source "${BASH_SOURCE%/*}/docker_testserver.sh" +sudo "$(readlink -f $(dirname ${BASH_SOURCE[0]}))/../shared/testserver/docker_testserver.sh" diff --git a/coin/provisioning/common/shared/testserver/.gitattributes b/coin/provisioning/common/shared/testserver/.gitattributes new file mode 100644 index 00000000..fcadb2cf --- /dev/null +++ b/coin/provisioning/common/shared/testserver/.gitattributes @@ -0,0 +1 @@ +* text eol=lf diff --git a/coin/provisioning/common/shared/testserver/apache2_18.04/Dockerfile b/coin/provisioning/common/shared/testserver/apache2_18.04/Dockerfile new file mode 100644 index 00000000..dff9fe43 --- /dev/null +++ b/coin/provisioning/common/shared/testserver/apache2_18.04/Dockerfile @@ -0,0 +1,4 @@ +FROM ubuntu:18.04 +ARG packages="apache2 libcgi-session-perl avahi-daemon" +RUN apt-get update && apt-get install -y $packages && dpkg -l $packages +EXPOSE 80 443 diff --git a/coin/provisioning/common/shared/testserver/californium/Dockerfile b/coin/provisioning/common/shared/testserver/californium/Dockerfile new file mode 100644 index 00000000..90722510 --- /dev/null +++ b/coin/provisioning/common/shared/testserver/californium/Dockerfile @@ -0,0 +1,15 @@ +FROM ubuntu:18.04 + +RUN apt-get update && apt-get -y install git maven default-jdk avahi-daemon + +RUN mkdir -p /root/src/ + +# Get californium-based CoAP test server +WORKDIR /root/src +RUN git clone https://github.com/selart/californium.git +WORKDIR /root/src/californium +RUN mvn clean install -q -DskipTests + +WORKDIR / + +EXPOSE 5683/udp 5684/udp diff --git a/coin/provisioning/common/shared/testserver/cyrus/Dockerfile b/coin/provisioning/common/shared/testserver/cyrus/Dockerfile new file mode 100644 index 00000000..55486175 --- /dev/null +++ b/coin/provisioning/common/shared/testserver/cyrus/Dockerfile @@ -0,0 +1,4 @@ +FROM ubuntu:16.04 +ARG packages="cyrus-imapd avahi-daemon" +RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y $packages && dpkg -l $packages +EXPOSE 143 993 diff --git a/coin/provisioning/common/shared/testserver/cyrus_18.04/Dockerfile b/coin/provisioning/common/shared/testserver/cyrus_18.04/Dockerfile new file mode 100644 index 00000000..2e525ec6 --- /dev/null +++ b/coin/provisioning/common/shared/testserver/cyrus_18.04/Dockerfile @@ -0,0 +1,4 @@ +FROM ubuntu:18.04 +ARG packages="cyrus-imapd avahi-daemon" +RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y $packages && dpkg -l $packages +EXPOSE 143 993 diff --git a/coin/provisioning/common/shared/testserver/danted_18.04/Dockerfile b/coin/provisioning/common/shared/testserver/danted_18.04/Dockerfile new file mode 100644 index 00000000..f48794af --- /dev/null +++ b/coin/provisioning/common/shared/testserver/danted_18.04/Dockerfile @@ -0,0 +1,4 @@ +FROM ubuntu:18.04 +ARG packages="dante-server avahi-daemon" +RUN apt-get update && apt-get install -y $packages && dpkg -l $packages +EXPOSE 1080-1081 diff --git a/coin/provisioning/common/linux/docker_testserver.sh b/coin/provisioning/common/shared/testserver/docker_images.sh index 2d5d9611..e98183d8 100755 --- a/coin/provisioning/common/linux/docker_testserver.sh +++ b/coin/provisioning/common/shared/testserver/docker_images.sh @@ -2,7 +2,7 @@ ############################################################################# ## -## Copyright (C) 2018 The Qt Company Ltd. +## Copyright (C) 2019 The Qt Company Ltd. ## Contact: http://www.qt.io/licensing/ ## ## This file is part of the provisioning scripts of the Qt Toolkit. @@ -35,14 +35,21 @@ set -ex -case ${BASH_SOURCE[0]} in - */linux/*) SERVER_PATH="${BASH_SOURCE[0]%/linux/*}/shared/testserver" ;; - */*) SERVER_PATH="${BASH_SOURCE[0]%/*}/../shared/testserver" ;; - *) SERVER_PATH="../shared/testserver" ;; +[ -x "$(command -v realpath)" ] && FILE=$(realpath ${BASH_SOURCE[0]}) || FILE=${BASH_SOURCE[0]} +case $FILE in + */*) SERVER_PATH="${FILE%/*}" ;; + *) SERVER_PATH="." ;; esac -# testserver shared scripts -source "$SERVER_PATH/testserver_util.sh" +# Sort files by their SHA-1, and then return the accumulated result +sha1tree () { + # For example, macOS doesn't install sha1sum by default. In such case, it uses shasum instead. + [ -x "$(command -v sha1sum)" ] || SHASUM=shasum + + find "$@" -type f -print0 | \ + xargs -0 ${SHASUM-sha1sum} | cut -d ' ' -f 1 | \ + sort | ${SHASUM-sha1sum} | cut -d ' ' -f 1 +} # 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) @@ -55,8 +62,7 @@ source "$SERVER_PATH/settings.sh" for server in $testserver do context="$SERVER_PATH/$server" - # Sort files by their SHA-1 and use the accumulated result as the TAG - sudo docker build -t qt-test-server-$server:$(sha1tree $context) $context + docker build -t qt-test-server-$server:$(sha1tree $context) $context done -sudo docker images +docker images diff --git a/coin/provisioning/common/shared/testserver/docker_machine.sh b/coin/provisioning/common/shared/testserver/docker_machine.sh index 601056a4..8d791074 100755 --- a/coin/provisioning/common/shared/testserver/docker_machine.sh +++ b/coin/provisioning/common/shared/testserver/docker_machine.sh @@ -2,7 +2,7 @@ ############################################################################# ## -## Copyright (C) 2018 The Qt Company Ltd. +## Copyright (C) 2019 The Qt Company Ltd. ## Contact: http://www.qt.io/licensing/ ## ## This file is part of the provisioning scripts of the Qt Toolkit. @@ -40,8 +40,11 @@ TestMachine='qt-test-server' # Deploy docker virtual machine (Boot2Docker) into VirtualBox only if it doesn't exist if [ -z $(docker-machine ls -q --filter "name=$TestMachine") ] then - docker-machine create -d virtualbox $TestMachine + docker-machine create $@ $TestMachine docker-machine ip $TestMachine +else + # Otherwise, start the docker machine and update with new TLS certificates. + docker-machine start $TestMachine && docker-machine regenerate-certs -f $TestMachine fi # Switch the docker engine to $TestMachine diff --git a/coin/provisioning/common/shared/testserver/testserver_util.sh b/coin/provisioning/common/shared/testserver/docker_testserver.sh index c42fb5e0..3a7c87e8 100644..100755 --- a/coin/provisioning/common/shared/testserver/testserver_util.sh +++ b/coin/provisioning/common/shared/testserver/docker_testserver.sh @@ -1,6 +1,8 @@ +#!/usr/bin/env bash + ############################################################################# ## -## Copyright (C) 2018 The Qt Company Ltd. +## Copyright (C) 2019 The Qt Company Ltd. ## Contact: http://www.qt.io/licensing/ ## ## This file is part of the provisioning scripts of the Qt Toolkit. @@ -33,9 +35,23 @@ set -ex -# Sort files by their SHA-1, and then return the accumulated result -sha1tree () { - find "$@" -type f -print0 | \ - xargs -0 shasum | cut -d ' ' -f 1 | \ - sort | shasum | cut -d ' ' -f 1 -} +[ -x "$(command -v realpath)" ] && FILE=$(realpath ${BASH_SOURCE[0]}) || FILE=${BASH_SOURCE[0]} +case $FILE in + */*) SERVER_PATH="${FILE%/*}" ;; + *) SERVER_PATH="." ;; +esac + +# Create docker virtual machine (Boot2docker) +case $1 in + VMX) source "$SERVER_PATH/docker_machine.sh" "-d virtualbox" ;; + Hyper-V) + # The Hyper-v has been enabled in Windows 10. Disable checking the hardware virtualization. + source "$SERVER_PATH/docker_machine.sh" "-d virtualbox --virtualbox-no-vtx-check" ;; + *) ;; +esac + +# Display system-wide information of docker-engine +docker info + +# Create images +$SERVER_PATH/docker_images.sh diff --git a/coin/provisioning/common/shared/testserver/echo/Dockerfile b/coin/provisioning/common/shared/testserver/echo/Dockerfile new file mode 100644 index 00000000..653ca714 --- /dev/null +++ b/coin/provisioning/common/shared/testserver/echo/Dockerfile @@ -0,0 +1,4 @@ +FROM ubuntu:16.04 +ARG packages="xinetd avahi-daemon" +RUN apt-get update && apt-get install -y $packages && dpkg -l $packages +EXPOSE 7 7/UDP 13 diff --git a/coin/provisioning/common/shared/testserver/echo_18.04/Dockerfile b/coin/provisioning/common/shared/testserver/echo_18.04/Dockerfile new file mode 100644 index 00000000..37f488cb --- /dev/null +++ b/coin/provisioning/common/shared/testserver/echo_18.04/Dockerfile @@ -0,0 +1,4 @@ +FROM ubuntu:18.04 +ARG packages="xinetd avahi-daemon" +RUN apt-get update && apt-get install -y $packages && dpkg -l $packages +EXPOSE 7 7/UDP 13 diff --git a/coin/provisioning/common/shared/testserver/freecoap/Dockerfile b/coin/provisioning/common/shared/testserver/freecoap/Dockerfile new file mode 100644 index 00000000..2c665bd5 --- /dev/null +++ b/coin/provisioning/common/shared/testserver/freecoap/Dockerfile @@ -0,0 +1,20 @@ +FROM ubuntu:18.04 + +RUN apt-get update && apt-get -y install git avahi-daemon autoconf automake libtool make libgnutls28-dev + +RUN mkdir -p /root/src/ + +# Get FreeCoAP test server +WORKDIR /root/src +RUN git clone https://github.com/keith-cullen/FreeCoAP.git +WORKDIR /root/src/FreeCoAP +RUN autoreconf --install +RUN ./configure +RUN make +RUN make install +WORKDIR /root/src/FreeCoAP/sample/time_server +RUN make + +WORKDIR / + +EXPOSE 5685/udp diff --git a/coin/provisioning/common/shared/testserver/ftp-proxy_18.04/Dockerfile b/coin/provisioning/common/shared/testserver/ftp-proxy_18.04/Dockerfile new file mode 100644 index 00000000..0e7146ba --- /dev/null +++ b/coin/provisioning/common/shared/testserver/ftp-proxy_18.04/Dockerfile @@ -0,0 +1,4 @@ +FROM ubuntu:18.04 +ARG packages="ftp-proxy avahi-daemon" +RUN apt-get update && apt-get install -y $packages && dpkg -l $packages +EXPOSE 2121 diff --git a/coin/provisioning/common/shared/testserver/iptables/Dockerfile b/coin/provisioning/common/shared/testserver/iptables/Dockerfile new file mode 100644 index 00000000..cbee61d4 --- /dev/null +++ b/coin/provisioning/common/shared/testserver/iptables/Dockerfile @@ -0,0 +1,4 @@ +FROM ubuntu:16.04 +ARG packages="iptables avahi-daemon" +RUN apt-get update && apt-get install -y $packages && dpkg -l $packages +EXPOSE 1357 diff --git a/coin/provisioning/common/shared/testserver/iptables_18.04/Dockerfile b/coin/provisioning/common/shared/testserver/iptables_18.04/Dockerfile new file mode 100644 index 00000000..5865e9c8 --- /dev/null +++ b/coin/provisioning/common/shared/testserver/iptables_18.04/Dockerfile @@ -0,0 +1,4 @@ +FROM ubuntu:18.04 +ARG packages="iptables avahi-daemon" +RUN apt-get update && apt-get install -y $packages && dpkg -l $packages +EXPOSE 1357 diff --git a/coin/provisioning/common/shared/testserver/settings.sh b/coin/provisioning/common/shared/testserver/settings.sh index 041661f2..27832773 100644 --- a/coin/provisioning/common/shared/testserver/settings.sh +++ b/coin/provisioning/common/shared/testserver/settings.sh @@ -1,6 +1,6 @@ ############################################################################# ## -## Copyright (C) 2018 The Qt Company Ltd. +## Copyright (C) 2019 The Qt Company Ltd. ## Contact: http://www.qt.io/licensing/ ## ## This file is part of the provisioning scripts of the Qt Toolkit. @@ -34,4 +34,5 @@ set -ex # A list of test servers to be provisioned -testserver='apache2 squid vsftpd ftp-proxy danted' +testserver='apache2 squid vsftpd ftp-proxy danted echo cyrus iptables californium freecoap' +testserver="$testserver apache2_18.04 squid_18.04 vsftpd_18.04 ftp-proxy_18.04 danted_18.04 echo_18.04 cyrus_18.04 iptables_18.04" diff --git a/coin/provisioning/common/shared/testserver/squid_18.04/Dockerfile b/coin/provisioning/common/shared/testserver/squid_18.04/Dockerfile new file mode 100644 index 00000000..208feec7 --- /dev/null +++ b/coin/provisioning/common/shared/testserver/squid_18.04/Dockerfile @@ -0,0 +1,4 @@ +FROM ubuntu:18.04 +ARG packages="squid avahi-daemon" +RUN apt-get update && apt-get install -y $packages && dpkg -l $packages +EXPOSE 3128-3130 diff --git a/coin/provisioning/common/shared/testserver/vsftpd_18.04/Dockerfile b/coin/provisioning/common/shared/testserver/vsftpd_18.04/Dockerfile new file mode 100644 index 00000000..843472fd --- /dev/null +++ b/coin/provisioning/common/shared/testserver/vsftpd_18.04/Dockerfile @@ -0,0 +1,4 @@ +FROM ubuntu:18.04 +ARG packages="vsftpd avahi-daemon" +RUN apt-get update && apt-get install -y $packages && dpkg -l $packages +EXPOSE 20-21 diff --git a/coin/provisioning/common/windows/disable-windows-updates.ps1 b/coin/provisioning/common/windows/disable-windows-updates.ps1 index 87414f03..15644cfe 100644 --- a/coin/provisioning/common/windows/disable-windows-updates.ps1 +++ b/coin/provisioning/common/windows/disable-windows-updates.ps1 @@ -33,6 +33,8 @@ # This script disables the automatic Windows updates +. "$PSScriptRoot\helpers.ps1" + $service = get-service wuauserv if (-not $service) { Write-Host "Windows Update service not found." @@ -43,7 +45,7 @@ if ($service.Status -eq "Stopped") { Write-Host "Windows Update service already stopped." } else { Write-Host "Stopping Windows Update service." - Stop-Service -Name "wuauserv" -Force + Retry {Stop-Service -Name "wuauserv" -Force} 20 5 } $startup = Get-WmiObject Win32_Service | Where-Object {$_.Name -eq "wuauserv"} | Select -ExpandProperty "StartMode" diff --git a/coin/provisioning/common/windows/helpers.ps1 b/coin/provisioning/common/windows/helpers.ps1 index ba35f6b5..100f14ae 100644 --- a/coin/provisioning/common/windows/helpers.ps1 +++ b/coin/provisioning/common/windows/helpers.ps1 @@ -204,6 +204,38 @@ function Get-Proxy { return (Get-ItemProperty -Path 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings').proxyServer } +function Retry{ + <# + usage: + Retry{CODE} + Retry{CODE} <num of retries> <delay_s> + #delay is in seconds + #> + Param( + [Parameter(mandatory=$true)] + [scriptblock]$command, + [int][ValidateRange(1, 20)]$retry = 5, + [int][ValidateRange(1, 60)]$delay_s = 5 + ) + $success=$false + $retry_count=0 + do{ + try { + Invoke-Command -ScriptBlock $command + $success=$true + } + catch { + $retry_count++ + Write-Host "Error: $_, try: $retry_count, retrying in $delay_s seconds" + Start-Sleep -Seconds $delay_s + } + } until ($success -or $retry+1 -le $retry_count) + + if (-not $success) { + Throw("Failed to run command successfully in $retry_count tries") + } +} + function Remove { Param ( diff --git a/qt3d b/qt3d -Subproject b669a0d133b027091117ecccd9e47aa8086ef4f +Subproject 87abbae2f16bae53aff6b2e41658bafbef642a9 diff --git a/qtactiveqt b/qtactiveqt -Subproject 6746b4c3736eb08721e68f3a051bf27b699487f +Subproject 89e2d977323e874b4074aa1b969a4be5141184b diff --git a/qtandroidextras b/qtandroidextras -Subproject c158f8d5179957084fd7ec1c2f97086b45604f5 +Subproject 503ba3db8749b49ed2e4705fd353c897dae390a diff --git a/qtbase b/qtbase -Subproject b5677bc6da9c5e7517edc4902dc1fe7cf211685 +Subproject 50e496bd3ac71ccebc99c0a429b41fb0e7864ac diff --git a/qtcharts b/qtcharts -Subproject a9c48f8ea7fd8634263124a742e23bc992fd855 +Subproject ff84fb0fdaf7ed1a0b646705dcf8b0254f862cd diff --git a/qtconnectivity b/qtconnectivity -Subproject e4138bd7b2b6ab6c544ad5ab49cf2c193c7cd9a +Subproject ccc1544f5ff929f466df8c790a4e7595e177a72 diff --git a/qtdatavis3d b/qtdatavis3d -Subproject 3206729aa704d9c7cdfaa734f177334d5c11ae7 +Subproject 422856bb470e1380309c66a8ba4b40e06d1df83 diff --git a/qtdeclarative b/qtdeclarative -Subproject ffda7180f3c11c35699ba8aa1a16efc6ee962e0 +Subproject d4e1f5395c896dc5bda9a2e122e2ed0f45be6c1 diff --git a/qtdoc b/qtdoc -Subproject 6430e145e2d905d11daf690d2021ba1379780bb +Subproject c7a53256d262ba58e59ebc3863c21c7b6cd2f0c diff --git a/qtgamepad b/qtgamepad -Subproject 027a1dfd3eca382dab3f3f17e7f43ccb84e329b +Subproject ea0457b8058191b4bb22477c7b51975a70af0b0 diff --git a/qtgraphicaleffects b/qtgraphicaleffects -Subproject 3b3b3f85ddd472bdae168f210e62dc2868997aa +Subproject c76eb211ff12fc3a1588c3092dd76a41eb5551c diff --git a/qtimageformats b/qtimageformats -Subproject d72ff0cd09eda68a0579dc57389ecc1ee4a3b7c +Subproject 82a6d3426215253e013dd3ddd6712488388bc92 diff --git a/qtlocation b/qtlocation -Subproject a13506d54409a78ee13a84052b78050a2f68683 +Subproject 3334c6f6d00255f6fd5690e4b9cb05416950fd4 diff --git a/qtlottie b/qtlottie -Subproject 86c7306ebc0d011a096f0554e0c206fe17bb577 +Subproject 03b666a967fb7501248e9f40a5b187ec3a16c45 diff --git a/qtmacextras b/qtmacextras -Subproject f44061fa0547d048661d1efa8444da7c757fa39 +Subproject af348830a3ae6852a4e7ff612c045e11c094ef5 diff --git a/qtmultimedia b/qtmultimedia -Subproject 7b1bb300166aa19dc0f4c6838eb6d284af73236 +Subproject 9178132f75563cd0e907525f08736c1b4cec73b diff --git a/qtnetworkauth b/qtnetworkauth -Subproject c2bf9b420f29e4b001d6f85b918be5fb89c8756 +Subproject 272ea7f508d8ee30311c08c07c6e0501f17338c diff --git a/qtpurchasing b/qtpurchasing -Subproject a0f911a29eb055de1e9dc2d3e78a1f03ccead5d +Subproject bc6d56861b93bd87958baa3384c3cbd895f1c3f diff --git a/qtquickcontrols b/qtquickcontrols -Subproject b1f360c0b0f42b4536cb0bcecd06e76052ec77e +Subproject 6ab10d971d7d98eeaa50203c24d53da35cfe218 diff --git a/qtquickcontrols2 b/qtquickcontrols2 -Subproject 7c2ec7dc49799fffb2ed48a3a5afe2d8561ce3e +Subproject 92c827a2a4b7e56dcb6865fa35fba25b5d2eb87 diff --git a/qtquicktimeline b/qtquicktimeline new file mode 160000 +Subproject 6e6d4927f4620e58bd6acf71a0c6f54513f47c5 diff --git a/qtremoteobjects b/qtremoteobjects -Subproject eff13458a10ab9c40a839f952dedbfce2e6df59 +Subproject d88c6a1690d1d725e4436537546b3d5681ee4a9 diff --git a/qtscript b/qtscript -Subproject 590a5ffcb76157f4278e2778135d8d17bc81529 +Subproject 40b5d325b6105d4e520c76a079f530168b58efe diff --git a/qtscxml b/qtscxml -Subproject 1323d465b4698296533cf6c73ea5ace65dd0ce9 +Subproject 279d63c4f6632237e6a0d9c4be91b466876c260 diff --git a/qtsensors b/qtsensors -Subproject 47d1ff2813575981d02434d6cffd6384687f832 +Subproject 4dfa95538ff15f59880c93675676ce609b365d8 diff --git a/qtserialbus b/qtserialbus -Subproject 7e8ad7f0bb43a3235fbf8e099e853ec3e2ce8a2 +Subproject 556c6b67315c25f7e4359ab19314f3485f10ecc diff --git a/qtserialport b/qtserialport -Subproject 335f1d02dc134bf11277c0573553c7c838cc6a9 +Subproject bc4196f908a96522ecaab078141364b3e10d178 diff --git a/qtspeech b/qtspeech -Subproject aa450db462db5fca847ed05c1e05c1779161cc8 +Subproject c1860e04dfcf9eddcf14cbc4e44f441ad75ffc8 diff --git a/qtsvg b/qtsvg -Subproject fc2bc2db0ed8887253a2e0a41634e7d22af0028 +Subproject b80a1676c9f5cc0b428f15ac09f6648a80aacb2 diff --git a/qttools b/qttools -Subproject 6690a8453989408401d8166f1ab3aa41cc2d436 +Subproject eba0529d488536e83b1e32b1c1c6c1000790e32 diff --git a/qttranslations b/qttranslations -Subproject 55b11294296a7bbc3a3bdfe9d2f5b381abf01d9 +Subproject 66952c79bc648e1074936dddb7fa2cffc17b177 diff --git a/qtvirtualkeyboard b/qtvirtualkeyboard -Subproject 6143eec2525af08e6aab895bcf64c2745a427f1 +Subproject e342f1366eff06f3cf01991b377c880b2d24617 diff --git a/qtwayland b/qtwayland -Subproject ca9be5cab503d85831653d6c4bc9c59bd0f6ad5 +Subproject 52b6560708ebcfeeaebdf2b43f368c610aa905a diff --git a/qtwebchannel b/qtwebchannel -Subproject 018b2740f793e1f4142d95736ff0554aa4e0a71 +Subproject 29496e3f08e20398e253e6d32bb95879a1a6897 diff --git a/qtwebengine b/qtwebengine -Subproject b1bdb599a397d3f8d068b8619d32061c20e13e7 +Subproject 23b24fb49a9115151ea086afd271fdf9bb36fda diff --git a/qtwebglplugin b/qtwebglplugin -Subproject 95957bbecc40e5efb163ab123c2a7d8d04005be +Subproject e51341cf20447c42a62281e633513837058f62e diff --git a/qtwebsockets b/qtwebsockets -Subproject 0634c8104558dbb7acd314d52cf4b039c8c3689 +Subproject e108b1f06d18003d7a758b07bc3bea9922b2e11 diff --git a/qtwebview b/qtwebview -Subproject 5c80bba07d09f498027586a32b0f937d26cca1d +Subproject fb2a2003fbb41ac91b319afb56f290b415befb6 diff --git a/qtwinextras b/qtwinextras -Subproject da9ce653ee04b9b93cfa95d4d7071d0153286c7 +Subproject ee2d2f7a93c5b0866e91293d6233ae2703281ca diff --git a/qtx11extras b/qtx11extras -Subproject 9f325067de14ffbed42775c2a3d1f9570bf696a +Subproject 15ffa33a162325d2d16437a057e79cd3b0e3d61 diff --git a/qtxmlpatterns b/qtxmlpatterns -Subproject 84e44bf5a9e5dcb0f93c55129f565e34edb7dd1 +Subproject 9da08816e1072fc1391377a38d6afd9e73d756e |