1 |
On Jun 3, 2016 1:15 PM, "Alan McKinnon" <alan.mckinnon@×××××.com> wrote: |
2 |
> |
3 |
> On 03/06/2016 21:34, waltdnes@××××××××.org wrote: |
4 |
>> |
5 |
>> On Fri, Jun 03, 2016 at 10:35:45AM -0400, Ian Stakenvicius wrote |
6 |
>> |
7 |
>>> USE=gui is about building the graphical user interface that an |
8 |
>>> application offers, when it is optional. That's it. What |
9 |
>>> dependencies that means and so on have nothing to do with the flag. |
10 |
>> |
11 |
>> |
12 |
>> That reasoning may have been valid many years ago when qt was the only |
13 |
>> toolkit around. All GUI-optional apps back then either used qt or wrote |
14 |
>> their own primitives directly to X. Fast-forward to 2016. You now have |
15 |
>> X/Wayland/Mir/qt4/qt5/gtk2/gtk3/fltk/whatever. If a package can have a |
16 |
>> GUI from more than one of the above, you *NEED* to select implementation |
17 |
>> type *SOMEWHERE* (make.conf/package.use/profile). Deal with it. |
18 |
>> |
19 |
>>> You get that use flags are not supposed to represent dependencies |
20 |
>>> right, but features of the package?? |
21 |
>> |
22 |
>> |
23 |
>> Gentoo currently assumes that users are reasonably competent, and that |
24 |
>> if they've selected specific graphics libs to be linked to a package, |
25 |
>> that they've done it for a reason; i.e. to enable a GUI. |
26 |
> |
27 |
> |
28 |
> Walter, |
29 |
> |
30 |
> I think you're missing where the devs want to take this and what USE is |
31 |
all about. It's about *features*, not about dependencies. |
32 |
> |
33 |
> USE="gtk" is a dependency. |
34 |
|
35 |
No. It is a feature. However, it is a feature named after the |
36 |
dependencies needed to enable it. If a package has a hard dependency on |
37 |
libgtk, a USE flag would not be added, but a soft dependency on libgtk |
38 |
means that libgtk support is a feature or part of a feature (the feature |
39 |
being you get to choose which toolkit is used). |
40 |
|
41 |
If it was a dependency, then packages such as XFCE and evince would have to |
42 |
use flags. However they don't. |
43 |
|
44 |
So enough with the these are dependency use flags and those are feature use |
45 |
flags. It's not true and it's a poor attempt to try and force this idea |
46 |
through. If this is idea is a good one, such tactics aren't needed. If |
47 |
it's not, the tactics aren't warranted. |
48 |
|
49 |
> USE="gui" is a feature. |
50 |
> You only need enable a specific graphics lib flag when there is ambiguity |
51 |
about what "gui" means for a package. |
52 |
> |
53 |
> |
54 |
>> |
55 |
>>> Think about a wayland system -- there's lots of packages that |
56 |
>>> IUSE="X" to build their gui implementation. If someone wanting |
57 |
>>> wayland set USE="-X" then they don't get the gui app even if it'll |
58 |
>>> work in wayland just fine. |
59 |
>> |
60 |
>> |
61 |
>> If someone wants to run a wayland system, why wouldn't they set |
62 |
>> USE="-X -mir wayland" in make.conf in the first place?!?!? |
63 |
>> |
64 |
>> Here's my problem with USE="gui"... I've set up various packages which |
65 |
>> have the gui/no-gui option. If USE="-gui" overrides USE="X gtk3 qt4 |
66 |
fltk", |
67 |
>> then I would have to set USE="gui" *IN ADDITION TO* telling packages |
68 |
>> which GUI toolkit to use. Since I may want some packages GUI, and some |
69 |
>> non-GUI, that would be one more USE flag to set in package.use and/or |
70 |
>> make.conf. |
71 |
>> |
72 |
>> The reason for the pushback is that this "feature" would be rammed |
73 |
>> down peoples' throats, Poettering-style. I propose a compromise |
74 |
>> solution that both sides should be happy with. It would require 2 USE |
75 |
>> flags, namely "forcegui" and "forcenogui". |
76 |
>> |
77 |
>> If "forcegui" is set, all optional-GUI apps will be built with GUIs, |
78 |
>> regardless of USE="-X -Mir -Wayland -gtk2 -gtk3 -qt4 -qt5". |
79 |
>> |
80 |
>> If "forcenogui" is set, no optional-GUI apps will be built with GUIs, |
81 |
>> regardless of USE="X Mir Wayland gtk2 gtk3 qt4 qt5". |
82 |
>> |
83 |
>> If USE="-forcegui -forcenogui" is set, things will be as they are |
84 |
>> today. GUIs will be built, or not, depending on what toolkit flags are |
85 |
>> set or not set. Gentoo is about choice. |
86 |
>> |
87 |
> |
88 |
> That's a silly idea not least because it's non-deterministic. A force USE |
89 |
flag is really just USE="gtk" or USE="qt" on a larger scale as there's now |
90 |
*more* toolkits to randomly pick one from. |
91 |
> |
92 |
> Most apps support one toolkit, often either gtk2/3 or qt4/5. It's a |
93 |
minority that support both and we have special means to handle those. For |
94 |
that small set of apps that do support several toolkits, what exactly are |
95 |
you going to force? If you can have one of gtk 2 or 3 but not both, which |
96 |
one is it? Well you'd need a USE="gtk2" or USE="gtk3" to find out what the |
97 |
user wants. |
98 |
> |
99 |
> This proposal makes things simpler and reduces flags and their usage. |
100 |
> "gui" means build the gui the thing supports. |
101 |
> "X" stops meaning "gui" or maybe "XLibs" or perhaps "usually RDP but also |
102 |
supports magic X11" and starts to mean "X11 Window System" as opposed to |
103 |
Wayland or Mir. |
104 |
> The other toolkit flags start to mean specific versions of toolkits and |
105 |
only need be used when things get ambiguous and portage wants you you tell |
106 |
it what you want. |
107 |
> |
108 |
> In short, flags will get simpler (as cruft will be removed) and flags |
109 |
gain clearer distinct names. Think of it as a code refactor after years of |
110 |
accumulating rubbish due to no clear plan. |
111 |
> |
112 |
> Alan |
113 |
> |
114 |
> |
115 |
> |