From 69ae09d8fce2ed23c4eca7b7af83a3b47626795e Mon Sep 17 00:00:00 2001 From: Zac Medico Date: Wed, 27 Jun 2012 14:55:49 -0700 Subject: [PATCH] BacktrackParameter: fix runtime_pkg_mask copy This caused the backtracker to bail out too early sometimes. --- pym/_emerge/resolver/backtracking.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) 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): -- 2.26.2