mirror of
https://github.com/bitcoin/bitcoin.git
synced 2026-06-04 10:12:28 +02:00
Merge bitcoin/bitcoin#30997: build: Switch to Qt 6
f00345727bdoc: Update `dependencies.md` for Qt 6 (Hennadii Stepanov)80b917991ebuild, msvc: Update `vcpkg.json` for Qt 6 (Hennadii Stepanov)30dd1f1644ci: Update for Qt 6 (Hennadii Stepanov)629d292f4dtest: Update sanitizer suppressions for Qt 6 (Hennadii Stepanov)551e13abf8guix: Adjust for Qt 6 (Hennadii Stepanov)c3e9bd086cqt: Fix compiling for Windows (Hennadii Stepanov)ab399c4db2depends: Add `native_qt` package (Hennadii Stepanov)248613eb3edepends: Factor out Qt modules' details (Hennadii Stepanov)0268f52a4cdepends: Introduce customizable `$(package)_patches_path` variables (Hennadii Stepanov)5e794e6202depends: Bump `qt` package up to 6.7.3 (Hennadii Stepanov)6d4214925fcmake: Require Qt 6 to build GUI (Hennadii Stepanov) Pull request description: The currently used Qt 5.15 is approaching [EOL](https://www.qt.io/blog/qt-5.15-extended-support-for-subscription-license-holders) and will reach it before the Bitcoin Core v30 release. The recent migration of the build system to CMake makes it possible to switch to Qt 6. This PR updates the OS runtime compatibility requirements for the Bitcoin Core GUI as follows: ### 1. Linux Starting with Qt 6.5.0, the `libxcb-cursor0` package is required to be installed at runtime. ### 2. Windows Cross-compiling does not support LTO. We have to re-add it in a follow-up. A new style plugin causes minor visual glitches, such as  which will be fixed in follow-ups. ### 3. macOS `bitcoin-qt` now uses the [Metal](https://developer.apple.com/metal/) backend. --- **IMPORTANT.** Don't forget to install [Ninja](https://ninja-build.org/). --- For historical context, please refer to: - https://github.com/bitcoin/bitcoin/issues/20627 - https://github.com/bitcoin/bitcoin/pull/24798 --- UPD 2024-10-09. Qt 6.8 has been [released](https://www.qt.io/blog/qt-6.8-released), but it has some [drawbacks](https://github.com/bitcoin/bitcoin/pull/30997#issuecomment-2402990346) for us. As a result, this PR will stick to Qt 6.7. UPD 2025-03-18: [Standard support for Qt 5.15 will end after 26th of May 2025](https://www.qt.io/blog/extended-security-maintenance-for-qt-5.15-begins-may-2025) ACKs for top commit: laanwj: re-ACKf00345727bhodlinator: re-ACKf00345727bTree-SHA512: 367f722e6c3ea4700b5395871c40b6df8c8062fdc822107090449ea4ae4ad2db75cc53a982a678f4c48ce8f9b2d43ed10e6d23b06165ab78713f161db712d895
This commit is contained in:
2
.github/ISSUE_TEMPLATE/good_first_issue.yml
vendored
2
.github/ISSUE_TEMPLATE/good_first_issue.yml
vendored
@@ -28,7 +28,7 @@ body:
|
||||
id: useful-skills
|
||||
attributes:
|
||||
label: Useful Skills
|
||||
description: For example, “`std::thread`”, “Qt5 GUI and async GUI design” or “basic understanding of Bitcoin mining and the Bitcoin Core RPC interface”.
|
||||
description: For example, “`std::thread`”, “Qt6 GUI and async GUI design” or “basic understanding of Bitcoin mining and the Bitcoin Core RPC interface”.
|
||||
value: |
|
||||
* Compiling Bitcoin Core from source
|
||||
* Running the C++ unit tests and the Python functional tests
|
||||
|
||||
4
.github/workflows/ci.yml
vendored
4
.github/workflows/ci.yml
vendored
@@ -73,7 +73,7 @@ jobs:
|
||||
echo "TEST_BASE=$(git rev-list -n$((${{ env.MAX_COUNT }} + 1)) --reverse HEAD $EXCLUDE_MERGE_BASE_ANCESTORS | head -1)" >> "$GITHUB_ENV"
|
||||
- run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get install clang ccache build-essential cmake pkgconf python3-zmq libevent-dev libboost-dev libsqlite3-dev libdb++-dev systemtap-sdt-dev libzmq3-dev qtbase5-dev qttools5-dev qttools5-dev-tools qtwayland5 libqrencode-dev -y
|
||||
sudo apt-get install clang ccache build-essential cmake ninja-build pkgconf python3-zmq libevent-dev libboost-dev libsqlite3-dev libdb++-dev systemtap-sdt-dev libzmq3-dev qt6-base-dev qt6-tools-dev qt6-l10n-tools libqrencode-dev -y
|
||||
- name: Compile and run tests
|
||||
run: |
|
||||
# Run tests on commits after the last merge commit and before the PR head commit
|
||||
@@ -130,7 +130,7 @@ jobs:
|
||||
run: |
|
||||
# A workaround for "The `brew link` step did not complete successfully" error.
|
||||
brew install --quiet python@3 || brew link --overwrite python@3
|
||||
brew install --quiet coreutils ninja pkgconf gnu-getopt ccache boost libevent zeromq qt@5 qrencode
|
||||
brew install --quiet coreutils ninja pkgconf gnu-getopt ccache boost libevent zeromq qt@6 qrencode
|
||||
|
||||
- name: Set Ccache directory
|
||||
run: echo "CCACHE_DIR=${RUNNER_TEMP}/ccache_dir" >> "$GITHUB_ENV"
|
||||
|
||||
Reference in New Issue
Block a user