| OLD | NEW |
| 1 # Copyright 1999-2009 Gentoo Foundation | 1 # Copyright 1999-2009 Gentoo Foundation |
| 2 # Distributed under the terms of the GNU General Public License v2 | 2 # Distributed under the terms of the GNU General Public License v2 |
| 3 | 3 |
| 4 import sys | 4 import sys |
| 5 | 5 |
| 6 import portage | 6 import portage |
| 7 from portage import os | 7 from portage import os |
| 8 from portage import digraph | 8 from portage import digraph |
| 9 from portage._sets.base import InternalPackageSet | 9 from portage._sets.base import InternalPackageSet |
| 10 | 10 |
| (...skipping 12 matching lines...) Expand all Loading... |
| 23 self._portdb = root_config.trees["porttree"].dbapi | 23 self._portdb = root_config.trees["porttree"].dbapi |
| 24 | 24 |
| 25 self._dep_check_trees = None | 25 self._dep_check_trees = None |
| 26 self._fake_vartree = fake_vartree | 26 self._fake_vartree = fake_vartree |
| 27 self._dep_check_trees = { | 27 self._dep_check_trees = { |
| 28 self._vartree.root : { | 28 self._vartree.root : { |
| 29 "porttree" : fake_vartree, | 29 "porttree" : fake_vartree, |
| 30 "vartree" : fake_vartree, | 30 "vartree" : fake_vartree, |
| 31 }} | 31 }} |
| 32 | 32 |
| 33 » def _get_fake_vartree(self, acquire_lock=0): | 33 » def findInstalledBlockers(self, new_pkg): |
| 34 » » fake_vartree = self._fake_vartree | |
| 35 » » fake_vartree.sync(acquire_lock=acquire_lock) | |
| 36 » » return fake_vartree | |
| 37 | |
| 38 » def findInstalledBlockers(self, new_pkg, acquire_lock=0): | |
| 39 """ | 34 """ |
| 40 Search for installed run-time blockers in the root where | 35 Search for installed run-time blockers in the root where |
| 41 new_pkg is planned to be installed. This ignores build-time | 36 new_pkg is planned to be installed. This ignores build-time |
| 42 blockers, since new_pkg is assumed to be built already. | 37 blockers, since new_pkg is assumed to be built already. |
| 43 """ | 38 """ |
| 44 blocker_cache = BlockerCache(self._vartree.root, self._vartree.d
bapi) | 39 blocker_cache = BlockerCache(self._vartree.root, self._vartree.d
bapi) |
| 45 dep_keys = ["RDEPEND", "PDEPEND"] | 40 dep_keys = ["RDEPEND", "PDEPEND"] |
| 46 settings = self._vartree.settings | 41 settings = self._vartree.settings |
| 47 stale_cache = set(blocker_cache) | 42 stale_cache = set(blocker_cache) |
| 48 » » fake_vartree = self._get_fake_vartree(acquire_lock=acquire_lock) | 43 » » fake_vartree = self._fake_vartree |
| 49 dep_check_trees = self._dep_check_trees | 44 dep_check_trees = self._dep_check_trees |
| 50 vardb = fake_vartree.dbapi | 45 vardb = fake_vartree.dbapi |
| 51 installed_pkgs = list(vardb) | 46 installed_pkgs = list(vardb) |
| 52 | 47 |
| 53 for inst_pkg in installed_pkgs: | 48 for inst_pkg in installed_pkgs: |
| 54 stale_cache.discard(inst_pkg.cpv) | 49 stale_cache.discard(inst_pkg.cpv) |
| 55 cached_blockers = blocker_cache.get(inst_pkg.cpv) | 50 cached_blockers = blocker_cache.get(inst_pkg.cpv) |
| 56 if cached_blockers is not None and \ | 51 if cached_blockers is not None and \ |
| 57 cached_blockers.counter != long(inst_pkg.metadat
a["COUNTER"]): | 52 cached_blockers.counter != long(inst_pkg.metadat
a["COUNTER"]): |
| 58 cached_blockers = None | 53 cached_blockers = None |
| (...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 111 blocker_atoms = InternalPackageSet(initial_atoms=blocker
_atoms) | 106 blocker_atoms = InternalPackageSet(initial_atoms=blocker
_atoms) |
| 112 for inst_pkg in installed_pkgs: | 107 for inst_pkg in installed_pkgs: |
| 113 try: | 108 try: |
| 114 next(blocker_atoms.iterAtomsForPackage(i
nst_pkg)) | 109 next(blocker_atoms.iterAtomsForPackage(i
nst_pkg)) |
| 115 except (portage.exception.InvalidDependString, S
topIteration): | 110 except (portage.exception.InvalidDependString, S
topIteration): |
| 116 continue | 111 continue |
| 117 blocking_pkgs.add(inst_pkg) | 112 blocking_pkgs.add(inst_pkg) |
| 118 | 113 |
| 119 return blocking_pkgs | 114 return blocking_pkgs |
| 120 | 115 |
| 116 def discardBlocker(self, pkg): |
| 117 """Discard a package from the list of potential blockers.""" |
| 118 self._fake_vartree.cpv_discard(pkg) |
| 119 |
| OLD | NEW |