Hello Rustaceans and Pythonistas,
The "cpython" and "python3-sys" crates provide Rust bindings for
CPython, but the project is no longer actively maintained [0], and it
does not support CPython 3.12+ due to ABI / API changes. Programs that
use the "cpython" bindings for building against CPython 3.12+ crash at
runtime.
The upstream project recommends projects to move to the PyO3 bindings,
which are much more popular now, are actively maintained, and which
have been adding support for new versions of CPython pretty quickly
over the past few years.
The only package in Fedora that depends on the "cpython" bindings is
mercurial, which uses them for building the "mercurial-rust"
extensions. These extensions do not work on Fedora 39+ due to the
aforementioned changes in Python 3.12+. I reported this as an issue
half a year ago [1], but got no response from the mercurial
maintainers.
My recommendation would be to disable building the mercurial-rust
extensions on Fedora 39+ (where they already don't work!) until
mercurial upstream moves to PyO3 to properly support CPython 3.12+.
I am planning to retire the "rust-cpython" and "rust-python3-sys"
crates next week.
Fabio
[0]:
https://github.com/dgrunwald/rust-cpython/commit/e815555
[1]:
https://bugzilla.redhat.com/show_bug.cgi?id=2249383