[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