Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
View | Details | Raw Unified | Return to bug 264434 | Differences between
and this patch

Collapse All | Expand All

(-)pym/_emerge/__init__.py (-8 / +50 lines)
Lines 4754-4759 Link Here
4754
		self._unsatisfied_blockers_for_display = None
4754
		self._unsatisfied_blockers_for_display = None
4755
		self._circular_deps_for_display = None
4755
		self._circular_deps_for_display = None
4756
		self._dep_stack = []
4756
		self._dep_stack = []
4757
		self._dep_disjuctive_stack = []
4757
		self._unsatisfied_deps = []
4758
		self._unsatisfied_deps = []
4758
		self._initially_unsatisfied_deps = []
4759
		self._initially_unsatisfied_deps = []
4759
		self._ignored_deps = []
4760
		self._ignored_deps = []
Lines 5035-5050 Link Here
5035
5036
5036
	def _create_graph(self, allow_unsatisfied=False):
5037
	def _create_graph(self, allow_unsatisfied=False):
5037
		dep_stack = self._dep_stack
5038
		dep_stack = self._dep_stack
5038
		while dep_stack:
5039
		dep_disjuctive_stack = self._dep_disjuctive_stack
5040
		while dep_stack or dep_disjuctive_stack:
5039
			self.spinner.update()
5041
			self.spinner.update()
5040
			dep = dep_stack.pop()
5042
			while dep_stack:
5041
			if isinstance(dep, Package):
5043
				dep = dep_stack.pop()
5042
				if not self._add_pkg_deps(dep,
5044
				if isinstance(dep, Package):
5043
					allow_unsatisfied=allow_unsatisfied):
5045
					if not self._add_pkg_deps(dep,
5046
						allow_unsatisfied=allow_unsatisfied):
5047
						return 0
5048
					continue
5049
				if not self._add_dep(dep, allow_unsatisfied=allow_unsatisfied):
5044
					return 0
5050
					return 0
5045
				continue
5051
			if dep_disjuctive_stack:
5046
			if not self._add_dep(dep, allow_unsatisfied=allow_unsatisfied):
5052
				self._pop_disjunctive_dep()
5047
				return 0
5048
		return 1
5053
		return 1
5049
5054
5050
	def _add_dep(self, dep, allow_unsatisfied=False):
5055
	def _add_dep(self, dep, allow_unsatisfied=False):
Lines 5354-5359 Link Here
5354
		debug = "--debug" in self.myopts
5359
		debug = "--debug" in self.myopts
5355
		strict = mytype != "installed"
5360
		strict = mytype != "installed"
5356
		try:
5361
		try:
5362
			if not strict:
5363
				portage.dep._dep_check_strict = False
5364
5357
			for dep_root, dep_string, dep_priority in deps:
5365
			for dep_root, dep_string, dep_priority in deps:
5358
				if not dep_string:
5366
				if not dep_string:
5359
					continue
5367
					continue
Lines 5362-5367 Link Here
5362
					print "Parent:   ", jbigkey
5370
					print "Parent:   ", jbigkey
5363
					print "Depstring:", dep_string
5371
					print "Depstring:", dep_string
5364
					print "Priority:", dep_priority
5372
					print "Priority:", dep_priority
5373
5374
				try:
5375
					dep_string = portage.dep.paren_normalize(
5376
						portage.dep.use_reduce(
5377
						portage.dep.paren_reduce(dep_string),
5378
						uselist=pkg.use.enabled))
5379
				except portage.exception.InvalidDependString, e:
5380
					if pkg.installed:
5381
						del e
5382
						continue
5383
					show_invalid_depstring_notice(pkg, dep_string, str(e))
5384
					return 0
5385
5386
				dep_string = self._queue_disjunctive_deps(
5387
					pkg, dep_root, dep_priority, dep_string)
5388
5389
				dep_string = portage.dep.paren_enclose(dep_string)
5390
5365
				vardb = self.roots[dep_root].trees["vartree"].dbapi
5391
				vardb = self.roots[dep_root].trees["vartree"].dbapi
5366
				try:
5392
				try:
5367
					selected_atoms = self._select_atoms(dep_root,
5393
					selected_atoms = self._select_atoms(dep_root,
Lines 5416-5423 Link Here
5416
			portage.writemsg("!!! Please notify the package maintainer " + \
5442
			portage.writemsg("!!! Please notify the package maintainer " + \
5417
				"that atoms must be fully-qualified.\n", noiselevel=-1)
5443
				"that atoms must be fully-qualified.\n", noiselevel=-1)
5418
			return 0
5444
			return 0
5445
		finally:
5446
			portage.dep._dep_check_strict = True
5419
		return 1
5447
		return 1
5420
5448
5449
	def _queue_disjunctive_deps(self, pkg, dep_root, dep_priority, dep_string):
5450
		"""
5451
		Queue disjunctive (virtual and ||) deps in self._dep_disjuctive_stack.
5452
		Return only non-disjunctive deps.
5453
		"""
5454
		raise NotImplementedError(self)
5455
5456
	def _pop_disjunctive_dep(self):
5457
		"""
5458
		Pop one disjuctive dep from self._dep_disjuctive_stack, and use it to
5459
		populate self._dep_stack.
5460
		"""
5461
		raise NotImplementedError(self)
5462
5421
	def _priority(self, **kwargs):
5463
	def _priority(self, **kwargs):
5422
		if "remove" in self.myparams:
5464
		if "remove" in self.myparams:
5423
			priority_constructor = UnmergeDepPriority
5465
			priority_constructor = UnmergeDepPriority

Return to bug 264434