summaryrefslogtreecommitdiff
path: root/dev-python/numpy-python2/numpy-python2-1.16.5.ebuild
diff options
context:
space:
mode:
authorPacho Ramos <pacho@gentoo.org>2019-12-25 16:36:54 +0100
committerPacho Ramos <pacho@gentoo.org>2019-12-25 17:57:12 +0100
commit00d6926266e8a86f6d7f49f1e78a3a674d449a7c (patch)
tree09c906735f482b63c4a86acd933dd51655cd6b3b /dev-python/numpy-python2/numpy-python2-1.16.5.ebuild
parentd1bdcff7a8f4b69a133bbb3d30c449a12da998c6 (diff)
downloadgentoo-00d6926266e8a86f6d7f49f1e78a3a674d449a7c.tar.gz
gentoo-00d6926266e8a86f6d7f49f1e78a3a674d449a7c.tar.bz2
gentoo-00d6926266e8a86f6d7f49f1e78a3a674d449a7c.zip
dev-python/numpy-python2: Package supporting py2 for smoother transition
As discussed in https://bugs.gentoo.org/703240 I will maintain a numpy-python2 package to allow easier transition of reverse deps allowing to still port them to python 3.8. The idea of this package is to drop it as soon as possible, as a consequence: - python2-only packages depending on this should have a bug opened and blocking bug #703754 to allow us to track upstream progress on python3 porting. As a consequence, if the package upstream is dead or not planning to port to python3 ever, it should be treecleaned instead of adding a dependency on this package. - python3 packages also needing python2 support. During a transition period, it's possible that we will need to temporally allow some packages (usually libraries) to support python2 until other reverse deps of that libs are handled. You should then open a bug report blocking bug #703756 to follow the progress on porting them completely to python3. As a consequence, if your package supports both, you must try to simply remove python2 support over depending on this package, while only adding a dep on numpy-python2 if it is really hard to handle all reverse deps immediately. In that case, a bug report need to be opened as explained. Closes: https://bugs.gentoo.org/703240 Package-Manager: Portage-2.3.82, Repoman-2.3.20 Signed-off-by: Pacho Ramos <pacho@gentoo.org>
Diffstat (limited to 'dev-python/numpy-python2/numpy-python2-1.16.5.ebuild')
-rw-r--r--dev-python/numpy-python2/numpy-python2-1.16.5.ebuild169
1 files changed, 169 insertions, 0 deletions
diff --git a/dev-python/numpy-python2/numpy-python2-1.16.5.ebuild b/dev-python/numpy-python2/numpy-python2-1.16.5.ebuild
new file mode 100644
index 000000000000..caad08decf1d
--- /dev/null
+++ b/dev-python/numpy-python2/numpy-python2-1.16.5.ebuild
@@ -0,0 +1,169 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="7"
+
+PYTHON_COMPAT=( python2_7 )
+PYTHON_REQ_USE="threads(+)"
+
+FORTRAN_NEEDED=lapack
+
+inherit distutils-r1 flag-o-matic fortran-2 multiprocessing toolchain-funcs
+
+MY_PN="numpy"
+DOC_PV="1.16.4"
+
+DESCRIPTION="Fast array and numerical python library"
+HOMEPAGE="https://www.numpy.org"
+SRC_URI="
+ mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_PN}-${PV}.zip
+ doc? (
+ https://numpy.org/doc/$(ver_cut 1-2 ${DOC_PV})/numpy-html.zip -> numpy-html-${DOC_PV}.zip
+ https://numpy.org/doc/$(ver_cut 1-2 ${DOC_PV})/numpy-ref.pdf -> numpy-ref-${DOC_PV}.pdf
+ https://numpy.org/doc/$(ver_cut 1-2 ${DOC_PV})/numpy-user.pdf -> numpy-user-${DOC_PV}.pdf
+ )"
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~x64-solaris ~x86-solaris"
+IUSE="doc lapack test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ !<dev-python/numpy-1.17
+ lapack? (
+ virtual/cblas
+ virtual/lapack
+ )
+"
+DEPEND="${RDEPEND}"
+
+BDEPEND="
+ app-arch/unzip
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ lapack? ( virtual/pkgconfig )
+ test? (
+ dev-python/pytest[${PYTHON_USEDEP}]
+ )
+"
+
+S="${WORKDIR}/${MY_PN}-${PV}"
+
+PATCHES=(
+ "${FILESDIR}"/${MY_PN}-1.15.4-no-hardcode-blas.patch
+)
+
+src_unpack() {
+ default
+ if use doc; then
+ unzip -qo "${DISTDIR}"/numpy-html-${DOC_PV}.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() {
+ if use lapack; then
+ append-ldflags "$($(tc-getPKG_CONFIG) --libs-only-other cblas lapack)"
+ local incdir="${EPREFIX}"/usr/include
+ local libdir="${EPREFIX}"/usr/$(get_libdir)
+ cat >> site.cfg <<-EOF || die
+ [blas]
+ include_dirs = $(pc_incdir cblas):${incdir}
+ 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
+ else
+ export {ATLAS,PTATLAS,BLAS,LAPACK,MKL}=None
+ fi
+
+ export CC="$(tc-getCC) ${CFLAGS}"
+
+ append-flags -fno-strict-aliasing
+
+ # See progress in http://projects.scipy.org/scipy/numpy/ticket/573
+ # with the subtle difference that we don't want to break Darwin where
+ # -shared is not a valid linker argument
+ if [[ ${CHOST} != *-darwin* ]]; then
+ append-ldflags -shared
+ fi
+
+ # only one fortran to link with:
+ # linking with cblas and lapack library will force
+ # autodetecting and linking to all available fortran compilers
+ append-fflags -fPIC
+ if use lapack; then
+ NUMPY_FCONFIG="config_fc --noopt --noarch"
+ # workaround bug 335908
+ [[ $(tc-getFC) == *gfortran* ]] && NUMPY_FCONFIG+=" --fcompiler=gnu95"
+ fi
+
+ # don't version f2py, we will handle it.
+ sed -i -e '/f2py_exe/s: + os\.path.*$::' numpy/f2py/setup.py || die
+
+ # disable fuzzed tests
+ find numpy/*/tests -name '*.py' -exec sed -i \
+ -e 's:def \(.*_fuzz\):def _\1:' {} + || die
+ # very memory- and disk-hungry
+ sed -i -e 's:test_large_zip:_&:' numpy/lib/tests/test_io.py || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_compile() {
+ export MAKEOPTS=-j1 #660754
+
+ local python_makeopts_jobs=""
+ python_is_python3 || python_makeopts_jobs="-j $(makeopts_jobs)"
+ distutils-r1_python_compile \
+ ${python_makeopts_jobs} \
+ ${NUMPY_FCONFIG}
+}
+
+python_test() {
+ distutils_install_for_testing --single-version-externally-managed \
+ --record "${TMPDIR}/record.txt" ${NUMPY_FCONFIG}
+
+ cd "${TMPDIR}" || die
+
+ "${EPYTHON}" -c "
+import numpy, sys
+r = numpy.test(label='full', verbose=3)
+sys.exit(0 if r else 1)" || die "Tests fail with ${EPYTHON}"
+}
+
+python_install() {
+ distutils-r1_python_install ${NUMPY_FCONFIG}
+ python_optimize
+}
+
+python_install_all() {
+ local DOCS=( THANKS.txt )
+
+ if use doc; then
+ local HTML_DOCS=( "${WORKDIR}"/html/. )
+ DOCS+=( "${DISTDIR}"/${MY_PN}-{user,ref}-${DOC_PV}.pdf )
+ fi
+
+ distutils-r1_python_install_all
+
+ # Let latest version to provide f2py link
+ rm "${ED}"/usr/bin/f2py || die
+}