--- pym/portage.py 2003-08-07 13:29:11.000000000 -0700 +++ pym/portage.py 2003-08-07 13:16:01.000000000 -0700 @@ -3773,6 +3841,18 @@ if mylist==None: return [] newlist=[] + pkglist=grabfile("/etc/portage/package.keywords") + pkgdict = {} + for line in pkglist: + # default to ~arch if no specific keyword is given + if len(line.split()) == 1: + mykeywordlist = [] + for keyword in groups: + if not keyword[0] in "~-": + mykeywordlist.append("~"+keyword) + pkgdict[line] = mykeywordlist + else: + pkgdict[line.split()[0]] = line.split()[1:] for mycpv in mylist: #we need to update this next line when we have fully integrated the new db api auxerr=0 @@ -3785,15 +3854,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: