from portage.cache.mappings import slot_dict_class
from portage.dbapi.virtual import fakedbapi
-from portage.dep import use_reduce, paren_enclose
+from portage.dep import Atom, use_reduce, paren_enclose
from portage.exception import InvalidPackageName, \
PermissionDenied, PortageException
from portage.localization import _
for k in self._pkgindex_use_evaluated_keys:
try:
deps = metadata[k]
- deps = use_reduce(deps, uselist=raw_use)
+ deps = use_reduce(deps, uselist=raw_use, token_class=Atom)
deps = paren_enclose(deps)
except portage.exception.InvalidDependString as e:
writemsg("%s: %s\n" % (k, str(e)),
noiselevel=-1)
raise
- if k in _vdb_use_conditional_atoms:
- v_split = []
- for x in deps.split():
- try:
- x = portage.dep.Atom(x)
- except portage.exception.InvalidAtom:
- v_split.append(x)
- else:
- v_split.append(str(x.evaluate_conditionals(raw_use)))
- deps = ' '.join(v_split)
metadata[k] = deps
def exists_specific(self, cpv):
raise portage.exception.InvalidDependString(
_("Invalid token '%s' in '%s', token %s") % (token, depstr, pos+1))
+ if not matchall and \
+ hasattr(token, 'evaluate_conditionals'):
+ token = token.evaluate_conditionals(uselist)
+
stack[level].append(token)
if level != 0:
if repoman:
x = x._eval_qa_conditionals(use_mask, use_force)
- if not repoman and \
- myuse is not None and x.use:
- if x.use.conditional:
- x = x.evaluate_conditionals(myuse)
-
mykey = x.cp
if not mykey.startswith("virtual/"):
newsplit.append(x)
v = mysettings.configdict['pkg'].get(k)
if v is None:
continue
- v = use_reduce(v, uselist=use)
+ v = use_reduce(v, uselist=use, token_class=Atom)
v = paren_enclose(v)
if not v:
continue
- if v in _vdb_use_conditional_atoms:
- v_split = []
- for x in v.split():
- try:
- x = Atom(x)
- except InvalidAtom:
- v_split.append(x)
- else:
- v_split.append(str(x.evaluate_conditionals(use)))
- v = ' '.join(v_split)
codecs.open(_unicode_encode(os.path.join(build_info_dir,
k), encoding=_encodings['fs'], errors='strict'),
mode='w', encoding=_encodings['repo.content'],