Nota: La página original es más nueva que esta traducción.
La red autocompiladora es un desarrollo de Debian que ayuda a incrementar la velocidad de las recompilaciones de paquetes para todas las arquitecturas en las que se puede utilizar actualmente por Debian. Esta red está constituida por varias máquinas que usan un paquete de software específico denominado buildd para coger los paquetes del repositorio de Debian y reconstruirlos para la arquitectura que se requiera.
La distribución Debian soporta en realidad unas pocas arquitecturas, pero los responsables de los paquetes generalmente solo compilan versiones binarias para una sola arquitectura (en general i386). Los desarrolladores para otras arquitecturas tienen que vigilar cuando hay nuevas versiones y recompilarlos si quieren permanecer actualizados con la distribución de Intel.
En el momento que empezó Debian/m68k (la primera adaptación distinta de la arquitectura Intel), todo esto se hizo manualmente: los desarrolladores miraban los nuevos paquetes en la lista de correo de envíos y cogían algunos de ellos para construirlos. La coordinación para que ningún paquete se construya dos veces por personas distintas se hacía anunciándolo en una lista de correo. Es obvio que este procedimiento es propenso al error y consume mucho tiempo. Esta fue, sin embargo, la forma usual de mantener las distribuciones no i386 actualizadas durante mucho tiempo.
El demonio de construcción del sistema automatiza la mayor parte de este proceso. Consiste en un conjunto de guiones (escritos en Perl y Python) que se han mejorado con el tiempo para ayudar a los que hacen adaptaciones con varias tareas. Finalmente han evolucionado en un sistema que puede mantener las distribuciones no i386 de Debian actualizadas casi automáticamente.
Buildd es el nombre que se da normalmente al software que utiliza la red autocompiladora, pero en realidad se compone de diferentes partes:
Todas estas partes operan juntas para hacer que la red constructora funciona.
Realmente, un desarrollador medio de Debian no necesita usar explícitamente la red buildd. Cuando envíe un paquete al repositorio (binario compilado para una determinada arquitectura) se añadirá a la base de datos para todas las arquitecturas (en estado Needs-Build). Las máquinas de construcción pedirán a la base de datos de construcciones paquetes en este estado, y de forma rutinaria tomarán los paquetes de esa lista. Esta está priorizada por el estado de compilación previo, prioridad, sección y finalmente nombre del paquete.
Si la construcción del paquete es satisfactoria para todas las arquitecturas, el responsable no tendrá que hacer nada. Todos esos paquetes binarios se enviarán a la arquitectura del sitio principal. Si la construcción no es satisfactoria el paquete entrará en un estado especial (Failed o Dep-Wait, si depende de las dependencias de una construcción específica que no están disponibles). Los administradores de la autocompilación revisarán los paquetes cuya construcción falla e informarán al responsable, normalmente, abriendo un error en el sistema de seguimiento de fallos.
A veces un paquete se toma un largo período de tiempo para construirlo para una arquitectura dada y eso bloquea al paquete la entrada en «testing». Desafortunadamente, el paquete necesitará esperar hasta que una máquina lo escoja. Los administradores de buildd no aceptarán peticiones para acelerar la construcción de un paquete ya que la lista de prioridad ya está establecida.
Puede comprobar el estado de los diferentes intentos de buildd con los paquetes que pertenecen a un responsable dado revisando los registros de buildd. Estos registros también están enlazados desde la Panorámica de Responsables de Paquetes.
Para más información sobre los diferentes estados en que puede estar un paquete, por favor lea los estados de wanna-build.
Por supuesto, la documentación y el código fuente disponible para las distintas herramientas son la mejor manera de averiguar como funciona la red buildd. Adicionalmente la sección Adaptar y ser adaptado de la Referencia de desarrolladores de Debian proporciona información complementaria sobre como funciona y también algo de información sobre constructores de paquetes y herramientas de adaptación que están involucrados en el proceso de configuración y mantenimiento de la red buildd.
Hay algunas estadísticas disponibles de la red autocompiladora en la página de estadísticas de buildd.
Hay varias razones por las que un desarrollador (o usuario) puede querer configurar y ejecutar un autocompilador:
Puede leer más información sobre cómo puede configurar un autocompilador.
Esta introducción a la red autocompiladora se escribió con aportaciones y partes proporcionadas de Roman Hodek, Christian T. Steigies, Wouter Verhelst, Andreas Barth, Francesco Paolo Lovergine y Javier Fernández-Sanguino.