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

Collapse All | Expand All

(-)a/bin/emerge (-5 / +55 lines)
Lines 707-713 class depgraph: Link Here
707
			    If the package has new iuse flags or different use flags then if
707
			    If the package has new iuse flags or different use flags then if
708
			    --newuse is specified, we need to merge the package. """
708
			    --newuse is specified, we need to merge the package. """
709
			if merging==0 and "--newuse" in self.myopts and \
709
			if merging==0 and "--newuse" in self.myopts and \
710
				vardbapi.cpv_exists(mykey):
710
				mytype != "installed" and vardbapi.cpv_exists(mykey):
711
				old_use = vardbapi.aux_get(mykey, ["USE"])[0].split()
711
				old_use = vardbapi.aux_get(mykey, ["USE"])[0].split()
712
				if mytype == "binary":
712
				if mytype == "binary":
713
					iuses = bindb.aux_get(mykey, ["IUSE"])[0].split()
713
					iuses = bindb.aux_get(mykey, ["IUSE"])[0].split()
Lines 764-769 class depgraph: Link Here
764
				edepend["RDEPEND"]=string.join(mytbz2.getelements("RDEPEND")," ")
764
				edepend["RDEPEND"]=string.join(mytbz2.getelements("RDEPEND")," ")
765
				edepend["PDEPEND"]=string.join(mytbz2.getelements("PDEPEND")," ")
765
				edepend["PDEPEND"]=string.join(mytbz2.getelements("PDEPEND")," ")
766
				edepend["SLOT"]   =mytbz2.getfile("SLOT",mypkgparts[2])
766
				edepend["SLOT"]   =mytbz2.getfile("SLOT",mypkgparts[2])
767
		elif mytype == "installed":
768
			myfoo = self.trees[myroot]["vartree"].dbapi.aux_get(
769
				mykey, ["RDEPEND","PDEPEND"])
770
			edepend["DEPEND"]  = ""
771
			edepend["RDEPEND"] = myfoo[0]
772
			edepend["PDEPEND"] = myfoo[1]
767
		elif mytype=="ebuild":
773
		elif mytype=="ebuild":
768
			try:
774
			try:
769
				mymeta = ["DEPEND","RDEPEND","PDEPEND"]
775
				mymeta = ["DEPEND","RDEPEND","PDEPEND"]
Lines 965-970 class depgraph: Link Here
965
971
966
		portdb = self.trees[myroot]["porttree"].dbapi
972
		portdb = self.trees[myroot]["porttree"].dbapi
967
		bindb  = self.trees[myroot]["bintree"].dbapi
973
		bindb  = self.trees[myroot]["bintree"].dbapi
974
		vartree = self.trees[myroot]["vartree"]
968
		pkgsettings = self.pkgsettings[myroot]
975
		pkgsettings = self.pkgsettings[myroot]
969
976
970
		if "--debug" in self.myopts:
977
		if "--debug" in self.myopts:
Lines 1048-1059 class depgraph: Link Here
1048
					old_use = bindb.aux_get(myeb_pkg, ["USE"])[0].split()
1055
					old_use = bindb.aux_get(myeb_pkg, ["USE"])[0].split()
1049
					pkgsettings.setcpv(myeb_pkg)
1056
					pkgsettings.setcpv(myeb_pkg)
1050
					now_use = pkgsettings["USE"].split()
1057
					now_use = pkgsettings["USE"].split()
1051
					for x in iuses:
1058
					for useflag in iuses:
1052
						if (old_use.count(x) and not now_use.count(x)) or (not old_use.count(x) and now_use.count(x)):
1059
						if (old_use.count(useflag) and \
1060
							not now_use.count(useflag)) or \
1061
							(not old_use.count(useflag) and \
1062
							now_use.count(useflag)):
1053
							myeb_pkg = None
1063
							myeb_pkg = None
1054
							break
1064
							break
1055
1065
1056
				if (not myeb) and (not myeb_pkg):
1066
				myeb_inst = None
1067
				if not arg:
1068
					myeb_inst = portage.best(vartree.dbapi.match(x))
1069
					if myeb_inst and "--newuse" in self.myopts:
1070
						iuses, old_use = \
1071
							vartree.dbapi.aux_get(myeb_inst, ["IUSE","USE"])
1072
						iuses = iuses.split()
1073
						old_use = old_use.split()
1074
						now_use = pkgsettings["USE"].split()
1075
						for useflag in iuses:
1076
							if (old_use.count(useflag) and \
1077
								not now_use.count(useflag)) or \
1078
								(not old_use.count(useflag) and \
1079
								now_use.count(useflag)):
1080
								myeb_inst = None
1081
								break
1082
1083
				if (not myeb_inst) and (not myeb) and (not myeb_pkg):
1057
					if raise_on_missing:
1084
					if raise_on_missing:
1058
						raise ValueError
1085
						raise ValueError
1059
					if not arg:
1086
					if not arg:
Lines 1105-1111 class depgraph: Link Here
1105
					else:
1132
					else:
1106
						myeb_pkg = None
1133
						myeb_pkg = None
1107
1134
1108
				if myeb:
1135
				def cpvpkgsplit(cpv):
1136
					mysplit = portage.catpkgsplit(cpv)
1137
					return [mysplit[0] + "/" + mysplit[1],
1138
						mysplit[2], mysplit[3]]
1139
1140
				if myeb_inst and (myeb or myeb_pkg):
1141
					if myeb:
1142
						if portage.pkgcmp(
1143
							cpvpkgsplit(myeb), cpvpkgsplit(myeb_inst)) > 0:
1144
							myeb_inst = None
1145
						else:
1146
							myeb = None
1147
					else:
1148
						if portage.pkgcmp(
1149
							cpvpkgsplit(myeb_pkg), cpvpkgsplit(myeb_inst)) > 0:
1150
							myeb_inst = None
1151
						else:
1152
							myeb_pkg = None
1153
1154
				if myeb_inst:
1155
					binpkguseflags = \
1156
						vartree.dbapi.aux_get(myeb_inst, ["USE"])[0].split()
1157
					myk = ["installed", myroot, myeb_inst]
1158
				elif myeb:
1109
					myk=["ebuild",myroot,myeb]
1159
					myk=["ebuild",myroot,myeb]
1110
				elif myeb_pkg:
1160
				elif myeb_pkg:
1111
					binpkguseflags = \
1161
					binpkguseflags = \

Return to bug 48195