aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2012-11-11 09:57:52 -0800
committerZac Medico <zmedico@gentoo.org>2012-11-11 09:57:52 -0800
commitd80c5799a59a0420301f215add4c75b7d5e14d73 (patch)
treec945c53f720e6499807f76728b46304e6ab94d23
parentemerge-webrsync: rsync -o -g, bug #442190 (diff)
downloadportage-d80c5799a59a0420301f215add4c75b7d5e14d73.tar.gz
portage-d80c5799a59a0420301f215add4c75b7d5e14d73.tar.bz2
portage-d80c5799a59a0420301f215add4c75b7d5e14d73.zip
pkg_pretend: keep temp on failure for bug #442536
-rw-r--r--pym/_emerge/Scheduler.py19
1 files changed, 12 insertions, 7 deletions
diff --git a/pym/_emerge/Scheduler.py b/pym/_emerge/Scheduler.py
index 99493ea6a..5714faf7d 100644
--- a/pym/_emerge/Scheduler.py
+++ b/pym/_emerge/Scheduler.py
@@ -905,13 +905,18 @@ class Scheduler(PollScheduler):
failures += 1
portage.elog.elog_process(x.cpv, settings)
finally:
- if current_task is not None and current_task.isAlive():
- current_task.cancel()
- current_task.wait()
- clean_phase = EbuildPhase(background=False,
- phase='clean', scheduler=sched_iface, settings=settings)
- clean_phase.start()
- clean_phase.wait()
+
+ if current_task is not None:
+ if current_task.isAlive():
+ current_task.cancel()
+ current_task.wait()
+ if current_task.returncode == os.EX_OK:
+ clean_phase = EbuildPhase(background=False,
+ phase='clean', scheduler=sched_iface,
+ settings=settings)
+ clean_phase.start()
+ clean_phase.wait()
+
build_dir.unlock()
if failures: