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 ;)



Reply via email to