From bb029be2924288029bd5fa4a7ddd1222ea448913 Mon Sep 17 00:00:00 2001 From: Zac Medico Date: Fri, 19 Feb 2010 20:56:55 +0000 Subject: Use isvalidatom to validate PROVIDE entries. svn path=/main/trunk/; revision=15397 --- pym/_emerge/Package.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/pym/_emerge/Package.py b/pym/_emerge/Package.py index 4ecc1052e..97be8ccf2 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): -- cgit v1.2.3-1-g7c22