aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Update submodules on 'dev in qt/qt5'HEADdevQt Submodule Update Bot13 hours46-0/+0
| | | | | Change-Id: Ib2f87bcdba6c2bd0c3d3d376583fa1fe37f16ba2 Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
* Replace hard coded branch value with environment variableMatti Paaso3 days1-1/+1
| | | | | | | | | | | 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>
* provisioning: do not install libc++ on ubuntuTim Blechmann3 days1-1/+8
| | | | | | | | | | | | | | | | | installing libc++-20-dev and libgstreamer1.0-dev on the same system causes problems: * using the llvm apt repo, it will uninstall libgstreamer1.0-dev * using ubuntu's repo, it will break gstreamer's pkg-config integration reason is that libgstreamer1.0-dev depends on libunwind-dev, but llvm's libunwind-20-dev does not provide the pkg-config files. as temporary workaround we basically revert e5b56d1d37f98bd8780947aca1378bfb4ce4a624. Pick-to: 6.11 Change-Id: Ib4626d17339256d56c4764e3167f4e9fe4b9c909 Reviewed-by: Tero Heikkinen <tero.heikkinen@qt.io> Reviewed-by: Liang Qi <liang.qi@qt.io>
* Revert "platform_configs: add c++23 nightly builds - part 2"Tim Blechmann3 days1-11/+0
| | | | | | | | | | | | This reverts commit 9073f03937dbd01354913e613c7e121fa484694d. Reason for revert: installing libc++ on ubuntu breaks gstreamer Pick-to: 6.11 Task-number: QTQAINFRA-7340 Change-Id: I8229f80a7010244fccc462eb31d1feadbf389028 Reviewed-by: Liang Qi <liang.qi@qt.io> Reviewed-by: Tero Heikkinen <tero.heikkinen@qt.io>
* init-repository: Add HTTPS support for Gerrit remotesAhmad Hasan Mubashshir3 days3-1/+14
| | | | | | | | | Introduce a new --codereview-https option to use HTTPS instead of SSH for Gerrit URLs. Update QtIROptionsHelpers.cmake and document in QtIRHelp.txt. Change-Id: Iae032bdf07e323a8f63946475c692cab23deffc4 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* FFmpeg, iOS: Store final .xcframework files in 'lib' folderNils Petter Skålerud3 days1-6/+2
| | | | | | | | | | | | | | | | Currently, the iOS FFmpeg provisioning script will install .xcframework files into a subfolder 'frameworks'. The .xcframework files fulfill a similar purpose to ordinary .dylib files and should be placed in a 'lib' subfolder, to make provisioning more similar to how we deploy FFmpeg for other platforms. This patch makes us install .xcframework files in a 'lib' subfolder instead. Task-number: QTBUG-136480 Pick-to: 6.11 6.10 Change-Id: I91f9938b595ecff5b04d49a71e9872f5d7278cda Reviewed-by: Artem Dyomin <artem.dyomin@qt.io>
* CMake: Modify the RunCMake tests to clone from the Coin CI git mirrorAlexandru Croitor4 days6-28/+45
| | | | | | | | This helps with the test stability when code.qt.io is down or slow. Pick-to: 6.10 6.11 Change-Id: I0bdaaa06772a94e73cb33d3f827e4e327123b60a Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* init-repository: Fix passing relative path to --alternatesJoerg Bornemann4 days2-1/+15
| | | | | | | | | | | | | | | When using --alternates with a relative path, nested submodules (e.g., qtdeclarative/tests/auto/qml/ecmascripttests/test262) failed because the alternates path wasn't adjusted for the changed working directory depth. The --alternates option worked correctly with absolute paths. Fix by converting the passed alternates path to an absolute path. Pick-to: 6.8 6.10 6.11 Fixes: QTBUG-142712 Change-Id: Ief7a87768d9ff17bb2832ae363f573ecae58d5ee Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Disable more Axivion ruleshjk4 days1-12/+12
| | | | | | | | | | | 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>
* Provisioning: Add macOS 26 IntelVille-Pekka Karhu4 days60-0/+590
| | | | | | Task-number: QTQAINFRA-7196 Change-Id: I56027e54391cbd90c8ff17ff670ad6551c3bcc0f Reviewed-by: Simo Fält <simo.falt@qt.io>
* Android: Android 16 as maximum supported versionRami Potinkara4 days4-43/+9
| | | | | | | | | | | | 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>
* Update NodeJS to at least version 20Allan Sandfeld Jensen6 days5-8/+8
| | | | | | | | | 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>
* Android, Unix: Move android_emulator_launcher.sh to unix folderNils Petter Skålerud6 days2-1/+1
| | | | | | | | | | | 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>
* macOS, Xcode: Harden error-handling when installing XcodeNils Petter Skålerud6 days1-4/+12
| | | | | | | | | | | | | | | The current script relies on some commands intentionally failing during provisioning because they only apply to certain versions of Xcode. These errors are silenced using pipes. This is error-prone because we can no longer catch when these commands are failing in the case where they should not. This patch introduces some additional error-handling and conditionals to make sure we only run commands when they are intended to succeed. Pick-to: 6.11 6.10 6.8 Change-Id: Ic5048f54adb31d263e28f51312f44fe3b55e6fe5 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* Upgrade Android Command-Line Tools to v19.0Nils Petter Skålerud6 days3-18/+30
| | | | | | | | | | | | | | | 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>
* Android: Begin initial alignment of Linux and macOS provisioningNils Petter Skålerud6 days2-33/+70
| | | | | | | | | | | | | | | | 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>
* Unix: Add curl fallback to check_and_set_proxy.shNils Petter Skålerud6 days1-1/+19
| | | | | | | | | | | | | | | | | This script is stored in the directory 'provisioning/common/unix'. This implies it can be used from Linux and macOS hosts. The script uses the wget command, but at the time of writing, wget is not installed on our macOS hosts. If wget is not found, this command will assume the HTTP proxy is not found rather than fail the script execution. This patch rewrites this script to use curl if wget is not found. This makes it run correctly on macOS. Additionally, it adds a fail case if neither wget or curl is found on the system. Pick-to: 6.11 6.10 6.8 Change-Id: Id54b9fc69307ef28eb35cf1c0042df11e704a6e2 Reviewed-by: Artem Dyomin <artem.dyomin@qt.io>
* macOS ARM, Python: Combine Python provisioning into common scriptNils Petter Skålerud6 days7-141/+52
| | | | | | | | | | | | | The Python provisioning on macOS ARM hosts is done multiple times across separate targets. This patch moves the code into a common script 'macos/python-arm.sh'. As a drive-by, we bump the version of all targets to 3.12.11, whch is the same as the one used in the macOS 15 ARM host. Pick-to: 6.11 6.10 6.8 Change-Id: I8c1f6f7d635fe47b9faa34dbe6988e89252dc2c9 Reviewed-by: Artem Dyomin <artem.dyomin@qt.io>
* Provisioning: Use local mirror for pyenv on macOS ARM hostsNils Petter Skålerud6 days6-0/+12
| | | | | | | | | On macOS hosts we are using external mirrors for installing with pyenv. We should instead pull the necessary files from our local mirror. Pick-to: 6.11 6.10 6.8 Change-Id: I6ba67dfd7cd37809164c7e2c4bcf89d07d45b1b2 Reviewed-by: Artem Dyomin <artem.dyomin@qt.io>
* Update sccache to v0.11.0Toni Saario6 days9-22/+46
| | | | | | | | | | | 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>
* Remove RHEL-8.10Elias Toivola7 days4-17/+5
| | | | | | | | | Existing platform configs with RHEL 8 use RHEL 9 instead. [CI Platforms] Pick-to: 6.11 Task-number: QTQAINFRA-7529 Change-Id: I202fdf464f59db52f7f1edbf99451054c6889e69 Reviewed-by: Tero Heikkinen <tero.heikkinen@qt.io>
* Remove Red Hat 9.4 from CIElias Toivola7 days18-171/+11
| | | | | | | | | RHEL-9.4 is replaced by RHEL-9.6. [CI Platforms] Pick-to: 6.11 6.10 6.8 Task-number: QTQAINFRA-7326 Change-Id: Ia270d20eda412da291d9e09c265afa9c977fab2e Reviewed-by: Tero Heikkinen <tero.heikkinen@qt.io>
* Set Red Hat 9.6 tests as blockingElias Toivola7 days7-9/+9
| | | | | | | | | Also set Packaging targets for RHEL-9.6. [CI Platforms] Task-number: QTQAINFRA-7326 Task-number: QTQAINFRA-7331 Change-Id: I18ec1e79e6fbe7b4ed001a3cdb648dae37b89561 Reviewed-by: Tero Heikkinen <tero.heikkinen@qt.io>
* RHEL-9.6: Add missing package for license-service libraryElias Toivola7 days1-0/+2
| | | | | | | | This amends d534aedb32f42d775b31ab06019d23cdda95ce72 Pick-to: 6.11 6.10 Change-Id: I2ccc49b1e924ae88315f776900046a57789d149e Reviewed-by: Eike Ziller <eike.ziller@qt.io>
* Rename 100... to 10... in Windows provisioning scriptsOleksii Zbykovskyi7 days5-0/+0
| | | | | | | | | | Renamed files since it leads to misunderstanding due to their index. Our CI system sees only two first digits, so 100 is seen as 10 and executed with other 10s which is misleading. Pick-to: 6.10 6.8 Change-Id: Iabb548c622d71df8a3593cc171b7e0c2e2ae0287 Reviewed-by: Artem Dyomin <artem.dyomin@qt.io>
* COIN/QtCreator: Move to RHEL 9 and macOS 15 for QtC 19+Eike Ziller8 days1-4/+17
| | | | | | | | | | | | | | Updating for raising the compiler requirements. Also adds Ubuntu 22 to test with GCC 11 Since Qt Creator branches can use the same Qt branches that define these platforms, keep one RHEL 8 job for Qt Creator 18. Mark it in the features, so the Qt Creator 19+ configuration can filter these out. Pick-to: 6.11 6.10 Change-Id: Ib771f473b6ed3ce42c6191647da7d473b64c2316 Reviewed-by: Jukka Jokiniva <jukka.jokiniva@qt.io>
* Update submodules on 'dev in qt/qt5'Qt Submodule Update Bot13 days46-0/+0
| | | | | Change-Id: I5e91ae5f8621838ebce9c5bd4aad7a694b1a33d1 Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
* CI: Add Java QtBridges config on WinSimo Fält13 days1-0/+7
| | | | | Change-Id: Iae0915763c998a1eebad9dfd1f5080463ac597bf Reviewed-by: Toni Saario <toni.saario@qt.io>
* Update qtopenapi sub-module manuallyTatiana Borisova13 days1-0/+0
| | | | | | | | - need to trigger an update for enabling changes required for merging windows provisioning. Change-Id: I8b5804c2bda2e4f4f4f204b0db95232583ac57e1 Reviewed-by: Jani Heikkinen <jani.heikkinen@qt.io>
* Enable more configurations for qtopenapi on COINTatiana Borisova13 days1-34/+2
| | | | | Change-Id: I1e0ef09e44b54cd44b377fb1ea34a3ad68e4f9f5 Reviewed-by: Tatiana Borisova <tatiana.borisova@qt.io>
* Fix java provisioning on Windows ARMIvan Solovev13 days1-1/+4
| | | | | | | | | | | | | | | | | | | | | | 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 b3f5b4fd6473e5727c4a34fa31a80e483d6a75c1 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>
* Fix maven provisioning script for UnixIvan Solovev13 days1-3/+3
| | | | | | | | | | | - Rename the sha256 variable to sha1, because that's the actual algorithm that was used to calculate the checksum. - Use the `version` variable when constructing `externalUrl`. Amends 0ac4df3e5280212996c80cb12008dc7a63910d9a. Change-Id: I79d38fdf5033dce7d0b04c2d8788767b2325895f Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Provision maven on WindowsIvan Solovev13 days4-0/+39
| | | | | | | | | | | | | 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 0ac4df3e5280212996c80cb12008dc7a63910d9a which provisioned the same files for Linux and macOS. Task-number: QTBUG-138968 Change-Id: I8ec903959c58185a5c46bdb7c13f178bdc10a109 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Add qtopenapi Windows buildsIvan Solovev13 days3-0/+12
| | | | | | | | | | | | | | | | - Add Windows configurations that use MSVC - Provision openapi generator on the relevant platforms - golang is already provisioned on all these platforms The patch does not enable mingw and llvm configs, because we need to build zlib using mingw first. It also does not enable x64_64->arm64 cross-compile configs, because they have a dependency on the mingw config. Task-number: QTBUG-138968 Change-Id: I4fe35d149a1f9bfa93c1a128e5910b33aad536d4 Reviewed-by: Tatiana Borisova <tatiana.borisova@qt.io>
* Add openapi generator provisioning on WindowsIvan Solovev13 days1-0/+27
| | | | | | | | | | 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>
* Set ZLIB_ROOT on Windows with MSVCIvan Solovev13 days1-0/+4
| | | | | | | | | | | | | | | | | That is required for qtopenapi builds that would be enabled in the follow-up patch. The zlib library is already built after commit 97e80c153803d5c466215b811b29f57fd088a308. That commit also sets the ZLIB_PATH_{arch} environment variables. So, we only need to set ZLIB_ROOT to point to the proper zlib installation. This patch does not cover llvm and mingw configurations, because we need to builds zlib using these compilers first. Task-number: QTBUG-138968 Change-Id: I5d5ad754d13bef9fc6184b41823a42d98863991a Reviewed-by: Toni Saario <toni.saario@qt.io>
* Update submodules on 'dev in qt/qt5'Qt Submodule Update Bot2025-12-0146-0/+0
| | | | | Change-Id: I036e9ad47c3e9305f9cba7a838f53b72671b4f8e Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
* Update submodules on 'dev in qt/qt5'Qt Submodule Update Bot2025-11-2546-0/+0
| | | | | Change-Id: Ib541203ea1e1392d5cc97c800d9b6395c41855ee Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
* Provisioning: Ubuntu 20.04 to use new repo-clonesVille-Pekka Karhu2025-11-231-9/+8
| | | | | | | Task-number: QTQAINFRA-7546 Pick-to: 6.10 6.8 6.5 5.15 Change-Id: I70e87800049d8d3eb8466b90c9fc9974749e801a Reviewed-by: Tony Sarajärvi <tony.sarajarvi@qt.io>
* Provisioning: Ubuntu 18.04 to use new repo-clonesVille-Pekka Karhu2025-11-221-6/+6
| | | | | | | Task-number: QTQAINFRA-7563 Pick-to: 6.10 6.8 6.5 5.15 Change-Id: I965297a0d2442e7e3e45f4c68038b7950e0c8da0 Reviewed-by: Tony Sarajärvi <tony.sarajarvi@qt.io>
* COIN: Add missing package for license-service libraryEike Ziller2025-11-222-0/+4
| | | | | | | | | libuuid is needed for it. RHEL 9.0 already has it in its package list, but it was missing for the later RHEL 9 versions Pick-to: 6.10 Change-Id: Ibd052438c534e5811d2f0b0ee848808227e795f9 Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io>
* Disable Axivion reports for Qt-Security-QDataStreamOperatorReadhjk2025-11-221-1/+1
| | | | | | | | | | | | | | | | 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>
* sbom: New SBOM_PYTHON_INTERP_PATH env to use correct python3 for SBOMTero Heikkinen2025-11-2220-2/+64
| | | | | | | | To all linux, macOS and Windows platforms. Task-number: QTQAINFRA-7554 Change-Id: I677440fb9faf3f3d36744b59f91f0036449b639b Reviewed-by: Jukka Jokiniva <jukka.jokiniva@qt.io>
* Add Red Hat 9.6 with non-blocking tests in CIElias Toivola2025-11-2163-1/+913
| | | | | | | | | | | RHEL-9.6 will be run in parallel with RHEL-9.4 with insignificant tests until RHEL-9.6 is confirmed stable, then it will replace RHEL-9.4. [CI Platforms] Task-number: QTQAINFRA-7528 Change-Id: I5fe6bfe6f57f1dfb7ec4aeb05560dd7f01fc7f2f Reviewed-by: Tony Sarajärvi <tony.sarajarvi@qt.io> Reviewed-by: Tero Heikkinen <tero.heikkinen@qt.io>
* Update submodules on 'dev in qt/qt5'Qt Submodule Update Bot2025-11-2146-0/+0
| | | | | Change-Id: I0226a661ae506b1f3a3644a846750a8a1044f872 Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
* Add more info how vcpkg install script worksTero Heikkinen2025-11-201-0/+5
| | | | | | | | Task-number: QTQAINFRA-7522 Task-number: QTQAINFRA-7455 Change-Id: I6ae31d66128d3238fa933249f0efe55169a6e52a Reviewed-by: Simo Fält <simo.falt@qt.io> Reviewed-by: Aku Pietikäinen <aku.pietikainen@qt.io>
* Update Git versionTero Heikkinen2025-11-202-4/+5
| | | | | | | | Newer needed for openSUSE 16.0 Task-number: QTQAINFRA-7517 Change-Id: I636c0f293c78e8d8dcc0810c52589a0e7e809854 Reviewed-by: Simo Fält <simo.falt@qt.io>
* openSUSE 16.0: Upgrade openSSL from 3.0.7 to 3.5.4 (LTS)Tero Heikkinen2025-11-202-4/+7
| | | | | | | | | | | | | | | | | | | | | | | openSSL 3.2.0 or newer required for libcurl in openSUSE 16.0 This solution has possibility to leave default openSSL version into use for others, and openSUSE 16.0 (or others) can move to a newer version if needed. There are currently two tests failing in this update, but as openSUSE 16.0 is non-blocking in the CI, it doesn't get blocked. Tickets created to fix those: - QTBUG-141722 - QTBUG-141723 Task-number: QTQAINFRA-7502 Task-number: QTQAINFRA-7455 Task-number: QTQAINFRA-7452 Change-Id: Ie9995a3afcdb09d091d75651528a94f71f5ece2a Reviewed-by: Elias Toivola <elias.toivola@qt.io> Reviewed-by: Simo Fält <simo.falt@qt.io>
* Add openSUSE Leap 16.0 with non-blocking tests in CITero Heikkinen2025-11-2048-0/+824
| | | | | | | | | | | | | | | | | | | | | | | Notes: - GCC 15 - Python 3.13 - MimerSQL with openSSL 3 - CINetworkTest skipped until newer ICU 77 version available - gstreamer-plugin-openh264 not available Repository names have changed: - Old: /etc/zypp/repos.d/repo-oss.repo - New: /etc/zypp/repos.d/openSUSE:repo-oss.repo Not installed by default, therefore no need to disable anymore: - balooctl - ntp Task-number: QTQAINFRA-7455 Task-number: QTQAINFRA-7452 Change-Id: I2af7f828e07d31d3622cf46e819318c71d28783e Reviewed-by: Simo Fält <simo.falt@qt.io> Reviewed-by: Elias Toivola <elias.toivola@qt.io>
* Update submodules on 'dev in qt/qt5'Qt Submodule Update Bot2025-11-1946-0/+0
| | | | | Change-Id: If2fef4abde18b0450e9d58e8a3ac759f8c7e54aa Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>