public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] portage r10768 - main/trunk/pym/_emerge
@ 2008-06-24  1:00 Zac Medico (zmedico)
  0 siblings, 0 replies; only message in thread
From: Zac Medico (zmedico) @ 2008-06-24  1:00 UTC (permalink / raw
  To: gentoo-commits

Author: zmedico
Date: 2008-06-24 01:00:47 +0000 (Tue, 24 Jun 2008)
New Revision: 10768

Modified:
   main/trunk/pym/_emerge/__init__.py
Log:
Fix some remaining corner cases that cause bug #220341 to reappear
intermittently. Thanks to pva for reporting.


Modified: main/trunk/pym/_emerge/__init__.py
===================================================================
--- main/trunk/pym/_emerge/__init__.py	2008-06-23 19:31:56 UTC (rev 10767)
+++ main/trunk/pym/_emerge/__init__.py	2008-06-24 01:00:47 UTC (rev 10768)
@@ -3109,21 +3109,22 @@
 				# the newly built package still won't have the expected slot.
 				# Therefore, assume that such SLOT dependencies are already
 				# satisfied rather than forcing a rebuild.
-				if installed and not cpv_list and \
-					matched_packages and atom.slot:
-					for pkg in matched_packages:
-						if not vardb.cpv_exists(pkg.cpv):
+				if installed and not cpv_list and atom.slot:
+					for cpv in db.match(atom.cp):
+						slot_available = False
+						for other_db, other_type, other_built, \
+							other_installed, other_keys in dbs:
+							try:
+								if atom.slot == \
+									other_db.aux_get(cpv, ["SLOT"])[0]:
+									slot_available = True
+									break
+							except KeyError:
+								pass
+						if not slot_available:
 							continue
-						inst_pkg = self._pkg_cache.get(
-							(pkg_type, root, pkg.cpv, "nomerge"))
-						if inst_pkg is None:
-							metadata = izip(self._mydbapi_keys,
-								vardb.aux_get(pkg.cpv, self._mydbapi_keys))
-							inst_pkg = Package(built=built, cpv=pkg.cpv,
-								installed=installed, metadata=metadata,
-								onlydeps=onlydeps, root_config=root_config,
-								type_name=pkg_type)
-							self._pkg_cache[inst_pkg] = inst_pkg
+						inst_pkg = self._pkg(cpv, "installed",
+							root_config, installed=installed)
 						# Remove the slot from the atom and verify that
 						# the package matches the resulting atom.
 						atom_without_slot = portage.dep.remove_slot(atom)

-- 
gentoo-commits@lists.gentoo.org mailing list



^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2008-06-24  1:00 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-06-24  1:00 [gentoo-commits] portage r10768 - main/trunk/pym/_emerge Zac Medico (zmedico)

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox