Snaps versus Debian packages

snapping back

I think this conversation has actually been rather fruitful. Over the course of this conversation, we’ve discussed a lot of pros and cons with Snaps. I’m going to use a post above to highlight some of those things.

So I hope we can all see that there is a benefit to Snaps, despite their problems. That is true not only to developers but also to users.

enter sandbox

The first and last of that list are the two sides of a double edged sword: confinement. This is the sandbox. That’s not a developer advantage, that’s a user advantage. But it’s also a user disadvantage, too. It can also be a bit of a difficult thing to work through for developers. The good news is that this is not an insurmountable problem.

For a Snap to have access to the entire filesystem, that’s a bit of a sticky wicket that requires classic confinement, which in turns requires explicit approval given the possible security implications. Those don’t come easy, so that may be the reason why GEdit never got it. That, however, is a bit of an extreme example when you think about it. Most applications do not need access to the whole file system for any practical reason.

For the vast majority of Snaps, there are some ready-made solutions to access resources out of the sandbox. As @eeickmeyer pointed out, you can use a bind. There are also XDG Desktop Portals. This is how Firefox can manage to save screenshots and such.

bugging me

But this gets me back to the other issues: bugs. I’ve wrote about this elsewhere but there really is a problem with knowing where to report issues. There’s also cases of splitting discussions about Snaps, as is the case with GEdit, in particular. This really needs to be solved.

I know we can’t do this for all distros, but we can do it for Ubuntu flavors. We just need to modify ubuntu-bug to use the Snap metadata. I know @James-Carroll surprisingly doesn’t use it, but that’s what our documentation suggests to use.

@eeickmeyer did just add the little section to that documentation about Snaps but it misses a couple things. One, average users may not know the difference between a Snap and a Debian package. Two, it assumes there’s information there. I’m going to draw attention to one rather important Snap: element-desktop. Even when running snap info --verbose there isn’t a single bit of contact information whatsoever. It’s not in the repos of Ubuntu’s org on GitHub. It’s not in the repos of ~desktop-snappers. Yet we are recommending it in official documentation.

Also, Snap discussion in general is spread all over the place. There’s here, there’s the Snapcraft forum, there’s random little discussions happening here and there and everywhere. It’s hard enough for someone to figure out how to report a bug, let alone discuss things.

PR problems

I also agree with what James said above. There’s a certain image problem Snaps have in general because of all the garbage (let’s call it what it is) in the store and problems with transparency. I think we’re fighting a lot of battles about Snaps because it’s an uphill battle against all that old baggage. Just spitballin’, I could think of a couple fixes here:

  1. Create tooling to go through through all the Snaps and compare against upstreams, removing outdated ones. Give some option to have the developer submit an update in x time period without further hassle, otherwise it is permanently removed.
  2. Stricter requirements on metadata. Contact information is a requirement, not optional. By providing it, you are agreeing to manage support for the Snap at that location.
  3. Make some “playground” (a different kind of sandbox, no?) where budding Snappers can put up their examples for people to play with. Maybe even a separate kind of store.
  4. Increase the bar just a little bit more on new entries in the store. At the very least, compare them against other Snaps. We shouldn’t have dupes.
  5. I’m sure this will be contentious but there’s no bad idea in a brainstorm, right? Make an option to “flag” a Snap as unmaintained so that a human can give it a once over and make sure everything is in order. If not, give them x time to update or remove it permanently.
  6. After doing all this refinement, make a big, huge public announcement and repeat it on all the places making it clear this is a new age of Snaps and Snapcraft. Gone is the old way. In with the new. Encourage those who had problems to try again.
2 Likes