#36593 depends: Update Qt to 6.12.0

ReviewabilityReviewsAgreementSize
#36593 hebasto depends: Update Qt to 6.12.0Review #36592 first0Crickets99 + 2 tests
  • Provide upstream bug fixes and official macOS 26 support for GUI builds
  • Retire downstream Qt patches that are now included upstream
  • No review verdicts recorded
  • No substantive feedback either way yet
  • Questioned whether Qt already supported macOS 26 (fanquake)
  • Asked whether bypassing required xkbcommon version is safe, awaiting author inquiry (fanquake)
  • 99 lines added or modified outside tests
  • 2 lines added or modified in tests
  • 840 lines removed in total
  • 24 files, 2 commits
Build and CI#11 of 56
P2 · platform fix
  • P2 because it provides upstream bug fixes and official macOS 26 support for release binaries
  • Eliminates several downstream Qt maintenance patches that are now part of upstream
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:

ReviewerTypeHarm, request, or questionStatusMust beAuthor repliedQuote
fanquake (member)question, usefulnessDoes the current Qt version not already support macOS 26?answered · author explained that while it works, macOS 26 is not officially listed in Qt documentationansweredyes2026-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, correctnessWill 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 progressansweredyes2026-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

Depends on: #36592

Based on (shares commits with): #36592

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

dossier JSON · extract JSON · model ledger, generated 2026-10-23T01:15, confidence high, input hash 17dd6176ab38eaa3
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