1 |
Dear fellow developers, |
2 |
as part of our effort in making Gentoo more pleasant to use, I am |
3 |
suggesting to add the global USE=gui flag. This flag is the semantic |
4 |
analogue of USE=ssl, namely |
5 |
|
6 |
"Enable optional support for at least one GUI widget |
7 |
toolkit". |
8 |
|
9 |
Please notice: this is *NOT* about solving the issue of USE-cascades vs |
10 |
REQUIRED_USE, as this is a much larger issue, that the introduction of |
11 |
a single global USE flag cannot solve. See |
12 |
https://bugs.gentoo.org/611564#c1 |
13 |
for the requirements to this problem. |
14 |
|
15 |
Rationale: so why introduce yet another global USE flag? Because it |
16 |
makes optional-GUI support *much* easier. Let's say we have one of the |
17 |
following situations |
18 |
|
19 |
1. a package that optionally supports GTK2, GTK3 and Qt5, but also |
20 |
supports a pure CLI interface. USE=-gui allows users to disable the |
21 |
GUI, without individually disabling USE=gtk2/gtk3/qt5, thereby easing |
22 |
package.use hacking for non-GUI users (as all the widgets are hidden |
23 |
behind a "gui? ( blabla )" clause or USE cascades). |
24 |
2. a package that optionally supports *only* Qt5. In this case, many |
25 |
packages would just enable the GUI when users have USE="qt5" enabled. |
26 |
That is, USE=gui helps to clarify the semantics of the other toolkit |
27 |
flags, namely as implementation-enabling USE flags, whereas currently |
28 |
USE="qt5" means implementation-enabling-unless-it's-the-only-toolkit- |
29 |
where-it-then-also-acts-as-GUI-enabling. This would be comparable to |
30 |
USE=ssl, where the package only supports openssl and nothing else. |
31 |
USE=ssl has well-defined semantics, and we should bring these semantics |
32 |
to toolkit-consuming packages too. |
33 |
|
34 |
Full disclosure: |
35 |
This is not my idea, as it was brought up by leio about 3 years ago: |
36 |
https://archives.gentoo.org/gentoo-dev/message/eecad370248118c474a0d819fa7f3576 |