Updating snap packages: Spot

I recently lamented that there’s a bunch of broken and outdated snaps in the snap store. Well, some of them are my responsibility, so in the spirit of “be the change you want to see”, let’s get them fixed and updated.

I thought I’d highlight one or two as I go through them, to highlight any important or interesting changes. Today I took a look at Spot, which is a very decent native GNOME Spotify client by Alexandre Trendel.

Spot

As you can probably tell from the build records below, I abandoned this one in frustration over two years ago, in August 2021, and then revisited it yesterday.

Spot builds

If I recall correctly, back in 2021 I was using base: core20 in this snap. That means the application is building from source inside an Ubuntu 20.04 LTS container or VM. The build will have access to the Ubuntu 20.04 repositories, which means whatever toolchain and library can be found in that release.

I was using the available release of GNOME at the time. The snapcraft tool can use an extension which, fairly closely matches the contemporary GNOME release. So in the apps section, the extensions: [ gnome-3-38 ] line will have used some GNOME 3x SDK components at build time and a GNOME 3.38 runtime in the resulting snap.

The upstream developer moved to the newer GNOME 4x release to build their application upon, at some point. Unfortunately at that time, there was no GNOME 4x stack available in the Ubuntu 20.04 repositories, and being 2021, Ubuntu 22.04 wasn’t out yet. I wasn’t prepared to build the entire GNOME universe for that snap, so gave up.

Some time has passed, and a couple of things happened. First, Ubuntu 22.04 was released in April 2022, and the Ubuntu Desktop Team created a new, updated extension. So yesterday I bumped from core20 to core22.

- base: core20
+ base: core22 

Now, there’s a new GNOME extension, which is built on GNOME 4x. As such this simple one-line change in the snapcraft.yaml I made, will immediately bump the build-time SDK and runtime libraries to something usable for this snap.

-    extensions: [gnome-3-38]
+    extensions: [gnome]

I also had a problem with building the application using the rust nightly channel, so switched to the stable one. A simple fix but it was a bit of a head-scratcher, as I’m not a rust expert. So this was a bit of a lucky guess.

-      rustup toolchain install nightly
-      rustup default nightly
+      rustup toolchain install stable
+      rustup default stable

The rest of the changes were simple syntax updates in the snapcraft internal lifecycle processing, which come about as time goes on and snapcraft is actively developed.

-      snapcraftctl pull
+      craftctl default

Here is the full commit, showing all the above changes.

The final updates were to refresh the store page with an updated description, new screenshots and a new icon.

Spot

Enjoy.

Get it from the Snap Store