git: ddc3acdf2c27 - main - lang/python314: update to 3.14.6
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Fri, 12 Jun 2026 19:23:42 UTC
The branch main has been updated by vishwin:
URL: https://cgit.FreeBSD.org/ports/commit/?id=ddc3acdf2c2790b259a6e1fcaae48befd161c69a
commit ddc3acdf2c2790b259a6e1fcaae48befd161c69a
Author: Charlie Li <vishwin@FreeBSD.org>
AuthorDate: 2026-06-12 19:14:06 +0000
Commit: Charlie Li <vishwin@FreeBSD.org>
CommitDate: 2026-06-12 19:17:59 +0000
lang/python314: update to 3.14.6
Changelog: https://docs.python.org/3.14/whatsnew/changelog.html#python-3-14-6-final
While here:
- rebase formatting similar to lang/python313
- expose JIT option (disabled by default)
- allow LibreSSL
PR: 296007
Event: Works Must Run
---
lang/python314/Makefile | 140 +-
lang/python314/Makefile.version | 2 +-
lang/python314/distinfo | 6 +-
.../files/libressl/patch-Modules___hashopenssl.c | 26 +
lang/python314/files/patch-Makefile.pre.in | 2 +-
...onfig.sh.in => patch-Misc__python-config.sh.in} | 2 +-
lang/python314/files/patch-Tools_jit___llvm.py | 36 +
lang/python314/files/patch-Tools_jit___targets.py | 22 +
...integer-overflow-in-Expats-CharacterDataHandler | 70 -
lang/python314/pkg-plist | 16638 ++++++++++---------
10 files changed, 8478 insertions(+), 8466 deletions(-)
diff --git a/lang/python314/Makefile b/lang/python314/Makefile
index 7cb5945b3e2a..264b43128458 100644
--- a/lang/python314/Makefile
+++ b/lang/python314/Makefile
@@ -1,12 +1,13 @@
PORTNAME= python
-DISTVERSION= ${PYTHON_DISTVERSION} # see Makefile.version
-PORTREVISION= 0
+DISTVERSION= ${PYTHON_DISTVERSION}
CATEGORIES= lang python
MASTER_SITES= PYTHON/ftp/python/${DISTVERSION:C/[a-z].*//}
-PKGNAMESUFFIX= ${PYTHON_SUFFIX}
+PKGNAMESUFFIX= ${PYTHON_BASESUFFIX}${THREADFLAG}
DISTNAME= Python-${DISTVERSION}
DIST_SUBDIR= python
+PATCH_SITES= https://github.com/python/cpython/commit/
+
MAINTAINER= python@FreeBSD.org
COMMENT= Interpreted object-oriented programming language
WWW= https://www.python.org/
@@ -16,44 +17,40 @@ LICENSE= PSFL
LIB_DEPENDS= libexpat.so:textproc/expat2 \
libffi.so:devel/libffi \
libzstd.so:archivers/zstd
+TEST_DEPENDS= gdb:devel/gdb
-USES= compiler:c11 cpe ncurses pathfix pkgconfig readline \
- shebangfix ssl tar:xz
+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/archivetestdata/exe_with_z64 \
+SHEBANG_GLOB= *.py*
+SHEBANG_FILES= Lib/test/archivetestdata/exe_with_z64 \
Lib/test/archivetestdata/exe_with_zip \
Lib/test/archivetestdata/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= _gdbm _sqlite3 _tkinter
+DISABLED_EXTENSIONS= _sqlite3 _tkinter _gdbm
CONFIGURE_ARGS+= --enable-shared --without-ensurepip --with-system-expat
CONFIGURE_ENV+= OPT="" # Null out OPT to respect user CFLAGS and remove optimizations
-INSTALL_TARGET= altinstall # Don't want cloberring of unprefixed files
+INSTALL_TARGET= altinstall # Don't want cloberring of unprefixed files
-# TEST_TARGET= buildbottest # that's the --slow-ci with more resources/longer timeouts
-TEST_TARGET= test # that's the --fast-ci with tighter timeouts and using less resources
-# TEST_ARGS: test_gdb requires debug symbols for the test_gdb.test_pretty_print test, so skip it unless defined(WITH_DEBUG)
-TEST_ARGS= TESTOPTS="-j${MAKE_JOBS_NUMBER} ${WITH_DEBUG:U-x test_gdb}"
+TEST_TARGET= test
+TEST_ARGS= TESTOPTS=-j${MAKE_JOBS_NUMBER}
MAKE_ARGS+= COMPILEALL_OPTS=-j${MAKE_JOBS_NUMBER} \
INSTALL_SHARED="${INSTALL_LIB}" # Strip shared library
SUB_FILES= pkg-message
-SUB_LIST= PYTHON_SUFFIX=${PYTHON_SUFFIX}
+SUB_LIST= PYTHON_SUFFIX=${PYTHON_BASESUFFIX}${THREADFLAG}
PLIST_SUB= ABI=${ABIFLAGS} \
- XY=${PYTHON_SUFFIX} \
- XYDOT=${PYTHON_VER} \
- XYZDOT=${DISTVERSION:C/[a-z].*//} \
+ THREAD=${THREADFLAG} \
+ PYTHON_BASEINCLUDEDIR=${PYTHONPREFIX_INCLUDEDIR:S;${PREFIX}/;;:S;${PYTHON_VER};${PYTHON_BASEVER};} \
+ PYTHON_BASELIBDIR=${PYTHONPREFIX_LIBDIR:S;${PREFIX}/;;:S;${PYTHON_VER};${PYTHON_BASEVER};} \
+ PYTHON_BASESOABI=${PYTHON_SOABI:S;${PYTHON_SUFFIX};${PYTHON_BASESUFFIX};}${THREADFLAG} \
+ 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
@@ -61,11 +58,11 @@ OPTIONS_DEFAULT= LIBMPDEC LTO PYMALLOC
OPTIONS_EXCLUDE_riscv64= LTO
OPTIONS_RADIO= HASH
OPTIONS_RADIO_HASH= FNV SIPHASH
+OPTIONS_GROUP= EXPERIMENTAL
+OPTIONS_GROUP_EXPERIMENTAL= JIT
OPTIONS_SUB= yes
LIBMPDEC_DESC= Use libmpdec from ports instead of bundled version
-LTO_DESC= Use Link-Time Optimization with -flto=thin
-LTOFULL_DESC= Use -flto=full (not =thin) (faster build at more CPU time)
NLS_DESC= Enable gettext support for the locale module
PYMALLOC_DESC= Enable specialized mallocs
@@ -73,16 +70,21 @@ HASH_DESC= Hash Algorithm (PEP-456)
FNV_DESC= Modified Fowler-Noll-Vo Algorithm
SIPHASH_DESC= SipHash24 Algorithm
+EXPERIMENTAL_DESC= Experimental features
+JIT_DESC= Enable just-in-time compiler
+
FNV_CONFIGURE_ON= --with-hash-algorithm=fnv
SIPHASH_CONFIGURE_ON= --with-hash-algorithm=siphash24
+JIT_CONFIGURE_ENABLE= experimental-jit
+
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=full
+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
@@ -94,18 +96,33 @@ NLS_CONFIGURE_ENV_OFF= ac_cv_lib_intl_textdomain=no ac_cv_header_libintl_h=no
PYMALLOC_CONFIGURE_WITH= pymalloc
-.include "${.CURDIR}/Makefile.version"
+MASTERDIR?= ${.CURDIR}
+CONFLICTS_INSTALL?= python314t
+.include "${MASTERDIR}/Makefile.version"
.include <bsd.port.options.mk>
.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
+# Python 3.11 or newer is required to build the JIT
+.if ${PORT_OPTIONS:MJIT}
+. if ${PYTHON_DEFAULT:S/t$//} >= 3.14 || ${PYTHON_DEFAULT:S/t$//} < 3.11
+. if ${PYTHON_DEFAULT} == ${PYTHON_DEFAULT:S/t$//}t
+BUILD_DEPENDS+= python3.13t:lang/python313t
+. else
+BUILD_DEPENDS+= python3.13:lang/python313
+. endif
+. else
+BUILD_DEPENDS+= python${PYTHON_DEFAULT}:lang/python${PYTHON_DEFAULT:S/.//g}
+. endif
+.endif
+
+.if !empty(ABIFLAGS) || !empty(THREADFLAG)
+PLIST_FILES+= bin/python${PYTHON_BASEVER}${THREADFLAG}${ABIFLAGS} \
+ bin/python${PYTHON_BASEVER}${THREADFLAG}${ABIFLAGS}-config \
+ libdata/pkgconfig/python-${PYTHON_BASEVER}${THREADFLAG}${ABIFLAGS}-embed.pc \
+ libdata/pkgconfig/python-${PYTHON_BASEVER}${THREADFLAG}${ABIFLAGS}.pc
.endif
# See https://bugs.freebsd.org/115940 and https://bugs.freebsd.org/193650
@@ -116,18 +133,16 @@ DISABLED_EXTENSIONS+= nis
PLIST_SUB+= NO_NIS=""
.endif
-# Python 3.10 requires OpenSSL >= 1.1.1 (PEP 644), so with
-# libressl, some modules are not built
.if ${SSL_DEFAULT:Mlibressl*}
-PLIST_SUB+= SUPPORTED_OPENSSL="@comment "
-.else
-PLIST_SUB+= SUPPORTED_OPENSSL=""
+EXTRA_PATCHES+= ${PATCHDIR}/libressl
+CONFIGURE_ENV+= ac_cv_working_openssl_hashlib=yes
.endif
post-patch:
-# disable the detection of includes and library from e2fsprogs-libuuid,
+# disable the detection of includes and library from 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
@@ -136,61 +151,32 @@ post-patch:
. for _module in ${DISABLED_EXTENSIONS}
@${ECHO_CMD} ${_module} >> ${WRKSRC}/Modules/Setup.local
. endfor
-# Strip Expat module
- ${RM} -R ${WRKSRC}/Modules/expat
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
+ ${LN} -sf libpython${PYTHON_BASEVER}${THREADFLAG}${ABIFLAGS}.so.1.0 ${STAGEDIR}${PREFIX}/lib/libpython${PYTHON_BASEVER}${THREADFLAG}${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==g' \
- ${STAGEDIR}${PREFIX}/lib/python${PYTHON_VER}/_sysconfigdata_${ABIFLAGS}_freebsd_.py
+ @${REINPLACE_CMD} -e 's=/nxb-bin==' \
+ ${STAGEDIR}${PREFIX}/lib/python${PYTHON_BASEVER}${THREADFLAG}/_sysconfigdata_${THREADFLAG}${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_.py
+ ./python -E -m compileall -d ${PREFIX}/lib/python${PYTHON_BASEVER}${THREADFLAG} \
+ ${STAGEDIR}${PREFIX}/lib/python${PYTHON_BASEVER}${THREADFLAG}/_sysconfigdata_${THREADFLAG}${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_.py
- @${REINPLACE_CMD} -e 's=/nxb-bin==g' \
- ${STAGEDIR}${PREFIX}/lib/python${PYTHON_VER}/config-${PYTHON_VER}${ABIFLAGS}/Makefile
+ ./python -E -O -m compileall -d ${PREFIX}/lib/python${PYTHON_BASEVER}${THREADFLAG} \
+ ${STAGEDIR}${PREFIX}/lib/python${PYTHON_BASEVER}${THREADFLAG}/_sysconfigdata_${THREADFLAG}${ABIFLAGS}_freebsd${OSREL:R}_.py
+ @${REINPLACE_CMD} -e 's=/nxb-bin==' \
+ ${STAGEDIR}${PREFIX}/lib/python${PYTHON_BASEVER}${THREADFLAG}/config-${PYTHON_BASEVER}${ABIFLAGS}/Makefile
.endif
- for i in ${STAGEDIR}${PREFIX}/lib/python${PYTHON_VER}/lib-dynload/*.so; do \
+ for i in ${STAGEDIR}${PREFIX}/lib/python${PYTHON_BASEVER}${THREADFLAG}/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
-
-_sigstorebundle=${DISTFILES}.sigstore
-${_sigstorebundle}:
- ${FETCH_CMD} ${MASTER_SITES}/${_sigstorebundle}
-
-sigstore-verify: ${_sigstorebundle} checksum
- sigstore verify identity \
- --bundle ${DISTFILES}.sigstore \
- --cert-identity hugo@python.org \
- --cert-oidc-issuer https://github.com/login/oauth \
- ${DISTDIR}/${DIST_SUBDIR}/${DISTFILES}
-
-pre-test:
- @${ECHO_CMD} "=== NOTE: the py314-* gdbm, sqlite3, tkinter modules must be rebuilt before the test ==="
-.if ${PORT_OPTIONS:MDEBUG}
- @${ECHO_CMD} "=== NOTE: The test_ssl test is known to fail with DEBUG option enabled ==="
-.endif
-.if empty(PORT_OPTIONS:MIPV6)
- @${ECHO_CMD} "=== NOTE: Some asynch tests require IPV6 support enabled, expect some test failures ==="
-.endif
-.if empty(PORT_OPTIONS:MPYMALLOC)
- @${ECHO_CMD} "=== NOTE: Some tests depend on PYMALLOC option enabled, expect some test failures ==="
-.endif
- sleep 5
-
-post-clean:
- @${RM} ${_sigstorebundle}
+ ${STAGEDIR}${PREFIX}/lib/libpython${PYTHON_BASEVER}${THREADFLAG}${ABIFLAGS}.so.1.0-gdb.py
.include <bsd.port.mk>
diff --git a/lang/python314/Makefile.version b/lang/python314/Makefile.version
index 01917fa79e66..8b4d02375662 100644
--- a/lang/python314/Makefile.version
+++ b/lang/python314/Makefile.version
@@ -4,4 +4,4 @@
# 1. Update python documentation (lang/python-doc-*)
# Run "make -C lang/python-doc-html makesum"
# 2. Remove PORTREVISION in Makefile
-PYTHON_DISTVERSION= 3.14.5
+PYTHON_DISTVERSION= 3.14.6
diff --git a/lang/python314/distinfo b/lang/python314/distinfo
index 762b3cb841c8..2c5235cd6176 100644
--- a/lang/python314/distinfo
+++ b/lang/python314/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1778513616
-SHA256 (python/Python-3.14.5.tar.xz) = 7e32597b99e5d9a39abed35de4693fa169df3e5850d4c334337ffd6a19a36db6
-SIZE (python/Python-3.14.5.tar.xz) = 23903332
+TIMESTAMP = 1781244788
+SHA256 (python/Python-3.14.6.tar.xz) = 143b1dddefaec3bd2e21e3b839b34a2b7fb9842272883c576420d605e9f30c63
+SIZE (python/Python-3.14.6.tar.xz) = 23921184
diff --git a/lang/python314/files/libressl/patch-Modules___hashopenssl.c b/lang/python314/files/libressl/patch-Modules___hashopenssl.c
new file mode 100644
index 000000000000..405141320e47
--- /dev/null
+++ b/lang/python314/files/libressl/patch-Modules___hashopenssl.c
@@ -0,0 +1,26 @@
+--- Modules/_hashopenssl.c.orig 2025-02-04 14:51:09 UTC
++++ Modules/_hashopenssl.c
+@@ -44,7 +44,9 @@
+
+ #define MUNCH_SIZE INT_MAX
+
++#ifndef LIBRESSL_VERSION_NUMBER
+ #define PY_OPENSSL_HAS_SCRYPT 1
++#endif
+ #if defined(NID_sha3_224) && defined(NID_sha3_256) && defined(NID_sha3_384) && defined(NID_sha3_512)
+ #define PY_OPENSSL_HAS_SHA3 1
+ #endif
+@@ -918,9 +920,12 @@ py_evp_fromname(PyObject *module, const char *digestna
+ goto exit;
+ }
+
++#ifdef PY_OPENSSL_HAS_SHAKE
+ if ((EVP_MD_flags(digest) & EVP_MD_FLAG_XOF) == EVP_MD_FLAG_XOF) {
+ type = get_hashlib_state(module)->EVPXOFtype;
+- } else {
++ } else
++#endif
++ {
+ type = get_hashlib_state(module)->EVPtype;
+ }
+
diff --git a/lang/python314/files/patch-Makefile.pre.in b/lang/python314/files/patch-Makefile.pre.in
index e5e8bfa7e0e9..db302f9eb091 100644
--- a/lang/python314/files/patch-Makefile.pre.in
+++ b/lang/python314/files/patch-Makefile.pre.in
@@ -1,4 +1,4 @@
---- Makefile.pre.in.orig 2025-11-01 17:59:00 UTC
+--- Makefile.pre.in.orig 2025-11-02 05:07:12 UTC
+++ Makefile.pre.in
@@ -84,7 +84,6 @@ BASECPPFLAGS= @BASECPPFLAGS@
OPT= @OPT@
diff --git a/lang/python314/files/patch-Misc_python-config.sh.in b/lang/python314/files/patch-Misc__python-config.sh.in
similarity index 87%
rename from lang/python314/files/patch-Misc_python-config.sh.in
rename to lang/python314/files/patch-Misc__python-config.sh.in
index 7da9da93d197..8b4d46dcdf36 100644
--- a/lang/python314/files/patch-Misc_python-config.sh.in
+++ b/lang/python314/files/patch-Misc__python-config.sh.in
@@ -1,4 +1,4 @@
---- Misc/python-config.sh.in.orig 2025-01-16 01:47:29 UTC
+--- Misc/python-config.sh.in.orig 2025-10-07 09:34:52 UTC
+++ Misc/python-config.sh.in
@@ -21,7 +21,7 @@ installed_prefix ()
# Returns the actual prefix where this script was installed to.
diff --git a/lang/python314/files/patch-Tools_jit___llvm.py b/lang/python314/files/patch-Tools_jit___llvm.py
new file mode 100644
index 000000000000..e7a3230157c7
--- /dev/null
+++ b/lang/python314/files/patch-Tools_jit___llvm.py
@@ -0,0 +1,36 @@
+--- Tools/jit/_llvm.py.orig 2025-10-07 09:34:52 UTC
++++ Tools/jit/_llvm.py
+@@ -71,25 +71,7 @@ async def _find_tool(tool: str, *, echo: bool = False)
+ async def _find_tool(tool: str, *, echo: bool = False) -> str | None:
+ # Unversioned executables:
+ path = tool
+- if await _check_tool_version(path, echo=echo):
+- return path
+- # Versioned executables:
+- path = f"{tool}-{_LLVM_VERSION}"
+- if await _check_tool_version(path, echo=echo):
+- return path
+- # PCbuild externals:
+- externals = os.environ.get("EXTERNALS_DIR", _targets.EXTERNALS)
+- path = os.path.join(externals, _EXTERNALS_LLVM_TAG, "bin", tool)
+- if await _check_tool_version(path, echo=echo):
+- return path
+- # Homebrew-installed executables:
+- prefix = await _get_brew_llvm_prefix(echo=echo)
+- if prefix is not None:
+- path = os.path.join(prefix, "bin", tool)
+- if await _check_tool_version(path, echo=echo):
+- return path
+- # Nothing found:
+- return None
++ return path
+
+
+ async def maybe_run(
+@@ -104,5 +86,5 @@ async def run(tool: str, args: typing.Iterable[str], e
+ """Run an LLVM tool if it can be found. Otherwise, raise RuntimeError."""
+ output = await maybe_run(tool, args, echo=echo)
+ if output is None:
+- raise RuntimeError(f"Can't find {tool}-{_LLVM_VERSION}!")
++ raise RuntimeError(f"Can't find {tool}!")
+ return output
diff --git a/lang/python314/files/patch-Tools_jit___targets.py b/lang/python314/files/patch-Tools_jit___targets.py
new file mode 100644
index 000000000000..82ed8a60f3ed
--- /dev/null
+++ b/lang/python314/files/patch-Tools_jit___targets.py
@@ -0,0 +1,22 @@
+--- Tools/jit/_targets.py.orig 2025-10-07 09:34:52 UTC
++++ Tools/jit/_targets.py
+@@ -54,7 +54,7 @@ class _Target(typing.Generic[_S, _R]):
+ def _get_nop(self) -> bytes:
+ if re.fullmatch(r"aarch64-.*", self.triple):
+ nop = b"\x1f\x20\x03\xd5"
+- elif re.fullmatch(r"x86_64-.*|i686.*", self.triple):
++ elif re.fullmatch(r"amd64-.*|x86_64-.*|i686.*", self.triple):
+ nop = b"\x90"
+ else:
+ raise ValueError(f"NOP not defined for {self.triple}")
+@@ -559,6 +559,10 @@ def get_target(host: str) -> _COFF | _ELF | _MachO:
+ elif re.fullmatch(r"x86_64-.*-linux-gnu", host):
+ args = ["-fno-pic", "-mcmodel=medium", "-mlarge-data-threshold=0"]
+ condition = "defined(__x86_64__) && defined(__linux__)"
++ target = _ELF(host, condition, args=args)
++ elif re.fullmatch(r"amd64-.*-freebsd.*", host):
++ args = ["-fno-pic", "-mcmodel=medium", "-mlarge-data-threshold=0"]
++ condition = "defined(__amd64__) && defined(__FreeBSD__)"
+ target = _ELF(host, condition, args=args)
+ else:
+ raise ValueError(host)
diff --git a/lang/python314/files/patch-gh-148441-Avoid-integer-overflow-in-Expats-CharacterDataHandler b/lang/python314/files/patch-gh-148441-Avoid-integer-overflow-in-Expats-CharacterDataHandler
deleted file mode 100644
index 1625b93d088f..000000000000
--- a/lang/python314/files/patch-gh-148441-Avoid-integer-overflow-in-Expats-CharacterDataHandler
+++ /dev/null
@@ -1,70 +0,0 @@
-From 6588ca5b642a0f878197fc31afb6bfa424fd7219 Mon Sep 17 00:00:00 2001
-From: "Miss Islington (bot)"
- <31488909+miss-islington@users.noreply.github.com>
-Date: Sun, 10 May 2026 16:08:59 +0200
-Subject: [PATCH] [3.14] gh-148441: Avoid integer overflow in Expat's
- CharacterDataHandler (GH-148904) (#149638)
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-gh-148441: Avoid integer overflow in Expat's CharacterDataHandler (GH-148904)
-(cherry picked from commit bc1be4f6174086b4a46e3fe656552f5bb4e6e7b2)
-
-Co-authored-by: ByteFlow <fakeshadow1337@gmail.com>
-Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com>
----
- Lib/test/test_pyexpat.py | 14 ++++++++++++++
- .../2026-04-23-12-50-15.gh-issue-148441.zvpCkR.rst | 4 ++++
- Modules/pyexpat.c | 2 +-
- 3 files changed, 19 insertions(+), 1 deletion(-)
- create mode 100644 Misc/NEWS.d/next/Library/2026-04-23-12-50-15.gh-issue-148441.zvpCkR.rst
-
-diff --git ./Lib/test/test_pyexpat.py b/Lib/test/test_pyexpat.py
-index 465f65a03b9e15..6eda89ad2cdf2a 100644
---- ./Lib/test/test_pyexpat.py
-+++ b/Lib/test/test_pyexpat.py
-@@ -672,6 +672,20 @@ def test_change_size_2(self):
- parser.Parse(xml2, True)
- self.assertEqual(self.n, 4)
-
-+ @support.requires_resource('cpu')
-+ @support.requires_resource('walltime')
-+ @support.bigmemtest(size=2**31, memuse=4, dry_run=False)
-+ def test_large_character_data_does_not_crash(self):
-+ # See https://github.com/python/cpython/issues/148441
-+ parser = expat.ParserCreate()
-+ parser.buffer_text = True
-+ parser.buffer_size = 2**31 - 1 # INT_MAX
-+ N = 2049 * (1 << 20) - 3 # Character data greater than INT_MAX
-+ self.assertGreater(N, parser.buffer_size)
-+ parser.CharacterDataHandler = lambda text: None
-+ xml_data = b"<r>" + b"A" * N + b"</r>"
-+ self.assertEqual(parser.Parse(xml_data, True), 1)
-+
- class ElementDeclHandlerTest(unittest.TestCase):
- def test_trigger_leak(self):
- # Unfixed, this test would leak the memory of the so-called
-diff --git a/Misc/NEWS.d/next/Library/2026-04-23-12-50-15.gh-issue-148441.zvpCkR.rst b/Misc/NEWS.d/next/Library/2026-04-23-12-50-15.gh-issue-148441.zvpCkR.rst
-new file mode 100644
-index 00000000000000..762815270e4d40
---- /dev/null
-+++ ./Misc/NEWS.d/next/Library/2026-04-23-12-50-15.gh-issue-148441.zvpCkR.rst
-@@ -0,0 +1,4 @@
-+:mod:`xml.parsers.expat`: prevent a crash in
-+:meth:`~xml.parsers.expat.xmlparser.CharacterDataHandler`
-+when the character data size exceeds the parser's
-+:attr:`buffer size <xml.parsers.expat.xmlparser.buffer_size>`.
-diff --git a/Modules/pyexpat.c b/Modules/pyexpat.c
-index f82f8456e489eb..c9dc5e2211ecd5 100644
---- ./Modules/pyexpat.c
-+++ b/Modules/pyexpat.c
-@@ -389,7 +389,7 @@ my_CharacterDataHandler(void *userData, const XML_Char *data, int len)
- if (self->buffer == NULL)
- call_character_handler(self, data, len);
- else {
-- if ((self->buffer_used + len) > self->buffer_size) {
-+ if (len > (self->buffer_size - self->buffer_used)) {
- if (flush_character_buffer(self) < 0)
- return;
- /* handler might have changed; drop the rest on the floor
diff --git a/lang/python314/pkg-plist b/lang/python314/pkg-plist
index 3090f13e1c5d..3f27fb04cf0b 100644
--- a/lang/python314/pkg-plist
+++ b/lang/python314/pkg-plist
@@ -1,8313 +1,8325 @@
-bin/idle%%XYDOT%%
-bin/pydoc%%XYDOT%%
-bin/python%%XYDOT%%
-bin/python%%XYDOT%%-config
-include/python%%XYDOT%%%%ABI%%/Python.h
-include/python%%XYDOT%%%%ABI%%/abstract.h
-include/python%%XYDOT%%%%ABI%%/audit.h
-include/python%%XYDOT%%%%ABI%%/bltinmodule.h
-include/python%%XYDOT%%%%ABI%%/boolobject.h
-include/python%%XYDOT%%%%ABI%%/bytearrayobject.h
-include/python%%XYDOT%%%%ABI%%/bytesobject.h
-include/python%%XYDOT%%%%ABI%%/ceval.h
-include/python%%XYDOT%%%%ABI%%/codecs.h
-include/python%%XYDOT%%%%ABI%%/compile.h
-include/python%%XYDOT%%%%ABI%%/complexobject.h
-include/python%%XYDOT%%%%ABI%%/cpython/abstract.h
-include/python%%XYDOT%%%%ABI%%/cpython/audit.h
-include/python%%XYDOT%%%%ABI%%/cpython/bytearrayobject.h
-include/python%%XYDOT%%%%ABI%%/cpython/bytesobject.h
-include/python%%XYDOT%%%%ABI%%/cpython/cellobject.h
-include/python%%XYDOT%%%%ABI%%/cpython/ceval.h
-include/python%%XYDOT%%%%ABI%%/cpython/classobject.h
-include/python%%XYDOT%%%%ABI%%/cpython/code.h
-include/python%%XYDOT%%%%ABI%%/cpython/compile.h
-include/python%%XYDOT%%%%ABI%%/cpython/complexobject.h
-include/python%%XYDOT%%%%ABI%%/cpython/context.h
-include/python%%XYDOT%%%%ABI%%/cpython/critical_section.h
-include/python%%XYDOT%%%%ABI%%/cpython/descrobject.h
-include/python%%XYDOT%%%%ABI%%/cpython/dictobject.h
-include/python%%XYDOT%%%%ABI%%/cpython/fileobject.h
-include/python%%XYDOT%%%%ABI%%/cpython/fileutils.h
-include/python%%XYDOT%%%%ABI%%/cpython/floatobject.h
-include/python%%XYDOT%%%%ABI%%/cpython/frameobject.h
-include/python%%XYDOT%%%%ABI%%/cpython/funcobject.h
-include/python%%XYDOT%%%%ABI%%/cpython/genobject.h
-include/python%%XYDOT%%%%ABI%%/cpython/import.h
-include/python%%XYDOT%%%%ABI%%/cpython/initconfig.h
-include/python%%XYDOT%%%%ABI%%/cpython/listobject.h
-include/python%%XYDOT%%%%ABI%%/cpython/lock.h
-include/python%%XYDOT%%%%ABI%%/cpython/longintrepr.h
-include/python%%XYDOT%%%%ABI%%/cpython/longobject.h
-include/python%%XYDOT%%%%ABI%%/cpython/memoryobject.h
-include/python%%XYDOT%%%%ABI%%/cpython/methodobject.h
-include/python%%XYDOT%%%%ABI%%/cpython/modsupport.h
-include/python%%XYDOT%%%%ABI%%/cpython/monitoring.h
-include/python%%XYDOT%%%%ABI%%/cpython/object.h
-include/python%%XYDOT%%%%ABI%%/cpython/objimpl.h
-include/python%%XYDOT%%%%ABI%%/cpython/odictobject.h
-include/python%%XYDOT%%%%ABI%%/cpython/picklebufobject.h
-include/python%%XYDOT%%%%ABI%%/cpython/pthread_stubs.h
-include/python%%XYDOT%%%%ABI%%/cpython/pyatomic.h
-include/python%%XYDOT%%%%ABI%%/cpython/pyatomic_gcc.h
-include/python%%XYDOT%%%%ABI%%/cpython/pyatomic_msc.h
-include/python%%XYDOT%%%%ABI%%/cpython/pyatomic_std.h
-include/python%%XYDOT%%%%ABI%%/cpython/pyctype.h
-include/python%%XYDOT%%%%ABI%%/cpython/pydebug.h
-include/python%%XYDOT%%%%ABI%%/cpython/pyerrors.h
-include/python%%XYDOT%%%%ABI%%/cpython/pyfpe.h
-include/python%%XYDOT%%%%ABI%%/cpython/pyframe.h
-include/python%%XYDOT%%%%ABI%%/cpython/pyhash.h
-include/python%%XYDOT%%%%ABI%%/cpython/pylifecycle.h
-include/python%%XYDOT%%%%ABI%%/cpython/pymem.h
-include/python%%XYDOT%%%%ABI%%/cpython/pystate.h
-include/python%%XYDOT%%%%ABI%%/cpython/pystats.h
-include/python%%XYDOT%%%%ABI%%/cpython/pythonrun.h
-include/python%%XYDOT%%%%ABI%%/cpython/pythread.h
-include/python%%XYDOT%%%%ABI%%/cpython/pytime.h
-include/python%%XYDOT%%%%ABI%%/cpython/setobject.h
-include/python%%XYDOT%%%%ABI%%/cpython/traceback.h
-include/python%%XYDOT%%%%ABI%%/cpython/tracemalloc.h
-include/python%%XYDOT%%%%ABI%%/cpython/tupleobject.h
-include/python%%XYDOT%%%%ABI%%/cpython/unicodeobject.h
-include/python%%XYDOT%%%%ABI%%/cpython/warnings.h
-include/python%%XYDOT%%%%ABI%%/cpython/weakrefobject.h
-include/python%%XYDOT%%%%ABI%%/critical_section.h
-include/python%%XYDOT%%%%ABI%%/datetime.h
-include/python%%XYDOT%%%%ABI%%/descrobject.h
-include/python%%XYDOT%%%%ABI%%/dictobject.h
-include/python%%XYDOT%%%%ABI%%/dynamic_annotations.h
-include/python%%XYDOT%%%%ABI%%/enumobject.h
-include/python%%XYDOT%%%%ABI%%/errcode.h
-include/python%%XYDOT%%%%ABI%%/exports.h
-include/python%%XYDOT%%%%ABI%%/fileobject.h
-include/python%%XYDOT%%%%ABI%%/fileutils.h
-include/python%%XYDOT%%%%ABI%%/floatobject.h
-include/python%%XYDOT%%%%ABI%%/frameobject.h
-include/python%%XYDOT%%%%ABI%%/genericaliasobject.h
-include/python%%XYDOT%%%%ABI%%/import.h
-include/python%%XYDOT%%%%ABI%%/internal/mimalloc/mimalloc.h
-include/python%%XYDOT%%%%ABI%%/internal/mimalloc/mimalloc/atomic.h
-include/python%%XYDOT%%%%ABI%%/internal/mimalloc/mimalloc/internal.h
-include/python%%XYDOT%%%%ABI%%/internal/mimalloc/mimalloc/prim.h
-include/python%%XYDOT%%%%ABI%%/internal/mimalloc/mimalloc/track.h
-include/python%%XYDOT%%%%ABI%%/internal/mimalloc/mimalloc/types.h
-include/python%%XYDOT%%%%ABI%%/internal/pycore_abstract.h
-include/python%%XYDOT%%%%ABI%%/internal/pycore_asdl.h
-include/python%%XYDOT%%%%ABI%%/internal/pycore_ast.h
-include/python%%XYDOT%%%%ABI%%/internal/pycore_ast_state.h
-include/python%%XYDOT%%%%ABI%%/internal/pycore_atexit.h
-include/python%%XYDOT%%%%ABI%%/internal/pycore_audit.h
-include/python%%XYDOT%%%%ABI%%/internal/pycore_backoff.h
-include/python%%XYDOT%%%%ABI%%/internal/pycore_bitutils.h
-include/python%%XYDOT%%%%ABI%%/internal/pycore_blocks_output_buffer.h
-include/python%%XYDOT%%%%ABI%%/internal/pycore_brc.h
-include/python%%XYDOT%%%%ABI%%/internal/pycore_bytes_methods.h
-include/python%%XYDOT%%%%ABI%%/internal/pycore_bytesobject.h
-include/python%%XYDOT%%%%ABI%%/internal/pycore_c_array.h
-include/python%%XYDOT%%%%ABI%%/internal/pycore_call.h
-include/python%%XYDOT%%%%ABI%%/internal/pycore_capsule.h
-include/python%%XYDOT%%%%ABI%%/internal/pycore_cell.h
-include/python%%XYDOT%%%%ABI%%/internal/pycore_ceval.h
-include/python%%XYDOT%%%%ABI%%/internal/pycore_ceval_state.h
-include/python%%XYDOT%%%%ABI%%/internal/pycore_code.h
-include/python%%XYDOT%%%%ABI%%/internal/pycore_codecs.h
-include/python%%XYDOT%%%%ABI%%/internal/pycore_compile.h
-include/python%%XYDOT%%%%ABI%%/internal/pycore_complexobject.h
-include/python%%XYDOT%%%%ABI%%/internal/pycore_condvar.h
-include/python%%XYDOT%%%%ABI%%/internal/pycore_context.h
-include/python%%XYDOT%%%%ABI%%/internal/pycore_critical_section.h
-include/python%%XYDOT%%%%ABI%%/internal/pycore_crossinterp.h
-include/python%%XYDOT%%%%ABI%%/internal/pycore_crossinterp_data_registry.h
-include/python%%XYDOT%%%%ABI%%/internal/pycore_debug_offsets.h
-include/python%%XYDOT%%%%ABI%%/internal/pycore_descrobject.h
-include/python%%XYDOT%%%%ABI%%/internal/pycore_dict.h
-include/python%%XYDOT%%%%ABI%%/internal/pycore_dict_state.h
-include/python%%XYDOT%%%%ABI%%/internal/pycore_dtoa.h
-include/python%%XYDOT%%%%ABI%%/internal/pycore_emscripten_signal.h
-include/python%%XYDOT%%%%ABI%%/internal/pycore_emscripten_trampoline.h
-include/python%%XYDOT%%%%ABI%%/internal/pycore_exceptions.h
-include/python%%XYDOT%%%%ABI%%/internal/pycore_faulthandler.h
-include/python%%XYDOT%%%%ABI%%/internal/pycore_fileutils.h
-include/python%%XYDOT%%%%ABI%%/internal/pycore_fileutils_windows.h
-include/python%%XYDOT%%%%ABI%%/internal/pycore_floatobject.h
-include/python%%XYDOT%%%%ABI%%/internal/pycore_flowgraph.h
-include/python%%XYDOT%%%%ABI%%/internal/pycore_format.h
-include/python%%XYDOT%%%%ABI%%/internal/pycore_frame.h
-include/python%%XYDOT%%%%ABI%%/internal/pycore_freelist.h
-include/python%%XYDOT%%%%ABI%%/internal/pycore_freelist_state.h
-include/python%%XYDOT%%%%ABI%%/internal/pycore_function.h
-include/python%%XYDOT%%%%ABI%%/internal/pycore_gc.h
-include/python%%XYDOT%%%%ABI%%/internal/pycore_genobject.h
-include/python%%XYDOT%%%%ABI%%/internal/pycore_getopt.h
-include/python%%XYDOT%%%%ABI%%/internal/pycore_gil.h
-include/python%%XYDOT%%%%ABI%%/internal/pycore_global_objects.h
-include/python%%XYDOT%%%%ABI%%/internal/pycore_global_objects_fini_generated.h
-include/python%%XYDOT%%%%ABI%%/internal/pycore_global_strings.h
-include/python%%XYDOT%%%%ABI%%/internal/pycore_hamt.h
-include/python%%XYDOT%%%%ABI%%/internal/pycore_hashtable.h
-include/python%%XYDOT%%%%ABI%%/internal/pycore_import.h
-include/python%%XYDOT%%%%ABI%%/internal/pycore_importdl.h
-include/python%%XYDOT%%%%ABI%%/internal/pycore_index_pool.h
-include/python%%XYDOT%%%%ABI%%/internal/pycore_initconfig.h
-include/python%%XYDOT%%%%ABI%%/internal/pycore_instruction_sequence.h
-include/python%%XYDOT%%%%ABI%%/internal/pycore_instruments.h
-include/python%%XYDOT%%%%ABI%%/internal/pycore_interp.h
-include/python%%XYDOT%%%%ABI%%/internal/pycore_interp_structs.h
-include/python%%XYDOT%%%%ABI%%/internal/pycore_interpframe.h
-include/python%%XYDOT%%%%ABI%%/internal/pycore_interpframe_structs.h
-include/python%%XYDOT%%%%ABI%%/internal/pycore_interpolation.h
-include/python%%XYDOT%%%%ABI%%/internal/pycore_intrinsics.h
-include/python%%XYDOT%%%%ABI%%/internal/pycore_jit.h
-include/python%%XYDOT%%%%ABI%%/internal/pycore_list.h
-include/python%%XYDOT%%%%ABI%%/internal/pycore_llist.h
-include/python%%XYDOT%%%%ABI%%/internal/pycore_lock.h
-include/python%%XYDOT%%%%ABI%%/internal/pycore_long.h
-include/python%%XYDOT%%%%ABI%%/internal/pycore_magic_number.h
-include/python%%XYDOT%%%%ABI%%/internal/pycore_mimalloc.h
-include/python%%XYDOT%%%%ABI%%/internal/pycore_memoryobject.h
-include/python%%XYDOT%%%%ABI%%/internal/pycore_modsupport.h
-include/python%%XYDOT%%%%ABI%%/internal/pycore_moduleobject.h
-include/python%%XYDOT%%%%ABI%%/internal/pycore_namespace.h
-include/python%%XYDOT%%%%ABI%%/internal/pycore_object.h
-include/python%%XYDOT%%%%ABI%%/internal/pycore_object_alloc.h
-include/python%%XYDOT%%%%ABI%%/internal/pycore_object_deferred.h
-include/python%%XYDOT%%%%ABI%%/internal/pycore_object_stack.h
-include/python%%XYDOT%%%%ABI%%/internal/pycore_object_state.h
-include/python%%XYDOT%%%%ABI%%/internal/pycore_obmalloc.h
-include/python%%XYDOT%%%%ABI%%/internal/pycore_obmalloc_init.h
-include/python%%XYDOT%%%%ABI%%/internal/pycore_opcode_metadata.h
-include/python%%XYDOT%%%%ABI%%/internal/pycore_opcode_utils.h
-include/python%%XYDOT%%%%ABI%%/internal/pycore_optimizer.h
-include/python%%XYDOT%%%%ABI%%/internal/pycore_parking_lot.h
-include/python%%XYDOT%%%%ABI%%/internal/pycore_parser.h
-include/python%%XYDOT%%%%ABI%%/internal/pycore_pathconfig.h
-include/python%%XYDOT%%%%ABI%%/internal/pycore_pyarena.h
-include/python%%XYDOT%%%%ABI%%/internal/pycore_pyatomic_ft_wrappers.h
-include/python%%XYDOT%%%%ABI%%/internal/pycore_pybuffer.h
-include/python%%XYDOT%%%%ABI%%/internal/pycore_pyerrors.h
-include/python%%XYDOT%%%%ABI%%/internal/pycore_pyhash.h
-include/python%%XYDOT%%%%ABI%%/internal/pycore_pylifecycle.h
-include/python%%XYDOT%%%%ABI%%/internal/pycore_pymath.h
-include/python%%XYDOT%%%%ABI%%/internal/pycore_pymem.h
-include/python%%XYDOT%%%%ABI%%/internal/pycore_pymem_init.h
-include/python%%XYDOT%%%%ABI%%/internal/pycore_pystate.h
-include/python%%XYDOT%%%%ABI%%/internal/pycore_pystats.h
-include/python%%XYDOT%%%%ABI%%/internal/pycore_pythonrun.h
-include/python%%XYDOT%%%%ABI%%/internal/pycore_pythread.h
-include/python%%XYDOT%%%%ABI%%/internal/pycore_qsbr.h
-include/python%%XYDOT%%%%ABI%%/internal/pycore_range.h
-include/python%%XYDOT%%%%ABI%%/internal/pycore_runtime.h
-include/python%%XYDOT%%%%ABI%%/internal/pycore_runtime_structs.h
-include/python%%XYDOT%%%%ABI%%/internal/pycore_runtime_init.h
-include/python%%XYDOT%%%%ABI%%/internal/pycore_runtime_init_generated.h
-include/python%%XYDOT%%%%ABI%%/internal/pycore_semaphore.h
-include/python%%XYDOT%%%%ABI%%/internal/pycore_setobject.h
-include/python%%XYDOT%%%%ABI%%/internal/pycore_signal.h
-include/python%%XYDOT%%%%ABI%%/internal/pycore_sliceobject.h
-include/python%%XYDOT%%%%ABI%%/internal/pycore_stackref.h
-include/python%%XYDOT%%%%ABI%%/internal/pycore_stats.h
-include/python%%XYDOT%%%%ABI%%/internal/pycore_strhex.h
-include/python%%XYDOT%%%%ABI%%/internal/pycore_structs.h
-include/python%%XYDOT%%%%ABI%%/internal/pycore_structseq.h
-include/python%%XYDOT%%%%ABI%%/internal/pycore_symtable.h
-include/python%%XYDOT%%%%ABI%%/internal/pycore_sysmodule.h
-include/python%%XYDOT%%%%ABI%%/internal/pycore_template.h
-include/python%%XYDOT%%%%ABI%%/internal/pycore_time.h
-include/python%%XYDOT%%%%ABI%%/internal/pycore_typedefs.h
-include/python%%XYDOT%%%%ABI%%/internal/pycore_token.h
-include/python%%XYDOT%%%%ABI%%/internal/pycore_traceback.h
-include/python%%XYDOT%%%%ABI%%/internal/pycore_tracemalloc.h
-include/python%%XYDOT%%%%ABI%%/internal/pycore_tstate.h
-include/python%%XYDOT%%%%ABI%%/internal/pycore_tuple.h
-include/python%%XYDOT%%%%ABI%%/internal/pycore_typeobject.h
-include/python%%XYDOT%%%%ABI%%/internal/pycore_typevarobject.h
-include/python%%XYDOT%%%%ABI%%/internal/pycore_ucnhash.h
-include/python%%XYDOT%%%%ABI%%/internal/pycore_unicodeobject.h
-include/python%%XYDOT%%%%ABI%%/internal/pycore_unicodeobject_generated.h
-include/python%%XYDOT%%%%ABI%%/internal/pycore_unionobject.h
-include/python%%XYDOT%%%%ABI%%/internal/pycore_uniqueid.h
-include/python%%XYDOT%%%%ABI%%/internal/pycore_uop_ids.h
-include/python%%XYDOT%%%%ABI%%/internal/pycore_uop_metadata.h
-include/python%%XYDOT%%%%ABI%%/internal/pycore_warnings.h
-include/python%%XYDOT%%%%ABI%%/internal/pycore_weakref.h
-include/python%%XYDOT%%%%ABI%%/intrcheck.h
-include/python%%XYDOT%%%%ABI%%/iterobject.h
-include/python%%XYDOT%%%%ABI%%/listobject.h
-include/python%%XYDOT%%%%ABI%%/lock.h
-include/python%%XYDOT%%%%ABI%%/longobject.h
-include/python%%XYDOT%%%%ABI%%/marshal.h
-include/python%%XYDOT%%%%ABI%%/memoryobject.h
-include/python%%XYDOT%%%%ABI%%/methodobject.h
-include/python%%XYDOT%%%%ABI%%/modsupport.h
-include/python%%XYDOT%%%%ABI%%/moduleobject.h
-include/python%%XYDOT%%%%ABI%%/monitoring.h
-include/python%%XYDOT%%%%ABI%%/object.h
-include/python%%XYDOT%%%%ABI%%/objimpl.h
-include/python%%XYDOT%%%%ABI%%/opcode.h
-include/python%%XYDOT%%%%ABI%%/opcode_ids.h
-include/python%%XYDOT%%%%ABI%%/osdefs.h
-include/python%%XYDOT%%%%ABI%%/osmodule.h
-include/python%%XYDOT%%%%ABI%%/patchlevel.h
-include/python%%XYDOT%%%%ABI%%/py_curses.h
-include/python%%XYDOT%%%%ABI%%/pyatomic.h
-include/python%%XYDOT%%%%ABI%%/pybuffer.h
-include/python%%XYDOT%%%%ABI%%/pycapsule.h
-include/python%%XYDOT%%%%ABI%%/pyconfig.h
-include/python%%XYDOT%%%%ABI%%/pydtrace.h
-include/python%%XYDOT%%%%ABI%%/pyerrors.h
-include/python%%XYDOT%%%%ABI%%/pyexpat.h
-include/python%%XYDOT%%%%ABI%%/pyframe.h
-include/python%%XYDOT%%%%ABI%%/pyhash.h
-include/python%%XYDOT%%%%ABI%%/pylifecycle.h
-include/python%%XYDOT%%%%ABI%%/pymacconfig.h
-include/python%%XYDOT%%%%ABI%%/pymacro.h
-include/python%%XYDOT%%%%ABI%%/pymath.h
-include/python%%XYDOT%%%%ABI%%/pymem.h
-include/python%%XYDOT%%%%ABI%%/pyport.h
-include/python%%XYDOT%%%%ABI%%/pystate.h
-include/python%%XYDOT%%%%ABI%%/pystats.h
-include/python%%XYDOT%%%%ABI%%/pystrcmp.h
-include/python%%XYDOT%%%%ABI%%/pystrtod.h
-include/python%%XYDOT%%%%ABI%%/pythonrun.h
-include/python%%XYDOT%%%%ABI%%/pythread.h
-include/python%%XYDOT%%%%ABI%%/pytypedefs.h
-include/python%%XYDOT%%%%ABI%%/rangeobject.h
-include/python%%XYDOT%%%%ABI%%/refcount.h
-include/python%%XYDOT%%%%ABI%%/setobject.h
-include/python%%XYDOT%%%%ABI%%/sliceobject.h
-include/python%%XYDOT%%%%ABI%%/structmember.h
-include/python%%XYDOT%%%%ABI%%/structseq.h
-include/python%%XYDOT%%%%ABI%%/sysmodule.h
-include/python%%XYDOT%%%%ABI%%/traceback.h
-include/python%%XYDOT%%%%ABI%%/tupleobject.h
-include/python%%XYDOT%%%%ABI%%/typeslots.h
-include/python%%XYDOT%%%%ABI%%/unicodeobject.h
-include/python%%XYDOT%%%%ABI%%/warnings.h
-include/python%%XYDOT%%%%ABI%%/weakrefobject.h
-lib/libpython%%XYDOT%%%%ABI%%.so
-lib/libpython%%XYDOT%%%%ABI%%.so.1
-lib/libpython%%XYDOT%%%%ABI%%.so.1.0
-lib/libpython%%XYDOT%%%%ABI%%.so.1.0-gdb.py
-lib/python%%XYDOT%%/LICENSE.txt
-lib/python%%XYDOT%%/__future__.py
-lib/python%%XYDOT%%/__hello__.py
-lib/python%%XYDOT%%/__phello__/__init__.py
-lib/python%%XYDOT%%/__phello__/__pycache__/__init__.cpython-%%XY%%.opt-1.pyc
-lib/python%%XYDOT%%/__phello__/__pycache__/__init__.cpython-%%XY%%.opt-2.pyc
-lib/python%%XYDOT%%/__phello__/__pycache__/__init__.cpython-%%XY%%.pyc
-lib/python%%XYDOT%%/__phello__/__pycache__/spam.cpython-%%XY%%.opt-1.pyc
-lib/python%%XYDOT%%/__phello__/__pycache__/spam.cpython-%%XY%%.opt-2.pyc
-lib/python%%XYDOT%%/__phello__/__pycache__/spam.cpython-%%XY%%.pyc
-lib/python%%XYDOT%%/__phello__/spam.py
-lib/python%%XYDOT%%/__pycache__/__future__.cpython-%%XY%%.opt-1.pyc
-lib/python%%XYDOT%%/__pycache__/__future__.cpython-%%XY%%.opt-2.pyc
-lib/python%%XYDOT%%/__pycache__/__future__.cpython-%%XY%%.pyc
-lib/python%%XYDOT%%/__pycache__/__hello__.cpython-%%XY%%.opt-1.pyc
-lib/python%%XYDOT%%/__pycache__/__hello__.cpython-%%XY%%.opt-2.pyc
-lib/python%%XYDOT%%/__pycache__/__hello__.cpython-%%XY%%.pyc
-lib/python%%XYDOT%%/__pycache__/_aix_support.cpython-%%XY%%.opt-1.pyc
-lib/python%%XYDOT%%/__pycache__/_aix_support.cpython-%%XY%%.opt-2.pyc
-lib/python%%XYDOT%%/__pycache__/_aix_support.cpython-%%XY%%.pyc
-lib/python%%XYDOT%%/__pycache__/_apple_support.cpython-%%XY%%.opt-1.pyc
-lib/python%%XYDOT%%/__pycache__/_apple_support.cpython-%%XY%%.opt-2.pyc
-lib/python%%XYDOT%%/__pycache__/_apple_support.cpython-%%XY%%.pyc
-lib/python%%XYDOT%%/__pycache__/_android_support.cpython-%%XY%%.opt-1.pyc
-lib/python%%XYDOT%%/__pycache__/_android_support.cpython-%%XY%%.opt-2.pyc
-lib/python%%XYDOT%%/__pycache__/_android_support.cpython-%%XY%%.pyc
-lib/python%%XYDOT%%/__pycache__/_ast_unparse.cpython-%%XY%%.opt-1.pyc
-lib/python%%XYDOT%%/__pycache__/_ast_unparse.cpython-%%XY%%.opt-2.pyc
-lib/python%%XYDOT%%/__pycache__/_ast_unparse.cpython-%%XY%%.pyc
-lib/python%%XYDOT%%/__pycache__/_collections_abc.cpython-%%XY%%.opt-1.pyc
-lib/python%%XYDOT%%/__pycache__/_collections_abc.cpython-%%XY%%.opt-2.pyc
-lib/python%%XYDOT%%/__pycache__/_collections_abc.cpython-%%XY%%.pyc
-lib/python%%XYDOT%%/__pycache__/_colorize.cpython-%%XY%%.opt-1.pyc
-lib/python%%XYDOT%%/__pycache__/_colorize.cpython-%%XY%%.opt-2.pyc
-lib/python%%XYDOT%%/__pycache__/_colorize.cpython-%%XY%%.pyc
-lib/python%%XYDOT%%/__pycache__/_compat_pickle.cpython-%%XY%%.opt-1.pyc
-lib/python%%XYDOT%%/__pycache__/_compat_pickle.cpython-%%XY%%.opt-2.pyc
-lib/python%%XYDOT%%/__pycache__/_compat_pickle.cpython-%%XY%%.pyc
-lib/python%%XYDOT%%/__pycache__/_ios_support.cpython-%%XY%%.opt-1.pyc
-lib/python%%XYDOT%%/__pycache__/_ios_support.cpython-%%XY%%.opt-2.pyc
-lib/python%%XYDOT%%/__pycache__/_ios_support.cpython-%%XY%%.pyc
-lib/python%%XYDOT%%/__pycache__/_markupbase.cpython-%%XY%%.opt-1.pyc
-lib/python%%XYDOT%%/__pycache__/_markupbase.cpython-%%XY%%.opt-2.pyc
-lib/python%%XYDOT%%/__pycache__/_markupbase.cpython-%%XY%%.pyc
-lib/python%%XYDOT%%/__pycache__/_opcode_metadata.cpython-%%XY%%.opt-1.pyc
-lib/python%%XYDOT%%/__pycache__/_opcode_metadata.cpython-%%XY%%.opt-2.pyc
-lib/python%%XYDOT%%/__pycache__/_opcode_metadata.cpython-%%XY%%.pyc
-lib/python%%XYDOT%%/__pycache__/_osx_support.cpython-%%XY%%.opt-1.pyc
-lib/python%%XYDOT%%/__pycache__/_osx_support.cpython-%%XY%%.opt-2.pyc
-lib/python%%XYDOT%%/__pycache__/_osx_support.cpython-%%XY%%.pyc
-lib/python%%XYDOT%%/__pycache__/_py_abc.cpython-%%XY%%.opt-1.pyc
-lib/python%%XYDOT%%/__pycache__/_py_abc.cpython-%%XY%%.opt-2.pyc
-lib/python%%XYDOT%%/__pycache__/_py_abc.cpython-%%XY%%.pyc
-lib/python%%XYDOT%%/__pycache__/_py_warnings.cpython-%%XY%%.opt-1.pyc
-lib/python%%XYDOT%%/__pycache__/_py_warnings.cpython-%%XY%%.opt-2.pyc
-lib/python%%XYDOT%%/__pycache__/_py_warnings.cpython-%%XY%%.pyc
-lib/python%%XYDOT%%/__pycache__/_pydatetime.cpython-%%XY%%.opt-1.pyc
-lib/python%%XYDOT%%/__pycache__/_pydatetime.cpython-%%XY%%.opt-2.pyc
-lib/python%%XYDOT%%/__pycache__/_pydatetime.cpython-%%XY%%.pyc
-lib/python%%XYDOT%%/__pycache__/_pydecimal.cpython-%%XY%%.opt-1.pyc
-lib/python%%XYDOT%%/__pycache__/_pydecimal.cpython-%%XY%%.opt-2.pyc
-lib/python%%XYDOT%%/__pycache__/_pydecimal.cpython-%%XY%%.pyc
-lib/python%%XYDOT%%/__pycache__/_pyio.cpython-%%XY%%.opt-1.pyc
-lib/python%%XYDOT%%/__pycache__/_pyio.cpython-%%XY%%.opt-2.pyc
-lib/python%%XYDOT%%/__pycache__/_pyio.cpython-%%XY%%.pyc
-lib/python%%XYDOT%%/__pycache__/_pylong.cpython-%%XY%%.opt-1.pyc
-lib/python%%XYDOT%%/__pycache__/_pylong.cpython-%%XY%%.opt-2.pyc
-lib/python%%XYDOT%%/__pycache__/_pylong.cpython-%%XY%%.pyc
-lib/python%%XYDOT%%/__pycache__/_sitebuiltins.cpython-%%XY%%.opt-1.pyc
-lib/python%%XYDOT%%/__pycache__/_sitebuiltins.cpython-%%XY%%.opt-2.pyc
-lib/python%%XYDOT%%/__pycache__/_sitebuiltins.cpython-%%XY%%.pyc
-lib/python%%XYDOT%%/__pycache__/_strptime.cpython-%%XY%%.opt-1.pyc
-lib/python%%XYDOT%%/__pycache__/_strptime.cpython-%%XY%%.opt-2.pyc
-lib/python%%XYDOT%%/__pycache__/_strptime.cpython-%%XY%%.pyc
-lib/python%%XYDOT%%/__pycache__/_sysconfigdata_%%ABI%%_freebsd_.cpython-%%XY%%.opt-1.pyc
-lib/python%%XYDOT%%/__pycache__/_sysconfigdata_%%ABI%%_freebsd_.cpython-%%XY%%.opt-2.pyc
-lib/python%%XYDOT%%/__pycache__/_sysconfigdata_%%ABI%%_freebsd_.cpython-%%XY%%.pyc
-lib/python%%XYDOT%%/__pycache__/_threading_local.cpython-%%XY%%.opt-1.pyc
-lib/python%%XYDOT%%/__pycache__/_threading_local.cpython-%%XY%%.opt-2.pyc
-lib/python%%XYDOT%%/__pycache__/_threading_local.cpython-%%XY%%.pyc
-lib/python%%XYDOT%%/__pycache__/_weakrefset.cpython-%%XY%%.opt-1.pyc
-lib/python%%XYDOT%%/__pycache__/_weakrefset.cpython-%%XY%%.opt-2.pyc
-lib/python%%XYDOT%%/__pycache__/_weakrefset.cpython-%%XY%%.pyc
-lib/python%%XYDOT%%/__pycache__/abc.cpython-%%XY%%.opt-1.pyc
-lib/python%%XYDOT%%/__pycache__/abc.cpython-%%XY%%.opt-2.pyc
-lib/python%%XYDOT%%/__pycache__/abc.cpython-%%XY%%.pyc
-lib/python%%XYDOT%%/__pycache__/annotationlib.cpython-%%XY%%.opt-1.pyc
-lib/python%%XYDOT%%/__pycache__/annotationlib.cpython-%%XY%%.opt-2.pyc
-lib/python%%XYDOT%%/__pycache__/annotationlib.cpython-%%XY%%.pyc
-lib/python%%XYDOT%%/__pycache__/antigravity.cpython-%%XY%%.opt-1.pyc
-lib/python%%XYDOT%%/__pycache__/antigravity.cpython-%%XY%%.opt-2.pyc
-lib/python%%XYDOT%%/__pycache__/antigravity.cpython-%%XY%%.pyc
-lib/python%%XYDOT%%/__pycache__/argparse.cpython-%%XY%%.opt-1.pyc
-lib/python%%XYDOT%%/__pycache__/argparse.cpython-%%XY%%.opt-2.pyc
-lib/python%%XYDOT%%/__pycache__/argparse.cpython-%%XY%%.pyc
-lib/python%%XYDOT%%/__pycache__/ast.cpython-%%XY%%.opt-1.pyc
-lib/python%%XYDOT%%/__pycache__/ast.cpython-%%XY%%.opt-2.pyc
-lib/python%%XYDOT%%/__pycache__/ast.cpython-%%XY%%.pyc
-lib/python%%XYDOT%%/__pycache__/base64.cpython-%%XY%%.opt-1.pyc
-lib/python%%XYDOT%%/__pycache__/base64.cpython-%%XY%%.opt-2.pyc
-lib/python%%XYDOT%%/__pycache__/base64.cpython-%%XY%%.pyc
-lib/python%%XYDOT%%/__pycache__/bdb.cpython-%%XY%%.opt-1.pyc
-lib/python%%XYDOT%%/__pycache__/bdb.cpython-%%XY%%.opt-2.pyc
-lib/python%%XYDOT%%/__pycache__/bdb.cpython-%%XY%%.pyc
-lib/python%%XYDOT%%/__pycache__/bisect.cpython-%%XY%%.opt-1.pyc
-lib/python%%XYDOT%%/__pycache__/bisect.cpython-%%XY%%.opt-2.pyc
-lib/python%%XYDOT%%/__pycache__/bisect.cpython-%%XY%%.pyc
-lib/python%%XYDOT%%/__pycache__/bz2.cpython-%%XY%%.opt-1.pyc
-lib/python%%XYDOT%%/__pycache__/bz2.cpython-%%XY%%.opt-2.pyc
-lib/python%%XYDOT%%/__pycache__/bz2.cpython-%%XY%%.pyc
-lib/python%%XYDOT%%/__pycache__/cProfile.cpython-%%XY%%.opt-1.pyc
-lib/python%%XYDOT%%/__pycache__/cProfile.cpython-%%XY%%.opt-2.pyc
-lib/python%%XYDOT%%/__pycache__/cProfile.cpython-%%XY%%.pyc
-lib/python%%XYDOT%%/__pycache__/calendar.cpython-%%XY%%.opt-1.pyc
-lib/python%%XYDOT%%/__pycache__/calendar.cpython-%%XY%%.opt-2.pyc
-lib/python%%XYDOT%%/__pycache__/calendar.cpython-%%XY%%.pyc
-lib/python%%XYDOT%%/__pycache__/cmd.cpython-%%XY%%.opt-1.pyc
-lib/python%%XYDOT%%/__pycache__/cmd.cpython-%%XY%%.opt-2.pyc
-lib/python%%XYDOT%%/__pycache__/cmd.cpython-%%XY%%.pyc
-lib/python%%XYDOT%%/__pycache__/code.cpython-%%XY%%.opt-1.pyc
-lib/python%%XYDOT%%/__pycache__/code.cpython-%%XY%%.opt-2.pyc
-lib/python%%XYDOT%%/__pycache__/code.cpython-%%XY%%.pyc
-lib/python%%XYDOT%%/__pycache__/codecs.cpython-%%XY%%.opt-1.pyc
-lib/python%%XYDOT%%/__pycache__/codecs.cpython-%%XY%%.opt-2.pyc
-lib/python%%XYDOT%%/__pycache__/codecs.cpython-%%XY%%.pyc
-lib/python%%XYDOT%%/__pycache__/codeop.cpython-%%XY%%.opt-1.pyc
-lib/python%%XYDOT%%/__pycache__/codeop.cpython-%%XY%%.opt-2.pyc
-lib/python%%XYDOT%%/__pycache__/codeop.cpython-%%XY%%.pyc
-lib/python%%XYDOT%%/__pycache__/colorsys.cpython-%%XY%%.opt-1.pyc
-lib/python%%XYDOT%%/__pycache__/colorsys.cpython-%%XY%%.opt-2.pyc
-lib/python%%XYDOT%%/__pycache__/colorsys.cpython-%%XY%%.pyc
-lib/python%%XYDOT%%/__pycache__/compileall.cpython-%%XY%%.opt-1.pyc
-lib/python%%XYDOT%%/__pycache__/compileall.cpython-%%XY%%.opt-2.pyc
-lib/python%%XYDOT%%/__pycache__/compileall.cpython-%%XY%%.pyc
-lib/python%%XYDOT%%/__pycache__/configparser.cpython-%%XY%%.opt-1.pyc
-lib/python%%XYDOT%%/__pycache__/configparser.cpython-%%XY%%.opt-2.pyc
-lib/python%%XYDOT%%/__pycache__/configparser.cpython-%%XY%%.pyc
-lib/python%%XYDOT%%/__pycache__/contextlib.cpython-%%XY%%.opt-1.pyc
-lib/python%%XYDOT%%/__pycache__/contextlib.cpython-%%XY%%.opt-2.pyc
-lib/python%%XYDOT%%/__pycache__/contextlib.cpython-%%XY%%.pyc
-lib/python%%XYDOT%%/__pycache__/contextvars.cpython-%%XY%%.opt-1.pyc
-lib/python%%XYDOT%%/__pycache__/contextvars.cpython-%%XY%%.opt-2.pyc
-lib/python%%XYDOT%%/__pycache__/contextvars.cpython-%%XY%%.pyc
-lib/python%%XYDOT%%/__pycache__/copy.cpython-%%XY%%.opt-1.pyc
-lib/python%%XYDOT%%/__pycache__/copy.cpython-%%XY%%.opt-2.pyc
-lib/python%%XYDOT%%/__pycache__/copy.cpython-%%XY%%.pyc
-lib/python%%XYDOT%%/__pycache__/copyreg.cpython-%%XY%%.opt-1.pyc
-lib/python%%XYDOT%%/__pycache__/copyreg.cpython-%%XY%%.opt-2.pyc
-lib/python%%XYDOT%%/__pycache__/copyreg.cpython-%%XY%%.pyc
-lib/python%%XYDOT%%/__pycache__/csv.cpython-%%XY%%.opt-1.pyc
-lib/python%%XYDOT%%/__pycache__/csv.cpython-%%XY%%.opt-2.pyc
-lib/python%%XYDOT%%/__pycache__/csv.cpython-%%XY%%.pyc
-lib/python%%XYDOT%%/__pycache__/dataclasses.cpython-%%XY%%.opt-1.pyc
-lib/python%%XYDOT%%/__pycache__/dataclasses.cpython-%%XY%%.opt-2.pyc
-lib/python%%XYDOT%%/__pycache__/dataclasses.cpython-%%XY%%.pyc
-lib/python%%XYDOT%%/__pycache__/datetime.cpython-%%XY%%.opt-1.pyc
-lib/python%%XYDOT%%/__pycache__/datetime.cpython-%%XY%%.opt-2.pyc
-lib/python%%XYDOT%%/__pycache__/datetime.cpython-%%XY%%.pyc
-lib/python%%XYDOT%%/__pycache__/decimal.cpython-%%XY%%.opt-1.pyc
-lib/python%%XYDOT%%/__pycache__/decimal.cpython-%%XY%%.opt-2.pyc
-lib/python%%XYDOT%%/__pycache__/decimal.cpython-%%XY%%.pyc
-lib/python%%XYDOT%%/__pycache__/difflib.cpython-%%XY%%.opt-1.pyc
-lib/python%%XYDOT%%/__pycache__/difflib.cpython-%%XY%%.opt-2.pyc
-lib/python%%XYDOT%%/__pycache__/difflib.cpython-%%XY%%.pyc
-lib/python%%XYDOT%%/__pycache__/dis.cpython-%%XY%%.opt-1.pyc
-lib/python%%XYDOT%%/__pycache__/dis.cpython-%%XY%%.opt-2.pyc
-lib/python%%XYDOT%%/__pycache__/dis.cpython-%%XY%%.pyc
-lib/python%%XYDOT%%/__pycache__/doctest.cpython-%%XY%%.opt-1.pyc
-lib/python%%XYDOT%%/__pycache__/doctest.cpython-%%XY%%.opt-2.pyc
-lib/python%%XYDOT%%/__pycache__/doctest.cpython-%%XY%%.pyc
-lib/python%%XYDOT%%/__pycache__/enum.cpython-%%XY%%.opt-1.pyc
-lib/python%%XYDOT%%/__pycache__/enum.cpython-%%XY%%.opt-2.pyc
-lib/python%%XYDOT%%/__pycache__/enum.cpython-%%XY%%.pyc
-lib/python%%XYDOT%%/__pycache__/filecmp.cpython-%%XY%%.opt-1.pyc
-lib/python%%XYDOT%%/__pycache__/filecmp.cpython-%%XY%%.opt-2.pyc
-lib/python%%XYDOT%%/__pycache__/filecmp.cpython-%%XY%%.pyc
-lib/python%%XYDOT%%/__pycache__/fileinput.cpython-%%XY%%.opt-1.pyc
-lib/python%%XYDOT%%/__pycache__/fileinput.cpython-%%XY%%.opt-2.pyc
-lib/python%%XYDOT%%/__pycache__/fileinput.cpython-%%XY%%.pyc
-lib/python%%XYDOT%%/__pycache__/fnmatch.cpython-%%XY%%.opt-1.pyc
-lib/python%%XYDOT%%/__pycache__/fnmatch.cpython-%%XY%%.opt-2.pyc
*** 16166 LINES SKIPPED ***