summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2006-07-03 01:45:38 +0000
committerZac Medico <zmedico@gentoo.org>2006-07-03 01:45:38 +0000
commit18fd0daa76e68e1732677cef820bc7c4800ffe7c (patch)
tree61cb8af272e0980893633e98d0c87e8a9d100440
parenteb28c2231f2d7ebf2decbe0c1fcd8dc0fb54a347 (diff)
downloadportage-18fd0daa76e68e1732677cef820bc7c4800ffe7c.tar.gz
portage-18fd0daa76e68e1732677cef820bc7c4800ffe7c.tar.bz2
portage-18fd0daa76e68e1732677cef820bc7c4800ffe7c.zip
Force fetch if the number of parsed digests does not match the number of digest types that are supported. See bug #138911.
svn path=/main/trunk/; revision=3773
-rw-r--r--pym/portage.py18
1 files changed, 10 insertions, 8 deletions
diff --git a/pym/portage.py b/pym/portage.py
index b995ab054..0948f4fed 100644
--- a/pym/portage.py
+++ b/pym/portage.py
@@ -4,7 +4,7 @@
# $Id$
-VERSION="$Rev$"[6:-2] + "-svn"
+VERSION="2.1.1_pre2-r2"
# ===========================================================================
# START OF IMPORTS -- START OF IMPORTS -- START OF IMPORTS -- START OF IMPORT
@@ -2813,13 +2813,15 @@ def doebuild(myebuild, mydo, myroot, mysettings, debug=0, listonly=0,
fetchme = alluris[:]
checkme = aalist[:]
# Skip files that we already have digests for.
- mydigests = Manifest(
- mysettings["O"], mysettings["DISTDIR"]).getTypeDigests("DIST")
- for x in mydigests:
- while x in checkme:
- i = checkme.index(x)
- del fetchme[i]
- del checkme[i]
+ mf = Manifest(mysettings["O"], mysettings["DISTDIR"])
+ mydigests = mf.getTypeDigests("DIST")
+ for filename, hashes in mydigests.iteritems():
+ if len(hashes) == len(mf.hashes):
+ while filename in checkme:
+ i = checkme.index(filename)
+ del fetchme[i]
+ del checkme[i]
+ del filename, hashes
else:
fetchme=newuris[:]
checkme=alist[:]