Bug 289075 - Mk/Uses/python.mk: Make cython3 default
Summary: Mk/Uses/python.mk: Make cython3 default
Status: Open
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: --- Affects Only Me
Assignee: freebsd-python (Nobody)
URL:
Keywords:
: 281145 290913 (view as bug list)
Depends on:
Blocks: 281145 288796
  Show dependency treegraph
 
Reported: 2025-08-24 13:03 UTC by Vladimir Druzenko
Modified: 2025-12-08 11:19 UTC (History)
39 users (show)

See Also:
vishwin: maintainer-feedback+


Attachments
Make cython3 default v1 (20.14 KB, patch)
2025-08-27 13:26 UTC, Vladimir Druzenko
no flags Details | Diff
v3 (23.09 KB, patch)
2025-10-20 17:10 UTC, Vladimir Druzenko
vvd: maintainer-approval?
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Vladimir Druzenko freebsd_committer freebsd_triage 2025-08-24 13:03:19 UTC
Suggested patch (I'll attach as patch later):
=====================================================================================
--- Mk/Uses/python.mk.orig
+++ Mk/Uses/python.mk
@@ -90,21 +90,16 @@
 #      cryptography_test
 #                      - Depend on security/cryptography at test-time.
 #
-#      cython_legacy   - Depend on lang/cython at build-time.
+#      cython          - Depend on lang/cython at build-time.
 #
-#      cython_legacy_run
-#                      - Depend on lang/cython at run-time.
+#      cython_run      - Depend on lang/cython at run-time.
 #
-#      cython_legacy_test
-#                      - Depend on lang/cython for tests.
+#      cython_test     - Depend on lang/cython for tests.
 #
-#      cython
 #      cython3         - Depend on lang/cython3 at build-time.
 #
-#      cython_run
 #      cython3_run     - Depend on lang/cython3 at run-time.
 #
-#      cython_test
 #      cython3_test    - Depend on lang/cython3 for tests.
 #
 #      flavors         - Force creation of flavors for Python 2 and 3 default
@@ -358,9 +353,6 @@ _VALID_PYTHON_FEATURES=     allflavors \
                        cryptography_build \
                        cryptography \
                        cryptography_test \
-                       cython_legacy \
-                       cython_legacy_run \
-                       cython_legacy_test \
                        cython \
                        cython_run \
                        cython_test \
@@ -660,27 +652,27 @@ TEST_DEPENDS+=    ${CRYPTOGRAPHY_DEPENDS}

 # cython* support

-.  if defined(_PYTHON_FEATURE_CYTHON_LEGACY)
+.  if defined(_PYTHON_FEATURE_CYTHON)
 BUILD_DEPENDS+=        ${PYTHON_PKGNAMEPREFIX}cython>=0.29.37<3:lang/cython@${PY_FLAVOR}
 .  endif

-.  if defined(_PYTHON_FEATURE_CYTHON_LEGACY_RUN)
+.  if defined(_PYTHON_FEATURE_CYTHON_RUN)
 RUN_DEPENDS+=  ${PYTHON_PKGNAMEPREFIX}cython>=0.29.37<3:lang/cython@${PY_FLAVOR}
 .  endif

-.  if defined(_PYTHON_FEATURE_CYTHON_LEGACY_TEST)
+.  if defined(_PYTHON_FEATURE_CYTHON_TEST)
 TEST_DEPENDS+= ${PYTHON_PKGNAMEPREFIX}cython>=0.29.37<3:lang/cython@${PY_FLAVOR}
 .  endif

-.  if defined(_PYTHON_FEATURE_CYTHON) || defined(_PYTHON_FEATURE_CYTHON3)
+.  if defined(_PYTHON_FEATURE_CYTHON3)
 BUILD_DEPENDS+=        ${PYTHON_PKGNAMEPREFIX}cython3>=3.1.2:lang/cython3@${PY_FLAVOR}
 .  endif

-.  if defined(_PYTHON_FEATURE_CYTHON_RUN) || defined(_PYTHON_FEATURE_CYTHON3_RUN)
+.  if defined(_PYTHON_FEATURE_CYTHON3_RUN)
 RUN_DEPENDS+=  ${PYTHON_PKGNAMEPREFIX}cython3>=3.1.2:lang/cython3@${PY_FLAVOR}
 .  endif

-.  if defined(_PYTHON_FEATURE_CYTHON_TEST) || defined(_PYTHON_FEATURE_CYTHON3_TEST)
+.  if defined(_PYTHON_FEATURE_CYTHON3_TEST)
 TEST_DEPENDS+= ${PYTHON_PKGNAMEPREFIX}cython3>=3.1.2:lang/cython3@${PY_FLAVOR}
 .  endif
 
=====================================================================================
Ports need testing (I hope this is full list):
archivers/py-bitshuffle
archivers/py-xopen
audio/py-pysndfile
biology/py-biom-format
biology/py-crossmap
biology/py-cutadapt
biology/py-hits
biology/py-htseq
biology/py-macs2
biology/py-pysam
biology/py-pywgsim
biology/py-scikit-bio
cad/py-csxcad
chinese/pycangjie
comms/libimobiledevice
comms/py-hidapi
comms/py-libimobiledevice
converters/py-rencode
databases/py-aiomcache
databases/py-asyncmy
databases/py-asyncpg
databases/py-cassandra-driver
databases/py-cymysql
databases/py-fastparquet
databases/py-peewee
databases/py-psycopg-c
databases/py-pymssql
databases/py-sqlalchemy20
databases/py-unqlite
devel/brz
devel/cython-lint
devel/libplist
devel/meson-python
devel/py-aspectlib
devel/py-bsd
devel/py-cffi
devel/py-cftime
devel/py-crick
devel/py-cykhash
devel/py-cymem
devel/py-cython-test-exception-raiser
devel/py-cytoolz
devel/py-datrie
devel/py-ddtrace
devel/py-debugpy
devel/py-editdistance
devel/py-fastbencode
devel/py-game_sdl2
devel/py-grpcio
devel/py-guppy3
devel/py-homebase
devel/py-hunter
devel/py-intbitset
devel/py-libplist
devel/py-logbook
devel/py-lxml
devel/py-memory-allocator
devel/py-msgpack
devel/py-murmurhash
devel/py-mystic
devel/py-opendht
devel/py-orjson
devel/py-preshed
devel/py-preshed3
devel/py-pycodeexport
devel/py-pycompilation
devel/py-pydantic
devel/py-pyina
devel/py-pymtbl
devel/py-pysimdjson
devel/py-python-dtrace
devel/py-pyyaml
devel/py-reedsolo
devel/py-spyder-kernels
devel/py-srsly
devel/py-stack-data
devel/py-streamparse
devel/py-tables
devel/py-thinc
devel/py-thinc8
devel/py-thriftpy2
devel/py-timelib
devel/py-tree-sitter-languages
devel/py-twisted
devel/py-zfp
devel/vitables
dns/py-dnspython
dns/py-dnspython1
dns/py-pydnstable
dns/py-pywdns
filesystems/py-libzfs
filesystems/py-llfuse
finance/electrum
finance/py-bt
finance/py-finvizfinance
finance/py-ta-lib
games/openage
games/renpy
graphics/py-cartopy
graphics/py-djvulibre
graphics/py-geopandas
graphics/py-h3
graphics/py-ManimPango
graphics/py-pygeos
graphics/py-PyOpenGL-accelerate
graphics/py-rawpy
graphics/py-scikit-image
graphics/py-simplejpeg
japanese/py-ipadic
lang/cython
lang/py-lupa
math/lib2geom
math/py-blis
math/py-bottleneck
math/py-cyipopt
math/py-daqp
math/py-dgl
math/py-hdbscan
math/py-hdmedians
math/py-iminuit
math/py-lrcalc
math/py-mathics
math/py-minorminer
math/py-mnnpy
math/py-ndindex
math/py-numpy
math/py-numpy-stl
math/py-openTSNE
math/py-pdal
math/py-POT
math/py-pplpy
math/py-pyclipper
math/py-pygslodeiv2
math/py-Pyomo
math/py-pyreadr
math/py-pytensor
math/py-python-fcl
math/py-quadprog
math/py-rectangle-packer
math/py-scikit-umfpack
math/py-ssm
math/py-statsmodels
math/py-symengine
misc/py-apache-beam
misc/py-fuzzy
misc/py-mmcv
misc/py-numcodecs
misc/py-pyEDFlib
misc/urh
multimedia/py-av
multimedia/vapoursynth
net-im/py-slixmpp
net/google-cloud-sdk
net/py-DTLSSocket
net/py-libdnet
net/py-netif
net/py-pyenet
net/py-pynmsg
net/py-pypcap
net/py-pyzmq
print/py-fonttools
print/py-uharfbuzz
science/cantera
science/lammps
science/nest
science/py-arch
science/py-dwave-cloud-client
science/py-dwave-greedy
science/py-dwave-inspector
science/py-dwave-networkx
science/py-dwave-tabu
science/py-gsd
science/py-h5py
science/py-libgetar
science/py-MDAnalysis
science/py-molmod
science/py-netCDF4
science/py-openEMS
science/py-OpenMC
science/py-penaltymodel
science/py-phono3py
science/py-phonopy
science/py-pnetcdf
science/py-pymatgen
science/py-PyNE
science/py-pyprecice
science/py-pyqubo
science/py-scikit-learn
science/py-scikit-sparse
science/py-scipy
science/py-symfc
science/py-tensorflow
science/py-trx-python
science/yoda
security/py-gssapi
security/py-krb5
security/py-onlykey
security/py-tinyaes
security/wazuh-manager
textproc/py-cchardet
textproc/py-faust-cchardet
textproc/py-gensim
textproc/py-jarowinkler
textproc/py-petl
textproc/py-pystemmer
textproc/py-spacy
textproc/py-sphinx
textproc/py-wordcloud
www/py-adblock
www/py-aiohttp
www/py-aiohttp-jinja2
www/py-aiohttp-session
www/py-falcon
www/py-http-parser
x11-toolkits/py-kivy

I think we need exp-run. But I want opinion from maintainer python@ before request the exp-run.
Comment 1 Vladimir Druzenko freebsd_committer freebsd_triage 2025-08-24 13:06:32 UTC
Sorry, it was reversed patch.
This is correct:
--- Mk/Uses/python.mk.orig
+++ Mk/Uses/python.mk
@@ -90,16 +90,21 @@
 #      cryptography_test
 #                      - Depend on security/cryptography at test-time.
 #
-#      cython          - Depend on lang/cython at build-time.
+#      cython_legacy   - Depend on lang/cython at build-time.
 #
-#      cython_run      - Depend on lang/cython at run-time.
+#      cython_legacy_run
+#                      - Depend on lang/cython at run-time.
 #
-#      cython_test     - Depend on lang/cython for tests.
+#      cython_legacy_test
+#                      - Depend on lang/cython for tests.
 #
+#      cython
 #      cython3         - Depend on lang/cython3 at build-time.
 #
+#      cython_run
 #      cython3_run     - Depend on lang/cython3 at run-time.
 #
+#      cython_test
 #      cython3_test    - Depend on lang/cython3 for tests.
 #
 #      flavors         - Force creation of flavors for Python 2 and 3 default
@@ -353,6 +358,9 @@ _VALID_PYTHON_FEATURES=     allflavors \
                        cryptography_build \
                        cryptography \
                        cryptography_test \
+                       cython_legacy \
+                       cython_legacy_run \
+                       cython_legacy_test \
                        cython \
                        cython_run \
                        cython_test \
@@ -652,27 +660,27 @@ TEST_DEPENDS+=    ${CRYPTOGRAPHY_DEPENDS}

 # cython* support

-.  if defined(_PYTHON_FEATURE_CYTHON)
+.  if defined(_PYTHON_FEATURE_CYTHON_LEGACY)
 BUILD_DEPENDS+=        ${PYTHON_PKGNAMEPREFIX}cython>=0.29.37<3:lang/cython@${PY_FLAVOR}
 .  endif

-.  if defined(_PYTHON_FEATURE_CYTHON_RUN)
+.  if defined(_PYTHON_FEATURE_CYTHON_LEGACY_RUN)
 RUN_DEPENDS+=  ${PYTHON_PKGNAMEPREFIX}cython>=0.29.37<3:lang/cython@${PY_FLAVOR}
 .  endif

-.  if defined(_PYTHON_FEATURE_CYTHON_TEST)
+.  if defined(_PYTHON_FEATURE_CYTHON_LEGACY_TEST)
 TEST_DEPENDS+= ${PYTHON_PKGNAMEPREFIX}cython>=0.29.37<3:lang/cython@${PY_FLAVOR}
 .  endif

-.  if defined(_PYTHON_FEATURE_CYTHON3)
+.  if defined(_PYTHON_FEATURE_CYTHON) || defined(_PYTHON_FEATURE_CYTHON3)
 BUILD_DEPENDS+=        ${PYTHON_PKGNAMEPREFIX}cython3>=3.1.2:lang/cython3@${PY_FLAVOR}
 .  endif

-.  if defined(_PYTHON_FEATURE_CYTHON3_RUN)
+.  if defined(_PYTHON_FEATURE_CYTHON_RUN) || defined(_PYTHON_FEATURE_CYTHON3_RUN)
 RUN_DEPENDS+=  ${PYTHON_PKGNAMEPREFIX}cython3>=3.1.2:lang/cython3@${PY_FLAVOR}
 .  endif

-.  if defined(_PYTHON_FEATURE_CYTHON3_TEST)
+.  if defined(_PYTHON_FEATURE_CYTHON_TEST) || defined(_PYTHON_FEATURE_CYTHON3_TEST)
 TEST_DEPENDS+= ${PYTHON_PKGNAMEPREFIX}cython3>=3.1.2:lang/cython3@${PY_FLAVOR}
 .  endif
Comment 2 Vladimir Druzenko freebsd_committer freebsd_triage 2025-08-24 13:08:59 UTC
Ports require cython_legacy - uses flavor @py27:
[00:00:56] Skipping science/py-OpenMC@py311 | py311-OpenMC-0.15.0_2: Dependent port science/openmc | openmc-0.15.0_1 ignored
[00:00:56] Skipping science/py-PyNE@py311 | py311-PyNE-0.7.8_3: Dependent port science/openmc | openmc-0.15.0_1 ignored
[00:00:56] Skipping dns/py-dnspython1@py27 | py27-dnspython1-1.16.0_1: Dependent port lang/cython3@py27 | py27-cython3-3.1.2 ignored
[00:00:56] Skipping devel/py-game_sdl2@py27 | py27-game_sdl2-7.4.11_4: Dependent port lang/cython3@py27 | py27-cython3-3.1.2 ignored
[00:00:56] Skipping games/renpy@py27 | renpy-7.4.11_4: Dependent port lang/cython3@py27 | py27-cython3-3.1.2 ignored
Comment 3 Vladimir Druzenko freebsd_committer freebsd_triage 2025-08-24 19:37:28 UTC
Probably require cython_legacy:
science/py-scipy
math/py-rectangle-packer
databases/py-peewee
Comment 4 Vladimir Druzenko freebsd_committer freebsd_triage 2025-08-25 02:55:32 UTC
(In reply to Vladimir Druzenko from comment #3)
devel/py-bsd
Comment 5 Vladimir Druzenko freebsd_committer freebsd_triage 2025-08-25 09:38:16 UTC
(In reply to Vladimir Druzenko from comment #4)
devel/py-fastbencode
graphics/py-PyOpenGL-accelerate
net/py-DTLSSocket
science/py-openEMS
net/py-pyenet textproc/py-spacy
net/py-libdnet graphics/py-djvulibre
graphics/py-pygeos
biology/py-macs2
x11-toolkits/py-kivy
science/nest
Comment 6 Vladimir Druzenko freebsd_committer freebsd_triage 2025-08-25 15:08:38 UTC
dns/py-pydnstable
filesystems/py-libzfs
databases/py-cassandra-driver
science/py-molmod
devel/py-python-dtrace
misc/py-apache-beam
devel/py-thinc
databases/py-pymssql
math/py-pygslodeiv2
devel/py-game_sdl2
math/py-python-fcl
devel/py-pymtbl

Preparing patch…
Comment 7 Charlie Li freebsd_committer freebsd_triage 2025-08-25 15:12:51 UTC
This is not in progress as it has not been fully evaluated yet. Not exactly keen on the wholesale variable changes yet, and some of the consumers listed are wrong.
Comment 8 Vladimir Druzenko freebsd_committer freebsd_triage 2025-08-25 18:01:55 UTC
(In reply to Charlie Li from comment #7)
"in progress" - I'm preparing patches and testing.
Comment 9 Vladimir Druzenko freebsd_committer freebsd_triage 2025-08-26 00:25:18 UTC
(In reply to Vladimir Druzenko from comment #2)
science/py-OpenMC and science/py-PyNE - exclude.

But keep:
dns/py-dnspython1
devel/py-game_sdl2
games/renpy
Comment 10 Vladimir Druzenko freebsd_committer freebsd_triage 2025-08-27 01:17:41 UTC
graphics/py-scikit-image
math/py-dgl
Comment 11 Vladimir Druzenko freebsd_committer freebsd_triage 2025-08-27 02:19:33 UTC
science/cantera
textproc/py-gensim
net/py-netif
devel/brz
Comment 12 Vladimir Druzenko freebsd_committer freebsd_triage 2025-08-27 13:26:48 UTC
Created attachment 263270 [details]
Make cython3 default v1

math/py-mathics

"Local" exp-run in poudriere 14.3 amd64 passed without errors.
Comment 13 Thierry Thomas freebsd_committer freebsd_triage 2025-09-02 21:20:31 UTC
(In reply to Vladimir Druzenko from comment #12)

math/py-mathics could switch to cython3, but only if graphics/py-scikit-image switch also to cython3, because these two ports have cython_run / cython3_run.
Comment 14 Vladimir Druzenko freebsd_committer freebsd_triage 2025-09-02 21:23:41 UTC
(In reply to Thierry Thomas from comment #13)
AFAIR, graphics/py-scikit-image build fails with cython3.
Comment 15 Thierry Thomas freebsd_committer freebsd_triage 2025-09-02 21:30:23 UTC
(In reply to Vladimir Druzenko from comment #14)

graphics/py-scikit-image should be upgraded, from 0.19.3 to 0.25.2. ATM there is many deprecation warnings against numpy.
Comment 16 commit-hook freebsd_committer freebsd_triage 2025-09-21 12:53:21 UTC
A commit in branch main references this bug:

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

commit cfa907c04b97dab3045db7758b0c72fe2d3f079d
Author:     Max Brazhnikov <makc@FreeBSD.org>
AuthorDate: 2025-09-21 12:43:59 +0000
Commit:     Max Brazhnikov <makc@FreeBSD.org>
CommitDate: 2025-09-21 12:51:32 +0000

    graphics/py-scikit-image: Update to 0.25.2

    The previous updates were blocked due to outdated setuptools in the ports-tree.
    Upstream has swithched to meson build meanwhile, making this update possible.

    - Clean up runtime dependencies, require only bare mininum.
    - Switch to PYPI.

    PR:             289075

 graphics/py-scikit-image/Makefile                  | 30 +++++------
 graphics/py-scikit-image/distinfo                  |  6 +--
 .../py-scikit-image/files/patch-pyproject.toml     | 61 ++++++++--------------
 3 files changed, 39 insertions(+), 58 deletions(-)
Comment 17 Vladimir Druzenko freebsd_committer freebsd_triage 2025-10-20 17:10:15 UTC
Created attachment 264746 [details]
v3

Friendly ping.
Comment 18 Po-Chuan Hsieh freebsd_committer freebsd_triage 2025-10-25 19:03:10 UTC
This is planned to use cython 3.x by default. That's why I committed ports 150c0018fdfece47d43cc508378c8faf26046149.

However, it is planned in a different way. My original plan is as follows:

1. Request exp-run for a patch which includes the following changes to identify all ports that do not work with cython 3.x.
(1) Update lang/cython to 3.1.4
(2) Update Mk/Uses/python.mk to align _PYTHON_FEATURE_CYTHON* with _PYTHON_FEATURE_CYTHON3*

2. For the failed ports, check if a newer version or commit fixes the problem.
   See also: https://cython.readthedocs.io/en/latest/src/userguide/migrating_to_cy30.html

3. Update/fix these ports to support cython 3.x.

4. Retire USE_PYTHON=cython3*.

In my personal opinion, I do not support this change at this time.

Additionally, I don't think it is a good idea to have 3 sets of knobs (cython_legacy, cython and cython3) simutanously.
Comment 19 commit-hook freebsd_committer freebsd_triage 2025-11-01 23:30:40 UTC
A commit in branch main references this bug:

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

commit fbbf54f78ab6b4a946da9135a87ae3e94bdbba08
Author:     Matthias Andree <mandree@FreeBSD.org>
AuthorDate: 2025-11-01 23:24:40 +0000
Commit:     Matthias Andree <mandree@FreeBSD.org>
CommitDate: 2025-11-01 23:29:33 +0000

    lang/cython: mark DEPRECATED, recommend cython3

    PR:             281145
    PR:             289075

 lang/cython/Makefile | 3 +++
 1 file changed, 3 insertions(+)
Comment 20 Matthias Andree freebsd_committer freebsd_triage 2025-11-01 23:44:47 UTC
*** Bug 281145 has been marked as a duplicate of this bug. ***
Comment 21 Vladimir Druzenko freebsd_committer freebsd_triage 2025-11-02 00:30:38 UTC
(In reply to Po-Chuan Hsieh from comment #18)
This migration can be done in different ways.
The patch I proposed is a first step. Its goal is to make cython3 the default with minimal port changes.
2. The next step will be to replace cython3 with cython everywhere and remove cython3 from Mk/Uses/python.mk.
3. Next, in a quiet mode, correct the build and work of the ports remaining on the old version of the cython.

2 and 3 can be done in parallel.
Comment 22 Oclair 2025-11-03 14:49:45 UTC
Yea I just got a few ports which required py311-cython and py311-cython3 hopefully it will get sorted soon...



Installing py311-cython3-3.1.6...
pkg-static: py311-cython3-3.1.6 conflicts with py311-cython-0.29.37_2 (installs files into the same place).  Problematic file: /usr/local/bin/cygdb-3.11
*** Error code 1

Stop.
make[1]: stopped in /usr/ports/lang/cython3
Comment 23 commit-hook freebsd_committer freebsd_triage 2025-11-03 16:32:09 UTC
A commit in branch main references this bug:

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

commit 81890a5bf39e7f41f63d68beb13129df3bc79278
Author:     Muhammad Moinur Rahman <bofh@FreeBSD.org>
AuthorDate: 2025-11-03 16:22:13 +0000
Commit:     Muhammad Moinur Rahman <bofh@FreeBSD.org>
CommitDate: 2025-11-03 16:31:34 +0000

    devel/py-bsd: Mark DEPRECATED

    - Upstream unmaintained
    - Fails to build on FreeBSD 15
    - Requires older cython version
    - Set EXPIRATION_DATE 2025-12-04

    PR:             289075

 devel/py-bsd/Makefile | 2 ++
 1 file changed, 2 insertions(+)
Comment 24 commit-hook freebsd_committer freebsd_triage 2025-11-03 16:32:16 UTC
A commit in branch main references this bug:

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

commit 61a4ee62c17399ca7ee7601785f683cb2c6917dc
Author:     Muhammad Moinur Rahman <bofh@FreeBSD.org>
AuthorDate: 2025-11-03 15:54:34 +0000
Commit:     Muhammad Moinur Rahman <bofh@FreeBSD.org>
CommitDate: 2025-11-03 16:31:33 +0000

    dns/py-dnspython: Remove stale dependency on cython

    PR:             289075

 dns/py-dnspython/Makefile | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
Comment 25 commit-hook freebsd_committer freebsd_triage 2025-11-03 16:32:20 UTC
A commit in branch main references this bug:

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

commit ffc70a1ece2175f7d344edf8f7d610fc8916900d
Author:     Muhammad Moinur Rahman <bofh@FreeBSD.org>
AuthorDate: 2025-11-03 16:26:42 +0000
Commit:     Muhammad Moinur Rahman <bofh@FreeBSD.org>
CommitDate: 2025-11-03 16:31:35 +0000

    multimedia/py-av: Switch to cython3

    PR:             289075

 multimedia/py-av/Makefile | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
Comment 26 commit-hook freebsd_committer freebsd_triage 2025-11-03 16:32:24 UTC
A commit in branch main references this bug:

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

commit 8f89b4df65cfd7e30c52f1ae3870dd3d96d830b6
Author:     Muhammad Moinur Rahman <bofh@FreeBSD.org>
AuthorDate: 2025-11-03 16:19:25 +0000
Commit:     Muhammad Moinur Rahman <bofh@FreeBSD.org>
CommitDate: 2025-11-03 16:31:34 +0000

    net/py-netif: Mark DEPRECATED

    - Upstream unmaintained
    - Fails to build on FreeBSD 14 and 15
    - Requires older cython version
    - Set EXPIRATION_DATE 2025-12-03

    PR:             289075

 net/py-netif/Makefile | 3 +++
 1 file changed, 3 insertions(+)
Comment 27 commit-hook freebsd_committer freebsd_triage 2025-11-03 16:32:27 UTC
A commit in branch main references this bug:

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

commit 83767616403d550b658fdb3ac3a5b6d6e5b7c780
Author:     Muhammad Moinur Rahman <bofh@FreeBSD.org>
AuthorDate: 2025-11-03 16:30:45 +0000
Commit:     Muhammad Moinur Rahman <bofh@FreeBSD.org>
CommitDate: 2025-11-03 16:31:36 +0000

    databases/py-unqlite: Switch to python3

    PR:             289075

 databases/py-unqlite/Makefile | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
Comment 28 commit-hook freebsd_committer freebsd_triage 2025-11-06 06:24:02 UTC
A commit in branch main references this bug:

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

commit 5a4d8b3e46e57ea165251b41f147e49b72d22498
Author:     Don Lewis <truckman@FreeBSD.org>
AuthorDate: 2025-11-06 05:48:34 +0000
Commit:     Don Lewis <truckman@FreeBSD.org>
CommitDate: 2025-11-06 06:08:19 +0000

    dns/py-pydnstable: Fix build with cython3

    PR:             289075
    Sponsored by:   DomainTools LLC

 dns/py-pydnstable/Makefile                       |  2 +-
 dns/py-pydnstable/files/patch-dnstable.pxi (new) | 10 ++++++++++
 2 files changed, 11 insertions(+), 1 deletion(-)
Comment 29 commit-hook freebsd_committer freebsd_triage 2025-11-06 06:24:10 UTC
A commit in branch main references this bug:

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

commit 5c1857537d4517a230cf23680dfae345a0b93e66
Author:     Don Lewis <truckman@FreeBSD.org>
AuthorDate: 2025-11-06 05:37:29 +0000
Commit:     Don Lewis <truckman@FreeBSD.org>
CommitDate: 2025-11-06 06:08:18 +0000

    devel/py-pymtbl: Fix build with cython3

    PR:             289075
    Sponsored by:   DomainTools LLC

 devel/py-pymtbl/Makefile                   |  2 +-
 devel/py-pymtbl/files/patch-mtbl.pxi (new) | 10 ++++++++++
 2 files changed, 11 insertions(+), 1 deletion(-)
Comment 30 Max Brazhnikov freebsd_committer freebsd_triage 2025-11-09 15:01:35 UTC
*** Bug 290913 has been marked as a duplicate of this bug. ***
Comment 31 Joel Rodriguez 2025-11-09 17:56:29 UTC
The Importance should probably be upgraded to something higher than "affects only me".

In addition, the dev(s) should probably be prepared for the constant updates and revisions to phthon/cpython as they have come fast and furious.

Suggestions that I alternate between installing cython2 and cython3 based on which port uses what is absurd. All the remaining ports(that I use) that use cython have updated to cython3 with py-numpy one of the last laggards.

Just my two cents to some absurd advice given to me on my dup bug report.
Comment 32 Max Brazhnikov freebsd_committer freebsd_triage 2025-11-09 19:24:26 UTC
(In reply to Vladimir Druzenko from comment #21)
Vladimir, could you remove cython_legacy from your patch, update cython to the latest version (or sync with cython3) and test how many ports fail with it?
Comment 33 Vladimir Druzenko freebsd_committer freebsd_triage 2025-11-09 23:35:05 UTC
(In reply to Max Brazhnikov from comment #32)
Current list is:
biology/py-macs2
databases/py-cassandra-driver
databases/py-peewee
databases/py-pymssql
devel/brz
devel/py-bsd
devel/py-fastbencode
devel/py-game_sdl2
devel/py-python-dtrace
devel/py-spyder-kernels
devel/py-streamparse
devel/py-thinc
dns/py-dnspython1
filesystems/py-libzfs
graphics/py-PyOpenGL-accelerate
graphics/py-djvulibre
graphics/py-pygeos
math/py-dgl
math/py-pygslodeiv2
math/py-python-fcl
math/py-rectangle-packer
misc/py-apache-beam
net/py-DTLSSocket
net/py-libdnet
net/py-netif
net/py-pyenet
science/cantera
science/nest
science/py-molmod
science/py-openEMS
science/py-scipy
science/py-tensorflow
textproc/py-gensim
textproc/py-spacy
x11-toolkits/py-kivy
Comment 34 Max Brazhnikov freebsd_committer freebsd_triage 2025-11-10 20:37:30 UTC
(In reply to Vladimir Druzenko from comment #33)
Great!

Vladimir if you are confident about the results of your local exp-run, I propose the following upgrade plan:

1) copy lang/cython to lang/cython029 and mark it deprecated (without expiration date)
2) deprecate devel/py-python-dtrace and science/py-molmod - the only ports which require cython029 at runtime. Luckily, they are leaf ports, no ports depend on them.
3) switch USE_PYTHON=cython ports to BUILD_DEPENDS+= lang/cython029 or to USE_PYTHON=cython_legacy (I prefer the former: no helpers for outdated stuff!)
4) update lang/cython to 3.1.x
5) USE_PYTHON=cython3 -> USE_PYTHON=cython
6) pass lang/cython to python@

And push to the main after review (please upload patch to the Phabricator!)
Comment 35 commit-hook freebsd_committer freebsd_triage 2025-11-13 06:42:46 UTC
A commit in branch main references this bug:

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

commit d8cb109936dfe9cce577cf82ea9d35ae164979c9
Author:     Kai Knoblich <kai@FreeBSD.org>
AuthorDate: 2025-11-13 06:40:20 +0000
Commit:     Kai Knoblich <kai@FreeBSD.org>
CommitDate: 2025-11-13 06:40:20 +0000

    devel/py-intbitset: Switch to cython3

    * While I'm here: Switch to the PEP517 buildframework as well and bump
      PORTREVISION due package change.

    PR:             289075
    Reported by:    vvd

 devel/py-intbitset/Makefile | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)
Comment 36 mail_of_sergey 2025-11-14 15:01:54 UTC
===>   Registering installation for py312-cython-0.29.37_2 as automatic
Installing py312-cython-0.29.37_2...
pkg-static: py312-cython-0.29.37_2 conflicts with py312-cython3-3.1.6 (installs files into the same place).  Problematic file: /usr/local/bin/cygdb-3.12
*** Error code 1
Comment 37 mail_of_sergey 2025-11-22 14:54:45 UTC
py312-orjson-3.10.15_7 depends on package: py312-cython>=0.29.37<3
Comment 38 Thierry Thomas freebsd_committer freebsd_triage 2025-11-22 15:20:09 UTC
(In reply to mail_of_sergey from comment #37)
This port is lagging (3.10.15).
Release 3.11.1 added support for CPython 3.14.
Comment 39 Max Brazhnikov freebsd_committer freebsd_triage 2025-11-26 19:33:19 UTC
(In reply to Vladimir Druzenko from comment #33)
numpy-1.26.4 does not support cython>=3.1, so the list is incomplete
Comment 40 commit-hook freebsd_committer freebsd_triage 2025-12-08 11:19:47 UTC
A commit in branch main references this bug:

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

commit bb42964ccea8b9a204c061bcdbe305b752783b1d
Author:     Kai Knoblich <kai@FreeBSD.org>
AuthorDate: 2025-12-08 11:18:10 +0000
Commit:     Kai Knoblich <kai@FreeBSD.org>
CommitDate: 2025-12-08 11:18:10 +0000

    devel/py-orjson: Update to 3.11.4

    * Switch to PyPI because it's the preferred source for Python ports.

    * Remove USE_PYTHON=cython instead of setting it to USE_PYTHON=cython3,
      because Cython is not needed at all. [1]

    * Strip shared library.

    Changelog since 3.10.15:

    https://github.com/ijl/orjson/blob/3.11.4/CHANGELOG.md

    PR:             291423, 289075 [1]
    Approved by:    Ivan Rozhuk (maintainer)

 devel/py-orjson/Makefile        |  13 +++--
 devel/py-orjson/Makefile.crates |  62 +++++++++++---------
 devel/py-orjson/distinfo        | 126 +++++++++++++++++++++-------------------
 3 files changed, 108 insertions(+), 93 deletions(-)