[entropy.client.interfaces.dep] fix dependency calculation when ASAP scheduling is enabled (default)

internal levels dict must be reinitialized every time deptree object
is actually modified. At the same time, when making room on a certain
deptree key (moving the entries to another key), make sure to always
drop the dep item that is going to be written back.

"equo install --empty --pretend lighttpd" triggered the issue.
Thanks to micia for reporting.
This commit is contained in:
Fabio Erculiani
2011-11-24 16:09:30 +01:00
parent 563cf65ed6
commit fd96d36a71

View File

@@ -1593,9 +1593,14 @@ class CalculatorsMixin:
# rewrite
deptree[level] = tuple((x for x in deptree[level] \
if x != post_dep))
deptree[stick_level] = tuple((x for x in \
deptree[stick_level] if x != post_dep))
if deptree[stick_level]:
_make_room(stick_level)
deptree[stick_level] = (post_dep,)
_setup_levels()
def _get_required_packages(self, package_matches, empty_deps = False,
deep_deps = False, relaxed_deps = False, build_deps = False,