From: Julien Rioux Date: Mon, 4 Feb 2013 14:45:14 +0000 (+0100) Subject: configure.py: Check path accessibility before call to os.path.isfile. X-Git-Tag: 2.1.0beta1~261 X-Git-Url: https://git.lyx.org/gitweb/?a=commitdiff_plain;h=ef04549d8d0337573d5d856929a108c3132f93b7;p=lyx.git configure.py: Check path accessibility before call to os.path.isfile. If you have an unmounted dir, ac_dir, in your PATH, the call to os.path.isfile( os.path.join(ac_dir, ac_word + ext) ) hangs. This is probably a python bug, but the result of configure.py hanging and LyX freezing is really bad, hence this workaround. According to the python docs, MacOS doesn't provide os.access(); the hasattr protection is used for this reason. --- diff --git a/lib/configure.py b/lib/configure.py index 78983e3895..d6537e2462 100644 --- a/lib/configure.py +++ b/lib/configure.py @@ -198,6 +198,8 @@ def checkProg(description, progs, rc_entry = [], path = [], not_found = ''): if "PATHEXT" in os.environ: extlist = extlist + os.environ["PATHEXT"].split(os.pathsep) for ac_dir in path: + if hasattr(os, "access") and not os.access(ac_dir, os.F_OK): + continue for ext in extlist: if os.path.isfile( os.path.join(ac_dir, ac_word + ext) ): logger.info(msg + ' yes') @@ -252,6 +254,8 @@ def checkProgAlternatives(description, progs, rc_entry = [], alt_rc_entry = [], extlist = extlist + os.environ["PATHEXT"].split(os.pathsep) found_alt = False for ac_dir in path: + if hasattr(os, "access") and not os.access(ac_dir, os.F_OK): + continue for ext in extlist: if os.path.isfile( os.path.join(ac_dir, ac_word + ext) ): logger.info(msg + ' yes')