Gluon ist bei Freifunk Stuttgart die Basis für die Software, die auf Nodes läuft.
Der Autoupdater unterstuetzt verschiedene Kanaele fuer Updates. Welcher Kanal genutzt werden soll, kann im Config Mode eingestellt werden.
Es gibt derzeit die folgenden Kanaele:
Gebaut wird die Firmware automatisch mit Gitlab.
Eine Firmware-Version kann ohne erneut zu bauen in einen anderen Release-Kanal geschoben werden. Daher werden bei jedem Build Manifests fuer alle Update-Kanaele erzeugt.
Beim Build wird eine Firmware-Version automatisch mit dem Schluessel von Gitlab signiert, wenn sie von einem protected Branch gebaut wurde. Das ermoeglicht es, den Build direkt auf nightly oder experimental zu veroeffentlichten.
Die Versionsnummern unserer Firmware sind wie folgt aufgebaut:
v<major-version>.<minor-version>+<build-datum>-g.<commit hash gluon>-s.<commit hash gluon site>
Wobei:
major-version
: die Version des Haupt-Releases. Wir nur selten erhoeht.minor-version
: die Minor-Version.build-datum
: das Build-Datum in der Form YYYY-MM-DD
commit hash gluon
: Commit Hash des [Gluon-Repo](https://gitlab.freifunk-stuttgart.de/firmware/gluon)commit hash gluon site
: Commit Hash des [Site-Config-Repo](https://gitlab.freifunk-stuttgart.de/firmware/site-ffs)Es gibt fuer jede Minor-Version einen Branch in [site-ffs](https://gitlab.freifunk-stuttgart.de/firmware/site-ffs). Die Existenz des Branches bedeutet nicht, dass die Firmware released oder getestet wurde.
Fuer jede Veroeffentlichung auf einem Kanal soll ein Tag erstellt werden. Er soll wie folgt formatiert sein:
<versionsnummer>-<kanalname>-<releasenummer>
Wobei:
versionsnummer
: der Name des Branches, von dem gebaut wurdekanalname
: Name des Update-Kanals, z.B. betareleasenummer
: Nummer des Releases. Wird nach jedem Release auf Update-Kanal *kanalname* mit Version *versionsnummer* um eins inkrementiert.Anhand dieses Tag-Namens stellt der Firmware-Server netinfo dann die Firmware-Images zum Download auf firmware.freifunk-stuttgart.de bereit.
Auf dem Branch der jeweils neusten Entwicklungsversion (d.h. die aus der der nightly-Branch entsteht) wird automatisch jeden Donnerstag geprueft, ob es eine neuere Gluon-Version gibt. Falls ja, wird automatisch upgedated. Diese Firmware-Version wird automatisch auf dem `nighly`-Kanal veroeffentlicht.
Es wird immer nur auf die neuste Minor-Version upgegraded. Benutzen wir aktuell Gluon v2019.1 und erscheint Gluon v2019.1.1, wird auf diese Version upgedated. Erscheint v2019.2, wird kein Upgrade durchgefuehrt.
Die Pipeline: https://gitlab.freifunk-stuttgart.de/firmware/ffs-pipeline-nightly