Gtreamer multi arch build project with Rust plugin build and deb packages

Just thought I would let you know I finally perfected a multi arch build system that will not fail and works out of the box. And it will create multi arch debian and ubuntu packages for. It gets installed into a prefix with profile environment variables for it.

It took me 5 weeks and thousands of compiling attempts. Most of the failures was to do with the rust plugin compiling and the cargo-c compiling as it’s resource intensive. Unfortunately the version of cargo-c in debian bookworm is too old so it needs to be built from scratch. It tries to compile a tonne of packages hence why cargo-c is so intensive and slow to build.

I have developed an image that primes the rust tools and gstreamer checkout for other images to reuse, so its quicker to build builder images. The arm compiling of Rust may hang and fail with a SIGINT error still, due to resource issues. It’s slower in qemu obviously.

I am not a rust developer but was forced to figure out as many tricks as possible. And it seems it’s a common known problem with rust which makes me wonder why people bother.

Basically in the end I have scripted to just build the single plugin required and link to the built gstreamer uninstalled location . It will not build in the gstreamer build at all. There is bugs where it ignores meson feature arguments and it will still try and build dependencies not related to the required plugin so extra time and resources taken. I discovered an LTO of thin will avoid the errors somewhat which I have put in the flags. But to avoid the bugs, individual plugin builds is required still.

1 Like