We often look at software that’s in an alpha stage of development. Some projects fizzle out without ever reaching a mature release. Others grow into mighty oaks. That’s the nature of open source.
Resonance is an example of a project that’s in a very early stage of development. This is an intuitive music player application written in Rust (with a smattering of Python), built with a clean user interface using GTK4 / Libadwaita.
Resonance is published under an open source license.
There’s a package in the Arch User Repository (AUR) for Arch and Arch-based distros. The package initially failed to build using the Manjaro distro bailing out with the error message:
error: could not compile `gobject-sys` Caused by: process didn't exit successfully: `rustc --crate-name gobject_sys --edition=2021 /var/tmp/pamac-build-luke/resonance/src/resonance/build/cargo-home/registry/src/github.com-1ecc6299db9ec823/gobject-sys-0.15.10/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C embed-bitcode=no -C debuginfo=2 -C metadata=c021cd9f2d63c389 -C extra-filename=-c021cd9f2d63c389 --out-dir /var/tmp/pamac-build-luke/resonance/src/resonance/build/target/debug/deps -L dependency=/var/tmp/pamac-build-luke/resonance/src/resonance/build/target/debug/deps --extern glib=/var/tmp/pamac-build-luke/resonance/src/resonance/build/target/debug/deps/libglib_sys-5c4bce59d6342c75.rmeta --extern libc=/var/tmp/pamac-build-luke/resonance/src/resonance/build/target/debug/deps/liblibc-e95a0cbc12acf3be.rmeta --cap-lints allow -l gobject-2.0 -l glib-2.0 --cfg system_deps_have_gobject_2_0` (signal: 11, SIGSEGV: invalid memory reference) warning: build failed, waiting for other jobs to finish... [4/5] Generating src/resonance_gresource with a custom command FAILED: src/resonance /bin/sh /var/tmp/pamac-build-luke/resonance/src/resonance/build-aux/cargo.sh /var/tmp/pamac-build-luke/resonance/src/resonance/build /var/tmp/pamac-build-luke/resonance/src/resonance src/resonance plain resonance ninja: build stopped: subcommand failed. INFO: autodetecting backend as ninja INFO: calculating backend command to run: /usr/bin/ninja -C /var/tmp/pamac-build-luke/resonance/src/resonance/build ==> ERROR: A failure occurred in build(). Aborting...
Shortly before publishing this review, we tested the AUR package again. It now compiles fine.
We also tried compiling the software on a fresh installation of Ubuntu 23.04. Besides needing a few additional packages to those detailed on the project’s GithUb page, Resonance failed to build at the final stage with ld complaining about missing libraries: -lpython3.11 and -lsqlite3.
Sometimes life is too short to investigate why a package doesn’t build. Fortunately, more projects are providing an alternative to building a package in the shape of cross-platform packages like snap, AppImage, and Flatpak.
For Resonance, there’s a Flatpak available.
Install with the commands:
$ flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
$ flatpak install flathub io.github.nate_xyz.Resonance
ID Branch Op Remote Download 1. [✓] org.gnome.Platform.Locale 44 i flathub 17.8 kB / 340.5 MB 2. [✓] org.gnome.Platform 44 i flathub 191.1 MB / 326.4 MB 3. [✓] io.github.nate_xyz.Resonance stable i flathub 7.2 MB / 7.4 MB
You may be aware that from Ubuntu 23.04, Flatpak doesn’t work out of the box. Now you have to install Flatpak with the command
$ sudo apt install flatpak.