On Fri, Oct 23, 2026 at 02:37:07PM +0100, Stuart Henderson wrote:
> https://discuss.python.org/t/python-3-15-1-3-14-9-and-3-13-17-are-out/109595
> I've also dropped old @pkgpath markers for lang/python/3.{8,9,10,11}
> upgrade path which are no longer useful, and the @pkgpath / @conflict
> bodges for removed py3-* ports added to cope with the py3.13 -> py3.14
> bump (the latter need to stay in -stable).
> (-current diff inline, -stable diff.gz attached)
> ok?
Looks good and I like that you're taking the opportunity for some
cleanup.
ok kmos
--Kurt
> Index: Makefile
> ===================================================================
> RCS file: /cvs/ports/lang/python/3/Makefile,v
> diff -u -p -r1.36 Makefile
> --- Makefile 7 Oct 2026 20:03:20 -0000 1.36
> +++ Makefile 23 Oct 2026 13:30:51 -0000
> @@ -3,11 +3,14 @@
> # requirement of the PSF license, if it constitutes a change to
> # Python itself.
>
> -FULL_VERSION = 3.14.8
> +FULL_VERSION = 3.14.9
> SHARED_LIBS = python3.14 0.0
> VERSION_SPEC = >=3.14
> PORTROACH = limit:^3\.14
>
> +# keep above 8.0-stable
> +REVISION = 0
> +
> AUTOCONF_VERSION = 2.72
>
> # XXX - should come from expat_config.h, which isn't installed in base
> @@ -17,7 +20,8 @@ CONFIGURE_ENV += ac_cv_working_openssl_h
> TCLTK_CFLAGS="-I${MODTCL_INCDIR} -I${MODTK_INCDIR}
> -I${X11BASE}/include" \
> TCLTK_LIBS="-L${X11BASE}/lib -l${MODTCL_LIB} -l${MODTK_LIB} -lpthread"
>
> -# disable bundled pip in favour of the version from devel/py-pip
> +# disable bundled pip executable in favour of the version from devel/py-pip
> +# (ensurepip is still included in packages and used e.g. for venv)
> CONFIGURE_ARGS += --with-ensurepip=no
>
> .include <bsd.port.mk>
> Index: distinfo
> ===================================================================
> RCS file: /cvs/ports/lang/python/3/distinfo,v
> diff -u -p -r1.16 distinfo
> --- distinfo 7 Oct 2026 20:03:20 -0000 1.16
> +++ distinfo 23 Oct 2026 13:30:51 -0000
> @@ -1,2 +1,2 @@
> -SHA256 (Python-3.14.8.tgz) = plsgpyjxafTmauFD9Asb09M8ONdwJRZj9ifJdnt5shA=
> -SIZE (Python-3.14.8.tgz) = 31525240
> +SHA256 (Python-3.14.9.tgz) = i0foXuZ+k5Rek2IKBRqPRL/B6XNe1nB10Wb0p0t6Bgs=
> +SIZE (Python-3.14.9.tgz) = 31587333
> Index: patches/patch-Modules__hashopenssl_c
> ===================================================================
> RCS file: /cvs/ports/lang/python/3/patches/patch-Modules__hashopenssl_c,v
> diff -u -p -r1.6 patch-Modules__hashopenssl_c
> --- patches/patch-Modules__hashopenssl_c 12 May 2026 13:45:10 -0000
> 1.6
> +++ patches/patch-Modules__hashopenssl_c 23 Oct 2026 13:30:51 -0000
> @@ -11,7 +11,7 @@ Index: Modules/_hashopenssl.c
> #if defined(NID_sha3_224) && defined(NID_sha3_256) && defined(NID_sha3_384)
> && defined(NID_sha3_512)
> #define PY_OPENSSL_HAS_SHA3 1
> #endif
> -@@ -963,11 +965,15 @@ _hashlib_HASH(PyObject *module, const char *digestname
> +@@ -970,11 +972,15 @@ _hashlib_HASH(PyObject *module, const char *digestname
> goto exit;
> }
>
> Index: patches/patch-configure_ac
> ===================================================================
> RCS file: /cvs/ports/lang/python/3/patches/patch-configure_ac,v
> diff -u -p -r1.9 patch-configure_ac
> --- patches/patch-configure_ac 7 Oct 2026 20:03:20 -0000 1.9
> +++ patches/patch-configure_ac 23 Oct 2026 13:30:51 -0000
> @@ -6,7 +6,7 @@
> Index: configure.ac
> --- configure.ac.orig
> +++ configure.ac
> -@@ -251,7 +251,7 @@ VERSION=PYTHON_VERSION
> +@@ -257,7 +257,7 @@ VERSION=PYTHON_VERSION
>
> # Version number of Python's own shared library file.
> AC_SUBST([SOVERSION])
> @@ -15,7 +15,7 @@ Index: configure.ac
>
> # The later definition of _XOPEN_SOURCE and _POSIX_C_SOURCE disables
> # certain features on NetBSD, so we need _NETBSD_SOURCE to re-enable
> -@@ -1177,6 +1177,7 @@ AS_CASE([$ac_sys_system],
> +@@ -1183,6 +1183,7 @@ AS_CASE([$ac_sys_system],
> [Darwin*], [MULTIARCH=""],
> [iOS], [MULTIARCH=""],
> [FreeBSD*], [MULTIARCH=""],
> @@ -23,7 +23,7 @@ Index: configure.ac
> [MULTIARCH=$($CC --print-multiarch 2>/dev/null)]
> )
> AC_SUBST([MULTIARCH])
> -@@ -1926,13 +1927,13 @@ esac
> +@@ -1932,13 +1933,13 @@ esac
> [AC_MSG_RESULT([no])])
> if test "$Py_LTO" = 'true' ; then
> case $ac_cv_cc_name in
> @@ -39,7 +39,7 @@ Index: configure.ac
> AC_SUBST([LLVM_AR_FOUND])
> if test -n "${LLVM_AR}" -a -x "${LLVM_AR}"
> then
> -@@ -2056,7 +2057,7 @@ fi
> +@@ -2062,7 +2063,7 @@ fi
> LLVM_PROF_ERR=no
>
> case "$ac_cv_cc_name" in
> @@ -48,7 +48,7 @@ Index: configure.ac
> # Any changes made here should be reflected in the GCC+Darwin case below
> PGO_PROF_GEN_FLAG="-fprofile-instr-generate"
> PGO_PROF_USE_FLAG="-fprofile-instr-use=\"\$(shell
> pwd)/code.profclangd\""
> -@@ -4496,11 +4497,7 @@ dnl Detect Tcl/Tk. Use pkg-config if available.
> +@@ -4502,11 +4503,7 @@ dnl Detect Tcl/Tk. Use pkg-config if available.
> dnl
> found_tcltk=no
> for _QUERY in \
> Index: pkg/PLIST-gdbm
> ===================================================================
> RCS file: /cvs/ports/lang/python/3/pkg/PLIST-gdbm,v
> diff -u -p -r1.7 PLIST-gdbm
> --- pkg/PLIST-gdbm 12 May 2026 09:50:42 -0000 1.7
> +++ pkg/PLIST-gdbm 23 Oct 2026 13:30:51 -0000
> @@ -1,8 +1,4 @@
> @option no-default-conflict
> @option is-branch
> @conflict python-gdbm->=3,<4
> -@pkgpath lang/python/3.8,-gdbm
> -@pkgpath lang/python/3.9,-gdbm
> -@pkgpath lang/python/3.10,-gdbm
> -@pkgpath lang/python/3.11,-gdbm
> @so lib/${PY_VERSION}/lib-dynload/_gdbm.${PYC_MAGIC_TAG}.so
> Index: pkg/PLIST-idle
> ===================================================================
> RCS file: /cvs/ports/lang/python/3/pkg/PLIST-idle,v
> diff -u -p -r1.11 PLIST-idle
> --- pkg/PLIST-idle 7 Oct 2026 20:03:20 -0000 1.11
> +++ pkg/PLIST-idle 23 Oct 2026 13:30:51 -0000
> @@ -1,10 +1,6 @@
> @option no-default-conflict
> @option is-branch
> @conflict python-idle->=3,<4
> -@pkgpath lang/python/3.8,-idle
> -@pkgpath lang/python/3.9,-idle
> -@pkgpath lang/python/3.10,-idle
> -@pkgpath lang/python/3.11,-idle
> bin/idle3
> bin/idle${VERSION}
> lib/${PY_VERSION}/idlelib/
> Index: pkg/PLIST-main
> ===================================================================
> RCS file: /cvs/ports/lang/python/3/pkg/PLIST-main,v
> diff -u -p -r1.25 PLIST-main
> --- pkg/PLIST-main 28 Sep 2026 08:39:46 -0000 1.25
> +++ pkg/PLIST-main 23 Oct 2026 13:30:51 -0000
> @@ -1,22 +1,6 @@
> @option no-default-conflict
> @option is-branch
> @conflict python->=3,<4
> -@conflict python3-*
> -@pkgpath lang/python/3.8,-main
> -@pkgpath lang/python/3.9,-main
> -@pkgpath lang/python/3.10,-main
> -@pkgpath lang/python/3.11,-main
> -@pkgpath meta/python3
> -@comment -- ports which were removed that, in the last release, depend on
> python
> -@comment -- these need merging into python to avoid breaking updates
> -@conflict glade-*
> -@conflict hotdoc-*
> -@conflict py3-bsddb3-*
> -@conflict py3-backports-zstd-*
> -@pkgpath devel/glade
> -@pkgpath textproc/hotdoc
> -@pkgpath databases/py-bsddb3
> -@pkgpath archivers/py-backports-zstd
> bin/pydoc3
> bin/pydoc${VERSION}
> bin/python
> @@ -1918,7 +1902,7 @@ lib/${PY_VERSION}/ensurepip/__pycache__/
> lib/${PY_VERSION}/ensurepip/__pycache__/_uninstall.${PYC_MAGIC_TAG}.opt-2.pyc
> lib/${PY_VERSION}/ensurepip/__pycache__/_uninstall.${PYC_MAGIC_TAG}.pyc
> lib/${PY_VERSION}/ensurepip/_bundled/
> -lib/${PY_VERSION}/ensurepip/_bundled/pip-26.2.1-py3-none-any.whl
> +lib/${PY_VERSION}/ensurepip/_bundled/pip-26.2.2-py3-none-any.whl
> lib/${PY_VERSION}/ensurepip/_uninstall.py
> lib/${PY_VERSION}/enum.py
> lib/${PY_VERSION}/filecmp.py
> Index: pkg/PLIST-tests
> ===================================================================
> RCS file: /cvs/ports/lang/python/3/pkg/PLIST-tests,v
> diff -u -p -r1.18 PLIST-tests
> --- pkg/PLIST-tests 7 Oct 2026 20:03:20 -0000 1.18
> +++ pkg/PLIST-tests 23 Oct 2026 13:30:51 -0000
> @@ -1,10 +1,6 @@
> @option no-default-conflict
> @option is-branch
> @conflict python-tests->=3,<4
> -@pkgpath lang/python/3.10,-tests
> -@pkgpath lang/python/3.11,-tests
> -@pkgpath lang/python/3.8,-tests
> -@pkgpath lang/python/3.9,-tests
> lib/${PY_VERSION}/test/
> lib/${PY_VERSION}/test/NormalizationTest-3.2.0.txt
> lib/${PY_VERSION}/test/__init__.py
> @@ -82,9 +78,6 @@ lib/${PY_VERSION}/test/__pycache__/lock_
> lib/${PY_VERSION}/test/__pycache__/mapping_tests.${PYC_MAGIC_TAG}.opt-1.pyc
> lib/${PY_VERSION}/test/__pycache__/mapping_tests.${PYC_MAGIC_TAG}.opt-2.pyc
> lib/${PY_VERSION}/test/__pycache__/mapping_tests.${PYC_MAGIC_TAG}.pyc
> -lib/${PY_VERSION}/test/__pycache__/memory_watchdog.${PYC_MAGIC_TAG}.opt-1.pyc
> -lib/${PY_VERSION}/test/__pycache__/memory_watchdog.${PYC_MAGIC_TAG}.opt-2.pyc
> -lib/${PY_VERSION}/test/__pycache__/memory_watchdog.${PYC_MAGIC_TAG}.pyc
> lib/${PY_VERSION}/test/__pycache__/mock_socket.${PYC_MAGIC_TAG}.opt-1.pyc
> lib/${PY_VERSION}/test/__pycache__/mock_socket.${PYC_MAGIC_TAG}.opt-2.pyc
> lib/${PY_VERSION}/test/__pycache__/mock_socket.${PYC_MAGIC_TAG}.pyc
> @@ -1811,7 +1804,6 @@ lib/${PY_VERSION}/test/mathdata/floating
> lib/${PY_VERSION}/test/mathdata/formatfloat_testcases.txt
> lib/${PY_VERSION}/test/mathdata/ieee754.txt
> lib/${PY_VERSION}/test/mathdata/math_testcases.txt
> -lib/${PY_VERSION}/test/memory_watchdog.py
> lib/${PY_VERSION}/test/mime.types
> lib/${PY_VERSION}/test/mime.types2
> lib/${PY_VERSION}/test/mock_socket.py
> @@ -2237,6 +2229,9 @@ lib/${PY_VERSION}/test/test_capi/__pycac
>
> lib/${PY_VERSION}/test/test_capi/__pycache__/test_abstract.${PYC_MAGIC_TAG}.opt-1.pyc
>
> lib/${PY_VERSION}/test/test_capi/__pycache__/test_abstract.${PYC_MAGIC_TAG}.opt-2.pyc
>
> lib/${PY_VERSION}/test/test_capi/__pycache__/test_abstract.${PYC_MAGIC_TAG}.pyc
> +lib/${PY_VERSION}/test/test_capi/__pycache__/test_build.${PYC_MAGIC_TAG}.opt-1.pyc
> +lib/${PY_VERSION}/test/test_capi/__pycache__/test_build.${PYC_MAGIC_TAG}.opt-2.pyc
> +lib/${PY_VERSION}/test/test_capi/__pycache__/test_build.${PYC_MAGIC_TAG}.pyc
>
> lib/${PY_VERSION}/test/test_capi/__pycache__/test_bytearray.${PYC_MAGIC_TAG}.opt-1.pyc
>
> lib/${PY_VERSION}/test/test_capi/__pycache__/test_bytearray.${PYC_MAGIC_TAG}.opt-2.pyc
>
> lib/${PY_VERSION}/test/test_capi/__pycache__/test_bytearray.${PYC_MAGIC_TAG}.pyc
> @@ -2353,6 +2348,7 @@ lib/${PY_VERSION}/test/test_capi/__pycac
>
> lib/${PY_VERSION}/test/test_capi/__pycache__/test_weakref.${PYC_MAGIC_TAG}.pyc
> lib/${PY_VERSION}/test/test_capi/check_config.py
> lib/${PY_VERSION}/test/test_capi/test_abstract.py
> +lib/${PY_VERSION}/test/test_capi/test_build.py
> lib/${PY_VERSION}/test/test_capi/test_bytearray.py
> lib/${PY_VERSION}/test/test_capi/test_bytes.py
> lib/${PY_VERSION}/test/test_capi/test_capsule.py
> @@ -2397,10 +2393,15 @@ lib/${PY_VERSION}/test/test_cext/__pycac
>
> lib/${PY_VERSION}/test/test_cext/__pycache__/__init__.${PYC_MAGIC_TAG}.opt-1.pyc
>
> lib/${PY_VERSION}/test/test_cext/__pycache__/__init__.${PYC_MAGIC_TAG}.opt-2.pyc
> lib/${PY_VERSION}/test/test_cext/__pycache__/__init__.${PYC_MAGIC_TAG}.pyc
> +lib/${PY_VERSION}/test/test_cext/__pycache__/runtests.${PYC_MAGIC_TAG}.opt-1.pyc
> +lib/${PY_VERSION}/test/test_cext/__pycache__/runtests.${PYC_MAGIC_TAG}.opt-2.pyc
> +lib/${PY_VERSION}/test/test_cext/__pycache__/runtests.${PYC_MAGIC_TAG}.pyc
> lib/${PY_VERSION}/test/test_cext/__pycache__/setup.${PYC_MAGIC_TAG}.opt-1.pyc
> lib/${PY_VERSION}/test/test_cext/__pycache__/setup.${PYC_MAGIC_TAG}.opt-2.pyc
> lib/${PY_VERSION}/test/test_cext/__pycache__/setup.${PYC_MAGIC_TAG}.pyc
> lib/${PY_VERSION}/test/test_cext/extension.c
> +lib/${PY_VERSION}/test/test_cext/extension.cpp
> +lib/${PY_VERSION}/test/test_cext/runtests.py
> lib/${PY_VERSION}/test/test_cext/setup.py
> lib/${PY_VERSION}/test/test_charmapcodec.py
> lib/${PY_VERSION}/test/test_class.py
> @@ -2491,17 +2492,6 @@ lib/${PY_VERSION}/test/test_contextlib_a
> lib/${PY_VERSION}/test/test_copy.py
> lib/${PY_VERSION}/test/test_copyreg.py
> lib/${PY_VERSION}/test/test_coroutines.py
> -lib/${PY_VERSION}/test/test_cppext/
> -lib/${PY_VERSION}/test/test_cppext/__init__.py
> -lib/${PY_VERSION}/test/test_cppext/__pycache__/
> -lib/${PY_VERSION}/test/test_cppext/__pycache__/__init__.${PYC_MAGIC_TAG}.opt-1.pyc
> -lib/${PY_VERSION}/test/test_cppext/__pycache__/__init__.${PYC_MAGIC_TAG}.opt-2.pyc
> -lib/${PY_VERSION}/test/test_cppext/__pycache__/__init__.${PYC_MAGIC_TAG}.pyc
> -lib/${PY_VERSION}/test/test_cppext/__pycache__/setup.${PYC_MAGIC_TAG}.opt-1.pyc
> -lib/${PY_VERSION}/test/test_cppext/__pycache__/setup.${PYC_MAGIC_TAG}.opt-2.pyc
> -lib/${PY_VERSION}/test/test_cppext/__pycache__/setup.${PYC_MAGIC_TAG}.pyc
> -lib/${PY_VERSION}/test/test_cppext/extension.cpp
> -lib/${PY_VERSION}/test/test_cppext/setup.py
> lib/${PY_VERSION}/test/test_cprofile.py
> lib/${PY_VERSION}/test/test_crossinterp.py
> lib/${PY_VERSION}/test/test_csv.py
> @@ -3030,6 +3020,9 @@ lib/${PY_VERSION}/test/test_free_threadi
>
> lib/${PY_VERSION}/test/test_free_threading/__pycache__/test_bisect.${PYC_MAGIC_TAG}.opt-1.pyc
>
> lib/${PY_VERSION}/test/test_free_threading/__pycache__/test_bisect.${PYC_MAGIC_TAG}.opt-2.pyc
>
> lib/${PY_VERSION}/test/test_free_threading/__pycache__/test_bisect.${PYC_MAGIC_TAG}.pyc
> +lib/${PY_VERSION}/test/test_free_threading/__pycache__/test_bytes_object.${PYC_MAGIC_TAG}.opt-1.pyc
> +lib/${PY_VERSION}/test/test_free_threading/__pycache__/test_bytes_object.${PYC_MAGIC_TAG}.opt-2.pyc
> +lib/${PY_VERSION}/test/test_free_threading/__pycache__/test_bytes_object.${PYC_MAGIC_TAG}.pyc
>
> lib/${PY_VERSION}/test/test_free_threading/__pycache__/test_capi.${PYC_MAGIC_TAG}.opt-1.pyc
>
> lib/${PY_VERSION}/test/test_free_threading/__pycache__/test_capi.${PYC_MAGIC_TAG}.opt-2.pyc
>
> lib/${PY_VERSION}/test/test_free_threading/__pycache__/test_capi.${PYC_MAGIC_TAG}.pyc
> @@ -3048,6 +3041,9 @@ lib/${PY_VERSION}/test/test_free_threadi
>
> lib/${PY_VERSION}/test/test_free_threading/__pycache__/test_csv.${PYC_MAGIC_TAG}.opt-1.pyc
>
> lib/${PY_VERSION}/test/test_free_threading/__pycache__/test_csv.${PYC_MAGIC_TAG}.opt-2.pyc
>
> lib/${PY_VERSION}/test/test_free_threading/__pycache__/test_csv.${PYC_MAGIC_TAG}.pyc
> +lib/${PY_VERSION}/test/test_free_threading/__pycache__/test_datetime.${PYC_MAGIC_TAG}.opt-1.pyc
> +lib/${PY_VERSION}/test/test_free_threading/__pycache__/test_datetime.${PYC_MAGIC_TAG}.opt-2.pyc
> +lib/${PY_VERSION}/test/test_free_threading/__pycache__/test_datetime.${PYC_MAGIC_TAG}.pyc
>
> lib/${PY_VERSION}/test/test_free_threading/__pycache__/test_dbm_gnu.${PYC_MAGIC_TAG}.opt-1.pyc
>
> lib/${PY_VERSION}/test/test_free_threading/__pycache__/test_dbm_gnu.${PYC_MAGIC_TAG}.opt-2.pyc
>
> lib/${PY_VERSION}/test/test_free_threading/__pycache__/test_dbm_gnu.${PYC_MAGIC_TAG}.pyc
> @@ -3111,6 +3107,9 @@ lib/${PY_VERSION}/test/test_free_threadi
>
> lib/${PY_VERSION}/test/test_free_threading/__pycache__/test_monitoring.${PYC_MAGIC_TAG}.opt-1.pyc
>
> lib/${PY_VERSION}/test/test_free_threading/__pycache__/test_monitoring.${PYC_MAGIC_TAG}.opt-2.pyc
>
> lib/${PY_VERSION}/test/test_free_threading/__pycache__/test_monitoring.${PYC_MAGIC_TAG}.pyc
> +lib/${PY_VERSION}/test/test_free_threading/__pycache__/test_os.${PYC_MAGIC_TAG}.opt-1.pyc
> +lib/${PY_VERSION}/test/test_free_threading/__pycache__/test_os.${PYC_MAGIC_TAG}.opt-2.pyc
> +lib/${PY_VERSION}/test/test_free_threading/__pycache__/test_os.${PYC_MAGIC_TAG}.pyc
>
> lib/${PY_VERSION}/test/test_free_threading/__pycache__/test_pickle.${PYC_MAGIC_TAG}.opt-1.pyc
>
> lib/${PY_VERSION}/test/test_free_threading/__pycache__/test_pickle.${PYC_MAGIC_TAG}.opt-2.pyc
>
> lib/${PY_VERSION}/test/test_free_threading/__pycache__/test_pickle.${PYC_MAGIC_TAG}.pyc
> @@ -3156,16 +3155,21 @@ lib/${PY_VERSION}/test/test_free_threadi
>
> lib/${PY_VERSION}/test/test_free_threading/__pycache__/test_uuid.${PYC_MAGIC_TAG}.opt-1.pyc
>
> lib/${PY_VERSION}/test/test_free_threading/__pycache__/test_uuid.${PYC_MAGIC_TAG}.opt-2.pyc
>
> lib/${PY_VERSION}/test/test_free_threading/__pycache__/test_uuid.${PYC_MAGIC_TAG}.pyc
> +lib/${PY_VERSION}/test/test_free_threading/__pycache__/test_weakref.${PYC_MAGIC_TAG}.opt-1.pyc
> +lib/${PY_VERSION}/test/test_free_threading/__pycache__/test_weakref.${PYC_MAGIC_TAG}.opt-2.pyc
> +lib/${PY_VERSION}/test/test_free_threading/__pycache__/test_weakref.${PYC_MAGIC_TAG}.pyc
>
> lib/${PY_VERSION}/test/test_free_threading/__pycache__/test_zip.${PYC_MAGIC_TAG}.opt-1.pyc
>
> lib/${PY_VERSION}/test/test_free_threading/__pycache__/test_zip.${PYC_MAGIC_TAG}.opt-2.pyc
>
> lib/${PY_VERSION}/test/test_free_threading/__pycache__/test_zip.${PYC_MAGIC_TAG}.pyc
> lib/${PY_VERSION}/test/test_free_threading/test_bisect.py
> +lib/${PY_VERSION}/test/test_free_threading/test_bytes_object.py
> lib/${PY_VERSION}/test/test_free_threading/test_capi.py
> lib/${PY_VERSION}/test/test_free_threading/test_code.py
> lib/${PY_VERSION}/test/test_free_threading/test_collections.py
> lib/${PY_VERSION}/test/test_free_threading/test_context.py
> lib/${PY_VERSION}/test/test_free_threading/test_cprofile.py
> lib/${PY_VERSION}/test/test_free_threading/test_csv.py
> +lib/${PY_VERSION}/test/test_free_threading/test_datetime.py
> lib/${PY_VERSION}/test/test_free_threading/test_dbm_gnu.py
> lib/${PY_VERSION}/test/test_free_threading/test_dict.py
> lib/${PY_VERSION}/test/test_free_threading/test_dict_watcher.py
> @@ -3187,6 +3191,7 @@ lib/${PY_VERSION}/test/test_free_threadi
> lib/${PY_VERSION}/test/test_free_threading/test_methodcaller.py
> lib/${PY_VERSION}/test/test_free_threading/test_mmap.py
> lib/${PY_VERSION}/test/test_free_threading/test_monitoring.py
> +lib/${PY_VERSION}/test/test_free_threading/test_os.py
> lib/${PY_VERSION}/test/test_free_threading/test_pickle.py
> lib/${PY_VERSION}/test/test_free_threading/test_races.py
> lib/${PY_VERSION}/test/test_free_threading/test_re.py
> @@ -3202,6 +3207,7 @@ lib/${PY_VERSION}/test/test_free_threadi
> lib/${PY_VERSION}/test/test_free_threading/test_type.py
> lib/${PY_VERSION}/test/test_free_threading/test_types.py
> lib/${PY_VERSION}/test/test_free_threading/test_uuid.py
> +lib/${PY_VERSION}/test/test_free_threading/test_weakref.py
> lib/${PY_VERSION}/test/test_free_threading/test_zip.py
> lib/${PY_VERSION}/test/test_frozen.py
> lib/${PY_VERSION}/test/test_fstring.py
> Index: pkg/PLIST-tkinter
> ===================================================================
> RCS file: /cvs/ports/lang/python/3/pkg/PLIST-tkinter,v
> diff -u -p -r1.7 PLIST-tkinter
> --- pkg/PLIST-tkinter 12 May 2026 09:50:42 -0000 1.7
> +++ pkg/PLIST-tkinter 23 Oct 2026 13:30:51 -0000
> @@ -1,10 +1,6 @@
> @option no-default-conflict
> @option is-branch
> @conflict python-tkinter->=3,<4
> -@pkgpath lang/python/3.8,-tkinter
> -@pkgpath lang/python/3.9,-tkinter
> -@pkgpath lang/python/3.10,-tkinter
> -@pkgpath lang/python/3.11,-tkinter
> @so lib/${PY_VERSION}/lib-dynload/_tkinter.${PYC_MAGIC_TAG}.so
> lib/${PY_VERSION}/tkinter/
> lib/${PY_VERSION}/tkinter/__init__.py