Re: git: 9fea2cd984a3 - main - math/py-numpy: Reland Migrate to PEP517
- In reply to: Vladimir Druzenko : "Re: git: 9fea2cd984a3 - main - math/py-numpy: Reland Migrate to PEP517"
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Wed, 15 Oct 2025 12:49:46 UTC
Hello!
BTW, part of unbreak build with non-default flavor require point to versioned cython, build always search for unversioned which is correct only for default flavor
BINARY_ALIAS= cython=cython-${_PYTHON_VERSION}
--
Dima. (desktop, kde, x11, office, ports-secteam)@FreeBSD team
(fluffy@FreeBSD.org, https://t.me/FluffyBSD)
> On Wednesday, Oct 15, 2025 at 11:18 AM, Vladimir Druzenko <vvd@freebsd.org (mailto:vvd@freebsd.org)> wrote:
> Hello!
>
> 15.10.2025 08:25, Xin LI пишет:
> > The branch main has been updated by delphij:
> >
> > URL: https://cgit.FreeBSD.org/ports/commit/?id=9fea2cd984a308cc38ecc0cbc0f70178b9fa5e02
> >
> > commit 9fea2cd984a308cc38ecc0cbc0f70178b9fa5e02
> > Author: Matthew Wener <matthew@wener.org>
> > AuthorDate: 2025-10-15 05:10:50 +0000
> > Commit: Xin LI <delphij@FreeBSD.org>
> > CommitDate: 2025-10-15 05:10:50 +0000
> >
> > math/py-numpy: Reland Migrate to PEP517
> >
> > This restores 3f582fcf38bb0cee40f9346683490aceb3bda654 but with
> > allflavors removed.
> >
> > PR: ports/287794
> > ---
> > math/py-numpy/Makefile | 12 ++++++++---
> > math/py-numpy/files/patch-numpy_core_setup.py | 19 ++++++++++++++++++
> > .../patch-numpy_distutils_mingw32ccompiler.py | 17 ++++++++++++++++
> > math/py-numpy/files/patch-numpy_random_setup.py | 23 ++++++++++++++++++++++
> > math/py-numpy/files/patch-pyproject.toml | 11 +++++++++++
> > 5 files changed, 79 insertions(+), 3 deletions(-)
> >
> > 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,6 +1,6 @@
> > PORTNAME= numpy
> > PORTVERSION= 1.26.4
> > -PORTREVISION= 9
> > +PORTREVISION= 10
> > PORTEPOCH= 1
> > CATEGORIES= math python
> > MASTER_SITES= PYPI \
> > @@ -18,12 +18,14 @@ 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//
> > @@ -61,6 +63,10 @@ OPENBLAS_VARS= BLASLIBS="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
> > 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]
>
> Can you add this to patch:
> - "Cython>=0.29.34,<3.1",
> + "Cython>=0.29.34,<4.0",
>
> Build fine with cython3 with this patch and before "Migrate to PEP517" too.
> https://bugs.freebsd.org/289075
>
> --
> Best regards,
> Vladimir Druzenko
>