From d0cda5eb776580924f4ba0e225ccf702cb0dfb8e Mon Sep 17 00:00:00 2001 From: Tero Heikkinen Date: Mon, 20 Apr 2026 14:36:42 +0300 Subject: [PATCH] RHEL: Add test to verify installed release package versions This test will check that release packages are from current release version i.e. RHEL 10.0 "el10_0" and not from 10.1 "el10_1" or newer. If newer release packages are found, script will output those packages and exit with exit code 1 to ensure that release version stays locked. Pick-to: 6.11 Task-number: QTQAINFRA-7817 Task-number: QTQAINFRA-7614 Change-Id: I905dd2e72bf5dadc6f3f4b21aa7c09f06204d297 Reviewed-by: Dimitrios Apostolou --- .../common/linux/verify-release-packages.sh | 20 +++++++++++++++++++ .../qtci-linux-RHEL-10.0-x86_64/99-version.sh | 4 ++++ 2 files changed, 24 insertions(+) create mode 100755 coin/provisioning/common/linux/verify-release-packages.sh diff --git a/coin/provisioning/common/linux/verify-release-packages.sh b/coin/provisioning/common/linux/verify-release-packages.sh new file mode 100755 index 00000000..af508c4c --- /dev/null +++ b/coin/provisioning/common/linux/verify-release-packages.sh @@ -0,0 +1,20 @@ +#!/usr/bin/env bash +# Copyright (C) 2026 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 verifies that all installed packages originate from the current release version and not from newer releases. +# The caller provides a regex that matches the allowed release version and excludes packages from newer releases. + +set -ex + +verify_release_packages() { + local regex_verify="$1" + + if rpm -qa --queryformat="%{NAME} %{RELEASE}\n" | grep -E " .*$regex_verify" >/dev/null; then + echo "Found packages that belong to other RHEL release, aborting" + exit 1 + else + echo "All package versions checked OK" + fi +} + diff --git a/coin/provisioning/qtci-linux-RHEL-10.0-x86_64/99-version.sh b/coin/provisioning/qtci-linux-RHEL-10.0-x86_64/99-version.sh index 709873bc..6d6ab9a0 100755 --- a/coin/provisioning/qtci-linux-RHEL-10.0-x86_64/99-version.sh +++ b/coin/provisioning/qtci-linux-RHEL-10.0-x86_64/99-version.sh @@ -9,9 +9,13 @@ set -ex # shellcheck disable=SC2129 +source "${BASH_SOURCE%/*}/../common/linux/verify-release-packages.sh" + 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" + +verify_release_packages "10_[1-9]"