From 96d2dca381ee56072c8e5356b21141a8bbdfe5d4 Mon Sep 17 00:00:00 2001 From: Fabian Groffen Date: Fri, 29 Jun 2007 09:49:07 +0000 Subject: [PATCH] Merged from trunk 7086:7089 +------------------------------------------------------------------------+ | 7087 | Store name of source repository in vdb node for later | | genone | comparison | |--------+---------------------------------------------------------------| | 7088 | Use better parseable format for list_preserved_libs | | genone | | |--------+---------------------------------------------------------------| | 7089 | display source repository for installed package and target | | genone | package (bug #67072) | +------------------------------------------------------------------------+ svn path=/main/branches/prefix/; revision=7090 --- bin/portageq | 5 ++++- pym/emerge/__init__.py | 40 +++++++++++++++++++++++++++++------- pym/portage/dbapi/vartree.py | 12 ++++++++++- 3 files changed, 48 insertions(+), 9 deletions(-) diff --git a/bin/portageq b/bin/portageq index e0fef37b4..936324c36 100755 --- a/bin/portageq +++ b/bin/portageq @@ -296,10 +296,13 @@ def list_preserved_libs(argv): mylibs = portage.db[argv[0]]["vartree"].dbapi.plib_registry.getPreservedLibs() rValue = 0 for cpv in mylibs: + print cpv, for path in mylibs[cpv]: - print "%s: %s" % (cpv, path) + print path, rValue = 1 + print return rValue +list_preserved_libs.uses_root = True #----------------------------------------------------------------------------- # diff --git a/pym/emerge/__init__.py b/pym/emerge/__init__.py index 526737ca6..8f42fcabd 100644 --- a/pym/emerge/__init__.py +++ b/pym/emerge/__init__.py @@ -703,7 +703,7 @@ class FakeVartree(portage.vartree): if os.access(vdb_path, os.W_OK): vdb_lock = portage.locks.lockdir(vdb_path) mykeys = ["SLOT", "COUNTER", "PROVIDE", "USE", "IUSE", - "DEPEND", "RDEPEND", "PDEPEND"] + "DEPEND", "RDEPEND", "PDEPEND", "repository"] real_dbapi = real_vartree.dbapi slot_counters = {} for cpv in real_dbapi.cpv_all(): @@ -937,7 +937,7 @@ class depgraph(object): self._slot_node_map = {} self.mydbapi = {} self._mydbapi_keys = ["SLOT", "DEPEND", "RDEPEND", "PDEPEND", - "USE", "IUSE", "PROVIDE"] + "USE", "IUSE", "PROVIDE", "repository"] self.useFlags = {} self.trees = {} for myroot in trees: @@ -2802,11 +2802,35 @@ class depgraph(object): # x = ['binary', '/', 'sys-apps/pcmcia-cs-3.2.7.2.6', 'merge'] file_name = portdb.findname(pkg_key) if file_name: # It might not exist in the tree + newrepo = pkgsettings["PORTDIR"] + newrepoindex = "0" + if self.trees[x[1]]["vartree"].dbapi.cpv_exists(pkg): + oldrepo = self.trees[x[1]]["vartree"].dbapi.aux_get(pkg, ["repository"])[0] + else: + oldrepo = "" + if oldrepo != "": + oldrepo = portdb.getRepositoryPath(oldrepo) dir_name=os.path.abspath(os.path.dirname(file_name)+"/../..") - if (overlays_real.count(dir_name)>0): - verboseadd+=teal("["+str(overlays_real.index( - os.path.normpath(dir_name))+1)+"]")+" " - display_overlays=True + if (overlays_real.count(dir_name) > 0): + newrepoindex = overlays_real.index(os.path.normpath(dir_name)) + newrepo = overlays_real[newrepoindex] + newrepoindex += 1 + + # assing lookup indexes + if oldrepo == "": + oldrepoindex = "?" + elif oldrepo == pkgsettings["PORTDIR"]: + oldrepoindex = "0" + else: + oldrepoindex = str(overlays_real.index(os.path.normpath(oldrepo)) + 1) + if oldrepoindex == newrepoindex \ + or not self.trees[x[1]]["vartree"].dbapi.cpv_exists(pkg): + repoadd = newrepoindex + else: + repoadd = "%s=>%s" % (oldrepoindex, newrepoindex) + + verboseadd+=teal("[%s]" % repoadd)+" " + display_overlays=True else: verboseadd += "[No ebuild?]" @@ -2949,11 +2973,13 @@ class depgraph(object): print print counters if overlays and display_overlays: - print "Portage overlays:" + print "Portage tree and overlays:" y=0 + print " "+teal("[0]"), self.settings["PORTDIR"] for x in overlays: y=y+1 print " "+teal("["+str(y)+"]"),x + print " "+teal("[?]"), "indicates that the source repository could not be determined" if "--changelog" in self.myopts: print diff --git a/pym/portage/dbapi/vartree.py b/pym/portage/dbapi/vartree.py index ad8e46432..06530e4a2 100644 --- a/pym/portage/dbapi/vartree.py +++ b/pym/portage/dbapi/vartree.py @@ -185,7 +185,7 @@ class vardbapi(dbapi): vartree = db[root]["vartree"] self.vartree = vartree self._aux_cache_keys = set(["SLOT", "COUNTER", "PROVIDE", "USE", - "IUSE", "DEPEND", "RDEPEND", "PDEPEND", "NEEDED"]) + "IUSE", "DEPEND", "RDEPEND", "PDEPEND", "NEEDED", "repository"]) self._aux_cache = None self._aux_cache_version = "1" self._aux_cache_filename = os.path.join(self.root, @@ -1699,6 +1699,16 @@ class dblink(object): for x in listdir(inforoot): self.copyfile(inforoot+"/"+x) + # do we have a origin repository name for the current package + repopath = os.sep.join(self.settings["O"].split(os.sep)[:-2]) + if mydbapi != None: + for reponame in mydbapi.getRepositories(): + if mydbapi.getRepositoryPath(reponame) == repopath: + fd = open(os.path.join(self.dbtmpdir, "repository"), "w") + fd.write(reponame+"\n") + fd.close() + break + # write local package counter for recording lcfile = open(os.path.join(self.dbtmpdir, "COUNTER"),"w") lcfile.write(str(counter)) -- 2.26.2