On Wed, Apr 17, 2024 at 3:10 PM Zbigniew Jędrzejewski-Szmek zbyszek@in.waw.pl wrote:
Because this is written in Rust instead of Python, you will need a build variant for *every* Python interpreter shipped in Fedora.
No, just one one, at any given time.
Assuming that the marshalparser package can parse pyc files from newer Python versions, I don't think this is necessary.
Or in other words, it's the same as any application using Python in Fedora: it is built against some version of Python, usually the default one.
(pyo3 has support for linking to the stable python abi, which theoretically would allow the program to be able to run with python versions newer than the one against which it was built. I didn't look at the details, so I don't know what would be needed to link it like that and whether that'd actually make things better for us.)
The functionality for building + linking only with the stable / limited "abi3" CPython ABI is only relevant for *extension modules*, i.e. Python modules that contain a native extension written in Rust. This is not the case here - it's a Rust program that calls into CPython (as opposed to the Python interpreter loading a native extension module, which is effectively a "plugin" which is not linked to libpython directly). add-determinism is linked *directly* to libpython3.x.so, so it is only ever compatible with the major version of the Python interpreter that it was built against.
Fabio