From: Zac Medico Date: Tue, 2 Mar 2010 20:16:52 +0000 (-0000) Subject: Evaluate conditional USE deps for *DEPEND atoms saved in vdb entries. X-Git-Tag: v2.1.8~144 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=0ee401910b579d1c0a7ac4849fa0a8632baa1e68;p=portage.git Evaluate conditional USE deps for *DEPEND atoms saved in vdb entries. (trunk r15351) svn path=/main/branches/2.1.7/; revision=15578 --- diff --git a/pym/portage/__init__.py b/pym/portage/__init__.py index 8d215ae75..32a7902d3 100644 --- a/pym/portage/__init__.py +++ b/pym/portage/__init__.py @@ -5872,6 +5872,7 @@ def _post_src_install_chost_fix(settings): _vdb_use_conditional_keys = ('DEPEND', 'LICENSE', 'PDEPEND', 'PROPERTIES', 'PROVIDE', 'RDEPEND', 'RESTRICT',) +_vdb_use_conditional_atoms = frozenset(['DEPEND', 'PDEPEND', 'RDEPEND']) def _post_src_install_uid_fix(mysettings, out=None): """ @@ -5994,6 +5995,16 @@ def _post_src_install_uid_fix(mysettings, out=None): v = dep.paren_enclose(v) if not v: continue + if v in _vdb_use_conditional_atoms: + v_split = [] + for x in v.split(): + try: + x = dep.Atom(x) + except exception.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'], diff --git a/pym/portage/dbapi/bintree.py b/pym/portage/dbapi/bintree.py index e07f58a47..ecc8424c0 100644 --- a/pym/portage/dbapi/bintree.py +++ b/pym/portage/dbapi/bintree.py @@ -1049,6 +1049,16 @@ class binarytree(object): writemsg("%s: %s\n" % (k, str(e)), noiselevel=-1) raise + if k in portage._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):