On Fri, 30 Oct 2015 23:40:28 +0100 hasufell <hasuf...@gentoo.org> wrote:
> On 10/30/2015 10:16 PM, Anthony G. Basile wrote: > > On 10/30/15 3:35 PM, hasufell wrote: > >> On 10/30/2015 06:55 PM, Michał Górny wrote: > >>> We have no way of saying 'I prefer polarssl, then gnutls, then > >>> libressl, and never openssl'. > >> I don't think this is something that can be reasonably supported > >> and it sounds awfully automagic. And I don't see how this is > >> possible right now, so I'm not really sure what you expect to get > >> worse. > >> > >> E.g. -gnutls pulling in dev-libs/openssl is not really something > >> you'd expect. If we go for provider USE flags, then things become > >> consistent, explicit and unambiguous. The only problem is our > >> crappy implementation of providers USE flags via REQUIRED_USE. > >> > > I'm not sure what mgorny has in mind, but the problem I see with > > saying I want just X to be my provider system wide is that some > > pkgs build with X others don't, other pkgs might need a different > > provider. So it might make sense to order them in terms of > > preference: X1 > X2 > X3 ... and then when emerging a package, the > > first provider in the preference list that works is pulled in for > > that package. > > Isn't that basically what the proposal B already was, except that we > don't use REQUIRED_USE for it but some sort of pkg_setup/pkg_pretend > function? I don't see how those ideas even conflict. > Well, not exactly. If I understood them right, mgorny and blueness are asking for a user-supplied preference list (e.g. "I want packages to link with libressl if possible, gnutls otherwise"), not an ebuild-supplied preference list ("This package prefers gnutls, but openssl is also supported"). Side note: These ebuild-side preferences are used by some ebuilds (e.g. cyrus-sasl, it uses gdbm if both gdbm and berkdb use flags are enabled), but for ssl, we might want to specify "REQUIRED_USE = ^^ (..)" so it's possible to use USE dependencies in order to avoid namespace conflicts. If there's no REQUIRED_USE, "somelibrary[libressl]" might be satisfied even though somelibrary is actually linked to openssl. -- Regards, Luis Ressel