diff --git a/community/python-pytables/PKGBUILD b/community/python-pytables/PKGBUILD new file mode 100644 index 000000000..81381c958 --- /dev/null +++ b/community/python-pytables/PKGBUILD @@ -0,0 +1,85 @@ +# $Id$ +# Maintainer: Andrzej Giniewicz +# Contributor: Sebastien Binet + +# ALARM: Kevin Mihelich +# - upstream patch to fix AArch64 build + +pkgbase=python-pytables +pkgname=('python2-pytables' 'python-pytables') +pkgver=3.3.0 +pkgrel=2 +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/* +} + diff --git a/community/python-pytables/hdf5_18.patch b/community/python-pytables/hdf5_18.patch new file mode 100644 index 000000000..64a0e7e13 --- /dev/null +++ b/community/python-pytables/hdf5_18.patch @@ -0,0 +1,14 @@ +--- setup.py.old 2016-05-24 13:16:36.129769271 +0200 ++++ setup.py 2016-05-24 13:17:07.380243229 +0200 +@@ -552,6 +552,11 @@ + libdir = compiler.has_function(package.target_function, + libraries=(package.library_name,)) + ++ # force location of hdf5_18 ++ if package==hdf5_package: ++ hdrdir = '/usr/include/hdf5_18' ++ libdir = '/usr/lib/hdf5_18' ++ + if not (hdrdir and libdir): + if package.tag in ['HDF5']: # these are compulsory! + pname, ptag = package.name, package.tag