From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from pigeon.gentoo.org ([69.77.167.62] helo=lists.gentoo.org) by finch.gentoo.org with esmtp (Exim 4.60) (envelope-from ) id 1JgUUi-00072M-6Y for garchives@archives.gentoo.org; Tue, 01 Apr 2008 00:36:56 +0000 Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 49455E0455; Tue, 1 Apr 2008 00:36:55 +0000 (UTC) Received: from smtp.gentoo.org (smtp.gentoo.org [140.211.166.183]) by pigeon.gentoo.org (Postfix) with ESMTP id 16B57E0455 for ; Tue, 1 Apr 2008 00:36:55 +0000 (UTC) Received: from stork.gentoo.org (stork.gentoo.org [64.127.104.133]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTP id 884CE65ED7 for ; Tue, 1 Apr 2008 00:36:54 +0000 (UTC) Received: from zmedico by stork.gentoo.org with local (Exim 4.68) (envelope-from ) id 1JgUUf-0003jE-J7 for gentoo-commits@lists.gentoo.org; Tue, 01 Apr 2008 00:36:53 +0000 To: gentoo-commits@lists.gentoo.org From: "Zac Medico (zmedico)" Subject: [gentoo-commits] portage r9659 - main/branches/2.1.2/pym X-VCS-Repository: portage X-VCS-Revision: 9659 X-VCS-Files: main/branches/2.1.2/pym/portage.py X-VCS-Directories: main/branches/2.1.2/pym X-VCS-Committer: zmedico X-VCS-Committer-Name: Zac Medico Content-Type: text/plain; charset=UTF-8 Message-Id: Sender: Zac Medico Date: Tue, 01 Apr 2008 00:36:53 +0000 Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: quoted-printable X-Archives-Salt: d3b4f4b3-d63b-4d87-ba5c-ab5c5856892f X-Archives-Hash: 2e2014e87ed8f167ff4a5b743909e2b8 Author: zmedico Date: 2008-04-01 00:36:52 +0000 (Tue, 01 Apr 2008) New Revision: 9659 Modified: main/branches/2.1.2/pym/portage.py Log: Bug #215308 - Cache the paths of known bad manifests to ensure that the same broken manifest is never checked twice. (trunk r9658) Modified: main/branches/2.1.2/pym/portage.py =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- main/branches/2.1.2/pym/portage.py 2008-04-01 00:33:35 UTC (rev 9658) +++ main/branches/2.1.2/pym/portage.py 2008-04-01 00:36:52 UTC (rev 9659) @@ -4280,6 +4280,7 @@ =20 _doebuild_manifest_exempt_depend =3D 0 _doebuild_manifest_checked =3D None +_doebuild_broken_manifests =3D set() =20 def doebuild(myebuild, mydo, myroot, mysettings, debug=3D0, listonly=3D0= , fetchonly=3D0, cleanup=3D0, dbkey=3DNone, use_cache=3D1, fetchall=3D0, = tree=3DNone, @@ -4388,13 +4389,16 @@ # Always verify the ebuild checksums before executing it. pkgdir =3D os.path.dirname(myebuild) manifest_path =3D os.path.join(pkgdir, "Manifest") - global _doebuild_manifest_checked + global _doebuild_manifest_checked, _doebuild_broken_manifests + if manifest_path in _doebuild_broken_manifests: + return 1 # Avoid checking the same Manifest several times in a row during a # regen with an empty cache. if _doebuild_manifest_checked !=3D manifest_path: if not os.path.exists(manifest_path): writemsg("!!! Manifest file not found: '%s'\n" % manifest_path, noiselevel=3D-1) + _doebuild_broken_manifests.add(manifest_path) return 1 mf =3D Manifest(pkgdir, mysettings["DISTDIR"]) try: @@ -4402,6 +4406,7 @@ except portage_exception.FileNotFound, e: writemsg("!!! A file listed in the Manifest " + \ "could not be found: %s\n" % str(e), noiselevel=3D-1) + _doebuild_broken_manifests.add(manifest_path) return 1 except portage_exception.DigestException, e: writemsg("!!! Digest verification failed:\n", noiselevel=3D-1) @@ -4409,6 +4414,7 @@ writemsg("!!! Reason: %s\n" % e.value[1], noiselevel=3D-1) writemsg("!!! Got: %s\n" % e.value[2], noiselevel=3D-1) writemsg("!!! Expected: %s\n" % e.value[3], noiselevel=3D-1) + _doebuild_broken_manifests.add(manifest_path) return 1 # Make sure that all of the ebuilds are actually listed in the # Manifest. @@ -4417,6 +4423,7 @@ writemsg("!!! A file is not listed in the " + \ "Manifest: '%s'\n" % os.path.join(pkgdir, f), noiselevel=3D-1) + _doebuild_broken_manifests.add(manifest_path) return 1 _doebuild_manifest_checked =3D manifest_path =20 --=20 gentoo-commits@lists.gentoo.org mailing list