Go to:
Gentoo Home
Documentation
Forums
Lists
Bugs
Planet
Store
Wiki
Get Gentoo!
Gentoo's Bugzilla – Attachment 7155 Details for
Bug 13616
per package USE flags and KEYWORDS
Home
|
New
–
[Ex]
|
Browse
|
Search
|
Privacy Policy
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
portage.py to allow for per-package USE flags
portage.py_per_package_use.patch (text/plain), 3.07 KB, created by
Max Kalika (RETIRED)
on 2003-01-09 22:24:49 UTC
(
hide
)
Description:
portage.py to allow for per-package USE flags
Filename:
MIME Type:
Creator:
Max Kalika (RETIRED)
Created:
2003-01-09 22:24:49 UTC
Size:
3.07 KB
patch
obsolete
>--- /usr/lib/python2.2/site-packages/portage.py 2002-12-29 19:39:01.000000000 -0800 >+++ /usr/local/portage/portage.py 2003-01-09 19:45:44.000000000 -0800 >@@ -787,7 +787,7 @@ > self.regenerate() > > def regenerate(self,useonly=0): >- global incrementals,usesplit,profiledir >+ global incrementals,usesplit,pkgusesplit,profiledir > if useonly: > myincrementals=["USE"] > else: >@@ -804,6 +804,8 @@ > continue > #variables are already expanded > mysplit=curdb[mykey].split() >+ if mykey=="USE": >+ mysplit=self.parseuse(mysplit) > for x in mysplit: > if x=="-*": > # "-*" is a special "minus" var that means "unset all settings". so USE="-* gnome" will have *just* gnome enabled. >@@ -837,7 +839,54 @@ > if self.configdict["defaults"]["ARCH"] not in usesplit: > usesplit.insert(0,self.configdict["defaults"]["ARCH"]) > self.configlist[-1]["USE"]=string.join(usesplit," ") >+ mypkgusesplit=pkgusesplit >+ pkgusesplit={} >+ for x in mypkgusesplit: >+ mypos=0 >+ while mypos<len(mypkgusesplit[x]): >+ if mypkgusesplit[x][mypos] in usesplit: >+ del mypkgusesplit[x][mypos] >+ else: >+ mypos=mypos+1 >+ if mypkgusesplit[x]!=[]: >+ pkgusesplit[x]=mypkgusesplit[x] > >+ def parseuse(self,myusesplit,mypos=0): >+ global pkgusesplit >+ try: >+ if pkgusesplit: pass >+ except: >+ pkgusesplit={} >+ while mypos<len(myusesplit): >+ if myusesplit[mypos]=="(": >+ firstpos=mypos >+ mypos=mypos+1 >+ while mypos<len(myusesplit): >+ if myusesplit[mypos]==")": >+ if mypos==firstpos+3: >+ myitems=[myusesplit[mypos-1]] >+ elif mypos>firstpos+3: >+ myitems=myusesplit[firstpos+2:mypos] >+ pkg=myusesplit[firstpos+1] >+ pkgusesplit[pkg]=[] >+ for x in myitems: >+ if x=="-*" or x=="*": >+ myusesplit[firstpos:mypos+1]=[] >+ mypos=firstpos-1 >+ break >+ if x[0]=="-": >+ y=x[1:] >+ else: >+ y="-"+x >+ if x not in pkgusesplit[pkg] and y not in pkgusesplit[pkg]: >+ pkgusesplit[pkg].append(x) >+ myusesplit[firstpos:mypos+1]=[] >+ mypos=firstpos-1 >+ break >+ mypos=mypos+1 >+ mypos=mypos+1 >+ return myusesplit >+ > def __getitem__(self,mykey): > if mykey=="CONFIG_PROTECT_MASK": > suffix=" /etc/env.d" >@@ -2187,15 +2236,28 @@ > mydep=mydep[1:] > return prefix+cpv_expand(mydep,mydb)+postfix > >-def dep_check(depstring,mydbapi,use="yes",mode=None): >+def dep_check(depstring,mydbapi,use="yes",mode=None,parent=None): > """Takes a depend string and parses the condition.""" >- global usesplit >+ global usesplit,pkgusesplit > if use=="all": > #enable everything (for repoman) > myusesplit=["*"] > elif use=="yes": > #default behavior > myusesplit=usesplit >+ if parent and (pkgusesplit!={}): >+ myparent=string.split(parent)[2] >+ for x in pkgusesplit: >+ if string.count(myparent,x,0): >+ for y in pkgusesplit[x]: >+ if y[0]=="-": >+ z=y[1:] >+ else: >+ z="-"+y >+ if z in myusesplit: >+ myusesplit.remove(z) >+ if y not in myusesplit: >+ myusesplit.append(y) > else: > #we are being run by autouse(), don't consult USE vars yet. > myusesplit=[]
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 13616
:
7155
|
7156
|
7264
|
7265
|
9218
|
9219
|
10588
|
10589
|
12254
|
12255
|
13752
|
13753
|
14390
|
14678
|
14679
|
14847
|
14873
|
15239
|
15240
|
15241
|
15291
|
15303
|
15304
|
15347
|
15348
|
15349
|
15614
|
15715
|
16609
|
16610
|
16611
|
16768
|
17925
|
17926
|
19128
|
20637
|
20652
|
21575
|
21577