Tiempos de ejecución del empaquetado

As we’ve seen, each Flatpak targets a particular runtime, which provides shared binaries, libraries, and data files, and is mounted at /usr when the Flatpak is run.

Todos los Flatpaks en Fedora tienen como objetivo un tiempo de ejecución llamado`org.fedora.Platform`. Utilizando un solo tiempo de ejecución que simplifica el mantenimiento y evita que los usuarios tengan que descargar múltiples tiempos de ejecución. En general, no tendrás que modificar este tiempo de ejecución cuando se cree una aplicación, ya que los paquetes que lo necesiten se incluirán en la aplicación. Sin embargo, si encuentras un error en el tiempo de ejecución y quieres ayudar a repararlo, o quieres participar en el mantenimiento de los tiempos de ejecución de Fedora, entonces es muy útil que sepas cómo se construyen los tiempos de ejecución.

In addition to the org.fedora.Platform, three other runtimes are built in Fedora infrastructure

org.fedoraproject.Sdk

This is a SDK that extends org.fedora.Platform with compilers and header files to enable building applications against it using the flatpak-builder tool.

org.fedoraproject.BasePlatform

This is a smaller runtime. It is similar to the upstream org.freedesktop runtime. The idea of this runtime is that it establishes a package set that can be carried over into an enterprise-linux runtime that will have long-term support and stability.

org.fedoraproject.BaseSdk

The SDK corresponding to org.fedoraproject.BasePlatform

Los tiempos de ejecución están definidos en una manera similar en Flatpaks. El contenido de los tiempos de ejecución están definidos en el módulo de flatpak-runtime. Los diferentes perfiles del módulo contienen diferentes tiempos de ejecución.

A continuación se describe la forma en la que se organizarán las cosas. Actualmente, solo se construye un tiempo de ejecución principal llamado flatpak-runtime, y está definido directamente en modules/flatpak-runtime

Entonces los tiempos de ejecución se integran en los contenedores - pero desde que haya múltiples contenedores construidos por el mismo tiempo de ejecución, simplificar tanto la definición del módulo como la del contenedor en un solo repositorio de git no funcionará. En cambio, las definiciones de los contenedores se encuentran en repositorios git separados: flatpaks/flatpak-runtime. flatpaks/flatpak-sdk. flatpaks/flatpak-base-runtime. flatpaks/flatpak-base-sdk. Estos repositorios de git deben mantenerse sincronizados con el módulo de tiempo de ejecución, pero no necesitan modificarse muy a menudo.

La lista de paquetes en flatpak-runtime.yaml está mantenida con scripts que se encuentran en el módulo flatpak-runtime. La idea es que los contenidos del tiempo de ejecución debería ser un superconjunto del tiempo de ejecución org.gnome.Platform, que además contiene librerías que se utilizan por las aplicaciones populares que no pertenecen a GNOME, como QT% y SDL. Para más información sobre estos scripts de mantenimiento, puedes mirar el README.md del módulo.

The module definition for flatpak-runtime has an xmd section that includes extra information that is used at application build time to allow the resulting Flatpak to automatically depend on the right runtime and version without requiring it to be separately specified.