Provisioning: Add Red Hat 8.10 as non-blocking in CI

RHEL-8.10 will be run in parallel with RHEL-8.8 in CI as non-blocking
until RHEL-8.10 is confirmed stable, then it will replace RHEL-8.8. [CI Platforms]

Task-number: QTQAINFRA-6366
Change-Id: I4b470754895a72be026e869eb4e4d273eb3801b4
Reviewed-by: Tero Heikkinen <tero.heikkinen@qt.io>
Reviewed-by: Simo Fält <simo.falt@qt.io>
This commit is contained in:
Elias Toivola
2024-06-06 15:32:13 +03:00
parent 6a343fd319
commit ba9d0e2e4e
52 changed files with 829 additions and 1 deletions

View File

@@ -175,6 +175,17 @@ Configurations:
'CMAKE_ARGS=-DOpenGL_GL_PREFERENCE=LEGACY -DOPENSSL_ROOT_DIR={{.Env.OPENSSL_HOME}}',
'NON_QTBASE_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR}} -DQT_DEPLOY_FFMPEG=TRUE -DINPUT_headersclean=ON'
]
-
Id: 'rhel-8.10'
Template: 'qtci-linux-RHEL-8.10-x86_64-50'
Compiler: 'GCC'
Features: ['InsignificantTests', 'Sccache', 'UseConfigure', 'InstallQt5Dependencies']
Configure arguments: '-nomake examples -release -force-debug-info -headersclean -separate-debug-info -qt-libjpeg -qt-libpng -qt-pcre -qt-harfbuzz -qt-doubleconversion -no-libudev -bundled-xcb-xinput'
Environment variables: [
'CMAKE_ARGS=-DOpenGL_GL_PREFERENCE=LEGACY -DOPENSSL_ROOT_DIR={{.Env.OPENSSL_HOME}}',
'NON_QTBASE_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR}} -DQT_DEPLOY_FFMPEG=TRUE -DINPUT_headersclean=ON'
]
-
Id: 'rhel-9.2'
Template: 'qtci-linux-RHEL-9.2-x86_64-51'

View File

@@ -47,6 +47,22 @@ Configurations:
'ANDROID_NDK_ROOT={{.Env.ANDROID_NDK_ROOT_DEFAULT}}',
'ANDROID_EMULATOR=emulator_x86_api_28'
]
-
Id: 'android-9-x86-on-linux-rhel-8.10'
Template: 'qtci-linux-RHEL-8.10-x86_64-50'
Target os: 'Android_ANY'
Target arch: 'x86'
Compiler: 'GCC'
Target compiler: 'Clang'
Platform dependency: 'rhel-8.10'
Features: ['InsignificantTests', 'Sccache', 'WarningsAreErrors', 'AndroidTestRun', 'VMSize8', 'UseConfigure']
Environment variables: [
'TARGET_CONFIGURE_ARGS=-nomake examples -release -force-debug-info -android-ndk {{.Env.ANDROID_NDK_ROOT_DEFAULT}} -android-sdk {{.Env.ANDROID_SDK_ROOT}} -android-abis x86',
'TARGET_CMAKE_ARGS=-DCMAKE_C_COMPILER_FRONTEND_VARIANT=GNU -DCMAKE_CXX_COMPILER_FRONTEND_VARIANT=GNU -DOPENSSL_ROOT_DIR={{.Env.OPENSSL_ANDROID_HOME_DEFAULT}} -DQT_GENERATE_WRAPPER_SCRIPTS_FOR_ALL_HOSTS=ON',
'NON_QTBASE_TARGET_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR_ANDROID_X86}} -DQT_DEPLOY_FFMPEG=TRUE -DQT_PROTOBUF_WELL_KNOWN_TYPES_PROTO_DIR=/usr/local/include',
'ANDROID_NDK_ROOT={{.Env.ANDROID_NDK_ROOT_DEFAULT}}',
'ANDROID_EMULATOR=emulator_x86_api_28'
]
-
Id: 'android-14-x86_64-on-linux'
Template: 'qtci-linux-RHEL-8.8-x86_64-50'
@@ -63,3 +79,19 @@ Configurations:
'ANDROID_NDK_ROOT={{.Env.ANDROID_NDK_ROOT_DEFAULT}}',
'ANDROID_EMULATOR=emulator_x86_64_api_34'
]
-
Id: 'android-14-x86_64-on-linux-rhel-8.10'
Template: 'qtci-linux-RHEL-8.10-x86_64-50'
Target os: 'Android_ANY'
Target arch: 'x86_64'
Compiler: 'GCC'
Target compiler: 'Clang'
Platform dependency: 'rhel-8.10'
Features: ['InsignificantTests', 'Sccache', 'WarningsAreErrors', 'AndroidTestRun', 'VMSize8', 'UseConfigure']
Environment variables: [
'TARGET_CONFIGURE_ARGS=-nomake examples -release -force-debug-info -android-ndk {{.Env.ANDROID_NDK_ROOT_DEFAULT}} -android-sdk {{.Env.ANDROID_SDK_ROOT}} -android-abis x86_64',
'TARGET_CMAKE_ARGS=-DCMAKE_C_COMPILER_FRONTEND_VARIANT=GNU -DCMAKE_CXX_COMPILER_FRONTEND_VARIANT=GNU -DOPENSSL_ROOT_DIR={{.Env.OPENSSL_ANDROID_HOME_DEFAULT}} -DQT_GENERATE_WRAPPER_SCRIPTS_FOR_ALL_HOSTS=ON',
'NON_QTBASE_TARGET_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR_ANDROID_X86_64}} -DQT_DEPLOY_FFMPEG=TRUE -DQT_PROTOBUF_WELL_KNOWN_TYPES_PROTO_DIR=/usr/local/include',
'ANDROID_NDK_ROOT={{.Env.ANDROID_NDK_ROOT_DEFAULT}}',
'ANDROID_EMULATOR=emulator_x86_64_api_34'
]

View File

@@ -28,6 +28,11 @@ Configurations:
Compiler: 'GCC'
Features: ['Packaging', 'UseLegacyInstructions']
Configure arguments: '-qmake -opensource -confirm-license -verbose -prefix /home/qt/work/install -release -nomake tests -nomake examples -no-libudev -no-use-gold-linker -force-debug-info -no-sql-mysql -plugin-sql-psql -plugin-sql-sqlite -qt-libjpeg -qt-libpng -qt-xcb -sysconfdir /etc/xdg -qt-pcre -openssl -qt-harfbuzz QMAKE_LFLAGS_APP+=-s -static -no-icu'
-
Template: 'qtci-linux-RHEL-8.10-x86_64-50'
Compiler: 'GCC'
Features: ['InsignificantTests', 'UseLegacyInstructions']
Configure arguments: '-qmake -opensource -confirm-license -verbose -prefix /home/qt/work/install -release -nomake tests -nomake examples -no-libudev -no-use-gold-linker -force-debug-info -no-sql-mysql -plugin-sql-psql -plugin-sql-sqlite -qt-libjpeg -qt-libpng -qt-xcb -sysconfdir /etc/xdg -qt-pcre -openssl -qt-harfbuzz QMAKE_LFLAGS_APP+=-s -static -no-icu'
-
Template: 'qtci-linux-Ubuntu-18.04-x86_64-50'
Compiler: 'GCC'

View File

@@ -15,3 +15,18 @@ Configurations:
'NON_QTBASE_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR_ANDROID}}',
'NON_QTBASE_TARGET_CMAKE_ARGS=',
'ANDROID_EMULATOR=emulator_x86_api_28']
-
Id: 'android-x86-developer-build-testrun-on-linux-rhel-8.10'
Template: 'qtci-linux-RHEL-8.10-x86_64-50'
Target os: 'Android_ANY'
Target arch: 'x86'
Compiler: 'GCC'
Target compiler: 'Clang'
Platform dependency: 'rhel-8.10'
Features: ['InsignificantTests', 'Sccache', 'AndroidTestRun', 'UseConfigure']
Environment variables: [
'TARGET_CONFIGURE_ARGS=-nomake examples -debug -developer-build -android-ndk {{.Env.ANDROID_NDK_ROOT_DEFAULT}} -android-sdk {{.Env.ANDROID_SDK_ROOT}} -android-abis x86',
'TARGET_CMAKE_ARGS=-DCMAKE_C_COMPILER_FRONTEND_VARIANT=GNU -DCMAKE_CXX_COMPILER_FRONTEND_VARIANT=GNU -DOPENSSL_ROOT_DIR={{.Env.OPENSSL_ANDROID_HOME_DEFAULT}}',
'NON_QTBASE_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR_ANDROID}}',
'NON_QTBASE_TARGET_CMAKE_ARGS=',
'ANDROID_EMULATOR=emulator_x86_api_28']

View File

@@ -26,3 +26,30 @@ Configurations:
'COMMON_TARGET_TEST_CMAKE_ARGS=-DQT_ANDROID_ABIS="x86;x86_64"',
'ANDROID_EMULATOR=emulator_x86_api_28'
]
-
Id: 'android-9-multi-abi-rhel-8.10'
Template: 'qtci-linux-RHEL-8.10-x86_64-50'
Target os: 'Android_ANY'
Target arch: 'multi'
Compiler: 'GCC'
Target compiler: 'Clang'
Platform dependency: [
'rhel-8.10',
'android-9-x86-on-linux-rhel-8.10',
'android-14-x86_64-on-linux-rhel-8.10'
]
Features: [
'Sccache',
'InsignificantTests',
'WarningsAreErrors',
'AndroidTestRun',
'MinimalAndroidMultiABITests',
'InstallDepsPerPlatformSubdir'
]
Environment variables: [
'QT_CI_ARTIFACT_ID_PATH_Android-host=QT_CI_ARTIFACT_ID_PATH_rhel-8.10',
'QT_CI_ARTIFACT_ID_PATH_Android-x86=QT_CI_ARTIFACT_ID_PATH_android-9-x86-on-linux-rhel-8.10',
'QT_CI_ARTIFACT_ID_PATH_Android-x86_64=QT_CI_ARTIFACT_ID_PATH_android-14-x86_64-on-linux-rhel-8.10',
'COMMON_TARGET_TEST_CMAKE_ARGS=-DQT_ANDROID_ABIS="x86;x86_64"',
'ANDROID_EMULATOR=emulator_x86_api_28'
]

View File

@@ -21,6 +21,12 @@ Configurations:
Features: ['Packaging', 'Sccache', 'DebugAndRelease']
Configure arguments: ''
Environment variables: []
-
Template: 'qtci-linux-RHEL-8.10-x86_64-50'
Compiler: 'GCC'
Features: ['InsignificantTests', 'Sccache', 'DebugAndRelease']
Configure arguments: ''
Environment variables: []
-
Template: 'qtci-macos-14-arm-106'
Compiler: 'Clang'

View File

@@ -12,6 +12,7 @@ Include: [
"sles-15_sp5-static",
"windows-10_22h2-msvc2022",
"rhel-8.8",
"rhel-8.10",
"windows-10_22h2-mingw13",
"windows-11_23H2-mingw13-developer-build",
"windows-11_23H2-llvm",

View File

@@ -12,6 +12,7 @@ Include: [
"sles-15_sp5-static",
"windows-10_22h2-msvc2022",
"rhel-8.8",
"rhel-8.10",
"windows-10_22h2-mingw13",
"windows-11_23H2-mingw13-developer-build",
"windows-11_23H2-llvm",
@@ -45,6 +46,16 @@ Configurations:
'CMAKE_ARGS=-DOpenGL_GL_PREFERENCE=LEGACY',
'NON_QTBASE_CMAKE_ARGS=-DINPUT_headersclean=ON'
]
-
Id: 'Linux-RHEL_8_10_Static'
Template: 'qtci-linux-RHEL-8.10-x86_64-50'
Compiler: 'GCC'
Features: ['InsignificantTests', 'Sccache', 'UseConfigure', 'MinimalStaticTests']
Configure arguments: '-static -no-icu -nomake examples -release -headersclean -qt-libjpeg -qt-libpng -qt-pcre -qt-harfbuzz -qt-doubleconversion -no-libudev -bundled-xcb-xinput -no-sql-mysql'
Environment variables: [
'CMAKE_ARGS=-DOpenGL_GL_PREFERENCE=LEGACY',
'NON_QTBASE_CMAKE_ARGS=-DINPUT_headersclean=ON'
]
-
Id: 'Windows-MSVC2022_Static'
Template: 'qtci-windows-10_22H2-x86_64-51'

View File

@@ -2,6 +2,7 @@ Version: 2
Include: [
cmake_platforms.yaml: [
'rhel-8.8',
"rhel-8.10",
'windows-10_22h2-mingw13',
'ubuntu-22.04-documentation',
'ubuntu-22.04-documentation-x11-tests'
@@ -13,7 +14,9 @@ Include: [
'android-arm64-on-macos',
'android-armv7-on-windows',
'android-9-x86-on-linux',
'android-14-x86_64-on-linux'
'android-9-x86-on-linux-rhel-8.10',
'android-14-x86_64-on-linux',
'android-14-x86_64-on-linux-rhel-8.10'
]
]
Configurations:
@@ -33,6 +36,22 @@ Configurations:
'NON_QTBASE_TARGET_CMAKE_ARGS= -DQT_PROTOBUF_WELL_KNOWN_TYPES_PROTO_DIR=/usr/local/include',
'ANDROID_EMULATOR=automotive_emulator_x86_64_api_34'
]
-
Id: "automotive-android-14-x86_64-on-linux-rhel-8.10"
Template: 'qtci-linux-RHEL-8.10-x86_64-50'
Target os: 'Android_ANY'
Target arch: 'x86_64'
Compiler: 'GCC'
Target compiler: 'Clang'
Platform dependency: 'rhel-8.10'
Features: ['InsignificantTests', 'Sccache', 'WarningsAreErrors', 'AndroidTestRun', 'VMSize8', 'UseConfigure']
Environment variables: [
'TARGET_CONFIGURE_ARGS=-nomake examples -release -force-debug-info -android-ndk {{.Env.ANDROID_NDK_ROOT_DEFAULT}} -android-sdk {{.Env.ANDROID_SDK_ROOT}} -android-abis x86_64',
'TARGET_CMAKE_ARGS=-DCMAKE_C_COMPILER_FRONTEND_VARIANT=GNU -DCMAKE_CXX_COMPILER_FRONTEND_VARIANT=GNU -DOPENSSL_ROOT_DIR={{.Env.OPENSSL_ANDROID_HOME_DEFAULT}}',
'NON_QTBASE_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR_ANDROID}}',
'NON_QTBASE_TARGET_CMAKE_ARGS= -DQT_PROTOBUF_WELL_KNOWN_TYPES_PROTO_DIR=/usr/local/include',
'ANDROID_EMULATOR=automotive_emulator_x86_64_api_34'
]
-
Id: "automotive-android-10-x86_64-on-linux"
Template: 'qtci-linux-RHEL-8.8-x86_64-50'
@@ -49,3 +68,19 @@ Configurations:
'NON_QTBASE_TARGET_CMAKE_ARGS= -DQT_PROTOBUF_WELL_KNOWN_TYPES_PROTO_DIR=/usr/local/include',
'ANDROID_EMULATOR=automotive_emulator_x86_64_api_29'
]
-
Id: "automotive-android-10-x86_64-on-linux-rhel-8.10"
Template: 'qtci-linux-RHEL-8.10-x86_64-50'
Target os: 'Android_ANY'
Target arch: 'x86_64'
Compiler: 'GCC'
Target compiler: 'Clang'
Platform dependency: 'rhel-8.10'
Features: ['InsignificantTests', 'Sccache', 'WarningsAreErrors', 'AndroidTestRun', 'VMSize8', 'UseConfigure']
Environment variables: [
'TARGET_CONFIGURE_ARGS=-nomake examples -release -force-debug-info -android-ndk {{.Env.ANDROID_NDK_ROOT_DEFAULT}} -android-sdk {{.Env.ANDROID_SDK_ROOT}} -android-abis x86_64',
'TARGET_CMAKE_ARGS=-DCMAKE_C_COMPILER_FRONTEND_VARIANT=GNU -DCMAKE_CXX_COMPILER_FRONTEND_VARIANT=GNU -DOPENSSL_ROOT_DIR={{.Env.OPENSSL_ANDROID_HOME_DEFAULT}}',
'NON_QTBASE_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR_ANDROID}}',
'NON_QTBASE_TARGET_CMAKE_ARGS= -DQT_PROTOBUF_WELL_KNOWN_TYPES_PROTO_DIR=/usr/local/include',
'ANDROID_EMULATOR=automotive_emulator_x86_64_api_29'
]

View File

@@ -3,6 +3,7 @@ Module only: true
Include: [
cmake_platforms.yaml: [
"windows-10_22h2-msvc2019",
"rhel-8.10",
"rhel-8.8"
],
macos.yaml: [

View File

@@ -0,0 +1,62 @@
### RED HAT ENTERPRISE LINUX 8.10 ###
Language: English (United States)
Time & Date: Etc/Coordinated Universal Time
Software Selection: Server with GUI
Installation Destination: Automatic partitioning selected
Root Passowrd: Set
Network & Host..: Connect
User Creation
Beging Installation
Reboot
Licensing: Accept
Finish Configuration
gnome-initial-setup:
Language: English (US)
Typing:English (US)
Privacy: Location Services: OFF
Connect Your Online Accounts: Skip
Start Using Red Hat Enterprise Linux
# Add user to sudoers
Add 'qt ALL=NOPASSWD: ALL' to /etc/sudoers.d/qt
# Configure Settings
Notifications:
* Notification Popups: OFF
* Lock Screen Notifications: OFF
Privacy:
* Screen Lock: OFF
Power:
* Blank screen: Never
Details:
* Time & Date: Time Zone: UTC
* run "sudo timedatectl set-timezone Etc/UTC"
* Users: Automatic login on
Add 'GRUB_GFXMODE=1280x800' to /etc/default/grub
sudo grub2-mkconfig -o /etc/grub2.cfg
sudo grub2-mkconfig -o /boot/grub2/grub.cfg
# Add support for virtio driver
su
echo "add_drivers+=\" virtio-blk \"" >> /etc/dracut.conf.d/virtio.conf
dracut -f
# Do these from Opennebula UI!
# Enable network connection from right upper corner
Devices:
* Displays: Resolution 1280 x 800
# Fetch and run coin-setup
Download http://coin/coin/binary/linux_amd64/coin-setup
# run as qt user
chmod 755 coin-setup
run './coin-setup'
Reboot

View File

@@ -0,0 +1,15 @@
#!/usr/bin/env bash
# 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
set -ex
sudo tee -a /etc/dconf/db/local.d/00-media-automount <<"EOF"
[org/gnome/desktop/media-handling]
automount=false
automount-open=false
EOF
sudo dconf update

View File

@@ -0,0 +1,3 @@
#!/bin/sh
echo "ETHTOOL_OPTS='-K \${DEVICE} tso off'" | sudo tee -a /etc/sysconfig/network-scripts/ifcfg-Wired_connection_1

View File

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

View File

@@ -0,0 +1,18 @@
#!/usr/bin/env bash
# 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
set -e
curl --retry 5 --retry-delay 10 --retry-max-time 60 http://ci-files01-hki.ci.qt.io/input/semisecure/redhat_ak_all_versions.sh -o "/tmp/redhat_ak.sh" &>/dev/null
sudo chmod 755 /tmp/redhat_ak.sh
/tmp/redhat_ak.sh
# refresh local certificates
sudo subscription-manager refresh
# Attach available subscriptions to system. This is needed when subscriptions are renewed.
sudo subscription-manager attach --auto
sudo rm -f /tmp/redhat_ak.sh

View File

@@ -0,0 +1,11 @@
#!/usr/bin/env bash
#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
# Ipv6 link local becomes tentative and dadfailed if two systems has the same secret_key
# New unique secret key will be created automatically during start up.
# https://access.redhat.com/solutions/3553581
echo "Removing secret_key"
sudo rm -f "/var/lib/NetworkManager/secret_key"

View File

@@ -0,0 +1,8 @@
#!/usr/bin/env bash
# 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
set -ex
echo "Change default stable-secret to based on MAC"
sudo sed -i '/^IPV6_ADDR_GEN_MODE/d' "/etc/sysconfig/network-scripts/ifcfg-enp1s0"

View File

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

View File

@@ -0,0 +1,29 @@
#!/usr/bin/env bash
# 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
set -ex
BASEDIR=$(dirname "$0")
# shellcheck source=../common/shared/network_test_server_ip.txt
source "$BASEDIR/../common/shared/network_test_server_ip.txt"
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
# for current session
export DISPLAY=:0
# Set timezone to UTC.
sudo timedatectl set-timezone Etc/UTC
# disable Automatic screen lock
gsettings set org.gnome.desktop.screensaver lock-enabled false
# disable blank screen power saving
gsettings set org.gnome.desktop.session idle-delay 0
# Set Wayland enable as false.
echo "Setting Wayland enable as false"
sudo sed -i 's/#WaylandEnable=false/WaylandEnable=false/g' /etc/gdm/custom.conf

View File

@@ -0,0 +1,34 @@
#!/usr/bin/env bash
# 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
set -ex
echo "set WritePreparedUpdates=false" | sudo tee -a /etc/PackageKit/PackageKit.conf
sudo systemctl stop packagekit
sudo systemctl disable packagekit
while sudo fuser /usr/libexec/packagekitd >/dev/null 2>&1; do
echo "Waiting for PackageKit to finish..."
sleep 1
done
sudo yum -y remove PackageKit gnome-software
sudo subscription-manager config --rhsm.manage_repos=1
sudo subscription-manager refresh
# List available RHEL versions and bind with correct one
sudo subscription-manager release --list
sudo subscription-manager release --set=8.10
sudo yum clean all
# sudo yum config-manager --enable 'rhceph-4-tools-for-rhel-8-x86_64-rpms'
sudo yum config-manager --enable 'codeready-builder-for-rhel-8-x86_64-rpms'
sudo yum config-manager --enable 'rhel-8-for-x86_64-baseos-rpms'
sudo yum config-manager --enable 'rhel-8-for-x86_64-appstream-rpms'
# Epel is required for 'double-conversion-devel', 'libsqlite3x' and 'p7zip'
sudo dnf install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
sudo yum clean all
# As well as this fetching the repository data, we also get a printout of the used repos
sudo yum repolist

View File

@@ -0,0 +1,10 @@
#!/usr/bin/env bash
# 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
set -ex
sudo yum -y install gcc-toolset-10 gcc-toolset-10-libatomic-devel
echo "source /opt/rh/gcc-toolset-10/enable" >> ~/.bashrc

View File

@@ -0,0 +1,177 @@
#!/usr/bin/env bash
# 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
set -ex
# Remove update notifications and packagekit running in the background
sudo yum -y remove PackageKit gnome-software
# CI: All platforms should have up-to-date packages when new provision is made
sudo yum -y update
installPackages=()
installPackages+=(git)
installPackages+=(zlib-devel)
installPackages+=(glib2-devel)
installPackages+=(openssl3)
installPackages+=(openssl3-devel)
installPackages+=(freetype-devel)
installPackages+=(fontconfig-devel)
installPackages+=(curl-devel)
installPackages+=(expat-devel)
installPackages+=(gettext-devel)
installPackages+=(perl-devel)
installPackages+=(dh-autoreconf)
# cmake build
installPackages+=(ninja-build)
installPackages+=(pcre2-devel)
installPackages+=(double-conversion-devel)
installPackages+=(zstd)
# update kernel
installPackages+=(kernel)
installPackages+=(kernel-tools)
installPackages+=(kernel-devel)
installPackages+=(kernel-core)
installPackages+=(kernel-modules)
installPackages+=(kernel-headers)
# EGL support
# mesa-libraries need to use older version than 22.1.5-2 which cause Xorg to crash
installPackages+=(mesa-libEGL-devel-21.3.4-1.el8)
installPackages+=(mesa-libGL-devel-21.3.4-1.el8)
installPackages+=(mesa-dri-drivers-21.3.4-1.el8.x86_64)
installPackages+=(mesa-libgbm-21.3.4-1.el8.x86_64)
installPackages+=(mesa-vulkan-drivers-21.3.4-1.el8.x86_64)
installPackages+=(libxkbfile-devel)
# Xinput2
installPackages+=(libXi-devel)
installPackages+=(mysql-server)
installPackages+=(mysql)
installPackages+=(mysql-devel)
installPackages+=(postgresql-devel)
installPackages+=(cups-devel)
installPackages+=(dbus-devel)
# gstreamer 1 for QtMultimedia
# Note! gstreamer1-plugins-bad-free needs to be upgraded or it will conflicts with gstreamer1-plugins-base-devel
installPackages+=(gstreamer1-plugins-bad-free)
installPackages+=(gstreamer1-devel)
installPackages+=(gstreamer1-plugins-base-devel)
# pipewire for QtMultimedia
installPackages+=(pipewire-devel)
# for QtMultimedia, ffmpeg
installPackages+=(yasm)
installPackages+=(libva-devel)
# gtk3 style for QtGui/QStyle
installPackages+=(gtk3-devel)
# libusb1 for tqtc-boot2qt/qdb
installPackages+=(libusbx-devel)
# speech-dispatcher-devel for QtSpeech, otherwise it has no backend on Linux
installPackages+=(speech-dispatcher-devel)
# Python for pyside
installPackages+=(python3.11)
installPackages+=(python3.11-pip)
installPackages+=(python3.11-devel)
# WebEngine
installPackages+=(bison)
installPackages+=(flex)
installPackages+=(gperftools-libs)
installPackages+=(gperf)
installPackages+=(alsa-lib-devel)
installPackages+=(pulseaudio-libs-devel)
installPackages+=(libdrm-devel)
installPackages+=(libva-devel)
installPackages+=(libXtst-devel)
installPackages+=(libxshmfence-devel)
installPackages+=(nspr-devel)
installPackages+=(nss-devel)
installPackages+=(python3-html5lib)
installPackages+=(libatomic)
installPackages+=(mesa-libgbm-devel-21.3.4-1.el8.x86_64)
# For Android builds
installPackages+=(java-17-openjdk-devel-17.0.9.0.9)
# For receiving shasum
installPackages+=(perl-Digest-SHA)
# INTEGRITY requirements
installPackages+=(glibc.i686)
# Enable Qt Bluetooth
installPackages+=(bluez-libs-devel)
# QtNfc
installPackages+=(pcsc-lite-devel)
# QtWebKit
installPackages+=(libxml2-devel)
installPackages+=(libxslt-devel)
# For building Wayland from source
installPackages+=(libffi-devel)
# QtWayland
#installPackages+=(mesa-libwayland-egl)
#installPackages+=(mesa-libwayland-egl-devel)
installPackages+=(libwayland-client)
installPackages+=(libwayland-cursor)
installPackages+=(libwayland-server)
# Jenkins
installPackages+=(chrpath)
# libxkbcommon
installPackages+=(libxkbcommon-devel)
installPackages+=(libxkbcommon-x11-devel)
# xcb-util-* libraries
installPackages+=(xcb-util)
installPackages+=(xcb-util-image-devel)
installPackages+=(xcb-util-keysyms-devel)
installPackages+=(xcb-util-wm-devel)
installPackages+=(xcb-util-renderutil-devel)
installPackages+=(xcb-util-cursor)
installPackages+=(xcb-util-cursor-devel)
# ODBC support
installPackages+=(unixODBC-devel)
installPackages+=(unixODBC)
# Vulkan support
installPackages+=(vulkan-devel)
installPackages+=(vulkan-tools)
# Conan: For Python build
installPackages+=(xz-devel)
installPackages+=(zlib-devel)
installPackages+=(libffi-devel)
installPackages+=(libsqlite3x-devel)
# Build.pl
installPackages+=(perl-Data-Dumper)
# In RedHat these come with Devtoolset
installPackages+=(gcc)
installPackages+=(gcc-c++)
installPackages+=(make)
# Open source VMware Tools
installPackages+=(open-vm-tools)
# cifs-utils, for mounting smb drive
installPackages+=(keyutils)
installPackages+=(cifs-utils)
# used for reading vcpkg packages version, from vcpkg.json
installPackages+=(jq)
# zip, needed for vcpkg caching
installPackages+=(zip)
# OpenSSL requirement, built by vcpkg
installPackages+=(perl-IPC-Cmd)
sudo yum -y install "${installPackages[@]}"
sudo dnf -y module install nodejs:16
# We shouldn't use yum to install virtualenv. The one found from package repo is not
# working, but we can use installed pip
sudo pip3 install --upgrade pip
# Configure pip
sudo pip config --user set global.index https://ci-files01-hki.ci.qt.io/input/python_module_cache
sudo pip config --user set global.extra-index-url https://pypi.org/simple/
sudo pip3 install virtualenv wheel
sudo python3.11 -m pip install virtualenv wheel
sudo python3.11 -m pip install -r "${BASH_SOURCE%/*}/../common/shared/sbom_requirements.txt"
sudo /usr/bin/pip3 install wheel
sudo /usr/bin/pip3 install dataclasses
OpenSSLVersion="$(openssl3 version |cut -b 9-14)"
echo "System's OpenSSL = $OpenSSLVersion" >> ~/versions.txt
# List all available updates
sudo yum -y list updates

View File

@@ -0,0 +1,17 @@
#!/usr/bin/env bash
# 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
source "${BASH_SOURCE%/*}/../common/unix/DownloadURL.sh"
set -ex
name="p7zip"
version="7-11"
sudo yum -y install "$name"
# Link 7za to 7z so we can use existing installation scripts
sudo ln -s /usr/bin/7za /usr/bin/7z
echo "$name = $version" >> ~/versions.txt

View File

@@ -0,0 +1,5 @@
#!/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
source "${BASH_SOURCE%/*}/../common/linux/install-patchelf.sh"

View File

@@ -0,0 +1,8 @@
#!/usr/bin/env bash
#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
set -ex
BASEDIR=$(dirname "$0")
# shellcheck source=../common/unix/libclang-v100-dyn.sh
"$BASEDIR/../common/unix/libclang-v100-dyn.sh"

View File

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

View File

@@ -0,0 +1,8 @@
#!/usr/bin/env bash
# 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
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,9 @@
#!/usr/bin/env bash
# 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
set -ex
# shellcheck source=../common/linux/disable_selinux.sh
source "${BASH_SOURCE%/*}/../common/linux/disable_selinux.sh"

View File

@@ -0,0 +1,10 @@
#!/usr/bin/env bash
#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
set -ex
# Required by Rhel source build
sudo yum -y install perl-IPC-Cmd
"$(dirname "$0")/../common/unix/install-openssl.sh" "linux"

View File

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

View File

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

View File

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

View File

@@ -0,0 +1,8 @@
#!/usr/bin/env bash
#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
set -ex
BASEDIR=$(dirname "$0")
"$BASEDIR/../common/unix/install-conan.sh"

View File

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

View File

@@ -0,0 +1,46 @@
#!/usr/bin/env bash
# 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
# shellcheck source=../common/unix/DownloadURL.sh
source "${BASH_SOURCE%/*}/../common/unix/DownloadURL.sh"
set -ex
# This script will install ICU
icuVersion="73.2"
icuLocation="/usr/lib64"
sha1="d2bbb7b2a9a9ee00dba5cc6a68137f6c8a98c27e"
baseBinaryPackageURL="http://ci-files01-hki.ci.qt.io/input/icu/$icuVersion/icu-linux-g++-Rhel8.6-x64.7z"
baseBinaryPackageExternalURL="http://master.qt.io/development_releases/prebuilt/icu/prebuilt/$icuVersion/icu-linux-g++-Rhel8.6-x64.7z"
sha1Dev="edc9cba31ffeac28bf7360c52b85b5e4d2f39043"
develPackageURL="http://ci-files01-hki.ci.qt.io/input/icu/$icuVersion/icu-linux-g++-Rhel8.6-x64-devel.7z"
develPackageExternalURL="http://master.qt.io/development_releases/prebuilt/icu/prebuilt/$icuVersion/icu-linux-g++-Rhel8.6-x64-devel.7z"
echo "Installing custom ICU $icuVersion $sha1 packages on RHEL to $icuLocation"
targetFile=$(mktemp)
DownloadURL "$baseBinaryPackageURL" "$baseBinaryPackageExternalURL" "$sha1" "$targetFile"
sudo 7z x -y -o/usr/lib64 "$targetFile"
sudo rm "$targetFile"
echo "Installing custom ICU devel packages on RHEL"
tempDir=$(mktemp -d)
targetFile=$(mktemp)
DownloadURL "$develPackageURL" "$develPackageExternalURL" "$sha1Dev" "$targetFile"
7z x -y -o"$tempDir" "$targetFile"
sudo cp -a "$tempDir"/lib/* /usr/lib64
sudo cp -a "$tempDir"/* /usr/
sudo rm "$targetFile"
sudo rm -fr "$tempDir"
sudo /sbin/ldconfig
echo "ICU = $icuVersion" >> ~/versions.txt

View File

@@ -0,0 +1,8 @@
#!/usr/bin/env bash
#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
set -ex
# shellcheck source=../common/unix/install-breakpad.sh
source "${BASH_SOURCE%/*}/../common/unix/install-breakpad.sh"

View File

@@ -0,0 +1,9 @@
#!/usr/bin/env bash
# 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
set -ex
# shellcheck source=../common/linux/android_linux.sh
source "${BASH_SOURCE%/*}/../common/linux/android_linux.sh"

View File

@@ -0,0 +1,13 @@
#!/usr/bin/env bash
# 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
# This script installs CMake 3.6.2
set -ex
# CMake is needed for autotests that verify that Qt can be built with CMake
# shellcheck source=../common/linux/cmake_linux.sh
source "${BASH_SOURCE%/*}/../common/linux/cmake_linux.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,14 @@
#!/usr/bin/env bash
# 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
echo "Installing vcpkg ports"
echo "VCPKG_ROOT: ${VCPKG_ROOT}"
echo "ANDOID_NDK_HOME: ${ANDROID_NDK_HOME}"
# Installing common ports
BASEDIR=$(dirname "$0")
"$BASEDIR/../common/linux/install-vcpkg-ports.sh"
# Installing platform specific ports
"$BASEDIR/../common/linux/install-vcpkg-ports-android.sh"

View File

@@ -0,0 +1,9 @@
#!/usr/bin/env bash
# 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
set -ex
# shellcheck source=../common/unix/openssl_for_android.sh
source "${BASH_SOURCE%/*}/../common/unix/openssl_for_android.sh"

View File

@@ -0,0 +1,10 @@
#!/usr/bin/env bash
# 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
set -ex
# shellcheck source=../common/unix/install_protobuf.sh
source "${BASH_SOURCE%/*}/../common/unix/install_protobuf.sh"

View File

@@ -0,0 +1,10 @@
#!/usr/bin/env bash
# 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
set -ex
# shellcheck source=../common/unix/install_grpc.sh
source "${BASH_SOURCE%/*}/../common/unix/install_grpc.sh"

View File

@@ -0,0 +1,11 @@
#!/usr/bin/env bash
# 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
# This script installs QEMU Guest Agent
set -ex
sudo yum -y install qemu-guest-agent
sudo systemctl start qemu-guest-agent

View File

@@ -0,0 +1,12 @@
#!/usr/bin/env bash
# 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
set -ex
sudo yum -y install elfutils-libelf-devel
# shellcheck source=../common/linux/install_dwz.sh
source "${BASH_SOURCE%/*}/../common/linux/install_dwz.sh"

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) 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
# TODO: investigate why the FFmpeg plugin can't find shared FFmpeg on rhel-8.8 / 8.10
source "${BASH_SOURCE%/*}/../common/unix/install-ffmpeg.sh" "linux" "static"
source "${BASH_SOURCE%/*}/../common/unix/install-ffmpeg-android.sh" "android-x86_64"
source "${BASH_SOURCE%/*}/../common/unix/install-ffmpeg-android.sh" "android-x86"

View File

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

View File

@@ -0,0 +1,6 @@
#!/usr/bin/env bash
#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
BASEDIR=$(dirname "$0")
"$BASEDIR/../common/unix/squishInstall.sh"

View File

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

View File

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

View File

@@ -0,0 +1,18 @@
#!/usr/bin/env bash
# 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
# 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"