commit:     16262dc8ab9ab6cc03565bcefc444726b4dfb32f
Author:     Arfrever Frehtes Taifersar Arahesis <Arfrever <AT> Apache <DOT> Org>
AuthorDate: Sat Sep  5 22:37:05 2020 +0000
Commit:     Zac Medico <zmedico <AT> gentoo <DOT> org>
CommitDate: Tue Sep  8 00:47:14 2020 +0000
URL:        https://gitweb.gentoo.org/proj/portage.git/commit/?id=16262dc8

make.conf: Treat __* variables as local and do not propagate them.

Bug: https://bugs.gentoo.org/740588
Signed-off-by: Arfrever Frehtes Taifersar Arahesis <Arfrever <AT> Apache.Org>
Signed-off-by: Zac Medico <zmedico <AT> gentoo.org>

 lib/portage/package/ebuild/config.py | 6 ++++++
 man/make.conf.5                      | 4 +++-
 2 files changed, 9 insertions(+), 1 deletion(-)

diff --git a/lib/portage/package/ebuild/config.py 
b/lib/portage/package/ebuild/config.py
index b62ad3069..a09fdbced 100644
--- a/lib/portage/package/ebuild/config.py
+++ b/lib/portage/package/ebuild/config.py
@@ -370,6 +370,9 @@ class config:
                                        _("Found 2 make.conf files, using both 
'%s' and '%s'") %
                                        tuple(make_conf_paths), noiselevel=-1)
 
+                       # __* variables set in make.conf are local and are not 
be propagated.
+                       make_conf = {k: v for k, v in make_conf.items() if not 
k.startswith("__")}
+
                        # Allow ROOT setting to come from make.conf if it's not 
overridden
                        # by the constructor argument (from the calling 
environment).
                        
locations_manager.set_root_override(make_conf.get("ROOT"))
@@ -621,6 +624,9 @@ class config:
                                        tolerant=tolerant, allow_sourcing=True,
                                        expand=expand_map, recursive=True) or 
{})
 
+                       # __* variables set in make.conf are local and are not 
be propagated.
+                       mygcfg = {k: v for k, v in mygcfg.items() if not 
k.startswith("__")}
+
                        # Don't allow the user to override certain variables in 
make.conf
                        profile_only_variables = 
self.configdict["defaults"].get(
                                "PROFILE_ONLY_VARIABLES", "").split()

diff --git a/man/make.conf.5 b/man/make.conf.5
index 1b997ad37..8a1ea0603 100644
--- a/man/make.conf.5
+++ b/man/make.conf.5
@@ -1,4 +1,4 @@
-.TH "MAKE.CONF" "5" "Jun 2020" "Portage VERSION" "Portage"
+.TH "MAKE.CONF" "5" "Sep 2020" "Portage VERSION" "Portage"
 .SH "NAME"
 make.conf \- custom settings for Portage
 .SH "SYNOPSIS"
@@ -36,6 +36,8 @@ make.defaults to make.globals to make.conf to the environment
 settings.  Clearing these variables requires a clear\-all as in:
 export USE="\-*"
 .br
+__* variables set in make.conf are local and are not be propagated.
+.br
 In order to create per\-package environment settings, refer to
 \fBpackage.env\fR in \fBportage\fR(5).
 .SH "VARIABLES"

Reply via email to