Go to:
Gentoo Home
Documentation
Forums
Lists
Bugs
Planet
Store
Wiki
Get Gentoo!
Gentoo's Bugzilla – Attachment 17926 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-2.0.49-r4-per_package_use_flags.patch
portage.py-2.0.49-r4-per_package_use_flags.patch (text/plain), 4.13 KB, created by
Max Kalika (RETIRED)
on 2003-09-17 15:50:09 UTC
(
hide
)
Description:
portage.py-2.0.49-r4-per_package_use_flags.patch
Filename:
MIME Type:
Creator:
Max Kalika (RETIRED)
Created:
2003-09-17 15:50:09 UTC
Size:
4.13 KB
patch
obsolete
>--- portage.py 2003-08-07 13:29:11.000000000 -0700 >+++ portage.py 2003-08-07 13:16:01.000000000 -0700 >@@ -899,6 +899,7 @@ > sys.exit(1) > self.configlist.append(self.mygcfg) > self.configdict["conf"]=self.configlist[-1] >+ self.configdict["conf"]["PUSEDICT"]=grabdict("/etc/portage/package.use") > > for x in incrementals: > if os.environ.has_key(x): >@@ -927,7 +928,11 @@ > self.regenerate() > > def regenerate(self,useonly=0): >- global incrementals,usesplit,profiledir >+ global incrementals,usesplit,pkgusesplit,profiledir >+ >+ # initialize per-package use variables to an empty dictionary >+ pkgusesplit={} >+ > if useonly: > myincrementals=["USE"] > else: >@@ -970,6 +975,35 @@ > #now append our new setting > if add: > mysetting.append(add) >+ #override per-package use flags >+ if mykey=="USE" and pkgusesplit!={}: >+ for y in pkgusesplit: >+ if add in pkgusesplit[y]: >+ pkgusesplit[y].remove(add) >+ if add[0]=="-" and add[1:] in pkgusesplit[y]: >+ pkgusesplit[y].remove(add[1:]) >+ if add[0]!="-" and "-"+add in pkgusesplit[y]: >+ pkgusesplit[y].remove("-"+add) >+ >+ # initialize per-package use flags >+ if mykey=="USE" and curdb.has_key("PUSEDICT"): >+ for x in curdb["PUSEDICT"]: >+ if x[0]=="#": >+ continue >+ mypkgusesplit=[] >+ for y in curdb["PUSEDICT"][x]: >+ if y=="-*" or y=="*": >+ continue >+ if y[0]=="-": >+ z=y[1:] >+ else: >+ z="-"+y >+ if y not in mysetting and y not in mypkgusesplit and z not in mypkgusesplit: >+ mypkgusesplit.append(y) >+ if mypkgusesplit: >+ pkgusesplit[x]=mypkgusesplit >+ del(curdb["PUSEDICT"]) >+ > #store setting in last element of configlist, the original environment: > self.configlist[-1][mykey]=string.join(mysetting," ") > #cache split-up USE var in a global >@@ -994,7 +1028,16 @@ > if self.configdict["defaults"]["ARCH"] not in usesplit: > usesplit.insert(0,self.configdict["defaults"]["ARCH"]) > self.configlist[-1]["USE"]=string.join(usesplit," ") >- >+ >+ # Store per-package setting in configlist for display in emerge --info >+ self.configlist[-1]["PKGUSE"]="" >+ mypkgusesplit=pkgusesplit.copy() >+ for x in mypkgusesplit: >+ if pkgusesplit[x]==[]: >+ del(pkgusesplit[x]) >+ else: >+ self.configlist[-1]["PKGUSE"]=self.configlist[-1]["PKGUSE"]+"( "+x+" => "+string.join(pkgusesplit[x]," ")+" )" >+ > def __getitem__(self,mykey): > if mykey=="CONFIG_PROTECT_MASK": > suffix=" /etc/env.d" >@@ -1571,6 +1614,9 @@ > settings["PVR"]=mysplit[1] > else: > settings["PVR"]=mysplit[1]+"-"+mysplit[2] >+ >+ settings["PUSE"]=string.join(dep_getpuse(category+"/"+pf)," ") >+ > settings["SLOT"]="" > if settings.has_key("PATH"): > mysplit=string.split(settings["PATH"],":") >@@ -2602,6 +2648,22 @@ > mydep=mydep[1:] > return prefix+cpv_expand(mydep,mydb)+postfix > >+def dep_getpuse(mypkg): >+ global usesplit,pkgusesplit >+ if not len(mypkg): >+ return [] >+ mylist=[] >+ for mykey in pkgusesplit: >+ if db["/"]["porttree"].dbapi.xmatch("bestmatch-list", mykey, None, None, [mypkg]): >+ for x in pkgusesplit[mykey]: >+ if x[0]=="-": >+ y=x[1:] >+ else: >+ y="-"+x >+ if y not in mylist and x not in mylist: >+ mylist.append(x) >+ return mylist >+ > def dep_check(depstring,mydbapi,use="yes",mode=None,myuse=None): > """Takes a depend string and parses the condition.""" > global usesplit >@@ -3824,6 +3892,7 @@ > if mylist==None: > return [] > newlist=[] >+ pkgdict=grabdict("/etc/portage/package.keywords") > for mycpv in mylist: > #we need to update this next line when we have fully integrated the new db api > auxerr=0 >@@ -3836,15 +3905,19 @@ > #print "!!! No KEYWORDS for "+str(mycpv)+" -- Untested Status" > continue > mygroups=myaux[0].split() >+ pgroups=groups[:] > match=0 >+ for mykey in pkgdict: >+ if db["/"]["porttree"].dbapi.xmatch("bestmatch-list", mykey, None, None, [mycpv]): >+ pgroups.extend(pkgdict[mykey]) > for gp in mygroups: > if gp=="*": > match=1 > break >- elif "-"+gp in groups: >+ elif "-"+gp in pgroups: > match=0 > break >- elif gp in groups: >+ elif gp in pgroups: > match=1 > break > if match:
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