On Tue, 23 Oct 2007 21:11:48 +0200
Thomas de Grenier de Latour <[EMAIL PROTECTED]> wrote:

> 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>")?

--upgrade != the current --update (at least that's what I assumed)

> 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):

Yes, --update has a history of being a mess of random behavior.
Personally I'd drop it completely, or alias it to --noreplace.

>  * "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.
 
Maybe --upgrade as name was an unfortunate choice, --resolver might be
better. What I'd like ideally (as a user) is to replace --update,
--deep, --noreplace and --emptytree with the following options:

--resolver={minimal,noslotchange,leastchange,default}
minimal: select the lowest possible version
noslotchange: like default, but try to avoid slotchanges
leastchange: select the version with the smallest version delta
compared to the installed version, otherwise like default
default: current behavior

--rebuild={never,always,changeduse,newuse,changeddeps,selected}
never: never rebuild packages
always: always rebuild packages (like current --emtpytree)
changeduse: rebuild packages if $USE has changed
newuse: rebuild packages if $USE or $IUSE has changed
changeddeps: rebuild packages if any of its direct dependencies were
updated
selected: rebuild the selected arguments (root nodes)

--deplevel=<n>
check n level of dependencies for updates (with -1 == infinite)
of course all dependencies have to be satisfied, this controls only
what deps should be checked for optional updates

current defaults would be --resolver=default --rebuild=selected
--deplevel=0

--update would be --rebuild=never --deplevel=1
--deep would be --deplevel=-1
--emptytree would be --rebuild=always --deplevel=-1

But that's just me dreaming of a better world, where we don't have
to deal with legacies ;)

Marius

-- 
Public Key at http://www.genone.de/info/gpg-key.pub

In the beginning, there was nothing. And God said, 'Let there be
Light.' And there was still nothing, but you could see a bit better.

Attachment: signature.asc
Description: PGP signature

Reply via email to