8000 Update python to 3.14.9 and setuptools to 84.2.1 by bryan-minimal · Pull Request #982 · gominimal/pkgs · GitHub
[go: up one dir, main page]

Skip to content

Update python to 3.14.9 and setuptools to 84.2.1 - #982

Merged
bryan-minimal merged 2 commits into
mainfrom
update-python-3.14.9
Oct 23, 2026
Merged

bryan-minimal merged 2 commits into
mainfrom
update-python-3.14.9

Conversation

@bryan-minimal
@bryan-minimal bryan-minimal commented Oct 22, 2026 •
Copy link
Copy Markdown
Member

python 3.14.8 → 3.14.9 and setuptools 84.0.0 → 84.2.1.

The bot's bundle (#979, c-ares only, separate) dropped both. The updater refused python because #950 put the pip wheel Source ahead of the Python tarball, and the updater only rewrites the first pinned Source. setuptools was dropped with it because it depends on python. That updater gap is being fixed in pkgmgr-rs. This PR also removes the pip Source, so the tarball is first again.

python 3.14.9

Tarball sha256 e02d9ac2…1e53:

  • matches python.org's published value (release 2026-10-21);
  • its sigstore bundle verifies (cosign verify-blob, identity hugo@python.org, issuer https://github.com/login/oauth);
  • mirrored to gs://minimal-staging-archives/Python-3.14.9.tar.xz (new object, created no-clobber; the GCS md5 matches).

Security content. 3.14.9's Misc/NEWS Security section names one CVE, CVE-2026-12345, and lists the fixes we were already carrying. So this bump adds no fix we lacked; it replaces our hand-carried copies with upstream's.

carried in 3.14.9? action
0002 gh-157265 tarfile link fallback (CVE-2026-87910) yes, listed in Misc/NEWS dropped
0004 gh-157579 tempfile cleanup race (CVE-2026-12345) yes, listed in Misc/NEWS dropped
pip 26.2.2 ensurepip wheel swap (CVE-2026-111943) yes: gh-159894; _bundled/ holds pip-26.2.2-py3-none-any.whl and _PIP_VERSION = "26.2.2" swap, its Source and bundled_pip_version removed
0003 gh-143923 poplib CR/LF (CVE-2025-15367) no: not in Misc/NEWS, still main-only kept; applies at fuzz 0 to 3.14.9

All the regression tests stay as guards. The pip/certifi test now requires pip >= 26.2.2 rather than exactly 26.2.2, so a later 3.14.x that bundles a newer pip still passes. build.sh's post-install check that the installed pip's certifi doesn't contain emSign ECC Root CA - G3 also stays.

setuptools 84.2.1

The recipe uses GitHub's tag archive, not the PyPI sdist: 84.0.0's v84.0.0 archive hashes to the old sha256 exactly. The 84.2.1 staging object, which the bot mirrored at 16:36Z, is byte-identical to upstream's v84.2.1 archive (99f6fbe4…bb0), so it's reused.

Rebuild scope

MINIMAL_SCIENCE_MODE=1 mip dump --packages --arch amd64 gives 561 of 624 spec hashes changed. python is in the toolchain closure, so every python bump has this shape.

Remote session (pkgbuild loadout, fresh activate; the snapshot showed 3.14.9 and only 0003):

  • min package build --rebuild --verbose python: a real compile, 485 gcc invocations on the Python-3.14.9 tree.
  • 0003 applied cleanly, and ensurepip installed pip-26.2.2 from 3.14.9's own bundle.
  • build.sh's post-install emSign G3 check passed, and the build finished.
  • min package build --rebuild setuptools: Successfully installed setuptools-84.2.1.
  • min check --packages python setuptools: every check Pass for both, standalone tests included (Pass, not Skip). That covers the tarfile, poplib, pip/certifi (>= 26.2.2) and tempfile regression guards.

nickel format --check and bash -n are clean.

🤖 Generated with Claude Code

bryan-minimal and others added 2 commits October 22, 2026 09:56
python 3.14.9 ships three fixes we carried by hand, so they go:
- gh-157265 (tarfile, CVE-2026-87910): drop 0002.
- gh-157579 (tempfile, CVE-2026-12345): drop 0004.
- gh-159894: ensurepip now bundles pip 26.2.2 (the CVE-2026-111943 certifi
  fix), so the wheel swap, its Source and `bundled_pip_version` go.
gh-143923 (poplib, CVE-2025-15367) is still not in 3.14.x; 0003 stays
(applies at fuzz 0). The regression tests stay as guards; the pip test
now requires pip >= 26.2.2 instead of exactly 26.2.2.

Dropping the pip Source also puts the Python tarball back as the first
pinned Source, which the updater rewrites.

setuptools 84.2.1: GitHub tag archive, as before (84.0.0's archive matches
the old sha256); the staging mirror matches upstream's archive.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@bryan-minimal
bryan-minimal requested a review from a team as a code owner October 22, 2026 17:10
@coderabbitai
coderabbitai Bot commented Oct 22, 2026
Copy link
Copy Markdown
Contributor

Warning

Review limit reached

  • Run on-demand review

This review includes 5 billable files and costs up to $1.25.

  • Ask an admin to make reviews automatic

Open in CodeRabbit

Reviews can continue after your included limit without a manual trigger. An admin must approve usage-based billing.

Or wait 27 minutes for your next included review.

Check out review usage here.

View limit details

Limit details: You’ve used the included review currently available. Your 61 included PR review attempts over the past 7 days set your current allowance at 1 review per hour.

Learn how review limits work.

Review configuration:

⚙️ Run configuration
📥 Commits

Reviewing files that changed from the base of the PR and between befeac7 and 293d609.

📒 Files selected for processing: 5
  • packages/python/0002-gh-157265-tarfile-honor-filter-none-link-fallback.patch
  • packages/python/0004-gh-157579-tempfile-cleanup-race.patch
  • packages/python/build.ncl
  • packages/python/build.sh
  • packages/setuptools/build.ncl
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Comment @coderabbitai help to get the list of available commands.

@norrietaylor norrietaylor left a comment
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM.

  • 0004 (CVE-2026-12345): 58ed0259 is an ancestor of v3.14.9, it's listed in the 3.14.9 NEWS, and the old patch reverse-applies cleanly on every code hunk. Dropping it is correct, and the tempfile_cleanup_race_fix test stays as a guard.
  • 0002 (gh-157265): upstream, so dropping it is correct.
  • 0003 (poplib, gh-143923): not in 3.14.9; it still applies at fuzz 0 and is correctly kept.
  • pip swap: 3.14.9 bundles the same 26.2.2 wheel (fd7f4dfa…), so removing the swap is correct.
  • Hashes: the tarball matches staging, and the touched modules are identical to the v3.14.9 tag. setuptools reproduces from v84.2.1.
  • setuptools 84.1 brings two GHSA fixes; archive_util now raises UnsafeMember. cython, ddgr, meson and pyelftools should be unaffected.
  • The 2h40m minimal build matches the full dependent rebuild.

Small correction to the body: gh-159428 is Windows-only and gh-157953 (bundled expat) doesn't apply under --with-system-expat. So "no fix we lacked" holds, but for those reasons.


Generated by Claude Code

@bryan-minimal
bryan-minimal added this pull request to the merge queue Oct 22, 2026
@github-merge-queue
github-merge-queue Bot removed this pull request from the merge queue due to no response for status checks Oct 23, 2026
@bryan-minimal
bryan-minimal added this pull request to the merge queue Oct 23, 2026
Merged via the queue into main with commit 30ab8a3 Oct 23, 2026
10 checks passed
@bryan-minimal
bryan-minimal deleted the update-python-3.14.9 branch October 23, 2026 02:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

0