--- emerge 2004-06-12 11:04:58.000000000 +0900 +++ emerge.new 2004-06-12 11:04:01.119892440 +0900 @@ -749,12 +749,16 @@ #for --update, we want to rebuild an entire empty tree of dependencies, and then we won't merge was is already merged. self.mydbapi["/"]=self.fakedbapi else: - self.mydbapi["/"]=portage.db["/"]["vartree"].dbapi + self.mydbapi["/"]=portage.fakedbapi() + for pkg in portage.db["/"]["vartree"].getallcpv(): + self.mydbapi["/"].cpv_inject(pkg) if portage.root!="/": if "empty" in myparams: self.mydbapi[portage.root]=self.fakedbapi else: - self.mydbapi[portage.root]=portage.db[portage.root]["vartree"].dbapi + self.mydbapi[portage.root]=portage.fakedbapi() + for pkg in portage.db[portage.root]["vartree"].getallcpv(): + self.mydbapi[portage.root].cpv_inject(pkg) if "--usepkg" in myopts: try: @@ -823,9 +827,18 @@ merging=2 if merging==1: mybigkey.append("merge") + self.mydbapi[myroot].cpv_inject(mykey) + else: mybigkey.append("nomerge") - + + virts = portage.db[myroot]["porttree"].dbapi.aux_get(mykey, ["PROVIDE"])[0].split() + cp = portage.dep_getkey(mykey) + for virt in virts: + while cp in portage.virts[virt]: + portage.virts[virt].remove(cp) + portage.virts[virt].insert(0, cp) + # whatever the case, we need to add the node to our digraph so # that children can depend upon it. self.digraph.addnode(string.join(mybigkey),myparent)