Providing desktop applications to multiple Linux-based target systems (distributions) can be cumbersome. Whereas upstream application authors have always had the possibility to offer downloads for Windows and macOS, distributing packages for Linux has traditionally required a lot of additional duplicated effort from maintainers, and does not scale well beyond the core set of applications that are part of the distributions.
Lately, application bundle formats like AppImage, Flatpak, and Snap have gained popularity in the Linux world, with Linux Torvalds calling AppImage "just great" and users appreciating the ease of the "one app = one file" concept.
Providing an application in AppImage format can have many advantages:
- Just one format for many major distributions like openSUSE, Ubuntu, Fedora, CentOS, Debian, and others
- Super simple for users: just download one file, make it executable, and run
- No unpacking or installation necessary
- No root needed
- No system libraries changed
- Works out of the box, no installation of runtimes needed
- Optional desktop integration with `appimaged`
- Optional binary delta updates (only download the bytes that have changed between builds)
- GPG signatures (inside the file)
- Works on Live ISOs and when booting into multiple different distributions
On the flipside, it has been argued that distributing application bundles places additional burden on upstream application authors, who now also need to keep the bundled libraries up-to-date. Tools used by distributions can greatly mitigate this, by ensuring reproducible, up-to-date builds from trusted sources.
In this talk, Open Build Service lead developer Adrian Schröter and AppImage lead developer Simon Peter illustrate the challenges around providing quality application bundles and how they can be solved by using proven distribution methodologies such as those provided by the Open Build Service.