[Buildroot] [PATCH v3 4/4] package/python-scipy: new package
Guillaume W. Bres
guillaume.bressaix at gmail.com
Tue Feb 22 12:48:50 UTC 2022
From: Jagan Teki <jagan at amarulasolutions.com>
Signed-off-by: Jagan Teki <jagan at amarulasolutions.com>
[Arnout:
- Indent hash file with two spaces.
- Bump to 1.7.3 to fix build failure with recent GCC.
- Get from github instead of PyPI.
- Add host-meson and host-python-pythran dependencies.
- Properly propagate Config.in dependencies.
- Correct usage of BR2_INSTALL_LIBSTDCPP symbol.
- Remove F77, no longer used.
]
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout at mind.be>
[Guillaume:
- -lnpymath: npymath.ini localization problem
- -lnpyrandom resolution problem
- fix legal-info for latest version LICENSE.txt
- zlib is a scipy::io module runtime requirement
]
---
v2:
-lnpymath is not able to locate npymath.ini,
I 'fix' it with an -L flag.
-lnpyrandom seems to point to host/usr and not staging/usr
I 'fix' it with an -L flag.
v3:
fix legal-info
zlib is a scipy::io module runtime requirement
run "python -c 'import scipy; scipy.test();'" to test this package
Signed-off-by: Guillaume W. Bres <guillaume.bressaix at gmail.com>
---
DEVELOPERS | 3 ++
package/Config.in | 1 +
package/python-scipy/Config.in | 29 ++++++++++++
package/python-scipy/python-scipy.hash | 9 ++++
package/python-scipy/python-scipy.mk | 63 ++++++++++++++++++++++++++
5 files changed, 105 insertions(+)
create mode 100644 package/python-scipy/Config.in
create mode 100644 package/python-scipy/python-scipy.hash
create mode 100644 package/python-scipy/python-scipy.mk
diff --git a/DEVELOPERS b/DEVELOPERS
index ac702d8d0f..c8766c872e 100644
--- a/DEVELOPERS
+++ b/DEVELOPERS
@@ -1149,6 +1149,7 @@ F: package/libxcrypt/
F: package/liquid-dsp/
F: package/pixiewps/
F: package/python-pybind/
+F: package/python-scipy/
F: package/reaver/
F: support/testing/tests/package/br2-external/python-pybind
F: support/testing/tests/package/sample_python_pybind.py
@@ -1280,6 +1281,8 @@ F: configs/orangepi_win_defconfig
F: configs/orangepi_zero_plus2_defconfig
F: configs/pine64_defconfig
F: configs/pine64_sopine_defconfig
+F: package/python-pybind/
+F: package/python-scipy/
N: James Hilliard <james.hilliard1 at gmail.com>
F: package/apcupsd/
diff --git a/package/Config.in b/package/Config.in
index 10209d84d7..0edde1c919 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -1209,6 +1209,7 @@ menu "External python modules"
source "package/python-scandir/Config.in"
source "package/python-scapy/Config.in"
source "package/python-schedule/Config.in"
+ source "package/python-scipy/Config.in"
source "package/python-sdnotify/Config.in"
source "package/python-secretstorage/Config.in"
source "package/python-see/Config.in"
diff --git a/package/python-scipy/Config.in b/package/python-scipy/Config.in
new file mode 100644
index 0000000000..98d02b28a8
--- /dev/null
+++ b/package/python-scipy/Config.in
@@ -0,0 +1,29 @@
+config BR2_PACKAGE_PYTHON_SCIPY
+ bool "python-scipy"
+ depends on BR2_PACKAGE_OPENBLAS_ARCH_SUPPORTS # openblas
+ depends on BR2_PACKAGE_PYTHON_NUMPY_ARCH_SUPPORTS # python-numpy
+ depends on BR2_PACKAGE_LAPACK_ARCH_SUPPORTS # lapack
+ depends on BR2_TOOLCHAIN_USES_GLIBC || BR2_TOOLCHAIN_USES_MUSL # python-numpy
+ depends on BR2_TOOLCHAIN_HAS_FORTRAN # lapack
+ depends on BR2_INSTALL_LIBSTDCPP
+ depends on BR2_PACKAGE_PYTHON3
+ select BR2_PACKAGE_LAPACK
+ select BR2_PACKAGE_OPENBLAS
+ select BR2_PACKAGE_PYTHON_NUMPY # runtime
+ select BR2_PACKAGE_PYTHON_PYBIND
+ help
+ The SciPy library is one of the core packages that make up the
+ SciPy stack. It provides many user-friendly and efficient
+ numerical routines such as routines for numerical integration,
+ interpolation, optimization, linear algebra and statistics.
+
+ https://www.scipy.org/scipylib/
+
+comment "python-scipy needs toolchain w/ fortran and c++ and glibc or musl"
+ depends on BR2_PACKAGE_OPENBLAS_ARCH_SUPPORTS
+ depends on BR2_PACKAGE_PYTHON_NUMPY_ARCH_SUPPORTS
+ depends on BR2_PACKAGE_LAPACK_ARCH_SUPPORTS
+ depends on BR2_PACKAGE_PYTHON3
+ depends on !BR2_TOOLCHAIN_HAS_FORTRAN || \
+ !BR2_INSTALL_LIBSTDCPP || \
+ (!BR2_TOOLCHAIN_USES_GLIBC && !BR2_TOOLCHAIN_USES_MUSL)
diff --git a/package/python-scipy/python-scipy.hash b/package/python-scipy/python-scipy.hash
new file mode 100644
index 0000000000..6f9011516c
--- /dev/null
+++ b/package/python-scipy/python-scipy.hash
@@ -0,0 +1,9 @@
+# Locally generated
+sha256 4042211bed8e6c658b9e2a4ca829806f0b33437faa7878c8dc6d6f72845b1694 scipy-1.7.3.tar.xz
+sha256 32b2f41fb8c1193a066c1686bb3237e79f918685bf545cb6dfcb68753ac35152 LICENSE.txt
+sha256 37e64a498894ac7c3b070023e3689e954a8ecf8a23b90968d09a455f1b4f7b35 scipy/linalg/src/lapack_deprecations/LICENSE
+sha256 606209a000716c5f66e33e180ce08434b96ed17db4975ab9723c6b5fbcc89609 scipy/ndimage/LICENSE.txt
+sha256 3df9207af2fdb861af0ae3b22026f163b9bcfab4e525dc4943afe2ffa3f77624 scipy/optimize/tnc/LICENSE
+sha256 f0cedf52503b2d42b83411a0a16e6fefac346dfad8fddc66f50050150123470c scipy/sparse/linalg/dsolve/SuperLU/License.txt
+sha256 0926566f9f406178d1214f8cc796e166b1213dd7c05e0c5b461a8b8ac9e50bbe scipy/sparse/linalg/eigen/arpack/ARPACK/COPYING
+sha256 34db0c0c4f931861d720555c9cd7a2e228d1290ba29af0f2ee80c41bb2038afb scipy/spatial/qhull_src/COPYING.txt
diff --git a/package/python-scipy/python-scipy.mk b/package/python-scipy/python-scipy.mk
new file mode 100644
index 0000000000..0491a73753
--- /dev/null
+++ b/package/python-scipy/python-scipy.mk
@@ -0,0 +1,63 @@
+################################################################################
+#
+# python-scipy
+#
+################################################################################
+
+PYTHON_SCIPY_VERSION = 1.7.3
+PYTHON_SCIPY_SOURCE = scipy-$(PYTHON_SCIPY_VERSION).tar.xz
+PYTHON_SCIPY_SITE = https://github.com/scipy/scipy/releases/download/v$(PYTHON_SCIPY_VERSION)
+PYTHON_SCIPY_LICENSE = \
+ BSD-3-Clause, \
+ BSD-2-Clause, \
+ BSD, \
+ BSD-Style, \
+ Apache-2.0, \
+ MIT
+PYTHON_SCIPY_LICENSE_FILES = \
+ LICENSE.txt \
+ scipy/linalg/src/lapack_deprecations/LICENSE \
+ scipy/ndimage/LICENSE.txt \
+ scipy/optimize/tnc/LICENSE \
+ scipy/sparse/linalg/dsolve/SuperLU/License.txt \
+ scipy/sparse/linalg/eigen/arpack/ARPACK/COPYING \
+ scipy/spatial/qhull_src/COPYING.txt
+PYTHON_SCIPY_DEPENDENCIES += \
+ host-meson \
+ host-python-numpy \
+ host-python-pythran \
+ zlib \
+ lapack \
+ openblas \
+ python-numpy \
+ python-pybind
+PYTHON_SCIPY_INSTALL_STAGING = YES
+
+PYTHON_SCIPY_SETUP_TYPE = setuptools
+PYTHON_SCIPY_BUILD_OPTS = config_fc --fcompiler=gnu95
+
+# -lnpymath npymath.ini localization
+PYTHON_SCIPY_NPY_PKG_CONFIG_PATH = \
+ $(STAGING_DIR)/usr/lib/python$(PYTHON3_VERSION_MAJOR)/site-packages/numpy/core/lib/npy-pkg-config
+
+PYTHON_SCIPY_LDFLAGS = $(TARGET_LDFLAGS) -shared \
+ -L$(PYTHON3_PATH)/site-packages/numpy/core/lib
+# -lnpyrandom localization
+PYTHON_SCIPY_LDFLAGS += \
+ -L$(STAGING_DIR)/usr/lib/python$(PYTHON3_VERSION_MAJOR)/site-packages/numpy/random/lib
+
+PYTHON_SCIPY_ENV = \
+ F90=$(TARGET_FC) \
+ NPY_PKG_CONFIG_PATH=$(PYTHON_SCIPY_NPY_PKG_CONFIG_PATH) \
+ LDFLAGS="$(PYTHON_SCIPY_LDFLAGS)"
+
+# Provide system configuration options to numpy distutils extenions, telling
+# to find all include files and libraries in staging directory.
+define PYTHON_SCIPY_CONFIGURE_CMDS
+ -rm -f $(@D)/site.cfg
+ echo "[DEFAULT]" >> $(@D)/site.cfg
+ echo "library_dirs = $(STAGING_DIR)/usr/lib" >> $(@D)/site.cfg
+ echo "include_dirs = $(STAGING_DIR)/usr/include" >> $(@D)/site.cfg
+endef
+
+$(eval $(python-package))
--
2.20.1
More information about the buildroot
mailing list