Gentoo Archives: gentoo-commits

From: "Zac Medico (zmedico)" <zmedico@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] portage r10768 - main/trunk/pym/_emerge
Date: Tue, 24 Jun 2008 01:00:54
Message-Id: E1KAwts-0007pJ-7o@stork.gentoo.org
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