The developers of the AlmaLinux distribution, which is a free clone of Red Hat Enterprise Linux similar to CentOS, have introduced a new build system called ALBS (AlmaLinux Build System), which has already been used in creating the releases of AlmaLinux 8.6 and 9.0, prepared for the x86_64, Aarch64, PowerPC ppc64le, and s390x architectures. In addition to building the distribution, ALBS is also used for generating and publishing corrective updates (errata) and for signing packages with a digital signature. The code of the build system is written in Python and is distributed under the GPLv3 license.
The presented build system is based on the developments of CloudLinux, which is creating its own commercial distribution based on the RHEL package base. CloudLinux founded the AlmaLinux project and established the non-profit organization AlmaLinux OS Foundation, created for development in a neutral space with community involvement and using a management model similar to the organization of the Fedora project. To confirm its commitment to the originally stated fully open and transparent community development model, the code of the build system is now fully open, and all stages of AlmaLinux assembly are controlled by the community.
The ALBS system is focused on automating the distribution building process, package building, package testing, creating digital signatures, and publishing compiled packages in public repositories. The system aims to handle all stages of distribution creation as a cohesive whole to eliminate errors caused by human factors. The build system continues the development of CloudLinux's internal build system, which has been in use since 2012.
In addition to RPM format packages, the DEB format is also supported, and tools are provided for automating brand replacements and modifications of rebuilt packages. Furthermore, the system can be used to create arbitrary distributions based on Ubuntu and Debian. A continuous integration system called Jenkins is used for testing builds. The source code for compiled packages is fetched from a Git repository (in the case of AlmaLinux, changes to RHEL packages are tracked through git.centos.org and transferred to git.almalinux.org and sources.almalinux.org).

Anonymous access to the AlmaLinux build system is now open for everyone, allowing tracking of all stages of the distribution's assembly. Through the provided interface, you can determine which packages are currently being built, when a specific package was assembled, and which packages encountered issues during assembly. A complete build log is available for analysis, detailing individual packages. Currently, access is limited to monitoring the system, but by the end of July, a role-based access control (RBAC) system is planned to be launched, enabling community members and maintainers to build their own packages in ALBS.
In the future, we also expect support for build verification using the CodeNotary service, integration with the COPR build service, support for namespaces to provide projects and organizations with the infrastructure for building their packages, and the preparation of tools for automating the building and publishing of images. of virtual machines and containers.
Source: opennet.ru
