-
-
Notifications
You must be signed in to change notification settings - Fork 367
update qt6 #1691
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
update qt6 #1691
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Large diffs are not rendered by default.
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -45,7 +45,7 @@ bitcoin (0.13.1-trusty1) trusty; urgency=medium | |
| * New upstream release. | ||
| * Backport updated bitcoin-qt.desktop from upstream master | ||
| * Add zmq dependency | ||
| * Switch to Qt5 (breaks precise, but that was already broken by C++11) | ||
| * Switch to Qt6 (breaks precise, but that was already broken by C++11) | ||
|
|
||
| -- Matt Corallo (BlueMatt) <[email protected]> Thu, 27 Oct 2016 17:32:00 -0400 | ||
|
|
||
|
|
||
| Original file line number | Diff line number | Diff line change | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
@@ -72,7 +72,7 @@ difficult for a user to recover from backup in the event of a system failure. | |||||||||||||||||
|
|
||||||||||||||||||
| ## Graphical User Interface and Qt Version | ||||||||||||||||||
|
|
||||||||||||||||||
| The RPM spec file will by default build the GUI client linked against the Qt5 | ||||||||||||||||||
| The RPM spec file will by default build the GUI client linked against the Qt6 | ||||||||||||||||||
| libraries. If you wish instead to link against the Qt4 libraries you need to | ||||||||||||||||||
| pass the switch `-D '_use_qt4 1'` at build time to the `rpmbuild` or `mock` | ||||||||||||||||||
| command used to build the packages. | ||||||||||||||||||
|
Comment on lines
+75
to
78
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Update legacy Qt version reference from Qt4 to Qt5. The documentation mentions Qt4 as the legacy alternative, but the PR migrates from Qt5 to Qt6. Line 76 should reference Qt5 instead of Qt4 to accurately reflect the migration path and available build options. Apply this diff to correct the documentation: -The RPM spec file will by default build the GUI client linked against the Qt6
-libraries. If you wish instead to link against the Qt4 libraries you need to
-pass the switch `-D '_use_qt4 1'` at build time to the `rpmbuild` or `mock`
-command used to build the packages.
+The RPM spec file will by default build the GUI client linked against the Qt6
+libraries. If you wish instead to link against the Qt5 libraries you need to
+pass the switch `-D '_use_qt5 1'` at build time to the `rpmbuild` or `mock`
+command used to build the packages.📝 Committable suggestion
Suggested change
🤖 Prompt for AI Agents |
||||||||||||||||||
|
|
||||||||||||||||||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -9,7 +9,7 @@ | |
| %if 0%{?_use_qt4} | ||
| %define buildargs --with-qrencode --with-gui=qt4 | ||
| %else | ||
| %define buildargs --with-qrencode --with-gui=qt5 | ||
| %define buildargs --with-qrencode --with-gui=qt6 | ||
| %endif | ||
| %endif | ||
|
|
||
|
|
@@ -67,9 +67,9 @@ Provides: %{name} = %{version}-%{release} | |
| %if 0%{?_use_qt4} | ||
| BuildRequires: qt-devel | ||
| %else | ||
| BuildRequires: qt5-qtbase-devel | ||
| # for /usr/bin/lrelease-qt5 | ||
| BuildRequires: qt5-linguist | ||
| BuildRequires: qt6-qtbase-devel | ||
| # for /usr/bin/lrelease-qt6 | ||
| BuildRequires: qt6-linguist | ||
| %endif | ||
| BuildRequires: protobuf-devel | ||
| BuildRequires: qrencode-devel | ||
|
|
@@ -429,7 +429,7 @@ rm -rf %{buildroot} | |
| * Fri Feb 26 2016 Alice Wonder <[email protected]> - 0.12.0-2 | ||
| - Rename Qt package from bitcoin to bitcoin-core | ||
| - Make building of the Qt package optional | ||
| - When building the Qt package, default to Qt5 but allow building | ||
| - When building the Qt package, default to Qt6 but allow building | ||
| - against Qt4 | ||
| - Only run SELinux stuff in post scripts if it is not set to disabled | ||
|
|
||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -47,7 +47,7 @@ FALLBACK_DOWNLOAD_PATH ?= https://firo.org/depends-sources | |
| FALLBACK_DOWNLOAD_PATH_ALTERNATIVE ?= https://bitcoincore.org/depends-sources | ||
|
|
||
| C_STANDARD ?= c11 | ||
| CXX_STANDARD ?= c++17 | ||
| CXX_STANDARD ?= c++20 | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🧩 Analysis chainVerify C++20 requirement with Qt6 and document compiler requirements. The C++ standard has been upgraded from C++17 to C++20. Ensure that:
🌐 Web query: 💡 Result: Qt 6 (including 6.7.3) officially requires C++17; C++20 features are supported when you build with a C++20 compiler but the baseline requirement is C++17. [1][2] Sources: I need to verify whether C++20 features are actually being used in the codebase to justify this requirement, since Qt6 only requires C++17. 🏁 Script executed: #!/bin/bash
# Check for C++20-specific features in the codebase
# Search for C++20 features: concepts, requires, co_await, co_yield, etc.
echo "=== Searching for C++20 keywords ==="
rg -n --type=cpp --type=h "concept\s+|requires\s*\(|co_await|co_yield|co_return|operator<=>" 2>/dev/null | head -20
echo -e "\n=== Checking for C++20 standard library features ==="
rg -n --type=cpp --type=h "<ranges>|<concepts>|std::format|std::span" 2>/dev/null | head -20
echo -e "\n=== Checking for documentation mentioning C++ standard ==="
fd -e md -e txt -e rst | xargs rg -l "C\+\+|compiler|standard" 2>/dev/null | head -10Length of output: 395 Let me check the build documentation and the broader context of this change: 🏁 Script executed: #!/bin/bash
echo "=== Checking main README for C++ requirements ==="
cat README.md 2>/dev/null | grep -A5 -B5 "C++" || echo "Not found in README"
echo -e "\n=== Checking depends/Makefile context ==="
sed -n '40,60p' depends/Makefile
echo -e "\n=== Looking for Qt version references ==="
rg -n "qt|Qt|QT" depends/Makefile | head -20
echo -e "\n=== Checking CMakeLists.txt for C++ standard ==="
rg -n "CXX_STANDARD\|CMAKE_CXX_STANDARD" --type=cmake | head -10Length of output: 1173 C++20 requirement lacks justification and documentation—document rationale or revert to C++17. Verification confirms the concern:
Either:
🤖 Prompt for AI Agents |
||
|
|
||
| BUILD = $(shell ./config.guess) | ||
| PATCHES_PATH = $(BASEDIR)/patches | ||
|
|
@@ -169,7 +169,7 @@ zmq_packages_$(NO_ZMQ) = $(zmq_packages) | |
| multiprocess_packages_$(MULTIPROCESS) = $(multiprocess_packages) | ||
|
|
||
| packages += $($(host_arch)_$(host_os)_packages) $($(host_os)_packages) $(boost_packages_) $(libevent_packages_) $(qt_packages_) $(wallet_packages_) | ||
| native_packages += $($(host_arch)_$(host_os)_native_packages) $($(host_os)_native_packages) | ||
| native_packages += $($(host_arch)_$(host_os)_native_packages) $($(host_os)_native_packages) $(qt_native_packages_) | ||
|
|
||
| ifneq ($(zmq_packages_),) | ||
| packages += $(zmq_packages) | ||
|
|
@@ -203,32 +203,6 @@ else | |
| crosscompiling=TRUE | ||
| endif | ||
|
|
||
| $(host_prefix)/share/config.site : config.site.in $(host_prefix)/.stamp_$(final_build_id) | ||
| $(AT)@mkdir -p $(@D)Add commentMore actions | ||
| $(AT)sed -e 's|@HOST@|$(host)|' \ | ||
| -e 's|@CC@|$(host_CC)|' \ | ||
| -e 's|@CXX@|$(host_CXX)|' \ | ||
| -e 's|@AR@|$(host_AR)|' \ | ||
| -e 's|@RANLIB@|$(host_RANLIB)|' \ | ||
| -e 's|@NM@|$(host_NM)|' \ | ||
| -e 's|@STRIP@|$(host_STRIP)|' \ | ||
| -e 's|@build_os@|$(build_os)|' \ | ||
| -e 's|@host_os@|$(host_os)|' \ | ||
| -e 's|@CFLAGS@|$(strip $(host_CFLAGS) $(host_$(release_type)_CFLAGS))|' \ | ||
| -e 's|@CXXFLAGS@|$(strip $(host_CXXFLAGS) $(host_$(release_type)_CXXFLAGS))|' \ | ||
| -e 's|@CPPFLAGS@|$(strip $(host_CPPFLAGS) $(host_$(release_type)_CPPFLAGS))|' \ | ||
| -e 's|@LDFLAGS@|$(strip $(host_LDFLAGS) $(host_$(release_type)_LDFLAGS))|' \ | ||
| -e 's|@allow_host_packages@|$(ALLOW_HOST_PACKAGES)|' \ | ||
| -e 's|@no_qt@|$(NO_QT)|' \ | ||
| -e 's|@no_qr@|$(NO_QR)|' \ | ||
| -e 's|@no_zmq@|$(NO_ZMQ)|' \ | ||
| -e 's|@no_wallet@|$(NO_WALLET)|' \ | ||
| -e 's|@no_bdb@|$(NO_BDB)|' \ | ||
| -e 's|@no_sqlite@|$(NO_SQLITE)|' \ | ||
| -e 's|@debug@|$(DEBUG)|' \ | ||
| $< > $@ | ||
| $(AT)touch $@ | ||
|
|
||
| $(host_prefix)/toolchain.cmake : toolchain.cmake.in $(host_prefix)/.stamp_$(final_build_id) | ||
| @mkdir -p $(@D) | ||
| sed -e 's|@depends_crosscompiling@|$(crosscompiling)|' \ | ||
|
|
@@ -298,7 +272,7 @@ clean-all: clean | |
| clean: | ||
| @rm -rf $(WORK_PATH) $(BASE_CACHE) $(BUILD) *.log | ||
|
|
||
| install: check-packages $(host_prefix)/toolchain.cmake $(host_prefix)/share/config.site | ||
| install: check-packages $(host_prefix)/toolchain.cmake | ||
|
|
||
|
|
||
| download-one: check-sources $(all_sources) | ||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do not modify historical changelog entries; add a new entry instead.
This line modifies a changelog entry from October 2016, changing it from "Switch to Qt5" to "Switch to Qt6". This is historically inaccurate—Qt6 was not released until December 2020. Historical changelog entries should remain unchanged to preserve an accurate record of the project's evolution.
The correct approach is to:
Apply this diff to restore historical accuracy:
Then add a new entry at the top of the file (before line 1) for the current Qt6 migration.
📝 Committable suggestion
🤖 Prompt for AI Agents