In order to package Proton VPN client in Fedora repositories, Proton's local-agent-rs [1] project must be added as a dependency. However, that project is quite a mess: under two separate subdirectories it has local-agent-rs, which is the pure rust implementation, and python-proton-vpn-local-agent, which provides the Python bindings - yet it doesn't provide a pyproject.toml, just rust Cargo.
I am a bit puzzled on how to package that... shall I proceed like they are two separate packages? In that case, can I package local-agent-rs using the usual cargo macros even if it lies under a subdirectory? And then, how do I package python-proton-vpn-local-agent which has a relative dependency on local-agent-rs?
Is there any other clever way?
On Fri, May 16, 2025 at 6:41 PM Mattia Verga via Rust rust@lists.fedoraproject.org wrote:
In order to package Proton VPN client in Fedora repositories, Proton's local-agent-rs [1] project must be added as a dependency. However, that project is quite a mess: under two separate subdirectories it has local-agent-rs, which is the pure rust implementation, and python-proton-vpn-local-agent, which provides the Python bindings - yet it doesn't provide a pyproject.toml, just rust Cargo.
I am a bit puzzled on how to package that... shall I proceed like they are two separate packages? In that case, can I package local-agent-rs using the usual cargo macros even if it lies under a subdirectory? And then, how do I package python-proton-vpn-local-agent which has a relative dependency on local-agent-rs?
Is there any other clever way?
Hi,
This project looks like a bit of a mess. From what I can tell they're using a custom build script for the Python module, not a standard tool like setuptools_rust or maturin.
And the custom build script that is referenced in the README seems to be from a git submodule that's in a private repo. So I'd say ... not packageable in this state :(
Fabio