FYI, bash-5.1# cat /etc/centos-release CentOS Stream release 9 bash-5.1# python3 --version Python 3.9.25 bash-5.1# dnf install python3.12-setuptools python3.12-wheel python3.12-pip Last metadata expiration check: 0:02:24 ago on Tue Feb 17 22:39:26 2026. Dependencies resolved. ================================================================================================================================================== Package Architecture Version Repository Size ================================================================================================================================================== Installing: python3.12-pip noarch 23.2.1-5.el9 appstream 3.2 M python3.12-setuptools noarch 68.2.2-5.el9 appstream 1.6 M python3.12-wheel noarch 0.41.2-3.el9 appstream 166 k Installing dependencies: libnsl2 x86_64 2.0.0-1.el9 appstream 31 k libtirpc x86_64 1.3.3-9.el9 baseos 94 k mpdecimal x86_64 2.5.1-3.el9 appstream 86 k python3.12 x86_64 3.12.12-3.el9 appstream 25 k python3.12-libs x86_64 3.12.12-3.el9 appstream 9.7 M python3.12-pip-wheel noarch 23.2.1-5.el9 appstream 1.5 M
Transaction Summary ================================================================================================================================================== Install 9 Packages Total download size: 16 M Installed size: 66 M Is this ok [y/N]: ... So we actually probably have decent movement we can make as soon as Ubuntu 22.04 is dropped; enough to do: Python 3.9 -> 3.11 pip 21.3.1 -> 23.0.1 setuptools 53.0.0 -> 63.1.0 wheel 0.36.2 -> 0.38.4 With most of the new sticking points being debian 12 (EOL in June) or FreeBSD (timeline uncertain for when they'll re-modernize their python stack) One edge case here, however, is Sphinx, which does not actually have a modern package in centOS stream 9. CentOS currently ships 3.4.3, but it would not be usable if using the optional 3.12 upgrade. If we ignore this, both FreeBSD and Debian 12 have sphinx 5.3.0 to offer us, which is a reasonable version jump, but it means that CentOS would not be able to build docs unless you enabled `--online` for configuring QEMU or sideloaded Sphinx otherwise. That's enough to delete a large amount of the horrid crap in docs/sphinx/compat.py, though not all of it - version 6.2.0 is the version that would allow me to delete the *entire* thing. When Debian 12 is dropped (June), we're waiting on just FreeBSD to modernize their stack and we could make that final leap, too. My plan: - Wait and see what happens after the current QEMU release - Gleefully drop Ubuntu 22.04 in April (Allows Python 3.11+) - Gleefully drop Debian 12 in June - Hold my breath and see if FreeBSD happens to modernize by this point (They have until October 2027 to do so, so it's a dice roll if they will or not) - Do a big round of Python modernization all at once; either to 3.11 or 3.12 depending, and either to Sphinx 5.x or 7.x depending, pray for forgiveness that I am removing CentOS stream 9's ability to build docs offline so I don't have to wait another six months and then do another big cleanup round Updated version dashboard: https://gitlab.com/jsnow/repology-dashboard#results-overview-as-of-2026-02-16 --js
