summaryrefslogtreecommitdiffstats
path: root/pym/portage/__init__.py
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2009-03-26 21:17:18 +0000
committerZac Medico <zmedico@gentoo.org>2009-03-26 21:17:18 +0000
commit598a46df25a4e0fde644880012ec9b0a28e2bfc0 (patch)
tree1f230a7cf7fccce19b9fb4b4934c01738abbbf05 /pym/portage/__init__.py
parent820b027cd89d731b3e1c63c969c05642798e8247 (diff)
downloadportage-598a46df25a4e0fde644880012ec9b0a28e2bfc0.tar.gz
portage-598a46df25a4e0fde644880012ec9b0a28e2bfc0.tar.bz2
portage-598a46df25a4e0fde644880012ec9b0a28e2bfc0.zip
Move checks for /usr/lib/distcc/bin and /usr/lib/ccache/bin to the python
side and don't add distcc to CC and CXX when /usr/lib/distcc/bin doesn't exist since that won't necessarily work. Thanks to Jeroen Roovers <jer@g.o> for reporting the issue with adding distcc to CC. svn path=/main/trunk/; revision=13198
Diffstat (limited to 'pym/portage/__init__.py')
-rw-r--r--pym/portage/__init__.py28
1 files changed, 23 insertions, 5 deletions
diff --git a/pym/portage/__init__.py b/pym/portage/__init__.py
index 131b8d19d..7630c2ff1 100644
--- a/pym/portage/__init__.py
+++ b/pym/portage/__init__.py
@@ -5348,10 +5348,12 @@ def _prepare_features_dirs(mysettings):
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"),
@@ -5367,11 +5369,16 @@ def _prepare_features_dirs(mysettings):
"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"]:
@@ -5421,14 +5428,25 @@ def _prepare_features_dirs(mysettings):
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):