Compare commits

...

10 Commits
f19 ... f20

Author SHA1 Message Date
pcpa
7731b0f8b4 Make TkAgg the default backend 2014-02-11 12:17:25 -02:00
pcpa
8736c81a32 Disable check because it randomly fails in koji build 2014-01-28 16:05:45 -02:00
pcpa
12e8a6231d Cconditionally to bundle fonts (#1047559) 2014-01-28 14:50:22 -02:00
Thomas Spura
b69e56e8d0 Also actually add setup.cfg 2014-01-25 17:22:54 +01:00
Thomas Spura
be26c9bf21 Update to 1.3.1 and use GTKAgg backend
bugs closed: #1030396, #982793, #1049624
2014-01-25 17:06:52 +01:00
Thomas Spura
f7ffbd877f BR: python-numpydoc when building html docs 2013-08-08 11:29:07 +02:00
Thomas Spura
14b1524911 Also fix day of last changelog entry 2013-08-07 15:59:17 +02:00
Thomas Spura
674876c696 Fix Changelog date entry 2013-08-07 15:58:02 +02:00
Thomas Spura
81fc2e8024 update to new version
- use xz to compress sources
- drop fontconfig patch (upstream)
- drop tk patch (upstream solved build issue differently)
- redo use system agg patch
- delete bundled python-pycxx headers
- fix requires of python3-matplotlib-qt (fixes #988412)
2013-08-07 15:53:33 +02:00
Dennis Gilmore
0a7be6ae46 - Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild 2013-08-04 03:23:38 -05:00
14 changed files with 451 additions and 210 deletions

2
.gitignore vendored
View File

@@ -2,3 +2,5 @@ matplotlib-1.0.0-without-gpc.tar.gz
/matplotlib-1.0.1-without-gpc.tar.gz
/mpl_sampledata-1.0.1.tar.gz
/matplotlib-1.2.0-without-gpc.tar.gz
/matplotlib-1.3.0-without-gpc.tar.xz
/matplotlib-1.3.1-without-gpc.tar.xz

View File

@@ -0,0 +1,29 @@
Description: Fixes the path to search for matplotlibrc file
Forwarded: not-needed
Author: Sandro Tosi <morph@debian.org>
--- a/lib/matplotlib/__init__.py
+++ b/lib/matplotlib/__init__.py
@@ -607,10 +607,12 @@ def _get_data_path():
raise RuntimeError('Path in environment MATPLOTLIBDATA not a directory')
return path
- path = os.sep.join([os.path.dirname(__file__), 'mpl-data'])
+ path = '/usr/share/matplotlib/mpl-data'
if os.path.isdir(path):
return path
+ raise RuntimeError('Could not find the matplotlib data files')
+
# 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())
return fname
- path = get_data_path() # guaranteed to exist or raise
+ path = '/etc' # guaranteed to exist or raise
fname = os.path.join(path, 'matplotlibrc')
if not os.path.exists(fname):
warnings.warn('Could not find matplotlibrc; using defaults')

View File

@@ -0,0 +1,14 @@
Description: minor glitch in draw_markers() description
Author: Jakub Wilk <jwilk@debian.org>
--- a/doc/api/api_changes.rst
+++ b/doc/api/api_changes.rst
@@ -919,7 +919,7 @@ New methods:
* :meth:`draw_markers(self, gc, marker_path, marker_trans, path,
trans, rgbFace)
- <matplotlib.backend_bases.RendererBase.draw_markers`
+ <matplotlib.backend_bases.RendererBase.draw_markers>`
* :meth:`draw_path_collection(self, master_transform, cliprect,
clippath, clippath_trans, paths, all_transforms, offsets,

View File

@@ -0,0 +1,49 @@
Description: don't separate param and its argument with a space
--- a/lib/mpl_toolkits/axes_grid1/axes_divider.py
+++ b/lib/mpl_toolkits/axes_grid1/axes_divider.py
@@ -201,12 +201,12 @@ class Divider(object):
def locate(self, nx, ny, nx1=None, ny1=None, axes=None, renderer=None):
"""
- :param nx, nx1: Integers specifying the column-position of the
+ :param nx,nx1: Integers specifying the column-position of the
cell. When nx1 is None, a single nx-th column is
specified. Otherwise location of columns spanning between nx
to nx1 (but excluding nx1-th column) is specified.
- :param ny, ny1: same as nx and nx1, but for row positions.
+ :param ny,ny1: same as nx and nx1, but for row positions.
"""
@@ -253,12 +253,12 @@ class Divider(object):
(:class:`mpl_toolkits.axes_grid.axes_divider.AxesLocator`) for
specified cell.
- :param nx, nx1: Integers specifying the column-position of the
+ :param nx,nx1: Integers specifying the column-position of the
cell. When nx1 is None, a single nx-th column is
specified. Otherwise location of columns spanning between nx
to nx1 (but excluding nx1-th column) is specified.
- :param ny, ny1: same as nx and nx1, but for row positions.
+ :param ny,ny1: same as nx and nx1, but for row positions.
"""
return AxesLocator(self, nx, ny, nx1, ny1)
@@ -299,12 +299,12 @@ class AxesLocator(object):
"""
:param axes_divider: An instance of AxesDivider class.
- :param nx, nx1: Integers specifying the column-position of the
+ :param nx,nx1: Integers specifying the column-position of the
cell. When nx1 is None, a single nx-th column is
specified. Otherwise location of columns spanning between nx
to nx1 (but excluding nx1-th column) is is specified.
- :param ny, ny1: same as nx and nx1, but for row positions.
+ :param ny,ny1: same as nx and nx1, but for row positions.
"""
self._axes_divider = axes_divider

View File

@@ -0,0 +1,111 @@
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, "

View File

@@ -0,0 +1,19 @@
Description: Try to use also StayPuft (a free font) for xkcd
Author: Sandro Tosi <morph@debian.org>
Origin: vendor
Bug: http://bugs.debian.org/720549
Forwarded: not-needed
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
from matplotlib import patheffects
context = rc_context()
try:
- rcParams['font.family'] = ['Humor Sans', 'Comic Sans MS']
+ rcParams['font.family'] = ['Humor Sans', 'Comic Sans MS', 'StayPuft']
rcParams['font.size'] = 14.0
rcParams['path.sketch'] = (scale, length, randomness)
rcParams['path.effects'] = [

View File

@@ -6,7 +6,7 @@ version=$1
dir=matplotlib-${version}
file=matplotlib-${version}.tar.gz
result=matplotlib-${version}-without-gpc.tar.gz
result=matplotlib-${version}-without-gpc.tar.xz
wget -vc http://downloads.sourceforge.net/matplotlib/$file
@@ -16,4 +16,4 @@ tar xzf $file
rm matplotlib-${version}/agg24/include/agg_conv_gpc.h
rm -f $result
tar czf $result $dir
tar cJf $result $dir

View File

@@ -1,64 +0,0 @@
diff -ur matplotlib-1.2.0.orig/lib/matplotlib/font_manager.py matplotlib-1.2.0/lib/matplotlib/font_manager.py
--- matplotlib-1.2.0.orig/lib/matplotlib/font_manager.py 2012-10-31 01:11:14.000000000 +0100
+++ matplotlib-1.2.0/lib/matplotlib/font_manager.py 2013-04-03 01:50:34.433802284 +0200
@@ -62,7 +62,7 @@
except ImportError:
import pickle
-USE_FONTCONFIG = False
+USE_FONTCONFIG = True
verbose = matplotlib.verbose
@@ -771,7 +771,7 @@
return float(self._size)
except ValueError:
pass
- default_size = fontManager.get_default_size()
+ default_size = FontManager.get_default_size()
return default_size * font_scalings.get(self._size)
def get_file(self):
@@ -991,7 +991,10 @@
self.afmfiles = findSystemFonts(paths, fontext='afm') + \
findSystemFonts(fontext='afm')
self.afmlist = createFontList(self.afmfiles, fontext='afm')
- self.defaultFont['afm'] = self.afmfiles[0]
+ try:
+ self.defaultFont['afm'] = self.afmfiles[0]
+ except IndexError:
+ self.defaultFont['afm'] = None
self.ttf_lookup_cache = {}
self.afm_lookup_cache = {}
@@ -1002,7 +1005,8 @@
"""
return self.__default_weight
- def get_default_size(self):
+ @staticmethod
+ def get_default_size():
"""
Return the default font size.
"""
@@ -1276,7 +1280,7 @@
except OSError:
return None
if pipe.returncode == 0:
- for match in _fc_match_regex.finditer(output):
+ for match in _fc_match_regex.finditer(output.decode("utf-8")):
file = match.group(1)
if os.path.splitext(file)[1][1:] in fontexts:
return file
diff -ur matplotlib-1.2.0.orig/lib/matplotlib/mpl-data/matplotlibrc matplotlib-1.2.0/lib/matplotlib/mpl-data/matplotlibrc
--- matplotlib-1.2.0.orig/lib/matplotlib/mpl-data/matplotlibrc 2012-11-08 17:39:20.000000000 +0100
+++ matplotlib-1.2.0/lib/matplotlib/mpl-data/matplotlibrc 2013-04-03 01:50:03.693755542 +0200
@@ -198,7 +198,7 @@
#mathtext.it : serif:italic
#mathtext.bf : serif:bold
#mathtext.sf : sans
-#mathtext.fontset : cm # Should be 'cm' (Computer Modern), 'stix',
+mathtext.fontset : stix # Should be 'cm' (Computer Modern), 'stix',
# 'stixsans' or 'custom'
#mathtext.fallback_to_cm : True # When True, use symbols from the Computer Modern
# fonts when a symbol can not be found in one of

View File

@@ -1,73 +1,26 @@
diff -up matplotlib-1.2.0/setupext.py.orig matplotlib-1.2.0/setupext.py
--- matplotlib-1.2.0/setupext.py.orig 2012-11-23 14:49:21.295712608 -0200
+++ matplotlib-1.2.0/setupext.py 2012-11-23 14:49:31.508712999 -0200
@@ -96,7 +96,6 @@ BUILT_GDK = False
BUILT_PATH = False
BUILT_TRI = False
--- 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 @@
return str(e) + ' Using local copy.'
-AGG_VERSION = 'agg24'
TCL_TK_CACHE = None
def add_flags(self, ext):
- if self.found_external:
- pkg_config.setup_extension(ext, 'libagg')
- else:
- ext.include_dirs.append('agg24/include')
- agg_sources = [
- 'agg_bezier_arc.cpp',
- 'agg_curves.cpp',
- 'agg_image_filters.cpp',
- 'agg_trans_affine.cpp',
- 'agg_vcgen_contour.cpp',
- 'agg_vcgen_dash.cpp',
- 'agg_vcgen_stroke.cpp',
- 'agg_vpgen_segmentator.cpp'
- ]
- ext.sources.extend(
- os.path.join('agg24', 'src', x) for x in agg_sources)
+ pkg_config.setup_extension(ext, 'libagg', default_include_dirs=["/usr/include/agg2"])
# for nonstandard installation/build with --prefix variable
@@ -621,7 +620,8 @@ def add_agg_flags(module):
# before adding the freetype flags since -z comes later
add_base_flags(module)
add_numpy_flags(module)
- module.include_dirs.extend(['src', '%s/include'%AGG_VERSION, '.'])
+ module.include_dirs.extend(['src', '/usr/include/agg2', '.'])
+ module.libraries.append('agg')
# put these later for correct link order
module.libraries.extend(std_libs)
@@ -1220,17 +1220,7 @@ def build_agg(ext_modules, packages):
global BUILT_AGG
if BUILT_AGG: return # only build it if you you haven't already
- agg = (
- 'agg_trans_affine.cpp',
- 'agg_bezier_arc.cpp',
- 'agg_curves.cpp',
- 'agg_vcgen_dash.cpp',
- 'agg_vcgen_stroke.cpp',
- 'agg_image_filters.cpp',
- )
-
- deps = ['%s/src/%s'%(AGG_VERSION, name) for name in agg]
- deps.extend(['src/mplutils.cpp', 'src/agg_py_transforms.cpp'])
+ deps = ['src/mplutils.cpp', 'src/agg_py_transforms.cpp']
deps.extend(glob.glob('CXX/*.cxx'))
deps.extend(glob.glob('CXX/*.c'))
temp_copy('src/_backend_agg.cpp', 'src/backend_agg.cpp')
@@ -1253,16 +1243,7 @@ def build_path(ext_modules, packages):
global BUILT_PATH
if BUILT_PATH: return # only build it if you you haven't already
- agg = (
- 'agg_vcgen_contour.cpp',
- 'agg_curves.cpp',
- 'agg_bezier_arc.cpp',
- 'agg_trans_affine.cpp',
- 'agg_vcgen_stroke.cpp',
- )
-
- deps = ['%s/src/%s'%(AGG_VERSION, name) for name in agg]
- deps.extend(glob.glob('CXX/*.cxx'))
+ deps = glob.glob('CXX/*.cxx')
deps.extend(glob.glob('CXX/*.c'))
temp_copy('src/_path.cpp', 'src/path.cpp')
@@ -1287,14 +1268,8 @@ def build_image(ext_modules, packages):
global BUILT_IMAGE
if BUILT_IMAGE: return # only build it if you you haven't already
- agg = ('agg_trans_affine.cpp',
- 'agg_image_filters.cpp',
- 'agg_bezier_arc.cpp',
- )
-
temp_copy('src/_image.cpp', 'src/image.cpp')
deps = ['src/image.cpp', 'src/mplutils.cpp']
- deps.extend(['%s/src/%s'%(AGG_VERSION,name) for name in agg])
deps.extend(glob.glob('CXX/*.cxx'))
deps.extend(glob.glob('CXX/*.c'))
class FreeType(SetupPackage):

View File

@@ -0,0 +1,15 @@
--- 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 @@
name = 'pycxx'
def check(self):
- if sys.version_info[0] >= 3:
- # There is no version of PyCXX in the wild that will work
- # with Python 3.x
- self.__class__.found_external = False
- return ("Official versions of PyCXX are not compatible with "
- "Python 3.x. Using local copy")
self.__class__.found_external = True
old_stdout = sys.stdout

View File

@@ -1,35 +0,0 @@
diff -up matplotlib-1.2.0/setupext.py.orig matplotlib-1.2.0/setupext.py
--- matplotlib-1.2.0/setupext.py.orig 2012-11-23 14:50:48.954715965 -0200
+++ matplotlib-1.2.0/setupext.py 2012-11-23 14:55:53.731727636 -0200
@@ -898,12 +898,12 @@ def parse_tcl_config(tcl_lib_dir, tk_lib
tcl_poss = [tcl_lib_dir,
os.path.normpath(os.path.join(tcl_lib_dir, '..')),
- "/usr/lib/tcl"+str(Tkinter.TclVersion),
- "/usr/lib"]
+ "@@libdir@@/tcl"+str(Tkinter.TclVersion),
+ "@@libdir@@"]
tk_poss = [tk_lib_dir,
os.path.normpath(os.path.join(tk_lib_dir, '..')),
- "/usr/lib/tk"+str(Tkinter.TkVersion),
- "/usr/lib"]
+ "@@libdir@@/tk"+str(Tkinter.TkVersion),
+ "@@libdir@@"]
for ptcl, ptk in zip(tcl_poss, tk_poss):
tcl_config = os.path.join(ptcl, "tclConfig.sh")
tk_config = os.path.join(ptk, "tkConfig.sh")
@@ -974,10 +974,10 @@ def guess_tcl_config(tcl_lib_dir, tk_lib
return tcl_lib, tcl_inc, 'tcl' + tk_ver, tk_lib, tk_inc, 'tk' + tk_ver
def hardcoded_tcl_config():
- tcl_inc = "/usr/local/include"
- tk_inc = "/usr/local/include"
- tcl_lib = "/usr/local/lib"
- tk_lib = "/usr/local/lib"
+ tcl_inc = "/usr/include"
+ tk_inc = "/usr/include"
+ tcl_lib = "@@libdir@@"
+ tk_lib = "@@libdir@@"
return tcl_lib, tcl_inc, 'tcl', tk_lib, tk_inc, 'tk'
def add_tk_flags(module):

View File

@@ -6,6 +6,7 @@
%endif
%global __provides_exclude_from .*/site-packages/.*\\.so$
%global with_html 1
%global run_tests 0
# On RHEL 7 onwards, don't build with wx:
%if 0%{?rhel} >= 7
@@ -14,26 +15,35 @@
%global with_wx 1
%endif
# the default backend; one of GTK GTKAgg GTKCairo GTK3Agg GTK3Cairo
# CocoaAgg MacOSX Qt4Agg 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.2.0
Release: 14%{?dist}
Version: 1.3.1
Release: 3%{?dist}
Summary: Python 2D plotting library
Group: Development/Libraries
License: Python
# 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.gz
Source0: matplotlib-%{version}-without-gpc.tar.xz
Source1: setup.cfg
Patch0: %{name}-noagg.patch
Patch1: %{name}-tk.patch
# http://sourceforge.net/mailarchive/message.php?msg_id=30202451
# https://github.com/matplotlib/matplotlib/pull/1666
# https://bugzilla.redhat.com/show_bug.cgi?id=896182
Patch2: %{name}-fontconfig.patch
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
BuildRequires: agg-devel
BuildRequires: freetype-devel
@@ -43,7 +53,18 @@ BuildRequires: numpy
BuildRequires: pycairo-devel
BuildRequires: pygtk2-devel
BuildRequires: pyparsing
BuildRequires: python-pycxx-devel
BuildRequires: python-dateutil
BuildRequires: python-setuptools
%if %{with_html}
BuildRequires: python-numpydoc
%endif
%if %{run_tests}
BuildRequires: python-nose
%if %{with_python3}
BuildRequires: python3-nose
%endif
%endif
BuildRequires: python2-devel
BuildRequires: pytz
BuildRequires: xorg-x11-server-Xvfb
@@ -61,6 +82,16 @@ Requires: stix-math-fonts
%else
Requires: stix-fonts
%endif
Requires: %{name}-data = %{version}-%{release}
# GTKAgg does not require extra subpackages, but does not work with python3
%if "%{backend}" == "TkAgg"
Requires: %{name}-tk%{?_isa} = %{version}-%{release}
%else
% if "%{backend}" == "Qt4Agg"
Requires: %{name}-qt4%{?_isa} = %{version}-%{release}
% endif
%endif
%description
Matplotlib is a python 2D plotting library which produces publication
@@ -120,6 +151,26 @@ BuildRequires: dvipng
%description doc
%{summary}
%package data
Summary: Data used by python-matplotlib
%if %{with_bundled_fonts}
Requires: %{name}-data-fonts = %{version}-%{release}
%endif
BuildArch: noarch
%description data
%{summary}
%if %{with_bundled_fonts}
%package data-fonts
Summary: Fonts used by python-matplotlib
Requires: %{name}-data = %{version}-%{release}
BuildArch: noarch
%description data-fonts
%{summary}
%endif
%if %{with_python3}
%package -n python3-matplotlib
Summary: Python 2D plotting library
@@ -127,8 +178,10 @@ Group: Development/Libraries
BuildRequires: python3-cairo
BuildRequires: python3-dateutil
BuildRequires: python3-devel
BuildRequires: python3-setuptools
BuildRequires: python3-gobject
BuildRequires: python3-numpy
BuildRequires: python3-pycxx-devel
BuildRequires: python3-pyparsing
BuildRequires: python3-pytz
BuildRequires: python3-six
@@ -142,6 +195,14 @@ Requires: stix-math-fonts
%else
Requires: stix-fonts
%endif
Requires: %{name}-data = %{version}-%{release}
%if "%{backend}" == "TkAgg"
Requires: python3-matplotlib-tk%{?_isa} = %{version}-%{release}
%else
% if "%{backend}" == "Qt4Agg"
Requires: python3-matplotlib-qt4%{?_isa} = %{version}-%{release}
% endif
%endif
%description -n python3-matplotlib
Matplotlib is a python 2D plotting library which produces publication
@@ -157,7 +218,7 @@ errorcharts, scatterplots, etc, with just a few lines of code.
%package -n python3-matplotlib-qt4
Summary: Qt4 backend for python3-matplotlib
Group: Development/Libraries
Requires: %{name}%{?_isa} = %{version}-%{release}
Requires: python3-matplotlib%{?_isa} = %{version}-%{release}
BuildRequires: python3-PyQt4-devel
Requires: python3-PyQt4
@@ -178,19 +239,34 @@ Requires: python3-tkinter
%prep
%setup -q -n matplotlib-%{version}
# Copy setup.cfg to the builddir
cp %{SOURCE1} .
sed -i 's/\(backend = \).*/\1%{backend}/' setup.cfg
# Keep this until next version, and increment if changing from
# 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
sed -i 's/\(__version__ = 101\)/\1.1/' lib/matplotlib/font_manager.py
fi
%if !%{with_bundled_fonts}
# Use fontconfig by default
sed -i 's/\(USE_FONTCONFIG = \)False/\1True/' lib/matplotlib/font_manager.py
%endif
# Remove bundled libraries
rm -r agg24 lib/matplotlib/pyparsing_py?.py
rm -r agg24 CXX
# Remove references to bundled libraries
%patch0 -p1 -b .noagg
sed -i -e s/matplotlib\.pyparsing_py./pyparsing/g lib/matplotlib/*.py
# Correct tcl/tk detection
%patch1 -p1 -b .tk
sed -i -e 's|@@libdir@@|%{_libdir}|' setupext.py
# Use fontconfig by default
%patch2 -p1 -b .fontconfig
%patch0 -b .noagg
%patch1 -b .cxx
%patch2 -p1
%patch3 -p1
%patch4 -p1
%patch5 -p1
%patch6 -p1
chmod -x lib/matplotlib/mpl-data/images/*.svg
@@ -200,12 +276,16 @@ cp -a . %{py3dir}
%endif
%build
xvfb-run %{__python2} setup.py build
MPLCONFIGDIR=$PWD \
MATPLOTLIBDATA=$PWD/lib/matplotlib/mpl-data \
xvfb-run %{__python2} setup.py build
%if %{with_html}
# Need to make built matplotlib libs available for the sphinx extensions:
pushd doc
export PYTHONPATH=`realpath ../build/lib.linux*`
%{__python2} make.py html
MPLCONFIGDIR=$PWD/.. \
MATPLOTLIBDATA=$PWD/../lib/matplotlib/mpl-data \
PYTHONPATH=`realpath ../build/lib.linux*` \
%{__python2} make.py html
popd
%endif
# Ensure all example files are non-executable so that the -doc
@@ -214,37 +294,65 @@ find examples -name '*.py' -exec chmod a-x '{}' \;
%if %{with_python3}
pushd %{py3dir}
xvfb-run %{__python3} setup.py build
MPLCONFIGDIR=$PWD \
MATPLOTLIBDATA=$PWD/lib/matplotlib/mpl-data \
xvfb-run %{__python3} setup.py build
# documentation cannot be built with python3 due to syntax errors
# and building with python 2 exits with cryptic error messages
popd
%endif
%install
%{__python} setup.py install -O1 --skip-build --root=$RPM_BUILD_ROOT
MPLCONFIGDIR=$PWD \
MATPLOTLIBDATA=$PWD/lib/matplotlib/mpl-data/ \
%{__python} setup.py install -O1 --skip-build --root=$RPM_BUILD_ROOT
chmod +x $RPM_BUILD_ROOT%{python_sitearch}/matplotlib/dates.py
rm -rf $RPM_BUILD_ROOT%{python_sitearch}/matplotlib/mpl-data/fonts
mkdir -p $RPM_BUILD_ROOT%{_sysconfdir} $RPM_BUILD_ROOT%{_datadir}/matplotlib
mv $RPM_BUILD_ROOT%{python_sitearch}/matplotlib/mpl-data/matplotlibrc \
$RPM_BUILD_ROOT%{_sysconfdir}
mv $RPM_BUILD_ROOT%{python_sitearch}/matplotlib/mpl-data \
$RPM_BUILD_ROOT%{_datadir}/matplotlib
%if !%{with_bundled_fonts}
rm -rf $RPM_BUILD_ROOT%{_datadir}/matplotlib/mpl-data/fonts
%endif
%if %{with_python3}
pushd %{py3dir}
%{__python3} setup.py install -O1 --skip-build --root=$RPM_BUILD_ROOT
MPLCONFIGDIR=$PWD/.. \
MATPLOTLIBDATA=$PWD/../lib/matplotlib/mpl-data/ \
%{__python3} setup.py install -O1 --skip-build --root=$RPM_BUILD_ROOT
chmod +x $RPM_BUILD_ROOT%{python3_sitearch}/matplotlib/dates.py
rm -rf $RPM_BUILD_ROOT%{python3_sitearch}/matplotlib/mpl-data/fonts
rm -fr $RPM_BUILD_ROOT%{python3_sitearch}/matplotlib/mpl-data
rm -f $RPM_BUILD_ROOT%{python3_sitearch}/six.py
popd
%endif
%if %{run_tests}
%check
# This should match the default backend
echo "backend : %{backend}" > matplotlibrc
MPLCONFIGDIR=$PWD \
MATPLOTLIBDATA=$RPM_BUILD_ROOT%{_datadir}/matplotlib/mpl-data \
PYTHONPATH=$RPM_BUILD_ROOT%{python_sitearch} \
xvfb-run %{__python} -c "import matplotlib; matplotlib.test()"
%if %{with_python3}
MPLCONFIGDIR=$PWD \
MATPLOTLIBDATA=$RPM_BUILD_ROOT%{_datadir}/matplotlib/mpl-data \
PYTHONPATH=$RPM_BUILD_ROOT%{python3_sitearch} \
xvfb-run %{__python3} -c "import matplotlib; matplotlib.test()"
%endif
%endif # run_tests
%files
%doc README.txt
%doc lib/dateutil_py2/LICENSE
%doc lib/matplotlib/mpl-data/fonts/ttf/LICENSE_STIX
%doc lib/pytz/LICENSE.txt
%doc README.rst
%doc LICENSE/
%doc CHANGELOG
%doc CXX
%doc INSTALL
%doc PKG-INFO
%doc TODO
%{python_sitearch}/*egg-info
%{python_sitearch}/matplotlib-*-nspkg.pth
%{python_sitearch}/matplotlib/
%{python_sitearch}/mpl_toolkits/
%{python_sitearch}/pylab.py*
@@ -277,18 +385,28 @@ popd
%doc doc/build/html/*
%endif
%files data
%{_sysconfdir}/matplotlibrc
%{_datadir}/matplotlib/mpl-data/
%if %{with_bundled_fonts}
%exclude %{_datadir}/matplotlib/mpl-data/fonts/
%endif
%if %{with_bundled_fonts}
%files data-fonts
%{_datadir}/matplotlib/mpl-data/fonts/
%endif
%if %{with_python3}
%files -n python3-matplotlib
%doc %{basepy3dir}/README.txt
%doc %{basepy3dir}/lib/dateutil_py3/LICENSE
%doc %{basepy3dir}/lib/matplotlib/mpl-data/fonts/ttf/LICENSE_STIX
%doc %{basepy3dir}/lib/pytz/LICENSE.txt
%doc %{basepy3dir}/README.rst
%doc %{basepy3dir}/LICENSE/
%doc %{basepy3dir}/CHANGELOG
%doc %{basepy3dir}/CXX
%doc %{basepy3dir}/INSTALL
%doc %{basepy3dir}/PKG-INFO
%doc %{basepy3dir}/TODO
%{python3_sitearch}/*egg-info
%{python3_sitearch}/matplotlib-*-nspkg.pth
%{python3_sitearch}/matplotlib/
%{python3_sitearch}/mpl_toolkits/
%{python3_sitearch}/pylab.py*
@@ -319,6 +437,34 @@ popd
%endif
%changelog
* Tue Feb 11 2014 pcpa <paulo.cesar.pereira.de.andrade@gmail.com> - 1.3.1-3
- Make TkAgg the default backend
- Remove python2 dependency from -data subpackage
* Mon Jan 27 2014 pcpa <paulo.cesar.pereira.de.andrade@gmail.com> - 1.3.1-2
- Correct environment for and enable %%check
- Install system wide matplotlibrc under /etc
- Do not duplicate mpl-data for python2 and python3 packages
- Conditionally bundle data fonts (https://fedorahosted.org/fpc/ticket/381)
* Sat Jan 25 2014 Thomas Spura <tomspur@fedoraproject.org> - 1.3.1-1
- update to 1.3.1
- use GTKAgg as backend (#1030396, #982793, #1049624)
- use fontconfig
- add %%check for local testing (testing requires a display)
* Wed Aug 7 2013 Thomas Spura <tomspur@fedoraproject.org> - 1.3.0-1
- update to new version
- use xz to compress sources
- drop fontconfig patch (upstream)
- drop tk patch (upstream solved build issue differently)
- redo use system agg patch
- delete bundled python-pycxx headers
- fix requires of python3-matplotlib-qt (fixes #988412)
* Sun Aug 04 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.2.0-15
- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
* Mon Jun 10 2013 Jon Ciesla <limburgher@gmail.com> - 1.2.0-14
- agg rebuild.

2
setup.cfg Normal file
View File

@@ -0,0 +1,2 @@
[rc_options]
backend = GTKAgg

View File

@@ -1 +1 @@
2add984c264ecdfc4a212f914736b78c matplotlib-1.2.0-without-gpc.tar.gz
832170ea532d5f7ca227ea04f044291e matplotlib-1.3.1-without-gpc.tar.xz