On Wed, 28 Nov 2007 18:58:07 -0800
"Robin H. Johnson" <[EMAIL PROTECTED]> wrote:
> > The ( ) form means something else for package dependencies, and so
> > can't be used for ranged dependencies. In particular:
> >     ( >=foo/bar-3 <foo-bar/4 )
> > will (correctly) be matched if both foo/bar-5 and foo/bar-1 are
> > installed, which can happen due to slots.
> 
> Ok, I revise that for slots then:
> LICENSE="|| ( Eclipse ( LGPL[>=2] !LGPL[>=3] ) )"
> (which is more in line with my description of the license string).
> The !/NEGATION might be inside the [] blocks, since the AND and OR
> operators are.

This gets really messy and hard to define sanely when you consider
things like slot and use dependencies. It also involves a lot of
duplication of package names. You're also breaking the package form

    ( >=foo/bar-2 !>=foo/bar-3 )

which has a different existing meaning (as do all other forms based
around repeating the cat/pkg part inside a block).

Really, the sanest way to do ranged dependencies is by extending the
syntax of individual package / license dep specs, and the postfix
[opver&opver] / [opver|opver] form is the least icky proposal.

-- 
Ciaran McCreesh

Attachment: signature.asc
Description: PGP signature

Reply via email to