This PR updates the qt package in depends to the most recent version 6.10.2.
The update includes many bugfixes that enable dropping some patches.
Additionally, patches for compatibility with GCC 16 have been included.
🚧 At least one of the CI tasks failed.
Task macOS-cross to arm64: https://github.com/bitcoin/bitcoin/actions/runs/21967077478/job/63459576763
LLM reason (✨ experimental): Build failed during the bitcoin-qt target compilation (gmake exited with error 1).
Try to run the tests locally, according to the documentation. However, a CI failure may still happen due to a number of reasons, for example:
Possibly due to a silent merge conflict (the changes in this pull request being incompatible with the current code in the target branch). If so, make sure to rebase on the latest commit of the target branch.
A sanitizer issue, which can only be found by compiling with the sanitizer and running the affected test.
An intermittent issue.
Leave a comment here, if you need help tracking down a confusing failure.
The following sections might be updated with supplementary metadata relevant to reviewers and maintainers.
See the guideline for information on the review process. A summary of reviews will appear here.
Reviewers, this pull request conflicts with the following ones:
If you consider this pull request important, please also help to review the conflicting pull requests. Ideally, start with the one that should be merged first.
155@@ -156,6 +156,7 @@
156 'GDI32.dll', # graphics device interface
157 'IMM32.dll', # input method editor
158 'NETAPI32.dll', # network management
159+'ntdll.dll', # native system services
ntdll.dll.
158@@ -161,7 +159,6 @@ $(package)_config_env_darwin += OBJCXX="$$($(package)_cxx)"
159
160 $(package)_cmake_opts := -DCMAKE_PREFIX_PATH=$(host_prefix)
161 $(package)_cmake_opts += -DQT_FEATURE_cxx20=ON
162-$(package)_cmake_opts += -DQT_ENABLE_CXX_EXTENSIONS=OFF
Otherwise, the configuration step logs the following:
0-- Configuring done (20.0s)
1-- Generating done (1.0s)
2CMake Warning:
3 Manually-specified variables were not used by the project:
4
5 QT_ENABLE_CXX_EXTENSIONS
Related upstream items:
194@@ -198,6 +195,9 @@ $(package)_cmake_opts += -DCMAKE_DISABLE_FIND_PACKAGE_WrapSystemDoubleConversion
195 $(package)_cmake_opts += -DCMAKE_DISABLE_FIND_PACKAGE_WrapSystemMd4c=TRUE
196 $(package)_cmake_opts += -DCMAKE_DISABLE_FIND_PACKAGE_WrapZSTD=TRUE
197 endif
198+ifeq ($(host_os),linux)
199+$(package)_cmake_opts += -DINPUT_dbus=runtime
cmake/configure-cmake-mapping.md, -dbus-runtime should be mapped to this. Does it not work?
Why? According to
cmake/configure-cmake-mapping.md,-dbus-runtimeshould be mapped to this.
It is not, for some reason. An explanatory comment has been added.
8++++ b/qtbase/src/gui/configure.cmake
9+@@ -182,7 +182,7 @@ if((X11_SUPPORTED) OR QT_FIND_ALL_PACKAGES_ALWAYS)
10+ endif()
11+ qt_add_qmake_lib_dependency(xcb_xinput xcb)
12+ if((X11_SUPPORTED) OR QT_FIND_ALL_PACKAGES_ALWAYS)
13+- qt_find_package(XKB 0.9.0 MODULE PROVIDED_TARGETS XKB::XKB MODULE_NAME gui QMAKE_LIB xkbcommon)
What makes it safe to just require the old version? Sure they’re not relying on an updated abi?
libxkbcommon 0.9.0 Release Notes list a few changes, including the output of xkb_keymap_get_as_string(). Grepping the Qt source code did not find any calls of this function.6@@ -7,70 +7,9 @@ Date: Sat Oct 4 01:00:25 2025 +0100
7 See: https://bugreports.qt.io/browse/QTBUG-86287
8 See: https://bugreports.qt.io/browse/QTBUG-137004
I assume one/both of these reports is no longer relevant?
Right. Removed.
Is upstream aware of the remaining issue?
Not yet.
test_bitcoin-qt.exe is failing in the CI.
30.x?
0@@ -0,0 +1,16 @@
1+Disable macOS 15 features in QCocoaCursor
Why?
Otherwise, @available(macOS 15, *) causes a linker error:
0<snip>
1[ 73%] Linking CXX executable ../../bin/bitcoin-qt
2ld64.lld: error: undefined symbol: __isPlatformVersionAtLeast
3>>> referenced by /home/hebasto/dev/bitcoin/depends/arm64-apple-darwin/plugins/platforms/libqcocoa.a(qcocoacursor.mm.o):(symbol QCocoaCursor::convertCursor(QCursor*)+0x78)
4clang++: error: linker command failed with exit code 1 (use -v to see invocation)
5gmake[2]: *** [src/qt/CMakeFiles/bitcoin-qt.dir/build.make:179: bin/bitcoin-qt] Error 1
6gmake[1]: *** [CMakeFiles/Makefile2:2470: src/qt/CMakeFiles/bitcoin-qt.dir/all] Error 2
7gmake: *** [Makefile:146: all] Error 2
How does this effect the binary?
The disabled code was introduced in https://github.com/qt/qtbase/commit/4aeb27fbacfade7106b19c460deb5414143a5e53. The referenced QTBUG-126240, in turn, refers to the NSCursor API for window resize cursors.
While testing on macOS Tahoe 26.2, I didn’t notice any differences in behavior compared to v30.2.
Looks like this introduces a dependency on an Xcode installation:
0CMake Error at qtbase/cmake/QtPublicAppleHelpers.cmake:943 (message):
1 Can't determine Xcode version. Is Xcode installed? Error details:
2
3 xcrun: error: unable to find utility "xcodebuild", not a developer tool or
4 in PATH
5
6Call Stack (most recent call first):
7 qtbase/cmake/QtAutoDetectHelpers.cmake:332 (_qt_internal_get_xcode_version_raw)
8 qtbase/cmake/QtAutoDetectHelpers.cmake:671 (qt_auto_detect_apple)
9 qtbase/cmake/QtAutoDetect.cmake:5 (qt_internal_setup_autodetect)
10 qtbase/cmake/QtBaseTopLevelHelpers.cmake:31 (include)
11 CMakeLists.txt:13 (qt_internal_top_level_setup_autodetect)
Looks like this introduces a dependency on an Xcode installation:
Are you building on macOS?
The `find_package(Qt .. MODULE REQUIRED COMPONENTS ...)` call must treat
any missing component as a fatal error.
Backported from:
https://github.com/qt/qtbase/commit/7fccc79dd5744ea837ffe200bbfc9f2756870220
Meta-Issue: https://qt-project.atlassian.net/browse/QTBUG-143470
Backports:
https://github.com/qt/qtbase/commit/679e8bda1eb0cc98acb981e9a10204bed1c179f2
https://github.com/qt/qtbase/commit/3312e89b47f8c2ea0b4263b39841c25b83a37332
https://github.com/qt/qtbase/commit/05f201a3d559452287b20becb960de3a50249540
An additional includes fix is needed after the others:
https://github.com/qt/qtbase/commit/d68fc6ecc88a0e4532754b1a9f209881a248f4ee
Cross-compiling Qt 6.10 for Windows requires GCC 13.1 or newer, which
exceeds the currently documented minimum.
See https://doc.qt.io/qt-6/windows.html.
Looks like this introduces a dependency on an Xcode installation:
Are you building on macOS?
Should be fixed now.