On 2007/10/23, Marius Mauch <[EMAIL PROTECTED]> wrote:

> On Mon, 22 Oct 2007 21:29:02 -0700
> Zac Medico <[EMAIL PROTECTED]> wrote:
> 
> > Well, you can already use SLOT atoms in your world file if you don't
> > want the highest available. Packages that pull in >=foo are a
> > different story though. I suppose we can add something like a
> > - --upgrade=minimal option that prevents pulling in new slots if
> > they aren't required.
> 
> Don't restrict it to SLOTs though. "minimal" implies that only
> upgrades required to satisfy the depgraph are performed. 

Couldn't this "minimal" behavior just be triggered by lack of the
--upgrade option ("emerge -D <set>")?

Actually, the current --upgrade behavior (with or without --deep)
is a bit weird imho, i would prefer something like this (with foo 
being either a set or an atom):

 * "emerge foo": do the minimum upgrades or new installs required to
get foo satisfied.  Only its direct deps are checked (and direct
deps of the unsatisfied ones, etc.), with the "minimal" heuristic
(upgrade them only if stricly required).

 * "emerge -u foo": do all required new installs and possible upgrades
of foo.  Only its direct deps are checked (and direct deps of the
unsatisfied ones, etc.), with the "minimal" heuristic (upgrade them only
if strictly needed).

 * "emerge -D foo": do the minimal upgrades or new installs required to
get foo satisfied.  Also, check all of its direct and indirect deps,
with the "minimal" heuristic (upgrade only if strictly needed).

 * "emerge -uD foo": do all required new installs and possible upgrades
of foo.  Also, all its direct and indirect deps are checked, and
upgraded where possible.


For those who wonder, and if i'm not mistaken, current behaviors of
this four combinations, expressed in those words, are:

 * "emerge foo": do all required new installs and possible upgrades
of foo.  Only its direct deps are checked (and direct deps of the
unsatisfied ones, etc.), with the "minimal" heuristic (upgrade them 
only if strictly needed).  
  => same as my "emerge -u foo"

 * "emerge -u foo": do all required new installs and possible upgrades
of foo and its direct deps.  Also, check all of their direct and
indirect deps, with the "minimal" heuristic (upgrade them only if
strictly needed).
  => i don't see usefulness of this special case.  Whether some code is
direct or indirect dep is often subject to some maintainer's choices,
and may vary with time (for instance, an internal lib of a big package
being splitted out as a separate dep of this package).

 * "emerge -D foo" and "emerge -uD foo" : do all required new installs
and possible upgrades of foo.  Also, all its direct and indirect deps
are checked, and upgraded where possible.
 => same as my "emerge -uD foo".  But waste of one of the four options
combinations.


-- 
TGL.
-- 
[EMAIL PROTECTED] mailing list

Reply via email to