summaryrefslogtreecommitdiffstats
path: root/pym/_emerge/AbstractEbuildProcess.py
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2010-08-12 05:56:22 -0700
committerZac Medico <zmedico@gentoo.org>2010-08-12 05:56:22 -0700
commita4589f44d8da96dc83131910aeb60b5ea62ec40f (patch)
tree829adf3adf4215ac0ddd64f9732955da6f0dbe20 /pym/_emerge/AbstractEbuildProcess.py
parent14d949b1e6987207b91e0c0d43162406135345d8 (diff)
downloadportage-a4589f44d8da96dc83131910aeb60b5ea62ec40f.tar.gz
portage-a4589f44d8da96dc83131910aeb60b5ea62ec40f.tar.bz2
portage-a4589f44d8da96dc83131910aeb60b5ea62ec40f.zip
Factor EBUILD_EXIT_STATUS_FILE code out of AbstractEbuildProcess
subclasses and into AbstractEbuildProcess itself.
Diffstat (limited to 'pym/_emerge/AbstractEbuildProcess.py')
-rw-r--r--pym/_emerge/AbstractEbuildProcess.py13
1 files changed, 13 insertions, 0 deletions
diff --git a/pym/_emerge/AbstractEbuildProcess.py b/pym/_emerge/AbstractEbuildProcess.py
index 302d34403..f4a87f68b 100644
--- a/pym/_emerge/AbstractEbuildProcess.py
+++ b/pym/_emerge/AbstractEbuildProcess.py
@@ -3,12 +3,16 @@
from _emerge.SpawnProcess import SpawnProcess
import portage
+portage.proxy.lazyimport.lazyimport(globals(),
+ 'portage.package.ebuild.doebuild:_doebuild_exit_status_check_and_log'
+)
from portage import os
from portage.util._pty import _create_pty_or_pipe
class AbstractEbuildProcess(SpawnProcess):
__slots__ = ('settings',)
+ _phases_without_builddir = ('clean', 'cleanrm', 'depend', 'help',)
def _pipe(self, fd_pipes):
stdout_pipe = fd_pipes.get(1)
@@ -22,3 +26,12 @@ class AbstractEbuildProcess(SpawnProcess):
# See Bug #162404.
return not ('sesandbox' in self.settings.features \
and self.settings.selinux_enabled()) or os.isatty(slave_fd)
+
+ def _set_returncode(self, wait_retval):
+ SpawnProcess._set_returncode(self, wait_retval)
+ phase = self.settings.get("EBUILD_PHASE")
+ if not phase:
+ phase = 'other'
+ if phase not in self._phases_without_builddir:
+ self.returncode = _doebuild_exit_status_check_and_log(
+ self.settings, phase, self.returncode)