diff options
author | Zac Medico <zmedico@gentoo.org> | 2011-03-24 21:32:38 -0700 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2011-03-24 21:32:38 -0700 |
commit | 3081e651fc3cd3a0729bb1fbe2e93fbc58dcef0d (patch) | |
tree | 84c0c38f442d42c4352602070e16a07716a73772 /pym/_emerge/EbuildPhase.py | |
parent | f823031ed33bda9579d265b62607380bb255dfdd (diff) | |
download | portage-3081e651fc3cd3a0729bb1fbe2e93fbc58dcef0d.tar.gz portage-3081e651fc3cd3a0729bb1fbe2e93fbc58dcef0d.tar.bz2 portage-3081e651fc3cd3a0729bb1fbe2e93fbc58dcef0d.zip |
MergeProcess: Fix PORTAGE_BACKGROUND/LOG_FILE use
In this subprocess we don't want PORTAGE_BACKGROUND to suppress
stdout/stderr output since they are pipes. We also don't want to open
PORTAGE_LOG_FILE, since it will already be opened by the parent
process, so we set the PORTAGE_BACKGROUND="subprocess" value for use
in conditional logging code involving PORTAGE_LOG_FILE.
Diffstat (limited to 'pym/_emerge/EbuildPhase.py')
-rw-r--r-- | pym/_emerge/EbuildPhase.py | 29 |
1 files changed, 18 insertions, 11 deletions
diff --git a/pym/_emerge/EbuildPhase.py b/pym/_emerge/EbuildPhase.py index e3270c893..a24608b88 100644 --- a/pym/_emerge/EbuildPhase.py +++ b/pym/_emerge/EbuildPhase.py @@ -121,9 +121,10 @@ class EbuildPhase(CompositeTask): # Don't open the log file during the clean phase since the # open file can result in an nfs lock on $T/build.log which # prevents the clean phase from removing $T. - logfile = self.settings.get("PORTAGE_LOG_FILE") - if self.phase in ("clean", "cleanrm"): - logfile = None + logfile = None + if self.phase not in ("clean", "cleanrm") and \ + self.settings.get("PORTAGE_BACKGROUND") != "subprocess": + logfile = self.settings.get("PORTAGE_LOG_FILE") fd_pipes = None if not self.background and self.phase == 'nofetch': @@ -151,13 +152,16 @@ class EbuildPhase(CompositeTask): if not fail: self.returncode = None + logfile = None + if self.settings.get("PORTAGE_BACKGROUND") != "subprocess": + logfile = self.settings.get("PORTAGE_LOG_FILE") + if self.phase == "install": out = portage.StringIO() _check_build_log(self.settings, out=out) msg = _unicode_decode(out.getvalue(), encoding=_encodings['content'], errors='replace') - self.scheduler.output(msg, - log_path=self.settings.get("PORTAGE_LOG_FILE")) + self.scheduler.output(msg, log_path=logfile) if fail: self._die_hooks() @@ -173,12 +177,10 @@ class EbuildPhase(CompositeTask): msg = _unicode_decode(out.getvalue(), encoding=_encodings['content'], errors='replace') if msg: - self.scheduler.output(msg, - log_path=self.settings.get("PORTAGE_LOG_FILE")) + self.scheduler.output(msg, log_path=logfile) post_phase_cmds = _post_phase_cmds.get(self.phase) if post_phase_cmds is not None: - logfile = settings.get("PORTAGE_LOG_FILE") if logfile is not None and self.phase in ("install",): # Log to a temporary file, since the code we are running # reads PORTAGE_LOG_FILE for QA checks, and we want to @@ -204,7 +206,10 @@ class EbuildPhase(CompositeTask): self._assert_current(post_phase) - log_path = self.settings.get("PORTAGE_LOG_FILE") + log_path = None + if self.settings.get("PORTAGE_BACKGROUND") != "subprocess": + log_path = self.settings.get("PORTAGE_LOG_FILE") + if post_phase.logfile is not None and \ post_phase.logfile != log_path: # We were logging to a temp file (see above), so append @@ -293,5 +298,7 @@ class EbuildPhase(CompositeTask): msg = _unicode_decode(out.getvalue(), encoding=_encodings['content'], errors='replace') if msg: - self.scheduler.output(msg, - log_path=self.settings.get("PORTAGE_LOG_FILE")) + log_path = None + if self.settings.get("PORTAGE_BACKGROUND") != "subprocess": + log_path = self.settings.get("PORTAGE_LOG_FILE") + self.scheduler.output(msg, log_path=log_path) |