summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xbin/repoman2
-rw-r--r--pym/portage/dbapi/porttree.py14
2 files changed, 5 insertions, 11 deletions
diff --git a/bin/repoman b/bin/repoman
index 85c9c1785..184c5ef2c 100755
--- a/bin/repoman
+++ b/bin/repoman
@@ -627,7 +627,7 @@ root_config = RootConfig(repoman_settings, trees[root], None)
# We really only need to cache the metadata that's necessary for visibility
# filtering. Anything else can be discarded to reduce memory consumption.
portdb._aux_cache_keys.clear()
-portdb._aux_cache_keys.update(["EAPI", "KEYWORDS", "SLOT"])
+portdb._aux_cache_keys.update(["EAPI", "IUSE", "KEYWORDS", "SLOT"])
reposplit = myreporoot.split(os.path.sep)
repolevel = len(reposplit)
diff --git a/pym/portage/dbapi/porttree.py b/pym/portage/dbapi/porttree.py
index 42e5ca168..782cecccc 100644
--- a/pym/portage/dbapi/porttree.py
+++ b/pym/portage/dbapi/porttree.py
@@ -957,16 +957,10 @@ class portdbapi(dbapi):
mydep.slot != metadata["SLOT"]:
continue
- if mydep.use is not None:
- mydep_with_repo = mydep
- if repo is not None and mydep.repo is None:
- mydep_with_repo = mydep.with_repo(repo)
- has_iuse = False
- for has_iuse in self._iter_match_use(
- mydep_with_repo, [cpv]):
- break
- if has_iuse is False:
- continue
+ if mydep.unevaluated_atom.use is not None and \
+ not self._match_use(mydep, cpv, metadata):
+ continue
+
myval = cpv
break
if myval: