It sounds cool: having a single package format that is “easy to install, secure, cross-platform and dependency-free“. Because it is hard to maintain all these different versions for all those distributions and platforms. Unfortunately, Snap is not a solution. It is yet another problem for the Linux desktop.
Such a good idea: a new software installation package type that has all libraries and other dependencies included. Let the central resource facility handle updates. Isn’t that how the Play Store, and Apple Store handle their business, too?
Snap was built around a security model, a snapped application runs inside a container that will only see what it is supposed to see. That causes trouble. For example: if you try to view a .html
file that is sitting inside a .zip
, this won’t work. Because the file.html
inside the zip-file is temporarily extracted to .cache/.$randomname/file.html
and Firefox cannot (i.e. is not allowed to) look there. Same for PDF files and Evince (the PDF viewer). The “normal” Evince (installed from a .deb
file) will see your unpacked PDF just fine, but Evince Snap complains: Unable to open document: Permission denied.
It gets worse. Opening an e-mail with a .docx
or .odt
attachment from Thunderbird – apparently – opens Libreoffice from within the Thunderbird Snap confinement. Libreoffice has the nice feature of opening all documents in one instance. So any additional document you’re trying to open will fail – because they are outside of the Thunderbird container. You must close the Thunderbird invoked Libreoffice before you can edit other files. Or something. I didn’t research this further, sometimes enough is enough.
And don’t get me started on stupid bugs like the snapvertized Thunderbird installer copying your entire mail folder, even if it is gigabytes of cached mail messages, from .thunderbird/
to snap/thunderbird/common/
. (Did Canonical sign a sponsor deal with the storage industry?) This – obviously – will not work if the profile is too large – in which case the migration simply fails. The tracking bug for Mozilla Snap issues has 86 bugs open and this includes severe bugs like the profiles.ini file not being migrated correctly – this bug is open since september 2021. The fact that you will have to recreate the link to your signature if the signature file is outside of the copied profile is such a minor detail that I did not even bother to file a bug (it would be number 87). See this, that’s more important than an e-mail footer.
Then there are extremely silly bugs like LibreOffice cannot open files on a SMB share. Yes, you read that correctly: you cannot read files from the network with a snapped Libreoffice.
Now you may say that this is all temporary, oh bugs need to be fixed and wrinkles straightened out, but hey, even a simple Clicking on a link in a PDF document that didn’t work took five years to fix – and not even for all browsers you can think of. You really do think that any end user will want to wait for five years to get functionality back? So how is this easy to install if it gets you software that simply doesn’t function after you installed it?
Security
Adding layers to complex software makes the software more complex. More complex to maintain, more complex to debug. Complexity is the enemy of security. Because if you can’t debug, you cannot fix.
Take the Linux printing system. Openprinting Cups is a wonderful and complex piece of software with parts of it dating back to the earliest Unix printers – probably more than 25 years old. It supports a ton of printers, printer protocols, network protocols, autodetection, printer language conversion. But after all these years, even the printer maintainers find the build process a bit too complex to be able to debug. Now Canonical has found out that life is going to be more secure by adding a layer? These days, I don’t even know where to look if I want to see where a printer was defined: is it Snap cupsd or is it cupsd.
Yes, I did read that “outdated devices” are a huge problem and that that was one of the reasons for Snap to come to life. The main reason I’m not upgrading is, in most cases, that I know or suspect that my New And Improved package just doesn’t work. So while Snap may make upgrading easier, it gives me plenty of reasons to not install it in the first place.
Cross platform
Then there is the cross platform promise. This seems to be limited to Snapped Linux distributions and the Microsoft Windows Subsystem for Linux (WSL). My personal opinion is that Windows is a piece of marketeer-driven junk – with ads on the desktop and an absolute vow to not make it easy for anyone to escape the tightly controlled Microsoft ecosystem. So if Snap actually does make software installation easier on WSL, it probably helps Windows users stay on Windows longer.
I just hope Canonical makes loads of money with it but I don’t think the cross platform helps me (or any Ubuntu Linux user) in any way here. Or is there any software Out There that didn’t have an Ubuntu install file – but is on Snap?
Broken
So Snap is broken. It gives me packages with bugs, cross platform compatibility for a platform I’m not using, obscurity during debugging. And most unfortunate of this all is that bugs that would need action for the Linux desktop to become more usable, will just have more competition.