Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 03 Apr 2026 22:19:30 +0000
From:      Charlie Li <vishwin@FreeBSD.org>
To:        ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org
Subject:   git: ef9180aa8469 - main - science/py-scipy: update to 1.17.1
Message-ID:  <69d03cf2.430ed.2d4d8408@gitrepo.freebsd.org>

index | next in thread | raw e-mail

The branch main has been updated by vishwin:

URL: https://cgit.FreeBSD.org/ports/commit/?id=ef9180aa84690bd5181cd60be75c891ee7bdb74e

commit ef9180aa84690bd5181cd60be75c891ee7bdb74e
Author:     Charlie Li <vishwin@FreeBSD.org>
AuthorDate: 2026-04-03 22:18:31 +0000
Commit:     Charlie Li <vishwin@FreeBSD.org>
CommitDate: 2026-04-03 22:18:31 +0000

    science/py-scipy: update to 1.17.1
    
    Changelogs:
    - https://docs.scipy.org/doc/scipy/release/1.17.0-notes.html (minor versions no longer offered)
    - https://docs.scipy.org/doc/scipy/release/1.16.3-notes.html
    - https://docs.scipy.org/doc/scipy/release/1.16.2-notes.html
    - https://docs.scipy.org/doc/scipy/release/1.16.1-notes.html
    - https://docs.scipy.org/doc/scipy/release/1.16.0-notes.html
    - https://docs.scipy.org/doc/scipy/release/1.15.3-notes.html
    - https://docs.scipy.org/doc/scipy/release/1.15.2-notes.html
    - https://docs.scipy.org/doc/scipy/release/1.15.1-notes.html
    - https://docs.scipy.org/doc/scipy/release/1.15.0-notes.html
    - https://docs.scipy.org/doc/scipy/release/1.14.1-notes.html
    - https://docs.scipy.org/doc/scipy/release/1.14.0-notes.html
    - https://docs.scipy.org/doc/scipy/release/1.13.1-notes.html
    - https://docs.scipy.org/doc/scipy/release/1.13.0-notes.html
    - https://docs.scipy.org/doc/scipy/release/1.12.0-notes.html
    - https://docs.scipy.org/doc/scipy/release/1.11.4-notes.html
    - https://docs.scipy.org/doc/scipy/release/1.11.3-notes.html
    - https://docs.scipy.org/doc/scipy/release/1.11.2-notes.html
    
    Switch from distutils to PEP-517.
    
    PR: 277826
    Reported by: wen
    Tested by: michaelo, makc, wen (previous iteration)
    exp-run by: antoine (previous iteration)
    Differential Revision: https://reviews.freebsd.org/D42144
---
 science/py-scipy/Makefile                          | 86 +++++++++++++---------
 science/py-scipy/distinfo                          | 12 ++-
 science/py-scipy/files/patch-cython                | 32 --------
 science/py-scipy/files/patch-scipy_linalg_setup.py | 11 ---
 .../files/patch-scipy_sparse_tests_test__base.py   | 35 ---------
 5 files changed, 58 insertions(+), 118 deletions(-)

diff --git a/science/py-scipy/Makefile b/science/py-scipy/Makefile
index 3dc8d4ddacfb..828aadc23d6f 100644
--- a/science/py-scipy/Makefile
+++ b/science/py-scipy/Makefile
@@ -1,19 +1,15 @@
 PORTNAME=	scipy
-DISTVERSION=	1.11.1
-PORTREVISION=	6
+DISTVERSION=	1.17.1
 PORTEPOCH=	1
 CATEGORIES=	science python
-MASTER_SITES=	https://docs.scipy.org/doc/scipy-${DISTVERSION}/:doc \
+MASTER_SITES=	https://docs.scipy.org/doc/${PORTNAME}-1.17.0/:doc \
 		PYPI:source \
 		SF:source
 PKGNAMEPREFIX=	${PYTHON_PKGNAMEPREFIX}
 DISTFILES=	${DISTNAME}${EXTRACT_SUFX}:source \
-		scipy-html-${DISTVERSION}.zip:doc
+		scipy-html-1.17.0.zip:doc
 EXTRACT_ONLY=	${DISTNAME}${EXTRACT_SUFX}
 
-PATCH_SITES=	https://github.com/scipy/scipy/commit/
-PATCHFILES=	ab7d08c6148286059f6498ab5c3070268d13cbd9.patch:-p1 # https://github.com/scipy/scipy/pull/21069
-
 MAINTAINER=	python@FreeBSD.org
 COMMENT=	Scientific tools for Python
 WWW=		https://www.scipy.org/
@@ -21,45 +17,69 @@ WWW=		https://www.scipy.org/
 LICENSE=	BSD3CLAUSE
 LICENSE_FILE=	${WRKSRC}/LICENSE.txt
 
-BUILD_DEPENDS=	${PYTHON_PKGNAMEPREFIX}numpy1>=1.16:math/py-numpy1@${PY_FLAVOR} \
-		${PYTHON_PKGNAMEPREFIX}pip>0:devel/py-pip@${PY_FLAVOR} \
-		${PYTHON_PKGNAMEPREFIX}pybind11>0:devel/py-pybind11@${PY_FLAVOR} \
-		${PYTHON_PKGNAMEPREFIX}pythran>=0:devel/py-pythran@${PY_FLAVOR} \
-		unzip>0:archivers/unzip
-LIB_DEPENDS=	libblas.so:math/blas \
-		libopenblas.so:math/openblas
-RUN_DEPENDS=	${PYTHON_PKGNAMEPREFIX}numpy1>=1.16:math/py-numpy1@${PY_FLAVOR}
-TEST_DEPENDS=	${PYTHON_PKGNAMEPREFIX}gmpy2>0:math/py-gmpy2@${PY_FLAVOR} \
-		${PYTHON_PKGNAMEPREFIX}mpmath>0:math/py-mpmath@${PY_FLAVOR} \
-		${PYTHON_PKGNAMEPREFIX}pooch>0:devel/py-pooch@${PY_FLAVOR} \
-		${PYTHON_PKGNAMEPREFIX}pytest-cov>0:devel/py-pytest-cov@${PY_FLAVOR} \
+BUILD_DEPENDS=	${PYTHON_PKGNAMEPREFIX}meson-python>=0.15.0:devel/meson-python@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}pybind11>=2.13.2:devel/py-pybind11@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}pythran>=0.14.0:devel/py-pythran@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}setuptools>0:devel/py-setuptools@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}numpy1>=1.26.4:math/py-numpy1@${PY_FLAVOR} \
+		boost-libs>=1.89.0:devel/boost-libs
+LIB_DEPENDS=	libqhull_r.so:math/qhull
+RUN_DEPENDS=	${PYTHON_PKGNAMEPREFIX}numpy1>=1.26.4:math/py-numpy1@${PY_FLAVOR}
+TEST_DEPENDS=	${PYTHON_PKGNAMEPREFIX}pytest-cov>0:devel/py-pytest-cov@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}pytest-timeout>0:devel/py-pytest-timeout@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}pytest-xdist>0:devel/py-pytest-xdist@${PY_FLAVOR} \
-		${PYTHON_PKGNAMEPREFIX}scikit-umfpack>0:math/py-scikit-umfpack@${PY_FLAVOR}
+		${PYTHON_PKGNAMEPREFIX}asv>0:benchmarks/py-asv@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}mpmath>0:math/py-mpmath@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}gmpy2>0:math/py-gmpy2@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}threadpoolctl>0:devel/py-threadpoolctl@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}scikit-umfpack>0:math/py-scikit-umfpack@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}pooch>0:devel/py-pooch@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}hypothesis>=6.30:devel/py-hypothesis@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}array-api-strict>=2.3.1:devel/py-array-api-strict@${PY_FLAVOR}
+
+USES=		compiler:c++17-lang cpe fortran pkgconfig python:3.11+ shebangfix
+USE_PYTHON=	autoplist concurrent cython pep517 pytest
 
-USES=		compiler:c++14-lang cpe fortran python:3.10-3.12 shebangfix
-USE_PYTHON=	autoplist concurrent cython0 distutils
+PEP517_BUILD_CONFIG_SETTING=	-Csetup-args=-Duse-system-libraries=all
 
-FFLAGS+=	-std=legacy
-LDFLAGS+=	-shared
-PYDISTUTILS_BUILDARGS=	--fcompiler=gnu95
-PYDISTUTILS_CONFIGUREARGS=	--fcompiler=gnu95
+TEST_WRKSRC=	${WRKDIR}
+TEST_ARGS=	--pyargs scipy
+PYTEST_BROKEN_TESTS=	test_threading
 
-PIE_UNSAFE=	yes
+BINARY_ALIAS=	cython=cython-${PYTHON_VER} \
+		pybind11-config=pybind11-config-${PYTHON_VER} \
+		pythran=pythran-${PYTHON_VER}
 
 PORTDOCS=	*
 
 OPTIONS_DEFINE=	DOCS
+OPTIONS_SINGLE=	BLASLIB
+OPTIONS_SINGLE_BLASLIB=	BLIS FLEXIBLAS NETLIB OPENBLAS
+OPTIONS_DEFAULT=	OPENBLAS
+BLIS_DESC=	BLIS BLAS-like implementation
+FLEXIBLAS_DESC=	FlexiBLAS BLAS implementation
 
-post-install:
-	${FIND} ${STAGEDIR}${PYTHON_SITELIBDIR}/scipy/ -name '*.so' | ${XARGS} ${STRIP_CMD}
+BLIS_USES=	blaslapack:blis
+BLIS_VARS=	PEP517_BUILD_CONFIG_SETTING+="-Csetup-args=-Dblas=blis -Csetup-args=-Dlapack=flame"
+BLIS_BROKEN=	math/libflame does not provide a pkg-config file
+FLEXIBLAS_USES=	blaslapack:flexiblas
+FLEXIBLAS_VARS=	PEP517_BUILD_CONFIG_SETTING+="-Csetup-args=-Dblas=flexiblas -Csetup-args=-Dlapack=flexiblas"
+NETLIB_USES=	blaslapack:netlib
+NETLIB_VARS=	PEP517_BUILD_CONFIG_SETTING+="-Csetup-args=-Dblas=blas -Csetup-args=-Dlapack=lapack"
+OPENBLAS_USES=	blaslapack:openblas
+OPENBLAS_VARS=	PEP517_BUILD_CONFIG_SETTING+="-Csetup-args=-Dblas=openblas -Csetup-args=-Dlapack=openblas"
+
+post-patch:
+	@${REINPLACE_CMD} -e 's|pythran>=0.14.0,<0.19.0|pythran>=0.14.0|' \
+		-e 's|Cython>=3.0.8,<3.3.0|Cython>=3.0.8|' \
+		-e 's|numpy>=2.0.0|numpy>=1.26.4|g' \
+		${WRKSRC}/pyproject.toml
+	@${REINPLACE_CMD} -e "s|'boost', version : '1.89.0'|'boost'|g" \
+		${WRKSRC}/meson.build
 
 post-install-DOCS-on:
 	@${MKDIR} ${STAGEDIR}${DOCSDIR}
-	@${UNZIP_CMD} -d ${STAGEDIR}${DOCSDIR} ${DISTDIR}/scipy-html-${DISTVERSION}.zip
+	@${UNZIP_NATIVE_CMD} -d ${STAGEDIR}${DOCSDIR} ${DISTDIR}/scipy-html-1.17.0.zip
 	@${RM} ${STAGEDIR}${DOCSDIR}/.buildinfo
 
-do-test:
-	@cd ${WRKSRC} && ${TOUCH} .coveragerc && ${PYTHON_CMD} runtests.py
-
 .include <bsd.port.mk>
diff --git a/science/py-scipy/distinfo b/science/py-scipy/distinfo
index adf47cea8ae6..839c17390bc1 100644
--- a/science/py-scipy/distinfo
+++ b/science/py-scipy/distinfo
@@ -1,7 +1,5 @@
-TIMESTAMP = 1723220234
-SHA256 (scipy-1.11.1.tar.gz) = fb5b492fa035334fd249f0973cc79ecad8b09c604b42a127a677b45a9a3d4289
-SIZE (scipy-1.11.1.tar.gz) = 56031509
-SHA256 (scipy-html-1.11.1.zip) = e0a90d5fb0b93f0433c63cc1f80c8084e54c0402606a60a7898f61b53be60f13
-SIZE (scipy-html-1.11.1.zip) = 50389323
-SHA256 (ab7d08c6148286059f6498ab5c3070268d13cbd9.patch) = 41f357e513cdad1f4dcef1ff299915f2e540d95dcc722d72c9b25bc5a4abfab8
-SIZE (ab7d08c6148286059f6498ab5c3070268d13cbd9.patch) = 1105
+TIMESTAMP = 1774076747
+SHA256 (scipy-1.17.1.tar.gz) = 95d8e012d8cb8816c226aef832200b1d45109ed4464303e997c5b13122b297c0
+SIZE (scipy-1.17.1.tar.gz) = 30573822
+SHA256 (scipy-html-1.17.0.zip) = e1cfb3b30662701460f183ed90000a27bdb8af8bb2ff3051c1742de18c72f8e7
+SIZE (scipy-html-1.17.0.zip) = 72758586
diff --git a/science/py-scipy/files/patch-cython b/science/py-scipy/files/patch-cython
deleted file mode 100644
index 586b9ca4ca59..000000000000
--- a/science/py-scipy/files/patch-cython
+++ /dev/null
@@ -1,32 +0,0 @@
-Obtained from:	https://github.com/scipy/scipy/commit/3c89445b6439f3ce7bffc4cf11c6407c39faedc5
-		https://github.com/scipy/scipy/commit/217748476403a1e5726a921cedb674e7ffbc952e
-
---- scipy/_lib/_ccallback_c.pyx.orig	1970-01-01 00:00:00 UTC
-+++ scipy/_lib/_ccallback_c.pyx
-@@ -58,7 +58,7 @@ def get_raw_capsule(func_obj, name_obj, context_obj):
-     elif context_obj is None:
-         context = NULL
-     else:
--        context = PyLong_AsVoidPtr(long(context_obj))
-+        context = PyLong_AsVoidPtr(int(context_obj))
- 
-     if PyCapsule_CheckExact(func_obj):
-         capsule_name = PyCapsule_GetName(func_obj)
-@@ -70,7 +70,7 @@ def get_raw_capsule(func_obj, name_obj, context_obj):
-         if name == NULL:
-             name = capsule_name
-     else:
--        func = PyLong_AsVoidPtr(long(func_obj))
-+        func = PyLong_AsVoidPtr(int(func_obj))
- 
-     if name == NULL:
-         name_copy = name
---- scipy/optimize/cython_optimize.pxd.orig	1970-01-01 00:00:00 UTC
-+++ scipy/optimize/cython_optimize.pxd
-@@ -7,5 +7,5 @@
- # support. Changing it causes an ABI forward-compatibility break
- # (gh-11793), so we currently leave it as is (no further cimport
- # statements should be used in this file).
--from .cython_optimize._zeros cimport (
-+from scipy.optimize.cython_optimize._zeros cimport (
-     brentq, brenth, ridder, bisect, zeros_full_output)
diff --git a/science/py-scipy/files/patch-scipy_linalg_setup.py b/science/py-scipy/files/patch-scipy_linalg_setup.py
deleted file mode 100644
index c885d4d4a25f..000000000000
--- a/science/py-scipy/files/patch-scipy_linalg_setup.py
+++ /dev/null
@@ -1,11 +0,0 @@
---- scipy/linalg/setup.py.orig	2022-08-08 07:24:08 UTC
-+++ scipy/linalg/setup.py
-@@ -160,7 +160,7 @@ def configuration(parent_package='', top_path=None):
- 
-     # Add any license files
-     config.add_data_files('src/id_dist/doc/doc.tex')
--    config.add_data_files('src/lapack_deprecations/LICENSE')
-+    #config.add_data_files('src/lapack_deprecations/LICENSE')
- 
-     # Type stubs
-     config.add_data_files('*.pyi')
diff --git a/science/py-scipy/files/patch-scipy_sparse_tests_test__base.py b/science/py-scipy/files/patch-scipy_sparse_tests_test__base.py
deleted file mode 100644
index eba1ce48a52c..000000000000
--- a/science/py-scipy/files/patch-scipy_sparse_tests_test__base.py
+++ /dev/null
@@ -1,35 +0,0 @@
---- scipy/sparse/tests/test_base.py.orig	1970-01-01 00:00:00 UTC
-+++ scipy/sparse/tests/test_base.py
-@@ -4774,19 +4774,19 @@ class TestCSCNonCanonical(_NonCanonicalCSMixin, TestCS
-     pass
- 
- 
--class TestBSRNonCanonical(_NonCanonicalCompressedMixin, TestBSR):
--    def _insert_explicit_zero(self, M, i, j):
--        x = M.tocsr()
--        x[i,j] = 0
--        return x.tobsr(blocksize=M.blocksize)
--
--    @pytest.mark.xfail(run=False, reason='diagonal broken with non-canonical BSR')
--    def test_diagonal(self):
--        pass
--
--    @pytest.mark.xfail(run=False, reason='expm broken with non-canonical BSR')
--    def test_expm(self):
--        pass
-+#class TestBSRNonCanonical(_NonCanonicalCompressedMixin, TestBSR):
-+#    def _insert_explicit_zero(self, M, i, j):
-+#        x = M.tocsr()
-+#        x[i,j] = 0
-+#        return x.tobsr(blocksize=M.blocksize)
-+#
-+#    @pytest.mark.xfail(run=False, reason='diagonal broken with non-canonical BSR')
-+#    def test_diagonal(self):
-+#        pass
-+#
-+#    @pytest.mark.xfail(run=False, reason='expm broken with non-canonical BSR')
-+#    def test_expm(self):
-+#        pass
- 
- 
- class TestCOONonCanonical(_NonCanonicalMixin, TestCOO):


home | help

Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?69d03cf2.430ed.2d4d8408>