diff options
author | Sebastien Fabbro <bicatali@gentoo.org> | 2011-02-24 04:49:20 +0000 |
---|---|---|
committer | Sebastien Fabbro <bicatali@gentoo.org> | 2011-02-24 04:49:20 +0000 |
commit | 4c23a3fb9e49bf7c1ae8dd9d082e19fafa6246e7 (patch) | |
tree | ffe01193afeff19cffce6903351f7d1875c32a37 /dev-python/matplotlib | |
parent | Keyworded ppc (diff) | |
download | gentoo-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/ChangeLog | 11 | ||||
-rw-r--r-- | dev-python/matplotlib/files/matplotlib-1.0.1-libpng15.patch | 71 | ||||
-rw-r--r-- | dev-python/matplotlib/files/matplotlib-1.0.1-sphinx.patch | 72 | ||||
-rw-r--r-- | dev-python/matplotlib/matplotlib-1.0.1-r1.ebuild | 217 |
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 +} |