aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHeikki Halmet <heikki.halmet@qt.io>2022-06-20 08:57:07 +0300
committerHeikki Halmet <heikki.halmet@qt.io>2022-11-05 11:52:04 +0000
commit43a8ea3bbd0490eed0b526771ae457172d8a9a5f (patch)
tree08d58149df8a8ad10627024142f7d16e54afeb05
parent5f48df25c02c32bd64b0037b7a170ac991c4ca46 (diff)
Add openSUSE LEAP 15.4 (KDE) to CI
Graphichs Platform: X11 (System default) in image with suffix 50 Graphics Platform: Wayland (Plasma (Wayland) in image with suffix 51 Task-number: QTQAINFRA-5049 Change-Id: If4b208bc12bd272c757aac61ffc9ef7a88df8f7c Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Jani Heikkinen <jani.heikkinen@qt.io> (cherry picked from commit 9c21dd75d264b349621ff2093dae36aeb2032161) Reviewed-by: Tony Sarajärvi <tony.sarajarvi@qt.io>
-rw-r--r--coin/platform_configs/cmake_platforms.yaml4
-rw-r--r--coin/platform_configs/cmake_platforms_wasm.yaml8
-rw-r--r--coin/pre-provisioning/qtci-linux-openSUSE-15.4-x86_64/README_MANUAL_INSTALLATIONS42
-rwxr-xr-xcoin/provisioning/qtci-linux-openSUSE-15.4-x86_64/01-disable_net_lso.sh4
-rwxr-xr-xcoin/provisioning/qtci-linux-openSUSE-15.4-x86_64/01-install_telegraf.sh3
-rwxr-xr-xcoin/provisioning/qtci-linux-openSUSE-15.4-x86_64/01-set-ulimit.sh6
-rwxr-xr-xcoin/provisioning/qtci-linux-openSUSE-15.4-x86_64/01-systemsetup.sh73
-rwxr-xr-xcoin/provisioning/qtci-linux-openSUSE-15.4-x86_64/02-disable-ntp.sh3
-rwxr-xr-xcoin/provisioning/qtci-linux-openSUSE-15.4-x86_64/03-enable-repos.sh49
-rwxr-xr-xcoin/provisioning/qtci-linux-openSUSE-15.4-x86_64/04-zypperpackages.sh97
-rwxr-xr-xcoin/provisioning/qtci-linux-openSUSE-15.4-x86_64/08-libclang-v100-dyn.sh7
-rwxr-xr-xcoin/provisioning/qtci-linux-openSUSE-15.4-x86_64/08-libclang.sh7
-rwxr-xr-xcoin/provisioning/qtci-linux-openSUSE-15.4-x86_64/08-pythondev.sh51
-rwxr-xr-xcoin/provisioning/qtci-linux-openSUSE-15.4-x86_64/09-cmake.sh5
-rwxr-xr-xcoin/provisioning/qtci-linux-openSUSE-15.4-x86_64/10-cmake-min-supported.sh8
-rwxr-xr-xcoin/provisioning/qtci-linux-openSUSE-15.4-x86_64/20-sccache.sh3
-rwxr-xr-xcoin/provisioning/qtci-linux-openSUSE-15.4-x86_64/22-mqtt_broker.sh43
-rwxr-xr-xcoin/provisioning/qtci-linux-openSUSE-15.4-x86_64/30-install-conan.sh6
-rwxr-xr-xcoin/provisioning/qtci-linux-openSUSE-15.4-x86_64/30-install-git.sh6
-rwxr-xr-xcoin/provisioning/qtci-linux-openSUSE-15.4-x86_64/55-emsdk.sh45
-rwxr-xr-xcoin/provisioning/qtci-linux-openSUSE-15.4-x86_64/70-install_QemuGA.sh46
-rwxr-xr-xcoin/provisioning/qtci-linux-openSUSE-15.4-x86_64/80-install-chrome.sh55
-rwxr-xr-xcoin/provisioning/qtci-linux-openSUSE-15.4-x86_64/90-squish.sh4
-rwxr-xr-xcoin/provisioning/qtci-linux-openSUSE-15.4-x86_64/99-unset-proxy.sh45
-rwxr-xr-xcoin/provisioning/qtci-linux-openSUSE-15.4-x86_64/99-version.sh54
25 files changed, 668 insertions, 6 deletions
diff --git a/coin/platform_configs/cmake_platforms.yaml b/coin/platform_configs/cmake_platforms.yaml
index e43d4679..add0169d 100644
--- a/coin/platform_configs/cmake_platforms.yaml
+++ b/coin/platform_configs/cmake_platforms.yaml
@@ -24,8 +24,8 @@ Configurations:
'NON_QTBASE_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR}}'
]
-
- Id: 'OpenSUSE-15.3-host'
- Template: 'qtci-linux-openSUSE-15.3-x86_64-50'
+ Id: 'OpenSUSE-15.4-host'
+ Template: 'qtci-linux-openSUSE-15.4-x86_64-50'
Compiler: 'GCC'
Features: ['Sccache', 'WarningsAreErrors', 'UseConfigure']
Configure arguments: '-nomake examples -developer-build'
diff --git a/coin/platform_configs/cmake_platforms_wasm.yaml b/coin/platform_configs/cmake_platforms_wasm.yaml
index 4f7dea69..8f474e68 100644
--- a/coin/platform_configs/cmake_platforms_wasm.yaml
+++ b/coin/platform_configs/cmake_platforms_wasm.yaml
@@ -1,10 +1,10 @@
Version: 2
Configurations:
-
- Template: 'qtci-linux-openSUSE-15.3-x86_64-50'
+ Template: 'qtci-linux-openSUSE-15.4-x86_64-50'
Target os: 'WebAssembly'
Compiler: 'GCC'
- Platform dependency: 'OpenSUSE-15.3-host'
+ Platform dependency: 'OpenSUSE-15.4-host'
Features: ['Packaging', 'Sccache', 'DisableTests', 'UseConfigure']
Environment variables: [
'EM_CONFIG={{.Env.EMSDK}}/.emscripten',
@@ -15,10 +15,10 @@ Configurations:
]
-
Id: 'webassembly-thread-asyncify'
- Template: 'qtci-linux-openSUSE-15.3-x86_64-50'
+ Template: 'qtci-linux-openSUSE-15.4-x86_64-50'
Target os: 'WebAssembly'
Compiler: 'GCC'
- Platform dependency: 'OpenSUSE-15.3-host'
+ Platform dependency: 'OpenSUSE-15.4-host'
Features: ['Sccache', 'DisableTests']
Environment variables: [
'EM_CONFIG={{.Env.EMSDK}}/.emscripten',
diff --git a/coin/pre-provisioning/qtci-linux-openSUSE-15.4-x86_64/README_MANUAL_INSTALLATIONS b/coin/pre-provisioning/qtci-linux-openSUSE-15.4-x86_64/README_MANUAL_INSTALLATIONS
new file mode 100644
index 00000000..1f7a3044
--- /dev/null
+++ b/coin/pre-provisioning/qtci-linux-openSUSE-15.4-x86_64/README_MANUAL_INSTALLATIONS
@@ -0,0 +1,42 @@
+### OpenSUSE Leap 15.4 ###
+## KDE ##
+## In qtci-linux-openSUSE-15.4-x86_64-50 > Graphics Platform: X11 (System default) ##
+## In qtci-linux-openSUSE-15.4-x86_64-51 > Graphics Platform: Wayland (Plasma (Wayland))##
+
+# Installation #
+Language: English (US)
+Keyboard Layout: English (US)
+
+Activate online repositories during installation (yes)
+Use default selections
+
+Desktop with KDE Plasma
+
+Suggested Partitioning - default values
+
+Time Zone: UTC
+
+## Configurations ##
+Download and run coin-setup binary
+YaST - System - Services Manager - Firewalld - Stop
+# enable ssh access
+sudo rcsshd start
+Workspace Behavior - Screen locking - Lock screen automatically - unselect options
+Startup and Shutdown - Behavior - Login Screen - Select Automatically log in with session (System default)
+Add below to '$HOME/.config/autostart/coin-bootstrap-agent.desktop'
+ [Desktop Entry]
+ Type=Application
+ Exec=/usr/bin/gnome-terminal -e "/home/qt/bootstrap-agent /dev/ttyS0"
+ Hidden=false
+ X-GNOME-Autostart-enabled=true
+ Name=Coin
+Notifications
+ Critical notifications - unselect
+ Log priority notifications - unselect
+ Application progress: Show in task manager - unselect
+ Show in notifications - unselect
+ Notification badges: Show in task manager - unselect
+Display and Monitor - Display Configuration - 1280x800
+Power Management: Screen Energy Saving - unselect
+
+add 'qt ALL=NOPASSWD: ALL' to /etc/sudoers.d/qt
diff --git a/coin/provisioning/qtci-linux-openSUSE-15.4-x86_64/01-disable_net_lso.sh b/coin/provisioning/qtci-linux-openSUSE-15.4-x86_64/01-disable_net_lso.sh
new file mode 100755
index 00000000..c404c366
--- /dev/null
+++ b/coin/provisioning/qtci-linux-openSUSE-15.4-x86_64/01-disable_net_lso.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+
+echo "ethtool -K \${DEVICE_IFACE} tso off" | sudo tee -a /etc/NetworkManager/dispatcher.d/net_tso_off
+sudo chmod +x /etc/NetworkManager/dispatcher.d/net_tso_off
diff --git a/coin/provisioning/qtci-linux-openSUSE-15.4-x86_64/01-install_telegraf.sh b/coin/provisioning/qtci-linux-openSUSE-15.4-x86_64/01-install_telegraf.sh
new file mode 100755
index 00000000..729f9003
--- /dev/null
+++ b/coin/provisioning/qtci-linux-openSUSE-15.4-x86_64/01-install_telegraf.sh
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+"$(dirname "$0")"/../common/unix/telegraf_install.sh
diff --git a/coin/provisioning/qtci-linux-openSUSE-15.4-x86_64/01-set-ulimit.sh b/coin/provisioning/qtci-linux-openSUSE-15.4-x86_64/01-set-ulimit.sh
new file mode 100755
index 00000000..dadc0781
--- /dev/null
+++ b/coin/provisioning/qtci-linux-openSUSE-15.4-x86_64/01-set-ulimit.sh
@@ -0,0 +1,6 @@
+#!/usr/bin/env bash
+
+set -ex
+
+BASEDIR=$(dirname "$0")
+"$BASEDIR/../common/linux/set_ulimit.sh"
diff --git a/coin/provisioning/qtci-linux-openSUSE-15.4-x86_64/01-systemsetup.sh b/coin/provisioning/qtci-linux-openSUSE-15.4-x86_64/01-systemsetup.sh
new file mode 100755
index 00000000..57eb01e9
--- /dev/null
+++ b/coin/provisioning/qtci-linux-openSUSE-15.4-x86_64/01-systemsetup.sh
@@ -0,0 +1,73 @@
+#!/usr/bin/env bash
+#############################################################################
+##
+## Copyright (C) 2022 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
+
+BASEDIR=$(dirname "$0")
+# shellcheck source=../common/shared/network_test_server_ip.txt
+source "$BASEDIR/../common/shared/network_test_server_ip.txt"
+# shellcheck source=../common/unix/check_and_set_proxy.sh
+source "${BASH_SOURCE%/*}/../common/unix/check_and_set_proxy.sh"
+
+# https://bugzilla.opensuse.org/show_bug.cgi?id=1032027
+sudo btrfs quota disable /
+
+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
+
+sudo systemctl stop packagekit
+sudo systemctl disable packagekit
+sudo systemctl mask packagekit
+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
+ sudo sed -i "s|HTTP_PROXY=\".*\"|HTTP_PROXY=\"$proxy\"|" /etc/sysconfig/proxy
+fi
diff --git a/coin/provisioning/qtci-linux-openSUSE-15.4-x86_64/02-disable-ntp.sh b/coin/provisioning/qtci-linux-openSUSE-15.4-x86_64/02-disable-ntp.sh
new file mode 100755
index 00000000..38707a8a
--- /dev/null
+++ b/coin/provisioning/qtci-linux-openSUSE-15.4-x86_64/02-disable-ntp.sh
@@ -0,0 +1,3 @@
+#!/usr/bin/env bash
+# shellcheck source=../common/linux/disable-ntp_linux.sh
+source "${BASH_SOURCE%/*}/../common/linux/disable-ntp_linux.sh"
diff --git a/coin/provisioning/qtci-linux-openSUSE-15.4-x86_64/03-enable-repos.sh b/coin/provisioning/qtci-linux-openSUSE-15.4-x86_64/03-enable-repos.sh
new file mode 100755
index 00000000..58ab7727
--- /dev/null
+++ b/coin/provisioning/qtci-linux-openSUSE-15.4-x86_64/03-enable-repos.sh
@@ -0,0 +1,49 @@
+#!/usr/bin/env bash
+
+#############################################################################
+##
+## Copyright (C) 2020 The Qt Company Ltd.
+## Contact: https://www.qt.io/licensing/
+##
+## This file is part of the provisioning scripts of the Qt Toolkit.
+##
+## $QT_BEGIN_LICENSE:LGPL$
+## 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 https://www.qt.io/terms-conditions. For further
+## information use the contact form at https://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 3 as published by the Free Software
+## Foundation and appearing in the file LICENSE.LGPL3 included in the
+## packaging of this file. Please review the following information to
+## ensure the GNU Lesser General Public License version 3 requirements
+## will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+##
+## GNU General Public License Usage
+## Alternatively, this file may be used under the terms of the GNU
+## General Public License version 2.0 or (at your option) the GNU General
+## Public license version 3 or any later version approved by the KDE Free
+## Qt Foundation. The licenses are as published by the Free Software
+## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+## included in the packaging of this file. Please review the following
+## information to ensure the GNU General Public License requirements will
+## be met: https://www.gnu.org/licenses/gpl-2.0.html and
+## https://www.gnu.org/licenses/gpl-3.0.html.
+##
+## $QT_END_LICENSE$
+##
+#############################################################################
+
+set -ex
+
+sudo sed -i "s#baseurl=.*#baseurl=http://repo-clones.ci.qt.io/repos/opensuse/distribution/leap/15.4/repo/oss/#g" /etc/zypp/repos.d/repo-oss.repo
+sudo sed -i "s#baseurl=.*#baseurl=http://repo-clones.ci.qt.io/repos/opensuse/distribution/leap/15.4/repo/non-oss/#g" /etc/zypp/repos.d/repo-non-oss.repo
+sudo sed -i "s#baseurl=.*#baseurl=http://repo-clones.ci.qt.io/repos/opensuse/update/leap/15.4/oss/#g" /etc/zypp/repos.d/repo-update.repo
+sudo sed -i "s#baseurl=.*#baseurl=http://repo-clones.ci.qt.io/repos/opensuse/update/leap/15.4/non-oss/#g" /etc/zypp/repos.d/repo-update-non-oss.repo
+
+sudo zypper lr -u
diff --git a/coin/provisioning/qtci-linux-openSUSE-15.4-x86_64/04-zypperpackages.sh b/coin/provisioning/qtci-linux-openSUSE-15.4-x86_64/04-zypperpackages.sh
new file mode 100755
index 00000000..070c026b
--- /dev/null
+++ b/coin/provisioning/qtci-linux-openSUSE-15.4-x86_64/04-zypperpackages.sh
@@ -0,0 +1,97 @@
+#!/usr/bin/env bash
+#############################################################################
+##
+## Copyright (C) 2022 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
+
+sudo zypper -nq install git gcc9 gcc9-c++ ninja
+sudo /usr/sbin/update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 1 \
+ --slave /usr/bin/g++ g++ /usr/bin/g++-9 \
+ --slave /usr/bin/cc cc /usr/bin/gcc-9 \
+ --slave /usr/bin/c++ c++ /usr/bin/g++-9
+
+sudo zypper -nq install bison flex gperf \
+ zlib-devel \
+ systemd-devel \
+ glib2-devel \
+ libopenssl-devel \
+ freetype2-devel \
+ fontconfig-devel \
+ sqlite3-devel \
+ libxkbcommon-devel \
+ libxkbcommon-x11-devel \
+ pcre2-devel libpng16-devel
+
+# EGL support
+sudo zypper -nq install Mesa-libEGL-devel Mesa-libGL-devel
+
+
+# Xinput2
+sudo zypper -nq install libXi-devel
+
+# system provided XCB libraries
+sudo zypper -nq install xcb-util-devel xcb-util-image-devel xcb-util-keysyms-devel \
+ xcb-util-wm-devel xcb-util-renderutil-devel xcb-util-cursor-devel
+
+# ICU
+sudo zypper -nq install libicu-devel
+
+# qtwebengine
+sudo zypper -nq install alsa-devel dbus-1-devel libxkbfile-devel \
+ libXcomposite-devel libXcursor-devel libXrandr-devel libXtst-devel \
+ mozilla-nspr-devel mozilla-nss-devel nodejs12 glproto-devel \
+ libxshmfence-devel libXdamage-devel
+
+# qtwebkit
+sudo zypper -nq install libxml2-devel libxslt-devel
+
+# GStreamer (qtwebkit and qtmultimedia), pulseaudio (qtmultimedia)
+sudo zypper -nq install gstreamer-devel gstreamer-plugins-base-devel libpulse-devel
+
+# cups
+sudo zypper -nq install cups-devel
+
+#speech-dispatcher
+sudo zypper -nq install libspeechd-devel
+
+# make
+sudo zypper -nq install make
+
+# Tools to build Git
+sudo zypper -nq install autoconf libcurl-devel libexpat-devel
+
+gccVersion="$(gcc --version |grep gcc |cut -b 17-23)"
+echo "GCC = $gccVersion" >> versions.txt
+
+OpenSSLVersion="$(openssl version |cut -b 9-14)"
+echo "OpenSSL = $OpenSSLVersion" >> ~/versions.txt
diff --git a/coin/provisioning/qtci-linux-openSUSE-15.4-x86_64/08-libclang-v100-dyn.sh b/coin/provisioning/qtci-linux-openSUSE-15.4-x86_64/08-libclang-v100-dyn.sh
new file mode 100755
index 00000000..b0080cbc
--- /dev/null
+++ b/coin/provisioning/qtci-linux-openSUSE-15.4-x86_64/08-libclang-v100-dyn.sh
@@ -0,0 +1,7 @@
+#!/usr/bin/env bash
+
+set -ex
+
+BASEDIR=$(dirname "$0")
+# shellcheck source=../common/unix/libclang-v100-dyn.sh
+"$BASEDIR/../common/unix/libclang-v100-dyn.sh"
diff --git a/coin/provisioning/qtci-linux-openSUSE-15.4-x86_64/08-libclang.sh b/coin/provisioning/qtci-linux-openSUSE-15.4-x86_64/08-libclang.sh
new file mode 100755
index 00000000..bbe2b4b4
--- /dev/null
+++ b/coin/provisioning/qtci-linux-openSUSE-15.4-x86_64/08-libclang.sh
@@ -0,0 +1,7 @@
+#!/usr/bin/env bash
+
+set -ex
+
+BASEDIR=$(dirname "$0")
+# shellcheck source=../common/unix/libclang.sh
+"$BASEDIR/../common/unix/libclang.sh"
diff --git a/coin/provisioning/qtci-linux-openSUSE-15.4-x86_64/08-pythondev.sh b/coin/provisioning/qtci-linux-openSUSE-15.4-x86_64/08-pythondev.sh
new file mode 100755
index 00000000..ad810d3e
--- /dev/null
+++ b/coin/provisioning/qtci-linux-openSUSE-15.4-x86_64/08-pythondev.sh
@@ -0,0 +1,51 @@
+#!/usr/bin/env bash
+#############################################################################
+##
+## Copyright (C) 2022 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$
+##
+#############################################################################
+
+# provides: python development libraries
+# version: provided by default Linux distribution repository
+# needed to build pyside
+
+set -ex
+
+sudo zypper -nq install python-devel python-xml
+
+# install python3
+sudo zypper -nq install 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"
+
+# shellcheck source=../common/unix/SetEnvVar.sh
+source "${BASH_SOURCE%/*}/../common/unix/SetEnvVar.sh"
+SetEnvVar "PYTHON3_WHEEL_CACHE" "$HOME/python3-wheels"
diff --git a/coin/provisioning/qtci-linux-openSUSE-15.4-x86_64/09-cmake.sh b/coin/provisioning/qtci-linux-openSUSE-15.4-x86_64/09-cmake.sh
new file mode 100755
index 00000000..5eb53566
--- /dev/null
+++ b/coin/provisioning/qtci-linux-openSUSE-15.4-x86_64/09-cmake.sh
@@ -0,0 +1,5 @@
+#!/usr/bin/env bash
+
+set -ex
+
+"$(dirname "$0")/../common/linux/cmake_linux.sh"
diff --git a/coin/provisioning/qtci-linux-openSUSE-15.4-x86_64/10-cmake-min-supported.sh b/coin/provisioning/qtci-linux-openSUSE-15.4-x86_64/10-cmake-min-supported.sh
new file mode 100755
index 00000000..cc79d066
--- /dev/null
+++ b/coin/provisioning/qtci-linux-openSUSE-15.4-x86_64/10-cmake-min-supported.sh
@@ -0,0 +1,8 @@
+#!/usr/bin/env bash
+
+set -ex
+
+"$(dirname "$0")/../common/linux/cmake_min_supported.sh"
+
+# For testing Qt's CMake deployment API with CMake < 3.21, we need patchelf.
+sudo zypper -nq install patchelf
diff --git a/coin/provisioning/qtci-linux-openSUSE-15.4-x86_64/20-sccache.sh b/coin/provisioning/qtci-linux-openSUSE-15.4-x86_64/20-sccache.sh
new file mode 100755
index 00000000..b371d947
--- /dev/null
+++ b/coin/provisioning/qtci-linux-openSUSE-15.4-x86_64/20-sccache.sh
@@ -0,0 +1,3 @@
+#!/usr/bin/env bash
+
+source "${BASH_SOURCE%/*}/../common/linux/sccache.sh"
diff --git a/coin/provisioning/qtci-linux-openSUSE-15.4-x86_64/22-mqtt_broker.sh b/coin/provisioning/qtci-linux-openSUSE-15.4-x86_64/22-mqtt_broker.sh
new file mode 100755
index 00000000..e0875b37
--- /dev/null
+++ b/coin/provisioning/qtci-linux-openSUSE-15.4-x86_64/22-mqtt_broker.sh
@@ -0,0 +1,43 @@
+#!/usr/bin/env bash
+
+#############################################################################
+##
+## Copyright (C) 2017 The Qt Company Ltd.
+## Contact: https://www.qt.io/licensing/
+##
+## This file is part of the provisioning scripts of the Qt Toolkit.
+##
+## $QT_BEGIN_LICENSE:LGPL$
+## 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 https://www.qt.io/terms-conditions. For further
+## information use the contact form at https://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 3 as published by the Free Software
+## Foundation and appearing in the file LICENSE.LGPL3 included in the
+## packaging of this file. Please review the following information to
+## ensure the GNU Lesser General Public License version 3 requirements
+## will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+##
+## GNU General Public License Usage
+## Alternatively, this file may be used under the terms of the GNU
+## General Public License version 2.0 or (at your option) the GNU General
+## Public license version 3 or any later version approved by the KDE Free
+## Qt Foundation. The licenses are as published by the Free Software
+## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+## included in the packaging of this file. Please review the following
+## information to ensure the GNU General Public License requirements will
+## be met: https://www.gnu.org/licenses/gpl-2.0.html and
+## https://www.gnu.org/licenses/gpl-3.0.html.
+##
+## $QT_END_LICENSE$
+##
+#############################################################################
+
+# shellcheck source=../common/unix/mqtt_broker.sh
+source "${BASH_SOURCE%/*}/../common/unix/mqtt_broker.sh"
diff --git a/coin/provisioning/qtci-linux-openSUSE-15.4-x86_64/30-install-conan.sh b/coin/provisioning/qtci-linux-openSUSE-15.4-x86_64/30-install-conan.sh
new file mode 100755
index 00000000..b8820053
--- /dev/null
+++ b/coin/provisioning/qtci-linux-openSUSE-15.4-x86_64/30-install-conan.sh
@@ -0,0 +1,6 @@
+#!/usr/bin/env bash
+
+set -ex
+
+BASEDIR=$(dirname "$0")
+"$BASEDIR/../common/unix/install-conan.sh" "linux"
diff --git a/coin/provisioning/qtci-linux-openSUSE-15.4-x86_64/30-install-git.sh b/coin/provisioning/qtci-linux-openSUSE-15.4-x86_64/30-install-git.sh
new file mode 100755
index 00000000..05fcdf8e
--- /dev/null
+++ b/coin/provisioning/qtci-linux-openSUSE-15.4-x86_64/30-install-git.sh
@@ -0,0 +1,6 @@
+#!/usr/bin/env bash
+
+set -ex
+
+BASEDIR=$(dirname "$0")
+"$BASEDIR/../common/linux/install-git.sh"
diff --git a/coin/provisioning/qtci-linux-openSUSE-15.4-x86_64/55-emsdk.sh b/coin/provisioning/qtci-linux-openSUSE-15.4-x86_64/55-emsdk.sh
new file mode 100755
index 00000000..3299f3e5
--- /dev/null
+++ b/coin/provisioning/qtci-linux-openSUSE-15.4-x86_64/55-emsdk.sh
@@ -0,0 +1,45 @@
+#!/usr/bin/env bash
+
+#############################################################################
+##
+## Copyright (C) 2018 The Qt Company Ltd.
+## Contact: https://www.qt.io/licensing/
+##
+## This file is part of the provisioning scripts of the Qt Toolkit.
+##
+## $QT_BEGIN_LICENSE:LGPL$
+## 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 https://www.qt.io/terms-conditions. For further
+## information use the contact form at https://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 3 as published by the Free Software
+## Foundation and appearing in the file LICENSE.LGPL3 included in the
+## packaging of this file. Please review the following information to
+## ensure the GNU Lesser General Public License version 3 requirements
+## will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+##
+## GNU General Public License Usage
+## Alternatively, this file may be used under the terms of the GNU
+## General Public License version 2.0 or (at your option) the GNU General
+## Public license version 3 or any later version approved by the KDE Free
+## Qt Foundation. The licenses are as published by the Free Software
+## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+## included in the packaging of this file. Please review the following
+## information to ensure the GNU General Public License requirements will
+## be met: https://www.gnu.org/licenses/gpl-2.0.html and
+## https://www.gnu.org/licenses/gpl-3.0.html.
+##
+## $QT_END_LICENSE$
+##
+#############################################################################
+
+set -ex
+
+# shellcheck source=../common/unix/emsdk.sh
+source "${BASH_SOURCE%/*}/../common/unix/emsdk.sh"
diff --git a/coin/provisioning/qtci-linux-openSUSE-15.4-x86_64/70-install_QemuGA.sh b/coin/provisioning/qtci-linux-openSUSE-15.4-x86_64/70-install_QemuGA.sh
new file mode 100755
index 00000000..248e17db
--- /dev/null
+++ b/coin/provisioning/qtci-linux-openSUSE-15.4-x86_64/70-install_QemuGA.sh
@@ -0,0 +1,46 @@
+#!/usr/bin/env bash
+
+#############################################################################
+##
+## Copyright (C) 2020 The Qt Company Ltd.
+## Contact: https://www.qt.io/licensing/
+##
+## This file is part of the provisioning scripts of the Qt Toolkit.
+##
+## $QT_BEGIN_LICENSE:LGPL$
+## 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 https://www.qt.io/terms-conditions. For further
+## information use the contact form at https://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 3 as published by the Free Software
+## Foundation and appearing in the file LICENSE.LGPL3 included in the
+## packaging of this file. Please review the following information to
+## ensure the GNU Lesser General Public License version 3 requirements
+## will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+##
+## GNU General Public License Usage
+## Alternatively, this file may be used under the terms of the GNU
+## General Public License version 2.0 or (at your option) the GNU General
+## Public license version 3 or any later version approved by the KDE Free
+## Qt Foundation. The licenses are as published by the Free Software
+## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+## included in the packaging of this file. Please review the following
+## information to ensure the GNU General Public License requirements will
+## be met: https://www.gnu.org/licenses/gpl-2.0.html and
+## https://www.gnu.org/licenses/gpl-3.0.html.
+##
+## $QT_END_LICENSE$
+##
+#############################################################################
+
+# This script installs QEMU Guest Agent
+
+set -ex
+
+sudo zypper -nq install qemu-guest-agent
diff --git a/coin/provisioning/qtci-linux-openSUSE-15.4-x86_64/80-install-chrome.sh b/coin/provisioning/qtci-linux-openSUSE-15.4-x86_64/80-install-chrome.sh
new file mode 100755
index 00000000..3b3b2ded
--- /dev/null
+++ b/coin/provisioning/qtci-linux-openSUSE-15.4-x86_64/80-install-chrome.sh
@@ -0,0 +1,55 @@
+#!/usr/bin/env bash
+#############################################################################
+##
+## Copyright (C) 2022 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
+
+# This script will install up-to-date google Chrome needed for Webassembly auto tests.
+
+# shellcheck source=../common/unix/DownloadURL.sh
+source "${BASH_SOURCE%/*}/../common/unix/DownloadURL.sh"
+
+# Webassembly auto tests run requires latest Chrome. Let's use the latest stable one which means we can't cache this
+sudo zypper ar http://dl.google.com/linux/chrome/rpm/stable/x86_64 Google-Chrome
+
+# Add the Google public signing key
+externalUrl="https://dl.google.com/linux/linux_signing_key.pub"
+Download "$externalUrl" "/tmp/linux_signing_key.pub"
+sudo rpm --import /tmp/linux_signing_key.pub
+
+# Update the repo cache of zypper and install Chrome
+sudo zypper ref -f
+sudo zypper -nq install --no-confirm google-chrome-stable
+
+# Install Chromedriver Chromium
+sudo zypper -nq install chromedriver
+
diff --git a/coin/provisioning/qtci-linux-openSUSE-15.4-x86_64/90-squish.sh b/coin/provisioning/qtci-linux-openSUSE-15.4-x86_64/90-squish.sh
new file mode 100755
index 00000000..e4281588
--- /dev/null
+++ b/coin/provisioning/qtci-linux-openSUSE-15.4-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-openSUSE-15.4-x86_64/99-unset-proxy.sh b/coin/provisioning/qtci-linux-openSUSE-15.4-x86_64/99-unset-proxy.sh
new file mode 100755
index 00000000..59f3abc2
--- /dev/null
+++ b/coin/provisioning/qtci-linux-openSUSE-15.4-x86_64/99-unset-proxy.sh
@@ -0,0 +1,45 @@
+#!/usr/bin/env bash
+#############################################################################
+##
+## Copyright (C) 2017 The Qt Company Ltd.
+## Contact: https://www.qt.io/licensing/
+##
+## This file is part of the provisioning scripts of the Qt Toolkit.
+##
+## $QT_BEGIN_LICENSE:LGPL$
+## 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 https://www.qt.io/terms-conditions. For further
+## information use the contact form at https://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 3 as published by the Free Software
+## Foundation and appearing in the file LICENSE.LGPL3 included in the
+## packaging of this file. Please review the following information to
+## ensure the GNU Lesser General Public License version 3 requirements
+## will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+##
+## GNU General Public License Usage
+## Alternatively, this file may be used under the terms of the GNU
+## General Public License version 2.0 or (at your option) the GNU General
+## Public license version 3 or any later version approved by the KDE Free
+## Qt Foundation. The licenses are as published by the Free Software
+## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+## included in the packaging of this file. Please review the following
+## information to ensure the GNU General Public License requirements will
+## be met: https://www.gnu.org/licenses/gpl-2.0.html and
+## https://www.gnu.org/licenses/gpl-3.0.html.
+##
+## $QT_END_LICENSE$
+##
+#############################################################################
+
+set -ex
+
+# Having proxy set while running autotests makes them fail
+sudo sed -i 's/PROXY_ENABLED=\"yes\"/PROXY_ENABLED=\"no\"/' /etc/sysconfig/proxy
+
diff --git a/coin/provisioning/qtci-linux-openSUSE-15.4-x86_64/99-version.sh b/coin/provisioning/qtci-linux-openSUSE-15.4-x86_64/99-version.sh
new file mode 100755
index 00000000..87825b16
--- /dev/null
+++ b/coin/provisioning/qtci-linux-openSUSE-15.4-x86_64/99-version.sh
@@ -0,0 +1,54 @@
+#!/usr/bin/env bash
+
+#############################################################################
+##
+## Copyright (C) 2018 The Qt Company Ltd.
+## Contact: https://www.qt.io/licensing/
+##
+## This file is part of the provisioning scripts of the Qt Toolkit.
+##
+## $QT_BEGIN_LICENSE:LGPL$
+## 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 https://www.qt.io/terms-conditions. For further
+## information use the contact form at https://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 3 as published by the Free Software
+## Foundation and appearing in the file LICENSE.LGPL3 included in the
+## packaging of this file. Please review the following information to
+## ensure the GNU Lesser General Public License version 3 requirements
+## will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+##
+## GNU General Public License Usage
+## Alternatively, this file may be used under the terms of the GNU
+## General Public License version 2.0 or (at your option) the GNU General
+## Public license version 3 or any later version approved by the KDE Free
+## Qt Foundation. The licenses are as published by the Free Software
+## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+## included in the packaging of this file. Please review the following
+## information to ensure the GNU General Public License requirements will
+## be met: https://www.gnu.org/licenses/gpl-2.0.html and
+## https://www.gnu.org/licenses/gpl-3.0.html.
+##
+## $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"