Para Flatpak

Similar a Snap, hay una versión Flatpak de Jami que se distribuye en [Flathub] (https://flathub.org/apps/net.jami.Jami).

¿Qué es Flatpak y cómo funciona?

Se recomienda leer la Introducción a Flatpak y Conceptos básicos para tener una comprensión básica de Flatpaks.

Importante

Antes de continuar, instalar el paquete flatpak.

Código fuente

El código fuente de la versión Flatpak es exactamente el mismo que el del cliente de escritorio. Sin embargo, el manifiesto, las dependencias y los parches específicos de Flatpak están alojados en el repositorio oficial de GitHub (según lo requiere Flathub), que se puede encontrar [aquí] (https://github.com/flathub/net.jami.Jami).

Requisitos Previos

Instalar flatpak-builder:

flatpak install flathub org.flatpak.Builder

Luego, agregar el repositorio de Flathub para el usuario:

flatpak remote-add --if-not-exists --user flathub https://dl.flathub.org/repo/flathub.flatpakrepo

Construyendo el Flatpak localmente

Clonar el repositorio de GitHub

git clone git@github.com:flathub/net.jami.Jami.git

Construir Jami

flatpak-builder --force-clean --user --install-deps-from=flathub --repo=DIR builddir net.jami.Jami.yml

“DIR—- el nombre del repositorio. Por defecto, el nombre del repositorio debería ser repo. Si el nombre del repositorio es cualquier otra cosa, el nombre del repositorio debe usarse al [instalar Jami] (#install-jami), [depurar Flatpak] (#debugging) y [enviar actualizaciones a Flathub] (#submitting-updates-to-flathub).

Instalar Jami

flatpak install DIR -y net.jami.Jami

Ejecutar Jami

flatpak run net.jami.Jami

Nota

Si hay varias instalaciones Flatpak de Jami, se debe especificar el --branch=BRANCH después del comando run para ejecutar el Flatpak que se acaba de compilar.

Las instalaciones de Flatpak y sus correspondientes ramas se pueden consultar mediante el comando “flatpak list”Para ejecutar el Flatpak que se acaba de compilar e instalar, establezcaBRANCH en la rama que corresponde a 'Origin' como 'repo'

Depurado

Es posible depurar Flatpaks dentro del sandbox en una máquina local.

Advertencia

Debido a la forma en que Jami está construido para Flatpak, la depuración puede llevar mucho tiempo ya que jami-core está construido como una biblioteca compartida. Esto significa que cada vez que se reinicia el depurador, es necesario esperar a que se carguen los símbolos. A menos que sea seguro que el problema que se está depurando es específico de la versión Flatpak de Jami, generalmente es más rápido compilar y depurar el cliente de escritorio localmente. Para obtener instrucciones, consulte [aquí](dependencies. md#jami-client-qt).

Descargando la versión de depuración

Las instrucciones para construir el Jami Flatpak como se describe en la sección anterior deben estar completas antes de continuar. Una vez hecho esto, instale la versión de depuración:

flatpak install --include-sdk --include-debug repo -y net.jami.Jami

Inicio del entorno de depuración

El siguiente comando ejecutará un shell dentro del sandbox:

flatpak run --command=sh --devel --filesystem=$(pwd) net.jami.Jami

Una vez ejecutado, el shell debería tener un aspecto similar al siguiente:

[📦 net.jami.Jami net.jami.Jami]$

Ahora hay dos métodos para depurar. Independientemente de cuál se elija, los comandos descritos en cualquiera de las secciones deben ejecutarse within the sandbox shell.

Depurar con el Depurador del Proyecto GNU (GDB)

gdb --args /app/bin/jami --debug

La depuración ahora se puede hacer como de costumbre.

Depurar con Visual Studio Code (VS Code)

  1. Iniciar gdbserver.

    gdbserver :1234 /app/bin/jami --debug
    

    Nota

    El número de puerto se puede cambiar si es necesario. Asegúrese de que el número de puerto para miDebuggerServerAddress in .vscode/launch.json refleje el nuevo número de puerto.

  2. Iniciar VS Code en la raíz del proyecto.

  3. Entra en la sección Ejecutar y Depurar (Ctrl+Shift+D).

  4. Seleccionar «Adjuntar a GDB remoto».

  5. Ejecutar Jami (F5).

Establecer puntos de interrupción

Los archivos fuente se encuentran en builddir/files/lib/debug/source en la raíz del proyecto y son donde se deben establecer los puntos de interrupción.

Enviando actualizaciones a Flathub

Si aún no lo ha hecho, instale flatpak-builder y agregue el repositorio de Flathub para todo el usuario como se describe en la sección Prerrequisitos.

Construye la lista

flatpak run --command=flathub-build org.flatpak.Builder --install net.jami.Jami.yml

Ejecutar y probar Jami

flatpak run net.jami.Jami

Ejecutar el linter

Los siguientes comandos deben ejecutarse cuando se realizan cambios en los archivos YAML. Si hay errores, deben resolverse antes de abrir una solicitud de extracción. De lo contrario, la prueba Flathub también will fail en las compilaciones_.

flatpak run --command=flatpak-builder-lint org.flatpak.Builder manifest net.jami.Jami.yml
flatpak run --command=flatpak-builder-lint org.flatpak.Builder repo repo

La lista de errores de linter se puede encontrar aquí.

Impulsar cambios y abrir una solicitud de extracción

Si la compilación tuvo éxito y pasó las comprobaciones de linter, los cambios se pueden enviar al repositorio de GitHub y se puede abrir una solicitud de extracción. Una vez que se abra la solicitud de extracción, el sistema de compilación automática Flathub creará compilaciones de prueba para las arquitecturas “x86_64” y “aarch64”` Si las compilaciones de prueba tienen éxito, la solicitud de extracción se podrá fusionar en master, activando las compilaciones oficiales.

Nota

Cualquier cambio en “finish-args” en “ net.jami.Jami.yml”, así como cambios en `net.jami.Jami.metainfo.xml “ requerirá la aprobación de los mantenedores de Flathub. Dependiendo de los cambios, la compilación se puede rechazar o requerir una explicación o justificación. Para estos últimos, se abrirá un issue en el repositorio de GitHub para explicar o justificar los cambios.

Para ver el estado de la aprobación, iniciar sesión en Flathub y navegar hasta Portal del desarrollador → Jami.