Os desenvolvedores da distribuição AlmaLinux, que desenvolve uma alternativa gratuita ao Red Hat Enterprise Linux semelhante ao CentOS, apresentaram um novo sistema de construção, o ALBS (AlmaLinux Build System), que já foi utilizado na criação das versões AlmaLinux 8.6 e 9.0, preparadas para as arquiteturas x86_64, Aarch64, PowerPC ppc64le e s390x. Além de construir a distribuição, o ALBS também é utilizado para gerar e publicar atualizações corretivas (errata) e para assinar pacotes digitalmente. O código do sistema de construção é escrito em Python e é distribuído sob a licença GPLv3.
O sistema de construção apresentado é baseado em inovações da CloudLinux, que desenvolve sua própria distribuição comercial baseada na base de pacotes do RHEL. A CloudLinux fundou o projeto AlmaLinux e é a criadora da organização sem fins lucrativos AlmaLinux OS Foundation, criada para desenvolvimento em uma plataforma neutra com a participação da comunidade e usando um modelo de gestão semelhante ao da organização do projeto Fedora. Para confirmar o compromisso com o modelo de desenvolvimento totalmente aberto e transparente inicialmente declarado para a comunidade, o código do sistema de construção agora é totalmente aberto e todas as etapas de construção do AlmaLinux são controladas pela comunidade.
O sistema ALBS é voltado para a automação da construção da distribuição, construção de pacotes, testes de pacotes, criação de assinaturas digitais e publicação de pacotes compilados em repositórios públicos. O sistema visa tratar todas as etapas de construção da distribuição como um todo, a fim de excluir erros causados pelo fator humano. O sistema de construção continua a evolução do sistema interno de construção da CloudLinux, utilizado desde 2012.
Além dos pacotes no formato RPM, o formato DEB é suportado e são fornecidas ferramentas para automatizar substituições de marca e modificações de pacotes recompilados. O sistema também pode ser utilizado para criar distribuições personalizadas baseadas no Ubuntu e Debian. Para testar as compilações, é utilizado um sistema de integração contínua chamado Jenkins. O código-fonte dos pacotes que estão sendo compilados é carregado a partir do repositório Git (para o AlmaLinux, as alterações nos pacotes do RHEL são rastreadas através do git.centos.org e transferidas para git.almalinux.org e sources.almalinux.org).

Para todos os interessados, o acesso anônimo ao sistema de construção AlmaLinux está disponível, permitindo acompanhar todas as etapas da construção da distribuição. Através da interface fornecida, é possível determinar quais pacotes estão sendo compilados no momento, quando um pacote de interesse foi compilado e quais pacotes falharam na compilação. Está disponível um log de construção completo com detalhes ao nível de pacotes individuais. No momento, o acesso é limitado à observação do sistema, mas no final de julho está prevista a implementação de um sistema de controle de acesso baseado em funções (RBAC) e a disposição de participantes da comunidade e mantenedores para compilar seus próprios pacotes no ALBS.
No futuro, também é esperada a suporte à verificação de builds usando o serviço CodeNotary, suporte ao serviço de construção COPR, suporte a namespaces para fornecer infraestrutura de build para projetos e organizações, preparação de ferramentas para automação de build e publicação de imagens. máquinas virtuais e contêineres.
Fonte: opennet.ru
