The reason why I attended Owen Taylor’s Flatpak talk was to get a little more insight about Flatpak when it comes down to working with RPMs or applications in general. The most obvious way is a container nowadays. We already do this with Home Assistant but it’s adds an hurdle for the end users. There is Docker support for Windows but still, containers are not for end-users. Sandboxing and compartmentalization must be completely transparent from my point of view. If one day Flatpaks are available in the same quantity as RPMs then the users don’t need to care. Flatpaks are also playing the major role with Atomic.
Flatpaks could fill the gap between RPMs or sandboxed applications and containers. It allows one to run a desktop application and profit from a bunch of features. For example, updates without restart, isolation, and availability when something arrives. The access to the rest of the world is restricted and only allowed through so-called portals. Multiple options for deduplication helps to keep the footprint on the file system small.
To create a Flatpak there is not much needed. A YAML that is very similar to the SPEC file the and a JSON file which provides the metadata. For packages the YAMl file will looks very familiar:
module: [ MIT ]
flatpak-module-tools provides an easy way to create and maint Flatpaks. A seamless workflow is essential to transform RPMs into Flatpaks. Packagers will more likely create a Flatpak of their package if only a few commands are involved.
If it would become possible that you could combine RPM and upstream release then Flatpak could transform into a fast and useful pipeline to ship applications. Packages which are then included in Fedora could be replaced in the Flatpak. Nice way to make something available even if it’s not really ready to ship as a whole. Could be very helpful if you have over 100 dependencies that are not present in Fedora but still want to make something usable in an easy way.
I’m looking forward to see where it goes with Flatpaks. Flatpaks are for desktop applications. What about hybrid applications? Let’s talk about Glances. Glances is a command-line tool. With -w it transforms into a server application which provides the details over HTTP. According to the definitions glances -w should be in a container and glances in a Flatpak. I hope that this division is not going to happen as it will increase the work for the packagers. There may be legitimate reasons to justify the division for certain application but I assume that nobody wants go the extra mile to install and configure the container setup when you just could use a Flatpak.