1 |
On Wed, 28 Nov 2007 18:58:07 -0800 |
2 |
"Robin H. Johnson" <robbat2@g.o> wrote: |
3 |
> > The ( ) form means something else for package dependencies, and so |
4 |
> > can't be used for ranged dependencies. In particular: |
5 |
> > ( >=foo/bar-3 <foo-bar/4 ) |
6 |
> > will (correctly) be matched if both foo/bar-5 and foo/bar-1 are |
7 |
> > installed, which can happen due to slots. |
8 |
> |
9 |
> Ok, I revise that for slots then: |
10 |
> LICENSE="|| ( Eclipse ( LGPL[>=2] !LGPL[>=3] ) )" |
11 |
> (which is more in line with my description of the license string). |
12 |
> The !/NEGATION might be inside the [] blocks, since the AND and OR |
13 |
> operators are. |
14 |
|
15 |
This gets really messy and hard to define sanely when you consider |
16 |
things like slot and use dependencies. It also involves a lot of |
17 |
duplication of package names. You're also breaking the package form |
18 |
|
19 |
( >=foo/bar-2 !>=foo/bar-3 ) |
20 |
|
21 |
which has a different existing meaning (as do all other forms based |
22 |
around repeating the cat/pkg part inside a block). |
23 |
|
24 |
Really, the sanest way to do ranged dependencies is by extending the |
25 |
syntax of individual package / license dep specs, and the postfix |
26 |
[opver&opver] / [opver|opver] form is the least icky proposal. |
27 |
|
28 |
-- |
29 |
Ciaran McCreesh |