Previous SDP update missed windows tools which are need by RTA. Windows
tools now added back to package. In addition, kernel and OpenSSL updated
to newer version with bugfixes.
Fixes: QTBUG-149349
Pick-to: 6.12 6.11 6.8
Change-Id: I65a35e6e8388a8eb7ddfb34f2be66c6817146011
Reviewed-by: Tuomas Vaarala <tuomas.vaarala@qt.io>
Reviewed-by: Simo Fält <simo.falt@qt.io>
The SDP we shipped was a hand-composed package set whose fsnotify
component dated from 2024-11-23 (fs.notify 0.0.2.02005). On that build
QNX never wakes a blocked poll() or select() when an inotify event
arrives, so QSocketNotifier never fires and QFileSystemWatcher's native
engine silently delivers nothing. That is the sole cause of the
tst_qfilesystemwatcher failures on this platform (QTBUG-149526).
GA8.0.5 ships fs.notify 0.3.0.00006, which fixes it. Rather than
cherry-pick the one package, bring the whole SDP to GA8.0.5: all 249
packages the com.qnx.qnx800.patchset805 manifest pins are now at their
GA8.0.5 versions, verified against the manifest with no deviations.
GA8.0.5 also ships mkqnximage 0.5.0, whose inputs/data.build gained a
built-in "var/etc/hosts=etc/hosts" entry and fixed the syntax of the
var/etc/resolv.conf symlink entry. Both are emitted before the
data_files.custom block and the first entry for a path wins, so they
silently shadowed our own hosts and resolv.conf. That left the image
with the stock QNX /etc/hosts - none of the statically mapped test
server names - and a dangling /etc/resolv.conf symlink. The hosts
entry is dropped in the SDP tarball; resolv.conf is provisioned here
at var/dhcpcd/resolv.conf, which is what the symlink now points at.
Verified with the unmodified upstream test on both architectures -
23 passed, 0 failed, 0 skipped on an aarch64 Raspberry Pi 5 and on the
x86_64 QEMU image built from this SDP. Previously 16 passed, 7 failed.
A standalone inotify poll() reproducer now exits 0 on both, and a
booted image resolves the test server names again.
Pick-to: 6.12 6.11
Task-number: QTBUG-149526
Change-Id: I9275aef6c24f693f3115265c51d109d2b2254c7a
Reviewed-by: Marianne Yrjänä <marianne.yrjana@qt.io>
Reviewed-by: Simo Fält <simo.falt@qt.io>
As a drive-by, we fix the ffmpeg-installation-utils.sh script to install
FFmpeg source code into the expected target directory, instead of it
relying haphazardly on the name of the downloaded archive.
Same fix for install-ffmpeg.ps1.
Pick-to: 6.12
Task-number: QTBUG-148761
Change-Id: Id765e01fbd402ee494a6a3ffec773d1dccc07c87
Reviewed-by: Tim Blechmann <tim.blechmann@qt.io>
Qt for Android builds run Gradle which needs to frequently
request download artifacts from Gradle and Maven, and that
can sometimes fail due to network issues, or worse in times
or many request might get temporarily blocked.
To avoid that, this uses the internal Gradle mirror. This
is done by installing an init script routing every
repository through the internal Nexus mirror.
Also, since Qt's build runs offline, ~/.gradle must be
fully prepared during provisioning, without reaching
public repositories. That's achieve by priming the cache
by building the shared proiect and seeding the Gradle
distribution from the internal mirror into the wrapper
cache, so no wrapper externally request Gradle.
Pick-to: 6.12
Fixes: QTQAINFRA-6166
Task-number: QTQAINFRA-7942
Change-Id: I1e8dacf8ea5f3c492f12270c5f407bd4e5a2e756
Reviewed-by: Ville-Pekka Karhu <ville-pekka.karhu@qt.io>
Also have to update libclang-llvmorg to a version built with llvm-mingw 22.1.7
Pick-to: 6.12
Task-number: QTQAINFRA-7552
Change-Id: I7e579eacb146718b34ec486598323fa85cf3bfb4
Reviewed-by: Tim Blechmann <tim.blechmann@qt.io>
Reviewed-by: Simo Fält <simo.falt@qt.io>
This patch upgrades the provisioned FFmpeg version to n8.1.2
As a prerequisite, it also installs the nasm package on relevant
platforms.
Pick-to: 6.12
Task-number: QTBUG-139714
Change-Id: Ibc9dc21a9caeba812ff94e8c0b5a2a1ab3959c64
Reviewed-by: Tim Blechmann <tim.blechmann@qt.io>
Reviewed-by: Nils Petter Skålerud <nils.petter.skalerud@qt.io>
Update provisioned cmake to 4.3.2.
Adjust the linux provisioning script to be architecture-aware.
Add the script to the provisioning of the Ubuntu-24.04-aarch64
platform, which was previously missing it and instead relied on the
system 3.28.3 CMake.
Pick-to: 6.8 6.11 6.12
Fixes: QTQAINFRA-7785
Change-Id: Ib2b6a55d7b994c95299ddf66546d9362b04823df
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Toolchain updated to newer version and related library version updates done.
Added sshd-session as it's now needed by SSH Daemon.
Pick-to: 6.12 6.11 6.8
Change-Id: Iebf22f27c33709902485bd034c9442659c1b54cc
Reviewed-by: Simo Fält <simo.falt@qt.io>
Add Run-Executable-With-Timeout, a wrapper around Run-Executable that
takes a timeout in seconds as its first argument. Run-Executable gains
an internal -TimeoutSeconds parameter (default 0 = no timeout, all
existing callers unaffected) used by the new wrapper.
Apply a generous timeout to the Notepad++ silent installer, which was
observed hanging for ~14 hours and causing provisioning CANCELED
failures on Windows 11 24H2 machines.
Cache the process handle ($null = $p.Handle) immediately after
Start-Process -PassThru. Without this, $p.ExitCode reads back as $null
after the process exits, which made Run-Executable spuriously throw
"Process <exe> exited with exit code " (blank) on successful runs.
This race was observed in provisioning logs for certutil.exe in the
certificate-updates step.
Change-Id: Icc66b670a3d40d67d1b6251913a06dbffeffaec2
Reviewed-by: Elias Toivola <elias.toivola@qt.io>
Reviewed-by: Simo Fält <simo.falt@qt.io>
Syft is a tool that scans package manager manifest or lock files and
generates an SBOM (Software Bill of Materials) file based on the
found packages. It can generated both CycloneDX and SPDX SBOM formats.
The tool will be used by the Qt for Python project to generate SBOMs
based on the python packages used during the build.
The tool is provisioned on all the platforms that have the
GenerateSBOM feature.
Pick-to: 6.8 6.11 6.12
Task-number: PYSIDE-3366
Change-Id: I1369f7b1b041b1fc0d8a56a20446df322d26d33a
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
This prevents sneaky NDK overwrites if there is no versioning in the
.zip root directory.
Pick-to: 6.12 6.11 6.8
Task-number: QTQAINFRA-7069
Change-Id: Ib0bd30c27da316735001bc5027d1dac1f8ead703
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
Contains the .m2 folder from home after openapi build. Extracts it
to VM at same path.
Pick-to: 6.11
Change-Id: I3eb5858160db1c996f3c72fae2b91be1478f000c
Reviewed-by: Simo Fält <simo.falt@qt.io>
Reviewed-by: Elias Toivola <elias.toivola@qt.io>
Also set SCCACHE_DIRECT in an effort to counter the error:
cc1plus: error: .../CMakeFiles/....dir/cmake_pch.hxx.gch: \
created by a different GCC executable [-Werror=invalid-pch]
Pick-to: 6.12 6.11 6.8
Change-Id: Ic7a3743642ff69495309794f6d17fc9b98d7f338
Reviewed-by: Toni Saario <toni.saario@qt.io>
vcpkg-tool release tag 2026-05-27 contains the patch necessary for
HarmonyOS support. We can use the unpatched upstream vcpkg-tool again.
Change the provisioning scripts back to fetch the tool from upstream's
release artifacts page.
Pick-to: 6.12
Fixes: QTQAINFRA-7902
Change-Id: I84ef4582ef8ff5ca6e8e135128fe515438ac2a22
Reviewed-by: Elias Toivola <elias.toivola@qt.io>
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Mirror the existing Windows qnx710.ps1 for the 20260410 SDP
patchset and pull the 2026a tzdata overlay alongside it, same
pattern as the Linux common/linux/qnx_800.sh script.
Pick-to: 6.10 6.11
Change-Id: I5b718de8274ba2e1dc174199736c26ecdb5ea44e
Reviewed-by: Tony Sarajärvi <tony.sarajarvi@qt.io>
After vcpkg has installed libraries, only the contents of
$vcpkgRoot\installed are needed by Qt builds. The vcpkg \buildtrees and
\packages directories should be deleted to significantly reduce Windows
tier-2 image size.
Pick-to: 6.11 6.8
Task-number: QTBUG-115715
Change-Id: I311242c61ba7000cdcc49b0f6ff92cf343e209c9
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Included in tier-1 image qtci-windows-11_24H2-x86_64-72:
- MSVC v14.50.35719
- Windows SDK 10.0.26100.7705
- dotnet 10.0 components
- Visual Studio now has 'ci_msvs' user added in which has license to use
debugger tools.
Task-number: QTQAINFRA-7559
Task-number: QTQAINFRA-5417
Change-Id: Ic488702e8c23f989405c5992b8aaf61093a11797
Reviewed-by: Tero Heikkinen <tero.heikkinen@qt.io>
- the 7.18.0 has generation updates, that affect the code
generation. We already moved to 7.18.0 on Linux and MacOS CIs,
but forgot to update on Windows. See:
e5871fa6e6
Noticed the problem during the work on a 'nullable' feature,
that is not supported by 7.15.0.
Pick-to: 6.11
Change-Id: I9be758218831aae47d7cc9cb1d2dbf60795e6d27
Reviewed-by: Ivan Solovev <ivan.solovev@qt.io>
The packages required for FFmpeg provisioning may change between FFmpeg
versions, as is the case when upgrading to FFmpeg n8.1. It is a
time-waster to manually go through all hosts to make sure they all
have the correct packages. Additionally we have no way of knowing
whether a package is used by FFmpeg and/or something else.
This patch moves the list of required FFmpeg packages into some common
files, and refactors each host to read these files. This way we can
modify provisioning in one place.
Pick-to: 6.11
Change-Id: I31d409595b7da231b1f845c18095e77f7af51b0a
Reviewed-by: Artem Dyomin <artem.dyomin@qt.io>
Reviewed-by: Elias Toivola <elias.toivola@qt.io>
There have been times where we have updated the list of packages to
install, but prebuilt binaries have missed them. This change adds a
check to confirm that the expected packages are installed.
Pick-to: 6.11
Change-Id: I5f6e2b7917c45f7a220d41946e5e4030f63ca21d
Reviewed-by: Elias Toivola <elias.toivola@qt.io>
Reviewed-by: Tero Heikkinen <tero.heikkinen@qt.io>
Add an :app and :lib modules so both com.android.application
and com.android.library paths are exercised, and add a Kotlin
source + JUnit test in each module. This makes gradlew build
pull the kotlin toolchain jars (compiler-embeddable, reflect,
coroutines) that Qt Android JAR and app builds could need
later. This way we ensure all possible artifacts are made
available in the cache during provisioning and avoid or at
least reduce the chances or later downloads.
Task-number: QTBUG-132915
Change-Id: Ic518f96370ffc40f921bcb3063257f8663e41615
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Used by Qt Creator for cross-platform development (gocmdbridge)
Pick-to: 6.11
Change-Id: Icac0c298169f269c006d92843243e2bed25439bc
Reviewed-by: Akseli Salovaara <akseli.salovaara@qt.io>
Current MSYS does not have a prebuild in ci-files01 cache, which makes
the msys2 install script to use pacman to externally download, which can
cause flakiness.
The prebuilt was fetched from a parked Windows 11 24h2 x64 VM, by
compressing: "C:\Utils\msys64" to .7z
Pick-to: 6.11 6.8
Task-number: QTQAINFRA-7387
Change-Id: I4bd037a6d985fc1c007ba65d8f54a73d4183cb10
Reviewed-by: Tero Heikkinen <tero.heikkinen@qt.io>
Add scripts to download and cache Gradle distribution
and its dependencies during provisioning for all hosts
so that Qt builds don't have to fetch them on every Qt
module and test build.
Add those scripts to various RHEL, Ubuntu, macos and
windows configurations after Android has been run
since the Gradle build for Android requires Android
SDK.
Prior to this, to avoid having a full Gradle project added
to the coin tree, some Gradle files were being fetched from
qtbase using a commit sha, that was aiming to reduce the
amount of changes each time, but that's a bit awkward since
the files here and this commit sha needs to be updated
anyways. So just have a full Gradle project here and update
its values whenever we bump Gradle or Android supported
versions.
Task-number: QTBUG-132915
Change-Id: Id4876ad90a09cdaada5b96c457820c691e2be426
Reviewed-by: Simo Fält <simo.falt@qt.io>
Reviewed-by: Dimitrios Apostolou <jimis@qt.io>
The script 'install-ffmpeg.ps1' contains logic for building all targets
even if some targets fail, and then report all results at the end. When
building Android specifically, we download patchelf sources from CI,
it's possible for it to throw an exception if CI-files is not
available. This breaks the logic and makes us terminate early.
This patch encloses the Invoke-WebRequest in a try-catch.
This also makes it easier to run this script locally.
Pick-to: 6.11 6.8
Change-Id: I93d4ec905c61dc7b44b87100353353f24c27d276
Reviewed-by: Artem Dyomin <artem.dyomin@qt.io>
OpenSSL for Windows is now prebuilt. Instructions to build OpenSSL for
Android are also changed.
Pick-to: 6.11
Task-number: QTQAINFRA-5540
Change-Id: I40fb6964b5887c4bfee008997057a75cc70ac037
Reviewed-by: Tero Heikkinen <tero.heikkinen@qt.io>
This script currently downloads the .zip file from the web into a local
file with no file extension. This can cause issues for 7-zip when
unarchiving. This patch fixes this.
As a drive-by, we improve the names of some variables.
Pick-to: 6.11 6.8
Change-Id: Icb1b24646b54d75d825764d30a268fa6e55d0183
Reviewed-by: Artem Dyomin <artem.dyomin@qt.io>
...based on the length of the given hash.
Additionally use -ine for string comparison, which explicitly does
case-insensitive comparison. That is what the function needs, previously
it was done implicitly by -ne.
And remove MD5, it's not used anywhere.
Pick-to: 6.11 6.10 6.8 6.5
Change-Id: Ib4303737e5e1d743dd0be1a8f829be9a0db2bc04
Reviewed-by: Tero Heikkinen <tero.heikkinen@qt.io>
Since the version we use right now has some issues, download a newer
version from the Qt Multimedia repository to get the latest fixes and
improvements.
Change-Id: I6f42c01680ebd9fb3cb67ea802afa23536751ae8
Reviewed-by: Artem Dyomin <artem.dyomin@qt.io>
It's not possible to test video APIs in CI, when they require hardware.
Install a virtual camera driver on Windows, that can be used in autotests.
Steps for installation and configuration of vcam are:
install vcam from GitLab, restore NuGet packages and build the solution,
register the created DLL in the win register, and set the env. variable.
Task-number: QTBUG-139831
Change-Id: I963aca94e980440dc96e6998e3cd6de387dd80e9
Reviewed-by: Axel Spoerl <axel.spoerl@qt.io>
Reviewed-by: Nils Petter Skålerud <nils.petter.skalerud@qt.io>
Reviewed-by: Artem Dyomin <artem.dyomin@qt.io>
There is not particular reason to hold multiple manifests for the vcpkg
for different platforms, since we expect that the direct dependency set
that is used from vcpkg will remain the same on each platform.
Keeping copies of the vcpkg manifest doesn't make much sense.
The vcpkg manifest and configuration file are now in the
coin/provisioning/common/shared/vcpkg directory.
Change-Id: Icc9c88592c68cb591216f3d0668f9984592d6c7b
Reviewed-by: Simo Fält <simo.falt@qt.io>
Made an installation of NuGet in a separate script to be able to share
the packages by an environment variable between multiple scripts.
NuGet is needed for both the Windows App SDK and a virtual camera.
Also added a label on top of the scripts about copyright and license.
Change-Id: I11f035d8eb107d2d2c9e2a93f17a935129bb707e
Reviewed-by: Tero Heikkinen <tero.heikkinen@qt.io>
Reviewed-by: Elias Toivola <elias.toivola@qt.io>
RTA is using different means to install Squish for RTA tests, no need
to do it in general provisioning.
Pick-to: 6.11
Change-Id: I4858a282ad7a0b1412f6dd0f4876109fe54a4c88
Reviewed-by: Tero Heikkinen <tero.heikkinen@qt.io>
Reviewed-by: Jukka Jokiniva <jukka.jokiniva@qt.io>
This patch bumps:
-The sdkBuildToolsVersion used in Coin to 36.0.0
-The sdkApiLevel used in Coin to 36
Task-number: QTBUG-138550
Task-number: QTBUG-138549
Pick-to: 6.11 6.10 6.8
Change-Id: Ic63cd28ba39743e517ea3a3e2f9ec08bd5dc3267
Reviewed-by: Jukka Jokiniva <jukka.jokiniva@qt.io>
This patch updates the Android Command-Line Tools in CI from v2.1 to
v19.0.
The zip file for the older version contained a single directory
'tools', this directory has been renamed to 'cmdline-tools' in the
newer version. This patch includes some changes to make sure we still
use the same folder structure as before.
Task-number: QTQAINFRA-7487
Pick-to: 6.11 6.10 6.8
Change-Id: Id9227241283d4c529005c4961449f50ca7af13be
Reviewed-by: Artem Dyomin <artem.dyomin@qt.io>
Custom patched packages for windows.
Also Add Windows on arm support.
Pick-to: 6.11 6.10 6.8
Fixes: COIN-740
Change-Id: I27f7d36b3501be2a2011b9b8dfa0ec846cd57bf5
Reviewed-by: Jukka Jokiniva <jukka.jokiniva@qt.io>
The installer from Microsoft which is used for ARM machines has a
different default installation path compared to the installer from
Oracle that is used for x64 machines, but the provisioning script did
not take it into consideration.
As a result, the JAVA_HOME variable was pointing to a non-existing dir
on Windows ARM machines.
An attempt to adjust the installation path using TARGETDIR or INSTALLDIR
properties did not work, so this patch simply hardcodes the path that is
used by the current ARM installer.
Amends b3f5b4fd64 that added Java
provisioning to Windows ARM.
Task-number: QTBUG-138968
Pick-to: 6.10 6.8
Change-Id: I2abdc07195a9c633340c2d7b21deaa80762aee67
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
It is required for qtopenapi.
The patch adds the maven provisioning to only those Windows
configurations that are currently used in qtopenapi.
This commit amends 0ac4df3e52 which
provisioned the same files for Linux and macOS.
Task-number: QTBUG-138968
Change-Id: I8ec903959c58185a5c46bdb7c13f178bdc10a109
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Place the downloaded file into the new directory inside C:\Utils and
add it to the PATH, because that's what the qtopenapi build scripts
expect.
Task-number: QTBUG-138968
Change-Id: I113b0095074cc8f0dc0470daf54fa7f22ee22719
Reviewed-by: Toni Saario <toni.saario@qt.io>
To all linux, macOS and Windows platforms.
Task-number: QTQAINFRA-7554
Change-Id: I677440fb9faf3f3d36744b59f91f0036449b639b
Reviewed-by: Jukka Jokiniva <jukka.jokiniva@qt.io>