sci-libs/scipy: Add live ebuild for testing
authorJustin Lecher <jlec@gentoo.org>
Thu, 29 Oct 2015 08:06:58 +0000 (09:06 +0100)
committerJustin Lecher <jlec@gentoo.org>
Thu, 29 Oct 2015 08:20:15 +0000 (09:20 +0100)
Package-Manager: portage-2.2.23
Signed-off-by: Justin Lecher <jlec@gentoo.org>
sci-libs/scipy/scipy-0.16.1.ebuild
sci-libs/scipy/scipy-9999.ebuild [new file with mode: 0644]

index de2289b7e7737dc57796b963a882197e8c510f58..7e74f6e663d8ff39ba273db9fe6e3e9bf3f60cb0 100644 (file)
@@ -103,6 +103,7 @@ python_prepare_all() {
                "${FILESDIR}"/${PN}-0.12.0-blitz.patch
                "${FILESDIR}"/${PN}-0.12.0-restore-sys-argv.patch
                "${FILESDIR}"/${P}-glibc-2.22-backport.patch
+               "${FILESDIR}"/${P}-test-fix-backport.patch
        )
        distutils-r1_python_prepare_all
 }
diff --git a/sci-libs/scipy/scipy-9999.ebuild b/sci-libs/scipy/scipy-9999.ebuild
new file mode 100644 (file)
index 0000000..43f0f3e
--- /dev/null
@@ -0,0 +1,127 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4,5} )
+
+DOC_PV=${PV}
+
+inherit eutils fortran-2 distutils-r1 flag-o-matic git-r3 multilib toolchain-funcs
+
+DESCRIPTION="Scientific algorithms library for Python"
+HOMEPAGE="https://www.scipy.org/"
+EGIT_REPO_URI="https://github.com/scipy/scipy.git"
+
+LICENSE="BSD LGPL-2"
+SLOT="0"
+KEYWORDS=""
+IUSE="sparse test"
+
+CDEPEND="
+       >=dev-python/numpy-1.6.2[lapack,${PYTHON_USEDEP}]
+       sci-libs/arpack:0=
+       virtual/cblas
+       virtual/lapack
+       sparse? ( sci-libs/umfpack:0= )"
+DEPEND="${CDEPEND}
+       dev-lang/swig
+       >=dev-python/cython-0.22[${PYTHON_USEDEP}]
+       virtual/pkgconfig
+       test? ( dev-python/nose[${PYTHON_USEDEP}] )
+       "
+
+RDEPEND="${CDEPEND}
+       virtual/python-imaging[${PYTHON_USEDEP}]"
+
+DOCS=( HACKING.rst.txt THANKS.txt )
+
+DISTUTILS_IN_SOURCE_BUILD=1
+
+pc_incdir() {
+       $(tc-getPKG_CONFIG) --cflags-only-I $@ | \
+               sed -e 's/^-I//' -e 's/[ ]*-I/:/g' -e 's/[ ]*$//' -e 's|^:||'
+}
+
+pc_libdir() {
+       $(tc-getPKG_CONFIG) --libs-only-L $@ | \
+               sed -e 's/^-L//' -e 's/[ ]*-L/:/g' -e 's/[ ]*$//' -e 's|^:||'
+}
+
+pc_libs() {
+       $(tc-getPKG_CONFIG) --libs-only-l $@ | \
+               sed -e 's/[ ]-l*\(pthread\|m\)\([ ]\|$\)//g' \
+               -e 's/^-l//' -e 's/[ ]*-l/,/g' -e 's/[ ]*$//' \
+               | tr ',' '\n' | sort -u | tr '\n' ',' | sed -e 's|,$||'
+}
+
+python_prepare_all() {
+       # scipy automatically detects libraries by default
+       export {FFTW,FFTW3,UMFPACK}=None
+       use sparse && unset UMFPACK
+       # the missing symbols are in -lpythonX.Y, but since the version can
+       # differ, we just introduce the same scaryness as on Linux/ELF
+       [[ ${CHOST} == *-darwin* ]] \
+               && append-ldflags -bundle "-undefined dynamic_lookup" \
+               || append-ldflags -shared
+       [[ -z ${FC}  ]] && export FC="$(tc-getFC)"
+       # hack to force F77 to be FC until bug #278772 is fixed
+       [[ -z ${F77} ]] && export F77="$(tc-getFC)"
+       export F90="${FC}"
+       export SCIPY_FCONFIG="config_fc --noopt --noarch"
+       append-fflags -fPIC
+
+       local libdir="${EPREFIX}"/usr/$(get_libdir)
+       cat >> site.cfg <<-EOF
+               [blas]
+               include_dirs = $(pc_incdir cblas)
+               library_dirs = $(pc_libdir cblas blas):${libdir}
+               blas_libs = $(pc_libs cblas blas)
+               [lapack]
+               library_dirs = $(pc_libdir lapack):${libdir}
+               lapack_libs = $(pc_libs lapack)
+       EOF
+
+       local PATCHES=(
+               "${FILESDIR}"/${PN}-0.12.0-blitz.patch
+               "${FILESDIR}"/${PN}-0.12.0-restore-sys-argv.patch
+       )
+       distutils-r1_python_prepare_all
+}
+
+python_compile() {
+       ${EPYTHON} tools/cythonize.py || die
+       distutils-r1_python_compile ${SCIPY_FCONFIG}
+}
+
+python_test() {
+       # fails with bdist_egg. should it be fixed in distutils-r1 eclass?
+       distutils_install_for_testing ${SCIPY_FCONFIG}
+       cd "${TEST_DIR}" || die "no ${TEST_DIR} available"
+       "${PYTHON}" -c \
+               'import numpy as np; print("relaxed strides checking:", np.ones((10,1),order="C").flags.f_contiguous)' \
+               || die
+       "${EPYTHON}" -c \
+               "import scipy, sys; r = scipy.test('fast',verbose=2); sys.exit(0 if r.wasSuccessful() else 1)" \
+               || die "Tests fail with ${EPYTHON}"
+}
+
+python_install_all() {
+       if use doc; then
+               dodoc "${DISTDIR}"/${PN}*pdf
+               docinto html
+               dodoc -r "${WORKDIR}"/html/.
+       fi
+       distutils-r1_python_install_all
+}
+
+python_install() {
+       distutils-r1_python_install ${SCIPY_FCONFIG}
+}
+
+pkg_postinst() {
+       elog "You might want to set the variable SCIPY_PIL_IMAGE_VIEWER"
+       elog "to your prefered image viewer. Example:"
+       elog "\t echo \"export SCIPY_PIL_IMAGE_VIEWER=display\" >> ~/.bashrc"
+}