On Sat, Apr 13, 2024 at 01:38:49PM +0000, Zbigniew Jędrzejewski-Szmek wrote: > On Sat, Apr 13, 2024 at 01:41:59PM +0200, Fabio Valentini wrote: > > On Sat, Apr 13, 2024 at 1:18 PM Zbigniew Jędrzejewski-Szmek > > <zbyszek@xxxxxxxxx> wrote: > > > > > > Yes. But actually I think Rust is the optimal choice here. Writing > > > this in Python would be possibly slightly nicer, but we don't want > > > to pull the interpreter and packages into the buildroot. Python > > > also has the problem (challenge?) that it needs to be bootstrapped > > > once per year. The less packages are involved in the bootstrap, the > > > easier it is. And if the brp was written in Python, we'd need to > > > deal with that, and it would probably increase the number of builds > > > which are done without the cleanup. Having this as an indepedent > > > binary avoids some of the issues with bootstrap. > > > > I think Rust *would* be a good choice here ... > > BUT add-determinism uses pyo3 to link to CPython, so it pulls in > > python3-libs anyway. > > So you get the downsides of pulling in Python without the upsides of > > using Rust ... > > Yes, it currently pulls in python3-libs as a dependency, but not the > rest of the Python stack. Ideally, the dependency on python3-libs will > become optional, and we'll use it if found at runtime if found and > ignore otherwise. (Anything that creates pyc files will have python > installed, so it's fine if the pyc handler only works if there.) > How to best do this is something that needs to be figured out… https://github.com/keszybz/add-determinism/pull/1 makes the dependency on libpython optional. One option would be to compile the binary twice, and use rich dependencies to install the heavyweight one if python3 is installed. If somebody has a better approach, I'm all ears. Zbyszek -- _______________________________________________ devel mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/ List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines List Archives: https://lists.fedoraproject.org/archives/list/devel@xxxxxxxxxxxxxxxxxxxxxxx Do not reply to spam, report it: https://pagure.io/fedora-infrastructure/new_issue