On 10/28/15 7:16 AM, hasufell wrote:
On 10/28/2015 07:23 AM, Ryan Hill wrote:
Agreed.  If there's one choice then "ssl" should be used.  openssl/libressl/etc
should really be considered sub-flags of ssl.

This is what I did with curl. USE=ssl means one and exactly one ssl provider must be specified. I suggested making it a model gentoo wide, but there were criticisms, I forget what, but the made sense to me at teh time.


I really wish we had some way of specifying this to make things clearer to the
user, so they could see exactly how these flags interact with each other.
Something like (emerge -pv):

The problem here is that we introduced REQUIRED_USE foo for these cases
which is again highly ambigous instead of making the PM aware that this
is an actual sub-USE flag.

A properly designed sub-USE flag would be useful here and clearly better than our REQUIRED_USE. I think REQUIRED_USE is fine for heterogeneous cases, but not when you have something like curl where you can either turn ssl on or off. If it is off, nothing more needs to be specified, if it is on, then you must further specify one and exactly one ssl provider.


This is outside of the scope of this thread, but there are already
distros that have fixed this:
1. NixOS [0] with truly declarative configuration format, e.g. something
like:
packages.ssl.provider = openssl;

or somesuch (just an example)

2. Exherbo partly [1] with providers syntax:
*/* providers: -openssl libressl

and the exheres would then do something like:
DEPENDENCIES="
     build+run:
         providers:openssl?  ( dev-libs/openssl:0 )
         providers:libressl? ( dev-libs/libressl )
"

which is a lot cleaner than USE_EXPAND + REQUIRED_USE, which still can
have arbitrary meanings.

But NIH will prevent us from learning here I guess.


[0] https://nixos.org/nixos/manual/
[1] http://exherbo.org/docs/eapi/providers-and-virtuals.html



--
Anthony G. Basile, Ph.D.
Gentoo Linux Developer [Hardened]
E-Mail    : bluen...@gentoo.org
GnuPG FP  : 1FED FAD9 D82C 52A5 3BAB  DC79 9384 FA6E F52D 4BBA
GnuPG ID  : F52D4BBA


Reply via email to