On Di, 2016-06-07 at 12:03 -0700, Brian Dolbec wrote: > On Tue, 7 Jun 2016 14:29:58 -0400 > Michael Orlitzky <m...@gentoo.org> wrote: > > > > > On 06/07/2016 12:20 PM, Michał Górny wrote: > > > > > > > > > So many weird ideas... while the simplest one is a proper > > > REQUIRED_USE with gui being the control flag, and IUSE defaults > > > to > > > select the preferred toolkit. > > > > > This is what came to my mind. > > > > The underlying problem that we are hitting (a la Patrick) is that > > USE > > flags are supposed to be a user-interface for building software > > from > > source, but implementation details are an important part of > > configuring the software to be built. > > > > It would be nice if USE=gui meant "build a GUI" and that was all > > the > > input that we needed from the user. But if the upstream package > > supports both QT and GTK and we need to pass either --with-qt or > > --with-gtk to the build system, then there is an unavoidable choice > > to be made. We can prefer one, but both options need to be > > available. > > > > If we want the best of both worlds -- a nice user-interface and > > full > > configurability -- then we can use "the user wants a GUI" as a > > trigger > > for the implementation choice. If there's a default implementation > > and > > the user doesn't care, no further interference should be necessary. > > Otherwise the presence of the generic USE=gui will let us know, so > > we > > can let the user know, that he needs to pick one. > > > > > This is where my thought from a few days ago kicks in... > I had started to discuss it with Kristian. > > > I propose to help alleviate the __MESS__ from all this force-foo and > other complicated USE flag REQUIRED_USE madness... > > We instead implement something along the lines of: > > an ordered list of the gui toolkits in their preferred order of > desirability. This should be an all inclusive list. Note: these are > subject to package.use setting overrides. > > PREFERRED_GUIS="gtk2 qt4 qt5 x wxwidgets X ... ncurses tty -gkt3" > > In the above it means that if gtk2 is an option, then choose it, mask > (de-select) the others. > In there it also means DO NOT SELECT gtk3!!!! So if you want a pkg > and > it NEEDS gtk3, then the PM will puke it back at you saying you can't > have one without the other... > So, then you have to fix it manually via package.use > settings. Accept > gtk3 for this pkg only (not that it doesn't likely have other gtk3 > deps that will also need this...) > > In the general case it will pick the first toolkit in order of > preference (left to right) and only that toolkit that the pkg is > capable > of using. > > For pkgs capable of multiple simultaneous toolkits installed, then > again, manual intervention would be needed to set package.use. > > This would also have to be a package manager feature and run similar > to > the auto-unmask feature. > > FEATURES="preferred-guis" > > Let's try and keep things as simple as possible. > From what I've gleaned form the emails I have read, is that what the > general user wants to happen, select the toolkit in the order of > their > preference. +1
Personally I see this as the only tractable option to stop the insanity. David