
Das aktuelle Essay von Christian Schaller über eine Vision eines künftigen Linux-Desktops, an dem Entwickler bei Red Hat und Fedora arbeiten, hat in den Communities viele Diskussionen ausgelöst. Der Software-Entwickler Drew DeVault, der sich bereits öfter mit dem Thema auseinandergesetzt hat, schrieb nun eine Art Replik auf Schallers Essay, ohne dieses explizit zu erwähnen. Der Titel lautet Developers: Let distros do their job.
Wie der Titel bereits vermutet wird, stellt sich DeVault auf die Seite der Distributionen und ihrer Paketbetreuer und betont deren wichtige Position im Gefüge der Software-Verteilung. Jede Distribution hat eigene Richtlinien, denen Software-Entwickler insgesamt weder folgen können noch sollen.
Gemäß den Richtlinien der Distribution
Die Paketbetreuer sorgen dafür, dass die Regeln der jeweiligen Distribution auch im Sinne der Anwender umgesetzt werden. Viele Upstream-Versionen von Anwendungen, die wir täglich nutzen, enthalten Funktionen, die bei der einen oder anderen Distribution unerwünscht und somit beim Paketieren entfernt oder stillgelegt werden. Man denke hierbei etwa an aktivierte Telemetrie und andere Verletzungen von Datenschutz und Privatsphäre. Die Paketbetreuer sorgen zudem dafür, dass die Bestandteile eines Quellcodes gemäß dem Filesystem Hierarchy Standard (FHS) oder dessen jeweiliger Ausprägung in der Verzeichnisstruktur der Distribution verteilt werden, während Anwendungen aus dritter Hand meist einfach nach /opt verschoben werden oder wie bei Flatpak umfängliche eigene Strukturen in /var und /home ausbilden.
Vermittlerjob
Der Maintainer steht auch vermittelnd zwischen Anwender und Upstream-Entwickler. An ihn wenden sich die Anwender, wenn sie sich die Aufnahme eines Pakets in die Distribution wünschen. An sie gehen auch Bugreports, die mit dem Paketieren zu tun haben und auf die üblicherweise schnell reagiert wird. An die Entwickler gewandt hat DeVault einige gutgemeinte Ratschläge.
PS: Systeme, die dieses Modell umkehren, wie z.B. Flatpak, gehen völlig an der Sache vorbei.
Drew DeVault
- Liefere deine Software als einfachen Tarball aus. Liefere keine vorgefertigten Binärdateien und schon gar nicht einen „curl | bash“-Befehl aus.
- Verwende weit verbreitete, standardisierte Build-Systeme und -Methoden. Verwende den Standardansatz für die jeweilige Programmiersprache. Dieser hat bereits die ganze Bandbreite der Distributionen durchlaufen und die Funktionsweise wird von den Paketierern gut verstanden.
- Liefere gute Versionshinweise. Informiere die Paketierer über alle wichtigen Änderungen, die ihre Distribution betreffen könnten.
- Sei wählerisch mit Abhängigkeiten und versuche, riesige Abhängigkeitsstrukturen zu vermeiden. Bonus: dies führt zu besserer Sicherheit und Wartbarkeit!
- Pflege einen freundlichen Dialog mit den Distro-Maintainern, wenn diese Fragen stellen. Sie sind die Experten für ihre Distribution, aber der Entwickler ist Experte für die jeweilige Software. Im freundlichen Dialog ist alles leichter.
Dem ist wenig hinzuzufügen. Der durch die weitere Verbreitung alternativer Paketsysteme beförderte Wegfall der Maintainer als technisch versierte, vermittelnde und Vertrauen stiftende Instanz bei den Distributionen würde das Gefüge der Software-Auslieferung nachhaltig verändern, und das aus jetziger Sicht wohl eher negativ.