[Exherbo-dev] MYOPTIONS annotations

Bryan Østergaard bryan.ostergaard at gmail.com
Sat Nov 1 17:09:35 GMT 2008

On Thu, Oct 30, 2008 at 12:04 PM, Bo Ørsted Andresen <zlin at exherbo.org> wrote:
> On Thursday 30 October 2008 12:04:27 Ciaran McCreesh wrote:
>> Currently we have:
>>    flag [[ description = [ blah ] ]]
>> This has priority over any desc file. Someone should decide whether
>> we're phasing out desc files entirely, whether we want descriptions for
>> every option on every package and so on.
> I think we should only phase out *.local.conf. Adding descriptions for say
> every lingua via an exlib gets messy and writing it out everywhere is too
> much duplication. We should require a description for everything either via
> global descriptions or annotations.
Agreed, lets keep the global descriptions. We might want a better
format for global option descriptions but I think it's important
keeping them in one place.

>> We need to work out exactly how to do requirements. I'm thinking along
>> the lines of:
>>     flag [[ requires = [ foo bar -baz ] ]]
>> Do we also need requires-if-unset?
> I have yet to see a case where it's needed. Could also be implemented via
> ( -flag ) [[ requires = [ ... ] ]] ?
I can't think of any use cases either and requires-if-unset might
indicate other problems if needed (maybe need to invert option
'internal-foo' to 'foo' and have that depend on dev-libs/foo or

I'm not particularly opposed to requires-if-unset but don't think it's
a particular good idea.

>> Did we also want [[ default = enabled|disabled ]] ?
> I'd rather have better options.conf in profiles and keep it in one place (per
> repo) which handles forced, masked and default options.

>> For inter-flag dependencies, we were talking about adding in groups
>> with annotations:
>>     ( foo bar baz ) [[ number-selected = exactly-one ]]
>> where exactly-one might also be at-most-one or at-least-one. Should I
>> implement this, or is there anything else to add?
> I'd say implement that.

>> There was talk of allowing requires on groups too, as a shortcut. So
>> you'd have this:
>>     ( flag1 flag2 ) [[ requires = [ foo bar -baz ] ]]
>> Given that this is purely a shortcut, do we really want it?
> I think it would be nice at least. mplayer for instance have seven options
> that require the X options.
There's quite a few "messy" packages like that - most of the media
related packages would benefit from grouping I guess.

> [...]
>> Anything else I've missed?
> Would it be nice to be able to provide explanations for option requirements?
Definitely. Most option requirements are straight forward but there's
lots of cases where documentation would be quite nice - sometimes
caused by upstream doing weird things and sometimes by ourselves doing
weird things because of circular dependencies or special needs of the
'system' set for example.

Bryan Østergaard

More information about the Exherbo-dev mailing list