diff --git a/math/py-numpy/Makefile b/math/py-numpy/Makefile index 22f8b33f9ed3..7b7273abe5be 100644 --- a/math/py-numpy/Makefile +++ b/math/py-numpy/Makefile @@ -1,94 +1,100 @@ PORTNAME= numpy PORTVERSION= 1.26.4 -PORTREVISION= 9 +PORTREVISION= 10 PORTEPOCH= 1 CATEGORIES= math python MASTER_SITES= PYPI \ https://numpy.org/doc/1.26/:doc PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} DISTFILES= numpy-${PORTVERSION}${EXTRACT_SUFX} \ numpy-html.zip:doc DIST_SUBDIR= numpy-${PORTVERSION:R} EXTRACT_ONLY= ${DISTNAME}${EXTRACT_SUFX} MAINTAINER= python@FreeBSD.org COMMENT= The New Numeric Extension to Python WWW= https://www.numpy.org/ LICENSE= BSD3CLAUSE LICENSE_FILE= ${WRKSRC}/LICENSE.txt +BUILD_DEPENDS= ${PY_SETUPTOOLS} \ + ${PYTHON_PKGNAMEPREFIX}meson-python>=0:devel/meson-python@${PY_FLAVOR} TEST_DEPENDS= ${PYTHON_PKGNAMEPREFIX}hypothesis>=6.24.1:devel/py-hypothesis@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}pytest>=6.2.5:devel/py-pytest@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}typing-extensions>=4.2.0:devel/py-typing-extensions@${PY_FLAVOR} -USES= compiler:c11 cpe fortran python:3.9+ -USE_PYTHON= allflavors autoplist concurrent cython distutils +USES= compiler:c11 cpe fortran pkgconfig python:3.9+ shebangfix +USE_PYTHON= autoplist concurrent cython pep517 GCCLIBDIR_CMDS= ${FC} -print-file-name=libgfortran.so | ${SED} -e \ s/libgfortran.so// PYDISTUTILS_CONFIGUREARGS= --fcompiler=gnu95 PYDISTUTILS_BUILDARGS= --fcompiler=gnu95 LDFLAGS+= -s PIE_UNSAFE= yes PORTSCOUT= limit:^1\. PORTDOCS= * OPTIONS_DEFINE= DOCS SUITESPARSE OPTIONS_DEFAULT= OPENBLAS SUITESPARSE OPTIONS_SINGLE= BLASLIB OPTIONS_SINGLE_BLASLIB= ATLAS NETLIB OPENBLAS SUITESPARSE_DESC= Use AMD and UMFPACK in SuiteSparse ATLAS_USES= blaslapack:atlas ATLAS_VARS= BLASLIBS="ptf77blas, ptcblas" \ BLASNAME=atlas \ LAPACKLIBS=alapack \ LIBRARIES=atlas_libs NETLIB_LIB_DEPENDS= libcblas.so:math/cblas NETLIB_USES= blaslapack:netlib NETLIB_VARS= BLASLIBS="blas, cblas" \ BLASNAME=atlas \ LAPACKLIBS=lapack \ LIBRARIES=atlas_libs OPENBLAS_USES= blaslapack:openblas OPENBLAS_VARS= BLASLIBS="openblas, gfortran" \ BLASNAME=openblas \ LAPACKLIBS="openblas, gfortran" \ LIBRARIES=libraries SUITESPARSE_LIB_DEPENDS= libumfpack.so:math/suitesparse-umfpack +SHEBANG_FILES= numpy/f2py/crackfortran.py numpy/f2py/f2py2e.py \ + numpy/f2py/rules.py numpy/testing/print_coercion_tables.py \ + numpy/testing/setup.py + post-extract: @${TOUCH} ${WRKSRC}/numpy/f2py/tests/src/temp @${TOUCH} ${WRKSRC}/numpy/random/_examples/temp @${TOUCH} ${WRKSRC}/numpy/core/tests/examples/temp pre-configure: @${REINPLACE_CMD} -e 's|%%FC%%|${FC}|' ${WRKSRC}/numpy/distutils/fcompiler/gnu.py @${CP} ${FILESDIR}/site.cfg ${WRKSRC}/site.cfg ${REINPLACE_CMD} -e 's|%%LOCALBASE%%|${LOCALBASE}|g' \ -e 's|%%BLASLIBS%%|${BLASLIBS}|; s|%%BLASNAME%%|${BLASNAME}|' \ -e 's|%%LAPACKLIBS%%|${LAPACKLIBS}|; s|%%LIBRARIES%%|${LIBRARIES}|' \ ${WRKSRC}/site.cfg @${REINPLACE_CMD} -e "s|%%GCCLIBDIR%%|$$(${GCCLIBDIR_CMDS})|" ${WRKSRC}/site.cfg ${WRKSRC}/numpy/distutils/system_info.py pre-configure-SUITESPARSE-off: @${REINPLACE_CMD} -e 's|:%%LOCALBASE%%/include/suitesparse||' ${WRKSRC}/site.cfg do-configure: post-install: ${FIND} ${STAGEDIR}${PYTHON_SITELIBDIR} -name '*.so' | ${XARGS} ${STRIP_CMD} post-install-DOCS-on: @${MKDIR} ${STAGEDIR}${DOCSDIR} ${UNZIP_NATIVE_CMD} -qo ${DISTDIR}/${DIST_SUBDIR}/numpy-html.zip -d ${STAGEDIR}${DOCSDIR} @${RM} ${STAGEDIR}${DOCSDIR}/.buildinfo do-test: @cd ${WRKSRC} && ${PYTHON_CMD} runtests.py .include diff --git a/math/py-numpy/files/patch-numpy_core_setup.py b/math/py-numpy/files/patch-numpy_core_setup.py new file mode 100644 index 000000000000..7502a4df93fb --- /dev/null +++ b/math/py-numpy/files/patch-numpy_core_setup.py @@ -0,0 +1,19 @@ +--- numpy/core/setup.py.orig 2024-02-05 21:17:48 UTC ++++ numpy/core/setup.py +@@ -9,7 +9,6 @@ from numpy.distutils import log + from os.path import join + + from numpy.distutils import log +-from numpy.distutils.msvccompiler import lib_opts_if_msvc + from distutils.dep_util import newer + from sysconfig import get_config_var + from numpy.compat import npy_load_module +@@ -688,7 +687,7 @@ def configuration(parent_package='',top_path=None): + install_dir='lib', + build_info={ + 'include_dirs' : [], # empty list required for creating npy_math_internal.h +- 'extra_compiler_args': [lib_opts_if_msvc], ++ 'extra_compiler_args': [], + }) + config.add_npy_pkg_config("npymath.ini.in", "lib/npy-pkg-config", + subst_dict) diff --git a/math/py-numpy/files/patch-numpy_distutils_mingw32ccompiler.py b/math/py-numpy/files/patch-numpy_distutils_mingw32ccompiler.py new file mode 100644 index 000000000000..a7466a818792 --- /dev/null +++ b/math/py-numpy/files/patch-numpy_distutils_mingw32ccompiler.py @@ -0,0 +1,17 @@ +--- numpy/distutils/mingw32ccompiler.py.orig 2024-02-05 21:17:48 UTC ++++ numpy/distutils/mingw32ccompiler.py +@@ -24,7 +24,13 @@ from distutils.unixccompiler import UnixCCompiler + + import distutils.cygwinccompiler + from distutils.unixccompiler import UnixCCompiler +-from distutils.msvccompiler import get_build_version as get_build_msvc_version ++ ++try: ++ from distutils.msvccompiler import get_build_version as get_build_msvc_version ++except ImportError: ++ def get_build_msvc_version(): ++ return None ++ + from distutils.errors import UnknownFileError + from numpy.distutils.misc_util import (msvc_runtime_library, + msvc_runtime_version, diff --git a/math/py-numpy/files/patch-numpy_random_setup.py b/math/py-numpy/files/patch-numpy_random_setup.py new file mode 100644 index 000000000000..74ff5ffc8e54 --- /dev/null +++ b/math/py-numpy/files/patch-numpy_random_setup.py @@ -0,0 +1,23 @@ +--- numpy/random/setup.py.orig 2024-02-05 21:17:48 UTC ++++ numpy/random/setup.py +@@ -3,7 +3,6 @@ from numpy.distutils.system_info import platform_bits + from os.path import join + + from numpy.distutils.system_info import platform_bits +-from numpy.distutils.msvccompiler import lib_opts_if_msvc + + + def configuration(parent_package='', top_path=None): +@@ -70,11 +69,7 @@ def configuration(parent_package='', top_path=None): + not initialized the distutils build command, so use this deferred + calculation to run when we are building the library. + """ +- opts = lib_opts_if_msvc(build_cmd) +- if build_cmd.compiler.compiler_type != 'msvc': +- # Some bit generators require c99 +- opts.append('-std=c99') +- return opts ++ return ['-std=c99'] + + config.add_installed_library('npyrandom', + sources=npyrandom_sources, diff --git a/math/py-numpy/files/patch-pyproject.toml b/math/py-numpy/files/patch-pyproject.toml new file mode 100644 index 000000000000..3eb3c97a8da5 --- /dev/null +++ b/math/py-numpy/files/patch-pyproject.toml @@ -0,0 +1,11 @@ +--- pyproject.toml.orig 2025-06-24 22:40:55 UTC ++++ pyproject.toml +@@ -2,7 +2,7 @@ requires = [ + build-backend = "mesonpy" + requires = [ + "Cython>=0.29.34,<3.1", +- "meson-python>=0.15.0,<0.16.0", ++ "meson-python>=0.15.0", + ] + + [project]