From 2f8dee5b0d7f45e229649e8f45b98ec3829fdb91 Mon Sep 17 00:00:00 2001 From: Mohammad Miadh Angkad <176301910+mmangkad@users.noreply.github.com> Date: Thu, 30 Jul 2026 21:22:49 +0800 Subject: [PATCH 1/4] Bump pip from 26.1.2 -> 26.2 (#1197) Signed-off-by: Mohammad Miadh Angkad <176301910+mmangkad@users.noreply.github.com> --- pythonbuild/downloads.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pythonbuild/downloads.py b/pythonbuild/downloads.py index 7598a65b6..50417b63a 100644 --- a/pythonbuild/downloads.py +++ b/pythonbuild/downloads.py @@ -287,10 +287,10 @@ "version": "0.13.1", }, "pip": { - "url": "https://files.pythonhosted.org/packages/5d/95/6b5cb3461ea5673ba0995989746db58eb18b91b54dbf331e72f569540946/pip-26.1.2-py3-none-any.whl", - "size": 1813144, - "sha256": "382ff9f685ee3bc25864f820aa50505825f10f5458ffff07e30a6d96e5715cab", - "version": "26.1.2", + "url": "https://files.pythonhosted.org/packages/62/36/a3aed958d60531cb442b7ab4596cda7b3621cfb916f8ae1d6769795c7dc1/pip-26.2-py3-none-any.whl", + "size": 1816475, + "sha256": "931c303696af6fa3417112103b1cad26890e5a07eccb5b99783700e33f2b8aad", + "version": "26.2", }, "setuptools": { "url": "https://files.pythonhosted.org/packages/9d/76/f789f7a86709c6b087c5a2f52f911838cad707cc613162401badc665acfe/setuptools-82.0.1-py3-none-any.whl", From 82161d65ef45fa614f27947aef1e3721bf06d259 Mon Sep 17 00:00:00 2001 From: "Jonathan J. Helmus" Date: Tue, 4 Aug 2026 11:01:42 -0500 Subject: [PATCH 2/4] CPython 3.15.0rc1 (#1199) * CPython 3.15.0b4 -> 3.15.0rc1 --- cpython-unix/extension-modules.yml | 2 ++ pythonbuild/downloads.py | 8 ++++---- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/cpython-unix/extension-modules.yml b/cpython-unix/extension-modules.yml index 05165eb0a..1b10d773b 100644 --- a/cpython-unix/extension-modules.yml +++ b/cpython-unix/extension-modules.yml @@ -788,6 +788,8 @@ _testlimitedcapi: - _testlimitedcapi/unicode.c - _testlimitedcapi/vectorcall_limited.c sources-conditional: + - source: _testlimitedcapi/capsule.c + minimum-python-version: "3.15" - source: _testlimitedcapi/codec.c minimum-python-version: "3.14" - source: _testlimitedcapi/run.c diff --git a/pythonbuild/downloads.py b/pythonbuild/downloads.py index 50417b63a..5b9b645ac 100644 --- a/pythonbuild/downloads.py +++ b/pythonbuild/downloads.py @@ -93,10 +93,10 @@ "python_tag": "cp314", }, "cpython-3.15": { - "url": "https://www.python.org/ftp/python/3.15.0/Python-3.15.0b4.tar.xz", - "size": 35509544, - "sha256": "93efb9c88d7b6633368e7f7b8f8db6e98988f7f761c09b77849447262841ce3a", - "version": "3.15.0b4", + "url": "https://www.python.org/ftp/python/3.15.0/Python-3.15.0rc1.tar.xz", + "size": 35516700, + "sha256": "f84dad680ab2147417d2739355c2678f0f9acffe4ae8ef77895de1454b384b07", + "version": "3.15.0rc1", "licenses": ["Python-2.0", "CNRI-Python"], "license_file": "LICENSE.cpython.txt", "python_tag": "cp315", From b1507bee3744c8a0b89b6a037cb10605866551ce Mon Sep 17 00:00:00 2001 From: "Jonathan J. Helmus" Date: Tue, 4 Aug 2026 13:02:15 -0500 Subject: [PATCH 3/4] Tcl/Tk 9.0.4 on Windows (#1201) Update to the CPython provided Tcl/Tk 9.0.4 for 3.15+ on Windows. --- cpython-windows/build.py | 6 +++--- pythonbuild/downloads.py | 12 ++++++------ scripts/update_downloads.py | 2 +- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/cpython-windows/build.py b/cpython-windows/build.py index 9727db6d1..e64bc1214 100644 --- a/cpython-windows/build.py +++ b/cpython-windows/build.py @@ -397,7 +397,7 @@ def hack_props( mpdecimal_version = DOWNLOADS["mpdecimal"]["version"] if meets_python_minimum_version(python_version, "3.15"): - tcltk_commit = DOWNLOADS["tk-windows-bin-903"]["git_commit"] + tcltk_commit = DOWNLOADS["tk-windows-bin-904"]["git_commit"] elif meets_python_minimum_version(python_version, "3.14") or arch == "arm64": tcltk_commit = DOWNLOADS["tk-windows-bin-8614"]["git_commit"] else: @@ -1403,7 +1403,7 @@ def build_cpython( # is not available for arm64 so we use a newer release there as well. # On CPython 3.14+ we match the version included in the Python.org release. if meets_python_minimum_version(python_version, "3.15"): - tk_bin_entry = "tk-windows-bin-903" + tk_bin_entry = "tk-windows-bin-904" elif meets_python_minimum_version(python_version, "3.14") or arch == "arm64": tk_bin_entry = "tk-windows-bin-8614" else: @@ -1513,7 +1513,7 @@ def build_cpython( shutil.copyfile(source, dest) # Delete the tk nmake helper, it's not needed and links msvc - if tk_bin_entry in ("tk-windows-bin-8614", "tk-windows-bin-903"): + if tk_bin_entry in ("tk-windows-bin-8614", "tk-windows-bin-904"): tcltk_commit: str = DOWNLOADS[tk_bin_entry]["git_commit"] tcltk_path = td / ("cpython-bin-deps-%s" % tcltk_commit) ( diff --git a/pythonbuild/downloads.py b/pythonbuild/downloads.py index 5b9b645ac..7a2998b24 100644 --- a/pythonbuild/downloads.py +++ b/pythonbuild/downloads.py @@ -342,12 +342,12 @@ "licenses": ["TCL"], "license_file": "LICENSE.tcl.txt", }, - "tk-windows-bin-903": { - "url": "https://github.com/python/cpython-bin-deps/archive/2f788ebecac8d4bc3c7fa982b55a6c6923aa55fb.tar.gz", - "size": 18527780, - "sha256": "ac7e489d1fdabb0dbb69896aa8d191b5a87d053ce306fdffa51bbd77b94dbafc", - "version": "9.0.3", - "git_commit": "2f788ebecac8d4bc3c7fa982b55a6c6923aa55fb", + "tk-windows-bin-904": { + "url": "https://github.com/python/cpython-bin-deps/archive/907f3f4de820cb74fc8fb4431a39beae4c690915.tar.gz", + "size": 15632291, + "sha256": "e7aaa6417b7c2301ecd876307cced7e5bc4575a0b96e66dd08fcb6ab0d5d87a8", + "version": "9.0.4", + "git_commit": "907f3f4de820cb74fc8fb4431a39beae4c690915", }, "tk-windows-bin-8614": { "url": "https://github.com/python/cpython-bin-deps/archive/c624cc881bd0e5071dec9de4b120cbe9985d8c14.tar.gz", diff --git a/scripts/update_downloads.py b/scripts/update_downloads.py index 9015e0fab..cd69ff2ec 100644 --- a/scripts/update_downloads.py +++ b/scripts/update_downloads.py @@ -403,7 +403,7 @@ def xorg_policy(category: str, name: str, extension: str = "tar.gz") -> Policy: "tix": "source dependency snapshot", "tcl-8612": "legacy compatibility version", "tk-8612": "legacy compatibility version", - "tk-windows-bin-903": "commit-pinned CPython binary dependency", + "tk-windows-bin-904": "commit-pinned CPython binary dependency", "tk-windows-bin-8614": "commit-pinned CPython binary dependency", "tk-windows-bin-8612": "commit-pinned CPython binary dependency", "uuid": "inactive upstream project", From 0e3f4849c08f12b1979853ba58553c5c15ab8d28 Mon Sep 17 00:00:00 2001 From: "Jonathan J. Helmus" Date: Tue, 4 Aug 2026 13:13:48 -0500 Subject: [PATCH 4/4] Tcl/Tk 9.0.4 on Linux and macOS (#1202) Update: * Tcl 9.0.3 -> 9.0.4 * Tk 9.0.3 -> 9.0.4 Update build scripts to account for the bundled versions of itcl and thread. Include a fix for the Thread package's zipfs logic. --- cpython-unix/build-cpython.sh | 2 +- cpython-unix/build-tcl.sh | 3 +++ cpython-unix/build.py | 4 ++-- pythonbuild/downloads.py | 16 ++++++++-------- 4 files changed, 14 insertions(+), 11 deletions(-) diff --git a/cpython-unix/build-cpython.sh b/cpython-unix/build-cpython.sh index c851afc85..efdf18480 100755 --- a/cpython-unix/build-cpython.sh +++ b/cpython-unix/build-cpython.sh @@ -1431,7 +1431,7 @@ if [ -d "${TOOLS_PATH}/deps/lib/tcl9" ]; then # Copy tcl/tk resources needed by tkinter. mkdir "${ROOT}/out/python/install/lib/tcl" # Keep this list in sync with tcl_library_paths. - for source in ${TOOLS_PATH}/deps/lib/{itcl4.3.5,tcl9,tcl9.0,thread3.0.4,tk9.0}; do + for source in ${TOOLS_PATH}/deps/lib/{itcl4.3.8,tcl9,tcl9.0,thread3.0.6,tk9.0}; do cp -av "$source" "${ROOT}/out/python/install/lib/" done diff --git a/cpython-unix/build-tcl.sh b/cpython-unix/build-tcl.sh index 140aaeb76..e00b251f3 100755 --- a/cpython-unix/build-tcl.sh +++ b/cpython-unix/build-tcl.sh @@ -79,6 +79,9 @@ fi # An alternative is to include these when calling ./configure AND make export CFLAGS LDFLAGS export CPPFLAGS="${CFLAGS}" +# Tcl's Thread package leaves this unset when configuring Tcl 8 compatibility. +# Initialize it so that package configure does not require an installed Tcl 9. +export ZIPFS_BUILD=0 ./configure \ --build="${BUILD_TRIPLE}" \ diff --git a/cpython-unix/build.py b/cpython-unix/build.py index 7fd4a0298..432501d6e 100755 --- a/cpython-unix/build.py +++ b/cpython-unix/build.py @@ -949,8 +949,8 @@ def build_cpython( python_info["tcl_library_path"] = "install/lib" python_info["tcl_library_paths"] = [ - "itcl4.3.5", - "thread3.0.4", + "itcl4.3.8", + "thread3.0.6", "tk9.0", ] diff --git a/pythonbuild/downloads.py b/pythonbuild/downloads.py index 7a2998b24..3fa6c4be3 100644 --- a/pythonbuild/downloads.py +++ b/pythonbuild/downloads.py @@ -317,10 +317,10 @@ "version": "5.38.2.2", }, "tcl": { - "url": "https://prdownloads.sourceforge.net/tcl/tcl9.0.3-src.tar.gz", - "size": 11922915, - "sha256": "2537ba0c86112c8c953f7c09d33f134dd45c0fb3a71f2d7f7691fd301d2c33a6", - "version": "9.0.3", + "url": "https://prdownloads.sourceforge.net/tcl/tcl9.0.4-src.tar.gz", + "size": 11866337, + "sha256": "d0aed49230bc02a65c1e0229e65f34590a4b037ec40d546f32573b467f7551ea", + "version": "9.0.4", "library_names": ["tcl9.0"], "licenses": ["TCL"], "license_file": "LICENSE.tcl.txt", @@ -334,10 +334,10 @@ "license_file": "LICENSE.tix.txt", }, "tk": { - "url": "https://prdownloads.sourceforge.net/tcl/tk9.0.3-src.tar.gz", - "size": 4644835, - "sha256": "bf344efadb618babb7933f69275620f72454d1c8220130da93e3f7feb0efbf9b", - "version": "9.0.3", + "url": "https://prdownloads.sourceforge.net/tcl/tk9.0.4-src.tar.gz", + "size": 4613019, + "sha256": "d7a146d2917eb8b5cc95276dbf0e3d03c7464d2b19c1675357857c989301dbb4", + "version": "9.0.4", "library_names": ["tk9.0"], "licenses": ["TCL"], "license_file": "LICENSE.tcl.txt",