Skip to content

29.x Having qt(@6) breaks build for qt@5 on macOS 15.0 and 13.7 #31009

Description

@Sjors

Is there an existing issue for this?

  • I have searched the existing issues

Current behaviour

Building bitcoin-qt produces a flood of errors:

In file included from /Users/sjors/dev/bitcoin/src/qt/csvmodelwriter.cpp:5:
In file included from /Users/sjors/dev/bitcoin/src/qt/csvmodelwriter.h:8:
In file included from /usr/local/opt/qt@5/lib/QtCore.framework/Headers/QList:1:
In file included from /usr/local/opt/qt@5/lib/QtCore.framework/Headers/qlist.h:48:
/usr/local/include/QtCore/qvector.h:20:32: error: no template named 'QMutableListIterator'
   20 | using QMutableVectorIterator = QMutableListIterator<T>;
      |                                ^
/usr/local/include/QtCore/qvector.h:22:25: error: no template named 'QListIterator'
   22 | using QVectorIterator = QListIterator<T>;
      |                         ^

Building with depends works fine (qt 5.15.14).

Homebrew is still at version 5.15.13. I don't know if 5.15.14 fixes something, or if there's another reason why depends works but homebrew doesn't. There's currently no open PR to bump homebrew's version, an earlier attempt was abandoned: Homebrew/homebrew-core#172934

I'm not sure when this started happening. E.g. the commit 338bc2c which introduced cmake has the same issue.

I though perhaps it's a change in macOS itself. But I also tried on macOS 13.7 Ventura, with Xcode 15.2 which gives me similar errors.

Another possibility could be recent homebrew qt change: https://github.com/Homebrew/homebrew-core/commits/master/Formula/q/qt%405.rb

Expected behaviour

To build bitcoin-qt.

Steps to reproduce

Install qt@5 via homebrew, 5.15.13 is the latest version.

cmake -B build -DBUILD_GUI=ON

Relevant log output

No response

How did you obtain Bitcoin Core

Compiled from source

What version of Bitcoin Core are you using?

master@fc642c33ef28829eda0119a0fe39fd9bc4b84051

Operating system and version

macOS 15.0

Machine specifications

No response

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions