[python-matplotlib] Add Requires dvipng (Bug 684836) Build against system agg (Bug 612807) Use system pyparsing (Bug 702

Orion Poplawski orion at fedoraproject.org
Fri May 20 22:45:09 UTC 2011


commit e461fe631eeb21c447d78ecf9ffba4755f9639c6
Author: Orion Poplawski <orion at cora.nwra.com>
Date:   Fri May 20 16:44:50 2011 -0600

    Add Requires dvipng (Bug 684836)
    Build against system agg (Bug 612807)
    Use system pyparsing (Bug 702160)

 matplotlib-1.0.1-noagg.patch |   82 ++++++++++++++++++++++++++++++++++++++++++
 python-matplotlib.spec       |   21 ++++++++++-
 2 files changed, 101 insertions(+), 2 deletions(-)
---
diff --git a/matplotlib-1.0.1-noagg.patch b/matplotlib-1.0.1-noagg.patch
new file mode 100644
index 0000000..687f8b2
--- /dev/null
+++ b/matplotlib-1.0.1-noagg.patch
@@ -0,0 +1,82 @@
+diff -up matplotlib-1.0.1/MANIFEST.in.noagg matplotlib-1.0.1/MANIFEST.in
+--- matplotlib-1.0.1/MANIFEST.in.noagg	2010-07-06 19:41:55.000000000 -0600
++++ matplotlib-1.0.1/MANIFEST.in	2011-05-20 15:45:38.337580769 -0600
+@@ -18,6 +18,5 @@ recursive-include examples *
+ recursive-include doc *
+ recursive-include src  *.cpp *.c *.h *.m
+ recursive-include CXX  *.cxx *.hxx *.c *.h
+-recursive-include agg24 *
+ recursive-include lib *
+ recursive-include ttconv *.cpp *.h
+diff -up matplotlib-1.0.1/setupext.py.noagg matplotlib-1.0.1/setupext.py
+--- matplotlib-1.0.1/setupext.py.noagg	2010-07-06 19:41:55.000000000 -0600
++++ matplotlib-1.0.1/setupext.py	2011-05-20 16:11:56.977764688 -0600
+@@ -104,7 +104,6 @@ BUILT_GDK       = False
+ BUILT_PATH      = False
+ BUILT_TRI       = False
+ 
+-AGG_VERSION = 'agg24'
+ TCL_TK_CACHE = None
+ 
+ # for nonstandard installation/build with --prefix variable
+@@ -551,7 +550,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)
+@@ -1251,17 +1251,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')
+@@ -1284,15 +1274,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_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')
+@@ -1317,14 +1299,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'))
+ 
diff --git a/python-matplotlib.spec b/python-matplotlib.spec
index f18b93f..08b87ea 100644
--- a/python-matplotlib.spec
+++ b/python-matplotlib.spec
@@ -19,7 +19,7 @@
 
 Name:           python-matplotlib
 Version:        1.0.1
-Release:        11%{?dist}
+Release:        12%{?dist}
 Summary:        Python plotting library
 
 Group:          Development/Libraries
@@ -36,13 +36,18 @@ Source1:        http://downloads.sourceforge.net/matplotlib/mpl_sampledata-%{ver
 Source2:        setup.cfg
 # This patch taken from upstream SVN and will not be needed for releases later than 1.0.1
 Patch0:         matplotlib-1.0.1-plot_directive.patch
+Patch1:         matplotlib-1.0.1-noagg.patch
 BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
 BuildRequires:  python-devel, freetype-devel, libpng-devel, zlib-devel
 BuildRequires:  pygtk2-devel, gtk2-devel
 BuildRequires:  pytz, python-dateutil, numpy
+BuildRequires:  agg-devel
+BuildRequires:  pyparsing
 Requires:       numpy, pytz, python-dateutil
 Requires:       pycairo >= 1.2.0
 Requires:       dejavu-sans-fonts
+Requires:       dvipng
+Requires:       pyparsing
 
 %description
 Matplotlib is a pure python plotting library with the goal of making
@@ -96,8 +101,15 @@ BuildRequires:  python-basemap
 %else
 %setup -q -n matplotlib-%{version}
 %endif
-
 %patch0 -p1
+
+# Remove bundled libraries
+rm -r agg24 lib/matplotlib//pyparsing.py
+
+# Remove references to bundled libraries
+%patch1 -p1 -b .noagg
+sed -i -e s/matplotlib\.pyparsing/pyparsing/g lib/matplotlib/*.py
+
 chmod -x lib/matplotlib/mpl-data/images/*.svg
 
 cp %{SOURCE2} ./setup.cfg
@@ -178,6 +190,11 @@ rm -rf $RPM_BUILD_ROOT
 %endif
 
 %changelog
+* Fri May 20 2011 Orion Poplawski <orion at cora.nwra.com> - 1.0.1-12
+- Add Requires dvipng (Bug 684836)
+- Build against system agg (Bug 612807)
+- Use system pyparsing (Bug 702160)
+
 * Sat Feb 26 2011 Jonathan G. Underwood <jonathan.underwood at gmail.com> - 1.0.1-11
 - Set PYTHONPATH during html doc building using find to prevent broken builds
 


More information about the scm-commits mailing list