diff options
author | 2012-06-22 23:28:10 -0700 | |
---|---|---|
committer | 2012-06-22 23:28:10 -0700 | |
commit | 22b8c653bbb09570b428f7f744a267feb30bf4f1 (patch) | |
tree | 7bea1b10fbc34043606bd4351c1e2aea02f7e3d5 | |
parent | slot_abi_mask_built: don't discard other masks (diff) | |
download | portage-22b8c653bbb09570b428f7f744a267feb30bf4f1.tar.gz portage-22b8c653bbb09570b428f7f744a267feb30bf4f1.tar.bz2 portage-22b8c653bbb09570b428f7f744a267feb30bf4f1.zip |
Slot conflict "abi" backtrack nodes non-terminal.
-rw-r--r-- | pym/_emerge/depgraph.py | 6 | ||||
-rw-r--r-- | pym/_emerge/resolver/backtracking.py | 2 |
2 files changed, 7 insertions, 1 deletions
diff --git a/pym/_emerge/depgraph.py b/pym/_emerge/depgraph.py index 75e3500de..07d30e64e 100644 --- a/pym/_emerge/depgraph.py +++ b/pym/_emerge/depgraph.py @@ -881,8 +881,12 @@ class depgraph(object): not self._accept_blocker_conflicts(): remaining = [] for pkg in conflict_pkgs: - if not self._slot_conflict_backtrack_abi(pkg, + if self._slot_conflict_backtrack_abi(pkg, slot_nodes, conflict_atoms): + backtrack_infos = self._dynamic_config._backtrack_infos + config = backtrack_infos.setdefault("config", {}) + config.setdefault("slot_conflict_abi", set()).add(pkg) + else: remaining.append(pkg) if remaining: self._slot_confict_backtrack(root, slot_atom, diff --git a/pym/_emerge/resolver/backtracking.py b/pym/_emerge/resolver/backtracking.py index f39bad413..00a07bcb6 100644 --- a/pym/_emerge/resolver/backtracking.py +++ b/pym/_emerge/resolver/backtracking.py @@ -186,6 +186,8 @@ 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 == "slot_conflict_abi": + new_node.terminal = False elif change == "slot_abi_mask_built": for pkg, mask_reasons in data.items(): para.runtime_pkg_mask.setdefault(pkg, |