Lines 800-806
Link Here
|
800 |
self.regenerate() |
800 |
self.regenerate() |
801 |
|
801 |
|
802 |
def regenerate(self,useonly=0): |
802 |
def regenerate(self,useonly=0): |
803 |
global incrementals,usesplit,profiledir |
803 |
global incrementals,usesplit,pkgusesplit,profiledir |
804 |
if useonly: |
804 |
if useonly: |
805 |
myincrementals=["USE"] |
805 |
myincrementals=["USE"] |
806 |
else: |
806 |
else: |
Lines 817-822
Link Here
|
817 |
continue |
817 |
continue |
818 |
#variables are already expanded |
818 |
#variables are already expanded |
819 |
mysplit=curdb[mykey].split() |
819 |
mysplit=curdb[mykey].split() |
|
|
820 |
if mykey=="USE": |
821 |
mysplit=self.parseuse(mysplit) |
820 |
for x in mysplit: |
822 |
for x in mysplit: |
821 |
if x=="-*": |
823 |
if x=="-*": |
822 |
# "-*" is a special "minus" var that means "unset all settings". so USE="-* gnome" will have *just* gnome enabled. |
824 |
# "-*" is a special "minus" var that means "unset all settings". so USE="-* gnome" will have *just* gnome enabled. |
Lines 850-856
Link Here
|
850 |
if self.configdict["defaults"]["ARCH"] not in usesplit: |
852 |
if self.configdict["defaults"]["ARCH"] not in usesplit: |
851 |
usesplit.insert(0,self.configdict["defaults"]["ARCH"]) |
853 |
usesplit.insert(0,self.configdict["defaults"]["ARCH"]) |
852 |
self.configlist[-1]["USE"]=string.join(usesplit," ") |
854 |
self.configlist[-1]["USE"]=string.join(usesplit," ") |
|
|
855 |
mypkgusesplit=pkgusesplit |
856 |
pkgusesplit={} |
857 |
for x in mypkgusesplit: |
858 |
mypos=0 |
859 |
while mypos<len(mypkgusesplit[x]): |
860 |
if mypkgusesplit[x][mypos] in usesplit: |
861 |
del mypkgusesplit[x][mypos] |
862 |
else: |
863 |
mypos=mypos+1 |
864 |
if mypkgusesplit[x]!=[]: |
865 |
pkgusesplit[x]=mypkgusesplit[x] |
853 |
|
866 |
|
|
|
867 |
def parseuse(self,myusesplit,mypos=0): |
868 |
global pkgusesplit |
869 |
try: |
870 |
if pkgusesplit: pass |
871 |
except: |
872 |
pkgusesplit={} |
873 |
while mypos<len(myusesplit): |
874 |
if myusesplit[mypos]=="(": |
875 |
firstpos=mypos |
876 |
mypos=mypos+1 |
877 |
while mypos<len(myusesplit): |
878 |
if myusesplit[mypos]==")": |
879 |
if mypos==firstpos+3: |
880 |
myitems=[myusesplit[mypos-1]] |
881 |
elif mypos>firstpos+3: |
882 |
myitems=myusesplit[firstpos+2:mypos] |
883 |
pkg=myusesplit[firstpos+1] |
884 |
pkgusesplit[pkg]=[] |
885 |
for x in myitems: |
886 |
if x=="-*" or x=="*": |
887 |
myusesplit[firstpos:mypos+1]=[] |
888 |
mypos=firstpos-1 |
889 |
break |
890 |
if x[0]=="-": |
891 |
y=x[1:] |
892 |
else: |
893 |
y="-"+x |
894 |
if x not in pkgusesplit[pkg] and y not in pkgusesplit[pkg]: |
895 |
pkgusesplit[pkg].append(x) |
896 |
myusesplit[firstpos:mypos+1]=[] |
897 |
mypos=firstpos-1 |
898 |
break |
899 |
mypos=mypos+1 |
900 |
mypos=mypos+1 |
901 |
return myusesplit |
902 |
|
854 |
def __getitem__(self,mykey): |
903 |
def __getitem__(self,mykey): |
855 |
if mykey=="CONFIG_PROTECT_MASK": |
904 |
if mykey=="CONFIG_PROTECT_MASK": |
856 |
suffix=" /etc/env.d" |
905 |
suffix=" /etc/env.d" |
Lines 2218-2232
Link Here
|
2218 |
mydep=mydep[1:] |
2267 |
mydep=mydep[1:] |
2219 |
return prefix+cpv_expand(mydep,mydb)+postfix |
2268 |
return prefix+cpv_expand(mydep,mydb)+postfix |
2220 |
|
2269 |
|
2221 |
def dep_check(depstring,mydbapi,use="yes",mode=None): |
2270 |
def dep_check(depstring,mydbapi,use="yes",mode=None,parent=None): |
2222 |
"""Takes a depend string and parses the condition.""" |
2271 |
"""Takes a depend string and parses the condition.""" |
2223 |
global usesplit |
2272 |
global usesplit,pkgusesplit |
2224 |
if use=="all": |
2273 |
if use=="all": |
2225 |
#enable everything (for repoman) |
2274 |
#enable everything (for repoman) |
2226 |
myusesplit=["*"] |
2275 |
myusesplit=["*"] |
2227 |
elif use=="yes": |
2276 |
elif use=="yes": |
2228 |
#default behavior |
2277 |
#default behavior |
2229 |
myusesplit=usesplit |
2278 |
myusesplit=usesplit |
|
|
2279 |
if parent and (pkgusesplit!={}): |
2280 |
myparent=string.split(parent)[2] |
2281 |
for x in pkgusesplit: |
2282 |
if string.count(myparent,x,0): |
2283 |
for y in pkgusesplit[x]: |
2284 |
if y[0]=="-": |
2285 |
z=y[1:] |
2286 |
else: |
2287 |
z="-"+y |
2288 |
if z in myusesplit: |
2289 |
myusesplit.remove(z) |
2290 |
if y not in myusesplit: |
2291 |
myusesplit.append(y) |
2230 |
else: |
2292 |
else: |
2231 |
#we are being run by autouse(), don't consult USE vars yet. |
2293 |
#we are being run by autouse(), don't consult USE vars yet. |
2232 |
myusesplit=[] |
2294 |
myusesplit=[] |