Gentoo Archives: gentoo-commits

From: "Zac Medico (zmedico)" <zmedico@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] portage r10109 - main/branches/2.1.2/bin
Date: Fri, 02 May 2008 21:49:30
Message-Id: E1Js38B-0000G2-06@stork.gentoo.org
1 Author: zmedico
2 Date: 2008-05-02 21:49:26 +0000 (Fri, 02 May 2008)
3 New Revision: 10109
4
5 Modified:
6 main/branches/2.1.2/bin/emerge
7 Log:
8 Move the blocker cache validation into depgraph.validate_blockers().
9 (trunk r10108)
10
11
12 Modified: main/branches/2.1.2/bin/emerge
13 ===================================================================
14 --- main/branches/2.1.2/bin/emerge 2008-05-02 21:47:50 UTC (rev 10108)
15 +++ main/branches/2.1.2/bin/emerge 2008-05-02 21:49:26 UTC (rev 10109)
16 @@ -1531,26 +1531,6 @@
17 isinstance(self._cache_data, dict) and \
18 self._cache_data.get("version") == self._cache_version and \
19 isinstance(self._cache_data.get("blockers"), dict)
20 - if cache_valid:
21 - invalid_cache = set()
22 - for cpv, value \
23 - in self._cache_data["blockers"].iteritems():
24 - if not (isinstance(value, tuple) and len(value) == 2):
25 - invalid_cache.add(cpv)
26 - continue
27 - counter, atoms = value
28 - try:
29 - if counter != long(self._vardb.aux_get(cpv, ["COUNTER"])[0]):
30 - invalid_cache.add(cpv)
31 - continue
32 - except KeyError:
33 - # The package is no longer installed.
34 - invalid_cache.add(cpv)
35 - continue
36 - for cpv in invalid_cache:
37 - del self._cache_data["blockers"][cpv]
38 - if not self._cache_data["blockers"]:
39 - cache_valid = False
40 if not cache_valid:
41 self._cache_data = {"version":self._cache_version}
42 self._cache_data["blockers"] = {}
43 @@ -1599,6 +1579,13 @@
44 (blocker_data.counter, blocker_data.atoms)
45 self._modified = True
46
47 + def __iter__(self):
48 + return iter(self._cache_data["blockers"])
49 +
50 + def __delitem__(self, cpv):
51 + del self._cache_data["blockers"][cpv]
52 + self._modified = True
53 +
54 def __getitem__(self, cpv):
55 """
56 @rtype: BlockerData
57 @@ -1609,9 +1596,7 @@
58 def keys(self):
59 """This needs to be implemented so that self.__repr__() doesn't raise
60 an AttributeError."""
61 - if self._cache_data and "blockers" in self._cache_data:
62 - return self._cache_data["blockers"].keys()
63 - return []
64 + return list(self)
65
66 def show_invalid_depstring_notice(parent_node, depstring, error_msg):
67
68 @@ -3282,7 +3267,9 @@
69 final_db = self.mydbapi[myroot]
70 cpv_all_installed = self.trees[myroot]["vartree"].dbapi.cpv_all()
71 blocker_cache = BlockerCache(myroot, vardb)
72 + stale_cache = set(blocker_cache)
73 for cpv in cpv_all_installed:
74 + stale_cache.discard(cpv)
75 blocker_atoms = None
76 pkg = self._pkg_cache[
77 ("installed", myroot, cpv, "nomerge")]
78 @@ -3300,6 +3287,9 @@
79 # node for it so that they can be enforced.
80 self.spinner.update()
81 blocker_data = blocker_cache.get(cpv)
82 + if blocker_data is not None and \
83 + blocker_data.counter != long(pkg.metadata["COUNTER"]):
84 + blocker_data = None
85
86 # If blocker data from the graph is available, use
87 # it to validate the cache and update the cache if
88 @@ -3325,7 +3315,9 @@
89 blocker_atoms = blocker_data.atoms
90 else:
91 myuse = pkg.metadata["USE"].split()
92 - depstr = " ".join(pkg.metadata[k] for k in dep_keys)
93 + # Use aux_get() to trigger FakeVartree global
94 + # updates on *DEPEND when appropriate.
95 + depstr = " ".join(vardb.aux_get(pkg.cpv, dep_keys))
96 # It is crucial to pass in final_db here in order to
97 # optimize dep_check calls by eliminating atoms via
98 # dep_wordreduce and dep_eval calls.
99 @@ -3369,6 +3361,8 @@
100 for myatom in blocker_atoms:
101 blocker = Blocker(atom=myatom[1:], root=myroot)
102 self._blocker_parents.add(blocker, pkg)
103 + for cpv in stale_cache:
104 + del blocker_cache[cpv]
105 blocker_cache.flush()
106 del blocker_cache
107
108
109 --
110 gentoo-commits@l.g.o mailing list