When HOME was unset, ~/.cache collapsed to /.cache on the read-only
QNX QEMU rootfs, so Fontconfig printed "No writable cache
directories" from QtGui-linking sub-tests and broke the
expected-output validation in tst_selftests.
Set HOME=/data/home/root (distinct from TMPDIR so filesystem
watcher tests keep separate watchable dirs) and point
FONTCONFIG_FILE at the deployed fonts.conf. QNX SDP 8.0 ships
fonts.conf at etc/fonts/fonts.conf, not etc/fontconfig/fonts.conf
as 7.1 did, so correct the data_files.custom source path too.
Squashes the former HOME-only and FONTCONFIG_FILE changes, which
conflicted on the same QNX_TEST_ENV lines and could not integrate
together.
Pick-to: 6.8 6.11 6.12
Change-Id: I1943d07eff0a2e99bb96db28e73b4c77e4aa2df8
Reviewed-by: Marianne Yrjänä <marianne.yrjana@qt.io>
Reviewed-by: Simo Fält <simo.falt@qt.io>
For scripted auto-execution all shell scripts in provisioning need to
be executbale. Most are, but some have been forgotten.
Make the remaining ones executable.
Fixes: QTQAINFRA-7905
Pick-to: 6.12
Change-Id: I663aeb6c04f2b9d8049d21a75966369b15fe6d29
Reviewed-by: Simo Fält <simo.falt@qt.io>
The Coin hosts file fully overrides the SDP default, which
had 127.0.0.1 and ::1 entries. Combined with nsswitch
"hosts: files mdnsd dns" and resolv.conf -> 172.31.1.1, any
test resolving http(s)://localhost fell through to NXDOMAIN.
Fixes tst_QHttpServer (229 HostNotFoundError asserts) and
tst_abstractoauth2 (silent crash) on QNX 8.0 QEMU. Applied
to 710/ too so the same latent issue can't surface there.
Pick-to: 6.8 6.11 6.12
Change-Id: I2aaa782980cb44afe3499ba8bd35fd7d3c093043
Reviewed-by: Simo Fält <simo.falt@qt.io>
Reviewed-by: Marianne Yrjänä <marianne.yrjana@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>
The upstream vcpkg *-ohos triplets have been changed to build static
libraries in multi-config mode. Add (and use) an arm64-ohos-qt triplet
that builds shared libs in release mode.
The triplet differs from the upstream one only in the values
VCPKG_LIBRARY_LINKAGE and VCPKG_BUILD_TYPE.
This patch is a preparation for merging vcpkg upstream back to our
fork.
Pick-to: 6.12
Change-Id: Iac6a4798b0322e9c57cf09ca35a408c66504ba46
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
The rule in this form is not as helpful as intented.
Paraphrasing comments from the linked issue:
This rule was created based on clazy's “Warn when iterator objects are
implicitly cast to const_iterator" which was likely an attempt to limit
hidden detaches of implicitly-shared Qt containers.
But mixing const_iterator and iterator is not the problem. The problem
is calling a non-const begin()/end()/find()/etc when you only need
const_iterators. So if you ban the implicit conversion from iterator to
const_iterator, you will catch these, theoretically. Practically, no-one
writes QList<Foo>::const_iterator it = l.begin() these days anymore,
everyone is using auto, so the check can never actually trigger for True
Positives.
As-is, it produces False Positives which has a potential to make the
code actually worse.
An alternative to reach a similar goal is to use QT_STRICT_ITERATORS, so
there’s no need for an Axivion check for it.
Task-number: BAUHAUS-29596
Pick-to: 6.12
Change-Id: I910e9ecc89c3db497c046f6d15ff07ab2ecc470a
Reviewed-by: Marc Mutz <marc.mutz@qt.io>
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
We dropped support for AAOS10 already in QtAA 6.9, but forgot to update
the minimum SDK version in CI.
Fixes: QAA-3464
Pick-to: 6.11
Change-Id: Iaba6fb08bb6b00f7c01132e7cd528c4727a31859
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@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>
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 <jimis@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>
The 20260410 SDP patchset ships new majors for freetype and
fontconfig: libfreetype.so.26 (was .so.24) and libfontconfig.so.17
(was .so.1). The old sonames remain only as compatibility stubs
(libfontconfig.so.1 shrinks to a 320 KB shim vs 1.65 MB for .so.17).
Pick up the current libraries in the QEMU system image so Qt runs
against the SDP's real fontconfig/freetype, not the stubs.
Pick-to: 6.8 6.11
Change-Id: I29ceae73d861d1a398f3efd2f4b2eaab3600fc24
Reviewed-by: Tero Heikkinen <tero.heikkinen@qt.io>
The 2026-04-10 patchset refreshes binaries and bakes in tzdata 2026a
in the SDP tree. Added the missing targetFile= line.
Also pull the tzdata as a separately-downloadable overlay, so it can
be bumped without rebuilding the full SDP tarball. Archive root is
qnx800/target/qnx/... so it extracts onto /opt/ directly on top of
the already-extracted SDP.
Pick-to: 6.8 6.11
Change-Id: I29f675429937346825e4a0b6cfac07ce8dc391a6
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>
With a Gradle-enabled Qt build, it's easy now to manage all
Qt modules' JAR builds in one place from an IDE, and that's
what's being done here with Gradle composite builds. This
adds each module's JAR in the qt super repo and each module
also defines its potential dependencies (e.g. Qt6Android.jar).
This also update .gitignore with Gradle, JDTLS and IntelliJ
ignores, and moves the existing .gitignore from the provision
android_gradle project to the root.
Task-number: QTBUG-132915
Change-Id: I4573768c394a4c25347eeb8ce6e2ddf7e57796ef
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Added correct format for author to enable email notifications.
Removed unnecessary dns query which does not work.
Pict-to: 6.11 6.8
Change-Id: I0513e80d07c42197570abbd3354b0be3b50db768
Reviewed-by: Tero Heikkinen <tero.heikkinen@qt.io>
This patch adds Android 17 16KB Beta3 as insignificant platform
to CI which will not abort on first test failure. At the moment
there is only 16KB compliant system image available.
Before the platform can become significant we need to wait
first released version of Android 17. When the first released
version will be added remove the Hack to alter source.properties
mentioned in this patch.
Task-number: QTBUG-143600
Pick-to: 6.11 6.8
Change-Id: Iaf2f122e6b56e496ddb8549f281cca6acd3970ac
Reviewed-by: Elias Toivola <elias.toivola@qt.io>
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
install-vxworks-qemu.sh uses a variable that doesn't exist, causing
issues when we turn on more strict error-handling.
Pick-to: 6.11 6.10 6.8
Change-Id: I9d644a497e4689c7ab35c80f97548b1a1a6bdf12
Reviewed-by: Simo Fält <simo.falt@qt.io>
This makes it easier to use a debug VM without having to use
full paths from the Android SDK and also without having to
know where they live.
Pick-to: 6.5 6.8 6.10 6.11
Change-Id: Ib6c255edae5e5773551fab1008ebdb9a5e1ff8f2
Reviewed-by: Simo Fält <simo.falt@qt.io>
These scripts are generic for both linux and macos, we may parameterize
them and reuse on both platforms.
Change-Id: Ia61cfbbf5c91e2135e38253c4a96605015d2d1b6
Reviewed-by: Alexey Edelev <semlanik@gmail.com>
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>
Currently, this script is hardcoded to output to the directory
'/usr/local/'. This output is stored in the variable 'prefix'. However,
this variable is used inconsistently in the script, meaning we cannot
actually modify the variable to change the output directory.
This patch does the following:
- Applies the 'prefix' variable where necessary.
- Allows an optional command-line parameter to be applied to 'prefix',
allowing one to specify where the output directory. This is
particularly useful for local builds.
No changes to current CI behavior.
Pick-to: 6.11 6.10 6.8
Change-Id: I51f83ce3844c2aa9db778b1c54091acb64a227e6
Reviewed-by: Dimitrios Apostolou <jimis@qt.io>
Reviewed-by: Artem Dyomin <artem.dyomin@qt.io>
This patch updates build.gradle to set compile- and
targetSdkVersion to 36.
Task-number: QTBUG-138552
Task-number: QTBUG-138549
Pick-to: 6.11 6.10 6.8
Change-Id: I44be99956f39e7bc23e8c5a3d15289dfdd574921
Reviewed-by: Nicholas Bennett <nicholas.bennett@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>
Axvion analysis will be run also in release branches and this
prevents results to be mixed between brnaches.
Task-number: QTQAINFRA-7599
Pick-to: 6.11 6.10 6.8
Change-Id: I5766d234bce2054d0dc6999ae1cac3f05c197d0e
Reviewed-by: Aku Pietikäinen <aku.pietikainen@qt.io>
Reviewed-by: Toni Saario <toni.saario@qt.io>
This disables 12 more generally Mostly Harmless warnings to have a
realistic chance to get down to a base line of zero violations.
Later we can re-evaluate the disabled rules one by one and re-enable
them if wanted.
Change-Id: Id9fc2e4013fb7c59040868fea54f14dcda6cefe0
Reviewed-by: Matti Paaso <matti.paaso@qt.io>
This patch
- Replaces Android 15 with Android 16 as a maximum version
- Sets Android 16 as significant and switches to r07 version
Task-number: QTQAINFRA-7299
Task-number: QTQAINFRA-7298
Pick-to: 6.11 6.10 6.8
Change-Id: Ic2ac071da7ab1763225c82e441c27f60cc25fe06
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
Needed for WebEngine based on Chromium 140
Pick-to: 6.10 6.11
Change-Id: I0cf1df1107cc8f5aa2850239608f03a7c7831676
Reviewed-by: Elias Toivola <elias.toivola@qt.io>
Reviewed-by: Jukka Jokiniva <jukka.jokiniva@qt.io>
This script is currently located in the 'linux' directory. In future
patches, it will be reused by macOS and Linux hosts.
This patch moves it into the 'unix' folder.
Pick-to: 6.11 6.10 6.8
Change-Id: Ib03b999bef0373dc9600d505b1f4ce926fa97de6
Reviewed-by: Artem Dyomin <artem.dyomin@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>
The Android provisioning scripts on macOS and Linux perform many of the
same tasks, but with slightly differing approaches. Future patches will
make us run Android emulators on ARM64, which will further make these
scripts similar.
This patch performs some modifications to the macOS provisioning script
to make it more similar to the Linux one. This will help us combine
parts of these scripts in the future.
Task-number: QTQAINFRA-7487
Pick-to: 6.11 6.10 6.8
Change-Id: Idba30d07607780d1ef8c60cc5e038a034c821632
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>
This currently flags 294 occurences in Qt Core as errors, practically
all of them related to the implemenation of QDataStream related
functionality.
I think this generally at the wrong level, certainly for Qt Core,
but also for user code: operator>> is (besides operator<<)
/the/ main reason to use the QDataStream class, so if we consider
this risky, QDataStream itself should not be used, i.e. it would
be better to flagging code that creates QDataStream objects not
every use of operator>> of such objects.
Change-Id: If758bde3a77f64cc8c06f8328459dfcd2d94dc8f
Reviewed-by: Matti Paaso <matti.paaso@qt.io>
This is an unfortunate combination of clazy-function-args-by-ref and
clazy-function-args-by-value.
function-args-by-ref fixes are almost always safe to apply. They
actually may save an unbounded amount of cycles, and there are typically
only a few of them.
On the other hand, function-args-by-value is a mixed bag: There are a
lot of them and the expected gain is small: It's typically trading one
or two register for one register and a "hot" location on the stack.
Especially when passing down such objects to a through a sequence of
function calls this is not even necessarily a clear win on all
architecture.
In any case it should be considered that especially in the Qt context
changing signatures of public functions is not cheap, if possible
at all.
Change-Id: I281ea086fb15e0a045316591d9af620b5e730f4a
Reviewed-by: Matti Paaso <matti.paaso@qt.io>
Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
- replace the linux/install-golang.sh to the unix/install-golang.sh
for macos and linux provisioning configurations.
NOTE:
The Golang version is updated from 1.22.4 to 1.25.2.
Task-number: QTBUG-140130
Change-Id: Ic5e7a93bcad4d82210bcd5c7f4144153c938a603
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Allow the emulator launcher to take new options that are commonly
used:
* --window: shows the emulator window instead of running headless
* --avd: set the emulator name instead of using the env var, this
can be more intuitive and more expected than the env var.
* --help: to guide users how to use this script.
Also, the script now will print a list of available AVD names to
use instead of the less obvious error of no AVD name provided
which forces the user to manually find the names first.
This also, sets the COIN_CTEST_RESULTSDIR to CWD in case
it's not set, this is the case when running as a debug VM.
Pick-to: 6.5 6.8 6.10
Change-Id: Id90ca2fddda713645e9c1621e346d73f1dc85ea1
Reviewed-by: Dimitrios Apostolou <jimis@qt.io>
Ubuntu 23.10 introduced new apparmor features and those prevent bitbake
to work correctly until a apparmor configuration file is installed.
Task-number: QTBUG-137321
Change-Id: Ib3f5faae07ea116012b1c66554211c53ca0e77e7
Reviewed-by: Toni Saario <toni.saario@qt.io>