-
Notifications
You must be signed in to change notification settings - Fork 37.7k
depends: Use Qt top-level build facilities #20641
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
Conversation
This seems pretty clean, testing. Had you tested this with additional modules ? (that was my reasoning for changing the way QT builds) |
I've started with the following
that works, and reduced changes to this minimal diff. |
I will test this, great work ! |
Is there any advantage of this approach beside avoid downloading the full source archive? |
Not dealing with unneeded stuff, I guess. |
Not that i can see. but it is much cleaner IMO. |
The following sections might be updated with supplementary metadata relevant to reviewers and maintainers. 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. |
@@ -0,0 +1,17 @@ | |||
# Create the super cache so modules will add themselves to it. |
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.
Should we move this file and mac-qmake.conf
to ../../configs/qt
?
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.
Files in the depends/patches/<package>/
directory are subjects of a build hash calculation. So, I don't think that moving some of them to another directory is a good idea.
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.
One could add depends/configs
to the calculation. No big deal either way, perhaps I'm nitpicking
The full Qt source archive is huge. I prefer being selective. |
Rebased 770e40c -> b72ff7c (pr20641.01 -> pr20641.02) due to the conflict with #20673. |
@laanwj true, in Qt 5.15. But in Qt 6 the fat module (qtwebengine-everywhere-src-5.15.2.tar.xz with 267M) is gone, see |
Concept ACK. |
@hebasto check out how I selected the required components using gitmodules, it effectively keeps compile time the same, while allowing easier addition/removal of modules. |
Which branch? |
|
It is no longer required after switching to Qt top-level build.
It is no longer required after switching to Qt top-level build.
Qt lrelease tool depends on the xml module. This change guarantees that it is always available after being bootstrapped.
Updated 5ca6e8f -> 763793b (pr20641.05 -> pr20641.06):
See: hebasto:201213-top-DEMO. |
Guix builds:
|
Gitian builds:
|
CI on Cirrus: https://cirrus-ci.com/build/5900358854639616 The only error is about linking against |
Guix builds: 5bb23a2c9ff259da9516f763afaec4ebef92214bb21d5f8eb4818019e12d19df guix-build-1155978d8f3f/output/aarch64-linux-gnu/bitcoin-1155978d8f3f-aarch64-linux-gnu-debug.tar.gz
764d717839128d1a5194b48a953ee162248a782d8614a5aa8f498c27460768f1 guix-build-1155978d8f3f/output/aarch64-linux-gnu/bitcoin-1155978d8f3f-aarch64-linux-gnu.tar.gz
c33129ffcec4e1ced5b21663facc034f08ffcb7e5992ec1e1916e61d2e500a1f guix-build-1155978d8f3f/output/aarch64-linux-gnu/inputs.SHA256SUMS
0e3bd95c99ba0da448fd9472044b914170e6b9dc4ac7e2b2c44925b9d69bda24 guix-build-1155978d8f3f/output/arm-linux-gnueabihf/bitcoin-1155978d8f3f-arm-linux-gnueabihf-debug.tar.gz
9d47357c5f17d06299fa8e0185738a824be77b6bf1436f478dc0a6ed82c7b322 guix-build-1155978d8f3f/output/arm-linux-gnueabihf/bitcoin-1155978d8f3f-arm-linux-gnueabihf.tar.gz
c33129ffcec4e1ced5b21663facc034f08ffcb7e5992ec1e1916e61d2e500a1f guix-build-1155978d8f3f/output/arm-linux-gnueabihf/inputs.SHA256SUMS
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 guix-build-1155978d8f3f/output/dist-archive/SKIPATTEST.TAG
13ab7d91d5b1f74d0c78eec7a883936b06bfaae588f7b1526fa90217ca8c036d guix-build-1155978d8f3f/output/dist-archive/bitcoin-1155978d8f3f.tar.gz
b41233eb7319591fe2cb4e672e043dafdb72b07ee222e7fe9325f1ea017a78ee guix-build-1155978d8f3f/output/powerpc64-linux-gnu/bitcoin-1155978d8f3f-powerpc64-linux-gnu-debug.tar.gz
567684b9b557faf75995974f1c5ebfd416404041ada78681802b975375a7c28f guix-build-1155978d8f3f/output/powerpc64-linux-gnu/bitcoin-1155978d8f3f-powerpc64-linux-gnu.tar.gz
c33129ffcec4e1ced5b21663facc034f08ffcb7e5992ec1e1916e61d2e500a1f guix-build-1155978d8f3f/output/powerpc64-linux-gnu/inputs.SHA256SUMS
598dbdea2a7cf0dea53319dfa51a71cafe1704241fb4212627371091a477aacb guix-build-1155978d8f3f/output/powerpc64le-linux-gnu/bitcoin-1155978d8f3f-powerpc64le-linux-gnu-debug.tar.gz
a40d830d088d411a0b11e43fd0df8c0369477494ee3d8dd621d6f81784bcf195 guix-build-1155978d8f3f/output/powerpc64le-linux-gnu/bitcoin-1155978d8f3f-powerpc64le-linux-gnu.tar.gz
c33129ffcec4e1ced5b21663facc034f08ffcb7e5992ec1e1916e61d2e500a1f guix-build-1155978d8f3f/output/powerpc64le-linux-gnu/inputs.SHA256SUMS
dd8591dc616fe54448078cad962704ba226994aa232f65bc3db7312d68eb15c8 guix-build-1155978d8f3f/output/riscv64-linux-gnu/bitcoin-1155978d8f3f-riscv64-linux-gnu-debug.tar.gz
7c63e4f88eee0692ed206cfe8724b50f7ee81844a433f30254a1e7afce16e8c2 guix-build-1155978d8f3f/output/riscv64-linux-gnu/bitcoin-1155978d8f3f-riscv64-linux-gnu.tar.gz
c33129ffcec4e1ced5b21663facc034f08ffcb7e5992ec1e1916e61d2e500a1f guix-build-1155978d8f3f/output/riscv64-linux-gnu/inputs.SHA256SUMS
29c151d971ae7cf1ebaf90a29882f32a777d4221dbc8e1ffb75c87e66301cbbe guix-build-1155978d8f3f/output/x86_64-apple-darwin18/bitcoin-1155978d8f3f-osx-unsigned.dmg
335a5f02fed8487635924ffcd8cd60d705b090a31c543e4d5a2adb3538dcf333 guix-build-1155978d8f3f/output/x86_64-apple-darwin18/bitcoin-1155978d8f3f-osx-unsigned.tar.gz
932925c550c588f5ebff562ee5c495fbe437cd7e2a620aa965ca4f578c5baf1d guix-build-1155978d8f3f/output/x86_64-apple-darwin18/bitcoin-1155978d8f3f-osx64.tar.gz
c33129ffcec4e1ced5b21663facc034f08ffcb7e5992ec1e1916e61d2e500a1f guix-build-1155978d8f3f/output/x86_64-apple-darwin18/inputs.SHA256SUMS
5e30a07ed4976a6cbe1ca24b3c3e03954c65132a2cdc9d7d6bbc0e3a18521600 guix-build-1155978d8f3f/output/x86_64-linux-gnu/bitcoin-1155978d8f3f-x86_64-linux-gnu-debug.tar.gz
d602eaf5d69bc3c29d28a6540b565cf330d0905fcf365752989757fd5b6d5990 guix-build-1155978d8f3f/output/x86_64-linux-gnu/bitcoin-1155978d8f3f-x86_64-linux-gnu.tar.gz
c33129ffcec4e1ced5b21663facc034f08ffcb7e5992ec1e1916e61d2e500a1f guix-build-1155978d8f3f/output/x86_64-linux-gnu/inputs.SHA256SUMS
c98df448196f382d8b4f0046210535e2ec75cc70161cf248e91f8e75f075de23 guix-build-1155978d8f3f/output/x86_64-w64-mingw32/bitcoin-1155978d8f3f-win-unsigned.tar.gz
10a3b9196678ae10229f99bf74a10119c82e665eec21d1c5b77c81ba758803c2 guix-build-1155978d8f3f/output/x86_64-w64-mingw32/bitcoin-1155978d8f3f-win64-debug.zip
6b2bdd460c6df7ef5dcf149feae5c92056713a6f173bb45737c2c95ccc89efd1 guix-build-1155978d8f3f/output/x86_64-w64-mingw32/bitcoin-1155978d8f3f-win64-setup-unsigned.exe
7ba0334921fffa8d9989d1d110c0bb106049362f562e5d3bc6e2cdfa642c4084 guix-build-1155978d8f3f/output/x86_64-w64-mingw32/bitcoin-1155978d8f3f-win64.zip
c33129ffcec4e1ced5b21663facc034f08ffcb7e5992ec1e1916e61d2e500a1f guix-build-1155978d8f3f/output/x86_64-w64-mingw32/inputs.SHA256SUMS |
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.
ACK 1155978
1155978 build, qt: Do not install *.prl files (Hennadii Stepanov) 763793b build, qt: Fix wrong cross-compiling detection on macOS (Hennadii Stepanov) 3098272 build, qt: Force bootstrap while building linguist tools (Hennadii Stepanov) 689320e build, qt: Drop translations.pro hack (Hennadii Stepanov) 6a1f98f build, qt: Drop lrelease dependency patch (Hennadii Stepanov) 39e561e build, qt: Add linguist_tools list (Hennadii Stepanov) 27d3def build: Use Qt top-level build facilities (Hennadii Stepanov) Pull request description: This PR: - uses Qt top-level build facilities without the need to download all-in-one archive - is based on **BlockMechanic**'s [idea](bitcoin#20600), and is an alternative to bitcoin#20600 - makes it easy to integrate [new modules](bitcoin#16883) into static builds - has the minimal diff - makes the qt package build process streamlined by dropping some patches and hacks (an alternative to bitcoin#21420 and bitcoin#20642) Fixes bitcoin#18536 (a non-intrusive alternative to bitcoin#21589 and bitcoin#19785). Fixes bitcoin#14648. Fixes bitcoin#21588 (a non-intrusive alternative to bitcoin#21591). Required for adding [Wayland support](bitcoin#19950) on Linux. --- **Note for reviewers**: With 9046de8 from bitcoin#21995 it is easy to verify that there are no changes in the resulted `qt` package archive on the per commit basis. For example, for `HOST=i686-pc-linux-gnu` no commit in this PR introduces any changes. ACKs for top commit: fanquake: ACK 1155978 Tree-SHA512: 667b06b72cb7ff26d68b9b88e8dddb51084783ca9e3d80b3392710794c1dc7fd77bbcc3ccf4ccece9919d33b9bf8fce13c5059502bd228021dc7c93fdb87ca7a
This PR:
Fixes #18536 (a non-intrusive alternative to #21589 and #19785).
Fixes #14648.
Fixes #21588 (a non-intrusive alternative to #21591).
Required for adding Wayland support on Linux.
Note for reviewers: With 9046de8 from #21995 it is easy to verify that there are no changes in the resulted
qt
package archive on the per commit basis. For example, forHOST=i686-pc-linux-gnu
no commit in this PR introduces any changes.