1 # Copyright 2010 Gentoo Foundation
2 # Distributed under the terms of the GNU General Public License v2
6 from portage.const import CACHE_PATH, PROFILE_PATH
8 def _get_legacy_global(name):
9 constructed = portage._legacy_globals_constructed
10 if name in constructed:
11 return getattr(portage, name)
14 portage.portdb = portage.db[portage.root]["porttree"].dbapi
16 return getattr(portage, name)
18 elif name in ('mtimedb', 'mtimedbfile'):
19 portage.mtimedbfile = os.path.join(portage.settings['EROOT'],
20 CACHE_PATH, "mtimedb")
21 constructed.add('mtimedbfile')
22 portage.mtimedb = portage.MtimeDB(portage.mtimedbfile)
23 constructed.add('mtimedb')
24 return getattr(portage, name)
26 # Portage needs to ensure a sane umask for the files it creates.
30 for k, envvar in (("config_root", "PORTAGE_CONFIGROOT"), ("target_root", "ROOT")):
31 kwargs[k] = os.environ.get(envvar)
33 portage._initializing_globals = True
34 portage.db = portage.create_trees(**kwargs)
36 del portage._initializing_globals
38 settings = portage.db[portage.db._target_eroot]["vartree"].settings
39 portage.output._init(config_root=settings['PORTAGE_CONFIGROOT'])
41 portage.settings = settings
42 constructed.add('settings')
44 # Since portage.db now uses EROOT for keys instead of ROOT, we make
45 # portage.root refer to EROOT such that it continues works as a key.
46 portage.root = portage.db._target_eroot
47 constructed.add('root')
50 # These attributes should not be used within
51 # Portage under any circumstances.
53 portage.archlist = settings.archlist()
54 constructed.add('archlist')
56 portage.features = settings.features
57 constructed.add('features')
59 portage.groups = settings["ACCEPT_KEYWORDS"].split()
60 constructed.add('groups')
62 portage.pkglines = settings.packages
63 constructed.add('pkglines')
65 portage.selinux_enabled = settings.selinux_enabled()
66 constructed.add('selinux_enabled')
68 portage.thirdpartymirrors = settings.thirdpartymirrors()
69 constructed.add('thirdpartymirrors')
71 profiledir = os.path.join(settings["PORTAGE_CONFIGROOT"], PROFILE_PATH)
72 if not os.path.isdir(profiledir):
74 portage.profiledir = profiledir
75 constructed.add('profiledir')
77 return getattr(portage, name)