[prev in list] [next in list] [prev in thread] [next in thread] 

List:       gentoo-portage-dev
Subject:    [gentoo-portage-dev] [PATCH] Support FEATURES=ccache-permission-adjust (bug 657582)
From:       Zac Medico <zmedico () gentoo ! org>
Date:       2018-12-12 4:26:58
Message-ID: 20181212042658.11274-1-zmedico () gentoo ! org
[Download RAW message or body]

Automatic CCACHE_DIR permission adjustments can cause problems for
some users, therefore add a FEATURES flag so that it can be disabled.

Bug: https://bugs.gentoo.org/657582
Signed-off-by: Zac Medico <zmedico@gentoo.org>
---
 cnf/make.globals                                 | 1 +
 lib/portage/const.py                             | 1 +
 lib/portage/package/ebuild/prepare_build_dirs.py | 4 +++-
 man/make.conf.5                                  | 4 ++++
 4 files changed, 9 insertions(+), 1 deletion(-)

diff --git a/cnf/make.globals b/cnf/make.globals
index d394a1890..2e988da68 100644
--- a/cnf/make.globals
+++ b/cnf/make.globals
@@ -51,6 +51,7 @@ FETCHCOMMAND_SFTP="bash -c \"x=\\\${2#sftp://} ; host=\\\${x%%/*} ; \
port=\\\${ho  
 # Default user options
 FEATURES="assume-digests binpkg-docompress binpkg-dostrip binpkg-logs
+          ccache-permission-adjust
           config-protect-if-modified distlocks ebuild-locks
           fixlafiles merge-sync multilib-strict news
           parallel-fetch preserve-libs protect-owned
diff --git a/lib/portage/const.py b/lib/portage/const.py
index edbfb9f17..e6d097c65 100644
--- a/lib/portage/const.py
+++ b/lib/portage/const.py
@@ -132,6 +132,7 @@ SUPPORTED_FEATURES       = frozenset([
 	"candy",
 	"case-insensitive-fs",
 	"ccache",
+	"ccache-permission-adjust",
 	"cgroup",
 	"chflags",
 	"clean-logs",
diff --git a/lib/portage/package/ebuild/prepare_build_dirs.py \
b/lib/portage/package/ebuild/prepare_build_dirs.py index e53ccd0fb..a37c67839 100644
--- a/lib/portage/package/ebuild/prepare_build_dirs.py
+++ b/lib/portage/package/ebuild/prepare_build_dirs.py
@@ -157,10 +157,12 @@ def _prepare_features_dirs(mysettings):
 
 	features_dirs = {
 		"ccache":{
+			"adjust": "ccache-permission-adjust" in mysettings.features,
 			"basedir_var":"CCACHE_DIR",
 			"default_dir":os.path.join(mysettings["PORTAGE_TMPDIR"], "ccache"),
 			"always_recurse":False},
 		"distcc":{
+			"adjust": True,
 			"basedir_var":"DISTCC_DIR",
 			"default_dir":os.path.join(mysettings["BUILD_PREFIX"], ".distcc"),
 			"subdirs":("lock", "state"),
@@ -174,7 +176,7 @@ def _prepare_features_dirs(mysettings):
 		"userpriv" in mysettings.features and \
 		"userpriv" not in restrict
 	for myfeature, kwargs in features_dirs.items():
-		if myfeature in mysettings.features:
+		if myfeature in mysettings.features and kwargs['adjust']:
 			failure = False
 			basedir = mysettings.get(kwargs["basedir_var"])
 			if basedir is None or not basedir.strip():
diff --git a/man/make.conf.5 b/man/make.conf.5
index de04e5e34..4bd26713a 100644
--- a/man/make.conf.5
+++ b/man/make.conf.5
@@ -350,6 +350,10 @@ like "File not recognized: File truncated"), try recompiling the \
application  with ccache disabled before reporting a bug. Unless you are doing \
development  work, do not enable ccache.
 .TP
+.B ccache\-permission\-adjust
+Enable automatic permission adjustment for \fBCCACHE_DIR\fR when
+FEATURES=\fBccache\fR is enabled. This feature is enabled by default.
+.TP
 .B cgroup
 Use Linux control group to control processes spawned by ebuilds. This allows
 emerge to safely kill all subprocesses when ebuild phase exits.
-- 
2.18.1


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic