In config.setcpv(), move the code that makes sure "pkg" values override "env"
authorZac Medico <zmedico@gentoo.org>
Thu, 30 Apr 2009 07:31:50 +0000 (07:31 -0000)
committerZac Medico <zmedico@gentoo.org>
Thu, 30 Apr 2009 07:31:50 +0000 (07:31 -0000)
values _after_ the reset() call. (trunk r13418)

svn path=/main/branches/2.1.6/; revision=13558

pym/portage/__init__.py

index 785498e759f0b1a473e14a287d341c8165adc0ee..e734f9ad135886d20a0a6adac45228012e6594dd 100644 (file)
@@ -2205,7 +2205,6 @@ class config(object):
                cpv_slot = self.mycpv
                pkginternaluse = ""
                iuse = ""
-               env_configdict = self.configdict["env"]
                pkg_configdict = self.configdict["pkg"]
                previous_iuse = pkg_configdict.get("IUSE")
 
@@ -2231,9 +2230,6 @@ class config(object):
                        repository = pkg_configdict.pop("repository", None)
                        if repository is not None:
                                pkg_configdict["PORTAGE_REPO_NAME"] = repository
-                       for k in pkg_configdict:
-                               if k != "USE":
-                                       env_configdict.pop(k, None)
                        slot = pkg_configdict["SLOT"]
                        iuse = pkg_configdict["IUSE"]
                        if pkg is None:
@@ -2303,6 +2299,14 @@ class config(object):
                if has_changed:
                        self.reset(keeping_pkg=1,use_cache=use_cache)
 
+               # Ensure that "pkg" values are always preferred over "env" values.
+               # This must occur _after_ the above reset() call, since reset()
+               # copies values from self.backupenv.
+               env_configdict = self.configdict['env']
+               for k in pkg_configdict:
+                       if k != 'USE':
+                               env_configdict.pop(k, None)
+
                env_configdict.addLazySingleton('ACCEPT_LICENSE',
                        self._lazy_accept_license(self))