Added a few useful patches from upstream. Now use default config before documentation...
authorSebastien Fabbro <bicatali@gentoo.org>
Mon, 31 May 2010 20:23:16 +0000 (20:23 +0000)
committerSebastien Fabbro <bicatali@gentoo.org>
Mon, 31 May 2010 20:23:16 +0000 (20:23 +0000)
Package-Manager: portage-2.2_rc67/cvs/Linux x86_64

dev-python/matplotlib/ChangeLog
dev-python/matplotlib/Manifest
dev-python/matplotlib/files/matplotlib-0.99.1.1-docs.patch [new file with mode: 0644]
dev-python/matplotlib/files/matplotlib-0.99.1.1-eintr.patch [new file with mode: 0644]
dev-python/matplotlib/files/matplotlib-0.99.1.1-gtk-tooltip.patch [new file with mode: 0644]
dev-python/matplotlib/files/matplotlib-0.99.1.1-libpng14.patch
dev-python/matplotlib/matplotlib-0.99.1.1-r2.ebuild [new file with mode: 0644]

index f869283ca6f5d5058dd56c1469191769fec9a36f..f7987299f8d23efd88a45214113b907516f628de 100644 (file)
@@ -1,6 +1,17 @@
 # ChangeLog for dev-python/matplotlib
 # Copyright 1999-2010 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/dev-python/matplotlib/ChangeLog,v 1.86 2010/05/30 16:32:31 phajdan.jr Exp $
+# $Header: /var/cvsroot/gentoo-x86/dev-python/matplotlib/ChangeLog,v 1.87 2010/05/31 20:23:16 bicatali Exp $
+
+*matplotlib-0.99.1.1-r2 (31 May 2010)
+
+  31 May 2010; Sébastien Fabbro <bicatali@gentoo.org>
+  +matplotlib-0.99.1.1-r2.ebuild, +files/matplotlib-0.99.1.1-docs.patch,
+  +files/matplotlib-0.99.1.1-eintr.patch,
+  +files/matplotlib-0.99.1.1-gtk-tooltip.patch,
+  files/matplotlib-0.99.1.1-libpng14.patch:
+  Added a few useful patches from upstream. Now use default config before
+  documentation generation (fix bug #307881). Cleaning some dependencies,
+  and allow png-1.4 patch to work with previous versions too
 
   30 May 2010; Pawel Hajdan jr <phajdan.jr@gentoo.org>
   matplotlib-0.99.1.1-r1.ebuild:
index 8b783961dda91e43e77df01ffecadda6608f921e..e6d3974aaa0d90c0835924e83d81da2692d91b19 100644 (file)
@@ -1,8 +1,22 @@
+-----BEGIN PGP SIGNED MESSAGE-----
+Hash: SHA1
+
 AUX matplotlib-0.98.5.2-no-xv.patch 368 RMD160 e0d3cf32f2e74f2f6b9dbcb1de603e5588d9be92 SHA1 a4671aac2912d32646d14245d2d25b3a088887b9 SHA256 c03edfaca5b01335b126b88de423923229ec9418d0f81093ff109004c155931d
 AUX matplotlib-0.99.0-freebsd7+.patch 311 RMD160 3c39e6c196b2195691dafcb718fdb2c5d1456121 SHA1 7928d232b5228a22f8cd6897f4eadf75c30aefb0 SHA256 a86e74c7048474768eb1aaa23076454d132ccaf630119dbf3546532f4b96fe85
-AUX matplotlib-0.99.1.1-libpng14.patch 404 RMD160 c259f9acb51b9981da68f14268d0c446184f1501 SHA1 eab90ab67ab4a7757f85e35f14b85c6dc363cc20 SHA256 7d1676f1b508ef27dabccd4efe52d5a47ca23c55735fd9777ae303a612cd1749
+AUX matplotlib-0.99.1.1-docs.patch 680 RMD160 624d870e97e52c260995909a74f5444eecc6a8d0 SHA1 feaf603104f41ea33a9ad6d9c65e565a0c552c55 SHA256 ed654680d099c69f0f496b301053571e1ea8a60071c9af355294571a75d919aa
+AUX matplotlib-0.99.1.1-eintr.patch 1576 RMD160 57f233cf11552581e6105245222689e19ba4f064 SHA1 1267ee76e048743f2ad219fad30e7b6a93b18a62 SHA256 4d9545d7c4221908f064688fa13d0cb994655befaafe13a8b83f7361b5d85a75
+AUX matplotlib-0.99.1.1-gtk-tooltip.patch 3234 RMD160 94e84e0ddfa45bf137b29dc9c2262c9a77c61156 SHA1 b67a2b7371db4647edd6a88f1f5ee796e6031e2d SHA256 7faa48903942e56aa8c5827c76d3512f321a5f94823abb11b3b7ae4869187747
+AUX matplotlib-0.99.1.1-libpng14.patch 437 RMD160 098d46ef5f4dc1ed4807de7d0f13a15cf732d755 SHA1 e0f1b4e6b2c1da3a2bb24f90ca6c6f6010cf63d1 SHA256 bfdae68031a48bc822bde538c29e32877411cf1889539ed3b44ec048493b3279
 AUX matplotlib-0.99.1.1-prefix.patch 1374 RMD160 f30e66336d6e51414babc63f0cc1e79319f27a3a SHA1 8201f7f5f4ce788aac91acc8cdd1d0ff43ae6a93 SHA256 0cf04d6d5124793af0e89bbf7aa20d821dccb5b7b95eb04aeeaa2723a48345ff
 DIST matplotlib-0.99.1.1.tar.gz 11905737 RMD160 2bd025944eab18d41ddf9f521c00a1f065346738 SHA1 57b5f1e3f0c8866af99f72fca06b4e529acba31d SHA256 1b94b4632ee4dcd41862f2a2e90fdca8f2e6fb108700c06a16e764782da49041
 EBUILD matplotlib-0.99.1.1-r1.ebuild 5485 RMD160 9e7db22133575c4d8ee6a3f017efab263c8cc2fb SHA1 f0b72e875dca012d6e79fdea8ac15a6642913689 SHA256 218a3bc10766a9190b9cb044863a2028f32b6099db6b4eded1997abe794d93d2
-MISC ChangeLog 16567 RMD160 fa9ee7c6c31dce4df710ca2b6d930d46c3c57086 SHA1 3881b106f15da299456c13b799f88c2c67460775 SHA256 c332bd9fb809ca109c6106c0407b721ad15f49f67f78311391ef46e7985bbca5
+EBUILD matplotlib-0.99.1.1-r2.ebuild 5987 RMD160 032ce91b765ae85ac5485d9ebb793b35a5b9f1d8 SHA1 55d7da2241a027a3824aaa2ca24c1b2463efb07d SHA256 6c4a518b63af870891286b4d810c84de911fc5c7ad6f9ebed87f0b4194ef9846
+MISC ChangeLog 17076 RMD160 36fddbd67dd73481fe811c936f04b3ed796c9887 SHA1 742fa318975189c51dccd233708fba19d90d9147 SHA256 ba2f64ba98e7f9400ed4a3b83b4f92730227cea65fdd43dc3cfee7349154f578
 MISC metadata.xml 640 RMD160 5a3412572c06b5f54b7570a6d42e503b5711b8b9 SHA1 dbdefc26499cd67470a363f54fcb928f2f510fcf SHA256 6643fb3ec5019f58c1a7af76a25d791f1109c37929b3332ddbe1a2911f5de3b4
+-----BEGIN PGP SIGNATURE-----
+Version: GnuPG v2.0.15 (GNU/Linux)
+
+iEYEARECAAYFAkwEI3EACgkQ1ycZbhPLE2AiPACgkkOcGsWg6QbcVlRNPXStUWtS
+th8An3kakWh/FQAuMYkgIVIJzAjmpNM+
+=3kzl
+-----END PGP SIGNATURE-----
diff --git a/dev-python/matplotlib/files/matplotlib-0.99.1.1-docs.patch b/dev-python/matplotlib/files/matplotlib-0.99.1.1-docs.patch
new file mode 100644 (file)
index 0000000..c734953
--- /dev/null
@@ -0,0 +1,16 @@
+Description: Pass DPI, along with format, in plot format configuration
+Forwarded: yes
+Author: Sandro Tosi <morph@debian.org>
+
+diff -urNad matplotlib~/doc/make.py matplotlib/doc/make.py
+--- matplotlib~/doc/make.py    2009-08-01 21:14:12.000000000 +0200
++++ matplotlib/doc/make.py     2009-10-09 08:56:04.000000000 +0200
+@@ -30,7 +30,7 @@
+     check_build()
+     shutil.copy('../lib/matplotlib/mpl-data/matplotlibrc', '_static/matplotlibrc')
+     if small_docs:
+-        options = "-D plot_formats=\"['png']\""
++        options = "-D plot_formats=\"[('png', 80)]\""
+     else:
+         options = ''
+     if os.system('sphinx-build %s -P -b html -d build/doctrees . build/html' % options):
diff --git a/dev-python/matplotlib/files/matplotlib-0.99.1.1-eintr.patch b/dev-python/matplotlib/files/matplotlib-0.99.1.1-eintr.patch
new file mode 100644 (file)
index 0000000..3af61d3
--- /dev/null
@@ -0,0 +1,46 @@
+--- lib/matplotlib/font_manager.py     2009/11/12 17:27:34     7952
++++ lib/matplotlib/font_manager.py     2009/11/12 17:28:22     7953
+@@ -42,7 +42,7 @@
+             see license/LICENSE_TTFQUERY.
+ """
+ 
+-import os, sys, glob
++import os, sys, glob, subprocess
+ try:
+     set
+ except NameError:
+@@ -292,16 +292,12 @@
+     grab all of the fonts the user wants to be made available to
+     applications, without needing knowing where all of them reside.
+     """
+-    try:
+-        import commands
+-    except ImportError:
+-        return {}
+-
+     fontext = get_fontext_synonyms(fontext)
+ 
+     fontfiles = {}
+-    status, output = commands.getstatusoutput("fc-list file")
+-    if status == 0:
++    pipe = subprocess.Popen(['fc-list', '', 'file'], stdout=subprocess.PIPE)
++    output = pipe.communicate()[0]
++    if pipe.returncode == 0:
+         for line in output.split('\n'):
+             fname = line.split(':')[0]
+             if (os.path.splitext(fname)[1][1:] in fontext and
+@@ -1244,11 +1240,11 @@
+     import re
+ 
+     def fc_match(pattern, fontext):
+-        import commands
+         fontexts = get_fontext_synonyms(fontext)
+         ext = "." + fontext
+-        status, output = commands.getstatusoutput('fc-match -sv "%s"' % pattern)
+-        if status == 0:
++        pipe = subprocess.Popen(['fc-match', '-sv', pattern], stdout=subprocess.PIPE)
++        output = pipe.communicate()[0]
++        if pipe.returncode == 0:
+             for match in _fc_match_regex.finditer(output):
+                 file = match.group(1)
+                 if os.path.splitext(file)[1][1:] in fontexts:
diff --git a/dev-python/matplotlib/files/matplotlib-0.99.1.1-gtk-tooltip.patch b/dev-python/matplotlib/files/matplotlib-0.99.1.1-gtk-tooltip.patch
new file mode 100644 (file)
index 0000000..e4c6091
--- /dev/null
@@ -0,0 +1,81 @@
+--- lib/matplotlib/backends/backend_gtk.py     2010/02/18 14:54:30     8141
++++ lib/matplotlib/backends/backend_gtk.py     2010/03/20 22:49:25     8203
+@@ -17,6 +17,8 @@
+                       % (gtk.pygtk_version + pygtk_version_required))
+ del pygtk_version_required
+ 
++_new_tooltip_api =  (gtk.pygtk_version[1] >= 12)
++
+ import matplotlib
+ from matplotlib import verbose
+ from matplotlib._pylab_helpers import Gcf
+@@ -448,7 +450,7 @@
+                 # diong a blanket catch here, but an not sure what a
+                 # better way is - JDH
+                 verbose.report('Could not load matplotlib icon: %s' % sys.exc_info()[1])
+-                
++
+         self.vbox = gtk.VBox()
+         self.window.add(self.vbox)
+         self.vbox.show()
+@@ -618,7 +620,8 @@
+ 
+     def _init_toolbar2_4(self):
+         basedir = os.path.join(matplotlib.rcParams['datapath'],'images')
+-        self.tooltips = gtk.Tooltips()
++        if not _new_tooltip_api:
++            self.tooltips = gtk.Tooltips()
+ 
+         for text, tooltip_text, image_file, callback in self.toolitems:
+             if text is None:
+@@ -630,7 +633,10 @@
+             tbutton = gtk.ToolButton(image, text)
+             self.insert(tbutton, -1)
+             tbutton.connect('clicked', getattr(self, callback))
+-            tbutton.set_tooltip(self.tooltips, tooltip_text, 'Private')
++            if _new_tooltip_api:
++                tbutton.set_tooltip_text(tooltip_text)
++            else:
++                tbutton.set_tooltip(self.tooltips, tooltip_text, 'Private')
+ 
+         toolitem = gtk.SeparatorToolItem()
+         self.insert(toolitem, -1)
+@@ -760,7 +766,8 @@
+     def _create_toolitems_2_4(self):
+         # use the GTK+ 2.4 GtkToolbar API
+         iconSize = gtk.ICON_SIZE_SMALL_TOOLBAR
+-        self.tooltips = gtk.Tooltips()
++        if not _new_tooltip_api:
++            self.tooltips = gtk.Tooltips()
+ 
+         for text, tooltip_text, image_num, callback, callback_arg, scroll \
+                 in self.toolitems:
+@@ -778,15 +785,22 @@
+                 tbutton.connect('clicked', getattr(self, callback))
+             if scroll:
+                 tbutton.connect('scroll_event', getattr(self, callback))
+-            tbutton.set_tooltip(self.tooltips, tooltip_text, 'Private')
++            if _new_tooltip_api:
++                tbutton.set_tooltip_text(tooltip_text)
++            else:
++                tbutton.set_tooltip(self.tooltips, tooltip_text, 'Private')
+ 
+         # Axes toolitem, is empty at start, update() adds a menu if >=2 axes
+         self.axes_toolitem = gtk.ToolItem()
+         self.insert(self.axes_toolitem, 0)
+-        self.axes_toolitem.set_tooltip (
+-            self.tooltips,
+-            tip_text='Select axes that controls affect',
+-            tip_private = 'Private')
++        if _new_tooltip_api:
++            self.axes_toolitem.set_tooltip_text(
++                                'Select axes that controls affect')
++        else:
++            self.axes_toolitem.set_tooltip (
++                self.tooltips,
++                tip_text='Select axes that controls affect',
++                tip_private = 'Private')
+ 
+         align = gtk.Alignment (xalign=0.5, yalign=0.5, xscale=0.0, yscale=0.0)
+         self.axes_toolitem.add(align)
+
index bcdcb14e06739e8bfc18e0667b36b0b0bede9749..853248ecc3ba4c35723a0259917d7585b355e3e4 100644 (file)
@@ -2,12 +2,14 @@ http://www.mail-archive.com/pld-cvs-commit@lists.pld-linux.org/msg209718.html
 
 --- src/_png.cpp
 +++ src/_png.cpp
-@@ -290,7 +290,7 @@
+@@ -290,7 +290,9 @@
  
    //free the png memory
    png_read_end(png_ptr, info_ptr);
 -  png_destroy_read_struct(&png_ptr, &info_ptr, png_infopp_NULL);
++#ifndef png_infopp_NULL
 +  png_destroy_read_struct(&png_ptr, &info_ptr, NULL);
++#endif
    fclose(fp);
    for (row = 0; row < height; row++)
      delete [] row_pointers[row];
diff --git a/dev-python/matplotlib/matplotlib-0.99.1.1-r2.ebuild b/dev-python/matplotlib/matplotlib-0.99.1.1-r2.ebuild
new file mode 100644 (file)
index 0000000..0b3d533
--- /dev/null
@@ -0,0 +1,204 @@
+# Copyright 1999-2010 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/dev-python/matplotlib/matplotlib-0.99.1.1-r2.ebuild,v 1.1 2010/05/31 20:23:16 bicatali Exp $
+
+EAPI="2"
+PYTHON_DEPEND="2"
+SUPPORT_PYTHON_ABIS="1"
+WX_GTK_VER="2.8"
+
+inherit eutils distutils wxwidgets
+
+PDOC="users_guide_${PV}"
+
+DESCRIPTION="Pure python plotting library with matlab like syntax"
+HOMEPAGE="http://matplotlib.sourceforge.net/ http://pypi.python.org/pypi/matplotlib"
+SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz"
+
+IUSE="cairo doc excel examples fltk gtk latex qt4 traits tk wxwidgets"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~x86 ~x86-freebsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
+LICENSE="PYTHON BSD"
+
+CDEPEND="dev-python/numpy
+       dev-python/python-dateutil
+       dev-python/pytz
+       media-libs/freetype:2
+       media-libs/libpng
+       gtk? ( dev-python/pygtk )
+       tk? ( dev-lang/python[tk] )
+       wxwidgets? ( dev-python/wxpython:2.8 )"
+
+DEPEND="${CDEPEND}
+       dev-python/pycxx
+       dev-util/pkgconfig
+       doc? (
+               dev-python/sphinx
+               media-gfx/graphviz[cairo]
+               || ( ( dev-texlive/texlive-latexextra
+                          dev-texlive/texlive-fontsrecommended
+                          dev-texlive/texlive-latexrecommended )
+                        ( app-text/ptex dev-tex/latex-unicode ) )
+               app-text/dvipng
+               dev-python/imaging
+               dev-python/ipython
+               excel?  ( dev-python/xlwt ) )"
+
+RDEPEND="${CDEPEND}
+       virtual/ttf-fonts
+       media-fonts/texcm-ttf
+       dev-python/pyparsing
+       cairo?  ( dev-python/pycairo )
+       excel?  ( dev-python/xlwt )
+       fltk?   ( dev-python/pyfltk )
+       qt4?    ( dev-python/PyQt4[X] )
+       traits? ( dev-python/traits dev-python/configobj )
+       latex?  (
+               virtual/latex-base
+               app-text/ghostscript-gpl
+               app-text/dvipng
+               app-text/poppler[utils]
+               || ( dev-texlive/texlive-fontsrecommended
+                        app-text/ptex ) )"
+RESTRICT_PYTHON_ABIS="3.*"
+
+DOCS="INTERACTIVE"
+
+use_setup() {
+       local uword="${2}"
+       [ -z "${2}" ] && uword="${1}"
+       if use ${1}; then
+               echo "${uword} = True"
+               echo "${uword}agg = True"
+       else
+               echo "${uword} = False"
+               echo "${uword}agg = False"
+       fi
+}
+
+src_prepare() {
+       # avoid to launch xv while building examples docs
+       epatch "${FILESDIR}"/${PN}-0.98.5.2-no-xv.patch
+
+       # removes hardcoded lib paths, should not break non-Prefix, more
+       # likely to fix it in case of multilib
+       epatch "${FILESDIR}"/${P}-prefix.patch
+       epatch "${FILESDIR}"/${PN}-0.99.0-freebsd7+.patch
+
+       # support libpng-1.4 (from upstream svn)
+       epatch "${FILESDIR}"/${P}-libpng14.patch
+       # allow better small docs (from upstream svn)
+       epatch "${FILESDIR}"/${P}-docs.patch
+       # allow compatibility with pygtk-2.12 tooltop (from upstream svn)
+       epatch "${FILESDIR}"/${P}-gtk-tooltip.patch
+       # some font stuff (from upstream svn)
+       epatch "${FILESDIR}"/${P}-eintr.patch
+
+       # create setup.cfg (see setup.cfg.template for any changes)
+       cat > setup.cfg <<-EOF
+               [provide_packages]
+               pytz = False
+               dateutil = False
+               configobj = False
+               enthought.traits = False
+               [gui_support]
+               $(use_setup gtk)
+               $(use_setup tk)
+               $(use_setup wxwidgets wx)
+               $(use_setup qt4)
+               $(use_setup fltk)
+               $(use_setup cairo)
+       EOF
+
+       # avoid checks needing a X display
+       sed -i \
+               -e "s/check_for_gtk()/$(use gtk && echo True || echo False)/" \
+               -e "s/check_for_tk()/$(use tk && echo True || echo False)/" \
+               setup.py || die "sed setup.py failed"
+
+       # respect FHS:
+       #  - mpl-data in /usr/share/matplotlib
+       #  - config files in /etc/matplotlib
+       sed -i \
+               -e "/'mpl-data\/matplotlibrc',/d" \
+               -e "/'mpl-data\/matplotlib.conf',/d" \
+               -e "s:'lib/matplotlib/mpl-data/matplotlibrc':'matplotlibrc':" \
+               -e "s:'lib/matplotlib/mpl-data/matplotlib.conf':'matplotlib.conf':" \
+               setup.py \
+               || die "sed setup.py for FHS failed"
+
+       # remove internal copies of fonts, pycxx, pyparsing
+       rm -rf \
+               CXX \
+               lib/matplotlib/mpl-data/fonts/{afm,pdfcorefonts} \
+               lib/matplotlib/mpl-data/fonts/ttf/{Vera*,cm*,*.TXT} \
+               lib/matplotlib/pyparsing.py \
+               || die "removed internal copies failed"
+
+       sed -i \
+               -e 's/matplotlib.pyparsing/pyparsing/g' \
+               lib/matplotlib/{mathtext,fontconfig_pattern}.py \
+               || die "sed pyparsing failed"
+}
+
+src_compile() {
+       unset DISPLAY # bug #278524
+
+       distutils_src_compile_pre_hook() {
+               ln -fs "${EPREFIX}/usr/share/python$(python_get_version)/CXX" .
+       }
+       distutils_src_compile
+
+       if use doc; then
+               cd "${S}/doc"
+               export VARTEXFONTS="${T}"/fonts
+               MATPLOTLIBDATA="${S}/lib/matplotlib/mpl-data" \
+                       PYTHONPATH=$(ls -d "${S}"/build-$(PYTHON -f --ABI)/lib*) \
+                       "$(PYTHON -f)" make.py --small all
+               MATPLOTLIBDATA="${S}/lib/matplotlib/mpl-data" \
+                       PYTHONPATH=$(ls -d "${S}"/build-$(PYTHON -f --ABI)/lib*) \
+                       "$(PYTHON -f)" make.py --small all
+               [[ -e build/latex/Matplotlib.pdf ]] && die "doc generation failed"
+       fi
+}
+
+src_test() {
+       # if doc were enabled, all examples were built and tested
+       use doc && return
+       einfo "Tests are quite long, be patient"
+       cd "${S}/examples/tests"
+       testing() {
+               PYTHONPATH=$(ls -d "${S}"/build-${PYTHON_ABI}/lib*) "$(PYTHON)" backend_driver.py agg || return 1
+               PYTHONPATH=$(ls -d "${S}"/build-${PYTHON_ABI}/lib*) "$(PYTHON)" backend_driver.py --clean
+       }
+       python_execute_function testing
+}
+
+src_install() {
+       # sed only after doc building, to allow using default configs
+       sed -i \
+               -e "s:path =  get_data_path():path = '${EPREFIX}/etc/matplotlib':" \
+               -e "s:os.path.dirname(__file__):'${EPREFIX}/usr/share/${PN}':g"  \
+               build-*/lib*/matplotlib/__init__.py \
+               || die "sed init for FHS failed"
+       [[ -z ${ED} ]] && local ED="${D}"
+       distutils_src_install
+
+       # Respect FHS
+       dodir /usr/share/${PN}
+       mv "${ED}$(python_get_sitedir -f)/${PN}/"{mpl-data,backends/Matplotlib.nib} "${ED}usr/share/${PN}" || die "Renaming failed"
+       rm -fr "${ED}"usr/lib*/python*/site-packages/${PN}/{mpl-data,backends/Matplotlib.nib}
+
+       insinto /etc/matplotlib
+       doins matplotlibrc matplotlib.conf || die "installing config files failed"
+
+       # doc and examples
+       insinto /usr/share/doc/${PF}
+       if use doc; then
+               doins doc/build/latex/Matplotlib.pdf || die
+               doins -r doc/build/html || die
+       fi
+       if use examples; then
+               doins -r examples || die
+       fi
+}