From: Zac Medico Date: Sat, 26 Nov 2011 02:56:54 +0000 (-0800) Subject: config: fix make.defaults inherit of make.globals X-Git-Tag: v2.2.0_alpha78 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=917e70d1009727115afbe90e297711d54b7e5374;p=portage.git config: fix make.defaults inherit of make.globals Since commit e544ee13527a0568de2b556510280ed96fc1b3ff, make.defaults inheritance of variables from make.globals has been broke, since that commit excluded make.globals from expand_map. This broke settings like PORTAGE_ELOG_CLASSES="${PORTAGE_ELOG_CLASSES} qa" from the developer profile, as reported in bug #391323, comment #4. --- diff --git a/pym/portage/package/ebuild/config.py b/pym/portage/package/ebuild/config.py index 835cd2385..2995740bc 100644 --- a/pym/portage/package/ebuild/config.py +++ b/pym/portage/package/ebuild/config.py @@ -297,7 +297,29 @@ class config(object): eroot = locations_manager.eroot self.global_config_path = locations_manager.global_config_path - make_globals = getconfig(os.path.join(self.global_config_path, 'make.globals')) + # The expand_map is used for variable substitution + # in getconfig() calls, and the getconfig() calls + # update expand_map with the value of each variable + # assignment that occurs. Variable substitution occurs + # in the following order, which corresponds to the + # order of appearance in self.lookuplist: + # + # * env.d + # * make.globals + # * make.defaults + # * make.conf + # + # Notably absent is "env", since we want to avoid any + # interaction with the calling environment that might + # lead to unexpected results. + expand_map = {} + self._expand_map = expand_map + + env_d = getconfig(os.path.join(eroot, "etc", "profile.env"), + expand=expand_map) + + make_globals = getconfig(os.path.join( + self.global_config_path, 'make.globals'), expand=expand_map) if make_globals is None: make_globals = {} @@ -345,30 +367,9 @@ class config(object): self.configlist.append({}) self.configdict["pkginternal"] = self.configlist[-1] - # The expand_map is used for variable substitution - # in getconfig() calls, and the getconfig() calls - # update expand_map with the value of each variable - # assignment that occurs. Variable substitution occurs - # in the following order, which corresponds to the - # order of appearance in self.lookuplist: - # - # * env.d - # * make.globals - # * make.defaults - # * make.conf - # - # Notably absent is "env", since we want to avoid any - # interaction with the calling environment that might - # lead to unexpected results. - expand_map = {} - self._expand_map = expand_map - - env_d = getconfig(os.path.join(eroot, "etc", "profile.env"), - expand=expand_map) # env_d will be None if profile.env doesn't exist. if env_d: self.configdict["env.d"].update(env_d) - expand_map.update(env_d) # backupenv is used for calculating incremental variables. if env is None: