commit:     0fddb27ef3fd005d236738b6c696152bbb877419
Author:     Zac Medico <zmedico <AT> gentoo <DOT> org>
AuthorDate: Sun Nov 17 20:52:56 2019 +0000
Commit:     Zac Medico <zmedico <AT> gentoo <DOT> org>
CommitDate: Sun Nov 17 21:00:59 2019 +0000
URL:        https://gitweb.gentoo.org/proj/portage.git/commit/?id=0fddb27e

Binpkg: use cached BINPKGMD5 if available

Signed-off-by: Zac Medico <zmedico <AT> gentoo.org>

 lib/_emerge/Binpkg.py | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/lib/_emerge/Binpkg.py b/lib/_emerge/Binpkg.py
index e7dad32fa..542ef8fb0 100644
--- a/lib/_emerge/Binpkg.py
+++ b/lib/_emerge/Binpkg.py
@@ -284,14 +284,14 @@ class Binpkg(CompositeTask):
                                f.close()
 
                # Store the md5sum in the vdb.
-               f = io.open(_unicode_encode(os.path.join(infloc, 'BINPKGMD5'),
-                       encoding=_encodings['fs'], errors='strict'),
-                       mode='w', encoding=_encodings['content'], 
errors='strict')
-               try:
-                       f.write(_unicode_decode(
-                               str(portage.checksum.perform_md5(pkg_path)) + 
"\n"))
-               finally:
-                       f.close()
+               if pkg_path is not None:
+                       md5sum, = self._bintree.dbapi.aux_get(self.pkg.cpv, 
['MD5'])
+                       if not md5sum:
+                               md5sum = portage.checksum.perform_md5(pkg_path)
+                       with io.open(_unicode_encode(os.path.join(infloc, 
'BINPKGMD5'),
+                               encoding=_encodings['fs'], errors='strict'),
+                               mode='w', encoding=_encodings['content'], 
errors='strict') as f:
+                               f.write(_unicode_decode('{}\n'.format(md5sum)))
 
                env_extractor = BinpkgEnvExtractor(background=self.background,
                        scheduler=self.scheduler, settings=self.settings)

Reply via email to