summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2010-03-02 20:38:54 +0000
committerZac Medico <zmedico@gentoo.org>2010-03-02 20:38:54 +0000
commitfd5d4b07fe849c469591f45ac7ad6d8372094a4f (patch)
treea8473853c88daa1b1f74efd6736a1e6669d09780 /pym/_emerge
parentFix deprecated usage of dep_getkey. (trunk r15396) (diff)
downloadportage-multirepo-fd5d4b07fe849c469591f45ac7ad6d8372094a4f.tar.gz
portage-multirepo-fd5d4b07fe849c469591f45ac7ad6d8372094a4f.tar.bz2
portage-multirepo-fd5d4b07fe849c469591f45ac7ad6d8372094a4f.zip
Use isvalidatom to validate PROVIDE entries. (trunk r15397)
svn path=/main/branches/2.1.7/; revision=15619
Diffstat (limited to 'pym/_emerge')
-rw-r--r--pym/_emerge/Package.py10
1 files changed, 8 insertions, 2 deletions
diff --git a/pym/_emerge/Package.py b/pym/_emerge/Package.py
index 4ecc1052..97be8ccf 100644
--- a/pym/_emerge/Package.py
+++ b/pym/_emerge/Package.py
@@ -7,7 +7,7 @@ import sys
from itertools import chain
import portage
from portage.cache.mappings import slot_dict_class
-from portage.dep import paren_reduce, use_reduce, \
+from portage.dep import isvalidatom, paren_reduce, use_reduce, \
paren_normalize, paren_enclose, _slot_re
from _emerge.Task import Task
@@ -289,9 +289,15 @@ class _PackageMetadataWrapper(_PackageMetadataWrapperBase):
getattr(self, "_set_" + k.lower())(k, v)
elif k in self._use_conditional_keys:
try:
- use_reduce(paren_reduce(v), matchall=1)
+ reduced = use_reduce(paren_reduce(v), matchall=1)
except portage.exception.InvalidDependString as e:
self._pkg._invalid_metadata(k + ".syntax", "%s: %s" % (k, e))
+ else:
+ if reduced and k == 'PROVIDE':
+ for x in portage.flatten(reduced):
+ if not isvalidatom(x):
+ self._pkg._invalid_metadata(k + ".syntax",
+ "%s: %s" % (k, x))
def _set_inherited(self, k, v):
if isinstance(v, basestring):