if ! hasq $EBUILD_SH_ARGS clean depend help info nofetch ; then
if hasq distcc $FEATURES ; then
- if [ -d /usr/lib/distcc/bin ] ; then
- [[ -z ${PATH/*distcc*/} ]] && remove_path_entry distcc
- export PATH="/usr/lib/distcc/bin:$PATH"
- [[ -n $DISTCC_LOG ]] && addwrite "${DISTCC_LOG%/*}"
- elif type -P distcc >/dev/null ; then
- ! hasq distcc $CC && export CC="distcc $CC"
- ! hasq distcc $CXX && export CXX="distcc $CXX"
- fi
+ [[ -z ${PATH/*distcc*/} ]] && remove_path_entry distcc
+ export PATH="/usr/lib/distcc/bin:$PATH"
+ [[ -n $DISTCC_LOG ]] && addwrite "${DISTCC_LOG%/*}"
fi
if hasq ccache $FEATURES ; then
[[ -z ${PATH/*ccache*/} ]] && remove_path_entry ccache
- if [ -d /usr/lib/ccache/bin ] ; then
- export PATH="/usr/lib/ccache/bin:$PATH"
- elif [ -d /usr/bin/ccache ] ; then
- export PATH="/usr/bin/ccache:$PATH"
- fi
-
- [[ -z $CCACHE_DIR ]] && export CCACHE_DIR=/var/tmp/ccache
+ export PATH="/usr/lib/ccache/bin:$PATH"
addread "$CCACHE_DIR"
addwrite "$CCACHE_DIR"
features_dirs = {
"ccache":{
+ "path_dir": "/usr/lib/ccache/bin",
"basedir_var":"CCACHE_DIR",
"default_dir":os.path.join(mysettings["PORTAGE_TMPDIR"], "ccache"),
"always_recurse":False},
"distcc":{
+ "path_dir": "/usr/lib/distcc/bin",
"basedir_var":"DISTCC_DIR",
"default_dir":os.path.join(mysettings["BUILD_PREFIX"], ".distcc"),
"subdirs":("lock", "state"),
"userpriv" not in restrict
for myfeature, kwargs in features_dirs.iteritems():
if myfeature in mysettings.features:
- basedir = mysettings[kwargs["basedir_var"]]
- if basedir == "":
+ failure = False
+ basedir = mysettings.get(kwargs["basedir_var"])
+ if basedir is None or not basedir.strip():
basedir = kwargs["default_dir"]
mysettings[kwargs["basedir_var"]] = basedir
try:
+ path_dir = kwargs["path_dir"]
+ if not os.path.isdir(path_dir):
+ raise portage.exception.DirectoryNotFound(path_dir)
+
mydirs = [mysettings[kwargs["basedir_var"]]]
if "subdirs" in kwargs:
for subdir in kwargs["subdirs"]:
filemode=filemode, filemask=modemask, onerror=onerror):
raise portage.exception.OperationNotPermitted(
"Failed to apply recursive permissions for the portage group.")
+
+ except portage.exception.DirectoryNotFound, e:
+ failure = True
+ writemsg("\n!!! Directory does not exist: '%s'\n" % \
+ (e,), noiselevel=-1)
+ writemsg("!!! Disabled FEATURES='%s'\n" % myfeature,
+ noiselevel=-1)
+
except portage.exception.PortageException, e:
- mysettings.features.remove(myfeature)
- mysettings["FEATURES"] = " ".join(mysettings.features)
- writemsg("!!! %s\n" % str(e), noiselevel=-1)
+ failure = True
+ writemsg("\n!!! %s\n" % str(e), noiselevel=-1)
writemsg("!!! Failed resetting perms on %s='%s'\n" % \
(kwargs["basedir_var"], basedir), noiselevel=-1)
writemsg("!!! Disabled FEATURES='%s'\n" % myfeature,
noiselevel=-1)
+
+ if failure:
+ mysettings.features.remove(myfeature)
+ mysettings['FEATURES'] = ' '.join(sorted(mysettings.features))
time.sleep(5)
def _prepare_workdir(mysettings):