¿Bootstrap? ¿Cuál bootstrap? ¡Quiero mi ISO de Mageia!

Habíamos anunciado que nuestra primera imagen ISO alfa estaría disponible para finales de enero…y aún no hay nada. Rayos! que está pasando? Déjenme explicarles.

Erase una vez un bootstrap…

Como se manifestó en entradas previas, nuestro sistema de construcción de paquetes ha estado en activo desde las ultimas semanas y mas de 4.000 paquetes han sido construidos. Este conjunto de paquetes es lo que llamamos un bootstrap.

En Wikipedia, ustedes podrán ver que un bootstrap es un pequeño cargador de arranque que carga un sistema mas grande. En el caso de Mageia: el bootstrap es el paso donde el sistema base y las dependencias mayores se están construyendo para que las aplicaciones puedan construirse también usando las herramientas y paquetes propios de Mageia. Todas las distribuciones de Linux usan sus propios paquetes para construir los paquetes disponibles en sus repositorios.

Huevo blanco cuadrado

Entonces viene la pieza mas difícil de la historia, algo como el dilema del huevo o la gallina. Algunos paquetes de bajo nivel, generalmente llamados «toolchains», se necesitan así mismos para compilarse: gcc, glibc, entre otros. Estos paquetes ya existen en muchas distribuciones. Entonces el proceso de creación del bootstrap simplemente empieza desde una de esas distribuciones.

En el lado de Mageia, se decidió que se usarían los paquetes de Mandriva ya que el primer release está basado en cooker. Para poder usarlos, primero debemos limpiarlos con tareas como:

  • Remover bits específicos de Mandriva y otros elementos (macros de RPM, elementos con derechos de autor tales como imágenes, iconos, y cosas obsoletos, entre otros)
  • Remover condiciones innecesarias en las definiciones de requerimientos de construcción.
  • Enviar parches a los autores (upstream) así no tenemos que mantenerlos lo que, a la vez, puede ser mejor para todos si los autores los aceptan.
  • Deshabilitar temporalmente algunas dependencias de alto nivel como Java o Mono, pues aún no están listas ni disponibles para Mageia.

Cuando todo esté listo, cada paquete está listo para ser reconstruido en el sistema de construcción de Mageia. Una vez que el paquete está construido como un paquete de Mageia, el empaquetador verificará y agregará, si es necesario, dependencias de construcción tan pronto como estén disponibles.

Vamos a tomar un ejemplo

gcc es un compilador de C, una pieza fundamental del sistema base, pues es necesaria por muchas aplicaciones para que sean compiladas desde su código fuente.

Mageia necesita su propio paquete gcc para generar todas las aplicaciones usando el lenguaje C (también llamado dogfooding). Esto es una operación crucial para Mageia pues al hacerlo correctamente aseguramos que todo funcione bien, y al mismo tiempo listar problemas potenciales y corregirlos. Entonces el gcc de Mageia es generado.

Bootstrap build system

Una vez que el «toolchain» es construido podemos reconstruir el kernel de Mageia, controladores para X, servidor X, y aplicaciones de nivel superior. Un sistema «bootstrapped» no ofrece tantos paquetes más que algunas librerías y el compilador. En ese momento serán requeridos paquetes adicionales del núcleo del sistema antes de poder permitir al equipo de empaquetadores empezar realmente su labor. Muchos paquetes requieren dependencias de construcción, y estas a su vez requieren otras dependencias de construcción.

Finalmente se necesitan miles de paquetes para construir componentes mayores que serán necesarios para aplicaciones de alto nivel.

Cascada de dependencias

Por supuesto esta es solo una simple historia, sin todas las cosas divertidas que pueden suceder durante el proceso de reconstrucción. Pero eso es la idea general.

¿Porque es tan importante bootstrap?

Como se describió previamente, bootstrap es un paso donde los empaquetadores y los especialistas del sistema base usan para verificar consistencia de las partes de bajo nivel de la distribución, limpiar requerimientos y hacer que quede acorde a las políticas de la distribución. Así que el bootstrap no solamente está dedicado a gente interesada en productos derivados (forks) 🙂

Por cierto, mejorando y escribiendo la documentación adecuada en el bootstrap será de mucha ayuda cuando se soporten nuevas arquitecturas. Esto necesitará un toolchain adecuado, sistema base… la misma historia.

¡ISOs!

Volviendo a nuestra primera pregunta, ¿cuando esperaremos ver la primera imagen ISO de prueba? El proceso de creación del bootstrap inició hace un mes y deberá finalizar para mañana. Tomó alrededor de 1.500 horas construir los paquetes disponibles tomando en consideración construcciones satisfactorias pero también fallas, reconstrucciones, y decisiones técnicas que debieron tomarse en cuenta, problemas inesperados y discusiones…

Así que estamos aquí 🙂 El repositorio está listo para las primeras pruebas de construcción, nuestra máquina para para construir ISOs está propiamente configurada y la versión Alpha1 está planeada para el 15 de febrero; estén pendientes, ¡pronto habrá más noticias sobre la hoja de ruta!

(Traducción de este artículo publicado por ennael.)

Esta entrada fue publicada en Sin categoría y etiquetada , , , , , , . Guarda el enlace permanente.

Los comentarios están cerrados.