Merged from trunk 5183:5185
authorFabian Groffen <grobian@gentoo.org>
Wed, 6 Dec 2006 20:42:14 +0000 (20:42 -0000)
committerFabian Groffen <grobian@gentoo.org>
Wed, 6 Dec 2006 20:42:14 +0000 (20:42 -0000)
Remove dependence on the vartree api by using equivalent vardbapi calls.

Only call calc_changelog if there is an installed version in the same
slot.

svn path=/main/branches/prefix/; revision=5187

bin/emerge

index e659c9b41533913413a3a1a9ae172aac15b38cf9..34f1603339709f26f81c86207157ca92f3486cad 100755 (executable)
@@ -1848,6 +1848,7 @@ class depgraph:
                        pkg_key = x[2]
                        portdb = self.trees[myroot]["porttree"].dbapi
                        bindb  = self.trees[myroot]["bintree"].dbapi
+                       vardb = self.trees[myroot]["vartree"].dbapi
                        vartree = self.trees[myroot]["vartree"]
                        pkgsettings = self.pkgsettings[myroot]
 
@@ -1856,7 +1857,8 @@ class depgraph:
                        if x[0]=="blocks":
                                addl=""+red("B")+"  "+fetch+"  "
                                counters.blocks += 1
-                               resolved = self.trees[x[1]]["vartree"].resolve_key(x[2])
+                               resolved = portage.key_expand(
+                                       pkg_key, mydb=vardb, settings=pkgsettings)
                                print "["+x[0]+" "+addl+"]",red(resolved),
                                block_parents = self.blocker_parents[" ".join(x)]
                                block_parents = [pnode.split()[2] for pnode in block_parents]
@@ -1901,16 +1903,16 @@ class depgraph:
                                #we need to use "--emptrytree" testing here rather than "empty" param testing because "empty"
                                #param is used for -u, where you still *do* want to see when something is being upgraded.
                                myoldbest=""
-                               if self.trees[x[1]]["vartree"].exists_specific(pkg_key):
+                               if vardb.cpv_exists(pkg_key):
                                        addl="  "+yellow("R")+fetch+"  "
                                        if x[3] != "nomerge":
                                                counters.reinst += 1
-                               elif self.trees[x[1]]["vartree"].exists_specific_cat(pkg_key):
+                               elif vardb.match(portage.dep_getkey(pkg_key)):
                                        mynewslot = mydbapi.aux_get(pkg_key, ["SLOT"])[0]
                                        myoldlist = self.trees[x[1]]["vartree"].dbapi.match(
                                                portage.pkgsplit(x[2])[0])
                                        myinslotlist = [inst_pkg for inst_pkg in myoldlist
-                                               if mynewslot == vartree.getslot(inst_pkg)]
+                                               if mynewslot == vardb.aux_get(inst_pkg, ["SLOT"])[0]]
                                        if myinslotlist:
                                                myoldbest=portage.best(myinslotlist)
                                                addl="   "+fetch
@@ -1928,10 +1930,13 @@ class depgraph:
                                                counters.newslot += 1
 
                                        if "--changelog" in self.myopts:
-                                               changelogs.extend(self.calc_changelog(
-                                                       portdb.findname(pkg_key),
-                                                       self.trees[x[1]]["vartree"].dep_bestmatch(
-                                                       '/'.join(portage.catpkgsplit(x[2])[:2])), x[2]))
+                                               slot_atom = "%s:%s" % (portage.dep_getkey(pkg_key),
+                                                       mydbapi.aux_get(pkg_key, ["SLOT"])[0])
+                                               inst_matches = vardb.match(slot_atom)
+                                               if inst_matches:
+                                                       changelogs.extend(self.calc_changelog(
+                                                               portdb.findname(pkg_key),
+                                                               inst_matches[0], pkg_key))
                                else:
                                        addl=" "+green("N")+" "+fetch+"  "
                                        counters.new += 1