From a715b65f7bd36409c1283e6911265d1f4405ab7a Mon Sep 17 00:00:00 2001 From: Zac Medico Date: Tue, 25 Oct 2011 01:59:39 -0700 Subject: Use EROOT instead of ROOT for keys everywhere. It makes more sense to use EROOT instead of ROOT for keys in mappings like portage.db, since it allows for multiple prefixes to exist simultaneously within the same map without having a key collision. This affects all portageq commands which take a parameter, since that parameter now corresponds to EROOT instead of ROOT. None of this makes any difference for non-prefix users, since EROOT and ROOT are identical when EPREFIX is empty. --- bin/ebuild | 4 ++-- bin/emaint | 20 ++++++++++---------- bin/glsa-check | 5 +++-- bin/portageq | 27 ++++++++++++++++----------- bin/quickpkg | 24 +++++++++++------------- bin/regenworld | 5 ++--- 6 files changed, 44 insertions(+), 41 deletions(-) (limited to 'bin') diff --git a/bin/ebuild b/bin/ebuild index 771ccb51c..82f0ff990 100755 --- a/bin/ebuild +++ b/bin/ebuild @@ -260,14 +260,14 @@ if "merge" in pargs and "noauto" in tmpsettings.features: try: metadata = dict(zip(Package.metadata_keys, - portage.db[portage.settings["ROOT"]][mytree].dbapi.aux_get( + portage.db[portage.settings['EROOT']][mytree].dbapi.aux_get( cpv, Package.metadata_keys, myrepo=myrepo))) except KeyError: # aux_get failure, message should have been shown on stderr. sys.exit(1) root_config = RootConfig(portage.settings, - portage.db[portage.settings["ROOT"]], None) + portage.db[portage.settings['EROOT']], None) pkg = Package(built=(pkg_type != "ebuild"), cpv=cpv, installed=(pkg_type=="installed"), diff --git a/bin/emaint b/bin/emaint index fdd01ed55..ea26e5548 100755 --- a/bin/emaint +++ b/bin/emaint @@ -40,15 +40,15 @@ class WorldHandler(object): self.okay = [] from portage._sets import load_default_config setconfig = load_default_config(portage.settings, - portage.db[portage.settings["ROOT"]]) + portage.db[portage.settings['EROOT']]) self._sets = setconfig.getSets() def _check_world(self, onProgress): categories = set(portage.settings.categories) - myroot = portage.settings["ROOT"] - self.world_file = os.path.join(portage.settings["EROOT"], portage.const.WORLD_FILE) + eroot = portage.settings['EROOT'] + self.world_file = os.path.join(eroot, portage.const.WORLD_FILE) self.found = os.access(self.world_file, os.R_OK) - vardb = portage.db[myroot]["vartree"].dbapi + vardb = portage.db[eroot]["vartree"].dbapi from portage._sets import SETPREFIX sets = self._sets @@ -120,8 +120,8 @@ class BinhostHandler(object): name = staticmethod(name) def __init__(self): - myroot = portage.settings["ROOT"] - self._bintree = portage.db[myroot]["bintree"] + eroot = portage.settings['EROOT'] + self._bintree = portage.db[eroot]["bintree"] self._bintree.populate() self._pkgindex_file = self._bintree._pkgindex_file self._pkgindex = self._bintree._load_pkgindex() @@ -403,8 +403,8 @@ class MoveInstalled(MoveHandler): return "moveinst" name = staticmethod(name) def __init__(self): - myroot = portage.settings["ROOT"] - MoveHandler.__init__(self, portage.db[myroot]["vartree"], portage.db[myroot]["porttree"]) + eroot = portage.settings['EROOT'] + MoveHandler.__init__(self, portage.db[eroot]["vartree"], portage.db[eroot]["porttree"]) class MoveBinary(MoveHandler): @@ -414,8 +414,8 @@ class MoveBinary(MoveHandler): return "movebin" name = staticmethod(name) def __init__(self): - myroot = portage.settings["ROOT"] - MoveHandler.__init__(self, portage.db[myroot]["bintree"], portage.db[myroot]["porttree"]) + eroot = portage.settings['EROOT'] + MoveHandler.__init__(self, portage.db[eroot]["bintree"], portage.db[eroot]['porttree']) class VdbKeyHandler(object): def name(): diff --git a/bin/glsa-check b/bin/glsa-check index 2f2d55523..a840c3206 100755 --- a/bin/glsa-check +++ b/bin/glsa-check @@ -103,8 +103,9 @@ elif mode == "list" and not params: # delay this for speed increase from portage.glsa import * -vardb = portage.db[portage.settings["ROOT"]]["vartree"].dbapi -portdb = portage.db["/"]["porttree"].dbapi +eroot = portage.settings['EROOT'] +vardb = portage.db[eroot]["vartree"].dbapi +portdb = portage.db[eroot]["porttree"].dbapi # build glsa lists completelist = get_glsa_list(portage.settings) diff --git a/bin/portageq b/bin/portageq index eaeca60d9..02f19040c 100755 --- a/bin/portageq +++ b/bin/portageq @@ -185,7 +185,7 @@ def metadata(argv): print("ERROR: insufficient parameters!", file=sys.stderr) sys.exit(2) - root, pkgtype, pkgspec = argv[0:3] + eroot, pkgtype, pkgspec = argv[0:3] metakeys = argv[3:] type_map = { "ebuild":"porttree", @@ -195,10 +195,8 @@ def metadata(argv): print("Unrecognized package type: '%s'" % pkgtype, file=sys.stderr) sys.exit(1) trees = portage.db - if os.path.realpath(root) == os.path.realpath(portage.settings["ROOT"]): - root = portage.settings["ROOT"] # contains the normalized $ROOT try: - values = trees[root][type_map[pkgtype]].dbapi.aux_get( + values = trees[eroot][type_map[pkgtype]].dbapi.aux_get( pkgspec, metakeys) writemsg_stdout(''.join('%s\n' % x for x in values), noiselevel=-1) except KeyError: @@ -250,9 +248,9 @@ def owners(argv): return 2 from portage import catsplit, dblink - settings = portage.settings - root = settings["ROOT"] - vardb = portage.db[root]["vartree"].dbapi + eroot = argv[0] + vardb = portage.db[eroot]["vartree"].dbapi + root = portage.settings['ROOT'] cwd = None try: @@ -451,7 +449,8 @@ def best_visible(argv): noiselevel=-1) return 2 - db = portage.db[portage.settings["ROOT"]][type_map[pkgtype]].dbapi + eroot = argv[0] + db = portage.db[eroot][type_map[pkgtype]].dbapi try: atom = portage.dep_expand(atom, mydb=db, settings=portage.settings) @@ -461,7 +460,7 @@ def best_visible(argv): return 2 root_config = RootConfig(portage.settings, - portage.db[portage.settings["ROOT"]], None) + portage.db[eroot], None) if hasattr(db, "xmatch"): cpv_list = db.xmatch("match-all-cpv-only", atom) @@ -839,7 +838,13 @@ def main(): sys.stderr.write("Run portageq with --help for info\n") sys.stderr.flush() sys.exit(os.EX_USAGE) - os.environ["ROOT"] = sys.argv[2] + eprefix = os.environ.get("__PORTAGE_TEST_EPREFIX") + eroot = portage.util.normalize_path(sys.argv[2]) + if eprefix: + root = eroot[:1-len(eprefix)] + else: + root = eroot + os.environ["ROOT"] = root args = sys.argv[2:] if args and sys.hexversion < 0x3000000 and not isinstance(args[0], unicode): @@ -848,7 +853,7 @@ def main(): try: if uses_root: - args[0] = portage.settings["ROOT"] + args[0] = portage.settings['EROOT'] retval = function(args) if retval: sys.exit(retval) diff --git a/bin/quickpkg b/bin/quickpkg index ced246888..d908c0346 100755 --- a/bin/quickpkg +++ b/bin/quickpkg @@ -31,8 +31,9 @@ from portage._sets import load_default_config, SETPREFIX def quickpkg_atom(options, infos, arg, eout): settings = portage.settings - root = portage.settings["ROOT"] - trees = portage.db[root] + root = portage.settings['ROOT'] + eroot = portage.settings['EROOT'] + trees = portage.db[eroot] vartree = trees["vartree"] vardb = vartree.dbapi bintree = trees["bintree"] @@ -65,10 +66,7 @@ def quickpkg_atom(options, infos, arg, eout): for cpv in matches: excluded_config_files = [] bintree.prevent_collision(cpv) - cat, pkg = portage.catsplit(cpv) - dblnk = dblink(cat, pkg, root, - vartree.settings, treetype="vartree", - vartree=vartree) + dblnk = vardb._dblink(cpv) have_lock = False try: dblnk.lockdb() @@ -101,7 +99,7 @@ def quickpkg_atom(options, infos, arg, eout): contents = dblnk.getcontents() protect = None if not include_config: - confprot = ConfigProtect(root, + confprot = ConfigProtect(eroot, shlex_split(settings.get("CONFIG_PROTECT", "")), shlex_split(settings.get("CONFIG_PROTECT_MASK", ""))) def protect(filename): @@ -161,8 +159,8 @@ def quickpkg_atom(options, infos, arg, eout): infos["missing"].append(arg) def quickpkg_set(options, infos, arg, eout): - root = portage.settings["ROOT"] - trees = portage.db[root] + eroot = portage.settings['EROOT'] + trees = portage.db[eroot] vartree = trees["vartree"] settings = vartree.settings @@ -189,8 +187,8 @@ def quickpkg_set(options, infos, arg, eout): def quickpkg_extended_atom(options, infos, atom, eout): - root = portage.settings["ROOT"] - trees = portage.db[root] + eroot = portage.settings['EROOT'] + trees = portage.db[eroot] vartree = trees["vartree"] vardb = vartree.dbapi @@ -222,8 +220,8 @@ def quickpkg_extended_atom(options, infos, atom, eout): def quickpkg_main(options, args, eout): - root = portage.settings["ROOT"] - trees = portage.db[root] + eroot = portage.settings['EROOT'] + trees = portage.db[eroot] bintree = trees["bintree"] try: diff --git a/bin/regenworld b/bin/regenworld index 6b5af4ca5..3199fdf90 100755 --- a/bin/regenworld +++ b/bin/regenworld @@ -47,7 +47,6 @@ def isunwanted(pkgline): __uniqlist__.append(pkgline) return True -root = portage.settings['ROOT'] eroot = portage.settings['EROOT'] world_file = os.path.join(eroot, portage.WORLD_FILE) @@ -78,7 +77,7 @@ for mykey in syslist: # drop the asterix mykey = mykey[1:] #print("candidate:",mykey) - mylist = portage.db[root]["vartree"].dbapi.match(mykey) + mylist = portage.db[eroot]["vartree"].dbapi.match(mykey) if mylist: mykey=portage.cpv_getkey(mylist[0]) if mykey not in realsyslist: @@ -87,7 +86,7 @@ for mykey in syslist: for mykey in biglist: #print("checking:",mykey) try: - mylist = portage.db[root]["vartree"].dbapi.match(mykey) + mylist = portage.db[eroot]["vartree"].dbapi.match(mykey) except (portage.exception.InvalidAtom, KeyError): if "--debug" in sys.argv: print("* ignoring broken log entry for %s (likely injected)" % mykey) -- cgit v1.2.3-1-g7c22