diff options
author | Zac Medico <zmedico@gentoo.org> | 2010-12-28 12:41:26 -0800 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2010-12-28 12:41:26 -0800 |
commit | e0c7d34a777bbc4f95c55d9036e88aee9fc0a6ae (patch) | |
tree | 4f8f905692e76f31b15cb638d88c9ee0cedf43d2 /pym/_emerge | |
parent | dbef4305dedd0b428e788f020bc3c3f94ffee232 (diff) | |
download | portage-e0c7d34a777bbc4f95c55d9036e88aee9fc0a6ae.tar.gz portage-e0c7d34a777bbc4f95c55d9036e88aee9fc0a6ae.tar.bz2 portage-e0c7d34a777bbc4f95c55d9036e88aee9fc0a6ae.zip |
EbuildFetcher: pass digests to fetch()
Diffstat (limited to 'pym/_emerge')
-rw-r--r-- | pym/_emerge/EbuildFetcher.py | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/pym/_emerge/EbuildFetcher.py b/pym/_emerge/EbuildFetcher.py index bfac5a6c0..06285499d 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: |