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?
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
stable.diff.gz
Description: application/gunzip
