Michael Orlitzky <[email protected]> wrote:
>
> With dynamic deps, portage will scan (that is, execute) all of the
> ebuilds for installed packages that could affect the dependency graph.
This is not correct. This data is already stored in metadata/
(or in /var/cache/edb, depending on the backend),
and just has to be read from there instead of /var/db
The difference between dynamic deps and static deps is
that in the latter case always the information from
/var/db is used, while in the former case the (usually more
up-to-date) version from metadata/ is preferred if it is available.
> Buuuuuuutttttt dynamic-deps mode doesn't always kick in. It interacts
> weirdly with subslots and other things.
That's the real problem: When an automatic (":=") subslot is
involved, portage did not check metadata/ but always took /var/db.
So it was necessary to either fix this inconsistent behaviour
of portage (which would not have been easy though possible),
or to switch to static deps completely which requires a
change of the dump policy.
Both approaches have advantages and disadvantages and
lead to different types of breakage in different situations -
see the lengthy and partly emotional discussion on the developers
list some years ago; I am not going to repeat the arguments.
The developers deciceded to go the way which is simplest for
them but perhaps less convenient for the user: For the user,
it means that in the future he has to rebuild *a lot* of packages
much more often than previously, for no other benefit than
updating /var/db (which would obviously not be necessary
at all for dynamic deps).