summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--pym/portage/dep/__init__.py16
1 files changed, 14 insertions, 2 deletions
diff --git a/pym/portage/dep/__init__.py b/pym/portage/dep/__init__.py
index 9a3667136..a2dbbe9d0 100644
--- a/pym/portage/dep/__init__.py
+++ b/pym/portage/dep/__init__.py
@@ -1493,8 +1493,20 @@ def _check_required_use(constraints, use, iuse):
unsat.append([constraint, constraints[id+1]])
else:
#a simple use flag i.e. A or !A
- if (constraint[0] == "!" and constraint[1:] not in use) or \
- (constraint[0] != "!" and constraint in use):
+ if constraint[0] == "!":
+ flag = constraint[1:]
+ not_operator = True
+ else:
+ flag = constraint
+ not_operator = False
+
+ if not flag in iuse:
+ raise portage.exception.InvalidRequiredUseString(
+ ("check_required_use(): '%s' contains the use flag '%s', which" + \
+ " is not in IUSE") % (constraints, flag))
+
+ if (not_operator and flag not in use) or \
+ (not not_operator and constraint in use):
sat.append([constraint])
else:
unsat.append([constraint])