summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--pym/portage.py9
-rw-r--r--pym/portage_util.py8
2 files changed, 14 insertions, 3 deletions
diff --git a/pym/portage.py b/pym/portage.py
index 2ee750e5..a48f23e3 100644
--- a/pym/portage.py
+++ b/pym/portage.py
@@ -1440,8 +1440,13 @@ class config:
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 eb54076d..e75e0cb1 100644
--- a/pym/portage_util.py
+++ b/pym/portage_util.py
@@ -306,7 +306,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: