112 lines
3.6 KiB
Diff
112 lines
3.6 KiB
Diff
Description: deal with the case where there are no writable directories.
|
|
Author: Michael Droettboom <mdboom@gmail.com>
|
|
Bug-Debian: http://bugs.debian.org/719384
|
|
Origin: https://github.com/mdboom/matplotlib/commit/1e8d592ed0439ac6fe8fc08d5efe522799acf4fe
|
|
Reviewed-By: Anton Gladky <gladk@debian.org>
|
|
Last-Update: 2013-09-29
|
|
|
|
--- matplotlib-1.3.0.orig/lib/matplotlib/font_manager.py
|
|
+++ matplotlib-1.3.0/lib/matplotlib/font_manager.py
|
|
@@ -1324,6 +1324,8 @@ if USE_FONTCONFIG and sys.platform != 'w
|
|
return result
|
|
|
|
else:
|
|
+ _fmcache = None
|
|
+
|
|
if not 'TRAVIS' in os.environ:
|
|
cachedir = get_cachedir()
|
|
if cachedir is not None:
|
|
@@ -1331,8 +1333,6 @@ else:
|
|
_fmcache = os.path.join(cachedir, 'fontList.py3k.cache')
|
|
else:
|
|
_fmcache = os.path.join(cachedir, 'fontList.cache')
|
|
- else:
|
|
- _fmcache = None
|
|
|
|
fontManager = None
|
|
|
|
--- matplotlib-1.3.0.orig/lib/matplotlib/__init__.py
|
|
+++ matplotlib-1.3.0/lib/matplotlib/__init__.py
|
|
@@ -518,7 +518,11 @@ def _get_xdg_config_dir():
|
|
base directory spec
|
|
<http://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html>`_.
|
|
"""
|
|
- return os.environ.get('XDG_CONFIG_HOME', os.path.join(get_home(), '.config'))
|
|
+ home = get_home()
|
|
+ if home is None:
|
|
+ return None
|
|
+ else:
|
|
+ return os.environ.get('XDG_CONFIG_HOME', os.path.join(home, '.config'))
|
|
|
|
|
|
def _get_xdg_cache_dir():
|
|
@@ -527,7 +531,11 @@ def _get_xdg_cache_dir():
|
|
base directory spec
|
|
<http://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html>`_.
|
|
"""
|
|
- return os.environ.get('XDG_CACHE_HOME', os.path.join(get_home(), '.cache'))
|
|
+ home = get_home()
|
|
+ if home is None:
|
|
+ return None
|
|
+ else:
|
|
+ return os.environ.get('XDG_CACHE_HOME', os.path.join(home, '.cache'))
|
|
|
|
|
|
def _get_config_or_cache_dir(xdg_base):
|
|
@@ -543,22 +551,28 @@ def _get_config_or_cache_dir(xdg_base):
|
|
return _create_tmp_config_dir()
|
|
return configdir
|
|
|
|
+ p = None
|
|
h = get_home()
|
|
- p = os.path.join(h, '.matplotlib')
|
|
- if (sys.platform.startswith('linux') and
|
|
- not os.path.exists(p)):
|
|
- p = os.path.join(xdg_base, 'matplotlib')
|
|
-
|
|
- if os.path.exists(p):
|
|
- if not _is_writable_dir(p):
|
|
- return _create_tmp_config_dir()
|
|
- else:
|
|
- try:
|
|
- mkdirs(p)
|
|
- except OSError:
|
|
- return _create_tmp_config_dir()
|
|
+ if h is not None:
|
|
+ p = os.path.join(h, '.matplotlib')
|
|
+ if (sys.platform.startswith('linux') and
|
|
+ not os.path.exists(p) and
|
|
+ xdg_base is not None):
|
|
+ p = os.path.join(xdg_base, 'matplotlib')
|
|
+
|
|
+ if p is not None:
|
|
+ if os.path.exists(p):
|
|
+ if _is_writable_dir(p):
|
|
+ return p
|
|
+ else:
|
|
+ try:
|
|
+ mkdirs(p)
|
|
+ except OSError:
|
|
+ pass
|
|
+ else:
|
|
+ return p
|
|
|
|
- return p
|
|
+ return _create_tmp_config_dir()
|
|
|
|
|
|
def _get_configdir():
|
|
@@ -716,9 +730,11 @@ def matplotlib_fname():
|
|
if configdir is not None:
|
|
fname = os.path.join(configdir, 'matplotlibrc')
|
|
if os.path.exists(fname):
|
|
+ home = get_home()
|
|
if (sys.platform.startswith('linux') and
|
|
+ home is not None and
|
|
fname == os.path.join(
|
|
- get_home(), '.matplotlib', 'matplotlibrc')):
|
|
+ home, '.matplotlib', 'matplotlibrc')):
|
|
warnings.warn(
|
|
"Found matplotlib configuration in ~/.matplotlib/. "
|
|
"To conform with the XDG base directory standard, "
|