#36593 depends: Update Qt to 6.12.0
| Reviewability | Reviews | Agreement | Size | ||||
|---|---|---|---|---|---|---|---|
| #36593 depends: Update Qt to 6.12.0 | Review #36592 first | 0 | Crickets | 99 + 2 tests | |||
|
|
|
|
| |||
Reviewability: ReadyStalePaused Agreement: StrongPositivePositive w/ caveatsNeutralMildDisputedBlockedCrickets Reviews: current code-review ACKs, then (+stale ACKs) and -NACKs; greener = more ACKs. Size: lines added or modified outside tests, then in tests; greener = smaller. | |||||||
Goal
Updates the Qt dependency in the depends build system from 6.8.4 to 6.12.0 LTS and raises the macOS SDK build requirement to 15.0 while keeping the minimum deployment target at 14.0. It retires multiple backported Qt patches that were included in 6.12.0, adds a compatibility patch for older libxkbcommon, and allows ntdll.dll in Windows Guix symbol checks.
Problem: Bitcoin Core builds against Qt 6.8.4, which lacks upstream bug fixes and official platform support for macOS 26.
Evidence of importance:
- PR description: 'The new Qt 6.12 LTS contains many bug fixes and officially supports macOS 26.'
- Commit eaa8d1f5a5: 'Qt 6.12 requires macOS 15 SDK or higher.'
Scope: Much of the diff consists of deleting downstream patches that are now included upstream in Qt 6.12.0.
Risk of a mistake: medium (build, gui). Packaging errors in Qt could cause cross-compilation failures or GUI behavioral regressions across release binaries on macOS, Linux, and Windows.
Changed since the previous assessment: Diff inspection confirms the addition of a compatibility patch for libxkbcommon 0.8.4, the inclusion of ntdll.dll in Guix symbol checks, and the removal of eight upstreamed Qt patches.
Reviewability
Ready · Review #36592 first
Stacked on #36592; the base PR's changes are included in this diff.
Waiting on (from the thread read):
- author: investigating API changes for the xkbcommon patch and providing an explanation 2026-10-21
- author: investigating xkbcommon API changes to answer fanquake's question 2026-10-21
Agreement
Crickets
no substantive comment either way
Thread notes: Initial record for draft PR. fanquake asked about existing macOS 26 support and questioned whether the xkbcommon compatibility patch is safe. / Initial record for draft PR updating Qt to 6.12.0. fanquake asked about macOS 26 support and questioned the xkbcommon compat patch, which the author is investigating.
Objections, suggestions, and questions:
| Reviewer | Type | Harm, request, or question | Status | Must be | Author replied | Quote |
|---|---|---|---|---|---|---|
| fanquake (member) | question, usefulness | Does the current Qt version not already support macOS 26? | answered · author explained that while it works, macOS 26 is not officially listed in Qt documentation | answered | yes | 2026-10-21: 'Our current version already does?' Status from: 2026-10-21: hebasto: 'It works, obviously. However, macOS 26 is not listed in https://doc.qt.io/qt-6.8/macos.html.' |
| fanquake (member) | question, correctness | Will bypassing the required xkbcommon version work, and what is the explanation for why it is safe given possible new API usage? | open · author deferred with an investigation in progress | answered | yes | 2026-10-21: 'Will this work? I assume Qt increased their required version, because they are using some feature / API from the newer version? Would be good if this explained why this is ok to do.' |
Participants:
- fanquake (member, question, 2 statements 2026-10-21 to 2026-10-21): asked whether Qt already supported macOS 26 and questioned the xkbcommon compatibility patch
Dependencies
Files
3 lines under test/bench/ci.
- depends/patches/qt/fix-gcc16-qcompare.patch +0/-206
- depends/patches/qt/fix-gcc16-sfinae-qchar.patch +0/-131
- depends/patches/qt/fix-gcc16-sfinae-qregularexpression.patch +0/-68
- depends/patches/qt/static_fixes.patch +1/-65
- depends/patches/qt/fix-gcc16-sfinae-qbitarray.patch +0/-56
- depends/patches/qt/dont_hardcode_pwd.patch +0/-51
- depends/patches/qt/fix-gcc16-sfinae-qanystringview.patch +0/-47
- depends/patches/qt/fix-macos26-qyield.patch +0/-44
- depends/patches/qt/fix-qbytearray-include.patch +0/-40
- depends/packages/qt.mk +12/-26
- depends/patches/qt/qttools_skip_dependencies.patch +24/-12
- depends/patches/qt/qtbase_skip_tools.patch +22/-13
- depends/patches/qt/fix_missed_headers.patch +0/-32
- depends/patches/qt/qtbase_plugins_cocoa.patch +0/-21
- depends/packages/qt_details.mk +9/-9
- depends/patches/qt/qtbase_xkbcommon_compat.patch +17/-0
- depends/packages/native_qt.mk +6/-10
- depends/patches/qt/cocoa_compat.patch +2/-2
- depends/patches/qt/fix_openbsd_network_kernel.patch +2/-2
- contrib/guix/symbol-check.py +2/-1
- depends/hosts/darwin.mk +1/-1
- depends/patches/qt/fix_openbsd_plugin_qelfparser.patch +1/-1
- depends/patches/qt/qtbase_avoid_qmain.patch +1/-1
- depends/patches/qt/rcc_hardcode_timestamp.patch +1/-1
Card
The short text the ranking pass compares across PRs.
Updates the depends system to Qt 6.12.0 LTS and raises the build requirement to macOS SDK 15.0 while maintaining macOS 14.0 runtime compatibility. The update provides upstream Qt bug fixes, official support for macOS 26, and removes several backported Qt patches now merged upstream. Depends on PR #36592.
Data
thread read through 2026-10-21 (5 statements), head fa9231d651
labels: Build system, CI failed · draft
Categories
Build and CI
P2 · platform fix
Updates the Qt dependency to 6.12.0 LTS to gain upstream bug fixes, officially support macOS 26, and eliminate numerous downstream patches. The PR description notes that 'The new Qt 6.12 LTS contains many bug fixes and officially supports macOS 26', making this a substantial dependency upgrade for platform maintenance.
Membership: Carries the 'Build system' label and updates the Qt library and downstream patches in depends/.
Factors: security/stability 1, bug 0, performance 0, user value 1, leverage 1