diff --git a/lang/python-doc-html/distinfo b/lang/python-doc-html/distinfo
index 61779c6267d5..81c3bda17fd3 100644
--- a/lang/python-doc-html/distinfo
+++ b/lang/python-doc-html/distinfo
@@ -1,31 +1,31 @@
-TIMESTAMP = 1744937523
+TIMESTAMP = 1749038626
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-text.tar.bz2) = c86f5b5a2bd8f90158523efd350198d6cde7353965ef5a6ca5e54e5174af47f2
SIZE (python/python-2.7.18-docs-text.tar.bz2) = 1631043
SHA256 (python/python-3.10.17-docs-html.tar.bz2) = 34a0453ddb426be856f1c5fcda37ac01068fea3af79f5b26ba209f5832c0a849
SIZE (python/python-3.10.17-docs-html.tar.bz2) = 7459592
SHA256 (python/python-3.10.17-docs-pdf-a4.tar.bz2) = 9ebb0a3ac3e19e8111e40e33546d146a620f1a43659a2e76f64eb4f60d01c347
SIZE (python/python-3.10.17-docs-pdf-a4.tar.bz2) = 16760738
SHA256 (python/python-3.10.17-docs-text.tar.bz2) = 47602dbe37006e07996cd1061ac1d20b39388f0fb8db911f9d04e0ddfef869d2
SIZE (python/python-3.10.17-docs-text.tar.bz2) = 2693937
SHA256 (python/python-3.11.12-docs-html.tar.bz2) = 43eb8c160873d3f0d4966962862273496f62409ab02b3a3a3f563f930066325b
SIZE (python/python-3.11.12-docs-html.tar.bz2) = 7994774
SHA256 (python/python-3.11.12-docs-pdf-a4.tar.bz2) = 551c8147a92747bebdff497549f4d95703149460b213760349794e2b5a6aabfe
SIZE (python/python-3.11.12-docs-pdf-a4.tar.bz2) = 17602805
SHA256 (python/python-3.11.12-docs-text.tar.bz2) = 489685da36206b2c36a47623c83429eab9acd3ffdf1ba9c2350311c6c23df924
SIZE (python/python-3.11.12-docs-text.tar.bz2) = 2841995
SHA256 (python/python-3.12.10-docs-html.tar.bz2) = 16347781a36c25042c3b0472cdc25a952ee3ecf1953c8448a854dc83763ebbb0
SIZE (python/python-3.12.10-docs-html.tar.bz2) = 8428154
SHA256 (python/python-3.12.10-docs-pdf-a4.tar.bz2) = b99c6f03ce31f4b480711f3dfbe580f96ebb95cfb22f3e4fa21cb374739c777e
SIZE (python/python-3.12.10-docs-pdf-a4.tar.bz2) = 18702001
SHA256 (python/python-3.12.10-docs-text.tar.bz2) = 04b4381836c6663f1d8bcb2acc9072de8f440203f920fb152f3c73fc5683fd3b
SIZE (python/python-3.12.10-docs-text.tar.bz2) = 2909399
-SHA256 (python/python-3.9.22-docs-html.tar.bz2) = 839da92997430128689cfe81152d9c86c49f35948043f8058f8b14e902aea6c0
-SIZE (python/python-3.9.22-docs-html.tar.bz2) = 7008222
-SHA256 (python/python-3.9.22-docs-pdf-a4.tar.bz2) = 2bb1cc727918193becbd48e0b0193cfe0273e188cc561b95a01a73b074d57807
-SIZE (python/python-3.9.22-docs-pdf-a4.tar.bz2) = 15759104
-SHA256 (python/python-3.9.22-docs-text.tar.bz2) = 1daee430d59c0ee2f235630fe26807c1f53fba05fa14ee21ad799a6c407c80f4
-SIZE (python/python-3.9.22-docs-text.tar.bz2) = 2554057
+SHA256 (python/python-3.9.23-docs-html.tar.bz2) = 7e299c24b164d87600ded5d67fb6bbc793881fa6eac938950516169abaa403e1
+SIZE (python/python-3.9.23-docs-html.tar.bz2) = 7012126
+SHA256 (python/python-3.9.23-docs-pdf-a4.tar.bz2) = 27f38e33382ad58a2e28ad552e8c38410bd162556515b234864f789b763ec2f0
+SIZE (python/python-3.9.23-docs-pdf-a4.tar.bz2) = 15766111
+SHA256 (python/python-3.9.23-docs-text.tar.bz2) = 05c50b0e7c65a4e727cb4d7cae152730e690935cf8420d4320cc49c924372d3f
+SIZE (python/python-3.9.23-docs-text.tar.bz2) = 2555981
diff --git a/lang/python39/Makefile b/lang/python39/Makefile
index d340bd558a0c..320a2b45be66 100644
--- a/lang/python39/Makefile
+++ b/lang/python39/Makefile
@@ -1,153 +1,149 @@
PORTNAME= python
DISTVERSION= ${PYTHON_DISTVERSION}
-PORTREVISION= 1
CATEGORIES= lang python
MASTER_SITES= PYTHON/ftp/python/${DISTVERSION}
PKGNAMESUFFIX= ${PYTHON_SUFFIX}
DISTNAME= Python-${DISTVERSION}
DIST_SUBDIR= python
-PATCH_SITES= https://github.com/python/cpython/commit/
-PATCHFILES= 0d5d68f7075788b6912f8632dc841dca97ece409.patch:-p1
-
MAINTAINER= python@FreeBSD.org
COMMENT= Interpreted object-oriented programming language
WWW= https://www.python.org/
LICENSE= PSFL
DEPRECATED= Upgrade to a newer Python version. 3.9 is in maintenance status and gets security fixes only. End-of-Life: 2025-10. See https://devguide.python.org/versions/
EXPIRATION_DATE=2025-10-31
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="" # 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 PYMALLOC
OPTIONS_EXCLUDE_riscv64= 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
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
@${REINPLACE_CMD} -e '/find_library_file/ s|uuid|ignore_&|' ${WRKSRC}/setup.py
# 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/python39/Makefile.version b/lang/python39/Makefile.version
index 38790ea5126d..6801faf70fe4 100644
--- a/lang/python39/Makefile.version
+++ b/lang/python39/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.9.22
+PYTHON_DISTVERSION= 3.9.23
diff --git a/lang/python39/distinfo b/lang/python39/distinfo
index 6b2f0fce1292..8cef54c9a43e 100644
--- a/lang/python39/distinfo
+++ b/lang/python39/distinfo
@@ -1,5 +1,5 @@
-TIMESTAMP = 1748549363
-SHA256 (python/Python-3.9.22.tar.xz) = 8c136d199d3637a1fce98a16adc809c1d83c922d02d41f3614b34f8b6e7d38ec
-SIZE (python/Python-3.9.22.tar.xz) = 19652572
+TIMESTAMP = 1749031644
+SHA256 (python/Python-3.9.23.tar.xz) = 61a42919e13d539f7673cf11d1c404380e28e540510860b9d242196e165709c9
+SIZE (python/Python-3.9.23.tar.xz) = 19659284
SHA256 (python/0d5d68f7075788b6912f8632dc841dca97ece409.patch) = 16500e6428f28a3e05d96bf4c811ac3e8c318de5424bb59635809f5277106051
SIZE (python/0d5d68f7075788b6912f8632dc841dca97ece409.patch) = 20082