@@ -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@gmail.com>
F: package/apcupsd/
@@ -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"
new file mode 100644
@@ -0,0 +1,30 @@
+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_ZLIB # runtime scipy::io
+ 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)
new file mode 100644
@@ -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
new file mode 100644
@@ -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))