On 06/03/2016 10:52 AM, Michał Górny wrote: > Dnia 2 czerwca 2016 21:36:10 CEST, waltd...@waltdnes.org napisał(a): >> >> Is it broken right now? What improvement will we see from having to >> add a "GUI" flag? > TL;DR: it's broken as hell, missing GUI, flag conflicts, implicit flags, full > package.use and inability to sanely replace old toolkits with new ones. I see it the other way around: Adding Yet Another Flag will just make things more, uhm, exciting.
For example since gtk3 is totally useless on HiDPI and only mostly useless on normal screens I want to actively avoid it. Having a 'gui' useflag adds another indirection that badly emulates what the profile already does ... > So, let's say we're considering only GTK+ and Qt, for simplicity's sake. Wrt > QA policy, we only are supposed to use the following flags: gtk2, gtk3, qt4, > qt5... > > Now, we have the major types of packages (with some GUI): > > 1. Packages with a single obligatory GUI -- having no flags, > > 2. packages with a single optional GUI -- having one flag controlling whether > it is enabled, But is it gtk2 or gtk3? If 2 then I'm ok, if 3 then not, now I can't easily see what is pulling in the wrong deps > > 3. packages with multiple GUIs -- having multiple flags. > > Now, the third type could be further split depending on: So now dependencies become funny ... RDEPEND="gui? ( X? ( gtk2? ( ...) gtk3? ( ...)))" REQUIRED_USE="gui? ( ^^ ( gtk2 gtk3 ))" See how gui just adds a middle layer that doesn't help most cases? Sigh. :\ [snip] > Let's say he underwent the effort and enabled gtk2 on some packages, qt5 on > some other. > > Now, when packages gain gtk3 support, he either gets new conflicts or two > flags being enabled cause app to prefer one of them. When packages gain qt6 > support, he is stuck with 5 until support for 5 is removed. Even though some > packages start using 6 implicitly anyway. Which is good / expected: If I deviate from defaults, then don't change the defaults for me. If I wanted you to decide for me I'd Ubuntu all day long ;) > > > B. */* gtk3 qt5 > > This covers packages not supporting GTK+ better but leaves multiple GTK+ > problem unsolved. But now, some packages will either request him to disable > one of the two, or implicitly choose one of them, possibly the one less > preferred. > > > C. */* gtk2 gtk3 qt5 > > Because he is tired with a lot of packages not supporting GTK+3. Now, he's > either in a world full of conflicts, or implicit choices. For the latter, > he's unhappy that some developers make him prefer old GTK+2. Implicit is usually wrong, so the packages should have an explicit one-of-enabled check ... even if it's not the most aesthetical solution. Otherwise, why have the useflags if you decide for the user? > > > Of course, that are just the closest user facing problems. Additionally, > every time developer refuses to use REQUIRED_USE, the user is left with some > implicit choice whose result can't be predicted, possibly slow and unreadable > pkg_pretend that actually tells him about the choice (too late), and multiple > meaningless flag combinations that make it impossible to reuse the same > binary package even though the same GUI has been actually used. > > > I'm not saying that 'gui' solves all the problems. But it's a step in the > right direction where USE flags actually start meaning something and not > resembling the Ubuntu 'apt-get install libgtk+3 libfoo ...' I kinda disagree that it solves any problems we have, and makes my life more exciting. And exciting can be bad for my mood ;)