Make dblink call back to the scheduler for "clean" and "cleanrm" phases, to
authorZac Medico <zmedico@gentoo.org>
Wed, 20 Aug 2008 03:18:59 +0000 (03:18 -0000)
committerZac Medico <zmedico@gentoo.org>
Wed, 20 Aug 2008 03:18:59 +0000 (03:18 -0000)
handle output redirection. Thanks to Arfrever for reporting.

svn path=/main/trunk/; revision=11441

pym/_emerge/__init__.py
pym/portage/dbapi/vartree.py

index 411f0a16ef7e70e961bb5dc01413f2b0bdfe2620..026395c02302cf4205923c7bb93eb553df40f07d 100644 (file)
@@ -2790,7 +2790,7 @@ class EbuildProcess(SpawnProcess):
        def _set_returncode(self, wait_retval):
                SpawnProcess._set_returncode(self, wait_retval)
 
-               if self.phase != "clean":
+               if self.phase not in ("clean", "cleanrm"):
                        self.returncode = portage._doebuild_exit_status_check_and_log(
                                self.settings, self.phase, self.returncode)
 
index cef86a2849929b2368853842e39685529724b518..0abe96846a8cd27de6d307b316977df5d5585301 100644 (file)
@@ -1925,10 +1925,15 @@ class dblink(object):
                                                # process logs created during pre/postrm
                                                elog_process(self.mycpv, self.settings, phasefilter=filter_unmergephases)
                                                if retval == os.EX_OK:
-                                                       doebuild(myebuildpath, "cleanrm", self.myroot,
-                                                               self.settings, tree="vartree",
-                                                               mydbapi=self.vartree.dbapi,
-                                                               vartree=self.vartree)
+                                                       if scheduler is None:
+                                                               doebuild(myebuildpath, "cleanrm", self.myroot,
+                                                                       self.settings, tree="vartree",
+                                                                       mydbapi=self.vartree.dbapi,
+                                                                       vartree=self.vartree)
+                                                       else:
+                                                               scheduler.dblinkEbuildPhase(
+                                                                       self, self.vartree.dbapi,
+                                                                       myebuildpath, "cleanrm")
                                finally:
                                        unlockdir(builddir_lock)
                        try:
@@ -3402,8 +3407,14 @@ class dblink(object):
                        if retval == os.EX_OK and "noclean" not in self.settings.features:
                                if myebuild is None:
                                        myebuild = os.path.join(inforoot, self.pkg + ".ebuild")
-                               doebuild(myebuild, "clean", myroot, self.settings,
-                                       tree=self.treetype, mydbapi=mydbapi, vartree=self.vartree)
+
+                               if self._scheduler is None:
+                                       doebuild(myebuild, "clean", myroot,
+                                               self.settings, tree=self.treetype,
+                                               mydbapi=mydbapi, vartree=self.vartree)
+                               else:
+                                       self._scheduler.dblinkEbuildPhase(
+                                               self, mydbapi, myebuild, "clean")
                finally:
                        self.unlockdb()
                return retval