-
Notifications
You must be signed in to change notification settings - Fork 37.7k
[POC] build: Hello Qt 6 #24798
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
[POC] build: Hello Qt 6 #24798
Conversation
So I understand this doesn't need any actual code changes? Only build system and depends? |
Cannot say for sure at this point. |
The following sections might be updated with supplementary metadata relevant to reviewers and maintainers. ReviewsSee the guideline for information on the review process. ConflictsReviewers, this pull request conflicts with the following ones:
If you consider this pull request important, please also help to review the conflicting pull requests. Ideally, start with the one that should be merged first. |
OK I assumed so, as it wouldn't make much sense to change depends if the code cannot handle it. We could try compiling against system Qt6. |
Some changes are required: bitcoin-core/gui#577, bitcoin-core/gui#578, bitcoin-core/gui#579, bitcoin-core/gui#580, #24813. |
Compiled and linked
|
8760188
to
bf50d5d
Compare
Steps to build this PR in its current state on Linux x86_64:
|
I ran into a problem while working on this PR. The problem's root is in two facts:
The fix suggested in QTBUG-86080 works only for shared libraries. Here are some ways to work out this problem:
|
While it's good to think about this kind of integration, I don't know how feasible this will ultimately be. In d0015fd5f3b0465d2b3f36fda3714e248f1b4c51, you uncomment lines where the patch author intended to return when performing a static build. Here's a link to a discussion on the QTBUG-86080 page where it talks about the current qt internal issues with On the surface, it appears we most likely can get this working. But, I worry about the implications of the hacky path we'd take to get there. |
IMO for static linking in the release, it's acceptable to carry some hacky patches in depends until the issue gets resolved upstream. I don't have any specific opinion which one, as long as it's works and is maintainable. I do think we should be able to build against distro Qt6 -dev packages for local builds for development (so without any Qt-side patches). But dynamic-only is fine there. Not sure what the recommended approach to find the libraries is if they don't ship |
Would prefer to see this PR split between Qt6 compatibility (goal ASAP), and using Qt6 for releases (goal TBD later). |
#24798 (comment) -- is it what you mean? |
6312575 qt: Update deprecated enum value (Hennadii Stepanov) c7add88 qt: Use `|` instead of `+` for key modifiers (Hennadii Stepanov) 6f1e162 qt: Fix headers (Hennadii Stepanov) Pull request description: For Qt 5 all changes in this PR are refactoring. But for [Qt 6](bitcoin/bitcoin#24798) they are real bugfixes :) As I do not provide anyway way to build `bitcoin-qt` against Qt 6.2.4 fir now, suggesting to reviewers to verify changes for Qt 5 only. ACKs for top commit: shaavan: ACK 6312575 jarolrod: tACK 6312575 Tree-SHA512: ceee983192ddf62f09c1305458af3447ff0e3bd90311fa6328b139673bcaed3407dc0ce0b275028d4e0ca251d6b54dad40b48049211aeb251f65cbb4f5330834
Rebased on top of the bitcoin-core/gui#577. |
Rebased on top of the bitcoin-core/gui#579. |
d8d99d0 qt6: Do not use deprecated high DPI attributes in Qt 6 (Hennadii Stepanov) 8927bb8 refactor: Fix style in `initTranslations()` function (Hennadii Stepanov) ad73447 qt6: Do not use deprecated `QLibraryInfo::path` in Qt 6 (Hennadii Stepanov) 3f51d0b qt6: Fix type registration (Hennadii Stepanov) Pull request description: One more step in migration to Qt 6. Could be tested with hebasto/bitcoin#3 or bitcoin/bitcoin#24798. No behavior change when compiling with Qt 5. ACKs for top commit: laanwj: Code review ACK d8d99d0 jarolrod: ACK d8d99d0 Tree-SHA512: e5f92a80f8622e5f95dd98a90783956a26d3c8382b9ca8e479fb6c152cfdc85a2f6084e78d463ceea1e0f0b3ac72d2b086c8ca24967b2b6070553317e9e3252e
Can you rebase this to reflect the current state of / remaining changes needed for integration? Seems that some of the changes here have now made it in (via the GUI repo). |
Done 🐅 |
🐙 This pull request conflicts with the target branch and needs rebase. Want to unsubscribe from rebase notifications on this pull request? Just convert this pull request to a "draft". |
Should we close this (for now)? This is blocked on cmake, as we aren't going to introduce a --with-qt6 option, or the other build system changes here. Looks like fb872ed could possibly be PR'd on it's own? Otherwise I'm not sure this is reviewable / that useful to keep open? |
This is a draft of upgrading Qt in depends up to Qt 6.2 LTS.
The motivation is:
Tasks
build-aux/m4/bitcoin_qt.m4
--disable-wallet
Closes #20627.
Steps to build on Linux x86_64: