summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2006-03-12 08:37:30 +0000
committerZac Medico <zmedico@gentoo.org>2006-03-12 08:37:30 +0000
commite9ef0b158210d135748a6074b06b54ea6055d04d (patch)
treed220d83a97d48a30f7ba8f9c65cd9156169db6fa
parentae1e797e0d73a93a31e3ff41a78a4dc9b82d9598 (diff)
downloadportage-e9ef0b158210d135748a6074b06b54ea6055d04d.tar.gz
portage-e9ef0b158210d135748a6074b06b54ea6055d04d.tar.bz2
portage-e9ef0b158210d135748a6074b06b54ea6055d04d.zip
Use the ** operator for better unpacking of actionmap args in spawnebuild.
svn path=/main/trunk/; revision=2859
-rw-r--r--pym/portage.py32
1 files changed, 13 insertions, 19 deletions
diff --git a/pym/portage.py b/pym/portage.py
index 2e2b6e2eb..4a2814dea 100644
--- a/pym/portage.py
+++ b/pym/portage.py
@@ -2368,17 +2368,12 @@ def spawnebuild(mydo,actionmap,mysettings,debug,alwaysdep=0,logfile=None):
retval=spawnebuild(actionmap[mydo]["dep"],actionmap,mysettings,debug,alwaysdep=alwaysdep,logfile=logfile)
if retval:
return retval
- phase_retval = spawn(actionmap[mydo]["args"][0] + mydo, mysettings, debug=debug,
- droppriv=actionmap[mydo]["args"][1],
- free=actionmap[mydo]["args"][2],
- sesandbox=actionmap[mydo]["args"][3], logfile=logfile)
+ kwargs = actionmap[mydo]["args"]
+ phase_retval = spawn(actionmap[mydo]["cmd"] % mydo, mysettings, debug=debug, logfile=logfile, **kwargs)
if phase_retval == os.EX_OK:
if mydo == "install":
mycommand = " ".join([MISC_SH_BINARY, "install_qa_check"])
- return spawn(mycommand, mysettings, debug=debug,
- droppriv=actionmap[mydo]["args"][1],
- free=actionmap[mydo]["args"][2],
- sesandbox=actionmap[mydo]["args"][3], logfile=logfile)
+ return spawn(mycommand, mysettings, debug=debug, logfile=logfile, **kwargs)
return phase_retval
# chunked out deps for each phase, so that ebuild binary can use it
@@ -2878,20 +2873,19 @@ def doebuild(myebuild,mydo,myroot,mysettings,debug=0,listonly=0,fetchonly=0,clea
nosandbox = ("sandbox" not in features and "usersandbox" not in features)
sesandbox = selinux_enabled and "sesandbox" in features
- ebuild_sh = "%s " % EBUILD_SH_BINARY
- misc_sh = "%s dyn_" % MISC_SH_BINARY
+ ebuild_sh = EBUILD_SH_BINARY + " %s"
+ misc_sh = MISC_SH_BINARY + " dyn_%s"
# args are for the to spawn function
- # (command, droppriv, free, sesandbox)
actionmap = {
- "depend": {"args":(ebuild_sh, 1, 0, 0)},
- "setup": {"args":(ebuild_sh, 0, 1, 0)},
- "unpack": {"args":(ebuild_sh, 1, 0, sesandbox)},
- "compile":{"args":(ebuild_sh, 1, nosandbox, sesandbox)},
- "test": {"args":(ebuild_sh, 1, nosandbox, sesandbox)},
- "install":{"args":(ebuild_sh, 0, 0, sesandbox)},
- "rpm": {"args":(misc_sh, 0, 0, 0)},
- "package":{"args":(misc_sh, 0, 0, 0)},
+ "depend": {"cmd":ebuild_sh, "args":{"droppriv":1, "free":0, "sesandbox":0}},
+ "setup": {"cmd":ebuild_sh, "args":{"droppriv":0, "free":1, "sesandbox":0}},
+ "unpack": {"cmd":ebuild_sh, "args":{"droppriv":1, "free":0, "sesandbox":sesandbox}},
+ "compile":{"cmd":ebuild_sh, "args":{"droppriv":1, "free":nosandbox, "sesandbox":sesandbox}},
+ "test": {"cmd":ebuild_sh, "args":{"droppriv":1, "free":nosandbox, "sesandbox":sesandbox}},
+ "install":{"cmd":ebuild_sh, "args":{"droppriv":0, "free":0, "sesandbox":sesandbox}},
+ "rpm": {"cmd":misc_sh, "args":{"droppriv":0, "free":0, "sesandbox":0}},
+ "package":{"cmd":misc_sh, "args":{"droppriv":0, "free":0, "sesandbox":0}},
}
# merge the deps in so we have again a 'full' actionmap