summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2012-06-22 23:28:10 -0700
committerZac Medico <zmedico@gentoo.org>2012-06-22 23:28:10 -0700
commit22b8c653bbb09570b428f7f744a267feb30bf4f1 (patch)
tree7bea1b10fbc34043606bd4351c1e2aea02f7e3d5
parentd15e3dded958eebdb52c7370e28a62002b70dfe3 (diff)
downloadportage-22b8c653bbb09570b428f7f744a267feb30bf4f1.tar.gz
portage-22b8c653bbb09570b428f7f744a267feb30bf4f1.tar.bz2
portage-22b8c653bbb09570b428f7f744a267feb30bf4f1.zip
Slot conflict "abi" backtrack nodes non-terminal.
-rw-r--r--pym/_emerge/depgraph.py6
-rw-r--r--pym/_emerge/resolver/backtracking.py2
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,