aboutsummaryrefslogtreecommitdiffstats
path: root/meta-python/recipes-devtools/python/python-matplotlib.inc
diff options
context:
space:
mode:
authorTim Orling <timothy.t.orling@linux.intel.com>2017-10-12 23:36:31 -0700
committerTim Orling <timothy.t.orling@linux.intel.com>2018-01-24 08:06:19 -0800
commitcf56cc754ec4ffc14868ed938e0e161822ef4b27 (patch)
tree5989bf55be591c739e33fd91d82fef7a120fba6e /meta-python/recipes-devtools/python/python-matplotlib.inc
parent2cd2695ffe796911a65401acb77aec1d01b140f5 (diff)
downloadmeta-openembedded-contrib-timo/python-matplotlib-2.1.2-WIP.tar.gz
meta-openembedded-contrib-timo/python-matplotlib-2.1.2-WIP.tar.bz2
meta-openembedded-contrib-timo/python-matplotlib-2.1.2-WIP.zip
python-matplotlib: update to v2.1.2; add python3 supporttimo/python-matplotlib-2.1.2-WIP
* Refactor common metadata to python-matplotlib.inc * Inherit pypi and drop github "archive" SRC_URI * Define FILESEXTRAPATHS so that common patch files are only carried in one location Upstream Release Notes v2.1.2: " The second bug-fix release for the 2.1 series. This release fixes a number of critical bugs: - fix a typo in mlab.cohere which yielded incorrect results - allow nonposx / nonposy to pass through loglog - fix color comparisons when finding handles with legend - fixes a recursive draw bug and a major performance regression in Qt5Agg backend - fix a re-draw bug in WxAgg - fix image scaling with high-bit depth integers - revert the busy-cursor " Upstream Release Notes v2.1.1: " The first and only planned bug-fix release for the 2.1 series. This release include many bug and documentation fixes. Highlights are: - change default logscale behavior to clip - fixed webagg import errors - tweaks to polar ticks - fixed exception when guessing afm family names - update manifest to include all doc files - improve masked array handling in pcolormesh - fix segfault from reading invalid png - fix blocking_input - fix bug resulting in huge multi-page pdf files - make `show` in nbagg take args as other backends do - several fixes to OSX backend - restore positional arg handling on Figure.legend - fix bugs in interactive navigation - fix issues when panning with invalid limits - fix bug with fully masked arrays passed to imshow " Upstream Release Notes v2.1.0: " This is the second minor release in the Matplotlib 2.x series and the first release with major new features since 1.5. This release contains approximately 2 years worth of work by 275 contributors across over 950 pull requests. Highlights from this release include: support for string categorical values export of animations to interactive javascript widgets major overhaul of polar plots reproducible output for ps/eps, pdf, and svg backends performance improvements in drawing lines and images GUIs show a busy cursor while rendering the plot along with many other enhancements and bug fixes " Signed-off-by: Tim Orling <timothy.t.orling@linux.intel.com>
Diffstat (limited to 'meta-python/recipes-devtools/python/python-matplotlib.inc')
-rw-r--r--meta-python/recipes-devtools/python/python-matplotlib.inc150
1 files changed, 150 insertions, 0 deletions
diff --git a/meta-python/recipes-devtools/python/python-matplotlib.inc b/meta-python/recipes-devtools/python/python-matplotlib.inc
new file mode 100644
index 0000000000..3c340dab78
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python-matplotlib.inc
@@ -0,0 +1,150 @@
+DESCRIPTION = "matplotlib is a python 2D plotting library which produces publication quality figures in a variety of hardcopy formats"
+SECTION = "devel/python"
+LICENSE = "PSF"
+LIC_FILES_CHKSUM = "file://LICENSE/LICENSE;md5=afec61498aa5f0c45936687da9a53d74"
+
+SRC_URI[md5sum] = "cd26ba402c5ead6b0ecc00072f6617b4"
+SRC_URI[sha256sum] = "725a3f12739d133adfa381e1b33bd70c6f64db453bfc536e148824816e568894"
+
+DEPENDS += "freetype \
+ libagg \
+ libpng \
+ ${PYTHON_PN}-cycler \
+ ${PYTHON_PN}-dateutil \
+ ${PYTHON_PN}-numpy \
+ ${PYTHON_PN}-numpy-native \
+ ${PYTHON_PN}-pycairo \
+ ${PYTHON_PN}-pytz \
+ qhull \
+ "
+RDEPENDS_${PN} = "freetype \
+ libagg \
+ libpng \
+ ${PYTHON_PN}-core \
+ ${PYTHON_PN}-cycler \
+ ${PYTHON_PN}-dateutil \
+ ${PYTHON_PN}-distutils \
+ ${PYTHON_PN}-numpy \
+ ${PYTHON_PN}-pycairo \
+ ${PYTHON_PN}-pyparsing \
+ ${PYTHON_PN}-pytz \
+ qhull \
+ "
+
+# Use common directory for python2/python3 patches
+FILESEXTRAPATHS_prepend := "${THISDIR}/python-matplotlib:"
+#file://fix_setupext.patch
+SRC_URI += " \
+ file://run-ptest \
+ file://pytest.ini \
+ "
+
+S = "${WORKDIR}/matplotlib-${PV}"
+
+EXTRA_OECONF = "--with-python-includes=${STAGING_INCDIR}/../"
+
+inherit pypi pkgconfig
+
+export MATPLOTLIB_DIR="${libdir}/${PYTHON_DIR}/site-packages/matplotlib"
+
+# Supported backends, one of: Agg, Cairo, GTK, GTKAgg, GTKCairo,
+# GTK3Agg, GTK3Cairo, MacOSX, Pdf, Ps, Qt4Agg, Qt5Agg, SVG, TkAgg,
+# WX, WXAgg.
+#
+# NOTE: not all of these have been implemented in OE, yet
+PACKAGECONFIG ??= "Cairo"
+PACKAGECONFIG[Agg] = ",,libagg"
+PACKAGECONFIG[Cairo] = ",,${PYTHON_PN}-pycairo-native,${PYTHON_PN}-pycairo"
+PACKAGECONFIG[Qt4Agg] = ",,${PYTHON_PN}-pyqt4 libagg"
+PACKAGECONFIG[Qt5Agg] = ",,${PYTHON_PN}-pyqt5 libagg"
+# NOTE:
+# oe-core does not build _tkinter module for python*
+# so python*-tkinter module is actually non-functional,
+# since http://git.openembedded.org/openembedded-core/commit/?id=8cc5e36cd7978186d5ea1fe8af2f2bd6b3df8885
+PACKAGECONFIG[TkAgg] = ",,${PYTHON_PN}-tkinter tk tk-lib libagg"
+PACKAGECONFIG[docs] = "--enable-docs,--disable-docs, \
+ ${PYTHON_PN}-sphinx \
+ ${PYTHON_PN}-colorspacious \
+ ${PYTHON_PN}-ipython \
+ ${PYTHON_PN}-mock \
+ ${PYTHON_PN}-numpydoc \
+ ${PYTHON_PN}-pillow \
+ ${PYTHON_PN}-scipy \
+ ${PYTHON_PN}-sphinx-gallery"
+
+python do_write_setup_cfg() {
+ conf=(d.getVar('PACKAGECONFIG', True) or "").split()
+ bb.debug(1, "PACKAGECONFIG=%s" % conf)
+ if 'Agg' in conf:
+ bb.debug(1, "Configuring Agg backend")
+ if 'Cairo' in conf:
+ bb.debug(1, "Configuring Cairo backend")
+}
+
+# configure the build for cross-compiling and a known supported backend
+do_configure_prepend() {
+ agg=False
+ tkagg=False
+ ignore_qt4=" --ignore tests/test_qt4.py"
+ ignore_qt5=" --ignore tests/test_qt5.py"
+ if ${@bb.utils.contains('PACKAGECONFIG', 'Agg', 'true', 'false', d)}; then
+ backend=Agg
+ agg=True
+ elif ${@bb.utils.contains('PACKAGECONFIG', 'Cairo', 'true', 'false', d)}; then
+ backend=Cairo
+ elif ${@bb.utils.contains('PACKAGECONFIG', 'Qt4Agg', 'true', 'false', d)}; then
+ backend=Qt4Agg
+ agg=True
+ ignore_qt4=''
+ elif ${@bb.utils.contains('PACKAGECONFIG', 'Qt5Agg', 'true', 'false', d)}; then
+ backend=Qt5Agg
+ agg=True
+ ignore_qt5=''
+ elif ${@bb.utils.contains('PACKAGECONFIG', 'TkAgg', 'true', 'false', d)}; then
+ backend=TkAgg
+ agg=True
+ tkagg=True
+ fi
+ cp ${S}/setup.cfg.template ${B}/setup.cfg
+ sed -i -e \
+ "s:#basedirlist = /usr:basedirlist = ${STAGING_EXECPREFIXDIR}:g" \
+ ${B}/setup.cfg
+# matplotlib wants freetype v2.6.1
+# the following tries to download that version to build it
+# sed -i -e "s:#local_freetype = False:local_freetype = True:g" ${B}/setup.cfg
+ sed -i -e "s:#tests = False:tests = True:g" ${B}/setup.cfg
+ sed -i -e "s:#agg = auto:agg = ${agg}:g" ${B}/setup.cfg
+ sed -i -e "s:#tkagg = auto:tkagg = ${tkagg}:g" ${B}/setup.cfg
+ sed -i -e "s:#backend = Agg:backend = ${backend}:g" ${B}/setup.cfg
+ echo "" >> ${B}/setup.cfg
+ echo "verbose = True" >> ${B}/setup.cfg
+}
+
+RDEPENDS_${PN}-ptest += " \
+ libagg \
+ ${PN} \
+ ${PYTHON_PN}-mock \
+ ${PYTHON_PN}-nose \
+ ${PYTHON_PN}-pytest \
+"
+
+addtask do_write_setup_cfg after do_configure before do_populate_lic
+
+inherit ptest
+
+do_install_ptest_prepend() {
+ sed -i -e "s:\@MATPLOTLIB_DIR\@:${MATPLOTLIB_DIR}:g" ${WORKDIR}/run-ptest
+ sed -i -e "s:\@MATPLOTLIB_DIR\@:${MATPLOTLIB_DIR}:g" ${WORKDIR}/pytest.ini
+}
+
+do_install_ptest() {
+ install -m 0644 ${WORKDIR}/pytest.ini ${D}${MATPLOTLIB_DIR}/
+}
+
+FILES_${PN}-ptest += " \
+ ${MATPLOTLIB_DIR}/sphinxext/tests \
+ ${MATPLOTLIB_DIR}/tests \
+ ${MATPLOTLIB_DIR}/testing \
+"
+
+BBCLASSEXTEND = "native nativesdk"