From 87acc0ea4786c928d68a3522afcd59e07415cc50 Mon Sep 17 00:00:00 2001 From: Zac Medico Date: Mon, 30 Jul 2007 02:53:45 +0000 Subject: Don't repeatedly invoke the depend phase for ebuilds that are already known to be broken. (branches/2.1.2 r6714) svn path=/main/branches/2.1.2.9/; revision=7439 --- pym/portage.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/pym/portage.py b/pym/portage.py index a81e423f0..2f409ee75 100644 --- a/pym/portage.py +++ b/pym/portage.py @@ -5752,6 +5752,7 @@ class portdbapi(dbapi): # Selectively cache metadata in order to optimize dep matching. self._aux_cache_keys = set(["EAPI", "KEYWORDS", "SLOT"]) self._aux_cache = {} + self._broken_ebuilds = set() def _init_cache_dirs(self): """Create /var/cache/edb/dep and adjust permissions for the portage @@ -5910,6 +5911,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) @@ -5919,6 +5922,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(): -- cgit v1.2.3-1-g7c22