summaryrefslogtreecommitdiff
path: root/dev-python/scipy
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2020-09-23 10:22:15 +0100
committerV3n3RiX <venerix@redcorelinux.org>2020-09-23 10:22:15 +0100
commit8b4ace9c50842c5b83401ea7b179dcab940387e1 (patch)
tree230f3135ceaace633cf93e9838b185c4a6664c2e /dev-python/scipy
parent9ee6d97c2883d42f204a533a8bc1f4562df778fb (diff)
gentoo resync : 23.09.2020
Diffstat (limited to 'dev-python/scipy')
-rw-r--r--dev-python/scipy/Manifest13
-rw-r--r--dev-python/scipy/metadata.xml27
-rw-r--r--dev-python/scipy/scipy-1.1.0.ebuild148
-rw-r--r--dev-python/scipy/scipy-1.4.1.ebuild154
-rw-r--r--dev-python/scipy/scipy-1.5.2.ebuild160
5 files changed, 502 insertions, 0 deletions
diff --git a/dev-python/scipy/Manifest b/dev-python/scipy/Manifest
new file mode 100644
index 000000000000..94a93b19466d
--- /dev/null
+++ b/dev-python/scipy/Manifest
@@ -0,0 +1,13 @@
+DIST scipy-1.1.0-html.zip 49851258 BLAKE2B 528df7ed8aa8e56662f436f31ee9e1d6d72d6fe962f9f0f6f84b7a2704b53009ce333b2102ec73bb7795110f8a61b18246aab95b1e21055f2b68c0ff2225b7bb SHA512 a03894a22a67c1359ee6206e9e1c9de1f926a7f829f5039f161e78df735708da09b0e51cdad3bf36bfede701d0bc5dc44f8cc0f249b6bfb80c9d8c9fe23aed46
+DIST scipy-1.1.0-ref.pdf 34360806 BLAKE2B f82807879d5d36d91d74e8983a0f4104bcb4b69cb7787fe5190f73fbbfcb8635a9399686b3c75736d3b0b5dd877b5280ff6fba728520e3b47c13ffc7835f8cd6 SHA512 c792064c986dffafa3c5d0741f30715028e655761d099f0fdd472270cf34642b367dfa2178ddceba13043a471e3aeb1db20d65308dbb40c704dab576aaadeb3e
+DIST scipy-1.1.0.tar.gz 15583560 BLAKE2B 477753e622ee26a3bc8c2cb6829410152df84b29ce17a6d53a66348f5536f7993fedf5d32b782405b54b3af3feabf9bc91c381ed39546076849c2fdb71039404 SHA512 72fe32c6c009613cb78202598e5db14f8e630b3218839cfe18d43d40550d94cc5aa100c6f5d41f40e86ae148e9b6a13431bb91b0f9be44b0569ccd7b725fe973
+DIST scipy-1.4.1-html.zip 61414053 BLAKE2B e1f0c1a7a8941958512dcc3c0f40ef4a590bab0b44b33f842bc6e1c5d103c17f223d8b0a2f4e564f57645d601d4d74005c1ec605be2dd3bf4db19d2ac1f614d1 SHA512 9eeae83cd723d63aa1dc7a610ce3118cb68a2336be24cbfeaa8e57b34de413b2efa2fdad0978eb5bdac0ebca6b15f564b9509637efbd87d1007c969ae954e3ae
+DIST scipy-1.4.1-ref.pdf 41100747 BLAKE2B 8e56af69d0bffbe6eff73bfc5bb674aed3b80bdd80d59b58a1835f996c992306a059c2992d74c411e762490c526262753d33273613ed389928845c65eb6546b2 SHA512 76946f3b506fe22a595b70e5a418982257dd59db1a2e9af508cc1cab59d47ba4fc5951388e676f2a513043a6b3391ef853242e78d7feb99a6c21d19f6dca2b58
+DIST scipy-1.4.1.tar.gz 24555206 BLAKE2B e35f6234404839cbd24d463c8cc2f1ea66aed91534e700fd54a623df40d069b14fc220f96af04c78d13b773bfc5461559e59b0bd9b836d7953f9249ccd7cae54 SHA512 79407a2cbb4ba29c0941570181df4d7835e5791e50a3abef9b63c2fc5b15308a2e4964eb71cdebbee8cd2dcb8e497cf92fe50ee21fb12cac3013ea5e0466b25d
+DIST scipy-1.5.2-html.zip 23166876 BLAKE2B a90d6a2eb25c56147c0c1cccb58cddd230c20cd70dcc5c39b7307acaeac5320ff1c6ed46e3027ec40f604db503a90620cf87212e45f3158c667ec20d95bac649 SHA512 35c675821675844b163eacdaf448173edb78adb5e9f3e438a70809b8b59425a987fd3ed7d6f7863612111ece4a6a36504279ef4492166f5e24a9b2c7ea9d21e7
+DIST scipy-1.5.2-ref.pdf 33462200 BLAKE2B 5784612eb41221a02520778d72341702a7dd4ee8c0147592e170054107219b03af4ccebe1f5e2a57f90f3b892455f95ec45d8eac8e4a7155e21e9ae0526b302f SHA512 15961b7280eb903d2db7a05915b94b3c298cabf68a6694da217680e23fe621885dd169dc88a033ee001a89bc6e6b13ef787ec61009f6ffe38aeaa2dfb84f8a47
+DIST scipy-1.5.2.tar.gz 25423944 BLAKE2B 0a4987da0cde4f33bbb0e2be571b59e9064b1c6554c61c1655100abdecfde54d64845cd30c5b3fcac3ae7426572757aa9a66065dd3b48e6e4cdd4d0ea847868e SHA512 45463df30a0f6270d9f4cf52235f31607904a6ae1375e12600e7f1ab2d27b1dc25a6211b49dceb71506be22c756890adaf9f81d9e6be7455def86c9caf0dc923
+EBUILD scipy-1.1.0.ebuild 4112 BLAKE2B 1dec8bf858c2051c3ca18bd77759b5add6ee996331e14f1a8c1831be44f5a5b95340bdefccfba44f0753bef43e07ec445e93d2955dce05e305dc5cba505b0846 SHA512 e99d842e6d558907e0e17164edba323e94ff8fe12bbcab8f9c3f840c25a36822f9d507a2fd3ae30870aefbe8e143a2b90155c8c094bb91b62f99b89edf2fa2d2
+EBUILD scipy-1.4.1.ebuild 4150 BLAKE2B 4f7ee074825feb1c58c2d297b6817137c95b2c12b97112adfe4006996e6ca6a20325cc2b7e19c99ba09cf0dd9fc42cec9c917bc3abae0a89e4152a834326c9e6 SHA512 2f7473b792726c709f1a62b2d465168ffeba66891117c1d203f1dc2f1b2de6f9dfd945580e539ffdc2e5d8254bfcd0a05d5abdc0b1216b4e94a5b31f2adeb5bb
+EBUILD scipy-1.5.2.ebuild 4392 BLAKE2B 51188b124be5d4c4c577caf30b8f4c813a4a14be9a51f5fb6238838b6acbb692c9d7b03bfddc09e9a4ec3a7e79b2a9581f7b2ab129ed2bb29d56eca88cbeed31 SHA512 371e38b7c270831675dbd7d5d42062ab0ae985d810fe239cb27e8a0b2c75a40904c6366f25db9f65793507683356b4bfacb5db08416a7803eb27d2933d09f645
+MISC metadata.xml 1038 BLAKE2B a17718312d2d1ead8646e838b2704c14a9f21be8c59fbc0cd8544ab45bdb28005443be05f3a9f5671581f0f28e3cf7507131e2baad5e7b128a452d1ca3fae19e SHA512 2ee6a44a4f32d34f52eb1a0bb787907c31d22c15af597c8db8820df72cafcbba72201c5157b60dede7df4ff0ba48847e8f764c5a67a0b7efacabe1b9fa9bd74a
diff --git a/dev-python/scipy/metadata.xml b/dev-python/scipy/metadata.xml
new file mode 100644
index 000000000000..f1d093c366af
--- /dev/null
+++ b/dev-python/scipy/metadata.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>sci@gentoo.org</email>
+ <name>Gentoo Science Project</name>
+ </maintainer>
+ <maintainer type="project">
+ <email>python@gentoo.org</email>
+ <name>Python</name>
+ </maintainer>
+ <longdescription lang="en">
+ SciPy is an open source library of scientific tools for Python. SciPy
+ supplements the popular numpy module, gathering a variety of high level
+ science and engineering modules together as a single package.
+ SciPy includes modules for graphics and plotting, optimization,
+ integration, special functions, signal and image processing, genetic
+ algorithms, ODE solvers, and others.
+</longdescription>
+ <use>
+ <flag name="sparse">Adds support for sparse solving with <pkg>sci-libs/umfpack</pkg></flag>
+ </use>
+ <upstream>
+ <remote-id type="pypi">scipy</remote-id>
+ <remote-id type="sourceforge">scipy</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/scipy/scipy-1.1.0.ebuild b/dev-python/scipy/scipy-1.1.0.ebuild
new file mode 100644
index 000000000000..119210dc4f00
--- /dev/null
+++ b/dev-python/scipy/scipy-1.1.0.ebuild
@@ -0,0 +1,148 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+PYTHON_COMPAT=( python3_{6,7} )
+PYTHON_REQ_USE="threads(+)"
+
+DOC_PV=${PV}
+
+inherit fortran-2 distutils-r1 flag-o-matic multiprocessing toolchain-funcs
+
+DESCRIPTION="Scientific algorithms library for Python"
+HOMEPAGE="https://www.scipy.org/"
+SRC_URI="
+ mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz
+ doc? (
+ https://docs.scipy.org/doc/${PN}-${DOC_PV}/${PN}-html-${PV}.zip -> ${PN}-${DOC_PV}-html.zip
+ https://docs.scipy.org/doc/${PN}-${DOC_PV}/${PN}-ref-${PV}.pdf -> ${PN}-${DOC_PV}-ref.pdf
+ )"
+
+LICENSE="BSD LGPL-2"
+SLOT="0"
+IUSE="doc sparse test"
+RESTRICT="!test? ( test )"
+KEYWORDS="amd64 ~arm ~arm64 ppc ppc64 x86 ~amd64-linux ~x86-linux ~ppc-macos ~x86-macos"
+
+CDEPEND="
+ >=dev-python/numpy-1.10[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}]
+ >=dev-python/setuptools-36[${PYTHON_USEDEP}]
+ virtual/pkgconfig
+ doc? ( app-arch/unzip )
+ test? (
+ dev-python/nose[${PYTHON_USEDEP}]
+ dev-python/pytest[${PYTHON_USEDEP}]
+ )"
+RDEPEND="${CDEPEND}
+ dev-python/pillow[${PYTHON_USEDEP}]"
+
+DOCS=( HACKING.rst.txt THANKS.txt )
+
+DISTUTILS_IN_SOURCE_BUILD=1
+
+src_unpack() {
+ default
+ if use doc; then
+ unzip -qo "${DISTDIR}"/${PN}-${DOC_PV}-html.zip -d html || die
+ fi
+}
+
+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 || die
+ [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
+
+ # Drop hashes to force rebuild of cython based .c code
+ rm cythonize.dat || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_configure_all() {
+ # bug 721860
+ test-flag-FC -fallow-argument-mismatch &&
+ append-fflags -fallow-argument-mismatch
+}
+
+python_compile() {
+ # FIXME: parallel python building fails, bug #614464
+ ${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(r)" \
+ || die "Tests fail with ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && \
+ local DOCS=( "${DISTDIR}"/${PN}-${DOC_PV}-ref.pdf ) \
+ local HTML_DOCS=( "${WORKDIR}"/html/. )
+ 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"
+}
diff --git a/dev-python/scipy/scipy-1.4.1.ebuild b/dev-python/scipy/scipy-1.4.1.ebuild
new file mode 100644
index 000000000000..90fb741b4d73
--- /dev/null
+++ b/dev-python/scipy/scipy-1.4.1.ebuild
@@ -0,0 +1,154 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+PYTHON_COMPAT=( python3_{6..9} )
+PYTHON_REQ_USE="threads(+)"
+
+DOC_PV=${PV}
+
+inherit fortran-2 distutils-r1 flag-o-matic multiprocessing toolchain-funcs
+
+DESCRIPTION="Scientific algorithms library for Python"
+HOMEPAGE="https://www.scipy.org/"
+SRC_URI="
+ mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz
+ doc? (
+ https://docs.scipy.org/doc/${PN}-${DOC_PV}/${PN}-html-${PV}.zip -> ${PN}-${DOC_PV}-html.zip
+ https://docs.scipy.org/doc/${PN}-${DOC_PV}/${PN}-ref-${PV}.pdf -> ${PN}-${DOC_PV}-ref.pdf
+ )"
+
+LICENSE="BSD LGPL-2"
+SLOT="0"
+KEYWORDS="amd64 ~arm ~arm64 ~ppc ~ppc64 x86 ~amd64-linux ~x86-linux ~ppc-macos ~x86-macos"
+IUSE="doc sparse test"
+RESTRICT="!test? ( test )"
+
+CDEPEND="
+ >=dev-python/numpy-1.10[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.29.13[${PYTHON_USEDEP}]
+ >=dev-python/setuptools-36[${PYTHON_USEDEP}]
+ dev-python/pybind11[${PYTHON_USEDEP}]
+ virtual/pkgconfig
+ doc? ( app-arch/unzip )
+ test? (
+ dev-python/nose[${PYTHON_USEDEP}]
+ dev-python/pytest[${PYTHON_USEDEP}]
+ )"
+RDEPEND="${CDEPEND}
+ dev-python/pillow[${PYTHON_USEDEP}]"
+
+DOCS=( HACKING.rst.txt THANKS.txt )
+
+DISTUTILS_IN_SOURCE_BUILD=1
+
+src_unpack() {
+ default
+ if use doc; then
+ unzip -qo "${DISTDIR}"/${PN}-${DOC_PV}-html.zip -d html || die
+ fi
+}
+
+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 || die
+ [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
+ cat >> setup.cfg <<-EOF || die
+ [options]
+ zip_safe = False
+ EOF
+
+ # Drop hashes to force rebuild of cython based .c code
+ rm cythonize.dat || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_configure_all() {
+ # bug 721860
+ test-flag-FC -fallow-argument-mismatch &&
+ append-fflags -fallow-argument-mismatch
+}
+
+python_compile() {
+ # FIXME: parallel python building fails, bug #614464
+ export MAKEOPTS=-j1
+
+ ${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}/lib" || die "no ${TEST_DIR} available"
+ PYTHONPATH=. "${EPYTHON}" -c "
+import scipy, sys
+r = scipy.test('fast', verbose=2)
+sys.exit(0 if r else 1)" || die "Tests fail with ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && \
+ local DOCS=( "${DISTDIR}"/${PN}-${DOC_PV}-ref.pdf ) \
+ local HTML_DOCS=( "${WORKDIR}"/html/. )
+ distutils-r1_python_install_all
+}
+
+python_install() {
+ distutils-r1_python_install ${SCIPY_FCONFIG}
+ python_optimize
+}
+
+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"
+}
diff --git a/dev-python/scipy/scipy-1.5.2.ebuild b/dev-python/scipy/scipy-1.5.2.ebuild
new file mode 100644
index 000000000000..52f1cb13642f
--- /dev/null
+++ b/dev-python/scipy/scipy-1.5.2.ebuild
@@ -0,0 +1,160 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+PYTHON_COMPAT=( python3_{6..9} )
+PYTHON_REQ_USE="threads(+)"
+
+DOC_PV=${PV}
+
+inherit fortran-2 distutils-r1 flag-o-matic multiprocessing toolchain-funcs
+
+DESCRIPTION="Scientific algorithms library for Python"
+HOMEPAGE="https://www.scipy.org/"
+SRC_URI="
+ mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz
+ doc? (
+ https://docs.scipy.org/doc/${PN}-${DOC_PV}/${PN}-html-${PV}.zip -> ${PN}-${DOC_PV}-html.zip
+ https://docs.scipy.org/doc/${PN}-${DOC_PV}/${PN}-ref-${PV}.pdf -> ${PN}-${DOC_PV}-ref.pdf
+ )"
+
+LICENSE="BSD LGPL-2"
+SLOT="0"
+KEYWORDS="amd64 ~arm ~arm64 ~ppc ~ppc64 ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x86-macos"
+IUSE="doc sparse test"
+RESTRICT="!test? ( test )"
+
+CDEPEND="
+ >=dev-python/numpy-1.10[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.29.13[${PYTHON_USEDEP}]
+ >=dev-python/setuptools-36[${PYTHON_USEDEP}]
+ dev-python/pybind11[${PYTHON_USEDEP}]
+ virtual/pkgconfig
+ doc? ( app-arch/unzip )
+ test? (
+ dev-python/nose[${PYTHON_USEDEP}]
+ dev-python/pytest[${PYTHON_USEDEP}]
+ )"
+RDEPEND="${CDEPEND}
+ dev-python/pillow[${PYTHON_USEDEP}]"
+
+DOCS=( HACKING.rst.txt THANKS.txt )
+
+DISTUTILS_IN_SOURCE_BUILD=1
+
+src_unpack() {
+ default
+ if use doc; then
+ unzip -qo "${DISTDIR}"/${PN}-${DOC_PV}-html.zip -d html || die
+ fi
+}
+
+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 || die
+ [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
+ cat >> setup.cfg <<-EOF || die
+ [options]
+ zip_safe = False
+ EOF
+
+ # Drop hashes to force rebuild of cython based .c code
+ rm cythonize.dat || die
+
+ # TODO
+ sed -e 's:test_magic_square_sparse_no_presolve:_&:' \
+ -i scipy/optimize/tests/test_linprog.py || die
+ sed -e "s:== 'levy_stable':in ('levy_stable', 'crystalball', 'ncf'):" \
+ -i scipy/stats/tests/test_continuous_basic.py || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_configure_all() {
+ # bug 721860
+ test-flag-FC -fallow-argument-mismatch &&
+ append-fflags -fallow-argument-mismatch
+}
+
+python_compile() {
+ # FIXME: parallel python building fails, bug #614464
+ export MAKEOPTS=-j1
+
+ ${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}/lib" || die "no ${TEST_DIR} available"
+ PYTHONPATH=. "${EPYTHON}" -c "
+import scipy, sys
+r = scipy.test('fast', verbose=2)
+sys.exit(0 if r else 1)" || die "Tests fail with ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && \
+ local DOCS=( "${DISTDIR}"/${PN}-${DOC_PV}-ref.pdf ) \
+ local HTML_DOCS=( "${WORKDIR}"/html/. )
+ distutils-r1_python_install_all
+}
+
+python_install() {
+ distutils-r1_python_install ${SCIPY_FCONFIG}
+ python_optimize
+}
+
+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"
+}