1 |
use case: Telling a package to build a gui without deciding which one to |
2 |
build. Also helps in cases where you have package A that can only build a |
3 |
qt gui, and package B that can build both qt and gtk, and package C that |
4 |
can build gtk only. You want to have a gui for all three, but you don't |
5 |
want to hav epackage B build both guis and at the same time while you may |
6 |
prefer qt, you don't want to leave package C without a gui. |
7 |
|
8 |
On Thu, Jun 2, 2016 at 7:20 AM, Ian Stakenvicius <axs@g.o> wrote: |
9 |
|
10 |
> On 01/06/16 10:13 PM, waltdnes@××××××××.org wrote: |
11 |
> > On Wed, Jun 01, 2016 at 07:56:41PM +0200, Micha?? Górny wrote |
12 |
> > |
13 |
> >> waltdnes@××××××××.org wrote: |
14 |
> >> |
15 |
> >>> I see this as at least a redundancy, if not a problem. First, let's |
16 |
> >>> look at the general case. An optional "UI" (User Interface) is also |
17 |
> >>> selected... |
18 |
> >>> * via the "tools" useflag 78 times in use.local.desc |
19 |
> >>> * via the "ncurses" useflag 10 times in use.local.desc. |
20 |
> >>> * for a lot of ebuilds via the "ncurses" useflag in use.desc (So why |
21 |
> >>> does "ncurses" show up in use.local.desc ???) |
22 |
> >>> |
23 |
> >>> There is no need for an additional "TUI" (Text User Interface) use |
24 |
> flag |
25 |
> >>> for these cases. "tools" and/or "ncurses" tells you enough. |
26 |
> Similarly, |
27 |
> >>> "GUI" is grab-bag of gtk2/gtk3/qt4/qt5/X/Wayland/whatever. The only |
28 |
> >>> thing they have in common is a hard-coded dependancy on graphics libs. |
29 |
> >>> "GUI" is an implicit dependancy of |
30 |
> gtk2/gtk3/qt4/qt5/X/Wayland/whatever. |
31 |
> >>> Using any of them tells you enough. What do we accomplish by requiring |
32 |
> >>> one more USE flag? This will also make dependancy resolution of |
33 |
> ebuilds |
34 |
> >>> more complex, i.e. slower. Why? |
35 |
> >> |
36 |
> >> Simple regular users don't want to be concerned with choice of toolkit |
37 |
> >> for every single package, as long as a GUI is provided. |
38 |
> > |
39 |
> > Then put one of X/xorg/wayland/mir/qt4/qt5/gtk2/gtk3/fltk into USE in |
40 |
> > make.conf. This will *FORCE* a gui where applicable. |
41 |
> > |
42 |
> |
43 |
> |
44 |
> The whole point of USE=gui is to get away from needing to do that. |
45 |
> Those flags should be used to choose -which- gui toolkit users want |
46 |
> when one is available, not to choose IF a gui should be built or not. |
47 |
> Take my example into account, i don't want anything qt based if I can |
48 |
> avoid it, but i definitely want wpa-gui. Right now I only get wpa-gui |
49 |
> if I enable USE=qt4 (or USE=qt5 presumably) on wpa_supplicant. I'm |
50 |
> not going to set that globally though because I don't want to choose |
51 |
> qt4 based front-ends for anything else, and having to guess for every |
52 |
> random package when i don't care so that I can set a package.use entry |
53 |
> for it is annoying. |
54 |
> |
55 |
> |
56 |
> >> Furthermore, this matches the recommended USE flag design where the |
57 |
> >> more important flags are provided as feature flags, while specific |
58 |
> >> dependency choice flags are minor. |
59 |
> > |
60 |
> > This is going to require *THREE* levels of flags, with the first one |
61 |
> > being totally unnecessary... |
62 |
> > |
63 |
> > Level 1) GUI |
64 |
> > |
65 |
> > Level 2) X or xorg or Wayland or Mir |
66 |
> > |
67 |
> > Level 3) qt4 or qt5 or gtk2 or gtk3 or fltk |
68 |
> |
69 |
> |
70 |
> 1 - USE=gui is for optional gui-or-no-gui, so yes in this scheme its |
71 |
> needed. |
72 |
> |
73 |
> 2 - If X or Wayland or Mir support is available in a package, then yes |
74 |
> -- also i don't see a way that we don't need these. |
75 |
> |
76 |
> 3 - toolkit selection choices when a package supports multiple (but |
77 |
> only chooses one) is also a yes. AND, because we're not tying any-gui |
78 |
> to one of these flags it means that users are free to set just the one |
79 |
> variant that they prefer, globally, instead of having to mess about |
80 |
> per-package. It also means we can get rid of any or all of these |
81 |
> particular flags from profiles (except for 'gnome' or 'plasma' or the |
82 |
> desktop-variant-specific ones). |
83 |
> |
84 |
> The point here is that if there's an app (say, wpa_supplicant as |
85 |
> mentioned before) that provides a gui tool but no options as to what |
86 |
> that tool needs in terms of toolkit etc, we can -just- have USE=gui |
87 |
> control whether or not it's built. It'll pull in qt because qt is |
88 |
> what it needs, and if someone is dead set against having qt in their |
89 |
> system then they'll know from the dependency tree. There's no need to |
90 |
> peg the individual toolkit to packages like this just to enable a gui. |
91 |
> |
92 |
> |
93 |
> > |
94 |
> > Let me re-phrase my question... is there *ANY* set of circumstances |
95 |
> > under which any of X/xorg/wayland/mir/qt4/qt5/gtk2/gtk3/fltk USE flag |
96 |
> > can be set for a package *WITHOUT* requiring a gui? I can see any of X |
97 |
> > or xorg or Wayland or Mir being a requirement for any of |
98 |
> > qt4/qt5/gtk2/gtk3/fltk. But any of the Level 2 or Level 3 flags *FORCES* |
99 |
> > a GUI of one sort or another. |
100 |
> |
101 |
> |
102 |
> Likely there is but I'd need to search. Extending libraries mostly -- |
103 |
> cairo, pango etc.. for X vs no-X, avahi for gtk*/qt* ... |
104 |
> |
105 |
> |
106 |
> |
107 |
> |
108 |
> |