+7

Linux: support additional bundle types

Thomas Singer 5 years ago updated by x80486 3 years ago 11

There seem to exist a couple of different ways to bundle desktop applications on Linux - AppImage, Snap, Flatpak, ... Please vote for the below entries, so we can estimate the distributation.

https://github.com/AppImage/AppImageKit/wiki/Similar-projects#comparison

I think supporting both, Flatpak and Snap (along with the classic .tar.gz) can be really good options.

Problem with these bundles is that they are not just bundles but also prevent direct access to the file system while SmartGit requires that, e.g. to launch certain external tools.

So "portals" is what used for such things, although in the case of Flatpaks (almost) everything needed for a given application is bundled, hence external dependencies don't have any impact on the shipped software. Think Docker containers (or something similar). If something from the host is needed, there are portals to integrate/interact with it...and they work for the most part. SmartGit doesn't have too many problems in that sense; it would be nice to compare how many issues do you get from the .tar.gz release compared to the (unofficial) Flatpak.

There are hurdles, but IMO it's worth exploring and solve them, as many other software vendors are doing, because you can place all your effort on one single format, rather than releasing (and supporting) DEBs, RPMs, you-name-it.

Portals are hardly usable from Java. What is the benefit of having a flatpak - except of the icon?

It's going to be the same benefit(s) that applies to any containerized application in general: run-time dependencies are maintained by the application so it's guaranteed to work. Besides that, there is the icon ;) feature, sandboxing, centralized service for distribution, every distro (where it's supported) can install it.

I just package the application, I don't really know Flatpak technology top to bottom, but it works better than most of the other variants, for most applications.

We ship all our runtime dependencies (JRE and Git), icon can be created using add-menuitem.sh, sandboxing makes IMHO no real sense for this kind of application (even prevents some features), tar.gz can be unpacked easily, so IMHO the only remaining part is that the application can be found in a repository.

Fair enough. I mean, it's really up to you since you folks are actually the developers.


I can go ahead and make the Flatpak end-of-life (same for SmartSynchronize) if you don't want to release it as Flatpak since it's another format floating around that you don't really want/plan to support. Nobody really understand how the software works better than yourselves.