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
signature.asc
Description: PGP signature
