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

Collapse All | Expand All

(-)bin/emerge (-5 / +8 lines)
Lines 796-802 Link Here
796
		    emerge --deep <pkgspec>; we need to recursively check dependencies of pkgspec
796
		    emerge --deep <pkgspec>; we need to recursively check dependencies of pkgspec
797
		    If we are in --nodeps (no recursion) mode, we obviously only check 1 level of dependencies.
797
		    If we are in --nodeps (no recursion) mode, we obviously only check 1 level of dependencies.
798
		"""
798
		"""
799
		if "deep" not in self.myparams and not merging:
799
		if "deep" not in self.myparams and not merging and \
800
			not ("--update" in self.myopts and arg and merging):
800
			return 1
801
			return 1
801
		elif "recurse" not in self.myparams:
802
		elif "recurse" not in self.myparams:
802
			return 1
803
			return 1
Lines 825-831 Link Here
825
826
826
		try:
827
		try:
827
			if not self.select_dep("/", edepend["DEPEND"], myparent=mp,
828
			if not self.select_dep("/", edepend["DEPEND"], myparent=mp,
828
				myuse=myuse):
829
				myuse=myuse, parent_arg=arg):
829
				return 0
830
				return 0
830
			"""RDEPEND is soft by definition.  However, in order to ensure
831
			"""RDEPEND is soft by definition.  However, in order to ensure
831
			correct merge order, we make it a hard dependency.  Otherwise, a
832
			correct merge order, we make it a hard dependency.  Otherwise, a
Lines 833-845 Link Here
833
			dependencies not being installed yet.
834
			dependencies not being installed yet.
834
			"""
835
			"""
835
			if not self.select_dep(myroot,edepend["RDEPEND"], myparent=mp,
836
			if not self.select_dep(myroot,edepend["RDEPEND"], myparent=mp,
836
				myuse=myuse, soft_deps=False):
837
				myuse=myuse, soft_deps=False, parent_arg=arg):
837
				return 0
838
				return 0
838
			if edepend.has_key("PDEPEND") and edepend["PDEPEND"]:
839
			if edepend.has_key("PDEPEND") and edepend["PDEPEND"]:
839
				# Post Depend -- Add to the list without a parent, as it depends
840
				# Post Depend -- Add to the list without a parent, as it depends
840
				# on a package being present AND must be built after that package.
841
				# on a package being present AND must be built after that package.
841
				if not self.select_dep(myroot, edepend["PDEPEND"], myparent=mp,
842
				if not self.select_dep(myroot, edepend["PDEPEND"], myparent=mp,
842
					myuse=myuse, soft_deps=True, rev_deps=True):
843
					myuse=myuse, soft_deps=True, rev_deps=True, parent_arg=arg):
843
					return 0
844
					return 0
844
		except ValueError, e:
845
		except ValueError, e:
845
			pkgs = e.args[0]
846
			pkgs = e.args[0]
Lines 1007-1013 Link Here
1007
						return match
1008
						return match
1008
1009
1009
	def select_dep(self, myroot, depstring, myparent=None, arg=None,
1010
	def select_dep(self, myroot, depstring, myparent=None, arg=None,
1010
		myuse=None, raise_on_missing=False, soft_deps=False, rev_deps=False):
1011
		myuse=None, raise_on_missing=False, soft_deps=False, rev_deps=False,
1012
		parent_arg=None):
1011
		""" Given a depstring, create the depgraph such that all dependencies are satisfied.
1013
		""" Given a depstring, create the depgraph such that all dependencies are satisfied.
1012
		    myroot = $ROOT from environment, where {R,P}DEPENDs are merged to.
1014
		    myroot = $ROOT from environment, where {R,P}DEPENDs are merged to.
1013
		    myparent = the node whose depstring is being passed in
1015
		    myparent = the node whose depstring is being passed in
Lines 1095-1100 Link Here
1095
					discarded here."""
1097
					discarded here."""
1096
					if "empty" not in self.myparams and \
1098
					if "empty" not in self.myparams and \
1097
						"deep" not in self.myparams and \
1099
						"deep" not in self.myparams and \
1100
						not ("--update" in self.myopts and parent_arg) and \
1098
						vardb.match(x):
1101
						vardb.match(x):
1099
						continue
1102
						continue
1100
1103

Return to bug 149208