Bootstrap? Que bootstrap? Eu quero a ISO da Mageia!

Nós anunciamos que a primeira ISO alpha estará disponível até o final de janeiro… e ainda não está. Malditos! O que está acontecendo? Deixe-me explicar.

Era uma vez uma inicialização…

Como dito em posts anteriores do blog, o nosso sistema de compilação está em operação ativa nas últimas semanas e mais de 4.000 pacotes já foram compilados. Este conjunto de pacotes é o que chamamos de bootstrap.

Olhando para a Wikipédia, você vai ver que um bootstrap é um pequeno sistema de iniciação usado para inicializar um sistema maior. No caso da Mageia: bootstrap é a etapa atual, onde o sistema básico e a maioria das dependências estão sendo compiladas para que todas as aplicações possam também ser compiladas utilizando ferramentas e pacotes próprios da Mageia. Todas as distribuições Linux usam seus próprios pacotes para compilar todos os pacotes disponíveis em seus repositórios.

Em seguida, vem a parte mais difícil da história, uma espécie de dilema do ovo e da galinha. Alguns pacotes de baixo nível, geralmente chamado toolchain, são necessários para compilar: gcc, glibc… Estes pacotes já existem em um monte de distribuições. Assim, o processo de bootstraping simplesmente começa a partir de uma dessas distribuições.

Na Mageia, como a primeira versão é baseada no Cooker, decidimos usar os pacotes da Mandriva. A fim de usá-los, é preciso tê-los limpos:

  • removendo bits e peças específicas da Mandriva (macros RPM, itens protegidos por direitos autorais, como imagens, ícones, material obsoleto…)
  • eliminando as condições desnecessários nas definições de compilação requeridas
  • desativando temporariamente algumas dependências de alto nível já que elas ainda não estão compiladas e disponíveis para Mageia (Java, Mono).

Quando tudo isso for feito, cada pacote está pronto para ser recompilado no sistema de compilação da Mageia. Uma vez que o pacote é recompilado como um pacote Mageia, o embalador irá verificar e re-adicionar, se necessário, dependências de compilação adicionais tão logo estiverem disponíveis.

Vamos dar um exemplo

gcc é um compilador C, uma parte importante da base do sistema que é necessário para que várias aplicações sejam compiladas a partir da fonte.

A Mageia necessita de seu próprio pacote do gcc para gerar todas as aplicações que usam a linguagem C (também chamado dogfooding). Esta é uma operação fundamental para Mageia, fazê-la corretamente vai garantir que tudo está funcionando bem e, ao mesmo tempo, listar eventuais problemas e corrigi-los. O gcc da Mageia é então gerado.

Quando o conjunto de ferramentas está pronto, então podemos recompilar o kernel da Mageia, drivers do X, o servidor X, etc e as aplicações do nível superior. Um sistema inicializado (bootstrapped) não oferece aos empacotadores muito mais do que algumas bibliotecas e um compilador. Será, então, preciso de pacotes adicionais do núcleo do sistema antes de ser capaz de deixar a equipe de empacotadores realmente começar a trabalhar a sério. Muitos pacotes não requerem algumas dependências de compilação, que por sua vez, exigem algumas outras dependências.

Finalmente milhares de pacotes são necessários para construir os principais componentes que serão necessários para aplicações de alto nível.

É claro que esta é a história simples, sem todas as coisas divertidas que podem acontecer durante processo de recompilação. Mas esse é o retrato grande.

Por que bootstrap é tão importante?

Como dito anteriormente, essa é a etapa onde os empacotadores e especialistas do sistema básico podem levar algum tempo para verificar a consistência das partes de baixo nível da distribuição, limpar os requisitos e torná-los aptos com a política da distribuição. Então bootstrap não é dedicado apenas às pessoas interessadas em forks 🙂.

Pelo caminho, melhoria e criação de documentação adequada sobre bootstrap também irá ajudar muito quando novas arquiteturas estão sendo adicionados e suportadas. Isso irá precisar de um bom conjunto de ferramentas, sistema básico … a mesma história.

ISOs!

Então, de volta à nossa primeira pergunta: quando podemos esperar a primeira ISO de teste? A etapa de inicialização começou há um mês e devem ser concluídas até amanhã. Demorou cerca de 1.500 horas para compilar os pacotes disponíveis, levando em conta as compilações bem sucedidas, mas também falhas, recompilação, as decisões técnicas a serem tomadas, problemas inesperados, as discussões…

Agora, aqui estamos nós :). O Repositório está pronto para os primeiros testes de compilação, a nossa máquina de compilação de ISOs está configurado corretamente e a Alpha1 é esperada em 15 de fevereiro; fique atento, mais novidades sobre o roteiro futuro está chegando!

(texto escrito em inglês por ennael e traduzido por ajunior)

Esta entrada foi publicada em Sem categoria. ligação permanente.

Os comentários estão fechados