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]"