diff options
-rw-r--r-- | pym/portage/dbapi/bintree.py | 8 | ||||
-rw-r--r-- | pym/portage/getbinpkg.py | 4 |
2 files changed, 11 insertions, 1 deletions
diff --git a/pym/portage/dbapi/bintree.py b/pym/portage/dbapi/bintree.py index c2218cd09..e62bfee15 100644 --- a/pym/portage/dbapi/bintree.py +++ b/pym/portage/dbapi/bintree.py @@ -26,7 +26,7 @@ class bindbapi(fakedbapi): self.cpdict={} # Selectively cache metadata in order to optimize dep matching. self._aux_cache_keys = set( - ["CHOST", "EAPI", "KEYWORDS", "LICENSE", "SLOT", "USE"]) + ["CHOST", "EAPI", "IUSE", "KEYWORDS", "LICENSE", "SLOT", "USE"]) self._aux_cache = {} def match(self, *pargs, **kwargs): @@ -502,6 +502,12 @@ class binarytree(object): d.update(izip(aux_keys, self.dbapi.aux_get(mycpv, aux_keys))) + use = d["USE"].split() + iuse = set(d["IUSE"].split()) + use = [f for f in use if f in iuse] + use.sort() + d["USE"] = " ".join(use) + # record location if it's non-default if mypath != mycpv + ".tbz2": d["PATH"] = mypath diff --git a/pym/portage/getbinpkg.py b/pym/portage/getbinpkg.py index 977693c6d..61042fde7 100644 --- a/pym/portage/getbinpkg.py +++ b/pym/portage/getbinpkg.py @@ -686,7 +686,9 @@ class PackageIndex(object): if not mycpv: continue d.setdefault("EAPI", "0") + d.setdefault("IUSE", "") d.setdefault("SLOT", "0") + d.setdefault("USE", "") if header_chost: d.setdefault("CHOST", header_chost) self.packages[mycpv] = d @@ -707,6 +709,8 @@ class PackageIndex(object): del metadata["CHOST"] if metadata.get("EAPI") == "0": del metadata["EAPI"] + if metadata.get("IUSE") == "": + del metadata["IUSE"] if metadata.get("SLOT") == "0": del metadata["SLOT"] if metadata.get("USE") == "": |