Store filtered USE for config.environ() calls in a special
authorZac Medico <zmedico@gentoo.org>
Tue, 18 Dec 2007 14:47:41 +0000 (14:47 -0000)
committerZac Medico <zmedico@gentoo.org>
Tue, 18 Dec 2007 14:47:41 +0000 (14:47 -0000)
attribute so that the normal global USE is still available
for things like emerge --info output.

svn path=/main/trunk/; revision=8959

pym/portage/__init__.py

index 663d84685e02b60c85db68c6459f84d5d643224f..e277fe483c59aa1b13ccff799f7118ebf883284f 100644 (file)
@@ -971,6 +971,7 @@ class config(object):
                self.already_in_regenerate = 0
 
                self._filter_calling_env = False
+               self._environ_use = ""
                self.locked   = 0
                self.mycpv    = None
                self.puse     = []
@@ -997,6 +998,7 @@ class config(object):
 
                if clone:
                        self._filter_calling_env = copy.deepcopy(clone._filter_calling_env)
+                       self._environ_use = copy.deepcopy(clone._environ_use)
                        self.incrementals = copy.deepcopy(clone.incrementals)
                        self.profile_path = copy.deepcopy(clone.profile_path)
                        self.user_profile_dir = copy.deepcopy(clone.user_profile_dir)
@@ -2432,9 +2434,15 @@ class config(object):
                                iuse_grep = ""
                        self["PORTAGE_IUSE"] = iuse_grep
 
-                       usesplit = [x for x in usesplit if \
-                               x in iuse_implicit and \
-                               x not in self.usemask]
+               usesplit = [x for x in usesplit if \
+                       x not in self.usemask]
+
+               # Filtered for the ebuild environment. Store this in a separate
+               # attribute since we still want to be able to see global USE
+               # settings for things like emerge --info.
+               self._environ_use = " ".join(sorted(
+                       x for x in usesplit if \
+                       x in iuse_implicit))
 
                usesplit.sort()
                self.configlist[-1]["USE"]= " ".join(usesplit)
@@ -2638,6 +2646,9 @@ class config(object):
                                        if v is not None:
                                                mydict[k] = v
 
+               # Filtered be IUSE / implicit IUSE.
+               mydict["USE"] = self._environ_use
+
                # sandbox's bashrc sources /etc/profile which unsets ROOTPATH,
                # so we have to back it up and restore it.
                rootpath = mydict.get("ROOTPATH")