summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastien Fabbro <bicatali@gentoo.org>2011-02-24 04:49:20 +0000
committerSebastien Fabbro <bicatali@gentoo.org>2011-02-24 04:49:20 +0000
commit4c23a3fb9e49bf7c1ae8dd9d082e19fafa6246e7 (patch)
treeffe01193afeff19cffce6903351f7d1875c32a37 /dev-python/matplotlib
parentKeyworded ppc (diff)
downloadgentoo-2-4c23a3fb9e49bf7c1ae8dd9d082e19fafa6246e7.tar.gz
gentoo-2-4c23a3fb9e49bf7c1ae8dd9d082e19fafa6246e7.tar.bz2
gentoo-2-4c23a3fb9e49bf7c1ae8dd9d082e19fafa6246e7.zip
Fixed for libpng-1.5, thanks Rafał Mużyło, bug #354551. Fixed missing fonts, bug #334429, thanks François Bissey. Tentative work to get the documentation building working. Added missing sample data.
(Portage version: 2.1.9.40/cvs/Linux x86_64)
Diffstat (limited to 'dev-python/matplotlib')
-rw-r--r--dev-python/matplotlib/ChangeLog11
-rw-r--r--dev-python/matplotlib/files/matplotlib-1.0.1-libpng15.patch71
-rw-r--r--dev-python/matplotlib/files/matplotlib-1.0.1-sphinx.patch72
-rw-r--r--dev-python/matplotlib/matplotlib-1.0.1-r1.ebuild217
4 files changed, 370 insertions, 1 deletions
diff --git a/dev-python/matplotlib/ChangeLog b/dev-python/matplotlib/ChangeLog
index da2ffe0e5f41..05e2ed18f087 100644
--- a/dev-python/matplotlib/ChangeLog
+++ b/dev-python/matplotlib/ChangeLog
@@ -1,6 +1,15 @@
# ChangeLog for dev-python/matplotlib
# Copyright 1999-2011 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/dev-python/matplotlib/ChangeLog,v 1.100 2011/02/11 19:37:00 hwoarang Exp $
+# $Header: /var/cvsroot/gentoo-x86/dev-python/matplotlib/ChangeLog,v 1.101 2011/02/24 04:49:20 bicatali Exp $
+
+*matplotlib-1.0.1-r1 (24 Feb 2011)
+
+ 24 Feb 2011; Sébastien Fabbro <bicatali@gentoo.org>
+ +matplotlib-1.0.1-r1.ebuild, +files/matplotlib-1.0.1-libpng15.patch,
+ +files/matplotlib-1.0.1-sphinx.patch:
+ Fixed for libpng-1.5, thanks Rafał Mużyło, bug #354551. Fixed missing
+ fonts, bug #334429, thanks François Bissey. Tentative work to get the
+ documentation building working. Added missing sample data.
11 Feb 2011; Markos Chandras <hwoarang@gentoo.org> matplotlib-1.0.1.ebuild:
Stable on amd64 wrt bug #353856
diff --git a/dev-python/matplotlib/files/matplotlib-1.0.1-libpng15.patch b/dev-python/matplotlib/files/matplotlib-1.0.1-libpng15.patch
new file mode 100644
index 000000000000..2cd7d4f5037e
--- /dev/null
+++ b/dev-python/matplotlib/files/matplotlib-1.0.1-libpng15.patch
@@ -0,0 +1,71 @@
+--- src/_png.cpp.old 2010-10-12 18:14:42.000000000 +0200
++++ src/_png.cpp 2011-02-12 01:33:14.000000000 +0100
+@@ -350,10 +350,10 @@
+ png_set_sig_bytes(png_ptr, 8);
+ png_read_info(png_ptr, info_ptr);
+
+- png_uint_32 width = info_ptr->width;
+- png_uint_32 height = info_ptr->height;
++ png_uint_32 width, height;
++ int bit_depth, color_type;
+
+- int bit_depth = info_ptr->bit_depth;
++ png_get_IHDR(png_ptr, info_ptr, &width, &height, &bit_depth, &color_type, NULL, NULL, NULL);
+
+ // Unpack 1, 2, and 4-bit images
+ if (bit_depth < 8)
+@@ -361,7 +361,7 @@
+
+ // If sig bits are set, shift data
+ png_color_8p sig_bit;
+- if ((info_ptr->color_type != PNG_COLOR_TYPE_PALETTE) &&
++ if ((color_type != PNG_COLOR_TYPE_PALETTE) &&
+ png_get_sBIT(png_ptr, info_ptr, &sig_bit))
+ {
+ png_set_shift(png_ptr, sig_bit);
+@@ -374,19 +374,20 @@
+ }
+
+ // Convert palletes to full RGB
+- if (info_ptr->color_type == PNG_COLOR_TYPE_PALETTE)
++ if (color_type == PNG_COLOR_TYPE_PALETTE)
+ {
+ png_set_palette_to_rgb(png_ptr);
+ }
+
+ // If there's an alpha channel convert gray to RGB
+- if (info_ptr->color_type == PNG_COLOR_TYPE_GRAY_ALPHA)
++ if (color_type == PNG_COLOR_TYPE_GRAY_ALPHA)
+ {
+ png_set_gray_to_rgb(png_ptr);
+ }
+
+ png_set_interlace_handling(png_ptr);
+ png_read_update_info(png_ptr, info_ptr);
++ color_type = png_get_color_type(png_ptr, info_ptr);
+
+ /* read file */
+ if (setjmp(png_jmpbuf(png_ptr)))
+@@ -408,11 +409,11 @@
+ npy_intp dimensions[3];
+ dimensions[0] = height; //numrows
+ dimensions[1] = width; //numcols
+- if (info_ptr->color_type & PNG_COLOR_MASK_ALPHA)
++ if (color_type & PNG_COLOR_MASK_ALPHA)
+ {
+ dimensions[2] = 4; //RGBA images
+ }
+- else if (info_ptr->color_type & PNG_COLOR_MASK_COLOR)
++ else if (color_type & PNG_COLOR_MASK_COLOR)
+ {
+ dimensions[2] = 3; //RGB images
+ }
+@@ -421,7 +422,7 @@
+ dimensions[2] = 1; //Greyscale images
+ }
+ //For gray, return an x by y array, not an x by y by 1
+- int num_dims = (info_ptr->color_type & PNG_COLOR_MASK_COLOR) ? 3 : 2;
++ int num_dims = (color_type & PNG_COLOR_MASK_COLOR) ? 3 : 2;
+
+ double max_value = (1 << ((bit_depth < 8) ? 8 : bit_depth)) - 1;
+ PyArrayObject *A = (PyArrayObject *) PyArray_SimpleNew(
diff --git a/dev-python/matplotlib/files/matplotlib-1.0.1-sphinx.patch b/dev-python/matplotlib/files/matplotlib-1.0.1-sphinx.patch
new file mode 100644
index 000000000000..5311b9cdf043
--- /dev/null
+++ b/dev-python/matplotlib/files/matplotlib-1.0.1-sphinx.patch
@@ -0,0 +1,72 @@
+diff -Nur matplotlib-1.0.1.orig/doc/api/api_changes.rst matplotlib-1.0.1/doc/api/api_changes.rst
+--- matplotlib-1.0.1.orig/doc/api/api_changes.rst 2011-02-23 23:41:55.000000000 +0000
++++ matplotlib-1.0.1/doc/api/api_changes.rst 2011-02-23 23:42:24.000000000 +0000
+@@ -540,7 +540,7 @@
+
+ * :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,
+diff -Nur matplotlib-1.0.1.orig/lib/matplotlib/sphinxext/plot_directive.py matplotlib-1.0.1/lib/matplotlib/sphinxext/plot_directive.py
+--- matplotlib-1.0.1.orig/lib/matplotlib/sphinxext/plot_directive.py 2011-02-23 23:41:55.000000000 +0000
++++ matplotlib-1.0.1/lib/matplotlib/sphinxext/plot_directive.py 2011-02-23 23:42:37.000000000 +0000
+@@ -346,7 +346,7 @@
+ del options['nofigs']
+
+ formats = setup.config.plot_formats
+- if type(formats) == str:
++ if isinstance(formats, basestring):
+ formats = eval(formats)
+
+ fname = os.path.basename(plot_path)
+diff -Nur matplotlib-1.0.1.orig/lib/mpl_toolkits/axes_grid1/axes_divider.py matplotlib-1.0.1/lib/mpl_toolkits/axes_grid1/axes_divider.py
+--- matplotlib-1.0.1.orig/lib/mpl_toolkits/axes_grid1/axes_divider.py 2011-02-23 23:41:55.000000000 +0000
++++ matplotlib-1.0.1/lib/mpl_toolkits/axes_grid1/axes_divider.py 2011-02-23 23:42:31.000000000 +0000
+@@ -172,12 +172,12 @@
+ def locate(self, nx, ny, nx1=None, ny1=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.
+ """
+
+
+@@ -222,12 +222,12 @@
+ (: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)
+
+@@ -242,12 +242,12 @@
+ """
+ :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
+
diff --git a/dev-python/matplotlib/matplotlib-1.0.1-r1.ebuild b/dev-python/matplotlib/matplotlib-1.0.1-r1.ebuild
new file mode 100644
index 000000000000..d9316a385298
--- /dev/null
+++ b/dev-python/matplotlib/matplotlib-1.0.1-r1.ebuild
@@ -0,0 +1,217 @@
+# Copyright 1999-2011 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/dev-python/matplotlib/matplotlib-1.0.1-r1.ebuild,v 1.1 2011/02/24 04:49:20 bicatali Exp $
+
+EAPI="3"
+PYTHON_DEPEND="2"
+PYTHON_USE_WITH="tk"
+PYTHON_USE_WITH_OPT="tk"
+SUPPORT_PYTHON_ABIS="1"
+RESTRICT_PYTHON_ABIS="3.* *-jython"
+WX_GTK_VER="2.8"
+
+inherit distutils eutils
+
+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
+ doc? ( mirror://gentoo/${PN}-sampledata.tar.bz2 )
+ examples? ( mirror://gentoo/${PN}-sampledata.tar.bz2 )"
+
+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 )
+ wxwidgets? ( dev-python/wxpython:2.8 )"
+
+DEPEND="${CDEPEND}
+ dev-python/pycxx
+ dev-util/pkgconfig
+ doc? (
+ app-text/dvipng
+ dev-python/imaging
+ dev-python/ipython
+ dev-python/xlwt
+ 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
+ )
+ )
+ )"
+
+RDEPEND="${CDEPEND}
+ virtual/ttf-fonts
+ media-fonts/stix-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
+ )
+ )"
+
+PYTHON_CFLAGS=("2.* + -fno-strict-aliasing")
+PYTHON_CXXFLAGS=("2.* + -fno-strict-aliasing")
+
+DOCS="INTERACTIVE"
+PYTHON_MODNAME="matplotlib mpl_toolkits pylab.py"
+
+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() {
+ # 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 pycxx, pyparsing
+ rm -rf CXX lib/matplotlib/pyparsing.py \
+ || die "removed internal copies failed"
+
+ # bug #334429 - also see https://developer.mozilla.org/en/Mozilla_MathML_Project/Fonts
+ # which advise against bakoma fonts
+ sed -i \
+ -e '/fontset/s/cm/stix/' \
+ lib/matplotlib/mpl-data/matplotlib.conf || die
+
+ sed -i \
+ -e 's/matplotlib.pyparsing/pyparsing/g' \
+ lib/matplotlib/{mathtext,fontconfig_pattern}.py \
+ || die "sed pyparsing failed"
+
+ # some fixes to avoid fetching data while compiling examples in tests
+ mv "${WORKDIR}"/sample_data examples/
+ echo "examples.download : False" >> doc/matplotlibrc
+ echo "examples.directory : ${S}/examples/sample_data" >> doc/matplotlibrc
+ echo "examples.download : False" >> matplotlibrc.template
+ echo "examples.directory : ${EPREFIX}/usr/share/${PF}/examples/sample_data" >> matplotlibrc.template
+
+ epatch "${FILESDIR}"/${P}-libpng15.patch
+ epatch "${FILESDIR}"/${P}-sphinx.patch
+}
+
+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
+ [[ -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() {
+ # remove fonts bundles except some computer modern ones
+ rm lib/matplotlib/mpl-data/fonts/ttf/cm{ex,mi,r,sy}10.ttf
+ rm lib/matplotlib/mpl-data/fonts/ttf/{Vera*,*.TXT}
+ rm lib/matplotlib/mpl-data/fonts/{afm,pdfcorefonts}
+
+ # 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"
+ 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
+}