Gentoo Archives: gentoo-dev

From: Raymond Jennings <shentino@×××××.com>
To: gentoo-dev <gentoo-dev@l.g.o>
Subject: Re: [gentoo-dev] [RFC] Global USE=gui
Date: Thu, 02 Jun 2016 15:09:49
Message-Id: CAGDaZ_owu=PvyCpF-hHt=AMxqfnFqYFXfbhzcHOaMZgKZMz95g@mail.gmail.com
In Reply to: Re: [gentoo-dev] [RFC] Global USE=gui by Ian Stakenvicius
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 >

Replies

Subject Author
Re: [gentoo-dev] [RFC] Global USE=gui Nick Vinson <nvinson234@×××××.com>