1 |
commit: 0d22dd6b813c4b7b49b1109ce332778e0e4cfc28 |
2 |
Author: Zac Medico <zmedico <AT> gentoo <DOT> org> |
3 |
AuthorDate: Sat May 18 12:20:23 2013 +0000 |
4 |
Commit: Zac Medico <zmedico <AT> gentoo <DOT> org> |
5 |
CommitDate: Sat May 18 12:20:23 2013 +0000 |
6 |
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/portage.git;a=commit;h=0d22dd6b |
7 |
|
8 |
Fix emerge --fetch --digest for bug #470238. |
9 |
|
10 |
--- |
11 |
pym/_emerge/EbuildBuild.py | 10 ++++++++-- |
12 |
pym/_emerge/EbuildFetcher.py | 3 ++- |
13 |
2 files changed, 10 insertions(+), 3 deletions(-) |
14 |
|
15 |
diff --git a/pym/_emerge/EbuildBuild.py b/pym/_emerge/EbuildBuild.py |
16 |
index 599875a..845b115 100644 |
17 |
--- a/pym/_emerge/EbuildBuild.py |
18 |
+++ b/pym/_emerge/EbuildBuild.py |
19 |
@@ -1,4 +1,4 @@ |
20 |
-# Copyright 1999-2012 Gentoo Foundation |
21 |
+# Copyright 1999-2013 Gentoo Foundation |
22 |
# Distributed under the terms of the GNU General Public License v2 |
23 |
|
24 |
from _emerge.EbuildExecuter import EbuildExecuter |
25 |
@@ -15,6 +15,7 @@ import portage |
26 |
from portage import os |
27 |
from portage.output import colorize |
28 |
from portage.package.ebuild.digestcheck import digestcheck |
29 |
+from portage.package.ebuild.digestgen import digestgen |
30 |
from portage.package.ebuild.doebuild import _check_temp_dir |
31 |
from portage.package.ebuild._spawn_nofetch import spawn_nofetch |
32 |
|
33 |
@@ -91,7 +92,8 @@ class EbuildBuild(CompositeTask): |
34 |
success = True |
35 |
|
36 |
settings = self.settings |
37 |
- if 'strict' in settings.features: |
38 |
+ if 'strict' in settings.features and \ |
39 |
+ 'digest' not in settings.features: |
40 |
settings['O'] = os.path.dirname(self._ebuild_path) |
41 |
quiet_setting = settings.get('PORTAGE_QUIET') |
42 |
settings['PORTAGE_QUIET'] = '1' |
43 |
@@ -160,6 +162,10 @@ class EbuildBuild(CompositeTask): |
44 |
if self.returncode != os.EX_OK: |
45 |
portdb = self.pkg.root_config.trees[self._tree].dbapi |
46 |
spawn_nofetch(portdb, self._ebuild_path, settings=self.settings) |
47 |
+ if 'digest' in self.settings.features: |
48 |
+ if not digestgen(mysettings=self.settings, |
49 |
+ myportdb=self.pkg.root_config.trees[self._tree].dbapi): |
50 |
+ self.returncode = 1 |
51 |
self.wait() |
52 |
|
53 |
def _pre_clean_exit(self, pre_clean_phase): |
54 |
|
55 |
diff --git a/pym/_emerge/EbuildFetcher.py b/pym/_emerge/EbuildFetcher.py |
56 |
index df790b0..d98d007 100644 |
57 |
--- a/pym/_emerge/EbuildFetcher.py |
58 |
+++ b/pym/_emerge/EbuildFetcher.py |
59 |
@@ -165,7 +165,8 @@ class EbuildFetcher(ForkProcess): |
60 |
not in ('yes', 'true') |
61 |
|
62 |
rval = 1 |
63 |
- allow_missing = self._get_manifest().allow_missing |
64 |
+ allow_missing = self._get_manifest().allow_missing or \ |
65 |
+ 'digest' in self._settings.features |
66 |
if fetch(self._uri_map, self._settings, fetchonly=self.fetchonly, |
67 |
digests=copy.deepcopy(self._get_digests()), |
68 |
allow_missing_digests=allow_missing): |