depends: Use Qt top-level build facilities#20641
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.
Should we move this file and mac-qmake.conf to ../../configs/qt?
There was a problem hiding this comment.
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.
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 |
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
qtpackage archive on the per commit basis. For example, forHOST=i686-pc-linux-gnuno commit in this PR introduces any changes.