diff options
-rw-r--r-- | pym/_emerge/resolver/circular_dependency.py | 14 |
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"] |