# $Id$
# Maintainer: Felix Yan <felixonmars@archlinux.org>
# Contributor: Stéphane Gaudreault <stephane@archlinux.org>
# Contributor: Stefan Husmann <stefan-husmann@t-online.de>
# Contributor: Angel 'angvp' Velasquez <angvp[at]archlinux.com.ve>
# Contributor: Douglas Soares de Andrade <dsa@aur.archlinux.org>

# ALARM: Kevin Mihelich <kevin@archlinuxarm.org>
#  - replace make/optdepends on python{,2}-cairocffi with python{,2}-cairo (cffi has haskell dep)

pkgbase=python-matplotlib
pkgname=('python-matplotlib' 'python2-matplotlib')
pkgver=2.2.2
pkgrel=2
pkgdesc="A python plotting library, making publication quality plots"
arch=('x86_64')
url='http://matplotlib.org'
license=('custom')
checkdepends=('python-pytest-xdist' 'python2-pytest-xdist' 'python-pytest-runner'
              'python2-pytest-runner' 'python2-mock' 'xorg-server-xvfb' 'texlive-core'
              'texlive-latexextra' 'imagemagick' 'ffmpeg' 'mencoder' 'inkscape' 'python-pandas'
              'python2-pandas' 'ttf-freefont')
makedepends=('python2-pytz' 'python2-numpy' 'python2-pyqt4' 'python-pytz' 'python-numpy'
             'python-pyqt4' 'tk' 'python-cairo' 'python2-cairo' 'python-dateutil'
             'python2-dateutil' 'python-gobject' 'python2-gobject' 'python-pyparsing'
             'python2-pyparsing' 'pygtk' 'python-six' 'ghostscript' 'texlive-bin'
             'python-tornado' 'python2-tornado' 'gtk3' 'wxpython' 'python-pyqt5' 'python2-pyqt5'
             'libxkbcommon-x11' 'python-pillow' 'python2-pillow' 'python-setuptools'
             'python2-setuptools' 'python-cycler' 'python2-cycler' 'python-kiwisolver'
             'python2-kiwisolver')
source=("$pkgbase-$pkgver.tar.gz::https://github.com/matplotlib/matplotlib/archive/v$pkgver.tar.gz"
        setup.cfg)
sha512sums=('58dbeabafa7cd008cf5a585829a5b9f098114a43700dedbd7cc3ed09180ea99a870d06295fe8f1d47f1eb807d264924a4b6fb7cf47e6bc3b74045aa4f0714ac9'
            'f08c0b2e94599fdf2b736b8a655d862209934441d90f20ed872cfc128b8d2a6525763ab7cf64f2b3630e22a90798f4c52aa93b18087e9b48708d9bae34aada0b')

prepare() {
  cp -a "$srcdir"/matplotlib-$pkgver{,-py2}

  cd "$srcdir"/matplotlib-$pkgver
  for file in $(find . -name '*.py' -print); do
    sed -i -e "s|^#!.*/usr/bin/python|#!/usr/bin/python3|" \
           -e "s|^#!.*/usr/bin/env *python|#!/usr/bin/env python3|" $file
  done

  cd "$srcdir"/matplotlib-$pkgver-py2
  for file in $(find . -name '*.py' -print); do
    sed -i -e "s|^#!.*/usr/bin/python|#!/usr/bin/python2|" \
           -e "s|^#!.*/usr/bin/env *python|#!/usr/bin/env python2|" $file
  done

  cp -a "$srcdir"/matplotlib-$pkgver{,-test}
  cp -a "$srcdir"/matplotlib-$pkgver-py2{,-test}

  # Configure tests (FS#48175)
  cp "$srcdir/setup.cfg" "$srcdir"/matplotlib-$pkgver-test/
  cp "$srcdir/setup.cfg" "$srcdir"/matplotlib-$pkgver-py2-test/
}

build() {
  # this seems to need to be present or gtk/gdk dies
  # and hangs the build checking if gtk3cairo is installed
  export XDG_RUNTIME_DIR=/tmp

  cd "$srcdir"/matplotlib-$pkgver
  python3 setup.py build

  cd "$srcdir"/matplotlib-$pkgver-py2
  python2 setup.py build
}

check() {
  # Different font rendering details

  cd "$srcdir"/matplotlib-$pkgver-test
  xvfb-run -a -s "+extension GLX +extension RANDR +render -screen 0 1280x1024x24" \
    python setup.py pytest --addopts="-n auto" || warning "Tests failed"

  cd "$srcdir"/matplotlib-$pkgver-py2-test
  xvfb-run -a -s "+extension GLX +extension RANDR +render -screen 0 1280x1024x24" \
    python2 setup.py pytest --addopts="-n auto" || warning "Tests failed"
}

package_python-matplotlib() {
  depends=('python-pytz' 'python-numpy' 'python-pyqt5' 'python-dateutil' 'python-pyparsing'
           'python-cycler' 'python-kiwisolver' 'libxkbcommon-x11')
  optdepends=('python-gobject: for GTK3Agg/GTK3Cairo backend'
              'python-cairo: for GTK3Agg/GTK3Cairo backend'
              'python-pyqt4: for Qt4Agg backend'
              'tk: used by the TkAgg backend'
              'ghostscript: usetex dependencies'
              'texlive-bin: usetex dependencies'
              'python-tornado: for webagg backend'
              'python-pillow: for reading/saving .jpg/bmp/tiff files')

  cd matplotlib-$pkgver
  python3 setup.py install -O1 --skip-build --root "$pkgdir" --prefix=/usr

  install -dm755 "$pkgdir"/usr/share/licenses/python-matplotlib
  install -m 644 doc/users/license.rst "$pkgdir"/usr/share/licenses/python-matplotlib
}

package_python2-matplotlib() {
  depends=('python2-pytz' 'python2-numpy' 'python2-pyqt5' 'python2-dateutil' 'python2-pyparsing'
           'python2-cycler' 'python2-kiwisolver' 'libxkbcommon-x11' 'python2-backports.functools_lru_cache')
  optdepends=('pygtk: for GTK/GTKAgg/GTKCairo backend'
              'python2-cairo: for GTKCairo/GTK3Cairo backend'
              'python2-pyqt4: for Qt4Agg backend'
              'tk: used by the TkAgg backend'
              'ghostscript: usetex dependencies'
              'texlive-bin: usetex dependencies'
              'python2-tornado: for webagg backend'
              'python2-gobject: for GTK3Agg/GTK3Cairo backend'
              'wxpython: for WX/WXAgg backend'
              'python2-pillow: for reading/saving .jpg/bmp/tiff files')

  cd matplotlib-$pkgver-py2
  python2 setup.py install -O1 --skip-build --root "$pkgdir" --prefix=/usr

  install -dm755 "$pkgdir"/usr/share/licenses/python2-matplotlib
  install -m 644 doc/users/license.rst "$pkgdir"/usr/share/licenses/python2-matplotlib
}