| Index: pym/_emerge/resolver/backtracking.py
|
| diff --git a/pym/_emerge/resolver/backtracking.py b/pym/_emerge/resolver/backtracking.py
|
| index 1ffada96f18fb647253e1377d35a131a8683ffc0..f00e6ca194aeab9e1df8e5368562e266a9209728 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
|
|
|