Introdução à compilação

Compilando seu primeiro Flatpak já fornece uma demonstração rápida de como os aplicativos são compilados com o Flatpak. Esta página fornece uma visão geral geral adicional do que está envolvido.

flatpak-builder

O flatpak-builder é a principal ferramenta para a compilação de aplicativos Flatpak. Ele permite que você pegue os arquivos fonte de um aplicativo e o compile em um aplicativo Flatpak. Ele também permite que várias outras dependências sejam compiladas ao mesmo tempo, que são agrupadas na compilação.

A entrada para flatpak-builder é um arquivo de manifesto. Este especifica os parâmetros para o aplicativo que será compilado, como seu nome e em qual runtime ele dependerá. O manifesto também lista todos os módulos que devem ser compilados como parte do processo de compilação. Um fonte para cada módulo pode ser especificado, incluindo links para arquivos ou repositórios de controle de versão. Um dos módulos (geralmente o último) é o próprio código do aplicativo.

O formato básico usado para chamar o flatpak-builder é:

$ flatpak-builder <build-dir> <manifest>

sendo <build-dir> o caminho para o diretório em que o aplicativo será incorporado e <manifest> o caminho para um arquivo de manifesto. O conteúdo de <build-dir> pode ser útil para fins de teste e depuração, mas geralmente é tratado como um artefato do processo de compilação.

Quando flatpak-builder é executado:

  • O diretório de compilação é criado, se ainda não existir

  • O código-fonte de cada módulo é baixado e verificado

  • O código-fonte de cada módulo é compilado e instalado

  • A compilação é concluída definindo permissões de sandbox

  • O resultado da compilação é exportado para um repositório (que será criado se ele ainda não existir)

O aplicativo pode ser instalado a partir do repositório e executado.

Kit de desenvolvimento de software (SDKs)

Em vez de serem criados usando o ambiente host, os aplicativos Flatpak são criados dentro de um ambiente separado, chamado SDK (do inglês, “Software Development Kit”).

Os SDKs são como runtimes comuns nos quais os aplicativos são executados. A diferença é que os SDKs também incluem todos os recursos e ferramentas de desenvolvimento necessários para compilar um aplicativo, como ferramentas de compilação e empacotamento, arquivos de cabeçalho, compiladores e depuradores.

Cada runtime possui um SDK que o acompanha. Por exemplo, existe um runtime do GNOME 43 e um SDK do GNOME 43. Os aplicativos que usam o runtime são criados com o SDK correspondente.

Como os runtimes, às vezes os SDKs serão automaticamente instalados para você, mas se você precisar instalá-los manualmente, eles serão instalados da mesma maneira que os aplicativos e os runtimes, como:

$ flatpak install flathub org.gnome.Sdk//43