diff --git a/20_matplotlibrc_path_search_fix.patch b/20_matplotlibrc_path_search_fix.patch index ecb0b2f..41246c4 100644 --- a/20_matplotlibrc_path_search_fix.patch +++ b/20_matplotlibrc_path_search_fix.patch @@ -4,7 +4,7 @@ Author: Sandro Tosi --- a/lib/matplotlib/__init__.py +++ b/lib/matplotlib/__init__.py -@@ -607,10 +607,12 @@ def _get_data_path(): +@@ -658,10 +658,12 @@ def _get_data_path(): raise RuntimeError('Path in environment MATPLOTLIBDATA not a directory') return path @@ -18,8 +18,8 @@ Author: Sandro Tosi # setuptools' namespace_packages may highjack this init file # so need to try something known to be in matplotlib, not basemap import matplotlib.afm -@@ -727,7 +729,7 @@ def matplotlib_fname(): - _get_xdg_config_dir()) +@@ -786,7 +788,7 @@ def matplotlib_fname(): + home, '.matplotlib', 'matplotlibrc') return fname - path = get_data_path() # guaranteed to exist or raise diff --git a/40_bts608939_draw_markers_description.patch b/40_bts608939_draw_markers_description.patch index e093ac7..99fa033 100644 --- a/40_bts608939_draw_markers_description.patch +++ b/40_bts608939_draw_markers_description.patch @@ -3,7 +3,7 @@ Author: Jakub Wilk --- a/doc/api/api_changes.rst +++ b/doc/api/api_changes.rst -@@ -919,7 +919,7 @@ New methods: +@@ -1143,7 +1143,7 @@ New methods: * :meth:`draw_markers(self, gc, marker_path, marker_trans, path, trans, rgbFace) diff --git a/50_bts608942_spaces_in_param_args.patch b/50_bts608942_spaces_in_param_args.patch index af50e15..123388d 100644 --- a/50_bts608942_spaces_in_param_args.patch +++ b/50_bts608942_spaces_in_param_args.patch @@ -16,8 +16,9 @@ Description: don't separate param and its argument with a space + :param ny,ny1: same as nx and nx1, but for row positions. """ - -@@ -253,12 +253,12 @@ class Divider(object): + figW, figH = self._fig.get_size_inches() + +@@ -250,12 +250,12 @@ class Divider(object): (:class:`mpl_toolkits.axes_grid.axes_divider.AxesLocator`) for specified cell. @@ -32,7 +33,7 @@ Description: don't separate param and its argument with a space """ return AxesLocator(self, nx, ny, nx1, ny1) -@@ -299,12 +299,12 @@ class AxesLocator(object): +@@ -298,12 +298,12 @@ class AxesLocator(object): """ :param axes_divider: An instance of AxesDivider class. diff --git a/60_deal_with_no_writable_dirs.patch b/60_deal_with_no_writable_dirs.patch deleted file mode 100644 index 2ef1ab4..0000000 --- a/60_deal_with_no_writable_dirs.patch +++ /dev/null @@ -1,111 +0,0 @@ -Description: deal with the case where there are no writable directories. -Author: Michael Droettboom -Bug-Debian: http://bugs.debian.org/719384 -Origin: https://github.com/mdboom/matplotlib/commit/1e8d592ed0439ac6fe8fc08d5efe522799acf4fe -Reviewed-By: Anton Gladky -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 - `_. - """ -- 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 - `_. - """ -- 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, " diff --git a/70_bts720549_try_StayPuft_for_xkcd.patch b/70_bts720549_try_StayPuft_for_xkcd.patch index 04a4797..0edeed5 100644 --- a/70_bts720549_try_StayPuft_for_xkcd.patch +++ b/70_bts720549_try_StayPuft_for_xkcd.patch @@ -8,7 +8,7 @@ Last-Update: 2013-10-06 This patch header follows DEP-3: http://dep.debian.net/deps/dep3/ --- a/lib/matplotlib/pyplot.py +++ b/lib/matplotlib/pyplot.py -@@ -289,7 +289,7 @@ def xkcd(scale=1, length=100, randomness +@@ -301,7 +301,7 @@ def xkcd(scale=1, length=100, randomness from matplotlib import patheffects context = rc_context() try: diff --git a/python-matplotlib-noagg.patch b/python-matplotlib-noagg.patch index d5a4ae3..51bac9c 100644 --- a/python-matplotlib-noagg.patch +++ b/python-matplotlib-noagg.patch @@ -1,13 +1,20 @@ --- setupext.py.orig 2013-08-02 09:39:43.914247832 +0200 +++ setupext.py 2013-08-02 09:40:14.785304342 +0200 -@@ -749,22 +749,7 @@ +@@ -914,28 +914,13 @@ class LibAgg(SetupPackage): + self.__class__.found_external = True + try: + return self._check_for_pkg_config( +- 'libagg', 'agg2/agg_basics.h', min_version='PATCH') ++ 'libagg', 'agg2/agg_basics.h', min_version='2.5.0') + except CheckFailed as e: + self.__class__.found_external = False return str(e) + ' Using local copy.' def add_flags(self, ext): - if self.found_external: - pkg_config.setup_extension(ext, 'libagg') - else: -- ext.include_dirs.append('agg24/include') +- ext.include_dirs.append('extern/agg24/include') - agg_sources = [ - 'agg_bezier_arc.cpp', - 'agg_curves.cpp', @@ -19,7 +26,7 @@ - 'agg_vpgen_segmentator.cpp' - ] - ext.sources.extend( -- os.path.join('agg24', 'src', x) for x in agg_sources) +- os.path.join('extern', 'agg24', 'src', x) for x in agg_sources) + pkg_config.setup_extension(ext, 'libagg', default_include_dirs=["/usr/include/agg2"]) diff --git a/python-matplotlib-system-cxx.patch b/python-matplotlib-system-cxx.patch index 7e21bd6..ea05840 100644 --- a/python-matplotlib-system-cxx.patch +++ b/python-matplotlib-system-cxx.patch @@ -1,15 +1,18 @@ --- setupext.py.orig 2014-01-25 15:06:39.460916454 +0100 +++ setupext.py 2014-01-25 15:06:53.080946205 +0100 -@@ -768,12 +768,6 @@ +@@ -841,15 +841,6 @@ name = 'pycxx' def check(self): -- if sys.version_info[0] >= 3: +- if PY3: - # There is no version of PyCXX in the wild that will work -- # with Python 3.x +- # with Python 3.x and matplotlib, since they lack support +- # for the buffer object. - self.__class__.found_external = False -- return ("Official versions of PyCXX are not compatible with " -- "Python 3.x. Using local copy") +- return ("Official versions of PyCXX are not compatible " +- "with matplotlib on Python 3.x, since they lack " +- "support for the buffer object. Using local " +- "copy") self.__class__.found_external = True old_stdout = sys.stdout diff --git a/python-matplotlib.spec b/python-matplotlib.spec index 26ddd00..c2902ca 100644 --- a/python-matplotlib.spec +++ b/python-matplotlib.spec @@ -15,26 +15,30 @@ %global with_wx 1 %endif +# On Fedora 21 onwards, enable Qt5 backend: +%if 0%{?fedora} >= 21 +%global with_qt5 1 +%else +%global with_qt5 0 +%endif + # the default backend; one of GTK GTKAgg GTKCairo GTK3Agg GTK3Cairo -# CocoaAgg MacOSX Qt4Agg TkAgg WX WXAgg Agg Cairo GDK PS PDF SVG +# CocoaAgg MacOSX Qt4Agg Qt5Agg TkAgg WX WXAgg Agg Cairo GDK PS PDF SVG %global backend TkAgg # https://fedorahosted.org/fpc/ticket/381 %global with_bundled_fonts 1 Name: python-matplotlib -Version: 1.3.1 -Release: 7%{?dist} +Version: 1.4.3 +Release: 2%{?dist} Summary: Python 2D plotting library Group: Development/Libraries # qt4_editor backend is MIT License: Python and MIT URL: http://matplotlib.org -#Modified Sources to remove the one undistributable file -#See generate-tarball.sh in fedora cvs repository for logic -#sha1sum matplotlib-1.2.0-without-gpc.tar.gz -#92ada4ef4e7374d67e46e30bfb08c3fed068d680 matplotlib-1.2.0-without-gpc.tar.gz -Source0: matplotlib-%{version}-without-gpc.tar.xz +#Modified Sources to remove the bundled libraries +Source0: matplotlib-%{version}-without-extern.tar.xz Source1: setup.cfg Patch0: %{name}-noagg.patch @@ -42,13 +46,14 @@ Patch1: %{name}-system-cxx.patch Patch2: 20_matplotlibrc_path_search_fix.patch Patch3: 40_bts608939_draw_markers_description.patch Patch4: 50_bts608942_spaces_in_param_args.patch -Patch5: 60_deal_with_no_writable_dirs.patch -Patch6: 70_bts720549_try_StayPuft_for_xkcd.patch +Patch5: 70_bts720549_try_StayPuft_for_xkcd.patch BuildRequires: agg-devel BuildRequires: freetype-devel BuildRequires: gtk2-devel BuildRequires: libpng-devel +BuildRequires: qhull-devel +BuildRequires: python-six BuildRequires: numpy BuildRequires: pycairo-devel BuildRequires: pygtk2-devel @@ -71,6 +76,7 @@ BuildRequires: xorg-x11-server-Xvfb BuildRequires: zlib-devel Requires: dejavu-sans-fonts Requires: dvipng +Requires: python-six Requires: numpy Requires: pycairo Requires: pygtk2 @@ -90,6 +96,12 @@ Requires: %{name}-tk%{?_isa} = %{version}-%{release} %else % if "%{backend}" == "Qt4Agg" Requires: %{name}-qt4%{?_isa} = %{version}-%{release} +% else +% if %{with_qt5} +% if "%{backend}" == "Qt5Agg" +Requires: %{name}-qt5%{?_isa} = %{version}-%{release} +% endif +% endif % endif %endif @@ -114,6 +126,18 @@ Requires: PyQt4 %description qt4 %{summary} +%if %{with_qt5} +%package qt5 +Summary: Qt5 backend for python-matplotlib +Group: Development/Libraries +Requires: %{name}%{?_isa} = %{version}-%{release} +BuildRequires: python-qt5 +Requires: python-qt5 + +%description qt5 +%{summary} +%endif # with_qt5 + %package tk Summary: Tk backend for python-matplotlib Group: Development/Libraries @@ -185,6 +209,7 @@ BuildRequires: python3-pycxx-devel BuildRequires: python3-pyparsing BuildRequires: python3-pytz BuildRequires: python3-six +Requires: python3-six Requires: python3-numpy Requires: python3-cairo Requires: python3-pyparsing @@ -201,6 +226,12 @@ Requires: python3-matplotlib-tk%{?_isa} = %{version}-%{release} %else % if "%{backend}" == "Qt4Agg" Requires: python3-matplotlib-qt4%{?_isa} = %{version}-%{release} +% else +% if %{with_qt5} +% if "%{backend}" == "Qt5Agg" +Requires: python3-matplotlib-qt5%{?_isa} = %{version}-%{release} +% endif +% endif % endif %endif @@ -225,6 +256,18 @@ Requires: python3-PyQt4 %description -n python3-matplotlib-qt4 %{summary} +%if %{with_qt5} +%package -n python3-matplotlib-qt5 +Summary: Qt5 backend for python3-matplotlib +Group: Development/Libraries +Requires: python3-matplotlib%{?_isa} = %{version}-%{release} +BuildRequires: python3-qt5 +Requires: python3-qt5 + +%description -n python3-matplotlib-qt5 +%{summary} +%endif # with_qt5 + %package -n python3-matplotlib-tk Summary: Tk backend for python3-matplotlib Group: Development/Libraries @@ -247,7 +290,7 @@ sed -i 's/\(backend = \).*/\1%{backend}/' setup.cfg # USE_FONTCONFIG to False or True so that cache is regenerated # if updated from a version enabling fontconfig to one not # enabling it, or vice versa -if [ %{version} = 1.3.1 ]; then +if [ %{version} = 1.4.3 ]; then sed -i 's/\(__version__ = 101\)/\1.1/' lib/matplotlib/font_manager.py fi @@ -256,9 +299,6 @@ fi sed -i 's/\(USE_FONTCONFIG = \)False/\1True/' lib/matplotlib/font_manager.py %endif -# Remove bundled libraries -rm -r agg24 CXX - # Remove references to bundled libraries %patch0 -b .noagg %patch1 -b .cxx @@ -266,7 +306,6 @@ rm -r agg24 CXX %patch3 -p1 %patch4 -p1 %patch5 -p1 -%patch6 -p1 chmod -x lib/matplotlib/mpl-data/images/*.svg @@ -350,7 +389,6 @@ PYTHONPATH=$RPM_BUILD_ROOT%{python3_sitearch} \ %doc CHANGELOG %doc INSTALL %doc PKG-INFO -%doc TODO %{python_sitearch}/*egg-info %{python_sitearch}/matplotlib-*-nspkg.pth %{python_sitearch}/matplotlib/ @@ -358,6 +396,8 @@ PYTHONPATH=$RPM_BUILD_ROOT%{python3_sitearch} \ %{python_sitearch}/pylab.py* %exclude %{python_sitearch}/matplotlib/backends/backend_qt4.* %exclude %{python_sitearch}/matplotlib/backends/backend_qt4agg.* +%exclude %{python_sitearch}/matplotlib/backends/backend_qt5.* +%exclude %{python_sitearch}/matplotlib/backends/backend_qt5agg.* %exclude %{python_sitearch}/matplotlib/backends/backend_tkagg.* %exclude %{python_sitearch}/matplotlib/backends/tkagg.* %exclude %{python_sitearch}/matplotlib/backends/_tkagg.so @@ -368,6 +408,12 @@ PYTHONPATH=$RPM_BUILD_ROOT%{python3_sitearch} \ %{python_sitearch}/matplotlib/backends/backend_qt4.* %{python_sitearch}/matplotlib/backends/backend_qt4agg.* +%if %{with_qt5} +%files qt5 +%{python_sitearch}/matplotlib/backends/backend_qt5.* +%{python_sitearch}/matplotlib/backends/backend_qt5agg.* +%endif # with_qt5 + %files tk %{python_sitearch}/matplotlib/backends/backend_tkagg.py* %{python_sitearch}/matplotlib/backends/tkagg.py* @@ -404,7 +450,6 @@ PYTHONPATH=$RPM_BUILD_ROOT%{python3_sitearch} \ %doc %{basepy3dir}/CHANGELOG %doc %{basepy3dir}/INSTALL %doc %{basepy3dir}/PKG-INFO -%doc %{basepy3dir}/TODO %{python3_sitearch}/*egg-info %{python3_sitearch}/matplotlib-*-nspkg.pth %{python3_sitearch}/matplotlib/ @@ -415,12 +460,15 @@ PYTHONPATH=$RPM_BUILD_ROOT%{python3_sitearch} \ %exclude %{python3_sitearch}/matplotlib/backends/__pycache__/backend_qt4.* %exclude %{python3_sitearch}/matplotlib/backends/backend_qt4agg.* %exclude %{python3_sitearch}/matplotlib/backends/__pycache__/backend_qt4agg.* +%exclude %{python3_sitearch}/matplotlib/backends/backend_qt5.* +%exclude %{python3_sitearch}/matplotlib/backends/__pycache__/backend_qt5.* +%exclude %{python3_sitearch}/matplotlib/backends/backend_qt5agg.* +%exclude %{python3_sitearch}/matplotlib/backends/__pycache__/backend_qt5agg.* %exclude %{python3_sitearch}/matplotlib/backends/backend_tkagg.* %exclude %{python3_sitearch}/matplotlib/backends/__pycache__/backend_tkagg.* %exclude %{python3_sitearch}/matplotlib/backends/tkagg.* %exclude %{python3_sitearch}/matplotlib/backends/__pycache__/tkagg.* %exclude %{python3_sitearch}/matplotlib/backends/_tkagg.* -%exclude %{python3_sitearch}/matplotlib/backends/__pycache__/_tkagg.* %files -n python3-matplotlib-qt4 %{python3_sitearch}/matplotlib/backends/backend_qt4.* @@ -428,6 +476,14 @@ PYTHONPATH=$RPM_BUILD_ROOT%{python3_sitearch} \ %{python3_sitearch}/matplotlib/backends/backend_qt4agg.* %{python3_sitearch}/matplotlib/backends/__pycache__/backend_qt4agg.* +%if %{with_qt5} +%files -n python3-matplotlib-qt5 +%{python3_sitearch}/matplotlib/backends/backend_qt5.* +%{python3_sitearch}/matplotlib/backends/__pycache__/backend_qt5.* +%{python3_sitearch}/matplotlib/backends/backend_qt5agg.* +%{python3_sitearch}/matplotlib/backends/__pycache__/backend_qt5agg.* +%endif # with_qt5 + %files -n python3-matplotlib-tk %{python3_sitearch}/matplotlib/backends/backend_tkagg.py* %{python3_sitearch}/matplotlib/backends/__pycache__/backend_tkagg.* @@ -437,6 +493,18 @@ PYTHONPATH=$RPM_BUILD_ROOT%{python3_sitearch} \ %endif %changelog +* Tue Feb 17 2015 Elliott Sales de Andrade - 1.4.3-2 +- Disable Qt5 backend on Fedora <21 and RHEL + +* Tue Feb 17 2015 Elliott Sales de Andrade - 1.4.3-1 +- New upstream release +- Add Qt5 backend + +* Tue Jan 13 2015 Elliott Sales de Andrade - 1.4.2-1 +- Bump to new upstream release +- Add qhull-devel to BR +- Add six to Requires + * Sun Aug 17 2014 Fedora Release Engineering - 1.3.1-7 - Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild