diff options
Diffstat (limited to 'pym/portage')
-rw-r--r-- | pym/portage/__init__.py | 9 | ||||
-rw-r--r-- | pym/portage/util.py | 8 |
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: |