aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2011-06-21 01:14:47 -0700
committerZac Medico <zmedico@gentoo.org>2011-06-21 01:14:47 -0700
commita7a196924c936b51a2aac4f3536bf056c518c270 (patch)
tree352af4e0a1792c7010b824bbada2f17158ba30a7
parentextract_affecting_use: less strict for installed (diff)
downloadportage-a7a196924c936b51a2aac4f3536bf056c518c270.tar.gz
portage-a7a196924c936b51a2aac4f3536bf056c518c270.tar.bz2
portage-a7a196924c936b51a2aac4f3536bf056c518c270.zip
use_reduce: less strict for installed
-rw-r--r--pym/_emerge/resolver/circular_dependency.py14
1 files changed, 10 insertions, 4 deletions
diff --git a/pym/_emerge/resolver/circular_dependency.py b/pym/_emerge/resolver/circular_dependency.py
index aabc174f2..17898012e 100644
--- a/pym/_emerge/resolver/circular_dependency.py
+++ b/pym/_emerge/resolver/circular_dependency.py
@@ -174,10 +174,16 @@ class circular_dependency_handler(object):
current_use.add(flag)
else:
current_use.discard(flag)
- reduced_dep = use_reduce(dep,
- uselist=current_use, flat=True)
-
- if parent_atom not in reduced_dep:
+ try:
+ reduced_dep = use_reduce(dep,
+ uselist=current_use, flat=True)
+ except InvalidDependString:
+ if not parent.installed:
+ raise
+ reduced_dep = None
+
+ if reduced_dep is not None and \
+ parent_atom not in reduced_dep:
#We found an assignment that removes the atom from 'dep'.
#Make sure it doesn't conflict with REQUIRED_USE.
required_use = parent.metadata["REQUIRED_USE"]