diff options
author | Zac Medico <zmedico@gentoo.org> | 2011-01-05 19:51:58 -0800 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2011-01-05 20:08:16 -0800 |
commit | 1ef66bb7b493ffb6f8060e9983b69ab47748d249 (patch) | |
tree | 70bbfdd17fae2f9222b2bc205da419d405a16e81 | |
parent | 313d84727dcccd988d2111a5629dc66635075c48 (diff) | |
download | portage-1ef66bb7b493ffb6f8060e9983b69ab47748d249.tar.gz portage-1ef66bb7b493ffb6f8060e9983b69ab47748d249.tar.bz2 portage-1ef66bb7b493ffb6f8060e9983b69ab47748d249.zip |
Scheduler: fix reposyntax uninstall hash breakage
-rw-r--r-- | pym/_emerge/Scheduler.py | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/pym/_emerge/Scheduler.py b/pym/_emerge/Scheduler.py index 5e5b69f21..4ba683a52 100644 --- a/pym/_emerge/Scheduler.py +++ b/pym/_emerge/Scheduler.py @@ -1408,9 +1408,7 @@ class Scheduler(PollScheduler): if pkg_to_replace is not None: # When a package is replaced, mark it's uninstall # task complete (if any). - uninst_hash_key = \ - ("installed", pkg.root, pkg_to_replace.cpv, "uninstall") - self._task_complete(uninst_hash_key) + self._task_complete(pkg_to_replace) if pkg.installed: return @@ -1750,7 +1748,8 @@ class Scheduler(PollScheduler): if previous_cpv: previous_cpv = previous_cpv.pop() pkg_to_replace = self._pkg(previous_cpv, - "installed", pkg.root_config, installed=True) + "installed", pkg.root_config, installed=True, + operation="uninstall") task = MergeListItem(args_set=self._args_set, background=self._background, binpkg_opts=self._binpkg_opts, @@ -1981,16 +1980,19 @@ class Scheduler(PollScheduler): if world_locked: world_set.unlock() - def _pkg(self, cpv, type_name, root_config, installed=False): + def _pkg(self, cpv, type_name, root_config, installed=False, + operation=None): """ Get a package instance from the cache, or create a new one if necessary. Raises KeyError from aux_get if it failures for some reason (package does not exist or is corrupt). """ - operation = "merge" - if installed: - operation = "nomerge" + if operation is None: + if installed: + operation = "nomerge" + else: + operation = "merge" # Reuse existing instance when available. pkg = self._pkg_cache.get( |