Die Entwickler der AlmaLinux-Distribution, die eine kostenlose Klon-Version von Red Hat Enterprise Linux ähnlich CentOS vorantreibt, haben ein neues Build-System namens ALBS (AlmaLinux Build System) vorgestellt. Dieses System wurde bereits bei der Erstellung der Versionen AlmaLinux 8.6 und 9.0 verwendet, die für die Architekturen x86_64, Aarch64, PowerPC ppc64le und s390x vorbereitet wurden. Neben dem Bauen der Distribution wird ALBS auch zur Generierung und Veröffentlichung von Korrekturupdates (Errata) und zur digitalen Signierung von Paketen eingesetzt. Der Code des Build-Systems ist in Python geschrieben und wird unter der GPLv3-Lizenz vertrieben.
Das vorgestellte Build-System basiert auf den Entwicklungen von CloudLinux, welches eine eigene kommerzielle Distribution auf der Grundlage der RHEL-Paketbasis entwickelt. CloudLinux hat das AlmaLinux-Projekt ins Leben gerufen und war Gründungsmitglied der gemeinnützigen AlmaLinux OS Foundation, die entwickelt wurde, um auf einer neutralen Plattform mit Beteiligung der Community und einem ähnlichen Verwaltungsmodell wie das Fedora-Projekt zu arbeiten. Um das Engagement für das ursprünglich angekündigte, vollkommen offene und transparente Entwicklungsmodell für die Community zu bekräftigen, ist der Code des Build-Systems jetzt vollständig offen, und alle Phasen des AlmaLinux-Baus unterliegen der Kontrolle der Community.
Das ALBS-System ist auf die Automatisierung des Builds der Distribution, das Erstellen von Paketen, das Testen von Paketen, das Erstellen digitaler Signaturen und die Veröffentlichung der erstellten Pakete in öffentlichen Repositories ausgerichtet. Das System zielt darauf ab, alle Phasen der Distributionserstellung als Einheit zu behandeln, um Fehler durch menschliche Faktoren zu vermeiden. Das Build-System entwickelt das interne Build-System von CloudLinux weiter, das seit 2012 im Einsatz ist.
Neben RPM-Paketen werden auch DEB-Formate unterstützt, und es stehen Werkzeuge zur Automatisierung des Brandings und der Modifikation von neu erstellten Paketen zur Verfügung. Das System kann zudem verwendet werden, um beliebige Distributionen auf Basis von Ubuntu und Debian zu erstellen. Für das Testen der Builds wird das kontinuierliche Integrationssystem Jenkins verwendet. Der Quellcode der erzeugten Pakete wird aus einem Git-Repository geladen (im Falle von AlmaLinux werden Änderungen an RHEL-Paketen über git.centos.org verfolgt und in git.almalinux.org sowie sources.almalinux.org übertragen).

Für alle Interessierten ist ein anonymer Zugang zum Build-System AlmaLinux geöffnet, der es ermöglicht, alle Phasen der Distributionserstellung zu verfolgen. Über die bereitgestellte Schnittstelle kann festgestellt werden, welche Pakete derzeit erstellt werden, wann ein bestimmtes Paket erstellt wurde und bei welcher Erstellung von Paketen Fehler aufgetreten sind. Für die Analyse steht das vollständige Build-Log mit Details auf Paketebene zur Verfügung. Momentan ist der Zugang auf die Beobachtung des Systems beschränkt, aber Ende Juli ist die Einführung eines rollenbasierten Zugriffsmanagementsystems (RBAC) geplant, um Mitgliedern der Community und Betreuern die Möglichkeit zu geben, eigene Pakete in ALBS zu erstellen.
Zukünftig wird auch die Unterstützung für die Validierung von Builds mit dem Service CodeNotary erwartet, die Unterstützung des Build-Service COPR, die Unterstützung von Namespaces zur Bereitstellung von Build-Infrastrukturen für Projekte und Organisationen, sowie die Vorbereitung von Mitteln zur Automatisierung der Erstellung und Veröffentlichung von Images virtuellen Maschinen und Containern.
Quelle: opennet.ru
