python310Interpreted object-oriented programming language
3.10.21langΣ=4 3.10.21Version of this port present on the latest quarterly branch.
DEPRECATED: Python 3.10 is an old version in the last year of security support, see to it that your favorite ports get updated for newer Python releases in due time This port expired on: 2026-09-30
===> The following configuration options are available for python310-3.10.21:
DEBUG=off: Build with debugging support
IPV6=on: IPv6 protocol support
LIBMPDEC=on: Use libmpdec from ports instead of bundled version
LTO=off: Use Link-Time Optimization
NLS=on: Enable gettext support for the locale module
PYMALLOC=on: Enable specialized mallocs
====> Hash Algorithm (PEP-456): you can only select none or one of them
FNV=off: Modified Fowler-Noll-Vo Algorithm
SIPHASH=off: SipHash24 Algorithm
===> Use 'make config' to modify these settings
port deleted on 2026-09-30 REASON: Python 3.10 is an old version in the last year of security support, see to it that your favorite ports get updated for newer Python releases in due time
lang/python31{0,1,2}: reroll PATCHFILES after repository growth
Each commit checksum now shows one additional character, but the
diff contents are identical.
PR: 295595
devel/libtextstyle, devel/gettext*: Update to 1.0
devel/gettext-tools: Use external libunistring and libxml2.
lang/python*: Remove dependency on gettext-tools. It isn't used and
it is gettext-tools that depends on python now.
PR: 293963
Exp-run by: antoine
Revert "Reapply "lang/python31[012]: deprecate 2026-03-31""
This reverts commit a132acab8736bad2fa59e941d5d77da4ea7688a0.
This commit is disrespectful for people trying to make the ports tree work with
version 3.12
With hat: pkgmgr
Revert "lang/python31[012]: deprecate 2026-03-31"
The latest 3.12 release contains the referenced security fixes. The
other two branches are not EOL.
PR: 291609
With hat: python
Requested by: antoine
This reverts commit 66173037774d8648a59e30b424692ae80dbc20b3.
lang/python31[012]: deprecate 2026-03-31
Since the current Python upstream maintainers have not yet released
security fix releases to match 3.14.2 and 3.13.11, meaning that we have
about three unfixed security issues per 3.12/3.11/3.10 release, and the
current FreeBSD python@ team is unwilling to take approved upstream
patches individually (see PR), we need to expedite the removal of
vulnerable versions and the transition to 3.13/3.14. Deprecate all
"security support" releases of Python that are not in the bugfix phase.
PR: 291609
python.mk: rename PYTHON_EXT_SUFFIX to PYTHON_TAG, document, etc
EXT_SUFFIX, according to PEP 3149, refers to the full tag and
extension for compiled extension module objects, eg .cpython-311.so,
.cpython-313t.so, etc. We do not use the correct semantic meaning,
and this usage becomes ambiguous and confusing when tags do not
match between bytecode and compiled extension module objects.
Rename our PYTHON_EXT_SUFFIX to PYTHON_TAG to align with PEP 3147's
specification of a magic tag, which consists of implementation name
and shorthand version only. This is meant for bytecode and other
files containing this tag in their filename that do not depend on
a specific Python ABI for the same version. Chase all existing
consumers.
(Only the first 15 lines of the commit message are shown above )
*/*: Sunset 12.4-RELEASE/12-STABLE from ports tree
- Remove all references to defunct ARCH arm
- Remove all references to defunct ARCH sparc64
- Remove x11-drivers/xf86-video-sunffb which requires defunct sparc64
ARCH
- Remove sysutils/afbinit requires defunct sparc64 ARCH
- Remove all references to bktr driver
- Remove all references to defunct FreeBSD_12
- Remove all references to OSVERSION/OSREL corresponding to 12
- Remove conditionals in Mk/Uses/cabal.mk
- Remove sparc reference from Mk/Uses/qt-dist.mk
- Remove BROKEN_sparc64/NOT_FOR_ARCH=sparc64
- Remove BROKEN_FreeBSD_12* from:
- Remove OpenSSL patches from:
- Remove conditional flags for OSVERSION >= 1300000 to fixed flags.
Also move conditional flags for non sparc64/arm ARCH to fixed flags.
Reviewed by: brooks, jbeich, rene, salvadore
Differential Revision: https://reviews.freebsd.org/D42068
lang/python310: add LibreSSL support
LibreSSL 3.6 and later are fully compatible with PEP-644 for the
ssl and hmac modules, but not hashlib due to missing SHA-3/SHAKE,
BLAKE2 and scrypt. Partially reverts
https://github.com/python/cpython/commit/39258d3595300bc7b952854c915f63ae2d4b9c3e
for _hashopenssl.c only to allow LibreSSL to work.
(Python 3.11 and later need a different implementation due to
configure-time checking)
lang/python: restore USES=python variables and SUB_LIST (no-op)
Has been a to do item for time. These are independent from but used
by the bytecode trigger.
lang/python: Revert "add bytecode trigger"
This reverts commit c17ddfbf66e2801ec620d49979aca3d7077d7002.
This causes breakage on several ports, and the next iteration
requires a full exp-run. See:
Differential Revision: https://reviews.freebsd.org/D34739
lang/python3: allow using LTO on powerpc64
It was recently fixed and will be available in 13.2-RELEASE.
Since LTO is not enabled by default, it's ok to make it available.
lang/python: add bytecode trigger
Facilitates compiling, writing and removing bytecode files (.pyc)
in site-packages after all pkg transactions have been completed.
Technical details: https://wiki.freebsd.org/Python/CompiledPackages
Fixes reports of Python port builds as root failing on filesystem
violations due to bytecode file writes where the port did not include
them in the package.
For those ports/packages that currently package bytecode, some
checksum mismatches on those files may occur. This is harmless and
will be rectified, in large as part of a USE_PYTHON=distutils
overhaul to reduce churn.
While here, implement a long-standing todo item of letting lang/python
ports use python.mk bits. Not only does this obviate duplicate
variables in each Makefile, but SUB_LIST (also added) is used for
these triggers.
Co-authored by: tcberner
Approved by: tcberner (mentor)
Differential Revision: https://reviews.freebsd.org/D34739
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/python310: Fix disabling uuid.h detection and stage-qa error
- Bump PORTREVISION for package change
====> Running Q/A tests (stage-qa)
Error: /usr/local/lib/python3.10/lib-dynload/_uuid.cpython-310.so is linked to
/usr/local/lib/libuuid.so.1 from misc/e2fsprogs-libuuid but it is not declared
as a dependency
Warning: you need LIB_DEPENDS+=libuuid.so:misc/e2fsprogs-libuuid
...
Warning: Possible REINPLACE_CMD issues:
- - REINPLACE_CMD ran, but did not modify file contents: setup.py
lang/python3*: add LTO option and enable by default everywhere except powerpc64
and riscv64
PR: 261974
Approved by: python (koobs got his commit bit revoked during review process)
lang/python3(6|7|8|9|10|11): work around unwanted multiarch detection again
In ports 6bef09666460 we patched out python's erroneous multiarch
detection using sed, but upstream changed the surrounding parts in the
configure script to defeat the regex we were using. Update the regex to
cope with the change.
PR: 259896, 258377
MFH: 2021Q4
Approved by: maintainer timeout (9 days)
lang/python3X: Fix library installation
The Python ports install the library libpython3.x.so under $PREFIX/lib,
and they set USE_LDCONFIG, but these libraries are not registered, due
to a missing symlink, and they are not found by `ldconfig -r'.
This commit make them to be registered, and for some reason it helps the
dynamic linker to find them, and this allows to fix an error in
french/aster. It also helps to fix errors in newer releases of math/sage
(not yet ready to be committed due to other problems).
No exp-run, but it has been tested with many ports on several platforms.
PR: 257864
Approved by: koobs (Python team)
MFH: 2021Q4
lang/python3([6-9]|10): disable detection of multiarch
It breaks with clang >= 13, which adds a major.minor version number in
-print-multiarch output, and the dot confuses Python:
ModuleNotFoundError: No module named
'_sysconfigdata__freebsd14_x86_64-unknown-freebsd14'
Since we do not support multiarch, and the configure script has no way
to disable the multiarch check, stub it out during post-patch.
PR: 258377
Approved by: maintainer timeout (2 weeks)
MFH: 2021Q3