aboutsummaryrefslogtreecommitdiff
path: root/bin
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2011-10-25 01:59:39 -0700
committerZac Medico <zmedico@gentoo.org>2011-10-25 01:59:39 -0700
commita715b65f7bd36409c1283e6911265d1f4405ab7a (patch)
treef3ad709ca1495be750163ced02fe11562566f910 /bin
parentcreate_trees: save target_root for later use (diff)
downloadportage-a715b65f7bd36409c1283e6911265d1f4405ab7a.tar.gz
portage-a715b65f7bd36409c1283e6911265d1f4405ab7a.tar.bz2
portage-a715b65f7bd36409c1283e6911265d1f4405ab7a.zip
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 <root> 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.
Diffstat (limited to 'bin')
-rwxr-xr-xbin/ebuild4
-rwxr-xr-xbin/emaint20
-rwxr-xr-xbin/glsa-check5
-rwxr-xr-xbin/portageq27
-rwxr-xr-xbin/quickpkg24
-rwxr-xr-xbin/regenworld5
6 files changed, 44 insertions, 41 deletions
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)