Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(176)

Side by Side Diff: pym/_emerge/BlockerDB.py

Issue 6688037: Update Portage to sync BlockerDB at init, rather than before every package. (Closed) Base URL: http://git.chromium.org/git/portage_tool.git@cros-2.1.9
Patch Set: Address review feedback. Created 9 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | pym/_emerge/FakeVartree.py » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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
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
OLDNEW
« no previous file with comments | « no previous file | pym/_emerge/FakeVartree.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698