diff --git a/lib/_emerge/depgraph.py b/lib/_emerge/depgraph.py index 1a5448c8f..3816a8b6e 100644 --- a/lib/_emerge/depgraph.py +++ b/lib/_emerge/depgraph.py @@ -3861,10 +3861,12 @@ class depgraph(object): necessary. """ disjunctions = [] + disjunctions_appended = False for x in dep_struct: if isinstance(x, list): if x and x[0] == "||": disjunctions.append(x) + disjunctions_appended = True else: for y in self._queue_disjunctive_deps( pkg, dep_root, dep_priority, x): @@ -3874,6 +3876,10 @@ class depgraph(object): # or whatever other metadata gets implemented for this # purpose. if x.cp.startswith('virtual/'): + if disjunctions_appended: + self._queue_disjunction( + pkg, dep_root, dep_priority, disjunctions) + disjunctions = [] disjunctions.append(x) else: yield x