summaryrefslogtreecommitdiffstats
path: root/pym/_emerge/depgraph.py
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2011-05-02 12:34:21 -0700
committerZac Medico <zmedico@gentoo.org>2011-05-04 12:53:47 -0700
commit49e33a6336ad909ced1eb53240b5825aa7ae298e (patch)
tree8bbb402d83701188998dcde8342c73f471a62590 /pym/_emerge/depgraph.py
parent5a54ef28e31fc71a18e100d9af97bd30a3c9cab7 (diff)
downloadportage-49e33a6336ad909ced1eb53240b5825aa7ae298e.tar.gz
portage-49e33a6336ad909ced1eb53240b5825aa7ae298e.tar.bz2
portage-49e33a6336ad909ced1eb53240b5825aa7ae298e.zip
depgraph: autounmask account for optional deps
Diffstat (limited to 'pym/_emerge/depgraph.py')
-rw-r--r--pym/_emerge/depgraph.py14
1 files changed, 14 insertions, 0 deletions
diff --git a/pym/_emerge/depgraph.py b/pym/_emerge/depgraph.py
index 5d715a2ea..8750a18e9 100644
--- a/pym/_emerge/depgraph.py
+++ b/pym/_emerge/depgraph.py
@@ -1221,6 +1221,20 @@ class depgraph(object):
def _add_pkg_dep_string(self, pkg, dep_root, dep_priority, dep_string,
allow_unsatisfied, ignore_blockers=False):
+ _autounmask_backup = self._dynamic_config._autounmask
+ if dep_priority.optional:
+ # Temporarily disable autounmask for deps that
+ # don't necessarily need to be satisfied.
+ self._dynamic_config._autounmask = False
+ try:
+ return self._wrapped_add_pkg_dep_string(
+ pkg, dep_root, dep_priority, dep_string,
+ allow_unsatisfied, ignore_blockers=ignore_blockers)
+ finally:
+ self._dynamic_config._autounmask = _autounmask_backup
+
+ def _wrapped_add_pkg_dep_string(self, pkg, dep_root, dep_priority,
+ dep_string, allow_unsatisfied, ignore_blockers=False):
depth = pkg.depth + 1
deep = self._dynamic_config.myparams.get("deep", 0)
recurse_satisfied = deep is True or depth <= deep