]
missingvars=["KEYWORDS","LICENSE","DESCRIPTION","HOMEPAGE","SLOT"]
-allvars = set(portage.auxdbkeys)
+allvars = set(x for x in portage.auxdbkeys if not x.startswith("UNUSED_"))
+allvars.discard("CDEPEND")
allvars.update(Package.metadata_keys)
allvars = sorted(allvars)
commitmessage=None
"""
Detect metadata updates and synchronize Package attributes.
"""
- _keys = Package.metadata_keys
+ _keys = set(x for x in portage.auxdbkeys \
+ if not x.startswith("UNUSED_"))
+ _keys.discard("CDEPEND")
+ _keys.update(Package.metadata_keys)
+ _keys = tuple(sorted(_keys))
__slots__ = ("__weakref__", "_pkg") + tuple("_val_" + k for k in _keys)
_wrapped_keys = frozenset(
["COUNTER", "INHERITED", "IUSE", "SLOT", "USE", "_mtime_"])
# This triggers metadata updates via FakeVartree.
vardb.aux_get(pkg.cpv, [])
fakedb.cpv_inject(pkg)
+
+ # Now that the vardb state is cached in our FakeVartree,
+ # we won't be needing the real vartree cache for awhile.
+ # To make some room on the heap, clear the vardbapi
+ # caches.
+ trees[myroot]["vartree"].dbapi._clear_cache()
+ gc.collect()
+
self.mydbapi[myroot] = fakedb
def graph_tree():
pass
def checkblockers(self, origdep):
pass
+ def _clear_cache(self):
+ self.mtdircache.clear()
+ self.matchcache.clear()
+ self.cpcache.clear()
+ self._aux_cache_obj = None
+
def _add(self, pkg_dblink):
- self._clear_cache(pkg_dblink)
+ self._clear_pkg_cache(pkg_dblink)
def _remove(self, pkg_dblink):
- self._clear_cache(pkg_dblink)
+ self._clear_pkg_cache(pkg_dblink)
- def _clear_cache(self, pkg_dblink):
+ def _clear_pkg_cache(self, pkg_dblink):
# Due to 1 second mtime granularity in <python-2.5, mtime checks
# are not always sufficient to invalidate vardbapi caches. Therefore,
# the caches need to be actively invalidated here.