1 |
commit: ee02b5b7d747d2b5b5d5339c91dee0cd3f2ee150 |
2 |
Author: Zac Medico <zmedico <AT> gentoo <DOT> org> |
3 |
AuthorDate: Mon Jan 31 22:10:14 2011 +0000 |
4 |
Commit: Thomas Sachau <tommy <AT> gentoo <DOT> org> |
5 |
CommitDate: Mon Jan 31 22:11:05 2011 +0000 |
6 |
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/portage.git;a=commit;h=ee02b5b7 |
7 |
|
8 |
EbuildBuild: spawn nofetch for fetchonly |
9 |
|
10 |
--- |
11 |
pym/_emerge/EbuildBuild.py | 17 ++++++++++++----- |
12 |
1 files changed, 12 insertions(+), 5 deletions(-) |
13 |
|
14 |
diff --git a/pym/_emerge/EbuildBuild.py b/pym/_emerge/EbuildBuild.py |
15 |
index 1eab21d..afd6399 100644 |
16 |
--- a/pym/_emerge/EbuildBuild.py |
17 |
+++ b/pym/_emerge/EbuildBuild.py |
18 |
@@ -16,6 +16,7 @@ from portage import os |
19 |
from portage.output import colorize |
20 |
from portage.package.ebuild.digestcheck import digestcheck |
21 |
from portage.package.ebuild.doebuild import _check_temp_dir |
22 |
+from portage.package.ebuild._spawn_nofetch import spawn_nofetch |
23 |
|
24 |
class EbuildBuild(CompositeTask): |
25 |
|
26 |
@@ -118,6 +119,8 @@ class EbuildBuild(CompositeTask): |
27 |
settings=settings) |
28 |
retval = fetcher.execute() |
29 |
self.returncode = retval |
30 |
+ self.wait() |
31 |
+ return |
32 |
else: |
33 |
fetcher = EbuildFetcher( |
34 |
config_pool=self.config_pool, |
35 |
@@ -127,11 +130,8 @@ class EbuildBuild(CompositeTask): |
36 |
logfile=None, |
37 |
pkg=self.pkg, |
38 |
scheduler=self.scheduler) |
39 |
- fetcher.start() |
40 |
- self.returncode = fetcher.wait() |
41 |
- |
42 |
- self.wait() |
43 |
- return |
44 |
+ self._start_task(fetcher, self._fetchonly_exit) |
45 |
+ return |
46 |
|
47 |
self._build_dir = EbuildBuildDir( |
48 |
scheduler=self.scheduler, settings=settings) |
49 |
@@ -150,6 +150,13 @@ class EbuildBuild(CompositeTask): |
50 |
phase='clean', scheduler=self.scheduler, settings=self.settings) |
51 |
self._start_task(pre_clean_phase, self._pre_clean_exit) |
52 |
|
53 |
+ def _fetchonly_exit(self, fetcher): |
54 |
+ self._final_exit(fetcher) |
55 |
+ if self.returncode != os.EX_OK: |
56 |
+ portdb = self.pkg.root_config.trees[self._tree].dbapi |
57 |
+ spawn_nofetch(portdb, self._ebuild_path, settings=self.settings) |
58 |
+ self.wait() |
59 |
+ |
60 |
def _pre_clean_exit(self, pre_clean_phase): |
61 |
if self._default_exit(pre_clean_phase) != os.EX_OK: |
62 |
self._unlock_builddir() |