From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from pigeon.gentoo.org ([208.92.234.80] helo=lists.gentoo.org) by finch.gentoo.org with esmtp (Exim 4.60) (envelope-from ) id 1Qazn1-00010O-Kr for garchives@archives.gentoo.org; Mon, 27 Jun 2011 00:35:02 +0000 Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id C7A551C078; Mon, 27 Jun 2011 00:34:51 +0000 (UTC) Received: from smtp.gentoo.org (smtp.gentoo.org [140.211.166.183]) by pigeon.gentoo.org (Postfix) with ESMTP id 94CCF1C078 for ; Mon, 27 Jun 2011 00:34:51 +0000 (UTC) Received: from pelican.gentoo.org (unknown [66.219.59.40]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 29AC91BC01B for ; Mon, 27 Jun 2011 00:34:51 +0000 (UTC) Received: from localhost.localdomain (localhost [127.0.0.1]) by pelican.gentoo.org (Postfix) with ESMTP id 51DA68003C for ; Mon, 27 Jun 2011 00:34:50 +0000 (UTC) From: "Zac Medico" To: gentoo-commits@lists.gentoo.org Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Zac Medico" Message-ID: <84f53ead91047d1389c80edeb7d9d1720e07e2a4.zmedico@gentoo> Subject: [gentoo-commits] proj/portage:master commit in: pym/portage/package/ebuild/, pym/portage/package/ebuild/_config/ X-VCS-Repository: proj/portage X-VCS-Files: pym/portage/package/ebuild/_config/special_env_vars.py pym/portage/package/ebuild/config.py X-VCS-Directories: pym/portage/package/ebuild/ pym/portage/package/ebuild/_config/ X-VCS-Committer: zmedico X-VCS-Committer-Name: Zac Medico X-VCS-Revision: 84f53ead91047d1389c80edeb7d9d1720e07e2a4 Date: Mon, 27 Jun 2011 00:34:50 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: quoted-printable X-Archives-Salt: X-Archives-Hash: 500dfa7bac145b26bfd6cab7af760f58 commit: 84f53ead91047d1389c80edeb7d9d1720e07e2a4 Author: Zac Medico gentoo org> AuthorDate: Mon Jun 27 00:34:13 2011 +0000 Commit: Zac Medico gentoo org> CommitDate: Mon Jun 27 00:34:13 2011 +0000 URL: http://git.overlays.gentoo.org/gitweb/?p=3Dproj/portage.git;a= =3Dcommit;h=3D84f53ead config: disallow per-package/repo CONFIG_PROTECT In order for reliable etc-update behavior, CONFIG_PROTECT needs to be a global constant (see bug 370693, comment #8). --- .../package/ebuild/_config/special_env_vars.py | 6 ++++++ pym/portage/package/ebuild/config.py | 4 ++++ 2 files changed, 10 insertions(+), 0 deletions(-) diff --git a/pym/portage/package/ebuild/_config/special_env_vars.py b/pym= /portage/package/ebuild/_config/special_env_vars.py index 0214c86..3da724d 100644 --- a/pym/portage/package/ebuild/_config/special_env_vars.py +++ b/pym/portage/package/ebuild/_config/special_env_vars.py @@ -165,6 +165,12 @@ environ_filter +=3D [ =20 environ_filter =3D frozenset(environ_filter) =20 +# Variables that are not allowed to have per-repo or per-package +# settings. +global_only_vars =3D frozenset([ + "CONFIG_PROTECT", +]) + default_globals =3D { 'ACCEPT_LICENSE': '* -@EULA', 'ACCEPT_PROPERTIES': '*', diff --git a/pym/portage/package/ebuild/config.py b/pym/portage/package/e= build/config.py index c8ea1c8..c467efe 100644 --- a/pym/portage/package/ebuild/config.py +++ b/pym/portage/package/ebuild/config.py @@ -130,6 +130,7 @@ class config(object): _environ_filter =3D special_env_vars.environ_filter _environ_whitelist =3D special_env_vars.environ_whitelist _environ_whitelist_re =3D special_env_vars.environ_whitelist_re + _global_only_vars =3D special_env_vars.global_only_vars =20 def __init__(self, clone=3DNone, mycpv=3DNone, config_profile_path=3DNo= ne, config_incrementals=3DNone, config_root=3DNone, target_root=3DNone, @@ -1142,6 +1143,8 @@ class config(object): # make a copy, since we might modify it with # package.use settings d =3D d.copy() + for k in self._global_only_vars: + d.pop(k, None) repo_env.append(d) cpdict =3D self._use_manager._repo_puse_dict.get(repo, {}).get(cp) if cpdict: @@ -1206,6 +1209,7 @@ class config(object): =20 protected_pkg_keys =3D set(pkg_configdict) protected_pkg_keys.discard('USE') + protected_pkg_keys.update(self._global_only_vars) =20 # If there are _any_ package.env settings for this package # then it automatically triggers config.reset(), in order