summaryrefslogtreecommitdiffstats
path: root/pym/_emerge/EbuildExecuter.py
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2010-08-16 08:16:08 -0700
committerZac Medico <zmedico@gentoo.org>2010-08-16 08:16:08 -0700
commit51483738aeebe26a120ad30d2c9c662f01e26ff4 (patch)
treee4aa8455d895fde0035b7ac66918e798d7b1ec00 /pym/_emerge/EbuildExecuter.py
parent0817d69b5206d628c97177bbe2871146fcd56590 (diff)
downloadportage-51483738aeebe26a120ad30d2c9c662f01e26ff4.tar.gz
portage-51483738aeebe26a120ad30d2c9c662f01e26ff4.tar.bz2
portage-51483738aeebe26a120ad30d2c9c662f01e26ff4.zip
Split out parts of doebuild() so that EbuildProcess can bypass it
and call the spawn() function directly.
Diffstat (limited to 'pym/_emerge/EbuildExecuter.py')
-rw-r--r--pym/_emerge/EbuildExecuter.py22
1 files changed, 20 insertions, 2 deletions
diff --git a/pym/_emerge/EbuildExecuter.py b/pym/_emerge/EbuildExecuter.py
index 90cf401a7..7abcbb77e 100644
--- a/pym/_emerge/EbuildExecuter.py
+++ b/pym/_emerge/EbuildExecuter.py
@@ -1,4 +1,4 @@
-# Copyright 1999-2009 Gentoo Foundation
+# Copyright 1999-2010 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
from _emerge.EbuildPhase import EbuildPhase
@@ -7,6 +7,8 @@ from _emerge.CompositeTask import CompositeTask
import portage
from portage import os
from portage.eapi import eapi_has_src_prepare_and_src_configure
+from portage.package.ebuild.doebuild import _prepare_env_file, \
+ _prepare_fake_distdir
class EbuildExecuter(CompositeTask):
@@ -30,8 +32,24 @@ class EbuildExecuter(CompositeTask):
scheduler = self.scheduler
settings = self.settings
cleanup = 0
-
portage.prepare_build_dirs(pkg.root, settings, cleanup)
+ rval = _prepare_env_file(settings)
+ if rval != os.EX_OK:
+ self.returncode = rval
+ self._current_task = None
+ self.wait()
+ return
+
+ portdb = pkg.root_config.trees['porttree'].dbapi
+ ebuild_path = settings['EBUILD']
+ mytree = os.path.dirname(os.path.dirname(
+ os.path.dirname(ebuild_path)))
+ alist = portdb.getFetchMap(pkg.cpv,
+ useflags=pkg.use.enabled, mytree=mytree)
+ aalist = portdb.getFetchMap(pkg.cpv, mytree=mytree)
+ settings.configdict["pkg"]["A"] = " ".join(alist)
+ settings.configdict["pkg"]["AA"] = " ".join(aalist)
+ _prepare_fake_distdir(settings, alist)
setup_phase = EbuildPhase(background=self.background,
pkg=pkg, phase="setup", scheduler=scheduler,