Empaquetado en Profundidad

¿Es su aplicación apropiada?

La mayoría de las aplicaciones gráficas pueden ser hechas en Flatpak sin modificación, aunque la creación de un Flatpak de espacio aislado que evite que la aplicación haga cosas arbitrarias en la cuenta del usuario es más probable que requiera cambios de código.

Algunas cosas que podrían hacer una aplicación que no trabaje bien como un Flatpak:

  • Si instala servicios del sistema o cambia los archivos de configuración del sistema

  • Si necesita acceso a binarios u otros archivos en / usr que no se pueden empaquetar con la aplicación

Coseche una ID de aplicación

Para seleccionar una IDde aplicación apropiada:

  • Si la aplicación tiene ya un archivo de aplicación de este formato, esto es la ID de aplicación.

  • Si la aplicación exporta algunos servicios D-Bus (Buscar ficheros en /usr/share/dbus-1/services/ - aunque una aplicación puede exportar servicios D-Bus sin instalar un archivos de servicio) luego el prefijo del nombre de D-Bus debería coincidir con la ID de aplicación.

  • Si la aplicación está ya empaquetada en Flathub use, por favor, la misma ID de aplicación.

  • Si no es así, necesita inventar una ID de aplicación. Esta debería ser su mejor suposición posible sobre lo que usaría el upstream - si tiene su propio nombre de dominio, esa sería la base, de otro modo tome base en el hospedaje - e.g. com.github.<user/organization>.<Aplicación>. Advierta que la idea original de una ID de aplicación es un nombre reverso que esté bajo su control, si es posible, coordine con el upstream, pregunte si su elección es OK y pídales que renombren su archivo de escritorio y el icono para hacerlo coincidir.

Las aplicaciones sólo pueden exportar recursos bajo su ID de aplicación, de modo que el archivo de escritorio y el icono para la aplicación necesitan tener el nombre apropiado. El mejor sitio para implementar esto es el upstream. El segundo mejor sitio es en el paquete de la aplicación Fedora. Pero si esto no es posible, puede hacer esto en su container.yaml. Vea la sección [Renombres] abajo.

Versionando

Los Flatpaks en Fedora son diferentes de los paquetes en el sentido de que no hay una versión de aplicación separada para F36, F37, rawhide, etc. En su lugar hay una única versión que es la última versión estable para todas las versiones de Fedora.

Un flatpak apunta a un tiempo de ejecución particular. Su versión estable debería, idealmente, apuntar a un tiempo de ejecución que corresponda a la última versión lanzada de Fedora. Si la versión estable lanzada anteriormente de la aplicación tiene dependencias que no están disponibles en la versión lanzada de Fedora y no se puede agrupar en su módulo de aplicación (p.ej. requiere una versión más nueva del compilador C) entonces es aceptable que use la siguiente versión del tiempo de ejecución de Fedora, pero esto debería ser un caso inusual. Su aplicación puede estar basada en el módulo flatpak-runtime:f38, por ejemplo.

Las versiones del módulo y del contenedor para su lanzamiento estable deberían estar en la rama estable de su repositorio git y el arroyo del módulo estará en el arroyo estable.

<application>.yaml

Hay disponible alguna documentación sobre el contenido de <application>.yaml en https://github.com/fedora-modularity/libmodulemd/blob/main/yaml_specs/modulemd_stream_v1.yaml (for files specifying version: 1) o https://github.com/fedora-modularity/libmodulemd/blob/main/yaml_specs/modulemd_stream_v2.yaml (for files specifying version: 2).

container.yaml

finish-args

Flatpak/finish-args: sección de su container.yaml que determina que permisos tendrá la aplicación.

Aplicación sin espacio aislado, la aplicación requiere X y accede a la red
flatpak:
    finish-args: >
        --share=network
        --socket=x11
        --filesystem=user
Aplicación de espacio aislado
flatpak:
    finish-args: >
        --socket=wayland
        --socket=fallback-x11
La aplicación si espacio aislado, la aplicación tiene soporte wayland y usa DConf
flatpak:
    finish-args: >
         --filesystem=host
         --share=ipc
          --socket=fallback-x11
          --socket=wayland
          --socket=session-bus
          --filesystem=~/.config/dconf:ro
          --filesystem=xdg-run/dconf
          --talk-name=ca.desrt.dconf
          --env=DCONF_USER_CONFIG_DIR=.config/dconf

Vea la página de manual http://docs.flatpak.org/en/latest/sandbox-permissions-reference.html and the flatpak-build(1).

Renombrar

Muchas de las aplicaciones existentes en Fedora no tienen una aplicación en formato estándar. Usted puede añadir claves a su container.yaml para renombrar recursos exportados para que coincidan con la ID de aplicación.

flatpak:
    rename-appdata-file: eog.appdata.xml
    rename-desktop-file: eog.desktop
    rename-icon: eog

La manera preferida, sin embargo, es corregir el ID de la aplicación en el paquete RPM, e incluso más arriba. La razón por la que esto es mejor es que el sistema puede comprender la relación entre las dos aplicaciones y no se mostrarán entradas duplicadas en GNOME Software o en la lista de aplicaciones instaladas.

Other keys

The complete list of supported keys from the Flatpak builder manifest file that you can add to the flatpak: section of container.yaml is:

  • appdata-license

  • appstream-compose

  • copy-icon

  • desktop-file-name-prefix

  • desktop-file-name-suffix

  • end-of-life

  • end-of-life-rebase

  • rename-appdata-file

  • rename-desktop-file

  • rename-icon

See the flatpak-manifest(5) manual page for documentation.