Tutorial de empaquetado
Creando un Flatpak de una aplicación que esté ya empaquetada en Fedora involucra dos pasos. Primero necesita reconstruir los RPM de la aplicación junto con cualquiera de las dependencias las cuales no están incluidas dentro del tiempo de ejecución. Entonces necesita crear un contenedor fuera de la aplicación. En el contexto Fedora, los flatpak son tan solo otra forma de contenedor, y son manipulados muy similares a los contenedores Docker utilizándolos para aplicaciones servidor.
Tan solo como un paquete, las instrucciones para construir el flatpak de RPM y contenedores están almacenados a git en https://src.fedoraproject.org y las construcciones están coordinadas por https://koji.fedoraproject.org. El flatpak para una aplicación puede encontrase en https://src.fedoraproject.org dentro del repositorio flatpaks/<application>
; este repositorio git contiene un archivo container.yam
, el cual define como el paquete es configurado en un contenedor Flatpak.
Ajustes
Instalar las herramientas necesarias:
$ sudo dnf install flatpak-module-tools
Asegure que su usuario está dentro del grupo mock
(ambos compilaciones de RPM local y contenedor local utilizan mock).
$ sudo usermod -a -G mock $USER
(Puede que necesite salir y volver a entrar.)
Añadir a la prueba flatpak Fedora remota:
$ flatpak remote-add fedora-testing oci+https://registry.fedoraproject.org#testing
En Fedora, la prueba remota ya estaría instalada, pero en estado deshabilitado. Para habilitarlo ejecute: $ flatpak remote-modify --enable fedora-testing E instale el Fedora Flatpak Runtime si no lo ha instalado ya: $ flatpak install fedora-testing org.fedoraproject.Platform/x86_64/f42 |
Se crea container.yaml
$ mkdir lagrange && cd lagrange $ flatpak-module init --flathub=lagrange lagrange
Esto genera una versión inicial de container.yaml
. La opción --flathub=lagrange
busca Flathub para una aplicación cuyo nombre o ID de aplicación coincide con lagrange
, y utiliza el manifiesto Flathubn para inicializar container.yaml
. Si son encontradas múltiples coincidencias, son exhibidas, y necesitará re-ejecutar flatpak-module init
con una cadena de búsqueda más específica.
Miremos en el archivo container.yaml
.
flatpak:
id: fi.skyjake.Lagrange
branch: stable
runtime-name: flatpak-runtime
runtime-version: f42
packages:
- lagrange
command: lagrange
finish-args: |-
--socket=wayland
--socket=fallback-x11
--socket=pulseaudio
--share=ipc
--share=network
--device=dri
--filesystem=xdg-download
--filesystem=home:ro
Este archivo container.yaml
puede ser utilizado tal como es, pero a menudo son necesarias modificaciones.
Si no hay compilaciones existentes de la aplicación en Flathub, puede omitir la opción --flathub
para flatpak-module init
. En este caso necesitará tomar un ID de aplicación y editar container.yaml
.
Realizando una compilación local
$ flatpak-module build-rpms-local --auto $ flatpak-module build-container-local --install
Si es correcta la construcción de los RPM pero la construcción del contenedor falla, y necesita cambiar el container.yaml
e intentar de nuevo, puede repetir tan solo el último paso.
Probando
Si la instalación es correcta, ahora puede hacer:
$ flatpak ejecuta fi.skyjake.Lagrange
Para probarlo fuera.
solicita src.fedoraproject.org
Solicite un repositorio Git nuevo como sigue:
$ fedpkg request-repo --namespace=flatpaks <aplicación>
Importando su contenido de flatpak
Una vez que el repositorio ha sido creado:
$ mv <application> <application>.old $ fedpkg clone flatpaks/<application> $ cd <application> $ cp ../application.old/contenedor.yaml $ git add <application>.yaml contenedor.yaml $ git commit -m "Importación inicial" $ git push origen estable
Compilando en Koji
Primera compila los paquetes:
$ flatpak-module build-rpms --auto
Si eso completa correctamente, entonces puede ir a:
$ flatpak-module build-container
Probando la construcción
Para instalar la última construcción lograda desde Koji, ejecute:
$ flatpak-module install --koji <application>-flatpak
Creando una actualización
Encuentra el NVR de su compilación Flatpak - si no lo tiene en su arrastre de terminal vaya a https://koji.fedoraproject.org/ y busque en "Packages" para el nombre de la `<aplicación>-flatpak.
Vaya a https://bodhi.fedoraproject.org/updates/new e introduzca el flatpak NVR bajo Candidate Builds (descarta “Packages”). Introduzca texto bajo “Actualizar notas” como “Flatpak inicial de <aplicación>”, y pulse <Enviar>.
Want to help? Learn how to contribute to Fedora Docs ›