From 22b8c653bbb09570b428f7f744a267feb30bf4f1 Mon Sep 17 00:00:00 2001 From: Zac Medico Date: Fri, 22 Jun 2012 23:28:10 -0700 Subject: Slot conflict "abi" backtrack nodes non-terminal. --- pym/_emerge/depgraph.py | 6 +++++- pym/_emerge/resolver/backtracking.py | 2 ++ 2 files changed, 7 insertions(+), 1 deletion(-) 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, -- cgit v1.2.3-1-g7c22