On 12/17/10 18:09, Ciaran McCreesh wrote:
> On Fri, 17 Dec 2010 17:56:21 +0100
> Sebastian Luther <sebastianlut...@gmx.de> wrote:
>>>> Why can't the PM handle >= / < cases itself?
>>>
>>> Because things are almost never as simple as 'just' >= / <. You can
>>> add in clever trickery to deal with very specific cases, but the
>>> second someone throws things off by adding in a use dependency or a
>>> third package, things get weird.
>>
>> I thought we were talking about the simplest case here, that is a list
>> of atoms for the same cat/pkg.
> 
> Here's the problem: if the package mangler gets this right (which
> afaik both Portage and Paludis do):
> 
>     || ( <a-1 >=a-1 )
> 
> you might naively expect it to get these right too:
> 
>     || ( <a-1 ( >=a-1 b ) )
>     || ( <a-1 >a-1[x] ) # where a[-x] is the current user configuration
> 
> which it probably won't, and even if it does, it will get other minor
> variations on these themes wrong.

There are multiple valid solutions. The default heuristic for "right"
seems to be "highest version", but other solutions fulfill the
dependency specification too.

> Part of the problem here is that developers don't seem to know about
> the whole leftmost thing, and the heuristics we've all put in mean they
> can quite often get away with not knowing it.

I'm not sure if I want that enforced, but a suggestion that
left-to-right order may be used by the package manager sounds like a
reasonable idea.

> It also doesn't help that it's not really documented anywhere. It's not
> in the devmanual, it's not in PMS (and it's hard to put it there,
> assuming we're not requiring a particular selection algorithm), and the
> stuff in ebuild(5) for || dependencies is just plain wrong.
> 
Patches Welcome? ;)

Reply via email to