Idézet Henning Garus <henning.ga...@googlemail.com>:
Don't use packages which are updated during the current transaction as
dependency providers, when computing needed dependencies in resolvedeps.
This could lead to new dependencies not being pulled in, in situations
like:
foo-1 provides bar
baz depends on bar
foo-2 does not provide bar anymore
baz still depends on bar
bar is not pulled in because foo-1 is used to satisfy the dependency
Signed-off-by: Henning Garus <henning.ga...@gmail.com>
---
This should fix the "phonon bug". I am not entirely happy with this,
because I more or less copy the local db (once more) on every call to
resolvedeps. Alternatively one could create a joined list from remove
and trans->add and give it to checkdeps as remove parameter. This would
do what we want (exclude packages which will be upgraded from the list
used to compute already satisfied dependencies in checkdeps), but it
feels wrong.
I start with a sidenote: We have an alpm_list_diff function for
simplifying the required list operation.
I am not completely satisfied with this solution. It can happen that
qt is not an explicit target, and it will be pulled *later*, which can
break an earlier satisfied phonon dependency. However, a "nice" fix
for this "pulled qt case" is much more difficult.
That's why I prefer a somewhat uglier solution: Since this issue
haven't showed up until recently, we can agree that this is a rare
issue. That's why I would not touch (slow down) resolvedeps code, but
I would insert _after_ resolvedeps a loop like this (pseudo-code):
while(checkdeps(targets)) {resolve_deps(missing_deps)};
Pros:
-In the normal (usual) cases we have zero slowdown. (Even in the
problematic cases, it is unlikely that more than 2 checkdeps is needed.)
-This can handle the pulled qt case.
Contras:
-Uglier code than yours.
-If we reaches the "resolve_deps(missing_deps)" part, we must turn off
remove_unresolvable.
I haven't figured out every details yet (and I may overlook something
here), but I will propose a patch for this at the weeked.
Bye
------------------------------------------------------
SZTE Egyetemi Konyvtar - http://www.bibl.u-szeged.hu
This message was sent using IMP: http://horde.org/imp/