Cython is a Python compiler that makes writing C extensions for Python as easy
as Python itself. Cython is based on Pyrex, but supports more cutting edge
functionality and optimizations.
Cython translates Python code to C/C++ code, but additionally supports calling C
functions and declaring C types on variables and class attributes. This allows
the compiler to generate very efficient C code from Cython code.
This makes Cython the ideal language for wrapping external C libraries, and for
fast C modules that speed up the execution of Python code.
NOTE: If this package has multiple flavors (see below), then use one of them instead of the name specified above. NOTE: This is a Python port. Instead of py312-cython listed in the above command, you can pick from the names under the Packages section.
Affects: users of lang/cython* and USE_PYTHON=cython*
Author: sunpoet@FreeBSD.org
Reason:
lang/cython has been updated to 3.2.4.
To support ports that still require the legacy 0.x branch, lang/cython0
has been added (version 0.29.37). lang/cython3 has been removed as it
is now redundant with lang/cython.
Port maintainers should note the following changes:
- Ports requiring Cython 0.x now use USE_PYTHON=cython0{,_run}.
- Ports previously using cython3{,_run,_test} now use
USE_PYTHON=cython{,_run,_test}.
Port Moves
port moved here from lang/cython3 on 2026-01-15 REASON: Remove obsoleted port. Use lang/cython instead
lang/cython: limit to Python 3.12
Broken on 3.13, upstream concluded that many extensive changes are
needed to properly support Python 3.13 considering cython 0.29's
strict maintenance mode state.
https://github.com/cython/cython/pull/6270
python: bump all USE_PYTHON=distutils consumers after RUN_DEPENDS removal
Any missed ports, feel free to bump.
Any ports that need setuptools at runtime can have the devel/py-setuptools
manually added back to RUN_DEPENDS, but understand that this practice
is deprecated; see CHANGES for details.
Mk/Uses/python.mk: Switch to Python 3.11 as default
The switch is a collective effort of Wen Heping, Alastair Hogge,
Muhammad Moinur Rahman, Antoine Brodin, Vladimir Druzenko,
Thomas Zander, Daniel Engberg et al.
PR: 275494
Tested by: antoine (multiple exp-runs)
With hat: python
Remove WWW entries moved into port Makefiles
Commit b7f05445c00f has added WWW entries to port Makefiles based on
WWW: lines in pkg-descr files.
This commit removes the WWW: lines of moved-over URLs from these
pkg-descr files.
Approved by: portmgr (tcberner)
Add WWW entries to port Makefiles
It has been common practice to have one or more URLs at the end of the
ports' pkg-descr files, one per line and prefixed with "WWW:". These
URLs should point at a project website or other relevant resources.
Access to these URLs required processing of the pkg-descr files, and
they have often become stale over time. If more than one such URL was
present in a pkg-descr file, only the first one was tarnsfered into
the port INDEX, but for many ports only the last line did contain the
port specific URL to further information.
There have been several proposals to make a project URL available as
a macro in the ports' Makefiles, over time.
(Only the first 15 lines of the commit message are shown above )
lang: remove 'Created by' lines
A big Thank You to the original contributors of these ports:
* Aaron Dalton <aaron@FreeBSD.org>
* Adam Weinberger <adamw@FreeBSD.org>
* Akinori MUSHA aka knu <knu@idaemons.org>
* Alex Dupre <ale@FreeBSD.org>
* Alexey Dokuchaev <danfe@FreeBSD.org>
* Alonso Cardenas Marquez <acm@FreeBSD.org>
* Andreas Klemm <andreas@klemm.gtn.com>
* Andrew Pantyukhin <infofarmer@FreeBSD.org>
* Andrey Zakhvatov
* Anton Berezin <tobez@FreeBSD.org>
* Anton Berezin <tobez@tobez.org>
(Only the first 15 lines of the commit message are shown above )
Mk/bsd.default-versions.mk: chase the switch to Python 3.9
Following the rules of
<https://wiki.freebsd.org/Python#Steps_to_switch_the_Python_default_version>
PR: 261703
Fix CONFLICTS entries of multiple ports
There have been lots of missing CONFLICTS_INSTALL entries, either
because conflicting ports were added without updating existing ports,
due to name changes of generated packages, due to mis-understanding
the format and semantics of the conflicts entries, or just due to
typoes in package names.
This patch is the result of a comparison of all files contained in
the official packages with each other. This comparison was based on
packages built with default options and may therefore have missed
further conflicts with optionally installed files.
Where possible, version numbers in conflicts entries have been
generalized, some times taking advantage of the fact that a port
(Only the first 15 lines of the commit message are shown above )
lang/cython-devel: add port
Add devel version of cython. Apart from that 3.x cython branch is
where all the development goes on, 0.29.x only getting backported
bugfixes, this is currently the only version which supports python
3.11. Because of that, wire USE_PYTHON=cython to cython-devel for
python >= 3.11 in Uses/python.mk as well and limit supported python
versions with <= 3.10 for cython.
PR: 259898
Approved by: python (lwhsu)
*: Bump a few ports after the Python 3.7 to 3.8 switchover
Bump the PORTREVISION of the following ports as the concurrent symlinks
change with a new default version of Python:
* devel/py-setuptools
* lang/cython
* math/py-numpy
This is a follow-up to 6cd3db2d03cc544c5893e41dbbacd2000fcbd35a .
PR: 253815
Approved by: kai (python, maintainer)
Convert Python ports to FLAVORS.
Ports using USE_PYTHON=distutils are now flavored. They will
automatically get flavors (py27, py34, py35, py36) depending on what
versions they support.
There is also a USE_PYTHON=flavors for ports that do not use distutils
but need FLAVORS to be set. A USE_PYTHON=noflavors can be set if
using distutils but flavors are not wanted.
A new USE_PYTHON=optsuffix that will add PYTHON_PKGNAMESUFFIX has been
added to cope with Python ports that did not have the Python
PKGNAMEPREFIX but are flavored.
USES=python now also exports a PY_FLAVOR variable that contains the
(Only the first 15 lines of the commit message are shown above )
The Cython language makes writing C extensions for the Python language
as easy as Python itself. Cython is a source code translator based on
the well-known Pyrex, but supports more cutting edge functionality and
optimizations.
The Cython language is very close to the Python language (and most
Python code is also valid Cython code), but Cython additionally supports
calling C functions and declaring C types on variables and class
attributes. This allows the compiler to generate very efficient C code
from Cython code.
This makes Cython the ideal language for writing glue code for external
C libraries, and for fast C modules that speed up the execution of
Python code.
WWW: http://www.cython.org/
PR: ports/128722
Submitted by: Wen Heping <wenhping at gmail.com>