diff options
Diffstat (limited to 'pym/_emerge/resolver')
-rw-r--r-- | pym/_emerge/resolver/backtracking.py | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/pym/_emerge/resolver/backtracking.py b/pym/_emerge/resolver/backtracking.py index 1ffada96f..f00e6ca19 100644 --- a/pym/_emerge/resolver/backtracking.py +++ b/pym/_emerge/resolver/backtracking.py @@ -7,6 +7,7 @@ class BacktrackParameter(object): __slots__ = ( "needed_unstable_keywords", "runtime_pkg_mask", "needed_use_config_changes", "needed_license_changes", + "rebuild_list", "reinstall_list" ) def __init__(self): @@ -14,6 +15,8 @@ class BacktrackParameter(object): self.runtime_pkg_mask = {} self.needed_use_config_changes = {} self.needed_license_changes = {} + self.rebuild_list = set() + self.reinstall_list = set() def __deepcopy__(self, memo=None): if memo is None: @@ -27,6 +30,8 @@ class BacktrackParameter(object): result.runtime_pkg_mask = copy.copy(self.runtime_pkg_mask) result.needed_use_config_changes = copy.copy(self.needed_use_config_changes) result.needed_license_changes = copy.copy(self.needed_license_changes) + result.rebuild_list = copy.copy(self.rebuild_list) + result.reinstall_list = copy.copy(self.reinstall_list) return result @@ -34,7 +39,9 @@ class BacktrackParameter(object): return self.needed_unstable_keywords == other.needed_unstable_keywords and \ self.runtime_pkg_mask == other.runtime_pkg_mask and \ self.needed_use_config_changes == other.needed_use_config_changes and \ - self.needed_license_changes == other.needed_license_changes + self.needed_license_changes == other.needed_license_changes and \ + self.rebuild_list == other.rebuild_list and \ + self.reinstall_list == other.reinstall_list class _BacktrackNode: @@ -137,6 +144,10 @@ class Backtracker(object): elif change == "needed_use_config_changes": for pkg, (new_use, new_changes) in data: para.needed_use_config_changes[pkg] = (new_use, new_changes) + elif change == "rebuild_list": + para.rebuild_list.update(data) + elif change == "reinstall_list": + para.reinstall_list.update(data) self._add(new_node, explore=explore) self._current_node = new_node |