1 |
commit: fe6a9433426d284aabdf774376082fbed1741478 |
2 |
Author: Zac Medico <zmedico <AT> gentoo <DOT> org> |
3 |
AuthorDate: Fri Mar 25 10:39:15 2011 +0000 |
4 |
Commit: Zac Medico <zmedico <AT> gentoo <DOT> org> |
5 |
CommitDate: Fri Mar 25 10:39:15 2011 +0000 |
6 |
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/portage.git;a=commit;h=fe6a9433 |
7 |
|
8 |
dblink: fix elog bugs for unmerge phases |
9 |
|
10 |
--- |
11 |
pym/portage/dbapi/vartree.py | 40 ++++++++++++++++++++++------------------ |
12 |
1 files changed, 22 insertions(+), 18 deletions(-) |
13 |
|
14 |
diff --git a/pym/portage/dbapi/vartree.py b/pym/portage/dbapi/vartree.py |
15 |
index e900455..0e60af8 100644 |
16 |
--- a/pym/portage/dbapi/vartree.py |
17 |
+++ b/pym/portage/dbapi/vartree.py |
18 |
@@ -1544,14 +1544,13 @@ class dblink(object): |
19 |
scheduler = self._scheduler |
20 |
retval = os.EX_OK |
21 |
try: |
22 |
+ builddir_lock = EbuildBuildDir( |
23 |
+ scheduler=scheduler, |
24 |
+ settings=self.settings) |
25 |
+ builddir_lock.lock() |
26 |
+ prepare_build_dirs(settings=self.settings, cleanup=True) |
27 |
+ log_path = self.settings.get("PORTAGE_LOG_FILE") |
28 |
if myebuildpath: |
29 |
- builddir_lock = EbuildBuildDir( |
30 |
- scheduler=scheduler, |
31 |
- settings=self.settings) |
32 |
- builddir_lock.lock() |
33 |
- |
34 |
- prepare_build_dirs(settings=self.settings, cleanup=True) |
35 |
- log_path = self.settings.get("PORTAGE_LOG_FILE") |
36 |
phase = EbuildPhase(background=background, |
37 |
phase=ebuild_phase, scheduler=scheduler, |
38 |
settings=self.settings) |
39 |
@@ -2754,22 +2753,27 @@ class dblink(object): |
40 |
return 1 |
41 |
|
42 |
def _eqawarn(self, phase, lines): |
43 |
- from portage.elog.messages import eqawarn as _eqawarn |
44 |
- if self._scheduler is None: |
45 |
- for l in lines: |
46 |
- _eqawarn(l, phase=phase, key=self.settings.mycpv) |
47 |
- else: |
48 |
- self._scheduler.dblinkElog(self, |
49 |
- phase, _eqawarn, lines) |
50 |
+ self._elog("eqawarn", phase, lines) |
51 |
|
52 |
def _eerror(self, phase, lines): |
53 |
- from portage.elog.messages import eerror as _eerror |
54 |
+ self._elog("eerror", phase, lines) |
55 |
+ |
56 |
+ def _elog(self, funcname, phase, lines): |
57 |
+ func = getattr(portage.elog.messages, funcname) |
58 |
if self._scheduler is None: |
59 |
for l in lines: |
60 |
- _eerror(l, phase=phase, key=self.settings.mycpv) |
61 |
+ func(l, phase=phase, key=self.settings.mycpv) |
62 |
else: |
63 |
- self._scheduler.dblinkElog(self, |
64 |
- phase, _eerror, lines) |
65 |
+ background = self.settings.get("PORTAGE_BACKGROUND") == "1" |
66 |
+ log_path = None |
67 |
+ if self.settings.get("PORTAGE_BACKGROUND") != "subprocess": |
68 |
+ log_path = self.settings.get("PORTAGE_LOG_FILE") |
69 |
+ out = portage.StringIO() |
70 |
+ for line in lines: |
71 |
+ func(line, phase=phase, key=self.settings.mycpv, out=out) |
72 |
+ msg = out.getvalue() |
73 |
+ self._scheduler.output(msg, |
74 |
+ background=background, log_path=log_path) |
75 |
|
76 |
def _elog_process(self, phasefilter=None): |
77 |
cpv = self.mycpv |