public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] portage r12623 - main/trunk/pym/_emerge
@ 2009-02-17 23:53 Zac Medico (zmedico)
  0 siblings, 0 replies; only message in thread
From: Zac Medico (zmedico) @ 2009-02-17 23:53 UTC (permalink / raw
  To: gentoo-commits

Author: zmedico
Date: 2009-02-17 23:53:36 +0000 (Tue, 17 Feb 2009)
New Revision: 12623

Modified:
   main/trunk/pym/_emerge/__init__.py
Log:
Bug #253904 - Add a lookahead mechanism inside
depgraph._dep_check_composite_db._visible() which masks package choices
that are likely to trigger slot conflicts. Thanks to Vlastimil Babka
<caster@g.o> for the suggestion.


Modified: main/trunk/pym/_emerge/__init__.py
===================================================================
--- main/trunk/pym/_emerge/__init__.py	2009-02-17 05:23:11 UTC (rev 12622)
+++ main/trunk/pym/_emerge/__init__.py	2009-02-17 23:53:36 UTC (rev 12623)
@@ -8897,6 +8897,20 @@
 						return False
 				except portage.exception.InvalidDependString:
 					pass
+			in_graph = self._depgraph._slot_pkg_map[
+				self._root].get(pkg.slot_atom)
+			if in_graph is None:
+				# Mask choices for packages which are not the highest visible
+				# version within their slot (since they usually trigger slot
+				# conflicts).
+				highest_visible, in_graph = self._depgraph._select_package(
+					self._root, pkg.slot_atom)
+				if pkg != highest_visible:
+					return False
+			elif in_graph != pkg:
+				# Mask choices for packages that would trigger a slot
+				# conflict with a previously selected package.
+				return False
 			return True
 
 		def _dep_expand(self, atom):




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

only message in thread, other threads:[~2009-02-17 23:53 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-02-17 23:53 [gentoo-commits] portage r12623 - 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