Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
View | Details | Raw Unified | Return to bug 159310
Collapse All | Expand All

(-)bin/emerge (-4 / +28 lines)
Lines 1010-1015 Link Here
1010
		self.args_keys = []
1010
		self.args_keys = []
1011
		self.blocker_digraph = digraph()
1011
		self.blocker_digraph = digraph()
1012
		self.blocker_parents = {}
1012
		self.blocker_parents = {}
1013
		self._slot_collision_info = []
1013
		self._altlist_cache = {}
1014
		self._altlist_cache = {}
1014
		self._pprovided_args = []
1015
		self._pprovided_args = []
1015
1016
Lines 1176-1191 Link Here
1176
							priority=priority)
1177
							priority=priority)
1177
					return 1
1178
					return 1
1178
				else:
1179
				else:
1180
					# A slot collision has occurred.  Sometimes this coincides
1181
					# with unresolvable blockers, so the slot collision will be
1182
					# shown later if there are no unresolvable blockers.
1179
					e_parents = self._parent_child_digraph.parent_nodes(
1183
					e_parents = self._parent_child_digraph.parent_nodes(
1180
						existing_node)
1184
						existing_node)
1181
					myparents = []
1185
					myparents = []
1182
					if myparent:
1186
					if myparent:
1183
						myparents.append(myparent)
1187
						myparents.append(myparent)
1184
					self._show_slot_collision_notice(
1188
					self._slot_collision_info.append(
1185
						((jbigkey, myparents),
1189
						((jbigkey, myparents), (existing_node, e_parents)))
1186
						(existing_node, e_parents)))
1187
					return 0
1188
1190
1191
					# Now add this node to the graph so that self.display()
1192
					# can work with it show use flags and --tree output.
1193
					self.useFlags[myroot][mykey] = myuse
1194
					self._parent_child_digraph.add(jbigkey, myparent)
1195
					if rev_dep and myparent:
1196
						self.digraph.add(myparent, jbigkey,
1197
							priority=priority)
1198
					else:
1199
						self.digraph.add(jbigkey, myparent,
1200
							priority=priority)
1201
					# The slot collision has rendered the graph invalid, so
1202
					# there's no need to process dependencies of this node.
1203
					return 1
1204
1189
			self._slot_node_map[myroot][slot_atom] = jbigkey
1205
			self._slot_node_map[myroot][slot_atom] = jbigkey
1190
			self.pkg_node_map[myroot][mykey] = jbigkey
1206
			self.pkg_node_map[myroot][mykey] = jbigkey
1191
			self.useFlags[myroot][mykey] = myuse
1207
			self.useFlags[myroot][mykey] = myuse
Lines 1905-1910 Link Here
1905
		# Validate blockers that depend on merge order.
1921
		# Validate blockers that depend on merge order.
1906
		if not self.blocker_digraph.empty():
1922
		if not self.blocker_digraph.empty():
1907
			self.altlist()
1923
			self.altlist()
1924
		if self._slot_collision_info:
1925
			# The user is only notified of a slot collision if there are no
1926
			# unresolvable blocks.
1927
			for x in self.altlist():
1928
				if x[0] == "blocks":
1929
					return True
1930
			self._show_slot_collision_notice(self._slot_collision_info[0])
1931
			return False
1908
		return True
1932
		return True
1909
1933
1910
	def altlist(self, reversed=False):
1934
	def altlist(self, reversed=False):

Return to bug 159310