On Mon, Dec 26, 2005 at 09:09:31PM +0100, Carsten Lohrke wrote:
> On Saturday 24 December 2005 02:04, Brian Harring wrote:
> > dev-lang/python[tcltk]
> > ^^^ need that atom resolved with use flag tcltk enabled
> 
> I think that's exactly what someone told me months ago. :)
> 
> > >=sys-apps/portage-2.0[sandbox,!build]
> >
> > ^^^ need >=portage-2.0 merged with sandbox on, build off.
> 
> I wonder if portage deals fine with subtle dependency incompatibilities, when 
> one package has foo[!bar] and another one foo[bar] as dependency and spits 
> out a reasonable error message to apply mutual blockers.

Actually, you just hit upon one of the main reasons use/slot deps 
have taken so damn long.

Jason can state it better, but our resolver basically chooses a single 
path when doing the resolution; if that resolution turns out to be an 
issue during later resolution steps, existing resolver doesn't back 
track and choose a different (valid) path. 

Note the up/down cycling bugs.  Guess how that comes about?

use/slot deps is a combination of depset extension (plus any code that 
deals with depset), and resolver extension so it handles the extension 
of depset properly- namely, getting issues from above handled, trying 
to dig it's way out of use cycles that aren't hard deps, etc.

So... basically, your concern is with the resolver, not use/slot deps 
syntax.


> > kde-libs/kde:3
> > ^^^ need any kde, with slotting enabled.
> >
> > kde-libs/kde:3,4
> > ^^^ need any kde, slotting 3 or 4.
> >
> > Combination?  Not set in stone afaik, the implementation I have
> > sitting in saviour doesn't care about the ordering however.
> 
> This is the one I'm entirely not sure what it is good for. To me it looks 
> more 
> like a workaround for missing dependency ranges, but it won't solve any issue 
> for KDE related packages. 

What are dep ranges?  It's the intersection of any version set's 
specified by common cat/pkgs.  In other words, instead of just 
processing atom by atom, grab the depends, collapse them down into 
cp->version restrictions, _then_ do the search.  The issue you're 
pointing at isn't use/slot dep based, it's resolver based (again). ;)


> - The dependencies we have are always >=kde-libs/kde-x.y and when KDE 4 is 
> due, we can change to =kde-libs/kde-3.5* because everything else won't be 
> supported anymore. So unless I miss something, kde-libs/kde:X is superfluous.

Missing something /me thinks.
shouldn't really be specifying >=kde-x.y; should be specifying the 
slotting.  Do that, and you wouldn't have to go back and change it 
over to =kde-libs/kde-3.5* ; you just mark the new kde-4 as a 
different slot.

Basically... it's how it *should* be done from the get go, rather then 
going back and fixing things via tweaking the scary eclass y'all have. :)


> As a general remark I'd like to know if and how this enhanced dependency 
> syntax is ordered. :[], []: or is both allowed!? What if we find out, that we 
> need to consider another factor, later? :[]<>?

Like I stated in a previous email, the ordering isn't specified- right 
now we can split upon [] matches to handle it regardless of ordering, 
although I'd think some form of ordering would be wise...

~harring

Attachment: pgpQWMlk6YWcl.pgp
Description: PGP signature

Reply via email to