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

Collapse All | Expand All

(-)/tmp/portage.py (-6 / +76 lines)
Lines 50-51 Link Here
50
incrementals=["USE","FEATURES","ACCEPT_KEYWORDS","ACCEPT_LICENSE","CONFIG_PROTECT_MASK","CONFIG_PROTECT","PRELINK_PATH","PRELINK_PATH_MASK"]
50
incrementals=["USE","PKGUSE","FEATURES","ACCEPT_KEYWORDS","ACCEPT_LICENSE","CONFIG_PROTECT_MASK","CONFIG_PROTECT","PRELINK_PATH","PRELINK_PATH_MASK"]
51
stickies=["KEYWORDS_ACCEPT","USE","CFLAGS","CXXFLAGS","MAKEOPTS","EXTRA_ECONF","EXTRA_EMAKE"]
51
stickies=["KEYWORDS_ACCEPT","USE","PKGUSE","CFLAGS","CXXFLAGS","MAKEOPTS","EXTRA_ECONF","EXTRA_EMAKE"]
Line 842 Link Here
842
		global incrementals,usesplit,profiledir
842
		global incrementals,usesplit,pkgusesplit,profiledir
Line 858 Link Here
859
				if mykey=="USE":
860
					mysplit=self.parseuse(mysplit)
Line 882 Link Here
885
Line 895 Link Here
899
900
		mypkgusesplit=pkgusesplit
901
		pkgusesplit={}
902
		for x in mypkgusesplit:
903
			mypos=0
904
			while mypos<len(mypkgusesplit[x]):
905
				if mypkgusesplit[x][mypos] in usesplit:
906
					del mypkgusesplit[x][mypos]
907
				else:
908
					mypos=mypos+1
909
			if mypkgusesplit[x]!=[]:
910
				pkgusesplit[x]=mypkgusesplit[x]
911
912
		self.configlist[-1]["PKGUSE"]=""
913
		for x in pkgusesplit:
914
			self.configlist[-1]["PKGUSE"]=self.configlist[-1]["PKGUSE"]+"( "+x+" => "+string.join(pkgusesplit[x]," ")+" )"
Line 896 Link Here
916
	def parseuse(self,myusesplit,mypos=0):
917
		global pkgusesplit
918
		try:
919
			if pkgusesplit: pass
920
		except:
921
			pkgusesplit={}
922
		while mypos<len(myusesplit):
923
			if myusesplit[mypos]=="(":
924
				firstpos=mypos
925
				mypos=mypos+1
926
				while mypos<len(myusesplit):
927
					if myusesplit[mypos]==")":
928
						if mypos==firstpos+3:
929
							myitems=[myusesplit[mypos-1]]
930
						elif mypos>firstpos+3:
931
							myitems=myusesplit[firstpos+2:mypos]
932
						pkg=myusesplit[firstpos+1]
933
						pkgusesplit[pkg]=[]
934
						for x in myitems:
935
							if x=="-*" or x=="*":
936
								myusesplit[firstpos:mypos+1]=[]
937
								mypos=firstpos-1
938
								break
939
							if x[0]=="-":
940
								y=x[1:]
941
							else:
942
								y="-"+x
943
							if x not in pkgusesplit[pkg] and y not in pkgusesplit[pkg]:
944
								pkgusesplit[pkg].append(x)
945
						myusesplit[firstpos:mypos+1]=[]
946
						mypos=firstpos-1
947
						break
948
					mypos=mypos+1
949
			mypos=mypos+1
950
		return myusesplit
951
Line 2290 Link Here
2290
def dep_check(depstring,mydbapi,use="yes",mode=None):
2345
def dep_check(depstring,mydbapi,use="yes",mode=None,parent=None):
Line 2292 Link Here
2292
	global usesplit
2347
	global usesplit,pkgusesplit
Line 2298 Link Here
2298
		myusesplit=usesplit
2353
		myusesplit=[]
2354
		for x in usesplit:
2355
			myusesplit.append(x)
2356
2357
		if parent and (pkgusesplit!={}):
2358
			myparent=pkgsplit(parent.split()[2])[0]
2359
			if pkgusesplit.has_key(myparent):
2360
				for x in pkgusesplit[myparent]:
2361
					if x[0]=="-":
2362
						y=x[1:]
2363
					else:
2364
						y="-"+x
2365
					if y in myusesplit:
2366
						myusesplit.remove(y)
2367
					if x not in myusesplit:
2368
						myusesplit.append(x)

Return to bug 13616