James <wirel...@tampabay.rr.com> wrote:
>
> Basically from my point of view, something like TUP [1] is needed so
> that at dependency check time you only list files that need
> attention (linking, loading, compiling etc) thus speeding up the
> update processes for the Package Manager (portage).

This is a misunderstanding (originally already from Michael).
The issue is not at all about speed of portage - reading one or
the other file takes the same amount of time.
(And having a dependency graph of files would help concerning
speed only in the very rare situation that no file involving
your current package dependency tree does change.)

The whole issue is only about the policy: If the dependency
information of the installed package and of the current
package differs - what is the "correct" information?

For each choice, it is possible to give examples where
the policy leads to a bad situation, so both,
static deps as well as dynamic deps can break in
certain situations. It is only a question which breakage
you consider more severe and/or harder to recognize/fix
by the user.

Making more revbumps will increase the chance of
no breakage - in case of static deps only for users
who sync and update sufficiently frequently -
of course at the cost of redundant recompiles.

>> I guess at some point there were a bunch of devs who were messing with
>> dependencies and not bothering to make revision bumps. This can cause
>> users pain, so portage added a new option to ignore the cache and rescan
>> every single relevant ebuild/eclass for sneaky dependency changes. This
>> ensures that portage has the correct dependencies in its head while it's
>> doing resolution, but is much slower.

This is historically not correct. Dynamic deps had always been
the only way portage treated dependencies - static deps have only
been used as a fallback and (unfortunately) with the introduction
of subslots.
Once more: It is not about speed, but about: What *are* the
"correct" dependencies? The ones referring to an historical tree
which - especially if you did not update for a long time -
might have almost nothing in common with the current tree
(static deps), or the ones referring to current tree
(dynamic deps)?

With static deps, you will have a strange mixture of historical
dependencies and current ones for the updates.
With dynamic deps, the tree might not be appropriate for your
installed packages.

> There is no proper mechanism to accurately track all of these issue,
> currently, or did I miss this point?

There is no way to automatically decide correctly which of
two differing informations should be used...


Reply via email to