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"
