From: Zac Medico Date: Wed, 27 Jun 2012 21:55:49 +0000 (-0700) Subject: BacktrackParameter: fix runtime_pkg_mask copy X-Git-Tag: v2.2.0_alpha114~1 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=69ae09d8fce2ed23c4eca7b7af83a3b47626795e;p=portage.git BacktrackParameter: fix runtime_pkg_mask copy This caused the backtracker to bail out too early sometimes. --- 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):