On Mon, Oct 31, 2022 at 3:17 PM Kalev Lember <email@example.com> wrote:
> I went ahead and picked up fragments and gnome-feeds. If anyone else is interested in them even a tiny bit, please let me know. I'd appreciate co-maintainers a lot here.
I think fragments has recently been rewritten in Rust? You might need
help with updating to the latest version ...
Yep, fragments was rewritten in rust. I'd definitely appreciate help with updating it if you are interested!
In any case, I'd like to figure out the GNOME + rust packages story. Right now when someone mentions that something was rewritten in rust, that sounds a lot like a death sentence for the Fedora package. I don't think it should be like that; and I'd like to fix that.
I guess for that we have two options: either package up a critical mass of rust crates that GNOME rust modules are likely going to use, or alternatively come up with a good guide and rules on how to correctly bundle rust crates in leaf apps.
Yeah, I'd like the story for packaging GNOME apps that are written in Rust to be better. Main pain point is actually not usually missing dependencies (we already have complete bindings for GLib, GTK3, libhandy, GTK4, and GStreamer packaged), but that there's no standard way to *build* these apps.
If they are "pure" Rust packages, the story is the same as for any other Rust application (i.e. pretty straightforward). We have a few of these packaged already (helvum, system76-keyboard-configurator).
It's more complicated if they have their own bespoke build system (meson / build.py / horrible custom shell script / etc.) which calls cargo under the hood, in which case it's sometimes difficult to adapt these build systems to respect our build settings and default Fedora build / hardening flags for Rust code, and to have them look for dependencies where they are packaged - instead of loading them from the internet (or from vendored copies).
If we could come up with a good way to handle these things, we could probably push for some recommended way for rusty GNOME projects to handle this, and document it for developers.
PS: Sorry if this email ends up being formatted weird, typing this on my phone just so I don't forget to reply here in a timely manner.