The popular Linux Mint distribution’s developers were fed up with how Canonical‘s Ubuntu Linux was dealing with the Chromium web browser in its Snap application installation system, so they took action. Clement “Clem” Lefebvre, Mint’s lead developer, decided that Mint’s default software installation APT will block Snaps, Snap’s core program, from installing in Mint.
A Canonical, Ubuntu’s parent company, representative has replied:
“Canonical designed Snaps based on a number of principles which include security, ease of use and to reduce fragmentation in the Linux ecosystem. Outside of Ubuntu, Linux Mint has the highest number of users across all compatible distributions. These users have chosen to install Snaps based on the reasons outlined above among others. We appreciate and encourage their adoption of the Snaps available in the Snapcraft Store. We would welcome Linux Mint to engage with us and our community to discuss such topics, as we do with other distributions, and work together going forward.”
As for the Snap, at the heart of the conflict, the Canonical spokesperson said:
“Regarding Chromium, the decision was made to ship as a Snap in the Ubuntu 19.10 release. Prior to that, we communicated this and the reasons why in a blog post. The status of Chromium remains the same in the recent Ubuntu 20.04 LTS release as it did in Ubuntu 19.10.”
Chromium in a Snap has been available for several years now. It currently has over 200-thousand users. It’s clearly popular. But that hasn’t stopped Lefebvre from calling the Snapped version of Chromium “similar to a commercial proprietary solution, but with two major differences: It runs as root, and it installs itself without asking you.”
Alan Pope, Canonical’s community manager for Ubuntu engineering services, said Canonical always knew that moving Chromium from installing via an APT-compatible DEB package to a Snap wasn’t a trivial decision. But it felt it had good reasons to make this move.
“Chromium is a very popular web browser, the fully open-source counterpart to Google Chrome. On Ubuntu, Chromium is not the default browser, and the package resides in the ‘universe’ section of the archive. Universe contains community-maintained software packages. Despite that, the Ubuntu Desktop Team is committed to packaging and maintaining Chromium because a significant number of users rely on it.
Maintaining a single release of Chromium is a significant time investment for the Ubuntu Desktop Team working with the Ubuntu Security team to deliver updates to each stable release. As the teams support numerous stable releases of Ubuntu, the amount of work is compounded. Comparing this workload to other Linux distributions which have a single supported rolling release misses the nuance of supporting multiple Long Term Support (LTS) and non-LTS releases.
Google releases a new major version of Chromium every six weeks, with typically several minor versions to address security vulnerabilities in between. Every new stable version has to be built for each supported Ubuntu release − 16.04, 18.04, 19.04, and the upcoming 19.10 − and for all supported architectures (amd64, i386, armhf, arm64).
Additionally, ensuring Chromium even builds (let alone runs) on older releases such as 16.04 can be challenging, as the upstream project often uses new compiler features that are not available on older releases.
In contrast, a Snap needs to be built only once per architecture, and will run on all systems that support Snapd. This covers all supported Ubuntu releases including 14.04 with Extended Security Maintenance (ESM), as well as other distributions like Debian, Fedora, Mint, and Manjaro.’
So, Pope summarized:
- Since Chromium’s not the default browser in Ubuntu so it has a lower impact by virtue of having a smaller userbase.
- Snaps are explicitly designed to support a high frequency of stable updates.
- The upstream project has three release channels (stable, beta, dev) that map nicely to Snapd’s default channels (stable, beta, edge). This enables users to easily switch releases of Chromium, or indeed have multiple versions installed in parallel.
- Having the application strictly confined is an added security layer on top of the browser’s already-robust sandboxing mechanism.
Behind this argument between Ubuntu and Mint developers is another argument: On the one side, you have traditional Linux application package delivery programs, such as DEB and APT, Red Hat‘s RPM, and SUSE‘s ZYpp and YaST; On the other hand, you have the containerized Snap and Red Hat’s similar software management program Flatpak.
The virtues of the older methods are that the maintainer scripts, code, and the program’s metadata: Package name, version, dependencies, and maintainer, are all available. This is a more open-source friendly approach.
But, as Pope alluded to, maintaining such packages is hard work. They require programmers to customize Linux programs to work with each specific distro and its various releases. Developers must also ensure that each program has access to specific libraries’ versions, aka dependency hell.
That’s a big reason many developers don’t port their applications to the Linux desktop. As NextCloud founder and former KDE board member Frank Karlitschek said, at 2019’s Linux Application Summit (LAS), it’s hard for ISVs to make Linux desktop programs, so there are only four or five-hundred Linux apps compared to tens of thousands on macOS and Windows.
He’s not alone. Pretty much all the desktop application developers at LAS agreed. They see the desktop future’s going on the containerized app delivery road. Applications delivered by either Snap or Flatpak run in a virtual sandbox. This makes them more secure. They can also run on any desktop distro. Neither users nor independent software vendors must worry about the underlying distro, its version, or available libraries because all the needed components for the application come already bundled.
No less a figure than Linus Torvalds prefers this approach. Last year, Torvalds, who’s sick of the Linux desktop’s fragmentation, wished “we were better at having a standardized desktop that goes across the distributions.” For software installation, he likes Flatpak. He’s also annoyed at how the “fragmentation of the different vendors has held the desktop back.”
But, as the situation with Mint shows, not everyone is ready to move to this approach. Hopefully, we’ll see Mint and Ubuntu come to an agreement moving forward, which will make everyone happy. Now, if only all the Linux desktop distros would work together to form a more perfect Linux desktop union, perhaps we’ll see the Linux desktop finally gain some mass-market popularity.