diff --git a/lang/python-doc-html/distinfo b/lang/python-doc-html/distinfo
index 4ac5245c01ad..77e222c2a8ff 100644
--- a/lang/python-doc-html/distinfo
+++ b/lang/python-doc-html/distinfo
@@ -1,41 +1,41 @@
-TIMESTAMP = 1648176656
+TIMESTAMP = 1652829467
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.4-docs-html.tar.bz2) = 0051ebcf13324bd7b5f59ccfbc2d4fa7c1ce9bf97205071451a5e6912fc54e75
SIZE (python/python-3.10.4-docs-html.tar.bz2) = 7267784
SHA256 (python/python-3.10.4-docs-pdf-a4.tar.bz2) = c259253f095558ecf49f6cbb2c64816b24afe068434d16a6f709715fbf8aa8fb
SIZE (python/python-3.10.4-docs-pdf-a4.tar.bz2) = 16258037
SHA256 (python/python-3.10.4-docs-pdf-letter.tar.bz2) = cb2c47cb7207e18ae6e11c7e5184354263b11bec3618207be0ac21c893b8ceb7
SIZE (python/python-3.10.4-docs-pdf-letter.tar.bz2) = 16353172
SHA256 (python/python-3.10.4-docs-text.tar.bz2) = a3768957758abfbefa718d94f8ef809c3a4ebd85d4f0dd5381af9b5ca2bdedc9
SIZE (python/python-3.10.4-docs-text.tar.bz2) = 2631784
SHA256 (python/python-3.7.13-docs-html.tar.bz2) = f25d8caf71920bd86f801e052237ad00d6504aca265fe8d9537a201f41e15dfe
SIZE (python/python-3.7.13-docs-html.tar.bz2) = 6289395
SHA256 (python/python-3.7.13-docs-pdf-a4.tar.bz2) = cf282c4378f5b1519c4f6434c25ce11049f662bc3cdc7e74d75caa8c1daf9796
SIZE (python/python-3.7.13-docs-pdf-a4.tar.bz2) = 14282318
SHA256 (python/python-3.7.13-docs-pdf-letter.tar.bz2) = 6141fd4c6a55888c2878e99a77118c2cf125e56c6801e80583728e1d3272ea05
SIZE (python/python-3.7.13-docs-pdf-letter.tar.bz2) = 14369778
SHA256 (python/python-3.7.13-docs-text.tar.bz2) = 740424e94cc0aa092faea177928012a04746e2fd71daad00c8117c43f62d6844
SIZE (python/python-3.7.13-docs-text.tar.bz2) = 2296667
SHA256 (python/python-3.8.13-docs-html.tar.bz2) = 7fcfb199805d109f089f02e0818d76b47594accc1886188eeaf56ff2602c0f40
SIZE (python/python-3.8.13-docs-html.tar.bz2) = 6698035
SHA256 (python/python-3.8.13-docs-pdf-a4.tar.bz2) = 2dd4dc2b8f5c3db784ff015d946c1d761eed6577b14a7e74e970fe72d3fc002f
SIZE (python/python-3.8.13-docs-pdf-a4.tar.bz2) = 14741793
SHA256 (python/python-3.8.13-docs-pdf-letter.tar.bz2) = 9d71d3826d72870ad054a56c1b3bcf4d3c44026a86f425e3cce0baa5f60be79e
SIZE (python/python-3.8.13-docs-pdf-letter.tar.bz2) = 14856009
SHA256 (python/python-3.8.13-docs-text.tar.bz2) = 5de70e7135042abb6c93b6ebcb5e9b8e297f0320f039ff90d42275abd631e565
SIZE (python/python-3.8.13-docs-text.tar.bz2) = 2424063
-SHA256 (python/python-3.9.12-docs-html.tar.bz2) = 420f1c1389a6ac5bb08fb4bd6a249f479f05143b334befe5ef754ff56ec85c32
-SIZE (python/python-3.9.12-docs-html.tar.bz2) = 6954359
-SHA256 (python/python-3.9.12-docs-pdf-a4.tar.bz2) = 7e7e8b44415f9711e1380d9e196524c0bb7d3fbd87a2cef92f885b7f6c5153a9
-SIZE (python/python-3.9.12-docs-pdf-a4.tar.bz2) = 15372740
-SHA256 (python/python-3.9.12-docs-pdf-letter.tar.bz2) = 2c3d1ffc889ee7bb4492b71bda2da65af73bf249ba54b9fb4dcecfce7187c800
-SIZE (python/python-3.9.12-docs-pdf-letter.tar.bz2) = 15477236
-SHA256 (python/python-3.9.12-docs-text.tar.bz2) = ad488e61667d956caa507d2b6153689e018e644b1e38293699ccf5d88b0619aa
-SIZE (python/python-3.9.12-docs-text.tar.bz2) = 2529513
+SHA256 (python/python-3.9.13-docs-html.tar.bz2) = d6aaf70bdfe051bdfb876eaffe1272cc3139ab20913aa63b3ce6201d9069df20
+SIZE (python/python-3.9.13-docs-html.tar.bz2) = 6979296
+SHA256 (python/python-3.9.13-docs-pdf-a4.tar.bz2) = 75ce416cd09eb623b29e5594d4881b89934fc7d9240c4f8bd5b9c472b0d21170
+SIZE (python/python-3.9.13-docs-pdf-a4.tar.bz2) = 15391931
+SHA256 (python/python-3.9.13-docs-pdf-letter.tar.bz2) = 90f9e52316dfdcb267e35b979fd62d7bf27725885cabef741bb1fa1e7c23221b
+SIZE (python/python-3.9.13-docs-pdf-letter.tar.bz2) = 15500169
+SHA256 (python/python-3.9.13-docs-text.tar.bz2) = 780d9e0ac778a24e400339fd77f807bc7ca15e8f7bc8587db9a7829d584fed82
+SIZE (python/python-3.9.13-docs-text.tar.bz2) = 2534562
diff --git a/lang/python39/Makefile b/lang/python39/Makefile
index 997aafec8f2e..025be481291c 100644
--- a/lang/python39/Makefile
+++ b/lang/python39/Makefile
@@ -1,160 +1,159 @@
# Created by: Kubilay Kocak
PORTNAME= python
DISTVERSION= ${PYTHON_DISTVERSION}
-PORTREVISION= 2
CATEGORIES= lang python
MASTER_SITES= PYTHON/ftp/python/${DISTVERSION}
PKGNAMESUFFIX= ${PYTHON_SUFFIX}
DISTNAME= Python-${DISTVERSION}
DIST_SUBDIR= python
MAINTAINER= python@FreeBSD.org
COMMENT= Interpreted object-oriented programming language
LICENSE= PSFL
LIB_DEPENDS= libffi.so:devel/libffi
USES= compiler:c11 cpe ncurses pathfix pkgconfig 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
# Duplicate python.mk variables. TODO: Let lang/python?? ports use python.mk bits.
PYTHON_VER= ${PYTHON_DISTVERSION:R}
PYTHON_VERSION= python${PYTHON_VER}
PYTHON_SUFFIX= ${PYTHON_VER:S/.//g}
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} \
XY=${PYTHON_SUFFIX} \
XYDOT=${PYTHON_VER} \
XYZDOT=${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_powerpc64= LTO
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
.if ${ARCH} == sparc64
CFLAGS+= -DPYTHON_DEFAULT_RECURSION_LIMIT=900
.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 a94cf9396966..13e0f89db940 100644
--- a/lang/python39/Makefile.version
+++ b/lang/python39/Makefile.version
@@ -1,5 +1,5 @@
# Mk/Uses/python.mk includes this file, don't remove it!
# Do not forget to update python documentation (lang/python-doc-*)
# Run "make -C lang/python-doc-html makesum"
-PYTHON_DISTVERSION= 3.9.12
+PYTHON_DISTVERSION= 3.9.13
diff --git a/lang/python39/distinfo b/lang/python39/distinfo
index a2abbc64dc5d..7d98a2a89b20 100644
--- a/lang/python39/distinfo
+++ b/lang/python39/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1648175527
-SHA256 (python/Python-3.9.12.tar.xz) = 2cd94b20670e4159c6d9ab57f91dbf255b97d8c1a1451d1c35f4ec1968adf971
-SIZE (python/Python-3.9.12.tar.xz) = 19740524
+TIMESTAMP = 1652829146
+SHA256 (python/Python-3.9.13.tar.xz) = 125b0c598f1e15d2aa65406e83f792df7d171cdf38c16803b149994316a3080f
+SIZE (python/Python-3.9.13.tar.xz) = 19754368