* CentOS 9, Python, and other Fairytales
@ 2026-02-17 22:59 John Snow
2026-02-18 6:54 ` Markus Armbruster
0 siblings, 1 reply; 9+ messages in thread
From: John Snow @ 2026-02-17 22:59 UTC (permalink / raw)
To: Markus Armbruster; +Cc: qemu-devel, Daniel Berrangé
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
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: CentOS 9, Python, and other Fairytales
2026-02-17 22:59 CentOS 9, Python, and other Fairytales John Snow
@ 2026-02-18 6:54 ` Markus Armbruster
2026-02-18 11:48 ` Paolo Bonzini
0 siblings, 1 reply; 9+ messages in thread
From: Markus Armbruster @ 2026-02-18 6:54 UTC (permalink / raw)
To: John Snow; +Cc: qemu-devel, Daniel Berrangé
John Snow <jsnow@redhat.com> writes:
> 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.
[...]
> 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
Accomodating a wide range of Python versions (language proper and
tooling) is costly. Few projects go as far back as we do. Narrowing
our range is good.
> 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.
CentOS 9 reaches end of life on May 31 next year. I do not think
keeping its ability to build bleeding edge docs offline out of the box
for its final year (give or take) is worth your time, or anybody's.
Same for FreeBSD, to be frank.
> 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.
That thing is an achievement in more than one way. It makes something
work well that has no right to work at all. It reaches vertiginous
heights of ugliness. It was disgustingly expensive to write, and it
will be disgustingly expensive to fix if it ever breaks, more so if the
fixer isn't John Snow. The sooner we get rid of it, the better.
> 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
Makes sense to me.
> Updated version dashboard:
> https://gitlab.com/jsnow/repology-dashboard#results-overview-as-of-2026-02-16
>
> --js
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: CentOS 9, Python, and other Fairytales
2026-02-18 6:54 ` Markus Armbruster
@ 2026-02-18 11:48 ` Paolo Bonzini
2026-02-18 17:10 ` John Snow
0 siblings, 1 reply; 9+ messages in thread
From: Paolo Bonzini @ 2026-02-18 11:48 UTC (permalink / raw)
To: Markus Armbruster, John Snow; +Cc: qemu-devel, Daniel Berrangé
>> 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.
>
> CentOS 9 reaches end of life on May 31 next year. I do not think
> keeping its ability to build bleeding edge docs offline out of the box
> for its final year (give or take) is worth your time, or anybody's.
That's exactly the reason why we (John and I) introduced mkvenv.py,
except it was CentOS 8 and SLES 15 at the time
(https://www.qemu.org/2023/03/24/python/):
"Some of these tools are run through the python3 executable, while
others are invoked directly as sphinx-build or meson, and this can
create inconsistencies. For example, QEMU’s configure script checks for
a minimum version of Python and rejects too-old interpreters. However,
what would happen if code run by Sphinx used a different version?
This situation has been largely hypothetical until recently; QEMU’s
Python code is already tested with a wide range of versions of the
interpreter, and it would not be a huge issue if Sphinx used a different
version of Python as long as both of them were supported. This will
change in version 8.1 of QEMU, which will bump the minimum supported
version of Python from 3.6 to 3.8. While all the distros that QEMU
supports have a recent-enough interpreter, the default on RHEL8 and
SLES15 is still version 3.6, and that is what all binaries in /usr/bin
use unconditionally."
So yeah, there's precedent for doing this, and it's the right thing to
do anyway.
>> 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
The main nice features of 3.12 are improved f-strings, which are nice
but not really a necessity.
If I read it correctly, https://www.freshports.org/lang/python says it
has 3.9 on PPC and 3.11 elsewhere, but
https://www.freshports.org/lang/python311 says 3.11 exists on PPC as well.
I'd go for 3.11 and Sphinx 7. For FreeBSD we can require Python from Ports.
Paolo
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: CentOS 9, Python, and other Fairytales
2026-02-18 11:48 ` Paolo Bonzini
@ 2026-02-18 17:10 ` John Snow
2026-02-18 20:25 ` Paolo Bonzini
0 siblings, 1 reply; 9+ messages in thread
From: John Snow @ 2026-02-18 17:10 UTC (permalink / raw)
To: Paolo Bonzini; +Cc: Markus Armbruster, qemu-devel, Daniel Berrangé
[-- Attachment #1: Type: text/plain, Size: 3632 bytes --]
On Wed, Feb 18, 2026, 6:48 AM Paolo Bonzini <pbonzini@redhat.com> wrote:
> >> 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.
> >
> > CentOS 9 reaches end of life on May 31 next year. I do not think
> > keeping its ability to build bleeding edge docs offline out of the box
> > for its final year (give or take) is worth your time, or anybody's.
>
> That's exactly the reason why we (John and I) introduced mkvenv.py,
> except it was CentOS 8 and SLES 15 at the time
> (https://www.qemu.org/2023/03/24/python/):
>
> "Some of these tools are run through the python3 executable, while
> others are invoked directly as sphinx-build or meson, and this can
> create inconsistencies. For example, QEMU’s configure script checks for
> a minimum version of Python and rejects too-old interpreters. However,
> what would happen if code run by Sphinx used a different version?
>
> This situation has been largely hypothetical until recently; QEMU’s
> Python code is already tested with a wide range of versions of the
> interpreter, and it would not be a huge issue if Sphinx used a different
> version of Python as long as both of them were supported. This will
> change in version 8.1 of QEMU, which will bump the minimum supported
> version of Python from 3.6 to 3.8. While all the distros that QEMU
> supports have a recent-enough interpreter, the default on RHEL8 and
> SLES15 is still version 3.6, and that is what all binaries in /usr/bin
> use unconditionally."
>
> So yeah, there's precedent for doing this, and it's the right thing to
> do anyway.
>
> >> 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
>
> The main nice features of 3.12 are improved f-strings, which are nice
> but not really a necessity.
>
> If I read it correctly, https://www.freshports.org/lang/python says it
> has 3.9 on PPC and 3.11 elsewhere, but
> https://www.freshports.org/lang/python311 says 3.11 exists on PPC as well.
>
> I'd go for 3.11 and Sphinx 7. For FreeBSD we can require Python from
> Ports.
>
freebsd ports is currently at 3.11, which is the main reason I am saying
"see what freebsd does by June"
if they update, we can have Python 3.12 and Sphinx 7.x. If they don't, we
get 3.11 and 5.x. Both are good jumps, but on the chance I can make the
bigger jump, I'd rather do it in one round instead of two.
> Paolo
>
>
[-- Attachment #2: Type: text/html, Size: 4903 bytes --]
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: CentOS 9, Python, and other Fairytales
2026-02-18 17:10 ` John Snow
@ 2026-02-18 20:25 ` Paolo Bonzini
2026-02-18 20:41 ` John Snow
0 siblings, 1 reply; 9+ messages in thread
From: Paolo Bonzini @ 2026-02-18 20:25 UTC (permalink / raw)
To: John Snow; +Cc: Markus Armbruster, qemu-devel, Daniel Berrangé
[-- Attachment #1: Type: text/plain, Size: 3907 bytes --]
Il mer 18 feb 2026, 18:10 John Snow <jsnow@redhat.com> ha scritto:
>
>
> On Wed, Feb 18, 2026, 6:48 AM Paolo Bonzini <pbonzini@redhat.com> wrote:
>
>> >> 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.
>> >
>> > CentOS 9 reaches end of life on May 31 next year. I do not think
>> > keeping its ability to build bleeding edge docs offline out of the box
>> > for its final year (give or take) is worth your time, or anybody's.
>>
>> That's exactly the reason why we (John and I) introduced mkvenv.py,
>> except it was CentOS 8 and SLES 15 at the time
>> (https://www.qemu.org/2023/03/24/python/):
>>
>> "Some of these tools are run through the python3 executable, while
>> others are invoked directly as sphinx-build or meson, and this can
>> create inconsistencies. For example, QEMU’s configure script checks for
>> a minimum version of Python and rejects too-old interpreters. However,
>> what would happen if code run by Sphinx used a different version?
>>
>> This situation has been largely hypothetical until recently; QEMU’s
>> Python code is already tested with a wide range of versions of the
>> interpreter, and it would not be a huge issue if Sphinx used a different
>> version of Python as long as both of them were supported. This will
>> change in version 8.1 of QEMU, which will bump the minimum supported
>> version of Python from 3.6 to 3.8. While all the distros that QEMU
>> supports have a recent-enough interpreter, the default on RHEL8 and
>> SLES15 is still version 3.6, and that is what all binaries in /usr/bin
>> use unconditionally."
>>
>> So yeah, there's precedent for doing this, and it's the right thing to
>> do anyway.
>>
>> >> 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
>>
>> The main nice features of 3.12 are improved f-strings, which are nice
>> but not really a necessity.
>>
>> If I read it correctly, https://www.freshports.org/lang/python says it
>> has 3.9 on PPC and 3.11 elsewhere, but
>> https://www.freshports.org/lang/python311 says 3.11 exists on PPC as
>> well.
>>
>> I'd go for 3.11 and Sphinx 7. For FreeBSD we can require Python from
>> Ports.
>>
>
> freebsd ports is currently at 3.11, which is the main reason I am saying
> "see what freebsd does by June"
>
> if they update, we can have Python 3.12 and Sphinx 7.x. If they don't, we
> get 3.11 and 5.x
>
Why can't we do 3.11 and 7.x, and let freebsd also get sphinx from pypi
until they update?
Paolo
. Both are good jumps, but on the chance I can make the bigger jump, I'd
> rather do it in one round instead of two.
>
>
>> Paolo
>>
>>
[-- Attachment #2: Type: text/html, Size: 5821 bytes --]
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: CentOS 9, Python, and other Fairytales
2026-02-18 20:25 ` Paolo Bonzini
@ 2026-02-18 20:41 ` John Snow
2026-02-18 21:23 ` Warner Losh
2026-02-19 7:29 ` Markus Armbruster
0 siblings, 2 replies; 9+ messages in thread
From: John Snow @ 2026-02-18 20:41 UTC (permalink / raw)
To: Paolo Bonzini; +Cc: Markus Armbruster, qemu-devel, Daniel Berrangé
On Wed, Feb 18, 2026 at 3:26 PM Paolo Bonzini <pbonzini@redhat.com> wrote:
>
>
>
> Il mer 18 feb 2026, 18:10 John Snow <jsnow@redhat.com> ha scritto:
>>
>>
>>
>> On Wed, Feb 18, 2026, 6:48 AM Paolo Bonzini <pbonzini@redhat.com> wrote:
>>>
>>> >> 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.
>>> >
>>> > CentOS 9 reaches end of life on May 31 next year. I do not think
>>> > keeping its ability to build bleeding edge docs offline out of the box
>>> > for its final year (give or take) is worth your time, or anybody's.
>>>
>>> That's exactly the reason why we (John and I) introduced mkvenv.py,
>>> except it was CentOS 8 and SLES 15 at the time
>>> (https://www.qemu.org/2023/03/24/python/):
>>>
>>> "Some of these tools are run through the python3 executable, while
>>> others are invoked directly as sphinx-build or meson, and this can
>>> create inconsistencies. For example, QEMU’s configure script checks for
>>> a minimum version of Python and rejects too-old interpreters. However,
>>> what would happen if code run by Sphinx used a different version?
>>>
>>> This situation has been largely hypothetical until recently; QEMU’s
>>> Python code is already tested with a wide range of versions of the
>>> interpreter, and it would not be a huge issue if Sphinx used a different
>>> version of Python as long as both of them were supported. This will
>>> change in version 8.1 of QEMU, which will bump the minimum supported
>>> version of Python from 3.6 to 3.8. While all the distros that QEMU
>>> supports have a recent-enough interpreter, the default on RHEL8 and
>>> SLES15 is still version 3.6, and that is what all binaries in /usr/bin
>>> use unconditionally."
>>>
>>> So yeah, there's precedent for doing this, and it's the right thing to
>>> do anyway.
>>>
>>> >> 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
>>>
>>> The main nice features of 3.12 are improved f-strings, which are nice
>>> but not really a necessity.
>>>
>>> If I read it correctly, https://www.freshports.org/lang/python says it
>>> has 3.9 on PPC and 3.11 elsewhere, but
>>> https://www.freshports.org/lang/python311 says 3.11 exists on PPC as well.
>>>
>>> I'd go for 3.11 and Sphinx 7. For FreeBSD we can require Python from Ports.
>>
>>
>> freebsd ports is currently at 3.11, which is the main reason I am saying "see what freebsd does by June"
>>
>> if they update, we can have Python 3.12 and Sphinx 7.x. If they don't, we get 3.11 and 5.x
>
>
> Why can't we do 3.11 and 7.x, and let freebsd also get sphinx from pypi until they update?
Hm, I guess no reason, beyond my recalcitrance on breaking docs on a
supported build platform unless absolutely necessary. It'd still be my
preference to align with the native distro repo/ports versions if at
all possible, but I suppose if FreeBSD doesn't fix itself by June or
so that we can consider dropping docs support with ports packages at
that time.
(I think I just have Stockholm Syndrome from arguing for "unnecessary
version bumps to get shiny new toys" and prefer to let those arguments
come from my seniors ... so I stick with very safe changes when at all
possible.)
>
> Paolo
>
>> . Both are good jumps, but on the chance I can make the bigger jump, I'd rather do it in one round instead of two.
>>
>>>
>>> Paolo
>>>
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: CentOS 9, Python, and other Fairytales
2026-02-18 20:41 ` John Snow
@ 2026-02-18 21:23 ` Warner Losh
2026-02-19 7:30 ` Markus Armbruster
2026-02-19 7:29 ` Markus Armbruster
1 sibling, 1 reply; 9+ messages in thread
From: Warner Losh @ 2026-02-18 21:23 UTC (permalink / raw)
To: John Snow
Cc: Paolo Bonzini, Markus Armbruster, qemu-devel,
Daniel Berrangé
[-- Attachment #1: Type: text/plain, Size: 5263 bytes --]
On Wed, Feb 18, 2026 at 1:42 PM John Snow <jsnow@redhat.com> wrote:
> On Wed, Feb 18, 2026 at 3:26 PM Paolo Bonzini <pbonzini@redhat.com> wrote:
> >
> >
> >
> > Il mer 18 feb 2026, 18:10 John Snow <jsnow@redhat.com> ha scritto:
> >>
> >>
> >>
> >> On Wed, Feb 18, 2026, 6:48 AM Paolo Bonzini <pbonzini@redhat.com>
> wrote:
> >>>
> >>> >> 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.
> >>> >
> >>> > CentOS 9 reaches end of life on May 31 next year. I do not think
> >>> > keeping its ability to build bleeding edge docs offline out of the
> box
> >>> > for its final year (give or take) is worth your time, or anybody's.
> >>>
> >>> That's exactly the reason why we (John and I) introduced mkvenv.py,
> >>> except it was CentOS 8 and SLES 15 at the time
> >>> (https://www.qemu.org/2023/03/24/python/):
> >>>
> >>> "Some of these tools are run through the python3 executable, while
> >>> others are invoked directly as sphinx-build or meson, and this can
> >>> create inconsistencies. For example, QEMU’s configure script checks for
> >>> a minimum version of Python and rejects too-old interpreters. However,
> >>> what would happen if code run by Sphinx used a different version?
> >>>
> >>> This situation has been largely hypothetical until recently; QEMU’s
> >>> Python code is already tested with a wide range of versions of the
> >>> interpreter, and it would not be a huge issue if Sphinx used a
> different
> >>> version of Python as long as both of them were supported. This will
> >>> change in version 8.1 of QEMU, which will bump the minimum supported
> >>> version of Python from 3.6 to 3.8. While all the distros that QEMU
> >>> supports have a recent-enough interpreter, the default on RHEL8 and
> >>> SLES15 is still version 3.6, and that is what all binaries in /usr/bin
> >>> use unconditionally."
> >>>
> >>> So yeah, there's precedent for doing this, and it's the right thing to
> >>> do anyway.
> >>>
> >>> >> 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
> >>>
> >>> The main nice features of 3.12 are improved f-strings, which are nice
> >>> but not really a necessity.
> >>>
> >>> If I read it correctly, https://www.freshports.org/lang/python says it
> >>> has 3.9 on PPC and 3.11 elsewhere, but
> >>> https://www.freshports.org/lang/python311 says 3.11 exists on PPC as
> well.
> >>>
> >>> I'd go for 3.11 and Sphinx 7. For FreeBSD we can require Python from
> Ports.
> >>
> >>
> >> freebsd ports is currently at 3.11, which is the main reason I am
> saying "see what freebsd does by June"
> >>
> >> if they update, we can have Python 3.12 and Sphinx 7.x. If they don't,
> we get 3.11 and 5.x
> >
> >
> > Why can't we do 3.11 and 7.x, and let freebsd also get sphinx from pypi
> until they update?
>
> Hm, I guess no reason, beyond my recalcitrance on breaking docs on a
> supported build platform unless absolutely necessary. It'd still be my
> preference to align with the native distro repo/ports versions if at
> all possible, but I suppose if FreeBSD doesn't fix itself by June or
> so that we can consider dropping docs support with ports packages at
> that time.
>
> (I think I just have Stockholm Syndrome from arguing for "unnecessary
> version bumps to get shiny new toys" and prefer to let those arguments
> come from my seniors ... so I stick with very safe changes when at all
> possible.)
>
When I asked a week or two ago, the FreeBSD python maintainers were busy
upgrading, but there was too much fallout still going from 3.11 to 3.12,
but they'd hope to work through it soon... I didn't press them for a more
refined version of 'soon'.
Warner
> >
> > Paolo
> >
> >> . Both are good jumps, but on the chance I can make the bigger jump,
> I'd rather do it in one round instead of two.
> >>
> >>>
> >>> Paolo
> >>>
>
>
>
[-- Attachment #2: Type: text/html, Size: 7324 bytes --]
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: CentOS 9, Python, and other Fairytales
2026-02-18 20:41 ` John Snow
2026-02-18 21:23 ` Warner Losh
@ 2026-02-19 7:29 ` Markus Armbruster
1 sibling, 0 replies; 9+ messages in thread
From: Markus Armbruster @ 2026-02-19 7:29 UTC (permalink / raw)
To: John Snow; +Cc: Paolo Bonzini, qemu-devel, Daniel Berrangé
John Snow <jsnow@redhat.com> writes:
> On Wed, Feb 18, 2026 at 3:26 PM Paolo Bonzini <pbonzini@redhat.com> wrote:
>> Il mer 18 feb 2026, 18:10 John Snow <jsnow@redhat.com> ha scritto:
>>> On Wed, Feb 18, 2026, 6:48 AM Paolo Bonzini <pbonzini@redhat.com> wrote:
>>>> Markus Armbruster <armbru@redhat.com> writes:
>>>>
>>>> > John Snow <jsnow@redhat.com> writes:
[...]
>>>> >> 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
>>>>
>>>> The main nice features of 3.12 are improved f-strings, which are nice
>>>> but not really a necessity.
>>>>
>>>> If I read it correctly, https://www.freshports.org/lang/python says it
>>>> has 3.9 on PPC and 3.11 elsewhere, but
>>>> https://www.freshports.org/lang/python311 says 3.11 exists on PPC as well.
>>>>
>>>> I'd go for 3.11 and Sphinx 7. For FreeBSD we can require Python from Ports.
>>>
>>>
>>> freebsd ports is currently at 3.11, which is the main reason I am saying "see what freebsd does by June"
>>>
>>> if they update, we can have Python 3.12 and Sphinx 7.x. If they don't, we get 3.11 and 5.x
>>
>>
>> Why can't we do 3.11 and 7.x, and let freebsd also get sphinx from pypi until they update?
>
> Hm, I guess no reason, beyond my recalcitrance on breaking docs on a
> supported build platform unless absolutely necessary. It'd still be my
> preference to align with the native distro repo/ports versions if at
> all possible, but I suppose if FreeBSD doesn't fix itself by June or
> so that we can consider dropping docs support with ports packages at
> that time.
>
> (I think I just have Stockholm Syndrome from arguing for "unnecessary
> version bumps to get shiny new toys" and prefer to let those arguments
> come from my seniors ... so I stick with very safe changes when at all
> possible.)
You do. Please consider going to 7.x really, really seriously.
>>
>> Paolo
>>
>>> . Both are good jumps, but on the chance I can make the bigger jump, I'd rather do it in one round instead of two.
>>>
>>>>
>>>> Paolo
>>>>
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: CentOS 9, Python, and other Fairytales
2026-02-18 21:23 ` Warner Losh
@ 2026-02-19 7:30 ` Markus Armbruster
0 siblings, 0 replies; 9+ messages in thread
From: Markus Armbruster @ 2026-02-19 7:30 UTC (permalink / raw)
To: Warner Losh; +Cc: John Snow, Paolo Bonzini, qemu-devel, Daniel Berrangé
Warner Losh <imp@bsdimp.com> writes:
> When I asked a week or two ago, the FreeBSD python maintainers were busy
> upgrading, but there was too much fallout still going from 3.11 to 3.12,
> but they'd hope to work through it soon... I didn't press them for a more
> refined version of 'soon'.
Thanks, Warner!
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2026-02-19 7:30 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-02-17 22:59 CentOS 9, Python, and other Fairytales John Snow
2026-02-18 6:54 ` Markus Armbruster
2026-02-18 11:48 ` Paolo Bonzini
2026-02-18 17:10 ` John Snow
2026-02-18 20:25 ` Paolo Bonzini
2026-02-18 20:41 ` John Snow
2026-02-18 21:23 ` Warner Losh
2026-02-19 7:30 ` Markus Armbruster
2026-02-19 7:29 ` Markus Armbruster
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.