Ich beginne mein Unterfangen mit einer Recherche, wie das mit der Paketverwaltung in Solus im Detail funktioniert. Mir ist klar, dass ich zwei Komponenten des Systems verstehen muss: Zum einen muss ich in der Lage sein, Pakete zusammenzustellen, zum anderen muss ich meine Pakete so bereitstellen, dass die Paketverwaltung von Solus sie erkennt. Ich beginne mit dem zweiten Teil und schaue mir an, wie Pakete in Solus verteilt werden.

eopkg

eopkg ist das Kommandozeilen-Tool für die Paketverwaltung in Solus. Es zeigt mir mit dem Befehl eopkg list-repo das eine Standard-Repository1 an, über das Solus aktualisiert wird:

https://packages.solus-project.com/shannon/eopkg-index.xml.xz

eopkg ist in Python implementiert und soll durch sol ersetzt werden, das ist aber wohl noch nicht so weit. Ich kann zusätzliche Repositories zu eopkg hinzufügen. Gut. eopkg kann auch mit Repositories umgehen, die einen Zugriffsschutz in Form einer HTTP-Authentifizierung haben. Gut. Allerdings muss ich die Zugangsdaten immer als Parameter mitgeben. Nicht gut.

Software-Center

In der GUI gibt es mit dem Software-Center auch eine grafische Oberfläche. Wenn ich zu eopkg zusätzliche Repositories hinzufüge, sind die dann, wenn ich das richtig verstehe, auch im Software-Center verfügbar. Wenn ich nichts übersehen habe, kann das Software-Center nicht mit so etwas wie HTTP-Authentifizierung umgehen. Nicht gut.

appstream

Im Software-Center werden bestimmte Pakete hübscher angezeigt als andere Pakete, nämlich mit einem schönen Icon und Vorschaubildern. Diese Metadaten kommen nicht aus den jeweiligen Paketen, sondern sind Teil einer separaten Informationsquelle namens appstream2. Das ignoriere ich mal im Folgenden.

ferryd

Das Solus-Projekt benutzt server-seitig zur Generierung des Paket-Repositories ferryd. Das ist ein Dienst, der seit Herbst 2017 in Betrieb ist und aus hochgeladenen Paketen das offizielle Repository erzeugt. Das hört sich schon mal relevant an.

Allerdings will ich vermeiden, einen eigenen Server für meine paar Pakete aufzusetzen. Stattdessen würde ich das Repository gerne nur bei Bedarf neu generieren und dann statisch hosten. Hier muss ich mir etwas überlegen.

  1. Im Software-Center sind einige Third-Party-Apps verfügbar, die nicht über das offizielle Solus-Repository ausgeliefert werden, siehe hier und hier. Das ist mehr oder weniger hart im Quelltext des Software-Centers kodiert. 

  2. Es gibt dann noch ein ganz ähnliches Repository, das aber nur Paket-Icons enthält. Nicht so ganz klar, wo der Unterschied ist. Für appstream gibt es die drei Kommandozeilen-Tools appstream-util, appstream-builder und appstream-compose.