1 |
Author: zmedico |
2 |
Date: 2008-06-24 01:00:47 +0000 (Tue, 24 Jun 2008) |
3 |
New Revision: 10768 |
4 |
|
5 |
Modified: |
6 |
main/trunk/pym/_emerge/__init__.py |
7 |
Log: |
8 |
Fix some remaining corner cases that cause bug #220341 to reappear |
9 |
intermittently. Thanks to pva for reporting. |
10 |
|
11 |
|
12 |
Modified: main/trunk/pym/_emerge/__init__.py |
13 |
=================================================================== |
14 |
--- main/trunk/pym/_emerge/__init__.py 2008-06-23 19:31:56 UTC (rev 10767) |
15 |
+++ main/trunk/pym/_emerge/__init__.py 2008-06-24 01:00:47 UTC (rev 10768) |
16 |
@@ -3109,21 +3109,22 @@ |
17 |
# the newly built package still won't have the expected slot. |
18 |
# Therefore, assume that such SLOT dependencies are already |
19 |
# satisfied rather than forcing a rebuild. |
20 |
- if installed and not cpv_list and \ |
21 |
- matched_packages and atom.slot: |
22 |
- for pkg in matched_packages: |
23 |
- if not vardb.cpv_exists(pkg.cpv): |
24 |
+ if installed and not cpv_list and atom.slot: |
25 |
+ for cpv in db.match(atom.cp): |
26 |
+ slot_available = False |
27 |
+ for other_db, other_type, other_built, \ |
28 |
+ other_installed, other_keys in dbs: |
29 |
+ try: |
30 |
+ if atom.slot == \ |
31 |
+ other_db.aux_get(cpv, ["SLOT"])[0]: |
32 |
+ slot_available = True |
33 |
+ break |
34 |
+ except KeyError: |
35 |
+ pass |
36 |
+ if not slot_available: |
37 |
continue |
38 |
- inst_pkg = self._pkg_cache.get( |
39 |
- (pkg_type, root, pkg.cpv, "nomerge")) |
40 |
- if inst_pkg is None: |
41 |
- metadata = izip(self._mydbapi_keys, |
42 |
- vardb.aux_get(pkg.cpv, self._mydbapi_keys)) |
43 |
- inst_pkg = Package(built=built, cpv=pkg.cpv, |
44 |
- installed=installed, metadata=metadata, |
45 |
- onlydeps=onlydeps, root_config=root_config, |
46 |
- type_name=pkg_type) |
47 |
- self._pkg_cache[inst_pkg] = inst_pkg |
48 |
+ inst_pkg = self._pkg(cpv, "installed", |
49 |
+ root_config, installed=installed) |
50 |
# Remove the slot from the atom and verify that |
51 |
# the package matches the resulting atom. |
52 |
atom_without_slot = portage.dep.remove_slot(atom) |
53 |
|
54 |
-- |
55 |
gentoo-commits@l.g.o mailing list |