summaryrefslogtreecommitdiffstats
path: root/pym/portage/manifest.py
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2012-07-12 12:48:49 -0700
committerZac Medico <zmedico@gentoo.org>2012-07-12 12:48:49 -0700
commit63e25313d785f40abff3197fe0f3a3eeaa617f7d (patch)
tree95e5a3ca49c944b905b48bff7234a92b6fe9db40 /pym/portage/manifest.py
parent48497bca12ac8b52740681a7a10200f0a58345ea (diff)
downloadportage-63e25313d785f40abff3197fe0f3a3eeaa617f7d.tar.gz
portage-63e25313d785f40abff3197fe0f3a3eeaa617f7d.tar.bz2
portage-63e25313d785f40abff3197fe0f3a3eeaa617f7d.zip
Skip whirlpool digest check when unaccelerated.
If multiple digests are available and whirlpool is unaccelerated, then skip it. This allows extreme performance problems like bug #425046 to be avoided whenever practical, especially for cases like stage builds where acceleration may not be available for some hashes due to minimization of dependencies.
Diffstat (limited to 'pym/portage/manifest.py')
-rw-r--r--pym/portage/manifest.py6
1 files changed, 4 insertions, 2 deletions
diff --git a/pym/portage/manifest.py b/pym/portage/manifest.py
index 90324eebe..ab9186245 100644
--- a/pym/portage/manifest.py
+++ b/pym/portage/manifest.py
@@ -8,7 +8,8 @@ import warnings
import portage
portage.proxy.lazyimport.lazyimport(globals(),
- 'portage.checksum:hashfunc_map,perform_multiple_checksums,verify_all',
+ 'portage.checksum:hashfunc_map,perform_multiple_checksums,' + \
+ 'verify_all,_filter_unaccelarated_hashes',
'portage.util:write_atomic',
)
@@ -508,7 +509,8 @@ class Manifest(object):
def checkFileHashes(self, ftype, fname, ignoreMissing=False):
myhashes = self.fhashdict[ftype][fname]
try:
- ok,reason = verify_all(self._getAbsname(ftype, fname), self.fhashdict[ftype][fname])
+ ok, reason = verify_all(self._getAbsname(ftype, fname),
+ _filter_unaccelarated_hashes(self.fhashdict[ftype][fname]))
if not ok:
raise DigestException(tuple([self._getAbsname(ftype, fname)]+list(reason)))
return ok, reason