summaryrefslogtreecommitdiffstats
path: root/pym
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2006-03-23 02:18:27 +0000
committerZac Medico <zmedico@gentoo.org>2006-03-23 02:18:27 +0000
commitf2468b530d094199b5e91d0856e99f6caf20c5e2 (patch)
tree9bd1250361a8606a8445a510bbb8a3b2e2574e2f /pym
parentbaa4669d347947da3de90793663af77f137fbc39 (diff)
downloadportage-f2468b530d094199b5e91d0856e99f6caf20c5e2.tar.gz
portage-f2468b530d094199b5e91d0856e99f6caf20c5e2.tar.bz2
portage-f2468b530d094199b5e91d0856e99f6caf20c5e2.zip
When the post preinst shell tasks fail, write a message to stderr and return it's exit status so that die calls (inside preinst_selinux_labels for example) can work correctly.
svn path=/main/trunk/; revision=2974
Diffstat (limited to 'pym')
-rw-r--r--pym/portage.py4
1 files changed, 3 insertions, 1 deletions
diff --git a/pym/portage.py b/pym/portage.py
index 9a3896031..b4f05f75d 100644
--- a/pym/portage.py
+++ b/pym/portage.py
@@ -2737,7 +2737,9 @@ def doebuild(myebuild,mydo,myroot,mysettings,debug=0,listonly=0,fetchonly=0,clea
# Post phase logic and tasks that have been factored out of ebuild.sh.
myargs = [MISC_SH_BINARY, "preinst_mask", "preinst_sfperms",
"preinst_selinux_labels", "preinst_suid_scan"]
- spawn(" ".join(myargs), mysettings, debug=debug, free=1, logfile=logfile)
+ phase_retval = spawn(" ".join(myargs), mysettings, debug=debug, free=1, logfile=logfile)
+ if phase_retval != os.EX_OK:
+ writemsg("!!! post preinst failed; exiting.\n")
del mysettings["IMAGE"]
return phase_retval
elif mydo in ["prerm","postrm","postinst","config"]: