summaryrefslogtreecommitdiffstats
path: root/pym/_emerge/resolver
diff options
context:
space:
mode:
authorSebastian Luther <SebastianLuther@gmx.de>2011-05-15 12:03:20 -0700
committerZac Medico <zmedico@gentoo.org>2011-05-15 12:03:20 -0700
commit0c71b9c673d6a96d62e0f1a037d70b3e9ea8339d (patch)
treea0b7e4f34361a60f64f3720e060fd889e759606f /pym/_emerge/resolver
parentc492b1b3ed631b6802ef1192f59d2ef93967fb0a (diff)
downloadportage-0c71b9c673d6a96d62e0f1a037d70b3e9ea8339d.tar.gz
portage-0c71b9c673d6a96d62e0f1a037d70b3e9ea8339d.tar.bz2
portage-0c71b9c673d6a96d62e0f1a037d70b3e9ea8339d.zip
--autounmask: Allow package.mask changes
Diffstat (limited to 'pym/_emerge/resolver')
-rw-r--r--pym/_emerge/resolver/backtracking.py7
1 files changed, 6 insertions, 1 deletions
diff --git a/pym/_emerge/resolver/backtracking.py b/pym/_emerge/resolver/backtracking.py
index 3c40bd8df..dcdaee0cb 100644
--- a/pym/_emerge/resolver/backtracking.py
+++ b/pym/_emerge/resolver/backtracking.py
@@ -7,11 +7,12 @@ class BacktrackParameter(object):
__slots__ = (
"needed_unstable_keywords", "runtime_pkg_mask", "needed_use_config_changes", "needed_license_changes",
- "rebuild_list", "reinstall_list"
+ "rebuild_list", "reinstall_list", "needed_p_mask_changes"
)
def __init__(self):
self.needed_unstable_keywords = set()
+ self.needed_p_mask_changes = set()
self.runtime_pkg_mask = {}
self.needed_use_config_changes = {}
self.needed_license_changes = {}
@@ -27,6 +28,7 @@ class BacktrackParameter(object):
#Shallow copies are enough here, as we only need to ensure that nobody adds stuff
#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)
@@ -37,6 +39,7 @@ class BacktrackParameter(object):
def __eq__(self, other):
return self.needed_unstable_keywords == other.needed_unstable_keywords and \
+ self.needed_p_mask_changes == other.needed_p_mask_changes and \
self.runtime_pkg_mask == other.runtime_pkg_mask and \
self.needed_use_config_changes == other.needed_use_config_changes and \
self.needed_license_changes == other.needed_license_changes and \
@@ -138,6 +141,8 @@ class Backtracker(object):
for change, data in changes.items():
if change == "needed_unstable_keywords":
para.needed_unstable_keywords.update(data)
+ elif change == "needed_p_mask_changes":
+ para.needed_p_mask_changes.update(data)
elif change == "needed_license_changes":
for pkg, missing_licenses in data:
para.needed_license_changes.setdefault(pkg, set()).update(missing_licenses)