Ubuntu, building current versions of Firefox, and snaps
Today on Twitter, I said:
Given that Ubuntu's ostensible logic for putting Chrome in a snap is 'it makes maintaining it easier', my cynical side expects Ubuntu to also do this with Firefox before too long (due to Firefox's need for steadily increasing versions of Rust).
Ubuntu ships current versions of Firefox (at the moment Firefox 78) in Ubuntu LTS releases, which means that they must build current versions of Firefox on all supported Ubuntu LTS versions. Firefox is built partly with Rust (among other things), and new releases of Firefox often require relatively recent versions of Rust; for instance, right now Firefox Nightly (which will become Firefox 80 or 81) requires Rust 1.43.0 or better. Nor is Rust the only thing that Firefox has minimum version requirements for. Firefox 78, the current release, requires nasm 2.14 or better if you want to build the AV1 codecs, and I'm sure there are others I just haven't tripped over yet.
This is a problem for Ubuntu because Ubuntu famously doesn't like
updating packages on Ubuntu LTS (or probably any Ubuntu release,
but I only have experience with LTS releases). Today, the need to
build current Firefox versions on old Ubuntu LTS releases means
that Ubuntu 16.04 has been dragged up to Rust 1.41.0 (the same Rust
version that's on 18.04 and 20.04). If current versions of Rust
weren't required to build Firefox, Rust on 16.04 would probably be
a lot like Go, where the default is version 1.6 (that's the
package version) and the most recent available one is Go 1.10 (which
actually dates from 2018, which is modern for an LTS release from
2016). When Firefox 80 or so is released and requires Rust 1.43.0
or better, Ubuntu will have to update Rust again on all of the still
supported LTS versions, which will probably still include 16.04 at
Canonical can't like this. At the same time, they have to ship Firefox and they have to keep it current, for security reasons. Shipping Firefox as a Snap would deal with both problems, because Canonical would no longer need to be able to build the current Firefox from source on every supported Ubuntu release (LTS and otherwise, but the oldest ones are generally LTS releases). Given that Canonical wants to shove everyone into Snaps in general, I rather expect that they're going to do this to Firefox sooner or later.
PS: I'm not looking forward to this, because Snaps don't work with NFS mounted home directories or in our environment in general. Ubuntu moving Firefox to a Snap would probably cause us to use the official Mozilla precompiled binaries in the short term, and push us more toward another Linux release in the longer term (probably Debian).