From 416709db131e9fa45cab929445d944928b8935af Mon Sep 17 00:00:00 2001 From: Zac Medico Date: Tue, 28 Dec 2010 12:41:26 -0800 Subject: EbuildFetcher: pass digests to fetch() --- pym/_emerge/EbuildFetcher.py | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) (limited to 'pym/_emerge/EbuildFetcher.py') diff --git a/pym/_emerge/EbuildFetcher.py b/pym/_emerge/EbuildFetcher.py index 614a0decd..ba56fafd0 100644 --- a/pym/_emerge/EbuildFetcher.py +++ b/pym/_emerge/EbuildFetcher.py @@ -4,6 +4,7 @@ import traceback from _emerge.SpawnProcess import SpawnProcess +import copy import sys import portage from portage import os @@ -18,7 +19,7 @@ from portage.util._pty import _create_pty_or_pipe class EbuildFetcher(SpawnProcess): __slots__ = ("config_pool", "fetchonly", "fetchall", "pkg", "prefetch") + \ - ("_settings", "_uri_map") + ("_digests", "_settings", "_uri_map") def _start(self): @@ -46,6 +47,9 @@ class EbuildFetcher(SpawnProcess): self.wait() return + self._digests = portage.Manifest( + os.path.dirname(ebuild_path), None).getTypeDigests("DIST") + settings = self.config_pool.allocate() settings.setcpv(self.pkg) portage.doebuild_environment(ebuild_path, 'fetch', @@ -98,7 +102,8 @@ class EbuildFetcher(SpawnProcess): rval = 1 try: - if fetch(self._uri_map, self._settings, fetchonly=self.fetchonly): + if fetch(self._uri_map, self._settings, fetchonly=self.fetchonly, + digests=copy.deepcopy(self._digests)): rval = os.EX_OK except SystemExit: raise @@ -121,7 +126,6 @@ class EbuildFetcher(SpawnProcess): return portdb.getFetchMap(self.pkg.cpv, useflags=use, mytree=mytree) def _prefetch_size_ok(self, uri_map, settings, ebuild_path): - pkgdir = os.path.dirname(ebuild_path) distdir = settings["DISTDIR"] sizes = {} @@ -136,7 +140,7 @@ class EbuildFetcher(SpawnProcess): return False sizes[filename] = st.st_size - digests = portage.Manifest(pkgdir, distdir).getTypeDigests("DIST") + digests = self._digests for filename, actual_size in sizes.items(): size = digests.get(filename, {}).get('size') if size is None: -- cgit v1.2.3-1-g7c22