From: Zac Medico Date: Sat, 26 Mar 2011 07:38:23 +0000 (-0700) Subject: unmerge: fix PORTAGE_BACKGROUND logic X-Git-Tag: v2.2.0_alpha29~12 X-Git-Url: http://git.tremily.us/gitweb.cgi?a=commitdiff_plain;h=a1a23d2bc25a324b24c180dc982d9442229dc9eb;p=portage.git unmerge: fix PORTAGE_BACKGROUND logic --- diff --git a/pym/_emerge/actions.py b/pym/_emerge/actions.py index f79f9279d..53d18804f 100644 --- a/pym/_emerge/actions.py +++ b/pym/_emerge/actions.py @@ -2623,6 +2623,13 @@ def action_uninstall(settings, trees, ldpath_mtimes, sched._background = sched._background_mode() sched._status_display.quiet = True + if sched._background: + sched.settings.unlock() + sched.settings["PORTAGE_BACKGROUND"] = "1" + sched.settings.backup_changes("PORTAGE_BACKGROUND") + sched.settings.lock() + sched.pkgsettings[root] = portage.config(clone=sched.settings) + if action in ('clean', 'unmerge') or \ (action == 'prune' and "--nodeps" in opts): # When given a list of atoms, unmerge them in the order given. diff --git a/pym/portage/dbapi/vartree.py b/pym/portage/dbapi/vartree.py index c90d86b63..98f578f43 100644 --- a/pym/portage/dbapi/vartree.py +++ b/pym/portage/dbapi/vartree.py @@ -1477,12 +1477,15 @@ class dblink(object): # We create a scheduler instance and use it to # log unmerge output separately from merge output. self._scheduler = PollScheduler().sched_iface - if self.settings.get("PORTAGE_BACKGROUND_UNMERGE") == "1": - self.settings["PORTAGE_BACKGROUND"] = "1" - self.settings.backup_changes("PORTAGE_BACKGROUND") + if self.settings.get("PORTAGE_BACKGROUND") == "subprocess": + if self.settings.get("PORTAGE_BACKGROUND_UNMERGE") == "1": + self.settings["PORTAGE_BACKGROUND"] = "1" + self.settings.backup_changes("PORTAGE_BACKGROUND") + background = True + else: + self.settings.pop("PORTAGE_BACKGROUND", None) + elif self.settings.get("PORTAGE_BACKGROUND") == "1": background = True - else: - self.settings.pop("PORTAGE_BACKGROUND", None) self.vartree.dbapi._bump_mtime(self.mycpv) showMessage = self._display_merge