aboutsummaryrefslogtreecommitdiffstats
path: root/coin/provisioning/common/shared
diff options
context:
space:
mode:
Diffstat (limited to 'coin/provisioning/common/shared')
-rw-r--r--coin/provisioning/common/shared/cmake_toolchain_files/qnx-toolchain-aarch64le.cmake28
-rw-r--r--coin/provisioning/common/shared/cmake_toolchain_files/qnx-toolchain-armv7le.cmake28
-rw-r--r--coin/provisioning/common/shared/cmake_toolchain_files/qnx-toolchain-x8664.cmake28
-rw-r--r--coin/provisioning/common/shared/ffmpeg_config_options.txt1
-rw-r--r--coin/provisioning/common/shared/requirements.txt19
-rwxr-xr-x[-rw-r--r--]coin/provisioning/common/shared/telegraf/telegraf-ioping.sh6
-rw-r--r--coin/provisioning/common/shared/telegraf/telegraf_packages.sha256.txt10
-rw-r--r--coin/provisioning/common/shared/testserver/apache2/Dockerfile7
-rw-r--r--coin/provisioning/common/shared/testserver/apache2_18.04/Dockerfile4
-rw-r--r--coin/provisioning/common/shared/testserver/californium/Dockerfile14
-rw-r--r--coin/provisioning/common/shared/testserver/californium/qt_changes.patch43
-rw-r--r--coin/provisioning/common/shared/testserver/cyrus/Dockerfile4
-rw-r--r--coin/provisioning/common/shared/testserver/cyrus_18.04/Dockerfile4
-rw-r--r--coin/provisioning/common/shared/testserver/danted/Dockerfile9
-rw-r--r--coin/provisioning/common/shared/testserver/danted_18.04/Dockerfile4
-rwxr-xr-xcoin/provisioning/common/shared/testserver/docker_images.sh124
-rwxr-xr-xcoin/provisioning/common/shared/testserver/docker_machine.sh45
-rwxr-xr-xcoin/provisioning/common/shared/testserver/docker_testserver.sh39
-rw-r--r--coin/provisioning/common/shared/testserver/echo/Dockerfile4
-rw-r--r--coin/provisioning/common/shared/testserver/echo_18.04/Dockerfile4
-rw-r--r--coin/provisioning/common/shared/testserver/freecoap/Dockerfile20
-rw-r--r--coin/provisioning/common/shared/testserver/ftp-proxy/Dockerfile4
-rw-r--r--coin/provisioning/common/shared/testserver/ftp-proxy_18.04/Dockerfile4
-rw-r--r--coin/provisioning/common/shared/testserver/iptables/Dockerfile4
-rw-r--r--coin/provisioning/common/shared/testserver/iptables_18.04/Dockerfile4
-rw-r--r--coin/provisioning/common/shared/testserver/qt_ubuntu_16.04/Dockerfile5
-rw-r--r--coin/provisioning/common/shared/testserver/qt_ubuntu_18.04/Dockerfile5
-rwxr-xr-x[-rw-r--r--]coin/provisioning/common/shared/testserver/settings.sh35
-rw-r--r--coin/provisioning/common/shared/testserver/squid/Dockerfile4
-rw-r--r--coin/provisioning/common/shared/testserver/squid_18.04/Dockerfile4
-rw-r--r--coin/provisioning/common/shared/testserver/vsftpd/Dockerfile6
-rw-r--r--coin/provisioning/common/shared/testserver/vsftpd_18.04/Dockerfile4
-rw-r--r--coin/provisioning/common/shared/triplets/arm64-windows-qt.cmake7
-rw-r--r--coin/provisioning/common/shared/triplets/armeabi-v7a-android-qt.cmake15
-rw-r--r--coin/provisioning/common/shared/triplets/x64-linux-qt.cmake13
-rw-r--r--coin/provisioning/common/shared/triplets/x64-windows-qt.cmake7
-rw-r--r--coin/provisioning/common/shared/triplets/x86-android-qt.cmake15
-rw-r--r--coin/provisioning/common/shared/triplets/x86_64-android-qt.cmake15
-rw-r--r--coin/provisioning/common/shared/vcpkg-configuration.json9
-rw-r--r--coin/provisioning/common/shared/vcpkg_registry_mirror.txt1
-rw-r--r--coin/provisioning/common/shared/vcpkg_tool_release_tag.txt1
-rw-r--r--coin/provisioning/common/shared/vcpkg_version.txt1
42 files changed, 372 insertions, 236 deletions
diff --git a/coin/provisioning/common/shared/cmake_toolchain_files/qnx-toolchain-aarch64le.cmake b/coin/provisioning/common/shared/cmake_toolchain_files/qnx-toolchain-aarch64le.cmake
new file mode 100644
index 00000000..9a207b0e
--- /dev/null
+++ b/coin/provisioning/common/shared/cmake_toolchain_files/qnx-toolchain-aarch64le.cmake
@@ -0,0 +1,28 @@
+set(CMAKE_SYSTEM_NAME QNX)
+set(CMAKE_SYSTEM_PROCESSOR aarch64le)
+
+if (NOT DEFINED CMAKE_FIND_ROOT_PATH_MODE_PROGRAM)
+ set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
+endif()
+if (NOT DEFINED CMAKE_FIND_ROOT_PATH_MODE_LIBRARY)
+ set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
+endif()
+if (NOT DEFINED CMAKE_FIND_ROOT_PATH_MODE_PACKAGE)
+ set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)
+endif()
+if (NOT DEFINED CMAKE_FIND_ROOT_PATH_MODE_INCLUDE)
+ set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
+endif()
+
+set(CMAKE_FIND_ROOT_PATH $ENV{QNX_TARGET};$ENV{QNX_TARGET}/${CMAKE_SYSTEM_PROCESSOR})
+
+set(_qnx_toolchain_arch gcc_ntoaarch64le)
+
+set(CMAKE_C_COMPILER qcc)
+set(CMAKE_C_COMPILER_TARGET ${_qnx_toolchain_arch})
+set(CMAKE_CXX_COMPILER q++)
+set(CMAKE_CXX_COMPILER_TARGET ${_qnx_toolchain_arch})
+
+set(CMAKE_STRIP $ENV{QNX_HOST}/usr/bin/ntoaarch64-strip)
+
+set(CMAKE_SYSROOT $ENV{QNX_TARGET})
diff --git a/coin/provisioning/common/shared/cmake_toolchain_files/qnx-toolchain-armv7le.cmake b/coin/provisioning/common/shared/cmake_toolchain_files/qnx-toolchain-armv7le.cmake
new file mode 100644
index 00000000..90bd9731
--- /dev/null
+++ b/coin/provisioning/common/shared/cmake_toolchain_files/qnx-toolchain-armv7le.cmake
@@ -0,0 +1,28 @@
+set(CMAKE_SYSTEM_NAME QNX)
+set(CMALE_SYSTEM_PROCESSOR armv7le)
+
+if (NOT DEFINED CMAKE_FIND_ROOT_PATH_MODE_PROGRAM)
+ set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
+endif()
+if (NOT DEFINED CMAKE_FIND_ROOT_PATH_MODE_LIBRARY)
+ set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
+endif()
+if (NOT DEFINED CMAKE_FIND_ROOT_PATH_MODE_PACKAGE)
+ set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)
+endif()
+if (NOT DEFINED CMAKE_FIND_ROOT_PATH_MODE_INCLUDE)
+ set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
+endif()
+
+set(CMAKE_FIND_ROOT_PATH $ENV{QNX_TARGET};$ENV{QNX_TARGET}/${CMAKE_SYSTEM_PROCESSOR})
+
+set(_qnx_toolchain_arch gcc_ntoarmv7le)
+
+set(CMAKE_C_COMPILER qcc)
+set(CMAKE_C_COMPILER_TARGET ${_qnx_toolchain_arch})
+set(CMAKE_CXX_COMPILER q++)
+set(CMAKE_CXX_COMPILER_TARGET ${_qnx_toolchain_arch})
+
+set(CMAKE_STRIP $ENV{QNX_HOST}/usr/bin/ntoarmv7-strip)
+
+set(CMAKE_SYSROOT $ENV{QNX_TARGET})
diff --git a/coin/provisioning/common/shared/cmake_toolchain_files/qnx-toolchain-x8664.cmake b/coin/provisioning/common/shared/cmake_toolchain_files/qnx-toolchain-x8664.cmake
new file mode 100644
index 00000000..e11488bc
--- /dev/null
+++ b/coin/provisioning/common/shared/cmake_toolchain_files/qnx-toolchain-x8664.cmake
@@ -0,0 +1,28 @@
+set(CMAKE_SYSTEM_NAME QNX)
+set(CMAKE_SYSTEM_PROCESSOR x86_64)
+
+if (NOT DEFINED CMAKE_FIND_ROOT_PATH_MODE_PROGRAM)
+ set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
+endif()
+if (NOT DEFINED CMAKE_FIND_ROOT_PATH_MODE_LIBRARY)
+ set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
+endif()
+if (NOT DEFINED CMAKE_FIND_ROOT_PATH_MODE_PACKAGE)
+ set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)
+endif()
+if (NOT DEFINED CMAKE_FIND_ROOT_PATH_MODE_INCLUDE)
+ set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
+endif()
+
+set(CMAKE_FIND_ROOT_PATH $ENV{QNX_TARGET};$ENV{QNX_TARGET}/${CMAKE_SYSTEM_PROCESSOR})
+
+set(_qnx_toolchain_arch gcc_ntox86_64)
+
+set(CMAKE_C_COMPILER qcc)
+set(CMAKE_C_COMPILER_TARGET ${_qnx_toolchain_arch})
+set(CMAKE_CXX_COMPILER q++)
+set(CMAKE_CXX_COMPILER_TARGET ${_qnx_toolchain_arch})
+
+set(CMAKE_STRIP $ENV{QNX_HOST}/usr/bin/ntox86_64-strip)
+
+set(CMAKE_SYSROOT $ENV{QNX_TARGET})
diff --git a/coin/provisioning/common/shared/ffmpeg_config_options.txt b/coin/provisioning/common/shared/ffmpeg_config_options.txt
new file mode 100644
index 00000000..52f79c14
--- /dev/null
+++ b/coin/provisioning/common/shared/ffmpeg_config_options.txt
@@ -0,0 +1 @@
+--disable-programs --disable-doc --disable-debug --enable-network --disable-lzma --enable-pic --disable-vulkan --disable-v4l2-m2m --disable-decoder=truemotion1
diff --git a/coin/provisioning/common/shared/requirements.txt b/coin/provisioning/common/shared/requirements.txt
deleted file mode 100644
index 60239142..00000000
--- a/coin/provisioning/common/shared/requirements.txt
+++ /dev/null
@@ -1,19 +0,0 @@
-# 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==5.1
-six==1.11.0
-typing==3.6.4
-watchdog==0.8.3
diff --git a/coin/provisioning/common/shared/telegraf/telegraf-ioping.sh b/coin/provisioning/common/shared/telegraf/telegraf-ioping.sh
index ad95eadc..528047ce 100644..100755
--- a/coin/provisioning/common/shared/telegraf/telegraf-ioping.sh
+++ b/coin/provisioning/common/shared/telegraf/telegraf-ioping.sh
@@ -1,4 +1,6 @@
#!/bin/sh
+#Copyright (C) 2023 The Qt Company Ltd
+#SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
# Measure I/O latency once, return data in InfluxDB format
#
@@ -12,7 +14,7 @@
set -e
-[ x"$1" = x ] && echo "$0 takes a path as a first argument" && exit 1
+[ -z "$1" ] && echo "$0 takes a path as a first argument" && exit 1
# Try to run in high priority to avoid slow-downs because of
# factors other than I/O.
@@ -23,4 +25,4 @@ rlatency="$(ioping -B -k -c 3 -i 0.1 "$1" | cut -d " " -f 5)"
wlatency="$(ioping -B -k -c 3 -i 0.1 -W "$1" | cut -d " " -f 5)"
printf "ioping,path=$1 read_latency_ns=%u,write_latency_ns=%u\n" \
- $rlatency $wlatency
+ "$rlatency" "$wlatency"
diff --git a/coin/provisioning/common/shared/telegraf/telegraf_packages.sha256.txt b/coin/provisioning/common/shared/telegraf/telegraf_packages.sha256.txt
index 7d1cdada..28304114 100644
--- a/coin/provisioning/common/shared/telegraf/telegraf_packages.sha256.txt
+++ b/coin/provisioning/common/shared/telegraf/telegraf_packages.sha256.txt
@@ -1,6 +1,4 @@
-https://dl.influxdata.com/telegraf/releases/telegraf-1.12.1_windows_i386.zip d2dea67a28fd7a9e21395d14f0b7ce1b6413e85cc9ffd89cc7ff8f35e8af5837
-https://dl.influxdata.com/telegraf/releases/telegraf-1.12.1_windows_amd64.zip 88d8c8146b561f43726e61688b42d0b5ab88fc22607b94df5a2c8245bbb27e29
-https://dl.influxdata.com/telegraf/releases/telegraf-1.12.1_darwin_amd64.tar.gz 58a2b294c1b6408c396b5526719cf7cad557f7075fed10ff0b2a74141ea2d629
-https://dl.influxdata.com/telegraf/releases/telegraf-1.12.1_linux_amd64.tar.gz 070a76800d1a5f33413b8948286f75caa55ebd924f6fb6996a753b9979799ef5
-https://dl.influxdata.com/telegraf/releases/telegraf-1.12.1_linux_i386.tar.gz 964077b6846708f579a100d7ea6090e2d8350ace75ec735d539bc452bc551038
-https://dl.influxdata.com/telegraf/releases/telegraf-1.12.1-static_linux_amd64.tar.gz bb03814c99c037ce0758e3884660910f2f6fd78f3d49a8e1ef531693b3cfe25d
+https://dl.influxdata.com/telegraf/releases/telegraf-1.12.6_darwin_amd64.tar.gz 2bc056e1ad38af2ba95d2cb1d43b513cc611fdd3b851b2ff5e09991d52b01253
+https://dl.influxdata.com/telegraf/releases/telegraf-1.12.6_linux_amd64.tar.gz b33cf0f5935a5c225ab0de69db1e6b249d581f3213313de62a8de928aedadbec
+https://dl.influxdata.com/telegraf/releases/telegraf-1.12.6_windows_amd64.zip 5d025d85070e8c180c443580afa8a27421a7bbcf14b5044894e9f3298d0ce97a
+https://dl.influxdata.com/telegraf/releases/telegraf-1.12.6_windows_i386.zip 5178a0bdaab448c2ef965b0e36f835849cea731ccd87c4a4527f0f05fbbdf271
diff --git a/coin/provisioning/common/shared/testserver/apache2/Dockerfile b/coin/provisioning/common/shared/testserver/apache2/Dockerfile
index b39eb21e..c3dc5d59 100644
--- a/coin/provisioning/common/shared/testserver/apache2/Dockerfile
+++ b/coin/provisioning/common/shared/testserver/apache2/Dockerfile
@@ -1,7 +1,8 @@
-FROM ubuntu:16.04
-ARG packages="apache2 libcgi-session-perl wget avahi-daemon"
+FROM qt_ubuntu_16.04
+ARG packages="avahi-daemon apache2 libcgi-session-perl"
RUN apt-get update && apt-get install -y $packages && dpkg -l $packages
EXPOSE 80 443
# install configurations and test data
-RUN wget https://tools.ietf.org/rfc/rfc3252.txt
+
+COPY rfc3252.txt .
diff --git a/coin/provisioning/common/shared/testserver/apache2_18.04/Dockerfile b/coin/provisioning/common/shared/testserver/apache2_18.04/Dockerfile
index dff9fe43..1a629c47 100644
--- a/coin/provisioning/common/shared/testserver/apache2_18.04/Dockerfile
+++ b/coin/provisioning/common/shared/testserver/apache2_18.04/Dockerfile
@@ -1,4 +1,4 @@
-FROM ubuntu:18.04
-ARG packages="apache2 libcgi-session-perl avahi-daemon"
+FROM qt_ubuntu_18.04
+ARG packages="avahi-daemon apache2 libcgi-session-perl"
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
index 90722510..81d27f9b 100644
--- a/coin/provisioning/common/shared/testserver/californium/Dockerfile
+++ b/coin/provisioning/common/shared/testserver/californium/Dockerfile
@@ -1,15 +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/
+FROM qt_ubuntu_18.04
+ARG packages="avahi-daemon maven default-jdk patch"
+RUN apt-get update && apt-get -y install $packages
# Get californium-based CoAP test server
WORKDIR /root/src
-RUN git clone https://github.com/selart/californium.git
+ADD californium-*.tar.gz .
+RUN mv californium-* californium
WORKDIR /root/src/californium
+ADD qt_changes.patch ./
+RUN patch -p1 < qt_changes.patch
RUN mvn clean install -q -DskipTests
-
WORKDIR /
EXPOSE 5683/udp 5684/udp
diff --git a/coin/provisioning/common/shared/testserver/californium/qt_changes.patch b/coin/provisioning/common/shared/testserver/californium/qt_changes.patch
new file mode 100644
index 00000000..732c0daa
--- /dev/null
+++ b/coin/provisioning/common/shared/testserver/californium/qt_changes.patch
@@ -0,0 +1,43 @@
+diff -ruN californium_3.8.0/demo-apps/cf-plugtest-server/src/main/java/org/eclipse/californium/plugtests/PlugtestServer.java californium/demo-apps/cf-plugtest-server/src/main/java/org/eclipse/californium/plugtests/PlugtestServer.java
+--- californium_3.8.0/demo-apps/cf-plugtest-server/src/main/java/org/eclipse/californium/plugtests/PlugtestServer.java 2023-07-21 11:16:21.142201240 +0200
++++ californium/demo-apps/cf-plugtest-server/src/main/java/org/eclipse/californium/plugtests/PlugtestServer.java 2023-07-21 11:16:51.074210378 +0200
+@@ -100,6 +100,14 @@
+ import org.eclipse.californium.unixhealth.NetSocketHealthLogger;
+ import org.eclipse.californium.unixhealth.NetStatLogger;
+
++import org.eclipse.californium.scandium.DTLSConnector;
++import org.eclipse.californium.scandium.config.DtlsConnectorConfig;
++import org.eclipse.californium.scandium.dtls.pskstore.AdvancedSinglePskStore;
++import org.eclipse.californium.core.network.CoapEndpoint;
++
++import java.net.InetSocketAddress;
++import java.net.InetAddress;
++
+ import picocli.CommandLine;
+ import picocli.CommandLine.ArgGroup;
+ import picocli.CommandLine.Command;
+@@ -437,7 +445,23 @@
+ // server.addEndpoint(new CoAPEndpoint(new InetSocketAddress("127.0.0.1", port)));
+ // server.addEndpoint(new CoAPEndpoint(new InetSocketAddress("2a01:c911:0:2010::10", port)));
+ // server.addEndpoint(new CoAPEndpoint(new InetSocketAddress("10.200.1.2", port)));
+- server.addEndpoints(config);
++ // server.addEndpoints(config);
++
++ CoapEndpoint.Builder endpointBuilder = new CoapEndpoint.Builder();
++ endpointBuilder.setPort(5683);
++ server.addEndpoint(endpointBuilder.build());
++
++ AdvancedSinglePskStore pskStore = new AdvancedSinglePskStore("Client_identity", "secretPSK".getBytes());
++
++ DtlsConnectorConfig.Builder builder = new DtlsConnectorConfig.Builder(new Configuration());
++ builder.setAddress(new InetSocketAddress(5684));
++ builder.setAdvancedPskStore(pskStore);
++ DTLSConnector dtlsConnector = new DTLSConnector(builder.build());
++
++ endpointBuilder = new CoapEndpoint.Builder();
++ endpointBuilder.setConnector(dtlsConnector);
++ server.addEndpoint(endpointBuilder.build());
++
+ if (server.getEndpoints().isEmpty()) {
+ System.err.println("no endpoint available!");
+ System.exit(ERR_INIT_FAILED);
diff --git a/coin/provisioning/common/shared/testserver/cyrus/Dockerfile b/coin/provisioning/common/shared/testserver/cyrus/Dockerfile
index 55486175..4708ef5b 100644
--- a/coin/provisioning/common/shared/testserver/cyrus/Dockerfile
+++ b/coin/provisioning/common/shared/testserver/cyrus/Dockerfile
@@ -1,4 +1,4 @@
-FROM ubuntu:16.04
-ARG packages="cyrus-imapd avahi-daemon"
+FROM qt_ubuntu_16.04
+ARG packages="avahi-daemon cyrus-imapd"
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
index 2e525ec6..c20ed4f9 100644
--- a/coin/provisioning/common/shared/testserver/cyrus_18.04/Dockerfile
+++ b/coin/provisioning/common/shared/testserver/cyrus_18.04/Dockerfile
@@ -1,4 +1,4 @@
-FROM ubuntu:18.04
-ARG packages="cyrus-imapd avahi-daemon"
+FROM qt_ubuntu_18.04
+ARG packages="avahi-daemon cyrus-imapd"
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/Dockerfile b/coin/provisioning/common/shared/testserver/danted/Dockerfile
index 67c1159b..0d3ca461 100644
--- a/coin/provisioning/common/shared/testserver/danted/Dockerfile
+++ b/coin/provisioning/common/shared/testserver/danted/Dockerfile
@@ -1,8 +1,9 @@
-FROM ubuntu:16.04
-ARG packages="gdebi-core wget avahi-daemon"
+FROM qt_ubuntu_16.04
+ARG packages="avahi-daemon"
RUN apt-get update && apt-get install -y $packages && dpkg -l $packages
-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
+COPY dante-server_1.4.1-1_amd64.deb .
+RUN apt -y install ./dante-server_1.4.1-1_amd64.deb \
+ && rm -f ./dante-server_1.4.1-1_amd64.deb
EXPOSE 1080-1081
# install configurations and test data
diff --git a/coin/provisioning/common/shared/testserver/danted_18.04/Dockerfile b/coin/provisioning/common/shared/testserver/danted_18.04/Dockerfile
index f48794af..ba732bff 100644
--- a/coin/provisioning/common/shared/testserver/danted_18.04/Dockerfile
+++ b/coin/provisioning/common/shared/testserver/danted_18.04/Dockerfile
@@ -1,4 +1,4 @@
-FROM ubuntu:18.04
-ARG packages="dante-server avahi-daemon"
+FROM qt_ubuntu_18.04
+ARG packages="avahi-daemon dante-server"
RUN apt-get update && apt-get install -y $packages && dpkg -l $packages
EXPOSE 1080-1081
diff --git a/coin/provisioning/common/shared/testserver/docker_images.sh b/coin/provisioning/common/shared/testserver/docker_images.sh
index e98183d8..e4782a72 100755
--- a/coin/provisioning/common/shared/testserver/docker_images.sh
+++ b/coin/provisioning/common/shared/testserver/docker_images.sh
@@ -1,45 +1,14 @@
#!/usr/bin/env bash
+# Copyright (C) 2019 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
-#############################################################################
-##
-## 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.
-##
-## $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
-
-[ -x "$(command -v realpath)" ] && FILE=$(realpath ${BASH_SOURCE[0]}) || FILE=${BASH_SOURCE[0]}
-case $FILE in
- */*) SERVER_PATH="${FILE%/*}" ;;
- *) SERVER_PATH="." ;;
-esac
+set -e
+
+PROVISIONING_DIR="$(dirname "$0")/../../../"
+# shellcheck source=../../../common/unix/common.sourced.sh
+source "$PROVISIONING_DIR"/common/unix/common.sourced.sh
+# shellcheck source=../../../common/unix/DownloadURL.sh
+source "$PROVISIONING_DIR"/common/unix/DownloadURL.sh
# Sort files by their SHA-1, and then return the accumulated result
sha1tree () {
@@ -47,22 +16,81 @@ sha1tree () {
[ -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
+ 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)
-# 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.
+
+SERVER_PATH="$PROVISIONING_DIR/common/shared/testserver"
source "$SERVER_PATH/settings.sh"
+
+# Download all necessary dependencies outside of the dockerfiles, so that we
+# can use provisioning functionality for cached and verified downloads. In the
+# dockerfiles we just do COPY to put them where needed.
+
+echo 'Downloading support files for the docker images'
+
+DownloadURL \
+ http://ci-files01-hki.ci.qt.io/input/docker/rfc3252.txt \
+ https://tools.ietf.org/rfc/rfc3252.txt \
+ 50c323dedce95e4fdc2db35cd1b8ebf9d74711bf5296ef438b88d186d7dd082d
+cp rfc3252.txt "$SERVER_PATH/vsftpd/"
+cp rfc3252.txt "$SERVER_PATH/apache2/"
+
+DownloadURL \
+ http://ci-files01-hki.ci.qt.io/input/docker/dante-server_1.4.1-1_amd64.deb \
+ http://ppa.launchpad.net/dajhorn/dante/ubuntu/pool/main/d/dante/dante-server_1.4.1-1_amd64.deb \
+ 674a06f356cebd92c64920cec38a6687650a6f880198fbbad05aaaccca5c0a21
+mv dante-server_1.4.1-1_amd64.deb "$SERVER_PATH/danted/"
+
+DownloadURL \
+ http://ci-files01-hki.ci.qt.io/input/docker/FreeCoAP-0.7.tar.gz \
+ https://github.com/keith-cullen/FreeCoAP/archive/v0.7.tar.gz \
+ fa6602e27dc8eaee6e34ff53400c0519da0c5c7cd47bf6f13acb564f52a693ee \
+ FreeCoAP-0.7.tar.gz
+mv FreeCoAP-0.7.tar.gz "$SERVER_PATH/freecoap/"
+
+# Eclipse Californium 3.8.0, requires to apply a custom patch from
+# $SERVER_PATH/californium/ before usage
+DownloadURL \
+ http://ci-files01-hki.ci.qt.io/input/docker/californium-3.8.0.tar.gz \
+ https://github.com/eclipse-californium/californium/archive/refs/tags/3.8.0.tar.gz \
+ 24f8ca393f26c922739462e4586b8ced1ff75f99bfa795defa34a967b5a4a5a0 \
+ californium-3.8.0.tar.gz
+mv californium-3.8.0.tar.gz "$SERVER_PATH/californium/"
+
+
+echo 'Building the docker images...'
+
+# Build the 2 base layers: qt_ubuntu_1604, qt_ubuntu_1804.
+# These are the base for all other docker images.
+for image in qt_ubuntu_16.04 qt_ubuntu_18.04
+do
+ docker build -t $image \
+ --build-arg COIN_RUNS_IN_QT_COMPANY="$COIN_RUNS_IN_QT_COMPANY" \
+ "$SERVER_PATH/$image"
+done
+
+
for server in $testserver
do
+
+ # We label each docker image with `-t name:tag`.
+ # A tag labels a specific image version. In the docker compose file
+ # (docker-compose.yml) that launches the containers, the tag used is
+ # "latest". Here the images are additionally tagged with the SHA1 of each
+ # image directory (context), so that if needed we can modify
+ # docker-compose.yml and modify "latest" to a SHA in order to launch a
+ # very specific image, thus providing a way to stage
+ # backwards-incompatible changes across repositories.
+
context="$SERVER_PATH/$server"
- docker build -t qt-test-server-$server:$(sha1tree $context) $context
+ tag=$(sha1tree "$context")
+ docker build -t "qt-test-server-$server:latest" \
+ -t "qt-test-server-$server:$tag" \
+ "$context"
done
docker images
diff --git a/coin/provisioning/common/shared/testserver/docker_machine.sh b/coin/provisioning/common/shared/testserver/docker_machine.sh
index 8d791074..9abf0caa 100755
--- a/coin/provisioning/common/shared/testserver/docker_machine.sh
+++ b/coin/provisioning/common/shared/testserver/docker_machine.sh
@@ -1,53 +1,22 @@
#!/usr/bin/env bash
-
-#############################################################################
-##
-## 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.
-##
-## $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$
-##
-#############################################################################
+# Copyright (C) 2019 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
set -ex
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") ]
+if [ -z "$(docker-machine ls -q --filter "name=$TestMachine")" ]
then
- docker-machine create $@ $TestMachine
- docker-machine ip $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
+ docker-machine start "$TestMachine" && docker-machine regenerate-certs -f "$TestMachine"
fi
# Switch the docker engine to $TestMachine
-eval $(docker-machine env $TestMachine)
+eval "$(docker-machine env "$TestMachine")"
docker-machine ls
diff --git a/coin/provisioning/common/shared/testserver/docker_testserver.sh b/coin/provisioning/common/shared/testserver/docker_testserver.sh
index 3a7c87e8..7e743a80 100755
--- a/coin/provisioning/common/shared/testserver/docker_testserver.sh
+++ b/coin/provisioning/common/shared/testserver/docker_testserver.sh
@@ -1,41 +1,10 @@
#!/usr/bin/env bash
-
-#############################################################################
-##
-## 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.
-##
-## $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$
-##
-#############################################################################
+# Copyright (C) 2019 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
set -ex
-[ -x "$(command -v realpath)" ] && FILE=$(realpath ${BASH_SOURCE[0]}) || FILE=${BASH_SOURCE[0]}
+[ -x "$(command -v realpath)" ] && FILE=$(realpath "${BASH_SOURCE[0]}") || FILE="${BASH_SOURCE[0]}"
case $FILE in
*/*) SERVER_PATH="${FILE%/*}" ;;
*) SERVER_PATH="." ;;
@@ -54,4 +23,4 @@ esac
docker info
# Create images
-$SERVER_PATH/docker_images.sh
+"$SERVER_PATH/docker_images.sh"
diff --git a/coin/provisioning/common/shared/testserver/echo/Dockerfile b/coin/provisioning/common/shared/testserver/echo/Dockerfile
index 653ca714..a20419c6 100644
--- a/coin/provisioning/common/shared/testserver/echo/Dockerfile
+++ b/coin/provisioning/common/shared/testserver/echo/Dockerfile
@@ -1,4 +1,4 @@
-FROM ubuntu:16.04
-ARG packages="xinetd avahi-daemon"
+FROM qt_ubuntu_16.04
+ARG packages="avahi-daemon xinetd"
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
index 37f488cb..e86357a2 100644
--- a/coin/provisioning/common/shared/testserver/echo_18.04/Dockerfile
+++ b/coin/provisioning/common/shared/testserver/echo_18.04/Dockerfile
@@ -1,4 +1,4 @@
-FROM ubuntu:18.04
-ARG packages="xinetd avahi-daemon"
+FROM qt_ubuntu_18.04
+ARG packages="avahi-daemon xinetd"
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
index 2c665bd5..7b2a27a7 100644
--- a/coin/provisioning/common/shared/testserver/freecoap/Dockerfile
+++ b/coin/provisioning/common/shared/testserver/freecoap/Dockerfile
@@ -1,20 +1,14 @@
-FROM ubuntu:18.04
+FROM qt_ubuntu_18.04
+ARG packages="avahi-daemon autoconf automake libtool make libgnutls28-dev"
+RUN apt-get update && apt-get -y install $packages
-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
+ADD FreeCoAP-*.tar.gz .
+RUN mv FreeCoAP-* FreeCoAP
WORKDIR /root/src/FreeCoAP
-RUN autoreconf --install
-RUN ./configure
+RUN autoreconf --install && ./configure && make && make install
+WORKDIR sample/time_server
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/Dockerfile b/coin/provisioning/common/shared/testserver/ftp-proxy/Dockerfile
index c719c1eb..de3e5b86 100644
--- a/coin/provisioning/common/shared/testserver/ftp-proxy/Dockerfile
+++ b/coin/provisioning/common/shared/testserver/ftp-proxy/Dockerfile
@@ -1,4 +1,4 @@
-FROM ubuntu:16.04
-ARG packages="ftp-proxy avahi-daemon"
+FROM qt_ubuntu_16.04
+ARG packages="avahi-daemon ftp-proxy"
RUN apt-get update && apt-get install -y $packages && dpkg -l $packages
EXPOSE 2121
diff --git a/coin/provisioning/common/shared/testserver/ftp-proxy_18.04/Dockerfile b/coin/provisioning/common/shared/testserver/ftp-proxy_18.04/Dockerfile
index 0e7146ba..383ba140 100644
--- a/coin/provisioning/common/shared/testserver/ftp-proxy_18.04/Dockerfile
+++ b/coin/provisioning/common/shared/testserver/ftp-proxy_18.04/Dockerfile
@@ -1,4 +1,4 @@
-FROM ubuntu:18.04
-ARG packages="ftp-proxy avahi-daemon"
+FROM qt_ubuntu_18.04
+ARG packages="avahi-daemon ftp-proxy"
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
index cbee61d4..1c2a4b4d 100644
--- a/coin/provisioning/common/shared/testserver/iptables/Dockerfile
+++ b/coin/provisioning/common/shared/testserver/iptables/Dockerfile
@@ -1,4 +1,4 @@
-FROM ubuntu:16.04
-ARG packages="iptables avahi-daemon"
+FROM qt_ubuntu_16.04
+ARG packages="avahi-daemon iptables"
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
index 5865e9c8..49b277c7 100644
--- a/coin/provisioning/common/shared/testserver/iptables_18.04/Dockerfile
+++ b/coin/provisioning/common/shared/testserver/iptables_18.04/Dockerfile
@@ -1,4 +1,4 @@
-FROM ubuntu:18.04
-ARG packages="iptables avahi-daemon"
+FROM qt_ubuntu_18.04
+ARG packages="avahi-daemon iptables"
RUN apt-get update && apt-get install -y $packages && dpkg -l $packages
EXPOSE 1357
diff --git a/coin/provisioning/common/shared/testserver/qt_ubuntu_16.04/Dockerfile b/coin/provisioning/common/shared/testserver/qt_ubuntu_16.04/Dockerfile
new file mode 100644
index 00000000..a9c8b9ef
--- /dev/null
+++ b/coin/provisioning/common/shared/testserver/qt_ubuntu_16.04/Dockerfile
@@ -0,0 +1,5 @@
+FROM ubuntu:16.04
+ARG COIN_RUNS_IN_QT_COMPANY
+RUN test x"$COIN_RUNS_IN_QT_COMPANY" = xtrue \
+ && sed -i 's;\(archive\|security\)\.ubuntu\.com;repo-clones.ci.qt.io/apt-mirror/mirror;' /etc/apt/sources.list \
+ || echo "Internal package repository not found. Using public repositories."
diff --git a/coin/provisioning/common/shared/testserver/qt_ubuntu_18.04/Dockerfile b/coin/provisioning/common/shared/testserver/qt_ubuntu_18.04/Dockerfile
new file mode 100644
index 00000000..f62a29c6
--- /dev/null
+++ b/coin/provisioning/common/shared/testserver/qt_ubuntu_18.04/Dockerfile
@@ -0,0 +1,5 @@
+FROM ubuntu:18.04
+ARG COIN_RUNS_IN_QT_COMPANY
+RUN test x"$COIN_RUNS_IN_QT_COMPANY" = xtrue \
+ && sed -i 's;\(archive\|security\)\.ubuntu\.com;repo-clones.ci.qt.io/apt-mirror/mirror;' /etc/apt/sources.list \
+ || echo "Internal package repository not found. Using public repositories."
diff --git a/coin/provisioning/common/shared/testserver/settings.sh b/coin/provisioning/common/shared/testserver/settings.sh
index 27832773..03276eeb 100644..100755
--- a/coin/provisioning/common/shared/testserver/settings.sh
+++ b/coin/provisioning/common/shared/testserver/settings.sh
@@ -1,35 +1,6 @@
-#############################################################################
-##
-## 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.
-##
-## $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$
-##
-#############################################################################
+#!/usr/bin/env bash
+# Copyright (C) 2019 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
set -ex
diff --git a/coin/provisioning/common/shared/testserver/squid/Dockerfile b/coin/provisioning/common/shared/testserver/squid/Dockerfile
index f0ed68b3..330d3929 100644
--- a/coin/provisioning/common/shared/testserver/squid/Dockerfile
+++ b/coin/provisioning/common/shared/testserver/squid/Dockerfile
@@ -1,4 +1,4 @@
-FROM ubuntu:16.04
-ARG packages="squid avahi-daemon"
+FROM qt_ubuntu_16.04
+ARG packages="avahi-daemon squid"
RUN apt-get update && apt-get install -y $packages && dpkg -l $packages
EXPOSE 3128-3130
diff --git a/coin/provisioning/common/shared/testserver/squid_18.04/Dockerfile b/coin/provisioning/common/shared/testserver/squid_18.04/Dockerfile
index 208feec7..239ea4c8 100644
--- a/coin/provisioning/common/shared/testserver/squid_18.04/Dockerfile
+++ b/coin/provisioning/common/shared/testserver/squid_18.04/Dockerfile
@@ -1,4 +1,4 @@
-FROM ubuntu:18.04
-ARG packages="squid avahi-daemon"
+FROM qt_ubuntu_18.04
+ARG packages="avahi-daemon squid"
RUN apt-get update && apt-get install -y $packages && dpkg -l $packages
EXPOSE 3128-3130
diff --git a/coin/provisioning/common/shared/testserver/vsftpd/Dockerfile b/coin/provisioning/common/shared/testserver/vsftpd/Dockerfile
index af6cd7c7..4c2e00e4 100644
--- a/coin/provisioning/common/shared/testserver/vsftpd/Dockerfile
+++ b/coin/provisioning/common/shared/testserver/vsftpd/Dockerfile
@@ -1,7 +1,7 @@
-FROM ubuntu:16.04
-ARG packages="vsftpd ftp wget avahi-daemon"
+FROM qt_ubuntu_16.04
+ARG packages="avahi-daemon vsftpd ftp"
RUN apt-get update && apt-get install -y $packages && dpkg -l $packages
EXPOSE 20-21
# install configurations and test data
-RUN wget https://tools.ietf.org/rfc/rfc3252.txt
+COPY rfc3252.txt .
diff --git a/coin/provisioning/common/shared/testserver/vsftpd_18.04/Dockerfile b/coin/provisioning/common/shared/testserver/vsftpd_18.04/Dockerfile
index 843472fd..8886308c 100644
--- a/coin/provisioning/common/shared/testserver/vsftpd_18.04/Dockerfile
+++ b/coin/provisioning/common/shared/testserver/vsftpd_18.04/Dockerfile
@@ -1,4 +1,4 @@
-FROM ubuntu:18.04
-ARG packages="vsftpd avahi-daemon"
+FROM qt_ubuntu_18.04
+ARG packages="avahi-daemon vsftpd"
RUN apt-get update && apt-get install -y $packages && dpkg -l $packages
EXPOSE 20-21
diff --git a/coin/provisioning/common/shared/triplets/arm64-windows-qt.cmake b/coin/provisioning/common/shared/triplets/arm64-windows-qt.cmake
new file mode 100644
index 00000000..4d9d5d69
--- /dev/null
+++ b/coin/provisioning/common/shared/triplets/arm64-windows-qt.cmake
@@ -0,0 +1,7 @@
+set(VCPKG_TARGET_ARCHITECTURE arm64)
+
+# Default settings of the triplet from the official vcpkg registry
+set(VCPKG_CRT_LINKAGE dynamic)
+set(VCPKG_LIBRARY_LINKAGE dynamic)
+
+# Qt custom per-port customizations
diff --git a/coin/provisioning/common/shared/triplets/armeabi-v7a-android-qt.cmake b/coin/provisioning/common/shared/triplets/armeabi-v7a-android-qt.cmake
new file mode 100644
index 00000000..fba6a00a
--- /dev/null
+++ b/coin/provisioning/common/shared/triplets/armeabi-v7a-android-qt.cmake
@@ -0,0 +1,15 @@
+set(VCPKG_TARGET_ARCHITECTURE arm)
+
+# Default settings of the triplet from the official vcpkg registry
+set(VCPKG_CRT_LINKAGE static)
+set(VCPKG_LIBRARY_LINKAGE static)
+
+# Qt custom per-port customizations
+if(PORT MATCHES "openssl")
+ set(VCPKG_CRT_LINKAGE dynamic)
+ set(VCPKG_LIBRARY_LINKAGE dynamic)
+endif()
+
+set(VCPKG_CMAKE_SYSTEM_NAME Android)
+set(VCPKG_MAKE_BUILD_TRIPLET "--host=armv7a-linux-androideabi")
+set(VCPKG_CMAKE_CONFIGURE_OPTIONS -DANDROID_ABI=armeabi-v7a -DANDROID_ARM_NEON=ON)
diff --git a/coin/provisioning/common/shared/triplets/x64-linux-qt.cmake b/coin/provisioning/common/shared/triplets/x64-linux-qt.cmake
new file mode 100644
index 00000000..95cc1934
--- /dev/null
+++ b/coin/provisioning/common/shared/triplets/x64-linux-qt.cmake
@@ -0,0 +1,13 @@
+set(VCPKG_TARGET_ARCHITECTURE x64)
+
+# Default settings of the triplet from the official vcpkg registry
+set(VCPKG_CRT_LINKAGE dynamic)
+set(VCPKG_LIBRARY_LINKAGE static)
+
+# Qt custom per-port customizations
+if(PORT MATCHES "openssl")
+ set(VCPKG_LIBRARY_LINKAGE dynamic)
+ set(VCPKG_FIXUP_ELF_RPATH ON)
+endif()
+
+set(VCPKG_CMAKE_SYSTEM_NAME Linux)
diff --git a/coin/provisioning/common/shared/triplets/x64-windows-qt.cmake b/coin/provisioning/common/shared/triplets/x64-windows-qt.cmake
new file mode 100644
index 00000000..856b756e
--- /dev/null
+++ b/coin/provisioning/common/shared/triplets/x64-windows-qt.cmake
@@ -0,0 +1,7 @@
+set(VCPKG_TARGET_ARCHITECTURE x64)
+
+# Default settings of the triplet from the official vcpkg registry
+set(VCPKG_CRT_LINKAGE dynamic)
+set(VCPKG_LIBRARY_LINKAGE dynamic)
+
+# Qt custom per-port customizations
diff --git a/coin/provisioning/common/shared/triplets/x86-android-qt.cmake b/coin/provisioning/common/shared/triplets/x86-android-qt.cmake
new file mode 100644
index 00000000..a4b74012
--- /dev/null
+++ b/coin/provisioning/common/shared/triplets/x86-android-qt.cmake
@@ -0,0 +1,15 @@
+set(VCPKG_TARGET_ARCHITECTURE x86)
+
+# Default settings of the triplet from the official vcpkg registry
+set(VCPKG_CRT_LINKAGE static)
+set(VCPKG_LIBRARY_LINKAGE static)
+
+# Qt custom per-port customizations
+if(PORT MATCHES "openssl")
+ set(VCPKG_CRT_LINKAGE dynamic)
+ set(VCPKG_LIBRARY_LINKAGE dynamic)
+endif()
+
+set(VCPKG_CMAKE_SYSTEM_NAME Android)
+set(VCPKG_MAKE_BUILD_TRIPLET "--host=i686-linux-android")
+set(VCPKG_CMAKE_CONFIGURE_OPTIONS -DANDROID_ABI=x86)
diff --git a/coin/provisioning/common/shared/triplets/x86_64-android-qt.cmake b/coin/provisioning/common/shared/triplets/x86_64-android-qt.cmake
new file mode 100644
index 00000000..47afae58
--- /dev/null
+++ b/coin/provisioning/common/shared/triplets/x86_64-android-qt.cmake
@@ -0,0 +1,15 @@
+set(VCPKG_TARGET_ARCHITECTURE x64)
+
+# Default settings of the triplet from the official vcpkg registry
+set(VCPKG_CRT_LINKAGE static)
+set(VCPKG_LIBRARY_LINKAGE static)
+
+# Qt custom per-port customizations
+if(PORT MATCHES "openssl")
+ set(VCPKG_CRT_LINKAGE dynamic)
+ set(VCPKG_LIBRARY_LINKAGE dynamic)
+endif()
+
+set(VCPKG_CMAKE_SYSTEM_NAME Android)
+set(VCPKG_MAKE_BUILD_TRIPLET "--host=x86_64-linux-android")
+set(VCPKG_CMAKE_CONFIGURE_OPTIONS -DANDROID_ABI=x86_64)
diff --git a/coin/provisioning/common/shared/vcpkg-configuration.json b/coin/provisioning/common/shared/vcpkg-configuration.json
new file mode 100644
index 00000000..83f4f440
--- /dev/null
+++ b/coin/provisioning/common/shared/vcpkg-configuration.json
@@ -0,0 +1,9 @@
+{
+ "$schema": "https://raw.githubusercontent.com/microsoft/vcpkg-tool/main/docs/vcpkg-configuration.schema.json",
+ "default-registry": {
+ "kind": "git",
+ "repository": "https://git.qt.io/mrmsdbdl/vcpkg-mirror",
+ "baseline": "8eb57355a4ffb410a2e94c07b4dca2dffbee8e50"
+ },
+ "overlay-triplets": [ "./../../shared/triplets" ]
+}
diff --git a/coin/provisioning/common/shared/vcpkg_registry_mirror.txt b/coin/provisioning/common/shared/vcpkg_registry_mirror.txt
new file mode 100644
index 00000000..546ef5b6
--- /dev/null
+++ b/coin/provisioning/common/shared/vcpkg_registry_mirror.txt
@@ -0,0 +1 @@
+https://git.qt.io/mrmsdbdl/vcpkg-mirror.git
diff --git a/coin/provisioning/common/shared/vcpkg_tool_release_tag.txt b/coin/provisioning/common/shared/vcpkg_tool_release_tag.txt
new file mode 100644
index 00000000..3faa2683
--- /dev/null
+++ b/coin/provisioning/common/shared/vcpkg_tool_release_tag.txt
@@ -0,0 +1 @@
+vcpkg_tool_release_tag=2023-11-16
diff --git a/coin/provisioning/common/shared/vcpkg_version.txt b/coin/provisioning/common/shared/vcpkg_version.txt
new file mode 100644
index 00000000..d2aa3aa3
--- /dev/null
+++ b/coin/provisioning/common/shared/vcpkg_version.txt
@@ -0,0 +1 @@
+vcpkg_version=2023.10.19