Canonical is planning an ‘All Snap’ desktop next year. It will likely be available side-by-side with the traditional deb-based installation we’ve been used to since 2004.

If the “All Snap” or “immutable” platform is to be a success, Canonical needs to get a grip on the broken, uninstallable, insecure, and outdated snaps provided in the snap store.

As I mentioned, there’s around five thousand snaps in the store. Hundreds of them haven’t been touched in years. Some developers have just abandoned their packages.

I want to see this situation improve. In general, Canonical should incentivise the promotion of applications and dis-incentivise letting applications languish.

  • Flathub solves this with flatpak-external-data-checker, a tool that automatically makes a PR (and therefore test builds) every time upstream releases a new version.

    That said, generally speaking snaps are more up-to-date than .deb packages, and Canonical’s security team is a large contributor for the .deb patches anyways - it won’t be hard for them to also patch relevant snaps.

    • If Ubuntu wants to go all-in on snaps, I expect them to do the same amount of vetting, testing, and maintenance that they do in the official Ubuntu repos.

      But I think the real point here is to save themselves that work. The current Snap store is a mess, with multiple versions of the same apps by different packagers/maintainers. If upstream protects adopted snaps and provided official distro-agnostic packages, then that’d be cool, but that’s not what I’m seeing today, by and large.

      My general experience with Snaps has been poor. I don’t know if Snaps are there future, but I know for damn sure that they’re not the present and I’m not motivated to go any further into the Snap ecosystem until they clean up this mess

      • Also it needs to be mentioned that snap store don’t force any styling guidelines where it comes to description of packages. Most apps have names that are not styled properly, have low quality icons etc. This is a deal breaker for me

  • Could someone explain to me the advantage of using snap? I’ve never really got it. Repository systems with dependencies have always served me well and I’ve never felt the need for something else

    • The idea is you package the software once and it works forever, because all dependencies for it are provided in the exact right version. And the dependencies may include things that would not be included in the base system (like super new versions of some important libraries).

      That is true, but that is also the problem: both the package and all its dependencies may be left never updated.

      In traditional Linux distribution, like Debian, every package must be compiled within the same system, which usually means specific version of all key libraries. And when the key libraries are upgraded some packages compiled for older versions won’t work, the package might not even compile with newer version of the libraries. And it is often not possible/practical to provide multiple different version of libraries (or other shared system components). The result is distribution developers have a lot of hard work updating all the packages. When there is no one to fix a package for the next version of the package, the package will be removed from the distribution. That happens when package is not maintained upstream and/or no one cares enough to maintain it in the distribution. In that case – is it worth to keep it?

      Snap makes packaging applications much easier, and more decoupled from the operating system ‘core’. Less maintenance is needed… but that also means less maintenance will be done, which is not necessarily good.

      On the other hand, Snap allows application to be maintained more rapidly than the distro core – in that case it can make things safer – fix in applications and their dependencies can be fixed that it could be done in the normal Debian release process. But that depends on maintainers of the specific snap and its dependencies.

    • Security. You run apps in a confined, sandboxed environment and choose what they have access to on the host system. This is particularly important for third-party apps. It’s much safer than installing some random deb you found on the web or adding a third-party PPA.