- Flatpak ist derzeit bei Entwicklern und Nutzern beliebt, doch beim Projekt selbst tritt das Problem einer stagnierenden Entwicklung in den Vordergrund
- Durch den Weggang zentraler Entwickler und Engpässe verzögern sich die Umsetzung neuer Funktionen und Code-Reviews
- Verschiedene Erweiterungen wie OCI-Image-Unterstützung, feinere Berechtigungen und Zugriffskontrolle für Audio wurden vorgeschlagen, kommen in der Praxis jedoch nur langsam voran
- Für die langfristige Weiterentwicklung des Projekts werden die Einführung von Container-Technologiestandards (OCI) und eine Neuimplementierung auf Basis von Rust diskutiert
- Die Lösung zentraler Probleme wie Portal-Verbesserungen, Treiberunterstützung und Netzwerk-Sandboxing ist entscheidend für das weitere Wachstum von Flatpak
Überblick und aktueller Stand des Flatpak-Projekts
- Flatpak begann 2007 als ähnliches Projekt, erschien 2015 erstmals als XDG-App und wurde 2016 in Flatpak umbenannt
- Es bietet Kommandozeilen-Tools, Build-Tools und Runtime-Komponenten und nutzt cgroups, namespaces, bind mount, seccomp, Bubblewrap und mehr zur Anwendungsisolation (Sandboxing)
- OSTree ist der Standardmechanismus für die Auslieferung; in jüngerer Zeit wurde auch OCI-Image-Unterstützung integriert, die unter anderem in Fedora genutzt wird
- Das Wachstum des Flathub-App-Stores und die Übernahme durch Distributionen gelten als Erfolg, intern erlebt das Projekt jedoch eine Verlangsamung der aktiven Entwicklung
Entwicklungsstillstand und Hauptursachen
- Wartung und Security-Patches finden weiterhin statt, doch die Entwicklung größerer neuer Funktionen und Code-Reviews steckt seit längerer Zeit fest
- Durch den Weggang wichtiger Entwickler (u. a. Larsson) fehlen Reviewer, was die Aufnahme neuer Mitwirkender und größere Änderungen erschwert
- Auch Funktionen wie die von Red Hat mitentwickelte Flatpak-Preinstall-Funktion litten unter verzögerten Reviews und dem Wegfall zuständiger Personen, sodass sich die Integration wiederholt über Monate hinzog
OSTree und OCI-Image-Unterstützung
- OSTree wurde in Flatpak erfolgreich eingesetzt, erfährt aber wegen nicht standardisierter bzw. eingeschränkter Tools kaum noch aktive Weiterentwicklung über die Wartung hinaus
- Für OCI existiert ein breites Tool-Ökosystem für Container-Images, wodurch sich das Flatpak-Team bei einer Einführung geringerer Wartungsaufwand und weniger doppelte Arbeit erhofft
- Unterstützung für effiziente Kompressionsformate wie zstd:chunked wurde ebenfalls in neuen PRs vorgeschlagen, bleibt aber verzögert und unintegriert
Berechtigungsverwaltung und feinere Sandbox-Aufteilung
- Flatpak konzentriert sich auf die Einschränkung des Systemzugriffs durch Sandboxing; in aktuellen Versionen werden auch feinere Berechtigungen unterstützt (z. B.
--device=input)
- Da Linux-Distributionen unterschiedliche Flatpak-Versionen ausliefern, entstehen Probleme, weil neue Berechtigungsfunktionen nicht breit ausgerollt werden und Versionskompatibilität berücksichtigt werden muss
- Bei Audio-Berechtigungen ist durch die Begrenzungen von PulseAudio eine Trennung von Wiedergabe und Aufnahme schwierig; Verbesserungen durch PipeWire werden daher als notwendig angesehen
- Die Unterstützung für verschachteltes Sandboxing ist unzureichend, sodass etwa Webbrowser intern keine zusätzlichen Sandboxes nutzen können
D-Bus- und Netzwerk-Sandboxing
- Flatpak greift nicht direkt auf D-Bus zu, sondern nutzt xdg-dbus-proxy für gefilterte Kommunikation
- Wick möchte die Filterrichtlinien in den D-Bus-Broker verlagern, um Richtlinien dynamisch anzuwenden und eine cgroup-basierte Zugriffskontrolle umzusetzen
- Wegen einer unvollständigen Umsetzung von Netzwerk-Namespaces besteht bei exponierten
localhost-Ports die Möglichkeit unbeabsichtigter Kommunikation zwischen Flatpak-Apps (reales Beispiel: AusweisApp)
- NVIDIA-Treiber werden für jede Runtime separat bereitgestellt, was übermäßigen Netzwerkverkehr und schwierige Updates verursacht. Nach dem Vorbild von Valve werden Host-Sharing und statische Kompilierung als Optionen geprüft
Nutzung und Verbesserungsbedarf bei Portalen
- Portale sind D-Bus-basierte APIs für den Zugriff auf externe Ressourcen und übernehmen verschiedene Aufgaben wie Dateien, Drucken und URLs
- Portale wie Documents funktionieren auf Dateiebene gut, doch bei produktiven Apps wie GIMP oder Blender stößt das zu stark granulare Berechtigungsmodell an seine Grenzen
- Zusammen mit Vorschlägen für neue APIs wie Passwort-Autovervollständigung, FIDO-Schlüssel und Sprachsynthese werden auch eine leichtere Entwicklung und eine Neuimplementierung in Rust diskutiert
Die Zukunft von Flatpak (Flatpak-next)
- Ausgehend von der Annahme, dass Flatpak künftig nicht mehr weiterentwickelt werden könnte, wird langfristig ein großer Wechsel in das OCI-Ökosystem diskutiert (für Images, Registries, Tools, Richtlinien und mehr)
- Eine Neuimplementierung auf Basis von Rust und die Einordnung in das Container-Ökosystem versprechen Vorteile bei Verwaltungsaufwand, Wartung und Erweiterbarkeit
Zusammenfassung der Fragen und Antworten
- Auf die Frage, wie bestehende Flatpak-Apps bei einem Wechsel zu OCI behandelt würden, wurde geantwortet, dass dies dank Build-Automatisierung bei Flathub kein großes Problem sei
- Beim Mangel an Metadaten in OCI-Registries hieß es, dass Standards für Nicht-Image-Daten entstehen, für die praktische Nutzung aber noch Entwicklung und Integration nötig seien
- Zur geplanten direkten Unterstützung von PipeWire wurde erklärt, dass technische Diskussionen laufen und die Richtung auf eine policy-basierte Integration mit PipeWire weise
Fazit
- Flatpak hat sich als Standardplattform für Verteilung und Sandboxing etabliert, steht aber vor mehreren Baustellen wie stockenden Reviews und Neuentwicklungen, Problemen bei Berechtigungen, Netzwerk und Treibern sowie einem möglichen Wechsel künftiger Standards
- OCI-basierte Container-Technologien und der Einsatz von Rust könnten zu einem neuen Entwicklungsmotor für Flatpak werden
- Die wichtigsten Punkte lassen sich als Gewinnung von Reviewern, Standardisierung, Ausbau des Ökosystems und Verbesserung der User Experience zusammenfassen
2 Kommentare
Ich finde es besser, den Zugriff nicht komplett zu blockieren, sondern klar anzuzeigen, auf welches Verzeichnis zugegriffen wird.
Android ist in dieser Hinsicht ganz okay, aber dort sind die Berechtigungen zu grob zusammengefasst, sodass man auch Berechtigungen auf einem Niveau erlauben muss, die man eigentlich nicht braucht ...
Hacker-News-Kommentare
--device=inputund der Unmöglichkeit erlebt, Berechtigungen feiner zu steuern, etwa nur Lautsprecher freizugeben, aber das Mikrofon zu blockieren./tmpzugreifen können, wodurch das Speichern von Anhängen und das Öffnen in anderen Apps extrem unpraktisch wird. Der Eigentümer des Computers solle der Nutzer sein, nicht der Entwickler. Solch überzogene Sicherheit führe aus dieser Sicht zu Produktivitätsverlust und wird mit der Useless Machine verglichen.git config, Schriftartenordner usw. optional alle Instanzen dieselben Zugriffsrechte erhalten..rpm. Man wünsche sich deutlich mehr Innovation bei Flatpak.flatpak-spawnoderpolkit-execmöglich, damit gebe man den Schutz der Sandbox jedoch fast vollständig auf.sysextals in Flatpak.