Gentoo Archives: gentoo-council

From: Brian Harring <ferringb@×××××.com>
To: Alistair Bush <ali_bush@g.o>
Cc: gentoo-dev@l.g.o, gentoo-council@l.g.o
Subject: Re: [gentoo-council] pkg_pretend USE validation and VALID_USE alternative
Date: Wed, 31 Mar 2010 10:59:43
Message-Id: 20100331105738.GE11663@hrair
In Reply to: Re: [gentoo-council] pkg_pretend USE validation and VALID_USE alternative by Alistair Bush
1 Note I inadvertantly cross posted, I was intending on cc'ing
2 council@g.o.
3
4 As such one final cc to that ml to end this subthread while pulling
5 this back to -dev.
6
7
8 On Wed, Mar 31, 2010 at 11:16:22PM +1300, Alistair Bush wrote:
9 > > Hola all-
10 > >
11 > > Comments desired; assuming no significant blowback, I'll be pushing
12 > > this to the council level since eapi4 is annoying feature locked right
13 >
14 > I think this solution is far better, until someone smarter than me tells me
15 > otherwise.
16 >
17 > Don't know whether I like the VALID_USE var name, so please at least think
18 > about something a little better if you can ;). ( I like green, but not too
19 > green if you know what I mean )
20 >
21 > Will we still have to define the use flags in IUSE?
22
23 Yes, although if folks have a better proposal that incorporates
24 VALID_USE into IUSE I'm definitely open to it- the original proposal
25 for VALID_USE tried to inline it into IUSE, but it got ugly (hence it
26 mutating it this form).
27
28 The problem w/ trying to reuse IUSE is the following (sorry, I like
29 lists of assertions)-
30
31 *) IUSE currently serves as a list of valid USE flags, just that. No
32 repeat specification of a flag (which means the dev in question is
33 unlikely to typo a flag).
34
35 *) having a single specified list of valid use flags is the basis for
36 doing validation of use flags used in all other metadata. In other
37 words, that list of valid use flags *really* needs to go out of it's
38 way to make human error hard.
39
40 *) VALID_USE is a set of assertions on the allowed state of USE; IUSE
41 is just a list of flags. Intermixing the two in a way that is still
42 readable is really ugly
43
44 *) given a library that has optional perl and python bindings
45 (which can be toggled freely, they're standalone flags) I've nfc how
46 one would sanely specify that w/in IUSE while adding VALID_USE
47 semantics. Possibly, you could include use conditionals into IUSE,
48 and treat the () contents as assertions- but that makes adding xor in
49 hard, is rather ugly/hard on the eyes, and violates the DRY (Don't
50 Repeat Yourself) principle from above.
51
52 Definitely open to counterproposals that address those
53 concerns however...
54
55
56 > I'm guessing we can't use IUSE to store this information because of the whole
57 > glep-55 thing.
58
59 glep-55 is unrelated to this as far as I can tell- if you think
60 otherwise please clarify.
61
62 Thanks
63 ~harring