summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2012-06-27 14:55:49 -0700
committerZac Medico <zmedico@gentoo.org>2012-06-27 14:55:49 -0700
commit69ae09d8fce2ed23c4eca7b7af83a3b47626795e (patch)
tree37c8475d7ecb8e04ad7b4ad89144d084ffd9ace6
parentbb112d9e0e0e9fb60cbe713887ab88454d5943fe (diff)
downloadportage-69ae09d8fce2ed23c4eca7b7af83a3b47626795e.tar.gz
portage-69ae09d8fce2ed23c4eca7b7af83a3b47626795e.tar.bz2
portage-69ae09d8fce2ed23c4eca7b7af83a3b47626795e.zip
BacktrackParameter: fix runtime_pkg_mask copy
This caused the backtracker to bail out too early sometimes.
-rw-r--r--pym/_emerge/resolver/backtracking.py6
1 files changed, 5 insertions, 1 deletions
diff --git a/pym/_emerge/resolver/backtracking.py b/pym/_emerge/resolver/backtracking.py
index 00a07bcb6..d8f49c679 100644
--- a/pym/_emerge/resolver/backtracking.py
+++ b/pym/_emerge/resolver/backtracking.py
@@ -31,13 +31,17 @@ class BacktrackParameter(object):
#to our sets and dicts. The existing content is immutable.
result.needed_unstable_keywords = copy.copy(self.needed_unstable_keywords)
result.needed_p_mask_changes = copy.copy(self.needed_p_mask_changes)
- 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)
result.slot_abi_replace_installed = copy.copy(self.slot_abi_replace_installed)
+ # runtime_pkg_mask contains nested dicts that must also be copied
+ result.runtime_pkg_mask = {}
+ for k, v in self.runtime_pkg_mask.items():
+ result.runtime_pkg_mask[k] = copy.copy(v)
+
return result
def __eq__(self, other):