Go to:
Gentoo Home
Documentation
Forums
Lists
Bugs
Planet
Store
Wiki
Get Gentoo!
Gentoo's Bugzilla – Attachment 49131 Details for
Bug 78979
emerge crash with conflicting digest sizes
Home
|
New
–
[Ex]
|
Browse
|
Search
|
Privacy Policy
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Patched in Callers in portage.py
patch.r14.Digest.Caller (text/plain), 4.08 KB, created by
Alec Warner
on 2005-01-21 12:28:52 UTC
(
hide
)
Description:
Patched in Callers in portage.py
Filename:
MIME Type:
Creator:
Alec Warner
Created:
2005-01-21 12:28:52 UTC
Size:
4.08 KB
patch
obsolete
>--- portage.py 2005-01-20 17:24:41.000000000 +0000 >+++ portage-mod.py 2005-01-21 20:06:37.416869808 +0000 >@@ -1606,8 +1606,11 @@ > mydigests = {} > digestfn = mysettings["FILESDIR"]+"/digest-"+mysettings["PF"] > if os.path.exists(digestfn): >- mydigests = digestParseFile(digestfn) >- >+ try: >+ mydigests = digestParseFile(digestfn) >+ except portage_exception.DigestException: >+ print "The digest sizes do not match. Usually this is due to an invalid manifest. Try an emerge sync to fetch a working manifest." >+ sys.exit( -5 ) > fsmirrors = [] > for x in range(len(mymirrors)-1,-1,-1): > if mymirrors[x] and mymirrors[x][0]=='/': >@@ -2016,8 +2019,11 @@ > # all files to be downloaded. 'Assuming' > myolddigest = {} > if os.path.exists(digestfn): >- myolddigest = digestParseFile(digestfn) >- >+ try: >+ myolddigest = digestParseFile(digestfn) >+ except portage_exception.DigestException: >+ print "The digest sizes do not match. Usually this is due to an invalid manifest. Try an emerge sync to fetch a working manifest." >+ sys.exit( -5 ) > mydigests=digestCreate(myarchives, basedir, oldDigest=myolddigest) > if mydigests==None: # There was a problem, exit with an errorcode. > return 0 >@@ -2120,8 +2126,8 @@ > mydigests[myfn] = {} > mydigests[myfn][mykey] = myhash > if "size" in mydigests[myfn]: >- if mydigests[myfn]["size"] != mysize: >- raise portage_exception.DigestException, "Conflicting sizes in digest: %(filename)s" % {"filename":myfilename} >+ if mydigests[myfn]["size"] != mysize: >+ raise portage_exception.DigestException, "Conflicting sizes in digest: %(filename)s" % {"filename":myfilename} > else: > mydigests[myfn]["size"] = mysize > return mydigests >@@ -2189,11 +2195,21 @@ > print "!!! Type \"ebuild foo.ebuild digest\" to generate it." > return 0 > >- mydigests=digestParseFile(digestfn) >+ try: >+ mydigests=digestParseFile(digestfn) >+ except portage_exception.DigestException: >+ print "The digest sizes do not match. Usually this is due to an invalid manifest. Try an emerge sync to fetch a working manifest." >+ sys.exit( -5 ) >+ > if mydigests==None: > print "!!! Failed to parse digest file:",digestfn > return 0 >- mymdigests=digestParseFile(manifestfn) >+ try: >+ mymdigests=digestParseFile(manifestfn) >+ except portage_exception.DigestException: >+ print "The digest sizes do not match. Usually this is due to an invalid manifest. Try an emerge sync to fetch a working manifest." >+ sys.exit( -5 ) >+ > if "strict" not in features: > # XXX: Remove this when manifests become mainstream. > pass >@@ -2554,7 +2570,11 @@ > checkme=aalist[:] > digestfn=mysettings["FILESDIR"]+"/digest-"+mysettings["PF"] > if os.path.exists(digestfn): >- mydigests=digestParseFile(digestfn) >+ try: >+ mydigests = digestParseFile(digestfn) >+ except portage_exception.DigestException: >+ print "The digest sizes do not match. Usually this is due to an invalid manifest. Try an emerge sync to fetch a working manifest." >+ sys.exit( -5 ) > if mydigests: > for x in mydigests: > while x in checkme: >@@ -5294,7 +5314,11 @@ > def getfetchsizes(self,mypkg,useflags=None,debug=0): > # returns a filename:size dictionnary of remaining downloads > mydigest=self.finddigest(mypkg) >- mymd5s=digestParseFile(mydigest) >+ try: >+ mymd5s=digestParseFile(mydigest) >+ except portage_exception.DigestException: >+ print "The digest sizes do not match. Usually this is due to an invalid manifest. Try an emerge sync to fetch a working manifest." >+ sys.exit( -5 ) > if not mymd5s: > if debug: print "[empty/missing/bad digest]: "+mypkg > return None >@@ -5320,7 +5344,11 @@ > useflags = mysettings["USE"].split() > myuri, myfiles = self.getfetchlist(mypkg, useflags=useflags, mysettings=mysettings, all=all) > mydigest = self.finddigest(mypkg) >- mysums = digestParseFile(mydigest) >+ try: >+ mysums = digestParseFile(mydigest) >+ except portage_exception.DigestException: >+ print "The digest sizes do not match. Usually this is due to an invalid manifest. Try an emerge sync to fetch a working manifest." >+ sys.exit( -5 ) > > failures = {} > for x in myfiles:
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 78979
:
49124
| 49131 |
49132