On Fri, Sep 7, 2018 at 5:29 AM, Martin Kolman <mkolman@redhat.com> wrote:
On Fri, 2018-09-07 at 05:06 -0400, Owen Taylor wrote:
[...]
That's *very* nice & something I have been calling for basically from day one with flatpacks. 

Not everyone wants to become a release engineer & build all the dependencies of their application by hand, especially when
all this is already available via RPM packages in Fedora. :)

BTW, it is (at least) to me not really apparent from the original email that we (finally!) have the Fedora Flatpak runtimes availble for use.

Well, sort of. :-) What I've created so far is a Flatpak runtime to run packages against - there's no corresponding SDK to use with flatpak-builder. There's an initial definition of packages for such a SDK, but I haven't actually tried creating the SDK, much less building anything against it.

Also, the Flatpak runtime is not yet installable and updateable from a Flatpak remote - we're still working on the last infrastructure pieces to have that working.

But very soon!


Some advantages this has over building and using Flatpaks on Flathub:

 - In most cases, it's easier to create a Flatpak from an existing RPM rather than creating a flatpak-builder manifest from scratch.
 - We're able to reuse the Fedora updates infrastructure and automate rebuilding and releasing Flatpaks and the runtime for security or other bug fixes
Is there a listing of what is already part of the Fedora runtime ? I tried cliking about in the linked documentation, but was not able to find it.

That information is stored in from:

 
It's hard to read because there are *four* list of packages in thre:
 - A base runtime corresponding to org.freedesktop.Platform
 - The corresponding SDK
 - A full runtime (similar to org.gnome.Platform, but with Qt5 and other useful additions)
 - The corresponding SDK

So packages can be listed 4 times. The contents can also be explored interactively at:


(The tabs at the top take you to other reports.)

Also, how long will the runtimes be supported by security fixes ? I guess just as long as the corresponding Fedora releases, or maybe longer ?

Exactly - the lifetime of the runtime is determined by the lifetime of the Fedora release, unless we decide at a Fedora project level to support it longer. I don't think that's immediately interesting, but maybe eventually.
 
 - Applications with complicated build dependencies are easier to handle. Any RPM in Fedora can be used as a build-time dependency. Only run-time dependencies that aren't already in the runtime need to be rebuilt and bundled, and even there it's a mostly automatic process.

(On the other hand, for an upstream application developer who knows nothing about RPMs and specfiles and so forth, and just wants to create a Flatpak of their application, flatpak-builder and Flathub is likely more attractive than creating a Flatpak via Fedora packaging.)

It's not exclusive - you can use Flatpaks from Flathub and from this effort together - even on a non-Fedora system. And, of course, you can contribute to both Fedora and Flathub!
Do I understand things correctly that Flatpaks built for Fedora should still work fine on other distros such as say Debian, ArchLinux or even CentOS ? I guess the user adds the Fedora generated Flatpak repo,
this pulls in the Fedora runtime (and keeps it updated) and then installs the corresponding Flatpak and all just works seamlessly ?
 
Yes, you understand correctly.

[There's a wrinkle here in that the plan is to distribute the Fedora flatpaks via registry.fedoraproject.org as OCI container images, rather than via an ostree repository, but the support for that is in Flatpak 1.0 on all distros - 'flatpak remote add fedora oci+https://registry.fedoraproject.org' will be all that is needed, and the difference is handled by Flatpak behind the scenes.]

Owen