From 5f9dedaa14bbb704e055f2fa616821b79f9c6914 Mon Sep 17 00:00:00 2001 From: Zac Medico Date: Mon, 2 May 2011 12:34:21 -0700 Subject: depgraph: autounmask account for optional deps --- pym/_emerge/depgraph.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'pym') diff --git a/pym/_emerge/depgraph.py b/pym/_emerge/depgraph.py index 5183b27f6..dd1b5e843 100644 --- a/pym/_emerge/depgraph.py +++ b/pym/_emerge/depgraph.py @@ -1375,6 +1375,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 or dep_priority.ignored: + # 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 -- cgit v1.2.3-1-g7c22