diff --git a/lang/python-doc-html/distinfo b/lang/python-doc-html/distinfo
index c031b3fb4f36..2c3acc0712ee 100644
--- a/lang/python-doc-html/distinfo
+++ b/lang/python-doc-html/distinfo
@@ -1,41 +1,41 @@
-TIMESTAMP = 1715647907
+TIMESTAMP = 1726190396
SHA256 (python/python-2.7.18-docs-html.tar.bz2) = 20445e9a571cacdd350f702f0980e4dc559b6ff81f1d69affe9b0a862fef2f0e
SIZE (python/python-2.7.18-docs-html.tar.bz2) = 4634932
SHA256 (python/python-2.7.18-docs-pdf-a4.tar.bz2) = dbac6953e48aac341351067ba0938393e415b10bf48ac8cbbc7247deaf13ab67
SIZE (python/python-2.7.18-docs-pdf-a4.tar.bz2) = 11486967
SHA256 (python/python-2.7.18-docs-pdf-letter.tar.bz2) = 565971040db8994630fd5c2447e45c38428cfb22a7845cd2620160daf2c60b1e
SIZE (python/python-2.7.18-docs-pdf-letter.tar.bz2) = 11486126
SHA256 (python/python-2.7.18-docs-text.tar.bz2) = c86f5b5a2bd8f90158523efd350198d6cde7353965ef5a6ca5e54e5174af47f2
SIZE (python/python-2.7.18-docs-text.tar.bz2) = 1631043
SHA256 (python/python-3.10.14-docs-html.tar.bz2) = 7a8e60df7e37fa45e78615a19f599965785e50cd7457622e071e7e0674ae1685
SIZE (python/python-3.10.14-docs-html.tar.bz2) = 7441459
SHA256 (python/python-3.10.14-docs-pdf-a4.tar.bz2) = 01d839915685573d9f30aa4b8b629ef39d8e76b5318b8d3d4f4f07c192677595
SIZE (python/python-3.10.14-docs-pdf-a4.tar.bz2) = 16529840
SHA256 (python/python-3.10.14-docs-pdf-letter.tar.bz2) = 7494eab5c91c6a6d3363e8985ef845aafe9d30237e7660690ee53b95ec180c39
SIZE (python/python-3.10.14-docs-pdf-letter.tar.bz2) = 16633899
SHA256 (python/python-3.10.14-docs-text.tar.bz2) = 964273be79309c6f9262d38e981ca61d5557381cd555cc761b5aab8083119a46
SIZE (python/python-3.10.14-docs-text.tar.bz2) = 2687433
-SHA256 (python/python-3.11.9-docs-html.tar.bz2) = 660a56d8349491f74650a28e3520019f9385b9ee9fd154a45e3dad396e3426df
-SIZE (python/python-3.11.9-docs-html.tar.bz2) = 7996912
-SHA256 (python/python-3.11.9-docs-pdf-a4.tar.bz2) = 6a543d24741bb408bde203d63cc0366b5ed58fc3240bf5a7f47f68462bf834a9
-SIZE (python/python-3.11.9-docs-pdf-a4.tar.bz2) = 17326817
-SHA256 (python/python-3.11.9-docs-pdf-letter.tar.bz2) = 680e7d73859519c6fa6eb3e589ba4178848314b36505c86001525df935b00e34
-SIZE (python/python-3.11.9-docs-pdf-letter.tar.bz2) = 17464626
-SHA256 (python/python-3.11.9-docs-text.tar.bz2) = 71a8478f734ba7a08d7f8b99600e044a4407855d0e64a5dde8b42f1f8ffa7bb5
-SIZE (python/python-3.11.9-docs-text.tar.bz2) = 2830346
+SHA256 (python/python-3.11.10-docs-html.tar.bz2) = 6eeed16865c386679def105055b2fc09263c9ac4af500b4cecb024e4943cf80e
+SIZE (python/python-3.11.10-docs-html.tar.bz2) = 7988162
+SHA256 (python/python-3.11.10-docs-pdf-a4.tar.bz2) = 0ff73263168f99693e4f87d379b1a55b8dc95e41faa8208a24ceab47029acfa5
+SIZE (python/python-3.11.10-docs-pdf-a4.tar.bz2) = 17355973
+SHA256 (python/python-3.11.10-docs-pdf-letter.tar.bz2) = d35c03be5b6634c770ebd31e81c68907879cafd34403a11075c6444365b6acf6
+SIZE (python/python-3.11.10-docs-pdf-letter.tar.bz2) = 17488268
+SHA256 (python/python-3.11.10-docs-text.tar.bz2) = 34aae592c0f3a0af28f633d166fcc45d3c53f001ae04287edd49925a4d1f1fca
+SIZE (python/python-3.11.10-docs-text.tar.bz2) = 2826502
SHA256 (python/python-3.8.19-docs-html.tar.bz2) = 851354a91a095a60e40305d1eb186a723df16fe76697122a949e153689d7a4c0
SIZE (python/python-3.8.19-docs-html.tar.bz2) = 6717842
SHA256 (python/python-3.8.19-docs-pdf-a4.tar.bz2) = c4b400f8aacc5033a63dd30af71b367ee7fb21e88f7881c0fdf1ce4df9b9bbdf
SIZE (python/python-3.8.19-docs-pdf-a4.tar.bz2) = 15122271
SHA256 (python/python-3.8.19-docs-pdf-letter.tar.bz2) = 343eeef1072fd6a64031ffb98f46d3cf27da6a179a8c78102e68003b2097b5e8
SIZE (python/python-3.8.19-docs-pdf-letter.tar.bz2) = 15227841
SHA256 (python/python-3.8.19-docs-text.tar.bz2) = 9b3ab571624a0dfdd34e3f31c91a1b62b9663de60b3ca3059a7990d4cc5c3417
SIZE (python/python-3.8.19-docs-text.tar.bz2) = 2443089
SHA256 (python/python-3.9.19-docs-html.tar.bz2) = 01f1f0c6eecba790f314cd1ee19e3832b0a79bfa5592af92a2842ef7afddee33
SIZE (python/python-3.9.19-docs-html.tar.bz2) = 6983522
SHA256 (python/python-3.9.19-docs-pdf-a4.tar.bz2) = cb95083b75fd945d897f2ca0dd87cec5ee594e45095165d43bd0eeb4b9716174
SIZE (python/python-3.9.19-docs-pdf-a4.tar.bz2) = 15742648
SHA256 (python/python-3.9.19-docs-pdf-letter.tar.bz2) = 09f9a1fbc25adbb510e24e8295f240a3e64ebe9388cbccc9212450f5230edeb7
SIZE (python/python-3.9.19-docs-pdf-letter.tar.bz2) = 15847848
SHA256 (python/python-3.9.19-docs-text.tar.bz2) = 058caf761f2f00b35ea9da52fd4b8202af8556cf05a264715762ef0e10854955
SIZE (python/python-3.9.19-docs-text.tar.bz2) = 2551396
diff --git a/lang/python311/Makefile b/lang/python311/Makefile
index 2f2f540b4385..ab53f485c3be 100644
--- a/lang/python311/Makefile
+++ b/lang/python311/Makefile
@@ -1,162 +1,161 @@
PORTNAME= python
DISTVERSION= ${PYTHON_DISTVERSION}
-PORTREVISION= 1
CATEGORIES= lang python
MASTER_SITES= PYTHON/ftp/python/${DISTVERSION:C/[a-z].*//}
PKGNAMESUFFIX= ${PYTHON_SUFFIX}
DISTNAME= Python-${DISTVERSION}
DIST_SUBDIR= python
MAINTAINER= python@FreeBSD.org
COMMENT= Interpreted object-oriented programming language
WWW= https://www.python.org/
LICENSE= PSFL
LIB_DEPENDS= libffi.so:devel/libffi
USES= compiler:c11 cpe ncurses pathfix pkgconfig \
python:${PYTHON_DISTVERSION:R},env readline shebangfix ssl tar:xz
PATHFIX_MAKEFILEIN= Makefile.pre.in
USE_LDCONFIG= yes
GNU_CONFIGURE= yes
python_CMD= ${PREFIX}/bin/python${PYTHON_DISTVERSION:R}
SHEBANG_FILES= Lib/*.py Lib/*/*.py Lib/*/*/*.py Lib/*/*/*/*.py
SHEBANG_FILES+= Lib/test/ziptestdata/exe_with_z64 \
Lib/test/ziptestdata/exe_with_zip \
Lib/test/ziptestdata/header.sh
DISABLED_EXTENSIONS= _sqlite3 _tkinter _gdbm
CONFIGURE_ARGS+= --enable-shared --without-ensurepip \
--with-system-ffi
CONFIGURE_ENV+= OPT="" ac_cv_prog_cc_g=false # Null out OPT to respect user CFLAGS and remove optimizations
INSTALL_TARGET= altinstall # Don't want cloberring of unprefixed files
TEST_TARGET= buildbottest
TEST_ARGS= TESTOPTS=-j${MAKE_JOBS_NUMBER}
MAKE_ARGS+= INSTALL_SHARED="${INSTALL_LIB}" # Strip shared library
SUB_FILES= pkg-message
SUB_LIST= PYTHON_SUFFIX=${PYTHON_SUFFIX}
PLIST_SUB= ABI=${ABIFLAGS} \
DISTVERSION=${DISTVERSION} \
OSMAJOR=${OSVERSION:C/([0-9]*)[0-9]{5}/\1/} # For plat-freebsd* in pkg-plist. https://bugs.python.org/issue19554
OPTIONS_DEFINE= DEBUG IPV6 LIBMPDEC LTO NLS PYMALLOC
OPTIONS_DEFAULT= LIBMPDEC LTO PYMALLOC
OPTIONS_EXCLUDE_riscv64= LTO
OPTIONS_EXCLUDE_powerpc64le= LTO
OPTIONS_RADIO= HASH
OPTIONS_RADIO_HASH= FNV SIPHASH
OPTIONS_SUB= yes
LIBMPDEC_DESC= Use libmpdec from ports instead of bundled version
NLS_DESC= Enable gettext support for the locale module
PYMALLOC_DESC= Enable specialized mallocs
HASH_DESC= Hash Algorithm (PEP-456)
FNV_DESC= Modified Fowler-Noll-Vo Algorithm
SIPHASH_DESC= SipHash24 Algorithm
FNV_CONFIGURE_ON= --with-hash-algorithm=fnv
SIPHASH_CONFIGURE_ON= --with-hash-algorithm=siphash24
DEBUG_CONFIGURE_WITH= pydebug
IPV6_CONFIGURE_ENABLE= ipv6
LIBMPDEC_CONFIGURE_ON= --with-system-libmpdec
LIBMPDEC_LIB_DEPENDS= libmpdec.so:math/mpdecimal
LTO_CONFIGURE_ON= --with-lto
# Use CPPFLAGS over CFLAGS due to -I ordering, causing elementtree and pyexpat
# to break in Python 2.7, or preprocessor complaints in Python >= 3.3
# Upstream Issue: https://bugs.python.org/issue6299
NLS_USES= gettext
NLS_CPPFLAGS= -I${LOCALBASE}/include
NLS_LIBS= -L${LOCALBASE}/lib -lintl
NLS_CONFIGURE_ENV_OFF= ac_cv_lib_intl_textdomain=no ac_cv_header_libintl_h=no
PYMALLOC_CONFIGURE_WITH= pymalloc
.include "${.CURDIR}/Makefile.version"
.include
.if ${PORT_OPTIONS:MDEBUG}
ABIFLAGS:= d${ABIFLAGS}
.endif
.if !empty(ABIFLAGS)
PLIST_FILES+= bin/python${PYTHON_VER}${ABIFLAGS} \
bin/python${PYTHON_VER}${ABIFLAGS}-config \
libdata/pkgconfig/python-${PYTHON_VER}${ABIFLAGS}.pc \
libdata/pkgconfig/python-${PYTHON_VER}${ABIFLAGS}-embed.pc
.endif
# See https://bugs.freebsd.org/115940 and https://bugs.freebsd.org/193650
.if !exists(/usr/bin/ypcat) || defined(WITHOUT_NIS)
PLIST_SUB+= NO_NIS="@comment "
DISABLED_EXTENSIONS+= nis
.else
PLIST_SUB+= NO_NIS=""
.endif
.if ${SSL_DEFAULT:Mlibressl*}
EXTRA_PATCHES+= ${PATCHDIR}/libressl
CONFIGURE_ENV+= ac_cv_working_openssl_hashlib=yes
.endif
.include
# llvm17 with -flto=thin makes Programs/_freeze_module crash on armv7; workaround
# cf. https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=276249
.if ${ARCH} == armv7 && ${CHOSEN_COMPILER_TYPE} == clang && ${COMPILER_VERSION} >= 170 && \
${COMPILER_VERSION} < 180
CONFIGURE_ARGS:= ${CONFIGURE_ARGS:N${LTO_CONFIGURE_ON}}
.endif
post-patch:
# disable the detection of includes and library from e2fsprogs-libuuid,
# which introduces hidden dependency and breaks build
@${REINPLACE_CMD} -e 's|uuid/uuid.h|ignore_&|' ${WRKSRC}/configure
# disable detection of multiarch as it breaks with clang >= 13, which adds a
# major.minor version number in -print-multiarch output, confusing Python
@${REINPLACE_CMD} -e 's|^\( *MULTIARCH=\).*--print-multiarch.*|\1|' ${WRKSRC}/configure
# Apply DISABLED_EXTENSIONS
@${ECHO_CMD} '*disabled*' > ${WRKSRC}/Modules/Setup.local
. for _module in ${DISABLED_EXTENSIONS}
@${ECHO_CMD} ${_module} >> ${WRKSRC}/Modules/Setup.local
. endfor
post-install:
.if ! ${PORT_OPTIONS:MDEBUG}
${RM} ${STAGEDIR}${PREFIX}/lib/libpython3.so # Upstream Issue: https://bugs.python.org/issue17975
.endif
${LN} -sf libpython${PYTHON_VER}${ABIFLAGS}.so.1.0 ${STAGEDIR}${PREFIX}/lib/libpython${PYTHON_VER}${ABIFLAGS}.so.1
# This code block exists for the qemu-user enabled cross build environment.
# When using this environment in poudriere, CC is not set to the default
# of /usr/bin/cc and a cross-compile toolchain is used. We need to hand
# edit this so that the run time configuration for python matches what the
# FreeBSD base system provides. sbruno 02Aug2017
.if ${CC} == /nxb-bin/usr/bin/cc
@${REINPLACE_CMD} -e 's=/nxb-bin==' \
${STAGEDIR}${PREFIX}/lib/python${PYTHON_VER}/_sysconfigdata_${ABIFLAGS}_freebsd${OSREL:R}_.py
@cd ${WRKSRC} && ${SETENV} LD_LIBRARY_PATH=${WRKSRC} \
./python -E -m compileall -d ${PREFIX}/lib/python${PYTHON_VER} \
${STAGEDIR}${PREFIX}/lib/python${PYTHON_VER}/_sysconfigdata_${ABIFLAGS}_freebsd${OSREL:R}_.py
@cd ${WRKSRC} && ${SETENV} LD_LIBRARY_PATH=${WRKSRC} \
./python -E -O -m compileall -d ${PREFIX}/lib/python${PYTHON_VER} \
${STAGEDIR}${PREFIX}/lib/python${PYTHON_VER}/_sysconfigdata_${ABIFLAGS}_freebsd${OSREL:R}_.py
@${REINPLACE_CMD} -e 's=/nxb-bin==' \
${STAGEDIR}${PREFIX}/lib/python${PYTHON_VER}/config-${PYTHON_VER}${ABIFLAGS}/Makefile
.endif
for i in ${STAGEDIR}${PREFIX}/lib/python${PYTHON_VER}/lib-dynload/*.so; do \
${STRIP_CMD} $$i; done # Strip shared extensions
${INSTALL_DATA} ${WRKSRC}/Tools/gdb/libpython.py \
${STAGEDIR}${PREFIX}/lib/libpython${PYTHON_VER}${ABIFLAGS}.so.1.0-gdb.py
.include
diff --git a/lang/python311/Makefile.version b/lang/python311/Makefile.version
index f10a21589080..544d22e5d34b 100644
--- a/lang/python311/Makefile.version
+++ b/lang/python311/Makefile.version
@@ -1,7 +1,7 @@
# Mk/Uses/python.mk includes this file, don't remove it!
# Do not forget to
# 1. Update python documentation (lang/python-doc-*)
# Run "make -C lang/python-doc-html makesum"
# 2. Remove PORTREVISION in Makefile
-PYTHON_DISTVERSION= 3.11.9
+PYTHON_DISTVERSION= 3.11.10
diff --git a/lang/python311/distinfo b/lang/python311/distinfo
index 1773a5a56d93..d49093cb5677 100644
--- a/lang/python311/distinfo
+++ b/lang/python311/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1712330703
-SHA256 (python/Python-3.11.9.tar.xz) = 9b1e896523fc510691126c864406d9360a3d1e986acbda59cda57b5abda45b87
-SIZE (python/Python-3.11.9.tar.xz) = 20175816
+TIMESTAMP = 1726190320
+SHA256 (python/Python-3.11.10.tar.xz) = 07a4356e912900e61a15cb0949a06c4a05012e213ecd6b4e84d0f67aabbee372
+SIZE (python/Python-3.11.10.tar.xz) = 20067656