From cdf01ee62c82484e9ef2eb6e8c2f7ae0c0063908 Mon Sep 17 00:00:00 2001 From: Tero Heikkinen Date: Mon, 17 Nov 2025 13:59:05 +0200 Subject: [PATCH] sbom: New SBOM_PYTHON_INTERP_PATH env to use correct python3 for SBOM To all linux, macOS and Windows platforms. Task-number: QTQAINFRA-7554 Change-Id: I677440fb9faf3f3d36744b59f91f0036449b639b Reviewed-by: Jukka Jokiniva --- coin/provisioning/common/macos/python3.sh | 3 +++ coin/provisioning/common/windows/python3.ps1 | 1 + .../qtci-linux-Debian-11.6-aarch64/02-apt.sh | 3 +++ .../04-install-packages.sh | 11 +++++++++-- .../qtci-linux-RHEL-9.2-x86_64/04-install-packages.sh | 3 +++ .../qtci-linux-RHEL-9.4-x86_64/04-install-packages.sh | 3 +++ .../qtci-linux-RHEL-9.6-x86_64/04-install-packages.sh | 3 +++ .../qtci-linux-SLES-15_SP5-x86_64/08-pythondev.sh | 3 +++ .../qtci-linux-SLES-15_SP6-x86_64/08-pythondev.sh | 3 +++ .../qtci-linux-Ubuntu-22.04-x86_64/02-apt.sh | 3 +++ .../qtci-linux-Ubuntu-24.04-aarch64/02-apt.sh | 3 +++ .../qtci-linux-Ubuntu-24.04-x86_64/02-apt.sh | 3 +++ .../qtci-linux-openSUSE-15.5-x86_64/08-pythondev.sh | 3 +++ .../qtci-linux-openSUSE-15.6-x86_64/08-pythondev.sh | 3 +++ .../qtci-linux-openSUSE-16.0-x86_64/08-pythondev.sh | 3 +++ coin/provisioning/qtci-macos-12-arm/25-python.sh | 3 +++ coin/provisioning/qtci-macos-13-arm/25-python.sh | 3 +++ coin/provisioning/qtci-macos-14-arm/25-python.sh | 3 +++ coin/provisioning/qtci-macos-15-arm/25-python.sh | 3 +++ coin/provisioning/qtci-macos-26-arm/25-python.sh | 3 +++ 20 files changed, 64 insertions(+), 2 deletions(-) diff --git a/coin/provisioning/common/macos/python3.sh b/coin/provisioning/common/macos/python3.sh index e58a236d..979585ad 100755 --- a/coin/provisioning/common/macos/python3.sh +++ b/coin/provisioning/common/macos/python3.sh @@ -30,6 +30,9 @@ SetEnvVar "PYTHON3_PATH" "/Library/Frameworks/Python.framework/Versions/3.11/bin SetEnvVar "PIP3_PATH" "/Library/Frameworks/Python.framework/Versions/3.11/bin" SetEnvVar "SBOM_PYTHON_APPS_PATH" "/Library/Frameworks/Python.framework/Versions/3.11/bin" +# Set SBOM_PYTHON_INTERP_PATH to Python3 instance which was used to install SBOM packages from requirements +SetEnvVar "SBOM_PYTHON_INTERP_PATH" "/Library/Frameworks/Python.framework/Versions/3.11/bin/python3" + # Install Python certificates. Required at least for emsdk installation open /Applications/Python\ 3.11/Install\ Certificates.command diff --git a/coin/provisioning/common/windows/python3.ps1 b/coin/provisioning/common/windows/python3.ps1 index 2ae87b25..961f46b5 100644 --- a/coin/provisioning/common/windows/python3.ps1 +++ b/coin/provisioning/common/windows/python3.ps1 @@ -89,6 +89,7 @@ if ([version]::Parse($version) -gt [version]::Parse("3.10")) { # Set the environment variable for the build system to know which python path to use for SBOM # processing. Set-EnvironmentVariable "SBOM_PYTHON_APPS_PATH" "$install_path\Scripts" + Set-EnvironmentVariable "SBOM_PYTHON_INTERP_PATH" "$install_path\python.exe" } # Install PyPDF2 for QSR documentation diff --git a/coin/provisioning/qtci-linux-Debian-11.6-aarch64/02-apt.sh b/coin/provisioning/qtci-linux-Debian-11.6-aarch64/02-apt.sh index 19ba6778..fcf5f775 100755 --- a/coin/provisioning/qtci-linux-Debian-11.6-aarch64/02-apt.sh +++ b/coin/provisioning/qtci-linux-Debian-11.6-aarch64/02-apt.sh @@ -269,6 +269,9 @@ source "${BASH_SOURCE%/*}/../common/unix/SetEnvVar.sh" SetEnvVar "SBOM_PYTHON_APPS_PATH" "/home/qt/.local/bin" +# Set SBOM_PYTHON_INTERP_PATH to Python3 instance which was used to install SBOM packages from requirements +SetEnvVar "SBOM_PYTHON_INTERP_PATH" "/usr/local/bin/python3" + # SetEnvVar "PATH" "/usr/lib/nodejs-mozilla/bin:\$PATH" #OpenSSLVersion="$(openssl version |cut -b 9-14)" diff --git a/coin/provisioning/qtci-linux-RHEL-8.10-x86_64/04-install-packages.sh b/coin/provisioning/qtci-linux-RHEL-8.10-x86_64/04-install-packages.sh index 6ff2a714..8dd9af34 100644 --- a/coin/provisioning/qtci-linux-RHEL-8.10-x86_64/04-install-packages.sh +++ b/coin/provisioning/qtci-linux-RHEL-8.10-x86_64/04-install-packages.sh @@ -172,12 +172,19 @@ 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 html5lib sudo python3.11 -m pip install -r "${BASH_SOURCE%/*}/../common/shared/requirements.txt" -# For now we don't set QT_SBOM_PYTHON_APPS_PATH here, and rely on the build system to find the -# system python3.11. sudo /usr/bin/pip3 install wheel sudo /usr/bin/pip3 install dataclasses +# Provisioning during installation says: +# 'The script sbom2doc is installed in '/usr/local/bin' which is not on PATH.' +# hence the explicit assignment to SBOM_PYTHON_APPS_PATH. +source "${BASH_SOURCE%/*}/../common/unix/SetEnvVar.sh" +SetEnvVar "SBOM_PYTHON_APPS_PATH" "/usr/local/bin" + +# Set SBOM_PYTHON_INTERP_PATH to Python3 instance which was used to install SBOM packages from requirements +SetEnvVar "SBOM_PYTHON_INTERP_PATH" "/usr/bin/python3.11" + gccVersion="$(gcc --version |grep -Eo '[0-9]+\.[0-9]+(\.[0-9]+)?' |head -n 1)" echo "GCC = $gccVersion" >> versions.txt diff --git a/coin/provisioning/qtci-linux-RHEL-9.2-x86_64/04-install-packages.sh b/coin/provisioning/qtci-linux-RHEL-9.2-x86_64/04-install-packages.sh index 6bb924cd..384aa0ec 100755 --- a/coin/provisioning/qtci-linux-RHEL-9.2-x86_64/04-install-packages.sh +++ b/coin/provisioning/qtci-linux-RHEL-9.2-x86_64/04-install-packages.sh @@ -196,6 +196,9 @@ sudo /usr/bin/pip3 install -r "${BASH_SOURCE%/*}/../common/shared/requirements.t source "${BASH_SOURCE%/*}/../common/unix/SetEnvVar.sh" SetEnvVar "SBOM_PYTHON_APPS_PATH" "/usr/local/bin" +# Set SBOM_PYTHON_INTERP_PATH to Python3 instance which was used to install SBOM packages from requirements +SetEnvVar "SBOM_PYTHON_INTERP_PATH" "/usr/bin/python3" + # Make FindPython3.cmake to find python3 sudo ln -s /usr/bin/python3 /usr/local/bin/python3 diff --git a/coin/provisioning/qtci-linux-RHEL-9.4-x86_64/04-install-packages.sh b/coin/provisioning/qtci-linux-RHEL-9.4-x86_64/04-install-packages.sh index 4eba3616..e720d0c6 100644 --- a/coin/provisioning/qtci-linux-RHEL-9.4-x86_64/04-install-packages.sh +++ b/coin/provisioning/qtci-linux-RHEL-9.4-x86_64/04-install-packages.sh @@ -199,6 +199,9 @@ sudo /usr/bin/pip3 install -r "${BASH_SOURCE%/*}/../common/shared/requirements.t source "${BASH_SOURCE%/*}/../common/unix/SetEnvVar.sh" SetEnvVar "SBOM_PYTHON_APPS_PATH" "/usr/local/bin" +# Set SBOM_PYTHON_INTERP_PATH to Python3 instance which was used to install SBOM packages from requirements +SetEnvVar "SBOM_PYTHON_INTERP_PATH" "/usr/bin/python3" + # Make FindPython3.cmake to find python3 sudo ln -s /usr/bin/python3 /usr/local/bin/python3 diff --git a/coin/provisioning/qtci-linux-RHEL-9.6-x86_64/04-install-packages.sh b/coin/provisioning/qtci-linux-RHEL-9.6-x86_64/04-install-packages.sh index 9ed8fa5d..90f70e05 100644 --- a/coin/provisioning/qtci-linux-RHEL-9.6-x86_64/04-install-packages.sh +++ b/coin/provisioning/qtci-linux-RHEL-9.6-x86_64/04-install-packages.sh @@ -200,6 +200,9 @@ sudo /usr/bin/pip3 install -r "${BASH_SOURCE%/*}/../common/shared/requirements.t source "${BASH_SOURCE%/*}/../common/unix/SetEnvVar.sh" SetEnvVar "SBOM_PYTHON_APPS_PATH" "/usr/local/bin" +# Set SBOM_PYTHON_INTERP_PATH to Python3 instance which was used to install SBOM packages from requirements +SetEnvVar "SBOM_PYTHON_INTERP_PATH" "/usr/bin/python3" + # Make FindPython3.cmake to find python3 sudo ln -s /usr/bin/python3 /usr/local/bin/python3 diff --git a/coin/provisioning/qtci-linux-SLES-15_SP5-x86_64/08-pythondev.sh b/coin/provisioning/qtci-linux-SLES-15_SP5-x86_64/08-pythondev.sh index ebe413e1..b412d105 100644 --- a/coin/provisioning/qtci-linux-SLES-15_SP5-x86_64/08-pythondev.sh +++ b/coin/provisioning/qtci-linux-SLES-15_SP5-x86_64/08-pythondev.sh @@ -81,3 +81,6 @@ SetEnvVar "PYTHON3_PATH" "/usr/local/bin" # 'The script sbom2doc is installed in '/home/qt/.local/bin' which is not on PATH.' # hence the explicit assignment to SBOM_PYTHON_APPS_PATH. SetEnvVar "SBOM_PYTHON_APPS_PATH" "/home/qt/.local/bin" + +# Set SBOM_PYTHON_INTERP_PATH to Python3 instance which was used to install SBOM packages from requirements +SetEnvVar "SBOM_PYTHON_INTERP_PATH" "/usr/local/bin/python3" diff --git a/coin/provisioning/qtci-linux-SLES-15_SP6-x86_64/08-pythondev.sh b/coin/provisioning/qtci-linux-SLES-15_SP6-x86_64/08-pythondev.sh index 3c53bf58..43ea5beb 100644 --- a/coin/provisioning/qtci-linux-SLES-15_SP6-x86_64/08-pythondev.sh +++ b/coin/provisioning/qtci-linux-SLES-15_SP6-x86_64/08-pythondev.sh @@ -81,3 +81,6 @@ SetEnvVar "PYTHON3_PATH" "/usr/local/bin" # 'The script sbom2doc is installed in '/home/qt/.local/bin' which is not on PATH.' # hence the explicit assignment to SBOM_PYTHON_APPS_PATH. SetEnvVar "SBOM_PYTHON_APPS_PATH" "/home/qt/.local/bin" + +# Set SBOM_PYTHON_INTERP_PATH to Python3 instance which was used to install SBOM packages from requirements +SetEnvVar "SBOM_PYTHON_INTERP_PATH" "/usr/local/bin/python3.12" diff --git a/coin/provisioning/qtci-linux-Ubuntu-22.04-x86_64/02-apt.sh b/coin/provisioning/qtci-linux-Ubuntu-22.04-x86_64/02-apt.sh index ae3b182d..b2c0f6eb 100755 --- a/coin/provisioning/qtci-linux-Ubuntu-22.04-x86_64/02-apt.sh +++ b/coin/provisioning/qtci-linux-Ubuntu-22.04-x86_64/02-apt.sh @@ -262,6 +262,9 @@ source "${BASH_SOURCE%/*}/../common/unix/SetEnvVar.sh" # hence the explicit assignment to SBOM_PYTHON_APPS_PATH. SetEnvVar "SBOM_PYTHON_APPS_PATH" "/home/qt/.local/bin" +# Set SBOM_PYTHON_INTERP_PATH to Python3 instance which was used to install SBOM packages from requirements +SetEnvVar "SBOM_PYTHON_INTERP_PATH" "/usr/bin/python3" + gccVersion="$(gcc --version |grep -Eo '[0-9]+\.[0-9]+(\.[0-9]+)?' |head -n 1)" echo "GCC = $gccVersion" >> versions.txt diff --git a/coin/provisioning/qtci-linux-Ubuntu-24.04-aarch64/02-apt.sh b/coin/provisioning/qtci-linux-Ubuntu-24.04-aarch64/02-apt.sh index aed8c9a5..4af1cffa 100644 --- a/coin/provisioning/qtci-linux-Ubuntu-24.04-aarch64/02-apt.sh +++ b/coin/provisioning/qtci-linux-Ubuntu-24.04-aarch64/02-apt.sh @@ -258,6 +258,9 @@ source "${BASH_SOURCE%/*}/../common/unix/SetEnvVar.sh" # hence the explicit assignment to SBOM_PYTHON_APPS_PATH. SetEnvVar "SBOM_PYTHON_APPS_PATH" "/home/qt/.local/bin" +# Set SBOM_PYTHON_INTERP_PATH to Python3 instance which was used to install SBOM packages from requirements +SetEnvVar "SBOM_PYTHON_INTERP_PATH" "/usr/bin/python3" + gccVersion="$(gcc --version |grep -Eo '[0-9]+\.[0-9]+(\.[0-9]+)?' |head -n 1)" echo "GCC = $gccVersion" >> versions.txt diff --git a/coin/provisioning/qtci-linux-Ubuntu-24.04-x86_64/02-apt.sh b/coin/provisioning/qtci-linux-Ubuntu-24.04-x86_64/02-apt.sh index 4f3e1b1d..15b86dee 100644 --- a/coin/provisioning/qtci-linux-Ubuntu-24.04-x86_64/02-apt.sh +++ b/coin/provisioning/qtci-linux-Ubuntu-24.04-x86_64/02-apt.sh @@ -270,6 +270,9 @@ source "${BASH_SOURCE%/*}/../common/unix/SetEnvVar.sh" # hence the explicit assignment to SBOM_PYTHON_APPS_PATH. SetEnvVar "SBOM_PYTHON_APPS_PATH" "/home/qt/.local/bin" +# Set SBOM_PYTHON_INTERP_PATH to Python3 instance which was used to install SBOM packages from requirements +SetEnvVar "SBOM_PYTHON_INTERP_PATH" "/usr/bin/python3" + gccVersion="$(gcc --version |grep -Eo '[0-9]+\.[0-9]+(\.[0-9]+)?' |head -n 1)" echo "GCC = $gccVersion" >> versions.txt diff --git a/coin/provisioning/qtci-linux-openSUSE-15.5-x86_64/08-pythondev.sh b/coin/provisioning/qtci-linux-openSUSE-15.5-x86_64/08-pythondev.sh index b6721cc1..6ebcca0d 100755 --- a/coin/provisioning/qtci-linux-openSUSE-15.5-x86_64/08-pythondev.sh +++ b/coin/provisioning/qtci-linux-openSUSE-15.5-x86_64/08-pythondev.sh @@ -22,3 +22,6 @@ SetEnvVar "PYTHON3_EXECUTABLE" "/usr/bin/python3.11" # '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" + +# Set SBOM_PYTHON_INTERP_PATH to Python3 instance which was used to install SBOM packages from requirements +SetEnvVar "SBOM_PYTHON_INTERP_PATH" "/usr/bin/python3.11" diff --git a/coin/provisioning/qtci-linux-openSUSE-15.6-x86_64/08-pythondev.sh b/coin/provisioning/qtci-linux-openSUSE-15.6-x86_64/08-pythondev.sh index 0722bda1..70e362da 100644 --- a/coin/provisioning/qtci-linux-openSUSE-15.6-x86_64/08-pythondev.sh +++ b/coin/provisioning/qtci-linux-openSUSE-15.6-x86_64/08-pythondev.sh @@ -22,3 +22,6 @@ SetEnvVar "PYTHON3_EXECUTABLE" "/usr/bin/python3.11" # '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" + +# Set SBOM_PYTHON_INTERP_PATH to Python3 instance which was used to install SBOM packages from requirements +SetEnvVar "SBOM_PYTHON_INTERP_PATH" "/usr/bin/python3.11" diff --git a/coin/provisioning/qtci-linux-openSUSE-16.0-x86_64/08-pythondev.sh b/coin/provisioning/qtci-linux-openSUSE-16.0-x86_64/08-pythondev.sh index 3f5b757e..4056ac0c 100644 --- a/coin/provisioning/qtci-linux-openSUSE-16.0-x86_64/08-pythondev.sh +++ b/coin/provisioning/qtci-linux-openSUSE-16.0-x86_64/08-pythondev.sh @@ -20,3 +20,6 @@ SetEnvVar "PYTHON3_EXECUTABLE" "/usr/bin/python3.13" # '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" + +# Set SBOM_PYTHON_INTERP_PATH to Python3 instance which was used to install SBOM packages from requirements +SetEnvVar "SBOM_PYTHON_INTERP_PATH" "/usr/bin/python3.13" diff --git a/coin/provisioning/qtci-macos-12-arm/25-python.sh b/coin/provisioning/qtci-macos-12-arm/25-python.sh index 3a97f70c..27bebf25 100755 --- a/coin/provisioning/qtci-macos-12-arm/25-python.sh +++ b/coin/provisioning/qtci-macos-12-arm/25-python.sh @@ -23,4 +23,7 @@ SetEnvVar "PATH" "\$PYTHON3_PATH:\$PATH" # hence the explicit assignment to SBOM_PYTHON_APPS_PATH. SetEnvVar "SBOM_PYTHON_APPS_PATH" "/Users/qt/.local/bin" +# Set SBOM_PYTHON_INTERP_PATH to Python3 instance which was used to install SBOM packages from requirements +SetEnvVar "SBOM_PYTHON_INTERP_PATH" "/Users/qt/.pyenv/versions/3.9.7/bin/python3" + echo "python3 = 3.9.7" >> ~/versions.txt diff --git a/coin/provisioning/qtci-macos-13-arm/25-python.sh b/coin/provisioning/qtci-macos-13-arm/25-python.sh index 3a97f70c..27bebf25 100755 --- a/coin/provisioning/qtci-macos-13-arm/25-python.sh +++ b/coin/provisioning/qtci-macos-13-arm/25-python.sh @@ -23,4 +23,7 @@ SetEnvVar "PATH" "\$PYTHON3_PATH:\$PATH" # hence the explicit assignment to SBOM_PYTHON_APPS_PATH. SetEnvVar "SBOM_PYTHON_APPS_PATH" "/Users/qt/.local/bin" +# Set SBOM_PYTHON_INTERP_PATH to Python3 instance which was used to install SBOM packages from requirements +SetEnvVar "SBOM_PYTHON_INTERP_PATH" "/Users/qt/.pyenv/versions/3.9.7/bin/python3" + echo "python3 = 3.9.7" >> ~/versions.txt diff --git a/coin/provisioning/qtci-macos-14-arm/25-python.sh b/coin/provisioning/qtci-macos-14-arm/25-python.sh index 3a97f70c..27bebf25 100755 --- a/coin/provisioning/qtci-macos-14-arm/25-python.sh +++ b/coin/provisioning/qtci-macos-14-arm/25-python.sh @@ -23,4 +23,7 @@ SetEnvVar "PATH" "\$PYTHON3_PATH:\$PATH" # hence the explicit assignment to SBOM_PYTHON_APPS_PATH. SetEnvVar "SBOM_PYTHON_APPS_PATH" "/Users/qt/.local/bin" +# Set SBOM_PYTHON_INTERP_PATH to Python3 instance which was used to install SBOM packages from requirements +SetEnvVar "SBOM_PYTHON_INTERP_PATH" "/Users/qt/.pyenv/versions/3.9.7/bin/python3" + echo "python3 = 3.9.7" >> ~/versions.txt diff --git a/coin/provisioning/qtci-macos-15-arm/25-python.sh b/coin/provisioning/qtci-macos-15-arm/25-python.sh index 5482b1a0..dc17efc9 100755 --- a/coin/provisioning/qtci-macos-15-arm/25-python.sh +++ b/coin/provisioning/qtci-macos-15-arm/25-python.sh @@ -23,4 +23,7 @@ SetEnvVar "PATH" "\$PYTHON3_PATH:\$PATH" # hence the explicit assignment to SBOM_PYTHON_APPS_PATH. SetEnvVar "SBOM_PYTHON_APPS_PATH" "/Users/qt/.local/bin" +# Set SBOM_PYTHON_INTERP_PATH to Python3 instance which was used to install SBOM packages from requirements +SetEnvVar "SBOM_PYTHON_INTERP_PATH" "/Users/qt/.pyenv/versions/3.12.11/bin/python3" + echo "python3 = 3.12.11" >> ~/versions.txt diff --git a/coin/provisioning/qtci-macos-26-arm/25-python.sh b/coin/provisioning/qtci-macos-26-arm/25-python.sh index 3a97f70c..27bebf25 100755 --- a/coin/provisioning/qtci-macos-26-arm/25-python.sh +++ b/coin/provisioning/qtci-macos-26-arm/25-python.sh @@ -23,4 +23,7 @@ SetEnvVar "PATH" "\$PYTHON3_PATH:\$PATH" # hence the explicit assignment to SBOM_PYTHON_APPS_PATH. SetEnvVar "SBOM_PYTHON_APPS_PATH" "/Users/qt/.local/bin" +# Set SBOM_PYTHON_INTERP_PATH to Python3 instance which was used to install SBOM packages from requirements +SetEnvVar "SBOM_PYTHON_INTERP_PATH" "/Users/qt/.pyenv/versions/3.9.7/bin/python3" + echo "python3 = 3.9.7" >> ~/versions.txt