summaryrefslogtreecommitdiffstats
path: root/pym/_emerge/EbuildPhase.py
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2009-12-05 22:00:19 +0000
committerZac Medico <zmedico@gentoo.org>2009-12-05 22:00:19 +0000
commit731b3a807b3f69b6b8783459f8fb00dd2a8a179b (patch)
treeabd1ca114cf22ebcc3e0add248d44aba9d1de432 /pym/_emerge/EbuildPhase.py
parent8f43f06b8bcaf4c85d186186a665a490c07f8f12 (diff)
downloadportage-731b3a807b3f69b6b8783459f8fb00dd2a8a179b.tar.gz
portage-731b3a807b3f69b6b8783459f8fb00dd2a8a179b.tar.bz2
portage-731b3a807b3f69b6b8783459f8fb00dd2a8a179b.zip
Always append QA Notices resulting from the build log search to the end of
the log. Thanks to Diego E. Pettenò for reporting. svn path=/main/trunk/; revision=14927
Diffstat (limited to 'pym/_emerge/EbuildPhase.py')
-rw-r--r--pym/_emerge/EbuildPhase.py15
1 files changed, 11 insertions, 4 deletions
diff --git a/pym/_emerge/EbuildPhase.py b/pym/_emerge/EbuildPhase.py
index fcf60d39c..01661b2cc 100644
--- a/pym/_emerge/EbuildPhase.py
+++ b/pym/_emerge/EbuildPhase.py
@@ -5,10 +5,11 @@
from _emerge.MiscFunctionsProcess import MiscFunctionsProcess
from _emerge.EbuildProcess import EbuildProcess
from _emerge.CompositeTask import CompositeTask
-from portage.util import writemsg
+from portage.util import writemsg, writemsg_stdout
import portage
from portage import os
from portage import _encodings
+from portage import _unicode_decode
from portage import _unicode_encode
import codecs
@@ -30,16 +31,22 @@ class EbuildPhase(CompositeTask):
def _ebuild_exit(self, ebuild_process):
if self.phase == "install":
- out = None
+ out = portage.StringIO()
log_path = self.settings.get("PORTAGE_LOG_FILE")
log_file = None
- if self.background and log_path is not None:
+ if log_path is not None:
log_file = codecs.open(_unicode_encode(log_path,
encoding=_encodings['fs'], errors='strict'),
mode='a', encoding=_encodings['content'], errors='replace')
- out = log_file
try:
portage._check_build_log(self.settings, out=out)
+ msg = _unicode_decode(out.getvalue(),
+ encoding=_encodings['content'], errors='replace')
+ if msg:
+ if not self.background:
+ writemsg_stdout(msg, noiselevel=-1)
+ if log_file is not None:
+ log_file.write(msg)
finally:
if log_file is not None:
log_file.close()