summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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"]