-
Notifications
You must be signed in to change notification settings - Fork 36.6k
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
depends: disable unused Qt features #16386
Conversation
|
Concept ACK, +1 for the documentation or features reference. |
Compiling on Windows-10 WSL I also got the same errors and a lot of these warnings:
|
Gitian builds for commit 536590f (master):
Gitian builds for commit e1332da (master and this pull):
|
d235a61
to
ed04310
Compare
$(package)_config_opts += -no-feature-bearermanagement | ||
$(package)_config_opts += -no-feature-colordialog | ||
$(package)_config_opts += -no-feature-commandlineparser | ||
$(package)_config_opts += -no-feature-concurrent |
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.
I was scared here for a bit, but turns out concurrent
is for high-level thread handling, an API that is not used in our project, and it's not necessary for low-level multithreading that we use.
Concept ACK |
1 similar comment
Concept ACK |
Concept ACK Do you have numbers for before vs after? |
Rebased for #16408. |
For reviewers, here's a gist with all the configure flags, features, and libraries: https://gist.github.com/dongcarl/f15946dff501dea85977b2c2fb9f00a0 |
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.
Concept ACK
@@ -70,19 +71,35 @@ $(package)_config_opts += -system-zlib | |||
$(package)_config_opts += -static | |||
$(package)_config_opts += -silent | |||
$(package)_config_opts += -v | |||
$(package)_config_opts += -no-feature-bearermanagement | |||
$(package)_config_opts += -no-feature-colordialog | |||
$(package)_config_opts += -no-feature-commandlineparser |
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.
Does this remove the ability to add qt-specific runtime args to bitcoin-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.
It shouldn't do. We don't use any QCommandLineParser
functionality, and it is actually another layer on top of any command line argument handling done by QCoreApplication
.
I have tested passing through some qt specific options, such as -qwindowtitle
and they still seem to work:
$(package)_config_opts += -no-feature-printpreviewdialog | ||
$(package)_config_opts += -no-feature-printpreviewwidget | ||
$(package)_config_opts += -no-feature-regularexpression | ||
$(package)_config_opts += -no-feature-sessionmanager |
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.
As mentioned on IRC, I remember originally making this platform-specific for good reason. Maybe it's no longer needed, but let's make sure to understand what's changed.
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.
I've done some basic testing on macOS 10.14 and Windows 10 (built using WSL) and couldn't find obvious runtime issues. Although it might be good to get a Windows user to verify this: @sipsorcery, @NicolasDorier ?
I can't see us using or including QSessionManager
anywhere, nor making any calls to QGuiApplication::commitDataRequest
or QGuiApplication::saveStateRequest
which are Qts two session management signals. My other thought was that it might be being used by QSettings
, however config settings in the GUI (i.e coin control) seem to be saved and loaded correctly on the next start.
Looking at our qt package, -no-sm
was originally added as a Linux only config option at the introduction of depends. It then became -no-feature-sessionmanager
during the Qt 5.9.4 upgrade.
$(package)_config_opts += -no-feature-udpsocket | ||
$(package)_config_opts += -no-feature-undocommand |
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 these disable ctrl+z for, for example, input fields?
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.
No, using something like ctrl-z
(⌘-z on macOS) still works as expected. My understanding is that QUndoCommand
s are used when you build a QUndoStack, for example when editing a document. We don't use QUndoStacks or Commands at all.
@@ -35,6 +35,7 @@ $(package)_config_opts += -no-freetype | |||
$(package)_config_opts += -no-gif | |||
$(package)_config_opts += -no-glib | |||
$(package)_config_opts += -no-icu | |||
$(package)_config_opts += -no-ico |
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.
For reviewers: We have .ico files in-tree, but they're processed at build-time by windres.
Updated to also disable the VNC QPA backend using: $(package)_config_opts += -no-feature-vnc which we have been building on Linux: QPA backends:
DirectFB ............................... no
EGLFS .................................. no
LinuxFB ................................ no
VNC .................................... yes
Mir client ............................. no
|
tACK 248e22b (Windows 10 test only) Didn't notice any discrepancies when running |
Qt has a VNC backend ?!? that's wicked cool, but yes, not useful for this project, the last thing you'd want is a wallet listening on a VNC port ACK 248e22b |
248e22b depends: disable unused Qt features (fanquake) Pull request description: Related to #16354. Kept separate from #16370, because: > QT is a monster 😂 - dongcarl in #bitcoin-builds I've done some basic testing on `macOS 10.14` and `Debian 9.9` so far. Would be good to have someone test on Windows. I was thinking about adding some inline documentation, i.e info about where to find the lists of Qt features & libraries, as well as breaking the flags up so that it's clearer which libraries we are supplying, which we rely on Qt for etc. Could go towards addressing some of`2` in #16354. ACKs for top commit: sipsorcery: tACK 248e22b (Windows 10 test only) laanwj: ACK 248e22b Tree-SHA512: 2cdcea8d268de21d355a7625c4d352f65728df0b8d8cc0f396aca676f42099a819f95652dfbfc665c991ba12c52735c1e9b693df4b12e3ee178fd39356fba8e0
Needs rebase |
Needs rebase |
@molxyz There shouldn't be any observable differences from this PR. It's disabling things we aren't using anyway. |
@sipa Ah.. Ok, thanks for letting me know. So far I haven't seen any issue but will keep running the master. |
248e22b depends: disable unused Qt features (fanquake) Pull request description: Related to bitcoin#16354. Kept separate from bitcoin#16370, because: > QT is a monster 😂 - dongcarl in #bitcoin-builds I've done some basic testing on `macOS 10.14` and `Debian 9.9` so far. Would be good to have someone test on Windows. I was thinking about adding some inline documentation, i.e info about where to find the lists of Qt features & libraries, as well as breaking the flags up so that it's clearer which libraries we are supplying, which we rely on Qt for etc. Could go towards addressing some of`2` in bitcoin#16354. ACKs for top commit: sipsorcery: tACK 248e22b (Windows 10 test only) laanwj: ACK 248e22b Tree-SHA512: 2cdcea8d268de21d355a7625c4d352f65728df0b8d8cc0f396aca676f42099a819f95652dfbfc665c991ba12c52735c1e9b693df4b12e3ee178fd39356fba8e0
Summary: Backport of core [[bitcoin/bitcoin#16386 | PR16386]]. Depends on D5636. Test Plan: Run the Gitian builds. Reviewers: #bitcoin_abc, deadalnix Reviewed By: #bitcoin_abc, deadalnix Differential Revision: https://reviews.bitcoinabc.org/D5638
$(package)_config_opts += -no-feature-dial | ||
$(package)_config_opts += -no-feature-filesystemwatcher |
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.
This change causes bitcoin-core/gui#32, and it is fixed in #19536.
6457361 qt: Fix QFileDialog for static builds (Hennadii Stepanov) Pull request description: This change partially reverts 248e22b (#16386) and makes `QFileDialog`s work again for static builds. Fixes bitcoin-core/gui#32. ACKs for top commit: fanquake: ACK 6457361. Although it would be good to know exactly _why_ this fixes the issue. At this stage I also don't think this should be a blocker for 0.20.1. theuni: ACK 6457361 Tree-SHA512: 8ad27e0bcae6debd02f73b7c374743e37d4edd806922b103a2fe494cf2d9930fe9ef3107b5a6c61f3c466cf7462de2641171880398954e7f2c4f417f5bb820d7
248e22b depends: disable unused Qt features (fanquake) Pull request description: Related to bitcoin#16354. Kept separate from bitcoin#16370, because: > QT is a monster 😂 - dongcarl in #bitcoin-builds I've done some basic testing on `macOS 10.14` and `Debian 9.9` so far. Would be good to have someone test on Windows. I was thinking about adding some inline documentation, i.e info about where to find the lists of Qt features & libraries, as well as breaking the flags up so that it's clearer which libraries we are supplying, which we rely on Qt for etc. Could go towards addressing some of`2` in bitcoin#16354. ACKs for top commit: sipsorcery: tACK 248e22b (Windows 10 test only) laanwj: ACK 248e22b Tree-SHA512: 2cdcea8d268de21d355a7625c4d352f65728df0b8d8cc0f396aca676f42099a819f95652dfbfc665c991ba12c52735c1e9b693df4b12e3ee178fd39356fba8e0
248e22b depends: disable unused Qt features (fanquake) Pull request description: Related to bitcoin#16354. Kept separate from bitcoin#16370, because: > QT is a monster 😂 - dongcarl in #bitcoin-builds I've done some basic testing on `macOS 10.14` and `Debian 9.9` so far. Would be good to have someone test on Windows. I was thinking about adding some inline documentation, i.e info about where to find the lists of Qt features & libraries, as well as breaking the flags up so that it's clearer which libraries we are supplying, which we rely on Qt for etc. Could go towards addressing some of`2` in bitcoin#16354. ACKs for top commit: sipsorcery: tACK 248e22b (Windows 10 test only) laanwj: ACK 248e22b Tree-SHA512: 2cdcea8d268de21d355a7625c4d352f65728df0b8d8cc0f396aca676f42099a819f95652dfbfc665c991ba12c52735c1e9b693df4b12e3ee178fd39356fba8e0
248e22b depends: disable unused Qt features (fanquake) Pull request description: Related to bitcoin#16354. Kept separate from bitcoin#16370, because: > QT is a monster 😂 - dongcarl in #bitcoin-builds I've done some basic testing on `macOS 10.14` and `Debian 9.9` so far. Would be good to have someone test on Windows. I was thinking about adding some inline documentation, i.e info about where to find the lists of Qt features & libraries, as well as breaking the flags up so that it's clearer which libraries we are supplying, which we rely on Qt for etc. Could go towards addressing some of`2` in bitcoin#16354. ACKs for top commit: sipsorcery: tACK 248e22b (Windows 10 test only) laanwj: ACK 248e22b Tree-SHA512: 2cdcea8d268de21d355a7625c4d352f65728df0b8d8cc0f396aca676f42099a819f95652dfbfc665c991ba12c52735c1e9b693df4b12e3ee178fd39356fba8e0
248e22b depends: disable unused Qt features (fanquake) Pull request description: Related to bitcoin#16354. Kept separate from bitcoin#16370, because: > QT is a monster 😂 - dongcarl in #bitcoin-builds I've done some basic testing on `macOS 10.14` and `Debian 9.9` so far. Would be good to have someone test on Windows. I was thinking about adding some inline documentation, i.e info about where to find the lists of Qt features & libraries, as well as breaking the flags up so that it's clearer which libraries we are supplying, which we rely on Qt for etc. Could go towards addressing some of`2` in bitcoin#16354. ACKs for top commit: sipsorcery: tACK 248e22b (Windows 10 test only) laanwj: ACK 248e22b Tree-SHA512: 2cdcea8d268de21d355a7625c4d352f65728df0b8d8cc0f396aca676f42099a819f95652dfbfc665c991ba12c52735c1e9b693df4b12e3ee178fd39356fba8e0
248e22b depends: disable unused Qt features (fanquake) Pull request description: Related to bitcoin#16354. Kept separate from bitcoin#16370, because: > QT is a monster 😂 - dongcarl in #bitcoin-builds I've done some basic testing on `macOS 10.14` and `Debian 9.9` so far. Would be good to have someone test on Windows. I was thinking about adding some inline documentation, i.e info about where to find the lists of Qt features & libraries, as well as breaking the flags up so that it's clearer which libraries we are supplying, which we rely on Qt for etc. Could go towards addressing some of`2` in bitcoin#16354. ACKs for top commit: sipsorcery: tACK 248e22b (Windows 10 test only) laanwj: ACK 248e22b Tree-SHA512: 2cdcea8d268de21d355a7625c4d352f65728df0b8d8cc0f396aca676f42099a819f95652dfbfc665c991ba12c52735c1e9b693df4b12e3ee178fd39356fba8e0
248e22b depends: disable unused Qt features (fanquake) Pull request description: Related to bitcoin#16354. Kept separate from bitcoin#16370, because: > QT is a monster 😂 - dongcarl in #bitcoin-builds I've done some basic testing on `macOS 10.14` and `Debian 9.9` so far. Would be good to have someone test on Windows. I was thinking about adding some inline documentation, i.e info about where to find the lists of Qt features & libraries, as well as breaking the flags up so that it's clearer which libraries we are supplying, which we rely on Qt for etc. Could go towards addressing some of`2` in bitcoin#16354. ACKs for top commit: sipsorcery: tACK 248e22b (Windows 10 test only) laanwj: ACK 248e22b Tree-SHA512: 2cdcea8d268de21d355a7625c4d352f65728df0b8d8cc0f396aca676f42099a819f95652dfbfc665c991ba12c52735c1e9b693df4b12e3ee178fd39356fba8e0
248e22b depends: disable unused Qt features (fanquake) Pull request description: Related to bitcoin#16354. Kept separate from bitcoin#16370, because: > QT is a monster 😂 - dongcarl in #bitcoin-builds I've done some basic testing on `macOS 10.14` and `Debian 9.9` so far. Would be good to have someone test on Windows. I was thinking about adding some inline documentation, i.e info about where to find the lists of Qt features & libraries, as well as breaking the flags up so that it's clearer which libraries we are supplying, which we rely on Qt for etc. Could go towards addressing some of`2` in bitcoin#16354. ACKs for top commit: sipsorcery: tACK 248e22b (Windows 10 test only) laanwj: ACK 248e22b Tree-SHA512: 2cdcea8d268de21d355a7625c4d352f65728df0b8d8cc0f396aca676f42099a819f95652dfbfc665c991ba12c52735c1e9b693df4b12e3ee178fd39356fba8e0
248e22b depends: disable unused Qt features (fanquake) Pull request description: Related to bitcoin#16354. Kept separate from bitcoin#16370, because: > QT is a monster 😂 - dongcarl in #bitcoin-builds I've done some basic testing on `macOS 10.14` and `Debian 9.9` so far. Would be good to have someone test on Windows. I was thinking about adding some inline documentation, i.e info about where to find the lists of Qt features & libraries, as well as breaking the flags up so that it's clearer which libraries we are supplying, which we rely on Qt for etc. Could go towards addressing some of`2` in bitcoin#16354. ACKs for top commit: sipsorcery: tACK 248e22b (Windows 10 test only) laanwj: ACK 248e22b Tree-SHA512: 2cdcea8d268de21d355a7625c4d352f65728df0b8d8cc0f396aca676f42099a819f95652dfbfc665c991ba12c52735c1e9b693df4b12e3ee178fd39356fba8e0
248e22b depends: disable unused Qt features (fanquake) Pull request description: Related to bitcoin#16354. Kept separate from bitcoin#16370, because: > QT is a monster 😂 - dongcarl in #bitcoin-builds I've done some basic testing on `macOS 10.14` and `Debian 9.9` so far. Would be good to have someone test on Windows. I was thinking about adding some inline documentation, i.e info about where to find the lists of Qt features & libraries, as well as breaking the flags up so that it's clearer which libraries we are supplying, which we rely on Qt for etc. Could go towards addressing some of`2` in bitcoin#16354. ACKs for top commit: sipsorcery: tACK 248e22b (Windows 10 test only) laanwj: ACK 248e22b Tree-SHA512: 2cdcea8d268de21d355a7625c4d352f65728df0b8d8cc0f396aca676f42099a819f95652dfbfc665c991ba12c52735c1e9b693df4b12e3ee178fd39356fba8e0
248e22b depends: disable unused Qt features (fanquake) Pull request description: Related to bitcoin#16354. Kept separate from bitcoin#16370, because: > QT is a monster 😂 - dongcarl in #bitcoin-builds I've done some basic testing on `macOS 10.14` and `Debian 9.9` so far. Would be good to have someone test on Windows. I was thinking about adding some inline documentation, i.e info about where to find the lists of Qt features & libraries, as well as breaking the flags up so that it's clearer which libraries we are supplying, which we rely on Qt for etc. Could go towards addressing some of`2` in bitcoin#16354. ACKs for top commit: sipsorcery: tACK 248e22b (Windows 10 test only) laanwj: ACK 248e22b Tree-SHA512: 2cdcea8d268de21d355a7625c4d352f65728df0b8d8cc0f396aca676f42099a819f95652dfbfc665c991ba12c52735c1e9b693df4b12e3ee178fd39356fba8e0
248e22b depends: disable unused Qt features (fanquake) Pull request description: Related to bitcoin#16354. Kept separate from bitcoin#16370, because: > QT is a monster 😂 - dongcarl in #bitcoin-builds I've done some basic testing on `macOS 10.14` and `Debian 9.9` so far. Would be good to have someone test on Windows. I was thinking about adding some inline documentation, i.e info about where to find the lists of Qt features & libraries, as well as breaking the flags up so that it's clearer which libraries we are supplying, which we rely on Qt for etc. Could go towards addressing some of`2` in bitcoin#16354. ACKs for top commit: sipsorcery: tACK 248e22b (Windows 10 test only) laanwj: ACK 248e22b Tree-SHA512: 2cdcea8d268de21d355a7625c4d352f65728df0b8d8cc0f396aca676f42099a819f95652dfbfc665c991ba12c52735c1e9b693df4b12e3ee178fd39356fba8e0
248e22b depends: disable unused Qt features (fanquake) Pull request description: Related to bitcoin#16354. Kept separate from bitcoin#16370, because: > QT is a monster 😂 - dongcarl in #bitcoin-builds I've done some basic testing on `macOS 10.14` and `Debian 9.9` so far. Would be good to have someone test on Windows. I was thinking about adding some inline documentation, i.e info about where to find the lists of Qt features & libraries, as well as breaking the flags up so that it's clearer which libraries we are supplying, which we rely on Qt for etc. Could go towards addressing some of`2` in bitcoin#16354. ACKs for top commit: sipsorcery: tACK 248e22b (Windows 10 test only) laanwj: ACK 248e22b Tree-SHA512: 2cdcea8d268de21d355a7625c4d352f65728df0b8d8cc0f396aca676f42099a819f95652dfbfc665c991ba12c52735c1e9b693df4b12e3ee178fd39356fba8e0
Related to #16354. Kept separate from #16370, because:
I've done some basic testing on
macOS 10.14
andDebian 9.9
so far. Would be good to have someone test on Windows.I was thinking about adding some inline documentation, i.e info about where to find the lists of Qt features & libraries, as well as breaking the flags up so that it's clearer which libraries we are supplying, which we rely on Qt for etc. Could go towards addressing some of
2
in #16354.