summaryrefslogtreecommitdiffstats
path: root/pym/_emerge/EbuildFetcher.py
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2010-12-28 12:41:26 -0800
committerZac Medico <zmedico@gentoo.org>2010-12-28 12:41:26 -0800
commite0c7d34a777bbc4f95c55d9036e88aee9fc0a6ae (patch)
tree4f8f905692e76f31b15cb638d88c9ee0cedf43d2 /pym/_emerge/EbuildFetcher.py
parentdbef4305dedd0b428e788f020bc3c3f94ffee232 (diff)
downloadportage-e0c7d34a777bbc4f95c55d9036e88aee9fc0a6ae.tar.gz
portage-e0c7d34a777bbc4f95c55d9036e88aee9fc0a6ae.tar.bz2
portage-e0c7d34a777bbc4f95c55d9036e88aee9fc0a6ae.zip
EbuildFetcher: pass digests to fetch()
Diffstat (limited to 'pym/_emerge/EbuildFetcher.py')
-rw-r--r--pym/_emerge/EbuildFetcher.py12
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: