Gentoo Archives: gentoo-commits

From: "Zac Medico (zmedico)" <zmedico@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] portage r15511 - main/trunk/pym/portage
Date: Mon, 01 Mar 2010 08:14:38
Message-Id: E1Nm0lt-0008Rg-Hr@stork.gentoo.org
1 Author: zmedico
2 Date: 2010-03-01 08:14:33 +0000 (Mon, 01 Mar 2010)
3 New Revision: 15511
4
5 Modified:
6 main/trunk/pym/portage/__init__.py
7 main/trunk/pym/portage/_legacy_globals.py
8 Log:
9 Fix legacy globals proxies to reset state when the portage module is reloaded.
10 This fixes ebuild(1) failing to generate manifests when the ebuild is not
11 in PORTDIR_OVERLAY, as reported by Arfrever.
12
13
14 Modified: main/trunk/pym/portage/__init__.py
15 ===================================================================
16 --- main/trunk/pym/portage/__init__.py 2010-03-01 07:03:49 UTC (rev 15510)
17 +++ main/trunk/pym/portage/__init__.py 2010-03-01 08:14:33 UTC (rev 15511)
18 @@ -576,6 +576,8 @@
19 globals()[k] = _LegacyGlobalProxy(k)
20 del k
21
22 +_legacy_globals_constructed = set()
23 +
24 def _disable_legacy_globals():
25 """
26 This deletes the ObjectProxy instances that are used
27
28 Modified: main/trunk/pym/portage/_legacy_globals.py
29 ===================================================================
30 --- main/trunk/pym/portage/_legacy_globals.py 2010-03-01 07:03:49 UTC (rev 15510)
31 +++ main/trunk/pym/portage/_legacy_globals.py 2010-03-01 08:14:33 UTC (rev 15511)
32 @@ -6,25 +6,23 @@
33 from portage import os
34 from portage.const import CACHE_PATH, PROFILE_PATH
35
36 -_legacy_globals = {}
37 -
38 def _get_legacy_global(name):
39 - global _legacy_globals
40 - target = _legacy_globals.get(name, _legacy_globals)
41 - if target is not _legacy_globals:
42 - return target
43 + constructed = portage._legacy_globals_constructed
44 + if name in constructed:
45 + return getattr(portage, name)
46
47 if name == 'portdb':
48 portage.portdb = portage.db[portage.root]["porttree"].dbapi
49 - _legacy_globals[name] = portage.portdb
50 - return _legacy_globals[name]
51 + constructed.add(name)
52 + return getattr(portage, name)
53 +
54 elif name in ('mtimedb', 'mtimedbfile'):
55 portage.mtimedbfile = os.path.join(portage.root,
56 CACHE_PATH, "mtimedb")
57 - _legacy_globals['mtimedbfile'] = portage.mtimedbfile
58 + constructed.add('mtimedbfile')
59 portage.mtimedb = portage.MtimeDB(portage.mtimedbfile)
60 - _legacy_globals['mtimedb'] = portage.mtimedb
61 - return _legacy_globals[name]
62 + constructed.add('mtimedb')
63 + return getattr(portage, name)
64
65 # Portage needs to ensure a sane umask for the files it creates.
66 os.umask(0o22)
67 @@ -35,7 +33,7 @@
68
69 portage._initializing_globals = True
70 portage.db = portage.create_trees(**kwargs)
71 - _legacy_globals['db'] = portage.db
72 + constructed.add('db')
73 del portage._initializing_globals
74
75 settings = portage.db["/"]["vartree"].settings
76 @@ -48,40 +46,40 @@
77 portage.output._init(config_root=settings['PORTAGE_CONFIGROOT'])
78
79 portage.settings = settings
80 - _legacy_globals['settings'] = settings
81 + constructed.add('settings')
82
83 portage.root = root
84 - _legacy_globals['root'] = root
85 + constructed.add('root')
86
87 # COMPATIBILITY
88 # These attributes should not be used within
89 # Portage under any circumstances.
90
91 portage.archlist = settings.archlist()
92 - _legacy_globals['archlist'] = portage.archlist
93 + constructed.add('archlist')
94
95 portage.features = settings.features
96 - _legacy_globals['features'] = portage.features
97 + constructed.add('features')
98
99 portage.groups = settings["ACCEPT_KEYWORDS"].split()
100 - _legacy_globals['groups'] = portage.groups
101 + constructed.add('groups')
102
103 portage.pkglines = settings.packages
104 - _legacy_globals['pkglines'] = portage.pkglines
105 + constructed.add('pkglines')
106
107 portage.selinux_enabled = settings.selinux_enabled()
108 - _legacy_globals['selinux_enabled'] = portage.selinux_enabled
109 + constructed.add('selinux_enabled')
110
111 portage.thirdpartymirrors = settings.thirdpartymirrors()
112 - _legacy_globals['thirdpartymirrors'] = portage.thirdpartymirrors
113 + constructed.add('thirdpartymirrors')
114
115 portage.usedefaults = settings.use_defs
116 - _legacy_globals['usedefaults'] = portage.usedefaults
117 + constructed.add('usedefaults')
118
119 profiledir = os.path.join(settings["PORTAGE_CONFIGROOT"], PROFILE_PATH)
120 if not os.path.isdir(profiledir):
121 profiledir = None
122 portage.profiledir = profiledir
123 - _legacy_globals['profiledir'] = portage.profiledir
124 + constructed.add('profiledir')
125
126 - return _legacy_globals[name]
127 + return getattr(portage, name)