# $Id$
# Maintainer: Andrzej Giniewicz <gginiu@gmail.com>
# Contributor: Sebastien Binet <binet@cern.ch>

# ALARM: Kevin Mihelich <kevin@archlinuxarm.org>
#  - upstream patch to fix AArch64 build

pkgbase=python-pytables
pkgname=('python2-pytables' 'python-pytables')
pkgver=3.3.0
pkgrel=3
arch=("i686" "x86_64")
pkgdesc="A package for managing hierarchical datasets and designed to efficiently and easily cope with extremely large amounts of data"
url="http://www.pytables.org"
license=("BSD")
makedepends=('lzo' 'hdf5_18' 'python2-numexpr' 'python-numexpr' 'python-setuptools' 'python2-setuptools' 'cython' 'cython2' 'blosc' 'bzip2' 'lzo')
source=("https://github.com/PyTables/PyTables/archive/v${pkgver}.tar.gz"
        "hdf5_18.patch"
        'https://github.com/PyTables/PyTables/commit/314b5a0170ecf3c6d46392b16b8f675791baa206.patch')
md5sums=('056c161ae0fd2d6e585b766adacf3b0b'
         '6cca19b6ce2eb9f84d18888ad2c1a3b4'
         '2d4edfdeb35940c5a9e279295f25535c')

prepare() {
  cd "$srcdir"/PyTables-$pkgver

  # -march=native generates AVX instructions if the host supports it, which
  # then results in "SIGILL (Illegal instruction)" on machines lacking AVX
  # https://github.com/PyTables/PyTables/issues/458
  # https://github.com/PyTables/PyTables/pull/503
  sed -i 's/"-march=native",\?//' setup.py

  # force hdf5_18 location
  patch -Np0 -i "$srcdir"/hdf5_18.patch
  
  patch -p1 -i ../314b5a0170ecf3c6d46392b16b8f675791baa206.patch

  cd "${srcdir}" 
  cp -a PyTables-$pkgver PyTables-py2-$pkgver
}

build() {
  msg "Building Python2"
  cd "$srcdir"/PyTables-py2-$pkgver
  HDF5_DIR=/usr/include/hdf5_18 LD_LIBRARY_PATH=/usr/lib/hdf5_18 python2 setup.py build --blosc=/usr

  msg "Building Python3"
  cd "$srcdir"/PyTables-$pkgver
  HDF5_DIR=/usr/include/hdf5_18 LD_LIBRARY_PATH=/usr/lib/hdf5_18 python setup.py build --blosc=/usr
}

package_python2-pytables() {
  depends=('lzo' 'hdf5_18' 'python2-numexpr' 'blosc')

  cd "$srcdir"/PyTables-py2-${pkgver}
  python2 setup.py install --skip-build --prefix=/usr --root="$pkgdir" --optimize=1

  install -Dm644 LICENSE.txt "$pkgdir/usr/share/licenses/$pkgname/LICENSE"

  # see FS#36015 and FS#44971
  mv "$pkgdir"/usr/bin/pt2to3{,-2.7}
  mv "$pkgdir"/usr/bin/ptdump{,-2.7}
  mv "$pkgdir"/usr/bin/ptrepack{,-2.7}
  mv "$pkgdir"/usr/bin/pttree{,-2.7}

  # see FS#45975
  _site_packages=`python2 -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())"`
  chmod a+rx "${pkgdir}${_site_packages}"/*.egg-info
  chmod a+r "${pkgdir}${_site_packages}"/*.egg-info/*
}

package_python-pytables() {
  depends=('lzo' 'hdf5_18' 'python-numexpr' 'blosc')

  cd "$srcdir"/PyTables-${pkgver}
  python setup.py install --skip-build --prefix=/usr --root="$pkgdir" --optimize=1

  install -Dm644 LICENSE.txt "$pkgdir/usr/share/licenses/$pkgname/LICENSE"

  # see FS#45975
  _site_packages=`python -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())"`
  chmod a+rx "${pkgdir}${_site_packages}"/*.egg-info
  chmod a+r "${pkgdir}${_site_packages}"/*.egg-info/*
}