fix builds which are configured with --disable-wallet
cross-compiling
Guix builds
Closes bitcoin/bitcoin#20627.
Steps to build on Linux x86_64:
0$ make -C depends
1$ ./autogen.sh
2$ ./configure --with-gui=qt6 CONFIG_SITE=$PWD/depends/x86_64-pc-linux-gnu/share/config.site
3$ make clean
4$ make
5$ make check
DrahtBot added the label
Build system
on Apr 7, 2022
laanwj
commented at 4:25 pm on April 7, 2022:
member
So I understand this doesn’t need any actual code changes? Only build system and depends?
laanwj added the label
GUI
on Apr 7, 2022
hebasto
commented at 4:51 pm on April 7, 2022:
member
So I understand this doesn’t need any actual code changes? Only build system and depends?
Cannot say for sure at this point.
DrahtBot
commented at 7:40 am on April 8, 2022:
contributor
The following sections might be updated with supplementary metadata relevant to reviewers and maintainers.
Reviews
See the guideline for information on the review process.
A summary of reviews will appear here.
Conflicts
Reviewers, this pull request conflicts with the following ones:
#25797 (build: Add CMake-based build system by hebasto)
#25391 (guix: Use LTO to build releases by fanquake)
#16545 (refactor: Implement missing error checking for ArgsManager flags by ryanofsky)
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.
laanwj
commented at 12:45 pm on April 8, 2022:
member
Cannot say for sure at this point.
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.
hebasto
commented at 11:52 pm on April 8, 2022:
member
Cannot say for sure at this point.
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.
hebasto
commented at 11:27 am on April 9, 2022:
member
hebasto
commented at 4:01 pm on April 9, 2022:
member
Steps to build this PR in its current state on Linux x86_64:
0$ make -C depends
1$ ./autogen.sh
2$ CONFIG_SITE=$PWD/depends/x86_64-pc-linux-gnu/share/config.site ./configure
3$ make clean
4$ make
hebasto
commented at 5:06 pm on April 9, 2022:
member
I ran into a problem while working on this PR.
The problem’s root is in two facts:
our build system rely on pkg-config
Qt 6 build system, after switching from qmake to cmake, does not produce *.pc files
The fix suggested in QTBUG-86080 works only for shared libraries.
Here are some ways to work out this problem:
modify Qt’s patch to support static builds. Nevertheless, the generated *.pc files lack *.private sections which contains libraries required for static builds. This issue in turn can be solved by adjusting resulted *_LIB variables ad-hoc. Btw, this approach is currently implemented in this PR
develop our own patch which make Qt generate correct *.pc files for static builds (the content of internal QMAKE_PRL_LIBS variables could be used for that)
keep working *.pc files in our repo, and substitute them for static builds
something else
…
jarolrod
commented at 8:14 pm on April 10, 2022:
member
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 *.pc files and static builds.
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.
laanwj
commented at 10:42 am on April 11, 2022:
member
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 *.pc, though. Probing hardcoded paths is really crappy. Any other autoconf-using Qt6 applications we can borrow scripting from?
luke-jr
commented at 9:12 pm on April 12, 2022:
member
Would prefer to see this PR split between Qt6 compatibility (goal ASAP), and using Qt6 for releases (goal TBD later).
hebasto
commented at 9:15 pm on April 12, 2022:
member
Would prefer to see this PR split between Qt6 compatibility (goal ASAP), and using Qt6 for releases (goal TBD later).
In 9f61d6a7605eee4b116b8791276bd71baf75bf10:
Can you explain what’s going on here? Trying to link against .o files in configure checks not only seems very fragile, but outright hacky.
This is reproducing of lacking pkg-config --static functionality. List of files to link against has been taken from *.prl files.
hebasto force-pushed
on Apr 22, 2022
hebasto force-pushed
on Apr 22, 2022
hebasto force-pushed
on Apr 27, 2022
hebasto
commented at 1:02 pm on April 27, 2022:
member
Rebased on top of the bitcoin-core/gui#589.
hebasto force-pushed
on May 23, 2022
hebasto
commented at 7:05 am on May 23, 2022:
member
Rebased on top of the bitcoin-core/gui#586.
hebasto force-pushed
on May 23, 2022
hebasto
commented at 8:14 am on May 23, 2022:
member
Fixed builds which are configured with --disable-wallet.
hebasto referenced this in commit
8898906370
on May 24, 2022
sidhujag referenced this in commit
c24c674950
on May 28, 2022
DrahtBot added the label
Needs rebase
on May 31, 2022
hebasto force-pushed
on May 31, 2022
DrahtBot removed the label
Needs rebase
on May 31, 2022
DrahtBot added the label
Needs rebase
on Jun 2, 2022
laanwj referenced this in commit
bc83710fdc
on Jun 23, 2022
fanquake
commented at 11:05 am on August 10, 2022:
member
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).
hebasto force-pushed
on Aug 10, 2022
DrahtBot removed the label
Needs rebase
on Aug 10, 2022
hebasto force-pushed
on Aug 10, 2022
qt6: Fix builds which are configured with `--disable-wallet`fb872edc19
build: Pass `qt_lib_path` from depends to the `configure` script1c6e80c296
build, qt: Integrate DBus flags into QT_{INCLUDES,LIBS}c38f1602bb
hebasto
commented at 11:01 pm on August 10, 2022:
member
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 :tiger2:
DrahtBot
commented at 10:36 pm on October 4, 2022:
contributor
🐙 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”.
DrahtBot added the label
Needs rebase
on Oct 4, 2022
fanquake
commented at 11:37 am on December 5, 2022:
member
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 fb872edc1996527b6951899ff0127a6b815d0a41 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 metadata mirror of the GitHub repository
bitcoin/bitcoin.
This site is not affiliated with GitHub.
Content is generated from a GitHub metadata backup.
generated: 2024-11-23 09:12 UTC
This site is hosted by @0xB10C More mirrored repositories can be found on mirror.b10c.me