diff options
-rw-r--r-- | pym/portage/__init__.py | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/pym/portage/__init__.py b/pym/portage/__init__.py index 663d84685..e277fe483 100644 --- a/pym/portage/__init__.py +++ b/pym/portage/__init__.py @@ -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") |