setconfig = load_default_config(settings, root_trees)
root_trees["root_config"] = RootConfig(settings, root_trees, setconfig)
- settings = trees["/"]["vartree"].settings
-
- for myroot in trees:
- if myroot != "/":
- settings = trees[myroot]["vartree"].settings
- break
-
+ settings = trees[trees._target_root]['vartree'].settings
mtimedbfile = os.path.join(settings['EROOT'], portage.CACHE_PATH, "mtimedb")
mtimedb = portage.MtimeDB(mtimedbfile)
portage.output._init(config_root=settings['PORTAGE_CONFIGROOT'])
if data.secpass > 1 and os.environ.get("SANDBOX_ON") != "1":
close_portdbapi_caches()
+class _trees_dict(dict):
+ def __init__(self):
+ super(dict, self).__init__()
+ self._running_root = None
+ self._target_root = None
+
def create_trees(config_root=None, target_root=None, trees=None, env=None):
if trees is None:
- trees = {}
+ trees = _trees_dict()
else:
# clean up any existing portdbapi instances
for myroot in trees:
env=env, _eprefix=eprefix)
settings.lock()
+ trees._target_root = settings['ROOT']
myroots = [(settings["ROOT"], settings)]
- if settings["ROOT"] != "/":
+ if settings["ROOT"] == "/":
+ trees._running_root = trees._target_root
+ else:
# When ROOT != "/" we only want overrides from the calling
# environment to apply to the config that's associated
settings = config(config_root=None, target_root="/",
env=clean_env, _eprefix=eprefix)
settings.lock()
+ trees._running_root = settings['ROOT']
myroots.append((settings["ROOT"], settings))
for myroot, mysettings in myroots:
constructed.add('db')
del portage._initializing_globals
- settings = portage.db["/"]["vartree"].settings
-
- for root in portage.db:
- if root != "/":
- settings = portage.db[root]["vartree"].settings
- break
-
+ settings = portage.db[portage.db._target_root]["vartree"].settings
portage.output._init(config_root=settings['PORTAGE_CONFIGROOT'])
portage.settings = settings
constructed.add('settings')
- portage.root = root
+ portage.root = portage.db._target_root
constructed.add('root')
# COMPATIBILITY