#!/usr/bin/python # # Script to clean up stale entries from the portage dependency cache # # Copyright 2005 Sven Wegener # Distributed under the terms of the GNU General Public License v2 # # $Id: cleandepcache 22 2005-06-01 21:13:17Z sven $ # import portage auxdbmodule = portage.settings.load_best_module("portdbapi.auxdbmodule") eclassdbmodule = portage.settings.load_best_module("eclass_cache.dbmodule") settings = portage.config(clone = portage.settings) settings["PORTDIR_OVERLAY"] = "" for porttree in [portage.settings["PORTDIR"]] + portage.settings["PORTDIR_OVERLAY"].split(): print porttree portdbapi = portage.portdbapi(porttree, settings) for category in portage.settings.categories: auxdb = auxdbmodule(portage.settings.depcachedir + "/" + porttree, category, portage.auxdbkeys, portage.uid, portage.portage_gid) eclassdb = eclassdbmodule(portage.settings.depcachedir + "/" + porttree, category + "-eclass", [], portage.uid, portage.portage_gid) for db, dbname in [[auxdb, "auxdb"], [eclassdb, "eclassdb"]]: for pf in db.keys(): if not portdbapi.cpv_exists(category + "/" + pf): print "\t%s/%s => %s" % (category, pf, dbname) db.del_key(pf) db.close()