Einführung zum Erstellen von Flatpaks

Der Abschnitt Erstellen des ersten Flatpaks beinhaltete bereits eine kurze Demonstration, wie man Anwendungen mit Flatpak erzeugt. Diese Seite bietet zusätzlich eine allgemeine Übersicht, was hierbei involviert ist.

flatpak-builder

``flatpak-builder``ist das primäre Tool zum Erstellen von Flatpak-Anwendungen. Es erlaubt, die Quelldateien für eine Anwendung zu nehmen und diese in eine Flatpak-Anwendung einzubinden. Es erlaubt zudem, verschiedene weitere Abhängigkeiten parallel dazu aufzulösen, diese werden dann in dem erzeugten Build gebündelt.

flatpak-builder erhält als Eingabe eine Manifest-Datei. Diese spezifiziert die Parameter für die Anwendung, die erstellt werden soll, so wie den Namen der Anwendung und von welcher Laufzeitumgebung es abhängig ist. Das Manifest listet zudem alle Module, die erzeugt werden als Teil des Build-Prozesses. Eine Quelle für jedes Modul kann benannt werden, dies beinhaltet auch Dateiarchive oder Repositorys mit Versionskontrolle. Eines der Module (gewöhnlich das Letzte) ist der Programmcode der Anwendung selbst.

Das zugrundeliegende Format für den Aufruf von flatpak-builder sieht so aus:

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

<build-dir> bezeichnet den Pfad zum Verzeichnis, in dem die Anwendung erzeugt wird und <manifest> entspricht dem Pfad zur Manifest-Datei. Der Inhalt von <build-dir> kann zum Testen und Debuggen nützlich sein, wird aber generell als Artefakt des Build-Prozesses behandelt.

Das Ausführen von flatpak-builder setzt folgende Prozesse in Gang:

  • Das Build-Verzeichnis wird erzeugt, sofern es noch nicht existiert.

  • Der Quellcode wird für jedes Modul heruntergeladen und verifiziert.

  • Der Quellcode wird für jedes Modul kompiliert und installiert.

  • The build is finished by setting sandbox permissions

  • Das Resultat des Erstellungsprozesses wird zu einem Repository exportiert (welches erzeugt wird, wenn es nicht bereits existiert).

Die Anwendung kann vom Repository aus installiert und anschließend gestartet werden.

Software Development Kits (SDKs)

Für den Erstellungsprozess wird nicht das Gastsystem verwendet, anstelle dessen werden Flatpak-Anwendungen innerhalb einer separaten Umgebung erzeugt, dem SDK.

SDKs sind wie die regulären Laufzeitumgebungen in denen Anwendungen laufen. Der Unterschied ist, dass SDKs zusätzlich alle Entwicklungs-Ressourcen beinhalten und Tools, die benötigt werden, um eine Anwendung zu erzeugen, sowie Tools für die Erstellung und Paketierung, Header-Dateien, Compiler und Debugger.

Each runtime has an accompanying SDK. For example, there is both a GNOME 43 runtime and a GNOME 43 SDK. Applications that use the runtime are built with the matching SDK.

Like runtimes, SDKs will sometimes be automatically installed for you, but if you do need to manually install them, they are installed in the same way as applications and runtimes, such as:

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