diff options
author | Zac Medico <zmedico@gentoo.org> | 2007-06-01 15:44:53 +0000 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2007-06-01 15:44:53 +0000 |
commit | e29a91aad89df64d18b5631035e7cf6e8198939c (patch) | |
tree | 972483993c8fc3c3d035d70ddc2a2b7e679e9dff | |
parent | de81596340ff43ceaa071be93952071531468d7b (diff) | |
download | portage-e29a91aad89df64d18b5631035e7cf6e8198939c.tar.gz portage-e29a91aad89df64d18b5631035e7cf6e8198939c.tar.bz2 portage-e29a91aad89df64d18b5631035e7cf6e8198939c.zip |
Don't repeatedly invoke the depend phase for ebuilds that are already known to be broken.
svn path=/main/trunk/; revision=6707
-rw-r--r-- | pym/portage/dbapi/porttree.py | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/pym/portage/dbapi/porttree.py b/pym/portage/dbapi/porttree.py index 5bf1e30a6..5488251e6 100644 --- a/pym/portage/dbapi/porttree.py +++ b/pym/portage/dbapi/porttree.py @@ -111,6 +111,7 @@ class portdbapi(dbapi): # Selectively cache metadata in order to optimize dep matching. self._aux_cache_keys = set(["EAPI", "KEYWORDS", "LICENSE", "SLOT"]) self._aux_cache = {} + self._broken_ebuilds = set() def _init_cache_dirs(self): """Create /var/cache/edb/dep and adjust permissions for the portage @@ -301,6 +302,8 @@ class portdbapi(dbapi): writemsg("auxdb is valid: "+str(not doregen)+" "+str(pkg)+"\n", 2) if doregen: + if myebuild in self._broken_ebuilds: + raise KeyError(mycpv) writemsg("doregen: %s %s\n" % (doregen, mycpv), 2) writemsg("Generating cache entry(0) for: "+str(myebuild)+"\n", 1) @@ -310,6 +313,7 @@ class portdbapi(dbapi): self.doebuild_settings["ROOT"], self.doebuild_settings, dbkey=mydata, tree="porttree", mydbapi=self) if myret != os.EX_OK: + self._broken_ebuilds.add(myebuild) raise KeyError(mycpv) if "EAPI" not in mydata or not mydata["EAPI"].strip(): |