1 |
On 12/17/10 18:09, Ciaran McCreesh wrote: |
2 |
> On Fri, 17 Dec 2010 17:56:21 +0100 |
3 |
> Sebastian Luther <SebastianLuther@×××.de> wrote: |
4 |
>>>> Why can't the PM handle >= / < cases itself? |
5 |
>>> |
6 |
>>> Because things are almost never as simple as 'just' >= / <. You can |
7 |
>>> add in clever trickery to deal with very specific cases, but the |
8 |
>>> second someone throws things off by adding in a use dependency or a |
9 |
>>> third package, things get weird. |
10 |
>> |
11 |
>> I thought we were talking about the simplest case here, that is a list |
12 |
>> of atoms for the same cat/pkg. |
13 |
> |
14 |
> Here's the problem: if the package mangler gets this right (which |
15 |
> afaik both Portage and Paludis do): |
16 |
> |
17 |
> || ( <a-1 >=a-1 ) |
18 |
> |
19 |
> you might naively expect it to get these right too: |
20 |
> |
21 |
> || ( <a-1 ( >=a-1 b ) ) |
22 |
> || ( <a-1 >a-1[x] ) # where a[-x] is the current user configuration |
23 |
> |
24 |
> which it probably won't, and even if it does, it will get other minor |
25 |
> variations on these themes wrong. |
26 |
|
27 |
There are multiple valid solutions. The default heuristic for "right" |
28 |
seems to be "highest version", but other solutions fulfill the |
29 |
dependency specification too. |
30 |
|
31 |
> Part of the problem here is that developers don't seem to know about |
32 |
> the whole leftmost thing, and the heuristics we've all put in mean they |
33 |
> can quite often get away with not knowing it. |
34 |
|
35 |
I'm not sure if I want that enforced, but a suggestion that |
36 |
left-to-right order may be used by the package manager sounds like a |
37 |
reasonable idea. |
38 |
|
39 |
> It also doesn't help that it's not really documented anywhere. It's not |
40 |
> in the devmanual, it's not in PMS (and it's hard to put it there, |
41 |
> assuming we're not requiring a particular selection algorithm), and the |
42 |
> stuff in ebuild(5) for || dependencies is just plain wrong. |
43 |
> |
44 |
Patches Welcome? ;) |