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.