Hello Pythonistas and Rustaceans,
TL;DR: Only PyO3 v0.19.2 (and later) will ever properly support Python
3.12. Port your Python projects to v0.19 **NOW**.
Older versions of PyO3 (especially pyo3 v0.15, v0.16, v0.17, and
v0.18) are *not* compatible with Python 3.12 due to some ABI changes
in unicode strings and behavioural changes wrt/ "immortal" objects.
This also affects all current versions of the "cpython" Rust bindings,
with no timeline for Python 3.12 support.
As far as I can tell, extensions that use pyo3 < v0.19 or the
"cpython" bindings can (and likely will) not work as expected on
Python 3.12 if they use the affected APIs (either by producing garbage
data in strings that are passed over the FFI boundary, or by
There are applications in Fedora that still rely on *ancient* versions
of PyO3, potentially affected by this:
- cpython: mercurial
- pyo3 v0.15: fapolicy-analyzer, python-bcrypt, python-cryptography
- pyo3 v0.16: python-y-py
- pyo3 v0.17: unused compat packages, will be retired
- pyo3 v0.18: matrix-synapse
I *stongly* recommend to move all of these packages to pyo3 v0.19 in
Rawhide as soon as possible. I will try to submit pull requests with
the required changes for affected packages (except mercurial, since
there's no version of the "cpython" crate that supports Python 3.12 in
There's already a few packages that depend on pyo3 v0.19, which I will
rebuild in rawhide for pyo3 v0.19.2, which has much better support for
Python 3.12 than v0.19.0 and v0.19.1 (breezy, python-rpds-py, orjson)
unless there are any objections.
As soon as no packages depend on the compat packages for old versions
of pyo3 any longer, I will retire them from Rawhide (and F39,
depending on the timing), since they will never work with Python 3.12
and nothing should use them.
I've added <package>-maintainers(a)fedoraproject.org for all these
packages to the CC of this message.
Rust SIG / PyO3 maintainer in Fedora
The firecracker-1.5 update has a few new crate dependencies. These
are compatible minor version updates:
clap-4.4.6 (from 4.4.4)
regex-1.9.6 (from 1.9.5)
A new crate is added:
And there are three updates with incompatible API versions:
I will include userfaultfd as part of the Firecracker update since
it's the only user of that crate.
The nix crate has many users, and it seems to get compatibility
packages for API updates. Can that be done for 0.26, or should I try
to downgrade the crate with a patch?
It seems like krun and sev are the only other users of kvm-ioctls, and
they have open-ended version dependencies (>=0.12.0). Is it
straightforward to update kvm-ioctls then? I would rather not try to
downgrade this via patching since features in the release changelog
depend on the new version.
Let me know how it is preferred to handle these. You can add me as a
co-maintainer for any of them if you want me to do the updates.
I haven't been doing some Rust in a long time, but I will be working on this, if that's okay
-------- Forwarded Message --------
Subject: Re: Request for update
Date: Sun, 22 Oct 2023 13:12:47 +0200
From: Robert-André Mauchin <zebob.m(a)gmail.com>
To: Seth <sethmb(a)protonmail.com>, rust-rustyline-maintainers(a)fedoraproject.org
On 10/21/23 17:18, Seth wrote:
> Hi there,
> I would greatly appreciate it if you could update your rust-rustyline package to version
> 9.0.0 or later, as it is a requirement of jless.io <https://jless.io>, which I am currently
> working on packaging.
> All the best,
I will look into it.
Do you have a spec file for Jless for testing purpose?
Or a COPR with you current work?
The package rust-epoll got it's rawhide branch disabled because it wasn't
updated for two releases, and there were no packages depending on it.
Now we need to resurrect the package as it's a dependency for
vhost-device-vsock. How can I reactivate the "rawhide" branch for this package?