aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2010-08-17 06:39:17 -0700
committerZac Medico <zmedico@gentoo.org>2010-08-17 06:39:17 -0700
commit21d2a70b316a7c3b6c9b9a9e81f1d2ab86ba98c7 (patch)
treed8ff4a2c24a2166397da66ff59d3b3f9b4dc04c0 /pym/_emerge/EbuildProcess.py
parentFix _spawn_phase() to spawn phases without sandbox when necessary. (diff)
downloadportage-21d2a70b316a7c3b6c9b9a9e81f1d2ab86ba98c7.tar.gz
portage-21d2a70b316a7c3b6c9b9a9e81f1d2ab86ba98c7.tar.bz2
portage-21d2a70b316a7c3b6c9b9a9e81f1d2ab86ba98c7.zip
Unify ebuild spawing some more. All proper ebuild phases which execute
ebuild.sh are spawned via _doebuild_spawn() now. No exceptions.
Diffstat (limited to 'pym/_emerge/EbuildProcess.py')
-rw-r--r--pym/_emerge/EbuildProcess.py29
1 files changed, 5 insertions, 24 deletions
diff --git a/pym/_emerge/EbuildProcess.py b/pym/_emerge/EbuildProcess.py
index 70c724314..6a9c8df62 100644
--- a/pym/_emerge/EbuildProcess.py
+++ b/pym/_emerge/EbuildProcess.py
@@ -5,11 +5,9 @@ from _emerge.AbstractEbuildProcess import AbstractEbuildProcess
import portage
portage.proxy.lazyimport.lazyimport(globals(),
'portage.package.ebuild.doebuild:_post_phase_userpriv_perms,' + \
- '_spawn_actionmap,_unsandboxed_phases,spawn@doebuild_spawn'
+ '_spawn_actionmap,_doebuild_spawn'
)
-from portage import _shell_quote
from portage import os
-from portage.const import EBUILD_SH_BINARY
class EbuildProcess(AbstractEbuildProcess):
@@ -24,30 +22,13 @@ class EbuildProcess(AbstractEbuildProcess):
AbstractEbuildProcess._start(self)
def _spawn(self, args, **kwargs):
- self.settings["EBUILD_PHASE"] = self.phase
- if self.phase in _unsandboxed_phases:
- kwargs['free'] = True
- if self.phase == 'depend':
- kwargs['droppriv'] = 'userpriv' in self.settings.features
+
actionmap = self.actionmap
if actionmap is None:
actionmap = _spawn_actionmap(self.settings)
- if self.phase in actionmap:
- kwargs.update(actionmap[self.phase]["args"])
- cmd = actionmap[self.phase]["cmd"] % self.phase
- else:
- if self.phase == 'cleanrm':
- ebuild_sh_arg = 'clean'
- else:
- ebuild_sh_arg = self.phase
-
- cmd = "%s %s" % (_shell_quote(os.path.join(
- self.settings["PORTAGE_BIN_PATH"],
- os.path.basename(EBUILD_SH_BINARY))), ebuild_sh_arg)
- try:
- return doebuild_spawn(cmd, self.settings, **kwargs)
- finally:
- self.settings.pop("EBUILD_PHASE", None)
+
+ return _doebuild_spawn(self.phase, self.settings,
+ actionmap, **kwargs)
def _set_returncode(self, wait_retval):
AbstractEbuildProcess._set_returncode(self, wait_retval)