Add openSUSE Leap 16.0 with non-blocking tests in CI

Notes:
  - GCC 15
  - Python 3.13
  - MimerSQL with openSSL 3
  - CINetworkTest skipped until newer ICU 77 version available
  - gstreamer-plugin-openh264 not available

Repository names have changed:
  - Old: /etc/zypp/repos.d/repo-oss.repo
  - New: /etc/zypp/repos.d/openSUSE:repo-oss.repo

Not installed by default, therefore no need to disable anymore:
  - balooctl
  - ntp

Task-number: QTQAINFRA-7455
Task-number: QTQAINFRA-7452
Change-Id: I2af7f828e07d31d3622cf46e819318c71d28783e
Reviewed-by: Simo Fält <simo.falt@qt.io>
Reviewed-by: Elias Toivola <elias.toivola@qt.io>
This commit is contained in:
Tero Heikkinen
2025-10-09 09:19:16 +03:00
parent 2a97710d31
commit b5a3958912
48 changed files with 824 additions and 0 deletions

View File

@@ -143,6 +143,19 @@ Configurations:
'VCPKG_HOST_TRIPLET=x64-linux-qt',
'VCPKG_TARGET_TRIPLET=x64-linux-qt',
]
-
Id: 'opensuse-16.0-developer-build'
Template: 'qtci-linux-openSUSE-16.0-x86_64-51'
Compiler: 'GCC'
Features: ['Sccache', 'WarningsAreErrors', 'UseConfigure', 'InsignificantTests', 'DoNotAbortTestingOnFirstFailure']
Configure arguments: '-nomake examples -developer-build'
Environment variables: [
'PATH={{.Env.CMAKE_MIN_SUPPORTED_BIN_PATH}}:{{.Env.PATH}}',
'CMAKE_ARGS=-DOPENSSL_ROOT_DIR={{.Env.OPENSSL_HOME}}',
'NON_QTBASE_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR}} -DQT_DEPLOY_FFMPEG=TRUE',
'VCPKG_HOST_TRIPLET=x64-linux-qt',
'VCPKG_TARGET_TRIPLET=x64-linux-qt',
]
-
Id: 'sles-15_sp6-static'
Template: 'qtci-linux-SLES-15_SP6-x86_64-52'

View File

@@ -13,6 +13,19 @@ Configurations:
-feature-exceptions -DQT_QMAKE_DEVICE_OPTIONS=\"QT_EMSCRIPTEN_ASYNCIFY=1\"",
'HEADLESS_CHROME_FOR_TESTING=true'
]
-
Id: 'webassembly-linux-thread-asyncify-new'
Template: 'qtci-linux-openSUSE-16.0-x86_64-51'
Target os: 'WebAssembly'
Compiler: 'GCC'
Platform dependency: 'opensuse-16.0-developer-build'
Features: ['DoNotRunTests', 'UseConfigure']
Environment variables: [
'EM_CONFIG={{.Env.EMSDK}}/.emscripten',
"TARGET_CONFIGURE_ARGS=-release -platform wasm-emscripten -nomake examples -feature-thread \
-feature-exceptions -DQT_QMAKE_DEVICE_OPTIONS=\"QT_EMSCRIPTEN_ASYNCIFY=1\"",
'HEADLESS_CHROME_FOR_TESTING=true'
]
-
Id: 'webassembly-windows'
Template: 'qtci-windows-11_24H2-x86_64-71'
@@ -41,6 +54,19 @@ Configurations:
'NON_QTBASE_TARGET_CMAKE_ARGS=-DQT_ADDITIONAL_HOST_PACKAGES_PREFIX_PATH=/usr/local -DQT_PROTOBUF_WELL_KNOWN_TYPES_PROTO_DIR=/usr/local/include',
'TARGET_CMAKE_ARGS=-DQT_GENERATE_WRAPPER_SCRIPTS_FOR_ALL_HOSTS=ON'
]
-
Id: 'webassembly-linux-thread-new'
Template: 'qtci-linux-openSUSE-16.0-x86_64-51'
Target os: 'WebAssembly'
Compiler: 'GCC'
Platform dependency: 'opensuse-16.0-developer-build'
Features: ['DisableTests', 'UseConfigure', 'GenerateSBOM', 'VerifySBOM']
Environment variables: [
'EM_CONFIG={{.Env.EMSDK}}/.emscripten',
'TARGET_CONFIGURE_ARGS=-release -platform wasm-emscripten -nomake examples -feature-thread',
'NON_QTBASE_TARGET_CMAKE_ARGS=-DQT_ADDITIONAL_HOST_PACKAGES_PREFIX_PATH=/usr/local -DQT_PROTOBUF_WELL_KNOWN_TYPES_PROTO_DIR=/usr/local/include',
'TARGET_CMAKE_ARGS=-DQT_GENERATE_WRAPPER_SCRIPTS_FOR_ALL_HOSTS=ON'
]
-
Id: 'webassembly-linux-shared'
Template: 'qtci-linux-openSUSE-15.6-x86_64-51'
@@ -54,3 +80,16 @@ Configurations:
'NON_QTBASE_TARGET_CMAKE_ARGS=-DQT_ADDITIONAL_HOST_PACKAGES_PREFIX_PATH=/usr/local -DQT_PROTOBUF_WELL_KNOWN_TYPES_PROTO_DIR=/usr/local/include',
'TARGET_CMAKE_ARGS=-DQT_GENERATE_WRAPPER_SCRIPTS_FOR_ALL_HOSTS=ON'
]
-
Id: 'webassembly-linux-shared-new'
Template: 'qtci-linux-openSUSE-16.0-x86_64-51'
Target os: 'WebAssembly'
Compiler: 'GCC'
Platform dependency: 'opensuse-16.0-developer-build'
Features: ['DisableTests', 'UseConfigure', 'GenerateSBOM', 'VerifySBOM']
Environment variables: [
'EM_CONFIG={{.Env.EMSDK}}/.emscripten',
'TARGET_CONFIGURE_ARGS=-release -platform wasm-emscripten -no-feature-thread -nomake tests -nomake examples -shared',
'NON_QTBASE_TARGET_CMAKE_ARGS=-DQT_ADDITIONAL_HOST_PACKAGES_PREFIX_PATH=/usr/local -DQT_PROTOBUF_WELL_KNOWN_TYPES_PROTO_DIR=/usr/local/include',
'TARGET_CMAKE_ARGS=-DQT_GENERATE_WRAPPER_SCRIPTS_FOR_ALL_HOSTS=ON'
]

View File

@@ -9,6 +9,7 @@ Include: [
"ubuntu-22.04-developer-build",
"ubuntu-24.04-arm64",
"opensuse-15.6-developer-build",
"opensuse-16.0-developer-build",
"sles-15_sp6-static",
"windows-10_22h2-msvc2022",
"rhel-9.4",

View File

@@ -10,6 +10,7 @@ Include: [
"ubuntu-22.04-developer-build",
"ubuntu-24.04-arm64",
"opensuse-15.6-developer-build",
"opensuse-16.0-developer-build",
"sles-15_sp6-static",
"windows-10_22h2-msvc2022",
"rhel-9.4",

View File

@@ -5,6 +5,7 @@ Include: [
],
cmake_platforms.yaml: [
"opensuse-15.6-developer-build",
"opensuse-16.0-developer-build",
]
]
@@ -694,6 +695,141 @@ Configurations:
-DFEATURE_qdoc=off',
'TARGET_CMAKE_ARGS=-DQT_GENERATE_WRAPPER_SCRIPTS_FOR_ALL_HOSTS=ON'
]
-
Id: 'wasm-quick-minimal-new'
Template: 'qtci-linux-openSUSE-16.0-x86_64-51'
Target os: 'WebAssembly'
Compiler: 'GCC'
Platform dependency: 'opensuse-16.0-developer-build'
Features: ['Sccache', 'UseConfigure', 'DisableTests', 'Insignificant']
Environment variables: [
'EM_CONFIG={{.Env.EMSDK}}/.emscripten',
'TARGET_CMAKE_ARGS=
-DCMAKE_CXX_FLAGS="-flto"
-DCMAKE_EXE_LINKER_FLAGS="-flto"',
'TARGET_CONFIGURE_ARGS=
-release
-platform wasm-emscripten
-nomake examples
-nomake tests
-feature-thread
-optimize-size
-static
-ltcg
-feature-c++20
-disable-deprecated-up-to 0x070000
-no-feature-sql
-no-feature-xml
-no-feature-printsupport
-no-feature-dbus
-no-feature-vnc
-no-feature-future
-no-feature-concurrent
-no-feature-process
-no-feature-processenvironment
-no-feature-multiprocess
-no-feature-sharedmemory
-no-feature-permissions
-no-feature-udpsocket
-no-feature-localserver
-no-feature-picture
-no-feature-pdf
-no-feature-accessibility
-no-feature-clipboard
-no-feature-draganddrop
-no-feature-image_heuristic_mask
-no-feature-imageformat_bmp
-no-feature-imageformat_ppm
-no-feature-imageformat_xbm
-no-feature-cssparser
-no-feature-action
-no-feature-whatsthis
-no-feature-vkgen
-no-feature-backtrace
-no-feature-stack_clash_protection
-no-feature-mimetype
-no-feature-textmarkdownreader
-no-feature-textodfwriter
-no-feature-testlib
-no-feature-texthtmlparser
-no-feature-textmarkdownwriter
-no-feature-imageio-text-loading
-no-feature-image_text
-no-feature-proxymodel
-no-feature-filesystemmodel
-no-feature-wheelevent
-no-feature-tabletevent
-no-feature-icu
-no-feature-systemtrayicon
-no-feature-raster-64bit
-no-feature-raster-fp
-no-feature-undostack
-no-feature-undogroup
-no-feature-undocommand
-no-feature-sctp
-no-feature-dtls
-no-feature-networkproxy
-no-feature-getifaddrs
-no-feature-ipv6ifname
-no-feature-libresolv
-no-feature-libproxy
-no-feature-networkinterface
-no-feature-networkdiskcache
-no-feature-topleveldomain
-no-feature-gssapi
-no-feature-sha3-fast
-no-feature-systemsemaphore
-no-feature-gestures
-no-feature-jalalicalendar
-no-feature-hijricalendar
-no-feature-islamiccivilcalendar
-no-feature-timezone
-no-feature-timezone_tzdb
-no-feature-im
-no-feature-graphicsframecapture
-no-feature-library
-no-feature-filesystemwatcher
-no-feature-gif
-no-feature-ico
-no-feature-sessionmanager
-no-feature-emojisegmenter
-no-feature-egl
-no-feature-metal
-no-feature-vulkan
-no-feature-openvg
-no-feature-wasm-simd128
-no-feature-wasm-exceptions
-no-feature-wasm-jspi
-no-feature-harfbuzz',
'NON_QTBASE_CMAKE_ARGS=
-DFEATURE_qml_network=off
-DFEATURE_qml_ssl=off
-DFEATURE_qml_jit=off
-DFEATURE_qml_debug=off
-DFEATURE_qml_preview=off
-DFEATURE_qml_xml_http_request=off
-DFEATURE_qml_locale=off
-DFEATURE_qml_worker_script=off
-DFEATURE_qml_xmllistmodel=off
-DFEATURE_quick_canvas=off
-DFEATURE_quick_designer=off
-DFEATURE_quick_flipable=off
-DFEATURE_quick_gridview=off
-DFEATURE_quick_tableview=off
-DFEATURE_quick_treeview=off
-DFEATURE_quick_particles=off
-DFEATURE_quick_pathview=off
-DFEATURE_quick_sprite=off
-DFEATURE_quick_draganddrop=off
-DFEATURE_quick_pixmap_cache_threaded_download=off
-DFEATURE_qml_table_model=off
-DFEATURE_qml_tree_model=off
-DFEATURE_quicktemplates2_hover=off
-DFEATURE_quicktemplates2_multitouch=off
-DFEATURE_quicktemplates2_calendar=off
-DFEATURE_qdoc=off',
'TARGET_CMAKE_ARGS=-DQT_GENERATE_WRAPPER_SCRIPTS_FOR_ALL_HOSTS=ON'
]
-
Id: 'ios-quick-minimal'
Template: 'qtci-macos-14-arm-106'

View File

@@ -7,3 +7,10 @@ Configurations:
Compiler: 'GCC'
Features: ['Sccache', 'TestOnly']
Platform dependency: 'webassembly-linux-thread-asyncify'
-
Id: 'webassembly-linux-thread-asyncify-tests-new'
Template: 'qtci-linux-openSUSE-16.0-x86_64-51'
Target os: 'WebAssembly'
Compiler: 'GCC'
Features: ['Sccache', 'TestOnly']
Platform dependency: 'webassembly-linux-thread-asyncify-new'

View File

@@ -7,3 +7,10 @@ Configurations:
Compiler: 'GCC'
Features: ['Sccache', 'TestOnly']
Platform dependency: 'webassembly-linux-thread-asyncify'
-
Id: 'webassembly-linux-thread-asyncify-tests-new'
Template: 'qtci-linux-openSUSE-16.0-x86_64-51'
Target os: 'WebAssembly'
Compiler: 'GCC'
Features: ['Sccache', 'TestOnly']
Platform dependency: 'webassembly-linux-thread-asyncify-new'

View File

@@ -0,0 +1,96 @@
### OpenSUSE Leap 16.0 ###
## KDE ##
## In qtci-linux-openSUSE-16.0-x86_64-50 > Graphics Platform: X11 (System default) ##
# Installation #
Language: English (US)
Keyboard Layout: English (US)
Activate online repositories during installation (yes)
Use default selections
(Note: openSUSE 16.0 didn't offer these)
Desktop with KDE Plasma
- This is not available in installer in openSUSE 16.0
- Needs to be installed later via zypper
Suggested Partitioning - default values
Clock and Time Zone
- Region: Etc
- Time Zone: UTC - Coordinated Universal Time
- Hardware Clock Set to UTC (yes)
## Configurations ##
Before coin-setup add 'qt ALL=NOPASSWD: ALL' to /etc/sudoers.d/qt
zypper update
## openSUSE 16.0 ##
# - Doesn't have Desktop GUI etc.
# - Needs to install more than with previous versions
# Install GNOME and KDE Plasma to get Desktops available
sudo zypper install -t pattern GNOME
sudo zypper install -t pattern kde
# Set graphical target:
sudo systemctl set-default graphical.target
sudo reboot
# After reboot continue installation from Desktop GUI
# How to remove Activities overview which has issues with some tests
- Switch from GDM to SDDM display manager to have Plasma (X11) available
- Plasma (X11) is selected because it doesn't have Activities overview
#sudo zypper install sddm <-- Not needed, we have sddm-qt6 package installed
sudo systemctl disable gdm
sudo systemctl enable sddm
sudo systemctl set-default graphical.target
# To verify which display manager is in use:
cat /etc/systemd/system/display-manager.service
# After reboot Desktop Session: Plasma (X11) should be enabled in login screen
sudo reboot
# To have autologin enabled
edit /etc/sysconfig/displaymanager
DISPLAYMANAGER_AUTOLOGIN="qt"
# Autologin needs SDDM configuration to keep Plasma (X11) as selected
create /etc/sddm.conf.d/autologin.con
[Autologin]
User=qt
Session=plasma6.desktop
sudo reboot # And verify that autologin works and Desktop Session is still Plasma (X11)
# Enable and start OpenSSH server
systemctl status sshd
systemctl enable sshd
systemctl start sshd
# Login to desktop and continue with Coin setup
Download and run coin-setup binary - http://<Coin IP>/coin/binary/linux_amd64/coin-setup
- If IP has changed and Coin name not visible to VM, check from Coin logs which IP works for VMs
- chmod 755 ./coin-setup && ./coin-setup
Workspace Behavior - Screen locking - Lock screen automatically - unselect options
Startup and Shutdown - Login Screen - Behavior - Select Automatically log in with session (System default)
Notifications
All & App Notifications - unselect
Critical notifications - unselect
Low 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
Suspend Session - unselect
YaST - Hardware - Sound - Add Dummy soundcard
- openSUSE 16.0 already had dummy soundcard enabled again
sudo zypper -nq install qemu-guest-agent
Reboot

View File

@@ -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

View File

@@ -0,0 +1,3 @@
#!/bin/sh
"$(dirname "$0")"/../common/unix/telegraf_install.sh

View File

@@ -0,0 +1,6 @@
#!/usr/bin/env bash
set -ex
BASEDIR=$(dirname "$0")
"$BASEDIR/../common/linux/set_ulimit.sh"

View File

@@ -0,0 +1,51 @@
#!/usr/bin/env bash
# Copyright (C) 2024 The Qt Company Ltd.
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"
# shellcheck source=../common/unix/SetEnvVar.sh
source "${BASH_SOURCE%/*}/../common/unix/SetEnvVar.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
"$BASEDIR/../common/linux/configure-gnome-shell.sh"
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 # Not available, no longer installed by default
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 discover6-notifier
# 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
echo "Set CA certificate env variables for GIT and CURL"
ca_path="/var/lib/ca-certificates/openssl/"
ca_bundle="/var/lib/ca-certificates/ca-bundle.pem"
SetEnvVar "GIT_SSL_CAPATH" "$ca_path"
SetEnvVar "CURL_CA_BUNDLE" "$ca_bundle"

View File

@@ -0,0 +1,11 @@
#!/usr/bin/env bash
# Copyright (C) 2024 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
sudo sed -i "s#baseurl=.*#baseurl=http://repo-clones.ci.qt.io/repos/opensuse/distribution/leap/16.0/repo/oss/#g" /etc/zypp/repos.d/openSUSE:repo-oss.repo
sudo sed -i "s#baseurl=.*#baseurl=http://repo-clones.ci.qt.io/repos/opensuse/distribution/leap/16.0/repo/non-oss/#g" /etc/zypp/repos.d/openSUSE:repo-non-oss.repo
sudo sed -i "s#baseurl=.*#baseurl=http://repo-clones.ci.qt.io/repos/codecs.opensuse.org/openh264/openSUSE_Leap/#g" /etc/zypp/repos.d/openSUSE:repo-openh264.repo
sudo zypper lr -u

View File

@@ -0,0 +1,8 @@
#!/usr/bin/env bash
# Copyright (C) 2024 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
BASEDIR=$(dirname "$0")
"$BASEDIR/../common/linux/limit-avahi-interfaces.sh"

View File

@@ -0,0 +1,97 @@
#!/usr/bin/env bash
# Copyright (C) 2024 The Qt Company Ltd.
set -ex
sudo zypper -nq install git gcc13 gcc15-c++ ninja
sudo /usr/sbin/update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-15 1 \
--slave /usr/bin/g++ g++ /usr/bin/g++-15 \
--slave /usr/bin/cc cc /usr/bin/gcc-15 \
--slave /usr/bin/c++ c++ /usr/bin/g++-15
# Make sure needed ca-certificates are available
sudo zypper -nq install ca-certificates
sudo zypper -nq install bison flex gperf \
zlib-devel \
systemd-devel \
glib2-devel \
libopenssl-3-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
# Removing nodejs12 as it's not available and testing with common nodejs 18.16.0
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 glproto-devel \
libxshmfence-devel libXdamage-devel
# qtwebkit
sudo zypper -nq install libxml2-devel libxslt-devel
# yasm (for ffmpeg in multimedia)
sudo zypper -nq install yasm
# GStreamer (qtwebkit and qtmultimedia), pulseaudio (qtmultimedia)
sudo zypper -nq install gstreamer-devel gstreamer-plugins-base-devel libpulse-devel pipewire-devel # gstreamer-plugin-openh264 not available
# 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
# zip, needed for vcpkg caching
sudo zypper -nq install zip
# OpenSSL 3
sudo zypper -nq install openssl-3
# Valgrind (Needed for testlib selftests)
sudo zypper -nq install valgrind-devel
# cifs-utils, for mounting smb drive
sudo zypper -nq install cifs-utils
# For Firebird in RTA
sudo zypper -nq install libtommath-devel
# Java
sudo zypper -nq install java-17-openjdk
# For tst_license.pl with all the machines generating SBOM
sudo zypper -nq install perl-JSON
gccVersion="$(gcc --version |grep -Eo '[0-9]+\.[0-9]+(\.[0-9]+)?' |head -n 1)"
echo "GCC = $gccVersion" >> versions.txt
glibcVersion="$(ldd --version |grep -Eo '[0-9]+\.[0-9]+(\.[0-9]+)?' |head -n 1)"
echo "glibc = $glibcVersion" >> versions.txt
OpenSSLVersion="$(openssl version |cut -b 9-14)"
echo "System's OpenSSL = $OpenSSLVersion" >> ~/versions.txt

View File

@@ -0,0 +1,7 @@
#!/usr/bin/env bash
# Copyright (C) 2024 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
"$(dirname "$0")"/../common/linux/disable_kwin_overview.sh

View File

@@ -0,0 +1,8 @@
#!/usr/bin/env bash
# Copyright (C) 2024 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
# shellcheck source=../common/linux/mount-vcpkg-cache-drive.sh
source "${BASH_SOURCE%/*}/../common/linux/mount-vcpkg-cache-drive.sh"

View File

@@ -0,0 +1,7 @@
#!/usr/bin/env bash
set -ex
BASEDIR=$(dirname "$0")
# shellcheck source=../common/unix/libclang-dyn.sh
"$BASEDIR/../common/unix/libclang-dyn.sh"

View File

@@ -0,0 +1,7 @@
#!/usr/bin/env bash
set -ex
BASEDIR=$(dirname "$0")
# shellcheck source=../common/unix/libclang.sh
"$BASEDIR/../common/unix/libclang.sh"

View File

@@ -0,0 +1,22 @@
#!/usr/bin/env bash
# Copyright (C) 2024 The Qt Company Ltd.
# provides: python development libraries
# version: provided by default Linux distribution repository
# needed to build pyside and emsdk for WebAssembly
set -ex
source "${BASH_SOURCE%/*}/../common/unix/SetEnvVar.sh"
# install python3
sudo zypper -nq install python313-base python313-devel python313-pip python313-virtualenv python313-wheel
python3.13 -m pip install selenium netifaces scache brotli httpcompressionserver
python3.13 -m pip install -r "${BASH_SOURCE%/*}/../common/shared/requirements.txt"
SetEnvVar "PYTHON3_EXECUTABLE" "/usr/bin/python3.13"
# Provisioning during installation says:
# 'Defaulting to user installation because normal site-packages is not writeable'
# So it implicitly uses pip install --user, hence the path.
SetEnvVar "SBOM_PYTHON_APPS_PATH" "/home/qt/.local/bin"

View File

@@ -0,0 +1,5 @@
#!/usr/bin/env bash
set -ex
"$(dirname "$0")/../common/linux/cmake_linux.sh"

View File

@@ -0,0 +1,5 @@
#!/usr/bin/env bash
set -ex
"$(dirname "$0")/../common/unix/install-openssl.sh" "linux"

View File

@@ -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

View File

@@ -0,0 +1,3 @@
#!/usr/bin/env bash
source "${BASH_SOURCE%/*}/../common/linux/sccache.sh"

View File

@@ -0,0 +1,6 @@
#!/usr/bin/env bash
# Copyright (C) 2024 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
# shellcheck source=../common/unix/mqtt_broker.sh
source "${BASH_SOURCE%/*}/../common/unix/mqtt_broker.sh"

View File

@@ -0,0 +1,6 @@
#!/usr/bin/env bash
set -ex
BASEDIR=$(dirname "$0")
"$BASEDIR/../common/unix/install-conan.sh" "linux"

View File

@@ -0,0 +1,6 @@
#!/usr/bin/env bash
set -ex
BASEDIR=$(dirname "$0")
"$BASEDIR/../common/linux/install-git.sh"

View File

@@ -0,0 +1,6 @@
#!/usr/bin/env bash
set -ex
BASEDIR=$(dirname "$0")
"$BASEDIR/../common/linux/install-flite.sh"

View File

@@ -0,0 +1,6 @@
#!/usr/bin/env bash
set -ex
BASEDIR=$(dirname "$0")
"$BASEDIR/../common/linux/install-vcpkg.sh"

View File

@@ -0,0 +1,6 @@
#!/usr/bin/env bash
set -ex
BASEDIR=$(dirname "$0")
"$BASEDIR/../common/linux/install-vcpkg-ports.sh"

View File

@@ -0,0 +1,8 @@
#!/usr/bin/env bash
# Copyright (C) 2024 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
# shellcheck source=../common/unix/emsdk.sh
source "${BASH_SOURCE%/*}/../common/unix/emsdk.sh"

View File

@@ -0,0 +1,9 @@
#!/usr/bin/env bash
# Copyright (C) 2024 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
# shellcheck source=../common/unix/install_protobuf.sh
source "${BASH_SOURCE%/*}/../common/unix/install_protobuf.sh"

View File

@@ -0,0 +1,9 @@
#!/usr/bin/env bash
# Copyright (C) 2024 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
# shellcheck source=../common/unix/install_grpc.sh
source "${BASH_SOURCE%/*}/../common/unix/install_grpc.sh"

View File

@@ -0,0 +1,9 @@
#!/usr/bin/env bash
# Copyright (C) 2024 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
# This script installs QEMU Guest Agent
set -ex
sudo zypper -nq install qemu-guest-agent

View File

@@ -0,0 +1,100 @@
#!/usr/bin/env bash
# Copyright (C) 2024 The Qt Company Ltd.
# This script will install up-to-date google Chrome needed for Webassembly auto tests.
# problems:
# The jspi browser require --enable-unsafe-swiftshader to work, the original browser don't
# Running the original browser after the jspi browser causes it to crash unless
# we make sure the cachedir is different.
# shellcheck source=../common/unix/DownloadURL.sh
source "${BASH_SOURCE%/*}/../common/unix/SetEnvVar.sh"
# shellcheck source=../common/unix/DownloadURL.sh
source "${BASH_SOURCE%/*}/../common/unix/DownloadURL.sh"
# DownloadURL uses functions with exit status
set +ex
function Install {
sha=$1
cached=$2
official=$3
home=$4
target=$5
if [ -z "$home" ]
then
echo "No home"
exit 1
fi
if [ -z "$target" ]
then
echo "No target"
exit 1
fi
cachedUrl="https://ci-files01-hki.ci.qt.io/input/wasm/${cached}"
officialUrl="https://storage.googleapis.com/chrome-for-testing-public/${official}"
tmp="/tmp/${sha}.zip"
if ! DownloadURL "$cachedUrl" "$officialUrl" "$sha" "$tmp"
then
echo "Download failed"
exit 1
fi
sudo rm -rf "${home}/${target}"
if ! unzip -q "$tmp" -d "${home}"
then
echo "Unzip failed"
exit 1
fi
rm "$tmp"
}
Install \
"006d8e0438980d5ca8809af6f036e2b802b13cc8" \
"chrome/chrome-for-testing-131.zip" \
"131.0.6778.204/linux64/chrome-linux64.zip" \
"${HOME}" \
"chrome-linux64"
Install \
"53007a6778c4ba25763d066f12c598b982e72f74" \
"chromedriver/chrome-for-testing-131.zip" \
"131.0.6778.204/linux64/chromedriver-linux64.zip" \
"${HOME}" \
"chromedriver-linux64"
Install \
"9743a66a4427711e5b0cf1d569c1b893eab3c123" \
"chrome/chrome-for-testing-139.zip" \
"139.0.7258.138/linux64/chrome-linux64.zip" \
"${HOME}/jspi" \
"chrome-linux64"
Install \
"874a7870150ed0b20908ae77a5bd10d8cd5dea11" \
"chromedriver/chrome-for-testing-139.zip" \
"139.0.7258.138/linux64/chromedriver-linux64.zip" \
"${HOME}/jspi" \
"chromedriver-linux64"
chromePath="${HOME}/chrome-linux64/"
chromeDriverPath="${HOME}/chromedriver-linux64/"
chromeJspiPath="${HOME}/jspi/chrome-linux64/"
chromeJspiDriverPath="${HOME}/jspi/chromedriver-linux64/"
cp ${chromeDriverPath}chromedriver ${chromePath}
cp ${chromeJspiDriverPath}chromedriver ${chromeJspiPath}
SetEnvVar "BROWSER_FOR_WASM" "${chromePath}chrome"
SetEnvVar "CHROMEDRIVER_PATH" "${chromePath}chromedriver"
SetEnvVar "WASM_BROWSER_JSPI" "${chromeJspiPath}chrome"
SetEnvVar "WASM_BROWSER_JSPI_ARGS" "\"--headless --password-store=basic --enable-unsafe-swiftshader --user-data-dir=${HOME}/.cache/jspi\""
SetEnvVar "WASM_CHROMEDRIVER_PATH_JSPI" "${chromeJspiPath}chromedriver"
SetEnvVar "WASM_CHROMEDRIVER_PATH_JSPI_ARGS" "\"--headless --password-store=basic --enable-unsafe-swiftshader --user-data-dir=${HOME}/.cache/jspi\""

View File

@@ -0,0 +1,3 @@
#!/usr/bin/env bash
source "${BASH_SOURCE%/*}/../common/linux/bootstrap-autostart.sh"

View File

@@ -0,0 +1,8 @@
#!/usr/bin/env bash
# Copyright (C) 2024 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
BASEDIR=$(dirname "$0")
"$BASEDIR/../common/linux/install-firebird.sh"

View File

@@ -0,0 +1,3 @@
#!/usr/bin/env bash
source "${BASH_SOURCE%/*}/../common/linux/install-ffmpeg-linux.sh"

View File

@@ -0,0 +1,8 @@
#!/usr/bin/env bash
# Copyright (C) 2024 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
BASEDIR=$(dirname "$0")
"$BASEDIR/../common/linux/install-oracle.sh"

View File

@@ -0,0 +1,8 @@
#!/usr/bin/env bash
# Copyright (C) 2024 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
BASEDIR=$(dirname "$0")
"$BASEDIR/../common/linux/mimersql.sh" "openssl-3" "rpm"

View File

@@ -0,0 +1,4 @@
#!/usr/bin/env bash
BASEDIR=$(dirname "$0")
"$BASEDIR/../common/unix/squishInstall.sh"

View File

@@ -0,0 +1,8 @@
#!/usr/bin/env bash
# Copyright (C) 2024 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
# shellcheck source=../common/linux/install-dummy-alsa-device.sh
source "${BASH_SOURCE%/*}/../common/linux/install-dummy-alsa-device.sh"

View File

@@ -0,0 +1,9 @@
#!/usr/bin/env bash
# Copyright (C) 2024 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 -e
set -o pipefail
export PROVISIONING_DIR="${BASH_SOURCE%/*}/../"
source "$PROVISIONING_DIR"/common/unix/install-mosquitto-mqtt.sh

View File

@@ -0,0 +1,7 @@
#!/usr/bin/env bash
# Copyright (C) 2024 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
"$(dirname "$0")"/../common/linux/cleanup_cache.sh

View File

@@ -0,0 +1,11 @@
#!/usr/bin/env bash
#Copyright (C) 2024 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
# Disable ptrace
echo "kernel.yama.ptrace_scope = 0" | sudo tee /etc/sysctl.d/10-ptrace.conf
BASEDIR=$(dirname "$0")
"$BASEDIR"/../common/linux/enable_test_stacktraces.sh

View File

@@ -0,0 +1,6 @@
#!/usr/bin/env bash
echo "WIP: Temporarily skip network test until ICU 77 version is available"
#BASEDIR=$(dirname "$0")
#"$BASEDIR/../common/linux/install-network-test.sh" "--warn-only"

View File

@@ -0,0 +1,9 @@
#!/usr/bin/env bash
# Copyright (C) 2024 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
# Having proxy set while running autotests makes them fail
sudo sed -i 's/PROXY_ENABLED=\"yes\"/PROXY_ENABLED=\"no\"/' /etc/sysconfig/proxy

View File

@@ -0,0 +1,17 @@
#!/usr/bin/env bash
# Copyright (C) 2024 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
# 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"