From e874a76a484f7d0db7460c68db5e683fa6e8c06b Mon Sep 17 00:00:00 2001 From: Alexandru Croitor Date: Mon, 7 Oct 2024 16:35:42 +0200 Subject: [PATCH] coin: Explicitly specify Python 3.10 for SBOM processing on Windows MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The 'reuse' tool installed into the Python 3.8 environment on Windows has a broken 'jinja2' package, due to conan being installed after the sbom tool, which replaces the jinja package. pip reports the issue but does not actually exit with a non-zero status for some reason, thus not blocking the initial provisioning. The jinja2 version installed in the Python 3.10 environment on Windows is compatible with both conan and reuse. To work around the issue, explicitly install the sbom tools only for Python 3.10 on Windows platforms, and specify the path to the Python interpreter in an environment variable for the build system to use. Amends 1f2fb6312c1a8c92ab6700faa785e046aca2ecf9 Pick-to: 6.8 Task-number: QTBUG-122899 Task-number: QTBUG-124453 Task-number: QTBUG-125211 Change-Id: I386da17a1902dd26af332cef3482dbcb2221a1b3 Reviewed-by: Joerg Bornemann Reviewed-by: Simo Fält --- coin/provisioning/common/windows/python3.ps1 | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/coin/provisioning/common/windows/python3.ps1 b/coin/provisioning/common/windows/python3.ps1 index 13637c6c..1422fc5b 100644 --- a/coin/provisioning/common/windows/python3.ps1 +++ b/coin/provisioning/common/windows/python3.ps1 @@ -78,10 +78,17 @@ Run-Executable "$install_path\python.exe" "-m pip config --user set global.index Run-Executable "$install_path\python.exe" "-m pip config --user set global.extra-index-url https://pypi.org/simple/" Run-Executable "$install_path\Scripts\pip3.exe" "$pip_args install virtualenv wheel html5lib" -# Check if python version is higher than 3.8. +# Check if python version is higher than 3.10. # ntia-conformance-checker requires at least 3.8 -if ([version]::Parse($version) -gt [version]::Parse("3.8")) { +# reuse requires at least 3.9, to avoid conflict with installed conan jinja package, +# at least until we use virtual envs. +# The lowest version available on all windows platforms that we currently run on that satisfies +# these requirements is 3.10. +if ([version]::Parse($version) -gt [version]::Parse("3.10")) { Run-Executable "$install_path\Scripts\pip3.exe" "$pip_args install -r $PSScriptRoot\..\shared\sbom_requirements.txt" + # 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" } # Install PyPDF2 for QSR documentation