Right? From some snap-installed app I'll save something to /tmp, not be able to find it, and then have to go on a safari trying to figure out where my file went.
It really gives me the impression that the effort is mainly about achieving some sort of theoretical or business goal, with user experience being secondary.
> Effortless updates: browsers receive frequent updates and, with the snap, users are able to receive security patches from Mozilla more quickly than with other software distribution methods.
I don't see how snap is faster than apt/.deb. More importantly, apt would update a running Firefox which you can restart later. With snap, Firefox is not updated until you close Firefox and run `snap refresh`.
Probably because it requires less testing from Canonical. With snaps, Mozilla is wholly responsible for the entire distribution; they build a snap with specific library versions, test it, then ship it to users. With traditional packaging, Firefox uses system libraries, which means Canonical has to do additional testing to make sure Firefox still works with Ubuntu's library versions.
And yeah, you could probably fix that by shipping debs with a statically linked Firefox, but that's not how apt packaging is traditionally done.
Debian does all the tests for Firefox and doesn't complain about it. Canonical made a shit decision to accept snap on such a crucial piece of software, it's not ready for prime time.
And the only version of Firefox I can see in Debian Stable's (and Testing's) package list is Firefox ESR 91. That's exactly the situation Canonical wants to avoid. The current version of Firefox is 104, and even the current version of Firefox ESR is 102.
https://packages.debian.org/sid/firefox Many disagree with this stance, but Testing is in an awkward position and I generally steer people away from using it over Stable or Sid because you get downsides of both without the strengths of either. I blame Debian with shooting themselves in the foot when it comes to communicating this. Testing is not a happy middle-ground, it's a test bed for stable. Staying on Sid gives you essentially a rolling release like Arch and it's plenty "stable" for regular desktop use and should anything break you'll get the fix (usually) faster than on testing.
Sorry for going on a bit of a rant under your post, but I run into this on the regular.
I agree. I chose to focus about stable because that's where Debian "does all the tests" for its packages. I just threw in testing because it happened to have the same version of Firefox, but maybe that muddied the waters a bit.
The fact that the latest Firefox is in rolling release distros/channels but not in stable ones does prove the point a bit; you can either get a new Firefox, or you can get a tested Firefox. I generally prefer rolling releases, but I've had Firefox break in weird ways on Arch from time to time. The only way to get a Firefox that's both well-tested and up to date is to use builds from Mozilla where libraries are bundled, such as with a snap or flatpak.
> With snap, Firefox is not updated until you close Firefox and run `snap refresh`.
Worse, they display a misleading pop-up notification telling you Firefox needs to be closed within X days to update. However, closing Firefox doesn't update it, and it doesn't actually tell you how to begin the update or when it will happen automatically. After searching the internet, it turns out you need to open a terminal and run a command to update it manually.
It doesn't seem like Canonical has any kind of UX team, or if they do then they're asleep at the wheel.
That popup is so incredibly bad. It alone means that I will need to install a different distro for my parents. How it got through quality control is utterly baffling to me.
the popup doesn't even make sense, there's no reason the image can't be updated behind the scenes and just take effect next time firefox is launched. just because a snap is in use, doesn't mean it shouldn't be able to be updated (i.e. can docker pull an update image without breaking my existent running containers).
I'm not sure of the details, but when you update a running Firefox all your currently-open tabs continue to work, but when you try to open a new one you'll get an error message telling you that you need to restart Firefox to keep using it.
It unlinks the old file paths and creates new ones in their place. Files in Linux are reference counted, and they're only actually marked as deleted on disk once the reference count goes to 0; a directory entry is one reference, but the running process is also a reference, so even though the path /usr/bin/firefox has been replaced with a new file, the old file is still in use by the existing Firefox process. When you stop Firefox, the refcount for the old file will drop to 0, and when you start it again, the new /usr/bin/firefox will be launched.
The same idea applies to all libraries, where the old version of say /usr/lib/firefox/libxul.so can still be referenced by the running firefox process even after apt has replaced it with a new version.
It's not a great system honestly, Firefox will launch new processes sometimes and the IPC system kinda breaks down when the parent process and the child process are from different Firefox versions.
> More importantly, apt would update a running Firefox which you can restart later.
That hasn't been my experience on Ubuntu for a while. Regularly when updating opening new tabs will display a "just one more thing to do" dialog prompting me to restart firefox. On debian 11, if an update took place firefox will sometimes keep working in a kind of degraded mode (inspect tools don't work for instance) until restarted.
edit: at the moment I can't use netflix until restarted but I don't want to restart because I have a private window with tabs I want to read later.. Sigh.
Things like this are the reason I stopped believing that software improves. Now I think it just evolves - and I think of evolution in the biological sense in that it's just a random walk without any intention behind it.
> evolution in the biological sense in that it's just a random walk without any intention behind it
there is plenty to complain about modern software but "random walk without any intention behind it" is neither fitting nor in any way true nor helpful diagnosis
As a user of software, that's what I've come to believe. Maybe individuals have intention of the software they write and the systems they create, but as an ecosystem, it doesn't feel like we're going anywhere in particular anymore.
I have another funny one: on my Debian install I use transmission. I installed Deluge because Transmission still mixes destination dir from one session to the other. Now when I right click open folder for a torrent it launches vs code with that folder as a workspace.
FWIW, the reason it used to work in the case of Firefox is that Firefox used to have only one process responsible for all tabs. This would mean that if any tab caused the browser engine to crash, all of Firefox would crash, and it meant that if there was a sandboxing bug, any tab could spy on any other tab.
The reason it no longer works is that tabs run in separate processes. This means that if a tab causes the engine to crash, only that crash (or a small number of tabs) crashes, while Firefox itself and all other tabs keep working, and if there's a sandboxing bug, you still have process isolation which prevents one tab from spying on another. But it also means that if you replace the binary without restarting Firefox, the parent process and the content process will be different versions and they can't really talk to each other.
Software engineering is all about trade-offs. We get improved performance, improved security and improved reliability, and we pay with increased memory usage and a less smooth upgrade process. Personally, I'd say that's a clear improvement.
TL;DR: right after launch, Chrome forks off a helper process which is then responsible for forking off child processes, so that all child processes use the same process image as the main Chrome process. It also opens all files it will need right after launch and just re-uses the same file descriptors, so it always keeps references to the old files. This is complicated and brittle and a source of bugs, but when everything works and nobody makes a mistake, it means the old Chrome can keep running without problems even after all its files have been replaced with those from a new Chrome.
At least that's how it worked in 2011 according to Evan Martin.
I installed firefox straight from firefox.com on Manjaro and am using the beta channel. It self updates as they release new versions just like on windows and mac. I've been using the beta channel for many years and completely without issues. This is the fastest way to receive browser updates. Straight from the developers and without 3rd parties concerning themselves with repackaging things.
Snap/flatpak/distro packaging is redundant for this. I do the same with Intellij and a few other things. Annoyingly, chrome does not have arch packages so I'm dependent on some community package.
Firefox (at least in the past) used to break if you updated it while it was running (i.e. replaced / deleted / added files its active runtime depended on). So you had to restart it. In a containerized world, this goes away. i.e. you can replace the firefox "image" with a new one that will be used next time you restart firefox without breaking the existant running one.
with apt/deb you can't do that (besides waiting to update). On a multi user system (less prevelant these days for desktop use, but still existing) this can be really annoying to coordinate.
This doesn't answer if Snap is the right technology to do it, just why apt/deb (and related tech) have issues that they can't really solve.
Snap is the one reason I most don't want to update Ubuntu, but sandboxing the browser in particular (and email client) is the one place where Snap makes a lot of sense to me (as do subsystems like SELinux).
My key problems is that I care less about Firefox being snappy as it not making the rest of my system slow:
- I don't know what bug X has, but application should not be able to commender my mouse cursor. I've seen bugs in Firefox+Ubuntu multiple times that feel like they might have security implications.
- A web page should not be able to use 100% of a CPU. There should be some kind of hard limit, perhaps with burst performance as well
- Related to the above, a background tab shouldn't drain my battery if I'm on a laptop. I don't want to give random web pages 100% of my CPU.
- Firefox should not be able to keep sucking RAM. I have hundreds of GB of swap, primarily so I don't need to worry to Firefox/Chrome/etc. memory usage/leaks. That's crazy.
- Firefox should not be able to suck GPU resources. This is a place I'm convinced there are issues with security implications. GPU drivers are engineered for performance and not stability, and there are edge cases.
- Less relevant to my system, disk usage is an issue on many smaller devices, with offline storage in browsers.
- Bandwidth limits for pages would be nice too, for both 5G bandwidth and battery.
I'd love to see richer benchmarks. Even if not optimized, I'd feel better if Ubuntu / Mozilla were actively aware / looking at these sorts of things.
I'd also like someone to think through concrete ways in which snap helps my security. Firefox can overwrite arbitrary files on my system (save-as -> pick one of your files). That's convenient for me, and for an attacker. An open sandbox doesn't help much.
I'd love to see a holistic mile-high view where someone thinks through resource usage (across different types of resources), convenience, and security). Implementing snap without that type of homework seems premature.
As a footnote, a lot of the issues might be solved with copy-on-write, both with regards to performance and memory.
> I'd love to see a holistic mile-high view where someone thinks through resource usage (across different types of resources), convenience, and security). Implementing snap without that type of homework seems premature.
I agree.
Process sandboxing should be independent from program packaging and distribution. It should be a core feature of your operating system (and it already is!) and not controlled in any way by the people who distribute the software: mozilla, canonical, etc. If you decide to sandbox some program, like firefox, or gimp, or inkscape, it should be easy, and out of control of other people. You get to decide the amount of resources that you want to give the app, and not the app developers themselves! Why this is not obvious to everybody is beyond me.
Unfortunately, both snap and flatpack fail to use this sane approach, and try to shoehorn unrelated stuff like package distribution, dependency packaging, and app stores to this simple problem.
Wow. That goes a level deeper than I had thought through myself.
The place where I've always wanted to see this is on my phone. I would like to be able to deny apps network access, location access, contact lists, etc. This should not be a series of continuous pop-us ("let us scrape your data or you can't use our app"), but simply return a sandboxed empty contacts list (which the app can manage), a sandboxed storage for photos (which the app can add / remove photos from), and a random set of GPS coordinates.
Firefox has errors, but no hostile code. Most apps seem to have hostile code. It's almost impossible to tell how hostile that code is for which app. Even when I do want to grant access, it's almost always too much. Many apps which have valid reasons to e.g. take and store photos, but that doesn't mean I want them to be able to copy and analyse my personal photos.
I use the second-to-latest LTS Ubuntu, and did the same when I upgraded. That said, the overhead to getting non-annoying Ubuntu increases with each version. It feels like someone there is creating make-work; like people need a job and just randomly change things, without making them better.
Installing latest LTS Ubuntu involves going through this whole annoying process all over again.
That's not to mention the sketchy app-stores, cross-sells, etc. It's a lot less sketchy than Windows or Android, but it's not a good direction. No, I don't want an app store. No, I don't want to send data to Ubuntu. No, I don't want cloud services, accounts, and whatnot.
Come to think of it, an up-sell I would pay for is an option to download Ubuntu without all this crap. I understand they need to stay in business, and I wish they'd do so without annoying me.
The whole Snap thing is a great example of why Linux will never become mainstream. The idea is ok, but the implementation leaves a ton of collateral damage that breaks a lot of things.
For example, I installed Ubuntu 22.04 (in a VM) and installed VNC server so I could access it remotely. Surprise! Firefox and Chromium (snaps) don’t work. So one of the things I rely on is broken and I bet it’s going to stay broken for a long time.
It’s been like that for 20 years. VNC is old and boring and the devs creating things like SystemD, Snaps, etc. don’t care if they break it because they think their “progress” is more important than having a working system.
Semi related, why are all the Remote Desktop solutions on Linux so awful?
> The whole Snap thing is a great example of why Linux will never become mainstream.
A generalization too broad, as pretty much no other distro except Ubuntu uses it. If anything, it's more emblematic of Canonical's neverending desire to reinvent the world and the NIH syndrome.
> Semi related, why are all the Remote Desktop solutions on Linux so awful?
I've never had any issues with plain old X forwarding over SSH. As long as you have compression enabled, performance for most applications is fine.
The distro doesn’t matter. There’s always some advancement that’s considered so important that breaking existing apps is viewed as tolerable collateral damage by the devs.
Let's stop with the "Linux is not mainstream" please. The world's largest video game reseller's flagship device runs arch linux with a kde plasma desktop and sells like cupcakes - likely more than 1M units already. It doesn't get more "mainstream" than this.
You can't really bring a game console to the table as an argument for Linux popularity on the PC. That way BSD would be even more popular because it's shipped on every Play Station. Or whatever OS Nintendo uses on the Switch.
Sure, the Linux kernel is on almost any smart device in the world making it the most popular, but in the PC/laptop space, its market share is still absolutely tiny (<3%).
No, the PS and Switch don't use a BSD userspace and even less a standard BSD desktop such as Lumina. On the other hand SteamOS leverages a standard desktop Linux stack - KDE Plasma, PipeWire, Mesa, Glibc .. exactly the same software that I have on my Arch Linux desktop's plasma session modulo a few patches to adapt to the hardware and form factor... https://user-images.githubusercontent.com/97450182/167292656...
> The whole Snap thing is a great example of why Linux will never become mainstream. The idea is ok, but the implementation leaves a ton of collateral damage that breaks a lot of things.
Right, just like how the Windows Store is the reason Windows will never be mainstream.
Firefox as a snap (the default in 22.04) was so awfully slow starting up. Removed it and am using a .deb again made everything better. I'm really not sure why they pushed when there were clearly so many issues with it.
I was open to the snap stuff when I first heard about it. It sounds like a decent idea. But at this point I try to install everything I care about in a non-snap way, as I've had so many bad experiences, so many small things not working.
Do other people have the same reaction after trying to live with it?
The forced Snap-ification of Firefox pushed me from Ubuntu into another distro (Pop OS). A decade ago, Ubuntu offered real usability improvements (working Wifi, what?!) compared to the competition. Now, the various Linux flavors all work approximately the same. If Ubuntu is looking for positive differentiation, Snap is not it.
Notice that you can still use ubuntu with plain firefox and no snap at all on your system. First thing I do on a new ubuntu install is to remove snap and other clutter. It's still a plain debian totally under your control, after all.
It wouldn't be as infuriating if Snap weren't such an awful product, both for the user and for the developer. Just off the top of my head:
1. Sometimes it will warn you when uninstalling a snap will break other snaps; most of the time it doesn't. I removed some snap recently, and Firefox stopped launching.
2. The snapcraft CLI is awful. No way to disable colours, no man pages, no proper error codes, etc.
3. Every time you need some non-trivial piece of functionality, you have to go to ask Canonical for permission. The permission is, most of the time, granted relatively easily, but still.
4. The plug (permission, basically) system is confusing. The documentation is sparse and often doesn't actually answer, which plug you need. And you pretty much have to install snappy-debug (using snap, of course!) to find out approximately, which plug you'd need to add. Thru Canonical, of course. See 3.
5. No way to have your own instance of snap store. If you want to find out, why the upload fails or if the plug will work properly, you have to actually upload a snap to the actual Snap™ Store®.
6. Firefox cannot access /tmp/. A truly baffling thing.
The day Mark&co. finally realize that this thing won't work, no matter how many things they force into snap, is the day I will start a three-day party, heh.
Good list. I would add requiring snapd, which runs as root, to do anything with snap packages. You need to open up an entirely new potential attack surface just to use snaps.
both `libssl` and Firefox are in snapd containers, with mysterious voodoo cant-turn-it-off remote management settings too. First move ? remove each container one at time, starting with the complex ones and the base last, then `snapd` completely, then the caches; complete by installing stock distro `libssl` and your browser of choice (or two).
here's hoping that, similar to the desktop snafu, Ubuntu/MSFT realize that forced (user-hostile) defaults are not the only possible way forward here.
A better way to improve performance would be to switch to Flatpak.
I used to be indifferent to the whole flatpak vs snap situation, since IMO either one is better than the traditional method of using the system package manager for everything. But now that I've had Firefox snap forced upon me by my distro, I've strongly switched over to the Flatpak camp. Snaps do literally everything worse than Flatpaks, offer a worse user experience, and they use a closed-source server for the backend.
I've been a loyal Ubuntu user for over a decade, but this Snap thing is making me seriously consider jumping ship to another distro.
He means Linux Mint [0], a fork of Ubuntu with a fork of Gnome and snaps disabled by default. Is there even an Ubuntu Mint? You are probably confusing it with another name.
And while linux mint derived from Ubuntu, the snap service is disabled by default while iirc system utilities (like the software manager) are provided as flatpaks.
They're making the distinction because there are two Linux Mints, LMDE Which is based on Debian, and the Ubuntu variant, which is just called Linux Mint. It is not officially called Ubuntu Mint, I believe that was a colloquialism.
Ubuntu is so annoying nowadays I really don't understand who's it for anymore.
If you want a stable and non-bloated Ubtuntu or Debian based distro for your web server/cloud instance, there are many better choices out there than Ubuntu including vanilla Debian.
If you want a batteries-included Ubtuntu-based Windows/MacOS alternative for your PC/laptop with video codecs, proprietary firmware, drivers, and software at your finger tips, then PopOS, ElementaryOS and Mint are much better and saner alternatives for the Average Joe.
Feels like the only thing keeping Ubuntu popular is inertia, brand recognition, lock-in effect and the strong influence of Cannonical, but I just can't recommend it to anyone anymore. It seems like Cannonical is so out of touch, it lost the plot a long time ago with what made Ubuntu the linux distro for over a decade.
It is, sadly, for everyone. Writing Github actions workflow? That's on Ubuntu (and you'll need to use Ubuntu for self-hosted runners for more success). Aiming to install a random package binary for a random project you've found? That's probably for Ubuntu. Need any enterprise/MDM stuff? That's probably Ubuntu.
We need people to start offering (or demanding) alternatives to Ubuntu before we can reasonably move off of it.
Breath of fresh air is the phrase I'd use too. I didn't even realize that they were a hardware company, but after using the OS, I'd seriously consider buying their gear when the time comes for a refresh.
For what it's worth, even if you don't buy their hardware (I don't have any either, although I'm looking hungrily at their desktops and keyboards), it looks like System76 offers an option for directly supporting Pop!_OS through their site, like you might for other open source projects through GitHub Sponsors, Liberapay, etc.
Same. Snap killed Ubuntu for me. I don't normally care that much about change, I just roll with them. I got used to Unity and ended up liking it.
Snap would take my machine a minute to launch the calculator app back in 18.04 I think. And I really can't live with apps auto updating whenever the developer releases a new version. Lack of control over updates was what drove me from Windows in the first place.
I use Ubuntu and always uninstall snap. It's not needed at all. I will switch distros next time I need to reinstall though, probably to Fedora Silverblue.
Both are non-sufficient “solutions” to the problem at hand. Nix is the first program that actually solves dependency handling, sandboxing is completely orthogonal. A tool should focus on only one of those in my opinion.
I know Mozilla isn't the litigious sort, but I would strongly suggest getting Ubuntu to either stop using the name "mozillateam" or put some monster disclaimer on that page and https://wiki.ubuntu.com/MozillaTeam because neither of them indicate it's not Mozillians making those changes
The performance issues are already a solved problem with flatpak. Seems there are fundamental issues with the design of snaps for desktop applications compared to flatpak.
After upgrading to Ubuntu 22.04 I tried to install an older version of Kicad, because that version is the one all my colleagues are using and I didn't want to run into compatibility issues.
Long story short, Snap said I couldn't have that :(
I download and install the developer edition of Firefox from the Firefox website, extracting the tarball to /opt/Firefox, and add a menu entry to the KDE launcher. Takes a little more effort at first but afterwards it's smooth sailing. It even self updates!
It's pretty stable, too. In a few years I've been using it, there were just two major issues. One could be fixed by removing an addon, and the other was fixed within a day.
I recently installed Ubuntu 22.04 on one of my workstations, and the system was missing a critical package that, when missing, prevented the default snap Firefox (or any other sandboxed browser) from using system application handlers. Couldn't even upload files to any website because that requires communication with the system file browser.
A less technical user would never figure this out and Ubuntu would be unusable for them in a work environment (inability to interact with email attachments being a non-starter).
It's slow to start up. It prevents you from installing the version of something you want. It updates on its own schedule. It has numerous bugs relating to the sandboxing that prevents apps from fully working properly. It mucks with your home folder structure...
119 comments
[ 3.7 ms ] story [ 193 ms ] threadIt really gives me the impression that the effort is mainly about achieving some sort of theoretical or business goal, with user experience being secondary.
snap app store is proprietary and controlled by Canonical
I don't see how snap is faster than apt/.deb. More importantly, apt would update a running Firefox which you can restart later. With snap, Firefox is not updated until you close Firefox and run `snap refresh`.
And yeah, you could probably fix that by shipping debs with a statically linked Firefox, but that's not how apt packaging is traditionally done.
At least that's my understanding of things.
Sorry for going on a bit of a rant under your post, but I run into this on the regular.
The fact that the latest Firefox is in rolling release distros/channels but not in stable ones does prove the point a bit; you can either get a new Firefox, or you can get a tested Firefox. I generally prefer rolling releases, but I've had Firefox break in weird ways on Arch from time to time. The only way to get a Firefox that's both well-tested and up to date is to use builds from Mozilla where libraries are bundled, such as with a snap or flatpak.
https://neugierig.org/software/chromium/notes/2011/08/zygote...
Worse, they display a misleading pop-up notification telling you Firefox needs to be closed within X days to update. However, closing Firefox doesn't update it, and it doesn't actually tell you how to begin the update or when it will happen automatically. After searching the internet, it turns out you need to open a terminal and run a command to update it manually.
It doesn't seem like Canonical has any kind of UX team, or if they do then they're asleep at the wheel.
I suppose it was always a bit weird, since I shut my desktop down at night so there's never more than a day since Firefox was last restarted.
The same idea applies to all libraries, where the old version of say /usr/lib/firefox/libxul.so can still be referenced by the running firefox process even after apt has replaced it with a new version.
It's not a great system honestly, Firefox will launch new processes sometimes and the IPC system kinda breaks down when the parent process and the child process are from different Firefox versions.
That hasn't been my experience on Ubuntu for a while. Regularly when updating opening new tabs will display a "just one more thing to do" dialog prompting me to restart firefox. On debian 11, if an update took place firefox will sometimes keep working in a kind of degraded mode (inspect tools don't work for instance) until restarted.
edit: at the moment I can't use netflix until restarted but I don't want to restart because I have a private window with tabs I want to read later.. Sigh.
there is plenty to complain about modern software but "random walk without any intention behind it" is neither fitting nor in any way true nor helpful diagnosis
The reason it no longer works is that tabs run in separate processes. This means that if a tab causes the engine to crash, only that crash (or a small number of tabs) crashes, while Firefox itself and all other tabs keep working, and if there's a sandboxing bug, you still have process isolation which prevents one tab from spying on another. But it also means that if you replace the binary without restarting Firefox, the parent process and the content process will be different versions and they can't really talk to each other.
Software engineering is all about trade-offs. We get improved performance, improved security and improved reliability, and we pay with increased memory usage and a less smooth upgrade process. Personally, I'd say that's a clear improvement.
TL;DR: right after launch, Chrome forks off a helper process which is then responsible for forking off child processes, so that all child processes use the same process image as the main Chrome process. It also opens all files it will need right after launch and just re-uses the same file descriptors, so it always keeps references to the old files. This is complicated and brittle and a source of bugs, but when everything works and nobody makes a mistake, it means the old Chrome can keep running without problems even after all its files have been replaced with those from a new Chrome.
At least that's how it worked in 2011 according to Evan Martin.
Snap/flatpak/distro packaging is redundant for this. I do the same with Intellij and a few other things. Annoyingly, chrome does not have arch packages so I'm dependent on some community package.
Firefox (at least in the past) used to break if you updated it while it was running (i.e. replaced / deleted / added files its active runtime depended on). So you had to restart it. In a containerized world, this goes away. i.e. you can replace the firefox "image" with a new one that will be used next time you restart firefox without breaking the existant running one.
with apt/deb you can't do that (besides waiting to update). On a multi user system (less prevelant these days for desktop use, but still existing) this can be really annoying to coordinate.
This doesn't answer if Snap is the right technology to do it, just why apt/deb (and related tech) have issues that they can't really solve.
I've got no problems with my sandboxed Flatpak Firefox.
> Why did we choose to make Firefox a snap?
All pros are shared with Flatpak.
What is the value add for users here, that couldn't be gained by using Flatpak instead? Because it certainly isn't your proprietary app store.
I'm going to remove snap from my system and see if things improve, but overall 22.04 is a big disappointment.
My key problems is that I care less about Firefox being snappy as it not making the rest of my system slow:
- I don't know what bug X has, but application should not be able to commender my mouse cursor. I've seen bugs in Firefox+Ubuntu multiple times that feel like they might have security implications.
- A web page should not be able to use 100% of a CPU. There should be some kind of hard limit, perhaps with burst performance as well
- Related to the above, a background tab shouldn't drain my battery if I'm on a laptop. I don't want to give random web pages 100% of my CPU.
- Firefox should not be able to keep sucking RAM. I have hundreds of GB of swap, primarily so I don't need to worry to Firefox/Chrome/etc. memory usage/leaks. That's crazy.
- Firefox should not be able to suck GPU resources. This is a place I'm convinced there are issues with security implications. GPU drivers are engineered for performance and not stability, and there are edge cases.
- Less relevant to my system, disk usage is an issue on many smaller devices, with offline storage in browsers.
- Bandwidth limits for pages would be nice too, for both 5G bandwidth and battery.
I'd love to see richer benchmarks. Even if not optimized, I'd feel better if Ubuntu / Mozilla were actively aware / looking at these sorts of things.
I'd also like someone to think through concrete ways in which snap helps my security. Firefox can overwrite arbitrary files on my system (save-as -> pick one of your files). That's convenient for me, and for an attacker. An open sandbox doesn't help much.
I'd love to see a holistic mile-high view where someone thinks through resource usage (across different types of resources), convenience, and security). Implementing snap without that type of homework seems premature.
As a footnote, a lot of the issues might be solved with copy-on-write, both with regards to performance and memory.
I agree.
Process sandboxing should be independent from program packaging and distribution. It should be a core feature of your operating system (and it already is!) and not controlled in any way by the people who distribute the software: mozilla, canonical, etc. If you decide to sandbox some program, like firefox, or gimp, or inkscape, it should be easy, and out of control of other people. You get to decide the amount of resources that you want to give the app, and not the app developers themselves! Why this is not obvious to everybody is beyond me.
Unfortunately, both snap and flatpack fail to use this sane approach, and try to shoehorn unrelated stuff like package distribution, dependency packaging, and app stores to this simple problem.
The place where I've always wanted to see this is on my phone. I would like to be able to deny apps network access, location access, contact lists, etc. This should not be a series of continuous pop-us ("let us scrape your data or you can't use our app"), but simply return a sandboxed empty contacts list (which the app can manage), a sandboxed storage for photos (which the app can add / remove photos from), and a random set of GPS coordinates.
Firefox has errors, but no hostile code. Most apps seem to have hostile code. It's almost impossible to tell how hostile that code is for which app. Even when I do want to grant access, it's almost always too much. Many apps which have valid reasons to e.g. take and store photos, but that doesn't mean I want them to be able to copy and analyse my personal photos.
That is no reason to avoid updating. I use the latest Ubuntu and just uninstall snap. It's not needed for anything.
Installing latest LTS Ubuntu involves going through this whole annoying process all over again.
That's not to mention the sketchy app-stores, cross-sells, etc. It's a lot less sketchy than Windows or Android, but it's not a good direction. No, I don't want an app store. No, I don't want to send data to Ubuntu. No, I don't want cloud services, accounts, and whatnot.
Come to think of it, an up-sell I would pay for is an option to download Ubuntu without all this crap. I understand they need to stay in business, and I wish they'd do so without annoying me.
For example, I installed Ubuntu 22.04 (in a VM) and installed VNC server so I could access it remotely. Surprise! Firefox and Chromium (snaps) don’t work. So one of the things I rely on is broken and I bet it’s going to stay broken for a long time.
It’s been like that for 20 years. VNC is old and boring and the devs creating things like SystemD, Snaps, etc. don’t care if they break it because they think their “progress” is more important than having a working system.
Semi related, why are all the Remote Desktop solutions on Linux so awful?
A generalization too broad, as pretty much no other distro except Ubuntu uses it. If anything, it's more emblematic of Canonical's neverending desire to reinvent the world and the NIH syndrome.
> Semi related, why are all the Remote Desktop solutions on Linux so awful?
I've never had any issues with plain old X forwarding over SSH. As long as you have compression enabled, performance for most applications is fine.
Sure, the Linux kernel is on almost any smart device in the world making it the most popular, but in the PC/laptop space, its market share is still absolutely tiny (<3%).
Right, just like how the Windows Store is the reason Windows will never be mainstream.
Instructions to install a .deb and prevent the snap from installing: https://www.omgubuntu.co.uk/2022/04/how-to-install-firefox-d...
Do other people have the same reaction after trying to live with it?
everything else had bizarre issues caused directly by snap
I have not confirmed that Snap is at fault but that is my bet.
If anyone knows a more authoritative source of distro popularity, please reply.
Could all be an artefact of the way Google classifies searches into topics, though.
1. Sometimes it will warn you when uninstalling a snap will break other snaps; most of the time it doesn't. I removed some snap recently, and Firefox stopped launching.
2. The snapcraft CLI is awful. No way to disable colours, no man pages, no proper error codes, etc.
3. Every time you need some non-trivial piece of functionality, you have to go to ask Canonical for permission. The permission is, most of the time, granted relatively easily, but still.
4. The plug (permission, basically) system is confusing. The documentation is sparse and often doesn't actually answer, which plug you need. And you pretty much have to install snappy-debug (using snap, of course!) to find out approximately, which plug you'd need to add. Thru Canonical, of course. See 3.
5. No way to have your own instance of snap store. If you want to find out, why the upload fails or if the plug will work properly, you have to actually upload a snap to the actual Snap™ Store®.
6. Firefox cannot access /tmp/. A truly baffling thing.
The day Mark&co. finally realize that this thing won't work, no matter how many things they force into snap, is the day I will start a three-day party, heh.
More importantly I would ask: why do I have to learn a new cli? For the convenience of canonical?
here's hoping that, similar to the desktop snafu, Ubuntu/MSFT realize that forced (user-hostile) defaults are not the only possible way forward here.
I just don't like Snap (or Flatpak, but less so, since it actually seems to work without breaking desktop integration).
Whenever I do need to use an Ubuntu desktop, I now install MS Edge or Epiphany instead.
I used to be indifferent to the whole flatpak vs snap situation, since IMO either one is better than the traditional method of using the system package manager for everything. But now that I've had Firefox snap forced upon me by my distro, I've strongly switched over to the Flatpak camp. Snaps do literally everything worse than Flatpaks, offer a worse user experience, and they use a closed-source server for the backend.
I've been a loyal Ubuntu user for over a decade, but this Snap thing is making me seriously consider jumping ship to another distro.
[0]: https://linuxmint.com/
And while linux mint derived from Ubuntu, the snap service is disabled by default while iirc system utilities (like the software manager) are provided as flatpaks.
I mean, there is a Hannah Montana Linux
If you want a stable and non-bloated Ubtuntu or Debian based distro for your web server/cloud instance, there are many better choices out there than Ubuntu including vanilla Debian.
If you want a batteries-included Ubtuntu-based Windows/MacOS alternative for your PC/laptop with video codecs, proprietary firmware, drivers, and software at your finger tips, then PopOS, ElementaryOS and Mint are much better and saner alternatives for the Average Joe.
Feels like the only thing keeping Ubuntu popular is inertia, brand recognition, lock-in effect and the strong influence of Cannonical, but I just can't recommend it to anyone anymore. It seems like Cannonical is so out of touch, it lost the plot a long time ago with what made Ubuntu the linux distro for over a decade.
It is, sadly, for everyone. Writing Github actions workflow? That's on Ubuntu (and you'll need to use Ubuntu for self-hosted runners for more success). Aiming to install a random package binary for a random project you've found? That's probably for Ubuntu. Need any enterprise/MDM stuff? That's probably Ubuntu.
We need people to start offering (or demanding) alternatives to Ubuntu before we can reasonably move off of it.
It felt like Android on the Pixel compared to the heavily modified and bundled versions everyone else shipped.
Snap would take my machine a minute to launch the calculator app back in 18.04 I think. And I really can't live with apps auto updating whenever the developer releases a new version. Lack of control over updates was what drove me from Windows in the first place.
https://launchpad.net/%7Emozillateam/+archive/ubuntu/ppa
(I work on the Firefox install/update system, and previously CI & release systems.)
Long story short, Snap said I couldn't have that :(
A less technical user would never figure this out and Ubuntu would be unusable for them in a work environment (inability to interact with email attachments being a non-starter).
https://evertpot.com/firefox-ubuntu-snap/
For me it is as bad as when Canonical put ads in start menu ( https://www.howtogeek.com/126995/how-to-disable-the-amazon-s... )
Huh, that was Ubuntu 12.10. I wonder who will appear in Ubuntu 32.
That should amass enough hate for everybody.