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): |
diandersAtChromium
2011/03/22 02:57:59
This is a public function. Any issues with compat
davidjames
2011/03/23 20:19:11
As we discussed in person, the _emerge package is
| |
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 |
diandersAtChromium
2011/03/22 02:57:59
Summary: removed the sync() of self._fake_vartree
davidjames
2011/03/23 20:19:11
Exactly. No need to sync every time we search for
| |
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 |