summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--pym/portage/__init__.py9
-rw-r--r--pym/portage/util.py8
2 files changed, 14 insertions, 3 deletions
diff --git a/pym/portage/__init__.py b/pym/portage/__init__.py
index 139fa57e0..080093320 100644
--- a/pym/portage/__init__.py
+++ b/pym/portage/__init__.py
@@ -1280,8 +1280,13 @@ class config(object):
self.make_defaults_use = []
self.mygcfg = {}
if self.profiles:
- mygcfg_dlists = [getconfig(os.path.join(x, "make.defaults")) \
- for x in self.profiles]
+ mygcfg_dlists = []
+ var_map = {}
+ for x in self.profiles:
+ var_map = getconfig(os.path.join(x, "make.defaults"),
+ expand=var_map)
+ mygcfg_dlists.append(var_map)
+
for cfg in mygcfg_dlists:
if cfg:
self.make_defaults_use.append(cfg.get("USE", ""))
diff --git a/pym/portage/util.py b/pym/portage/util.py
index 87332f42e..c358341a2 100644
--- a/pym/portage/util.py
+++ b/pym/portage/util.py
@@ -320,7 +320,13 @@ class _tolerant_shlex(shlex.shlex):
return (newfile, StringIO.StringIO())
def getconfig(mycfg, tolerant=0, allow_sourcing=False, expand=True):
- mykeys={}
+ if isinstance(expand, dict):
+ # Some existing variable definitions have been
+ # passed in, for use in substitutions.
+ mykeys = expand.copy()
+ expand = True
+ else:
+ mykeys = {}
try:
f=open(mycfg,'r')
except IOError, e: