[qt/qt/qtbase]: Summary of bulk changes made
KDE Git Services - Bulk Change <[email protected]>
| Newsgroups | gmane.comp.kde.cvs |
|---|---|
| Message-ID | <[email protected]> |
Git repository change summary for qt/qt/qtbase Pushed by mirror-service into branch '6.12'. Changed from e217389691c8088a8505b32b1523c80489b1849c to 7b2ced8e97beb120fc15760c681f8290d5f91dd5 Acknowledgement was received that this change introduces only existing code that has been pushed to another public open source repository. This change contains the following new commits: Git commit b6399869b2d3de156e8fc2588550ea0c5a010b5a by Qt Cherry-pick Bot (on behalf of Marc Mutz) on 17/08/2026 at 17:48.. Qt::totally_ordered_wapper: make swaps constexpr Since qt_hash_ptr() is constexpr, and std::swap(), too, at least since C++20, the totally_ordered_wrapper hidden friends might break __cpp_lib_constexpr_algorithms, so mark our two swap functions constexpr. Add a test. In case you're wondering "what about qHash()?": can't be, since the T* overload isn't constexpr, so a larger, orthogonal, change. Amends 5831c3123594f0d901b381110a41c75dcb9935e2 (6.8). Picking back all the way, since this is defect users cannot work around, yet it doesn't affect anyone not using constexpr algorithms. Pick-to: 6.11 6.8 Change-Id: Ia0fe6fe24652807cbeb817cf9c9cacf534d0da97 Reviewed-by: Thiago Macieira <[email protected]> Reviewed-by: Ivan Solovev <[email protected]> (cherry picked from commit 3602e36f65ad5d44049483832662ef09e26f8632) Reviewed-by: Qt Cherry-pick Bot <[email protected]> https://invent.kde.org/qt/qt/qtbase/-/commit/b6399869b2d3de156e8fc2588550ea0c5a010b5a Git commit ad16d2c09fcdabfcb38404c6aad5f80a08b8d411 by Qt Cherry-pick Bot (on behalf of Tor Arne Vestbø) on 17/08/2026 at 17:48.. CMake: Remove dead _qt_internal_should_skip_post_build_deployment_api The helper was added for qtdeclarative's POST_BUILD deployment, and was never called from qtbase itself. Its last caller went away when we retired the build-tree QML deployment step in qtdeclarative's 8cae7ea4ac7ecbc0063d37a713332e252739e745. Task-number: QTBUG-101338 Change-Id: Ia69b5dc928dcc06aa5e98760743e4ec7d7fe2f0e Reviewed-by: Alexandru Croitor <[email protected]> (cherry picked from commit 9456d37ed75a5aea8f7bc438336fb9691d7ff5af) Reviewed-by: Qt Cherry-pick Bot <[email protected]> https://invent.kde.org/qt/qt/qtbase/-/commit/ad16d2c09fcdabfcb38404c6aad5f80a08b8d411 Git commit fb3af81ba6138d480d6166d4d5189646ffc9d16c by Qt Cherry-pick Bot (on behalf of Andy Nichols) on 17/08/2026 at 17:48.. ohos: Fix crash when a native sub window can't use SessionManager Creating a native sub window selected createSubWindowWithOptions() purely from the device type (everything that is not a phone). That call requires SystemCapability.Window.SessionManager, and on devices where it is unavailable at runtime the JS call returns undefined instead of a Promise. Qt runs inside an embedded UIExtension host where this happens even when the capability is advertised, so the resulting rejected promise reached qOhosReportFatalErrorAndAbort() and terminated the process with SIGABRT, for example when opening a menu or popup backed by a native sub window. Query the capability directly with canIUse() instead of guessing from the device type, and if createSubWindowWithOptions() still fails, fall back to the @crossplatform createSubWindow() rather than aborting. The options dropped by createSubWindow() (title, decorations, modality and rect) are applied separately after creation anyway. Reference: https://developer.huawei.com/consumer/en/doc/harmonyos-references/arkts-apis-window-windowstage#createsubwindowwithoptions11 Task-number: QTBUG-148852 Fixes: QTBUG-149105 Change-Id: Id04295c901340b59b1ce13cfef1d584e45202424 Reviewed-by: Liang Qi <[email protected]> Reviewed-by: SanthoshKumar Selvaraj <[email protected]> (cherry picked from commit 09ddf5a59c8bfba4913775cf9e11a016832423ea) Reviewed-by: Qt Cherry-pick Bot <[email protected]> https://invent.kde.org/qt/qt/qtbase/-/commit/fb3af81ba6138d480d6166d4d5189646ffc9d16c Git commit 6fe24743369ac42c78c91c7bcca63402f804c949 by Linus Jahn on 17/08/2026 at 17:48.. QNetworkInfo[android]: Advertise Metered feature The Android backend has connected AndroidConnectivityManager's meteredChanged signal to setMetered() ever since it gained metered support, but Feature::Metered was never added to the features list. isMetered() reads the backend value without consulting that list, so the value itself has been correct all along. supports(Metered) and supportedFeatures(), however, do not report it, and since the factory filters on featuresSupported(), loadBackendByFeatures(Metered) fails to load a backend at all on Android -- the android plugin is the only one built there, so there is nothing to fall back to and instance() returns nullptr. This is the same omission that was fixed for the Windows backend in QTBUG-118741. Amends 83ddf49bc71736a19f27e6e8b72831ea72e441cc [ChangeLog][QtNetwork][QNetworkInformation] Fixed the Android backend not advertising Feature::Metered, which made supports(Metered) and loadBackendByFeatures(Metered) fail on Android, even though isMetered() returned the correct value. Fixes: QTBUG-148810 Pick-to: 6.11 6.8 Change-Id: I446fefd2771cd8cb1fc3b1dda2eb2fc45fcfa8e0 Reviewed-by: Mårten Nordheim <[email protected]> (cherry picked from commit f00ced8d0df829f6ec4507d4784c905888628d6d) https://invent.kde.org/qt/qt/qtbase/-/commit/6fe24743369ac42c78c91c7bcca63402f804c949 Git commit fd5e1771877506ec9c0ed926ad171225a59065d1 by Robert Löhning on 17/08/2026 at 17:48.. QGuiSvg: Move tests for toDouble() over from qtsvg I copied the test from qtsvg's tst_qsvghandler.cpp as of 1ba217a64de33ebcae67dc8b0e6db48624157217 I changed to static_assert()s to Q_ASSERT()s because NAN seems to not be constexpr on VxWorks. Task-number: QTBUG-149125 Change-Id: Id843bb2b3be55e2925b0b9bcdb554b274e950610 Reviewed-by: Kaj Grönholm <[email protected]> (cherry picked from commit 0704c91e21c2f6c280f4df203a8603235a0d12a5) https://invent.kde.org/qt/qt/qtbase/-/commit/fd5e1771877506ec9c0ed926ad171225a59065d1 Git commit c7c694c9b7ba12a78314ef59a53e71dbe04a424e by Assam Boudjelthia on 17/08/2026 at 17:48.. AndroidTestRunner: return command output instead of out-params execCommand, execAdbCommand, execBundletoolCommand and adbReadAppFile returned bool and filled a QByteArray out-parameter, so most callers paired a fresh QByteArray with a negated call. QByteArray's null state already models that success/value split. Return the captured output instead: a null result means the command failed (could not start, timed out, or exited non-zero), a non-null one carries its output, so callers test with isNull(). A silently succeeding command keeps a non-null empty result to stay distinct from failure. execCommand now prints a failed command's stdout itself, gated on the per-call verbose flag, so the build and pre-test callers no longer need the out-parameter to report why a command broke; routine adb polls pass verbose=false and stay quiet. Task-number: QTBUG-146960 Change-Id: I4cc114a606553f24fc05926732490b0c76b209cd Reviewed-by: Ville Voutilainen <[email protected]> (cherry picked from commit a73a64106c290046f05b86c86c295c781b5aedad) https://invent.kde.org/qt/qt/qtbase/-/commit/c7c694c9b7ba12a78314ef59a53e71dbe04a424e Git commit cd2ab069eafa9009754efe4bdc18ce269d5cf014 by Assam Boudjelthia on 17/08/2026 at 17:48.. AndroidTestRunner: probe the stdout file with head -c 0 waitForLoggingStarted() probes for the device-side output file before tailing it. Use `head -c 0 files/X 2> /dev/null` instead of listing it with ls. That will read nothing and just reflects the file's openability, so it returns empty output on a hit and a null result on a miss, which maps cleanly onto the isNull() check. Side note: the probe runs under run-as, which exec's the command directly, so it has to be a real binary. This works as opposed to `test -e` that is rejected by run-as on Android 9. Task-number: QTBUG-146960 Change-Id: I0991a5a252fd4819324116a5ec549c501f464599 Reviewed-by: Ville Voutilainen <[email protected]> (cherry picked from commit e4f26ca598d0d5ab1cd193929119321728bf6ae4) Reviewed-by: Qt Cherry-pick Bot <[email protected]> https://invent.kde.org/qt/qt/qtbase/-/commit/cd2ab069eafa9009754efe4bdc18ce269d5cf014 Git commit d9d8e13a1ae854c828f1029c037c0b4f476a7ded by Assam Boudjelthia on 17/08/2026 at 17:48.. AndroidTestRunner: warn on logcat fetch fail instead of qCritical A failed logcat fetch is non-fatal where fetchLogcat() returns the empty result and the caller carries on regardless. Using qCritical() in that case is slightly inaccurate, so use qWarning() instead. Task-number: QTBUG-146960 Change-Id: I51b799a8884a0d47fe75e27734f307ed7785bc54 Reviewed-by: Ville Voutilainen <[email protected]> (cherry picked from commit 1e5532f01b178c1b1b182b0491d714b2812347b0) Reviewed-by: Qt Cherry-pick Bot <[email protected]> https://invent.kde.org/qt/qt/qtbase/-/commit/d9d8e13a1ae854c828f1029c037c0b4f476a7ded Git commit a40c3c649552b14e573e252bb3ac791c75b559dc by Assam Boudjelthia on 17/08/2026 at 17:48.. AndroidTestRunner: surface launch crashes when am start fails am start -W only returns once the activity is up. A crash before main never lets it report that, so on Android 9 the command hangs until the adb timeout and the runner then exited EXIT_ERROR with no clue why. Run the logcat crash analysis on that failure and return EXIT_NOEXITCODE, so a pre-main crash gets the same ndk-stack diagnostics as a crash during the test. Task-number: QTBUG-146960 Change-Id: Ie24e0807dcbe757ea61585c2fb02cde25a5325e0 Reviewed-by: Ville Voutilainen <[email protected]> (cherry picked from commit f9e5d26adec792e094f639898859499548d588e6) Reviewed-by: Qt Cherry-pick Bot <[email protected]> https://invent.kde.org/qt/qt/qtbase/-/commit/a40c3c649552b14e573e252bb3ac791c75b559dc Git commit 3c228b8f967b98c18276225bdf17158b7d95f745 by Assam Boudjelthia on 17/08/2026 at 17:48.. AndroidTestRunner: parse CLI arguments via QCommandLineParser Replace the hand-rolled if/else loop and printHelp() with QCommandLineParser, dropping the parallel help text that had to track parseOptions() by hand. A splitOwnAndTestArgs preprocessor inserts -- ahead of the first unknown arg, so CI wrappers can keep appending QTest's bare CLI ("-o file,xml", "-,txt") without a separator. The set of known options is derived from what the parser already has. The preprocessor fails the run early with "Option --<name> requires a value." when a value-taking flag is the last argv entry, instead of letting the parser report a less informative "Missing value". When --aab is given, verify the --bundletool path actually exists up front so a missing jar surfaces a clear runner-level error instead of a confusing 'java -jar /no/such.jar' failure later. Behavioural change: option matching is now case sensitive. Task-number: QTBUG-146960 Change-Id: I2cda0e45919c5edfc033c0062df37ddfa08fca48 Reviewed-by: Ville Voutilainen <[email protected]> (cherry picked from commit b79ee960343d7bedf97520a0c7338481436a02fd) https://invent.kde.org/qt/qt/qtbase/-/commit/3c228b8f967b98c18276225bdf17158b7d95f745 Git commit b4e39212b698e3e8ed6c182ff4b4d3999ebf3ef7 by Assam Boudjelthia on 17/08/2026 at 17:48.. AndroidTestRunner: add tst_androidtestrunner A Python orchestrator under tests/auto/util/androidtestrunner/ drives the host androidtestrunner against a testapp on a device. The testapp builds as MANUAL so it is not a ctest entry itself. CommandLineTests exercise the parser without a device: - help and case sensitivity - --apk and --aab conflicts - bare CI -o forms - --verbose - --timeout (killing a hanging adb) - value-taking option at end of argv ("Option --apk requires a value") - manifest fallback discovery, explicit override, and non-existent path - --bundletool path existence check - --activity option is accepted - INSTALL_ROOT scoping to the GNU-make family - --skip-install-root override - missing APK detection - device discovery and serial-pin paths DeviceRunTests run against a real device: - scenario-controlled exits (pass / fail / skip / crash / qFatal) - function and data-tag selection - QT_ and QTEST_ env-var forwarding with spaces - every -o output format - ndk-stack symbolication with default and explicit --ndk-stack, missing path, non-zero exit, and non-executable file - ANR detection - AAB install + run - per-serial QLockFile recovery and concurrent same-serial serialise - --show-logcat - --pre-test-adb-command - SIGINT cleanup The class auto-skips when no device is attached and tearDown uninstalls the testapp. ANR and SIGINT cases poll dumpsys for the foreground focus rather than relying on a fixed sleep, and the concurrent lock test staggers the second runner via a pre-test adb sleep so it is deterministically the one that waits. fake_adb and fake_make context managers back the device-free tests. Task-number: QTBUG-146960 Change-Id: I80acd75d232696f9a68bd71a68ae96426446e791 Reviewed-by: Ville Voutilainen <[email protected]> (cherry picked from commit 679cc6eea2a38121b88776102c222648795960bc) Reviewed-by: Qt Cherry-pick Bot <[email protected]> https://invent.kde.org/qt/qt/qtbase/-/commit/b4e39212b698e3e8ed6c182ff4b4d3999ebf3ef7 Git commit 7d27d67f82c7f88908e7f19fc343813c290cd98d by Assam Boudjelthia on 17/08/2026 at 17:48.. CMake/Android: quote "$@" in the generated runner wrapper The runner wrapper script forwarded its arguments with an unquoted $@, so the shell word-split every argument. When qt-testrunner re-ran a failed data row it passed the tag as one argument, for example parseFile:from_file:extended multiplexing which reached the test as two test names, and the re-run failed with "Function not found: multiplexing" instead of repeating the row. Flaky data rows with a space in the tag could therefore never pass on Android. Add a test for the wrapper and one that checks a test argument with a space survives adb, the device shell and QProcess::splitCommand(). Change-Id: I8a0f191451530ee529f63f26fe4e647bd6c26d16 Reviewed-by: Ville Voutilainen <[email protected]> (cherry picked from commit 03febb4a7f9d08054a2ac9430adc079eff3f3bb9) https://invent.kde.org/qt/qt/qtbase/-/commit/7d27d67f82c7f88908e7f19fc343813c290cd98d Git commit 7d956f17ecc2c6c16d1fe15c45d8441a85bcc4bc by Assam Boudjelthia on 17/08/2026 at 17:48.. AndroidTestRunner: keep parsing our options after test args CMake appends the runner's own flags after the test's, so QML tests got -import ahead of --timeout. Bailing out of option parsing at the first test argument handed --timeout to the app, which QTest rejects and exits 1 before writing any results, failing the run with EXIT_NOEXITCODE. Sort argv into both groups instead and re-join them with an explicit separator. Fixes: QTBUG-148805 Change-Id: I850a1f1090e3fb0f5d2bf2b5611d18c8a645cda2 Reviewed-by: Ville Voutilainen <[email protected]> (cherry picked from commit ddf0886b4f0c872e48219b6c1555ee7cd31bb4a6) https://invent.kde.org/qt/qt/qtbase/-/commit/7d956f17ecc2c6c16d1fe15c45d8441a85bcc4bc Git commit a52237afa96e1b435cf882705dd621b4b5940ea5 by Qt Cherry-pick Bot (on behalf of Edward Welbourne) on 17/08/2026 at 17:48.. tstQDateTime arithmetic: s/timeSpec/timeRepresentation/ Test the full mode of representation of the time rather than just the category of representation. In practice this means, for a fixed offset from UTC, checking the offset and, for a timezone, checking it's the same zone. While we're at it, compare against the representation given for the expected result, rather than the original value: the two should in fact be the same, but (a) this is more in keeping with "compare actual to expected" patterns and (b) if there ever arises a case where such arithmetic could trigger a representation change, this lets the test case for it represent that in its expected result. Pick-to: 6.11 6.8 6.5 Change-Id: I861f48e743d6b8527e45037b605accd1f70f3ae2 Reviewed-by: Mate Barany <[email protected]> (cherry picked from commit 3a34c6cc2f5fa36c02aa92daad1a769a03807e2e) Reviewed-by: Qt Cherry-pick Bot <[email protected]> https://invent.kde.org/qt/qt/qtbase/-/commit/a52237afa96e1b435cf882705dd621b4b5940ea5 Git commit 00b2807d78fdcbd40bac53bc60720224c25732a6 by Qt Cherry-pick Bot (on behalf of Mårten Nordheim) on 17/08/2026 at 17:48.. QHostInfo: Mark static functions threadsafe They are meant to be used from any thread, so must be so. Pick-to: 6.11 Change-Id: I4df5b843cdef6d785fb764e8dc44b813ead1c71f Reviewed-by: Thiago Macieira <[email protected]> (cherry picked from commit dae3ebe3edbdca21ef7c08ce01aff20eeb14ee53) Reviewed-by: Qt Cherry-pick Bot <[email protected]> https://invent.kde.org/qt/qt/qtbase/-/commit/00b2807d78fdcbd40bac53bc60720224c25732a6 Git commit 70e4885194aa699102b47a33ce2071c8e4a38e3b by Qt Cherry-pick Bot (on behalf of Laszlo Agocs) on 17/08/2026 at 17:48.. rhi: d3d12: Set RTsSingleHandleToDescriptorRange to false ...for OMSetRenderTargets. The descriptors are not guaranteed to be contiguous, each RTV is created by calling allocate(1). They may often end up being contiguous but that's by accident. Set RTsSingleHandleToDescriptorRange to FALSE to indicate pRenderTargetDescriptors is an array of handles and each element needs to be dereferenced individually. Fixes: QTBUG-149220 Pick-to: 6.11 6.8 Change-Id: I456123babb5b6f4fa6582c4fb908667830914e78 Reviewed-by: Andy Nichols <[email protected]> (cherry picked from commit d927d8682524e44f86df9f4b24299136fcfbc5b3) Reviewed-by: Qt Cherry-pick Bot <[email protected]> https://invent.kde.org/qt/qt/qtbase/-/commit/70e4885194aa699102b47a33ce2071c8e4a38e3b Git commit 7b2ced8e97beb120fc15760c681f8290d5f91dd5 by Qt Cherry-pick Bot (on behalf of Mårten Nordheim) on 17/08/2026 at 17:48.. QHostInfo: Mark clearCache() threadsafe From API review Change-Id: I3850628ee6b62684fc434184c14d6144ba5d4f40 Reviewed-by: Yauheni Pervenenka <[email protected]> Reviewed-by: Thiago Macieira <[email protected]> (cherry picked from commit ba2681253654e846c2a2c736380b1d4e75fca483) Reviewed-by: Qt Cherry-pick Bot <[email protected]> https://invent.kde.org/qt/qt/qtbase/-/commit/7b2ced8e97beb120fc15760c681f8290d5f91dd5