Recursos utilizados por el proyecto

Un proyecto de las caracter�sticas descritas y debido a su gran envergadura, como demuestran las cifras antes expresadas referentes a n�mero de desarrolladores, usuarios y software, para hacer realidad sus objetivos ha de contar con una serie importante de recursos.

Debido al car�cter de voluntariado del proyecto Debian, los recursos de los que dispone son fruto de las donaciones de organismos o de personas (en cuanto a los recursos f�sicos o econ�micos) y del trabajo realizado por los propios desarrolladores del proyecto (en cuanto a bienes intangibles, es decir, desarrollos espec�ficos para el proyecto).

Mecanismos de distribuci�n de software

Debido a que una de las funciones primordiales del proyecto es la distribuci�n del trabajo realizado, es decir, el sistema operativo Debian GNU/Linux, uno de los recursos m�s desarrollados es el de la distribuci�n de software.

La distribuci�n del sistema operativo se realiza en unidades b�sicas denominadas "paquetes". Un paquete es un conjunto de ficheros que podr�n ser programas, documentaci�n, archivos de datos o de configuraci�n, etc. Debian utiliza un sistema propio de paquetes.

El sistema de paquetes desarrollado en Debian ha tenido como objetivo principal en mente la facilidad de uso de un n�mero elevado de software por parte del usuario. Los paquetes expresan, internamente, la necesidad (conocido como dependencia) de que otro paquete de software est� instalado previamente para poder ejecutarse de forma correcta. El propio proyecto ha desarrollado las herramientas para gesti�n de paquetes dpkg y apt as� como las interfaces (textuales y en entornos gr�ficos) para manejar todos los paquetes del sistema operativo.

El proyecto pone a disposici�n de los usuarios todos los paquetes en un repositorio com�n a trav�s de servicios de FTP y HTTP, que permiten, desde cualquier punto del mundo, descargar los programas necesarios (o actualizaciones) para el sistema operativo. Estos servicios de FTP y HTTP se encuentran replicados por todo el mundo gracias a las donaciones de equipo realizadas por otras entidades. Adem�s, utilizando tecnolog�as "push" se asegura que las r�plicas est�n siempre sincronizadas con el archivo principal.

Los programas de gesti�n de paquetes, en particular apt pueden ser configurados para realizar la descarga de programas utilizando estos repositorios. Esto, a�adido con la "inteligencia" con la que el programa gestiona los paquetes permite que un usuario pueda instalar una pieza de software sin preocuparse de las piezas de las que depende, ya que es el software el encargado de resolver estas dependencias y "ir a buscar" las piezas necesarias sin intervenci�n del usuario. Esta misma filosof�a ha sido recientemente adoptada por otros proyectos, como la distribuci�n Conectiva (que ha portado el programa apt para que funcione con el sistema de paquetes rpm originario de RedHat, m�s informaci�n en el correspondiente bolet�n semanal de noticias ) y la compa��a Ximian que ha desarrollado, para GNOME, un interfaz de gesti�n de software conocido como Red Carpet.

Finalmente, para facilitar la distribuci�n de las versiones estables del sistema operativo, Debian genera autom�ticamente las im�genes ISO-9660 que pueden ser utilizadas, con una grabadora de CD-ROM, para tener los CD-ROMs de la distribuci�n si no se quieren adquirir a una distribuidora especializada. Estas im�genes se distribuyen a trav�s del servidor principal cdimage.debian.org a todos los servidores r�plicas distribuidos por el mundo y a las compa��as interesadas en distribuir CDs de Debian como producto. Para la distribuci�n de estas im�genes se utiliza rsync un programa de copia remota que permite, cuando el fichero ya existe en el sistema final, enviar s�lo las zonas modificadas del fichero y no todo el fichero en s�. Esto, evidentemente, es algo a tener en cuenta cuando hay que considerar que las im�genes de la distribuci�n en su versi�n 2.2 ocupaban seis CDs (que pueden verse modificadas ligeramente hasta que salga la versi�n definitiva).

Sistemas de gesti�n de software

Para poder gestionar el software ofrecido a trav�s de la distribuci�n Debian GNU/Linux, el proyecto contempla una serie de mecanismos para asegurar la recepci�n, control, integridad, y gesti�n de errores de dicho software.

Sin este tipo de controles el proyecto Debian no ser�a m�s que una amalgama de programas sin ning�n tipo de coherencia entre s� y que dif�cilmente podr�a llegar a la cantidad de software a la que ha llegado.

Dentro de estos sistemas propios de gesti�n del software desarrollados por el proyecto destacan el sistema de gesti�n de erratas, el sistema de gesti�n de calidad de paquetes, la cola de entrada de paquetes, el sistema de comprobaci�n de necesidades, y los auto-constructores de paquetes.

El sistema de seguimiento de erratas

El sistema de seguimiento de erratas (en ingl�s, Bug Tracking System) es una base de datos sobre la que los usuarios pueden informar de problemas de funcionamiento de los programas instalados. Este sistema es un sistema de gesti�n de tickets, es decir, cuando un usuario env�a un informe de error indicando correctamente el paquete afectado, la versi�n de �ste y la gravedad del problema, se le entrega un n�mero que corresponde el "ticket" del informe de error. Inmediatamente, se avisa al desarrollador encargado de dicho paquete de que se ha recibido una errata para su paquete, incluyendo el texto del problema.

La gesti�n de todo el sistema de seguimiento de erratas se realiza mediante correo electr�nico, de forma que el desarrollador puede, por ejemplo, solicitar m�s informaci�n al usuario final para determinar con mayor precisi�n la causa del problema a trav�s del correo electr�nico y mandar una copia al sistema de seguimiento de errores. Todo este intercambio de informaci�n se archiva dentro del mismo informe de error de manera que se tiene un hist�rico de la evoluci�n completa de una errata, desde que se descubre hasta que se da por arreglada.

Evidentemente, debido a que Debian se nutre de los desarrollos de otros proyectos de software libre, los errores se pueden clasificar en dos: del paquete en s�, y del software que contiene. Los primeros son arreglados por el desarrollador pero los segundos pueden ser arreglados por el desarrollador original (que distribuir�, generalmente una nueva versi�n de software) o por el propio desarrollador de Debian (algo tambi�n habitual). En cualquier caso, el sistema de seguimiento de erratas permite "enviar" erratas hacia el desarrollador original y marcarlas como tal.

Dado que una de las premisas de Debian es la de no ocultar informaci�n de sus usuarios, toda la informaci�n del sistema de seguimiento de erratas es p�blica y puede ser accedida desde cualquier punto del planeta en el servidor http://bugs.debian.org. Igualmente, los usuarios disponen de herramientas simples para enviar informes de error sin que tengan que conocer el formato de los correos enviados al sistema, pudiendo utilizar los programas bug y reportbug.

El sistema de gesti�n de calidad

Debido a que la generaci�n de paquetes es una tarea, en principio, manual es susceptible a la introducci�n de fallos que puedan hacer que el paquete, de entrada, no pueda ser utilizado por los usuarios. En cualquier caso, la pol�tica de Debian indica las acciones que puede realizar un paquete y el modo de llevar a cabo algunas acciones que deben ser seguidas por todo desarrollador. Esta pol�tica es en s� misma muy importante porque es la que garantiza el correcto funcionamiento de los paquetes entre s� y con la base del sistema operativo.

El uso de herramientas de generaci�n de paquetes como dh_make permite acelerar el proceso de generaci�n de los mismos y reduce algunos de los errores habituales pero puede, al mismo tiempo, introducir algunos nuevos (por ejemplo, porque no se eliminen plantillas innecesarias del paquete despu�s de generarlo).

La verificaci�n de si los paquetes siguen la pol�tica de Debian en cuanto a localizaci�n de ficheros, compilaci�n de binarios, gesti�n de ficheros de configuraci�n, etc. puede ser tediosa, m�xime teniendo en cuenta que la pol�tica no es inmutable sino que var�a con el tiempo en base a las decisiones tomadas por el conjunto de los desarrolladores. Para automatizar esta tarea y detectar errores habituales en los paquetes, se utiliza, como un mecanismo de gesti�n de calidad el programa lintian.

El objetivo de lintian es recoger un paquete y estudiar la forma en que est� definido, ubicaci�n de ficheros en el sistema final, contenidos de los mismos, par�metros de compilaci�n de librer�as din�micas y de ficheros ejecutables, etc.

Al igual que con el sistema de gesti�n de errores, Debian hace p�blicos los resultados de esta gesti�n de calidad interna a trav�s del servidor lintian.debian.org.

El sistema de gesti�n de necesidades

La orientaci�n fundamental de Debian es hacia sus propios usuarios, para ello, es necesario saber qu� software los usuarios demandan y qu� necesidades puede tener el proyecto de software disponible con licencia libre que se no se haya incluido a�n. De igual forma, es necesario coordinar de alguna manera el trabajo de los desarrolladores, que, debido a su dispersi�n geogr�fica, pueden estar trabajando en empaquetar el mismo software.

�ste es el prop�sito del sistema de gesti�n de necesidades. Este sistema es conocido como WNPP, Work-Needing and Prospective Packages, es decir "Paquetes necesarios para trabajar y en perspectiva", y permite gestionar aquellos paquetes de software que necesitan de un desarrollador, bien porque no han sido incluidos a�n en la distribuci�n o bien porque alg�n usuario lo demanda, al mismo tiempo que almacena la informaci�n de los paquetes en los que los desarrolladores puedan estar trabajando.

El sistema de gesti�n de necesidades, accesible desde http://bugs.debian.org/wnpp est� actualmente integrado con la base de datos de erratas a trav�s de un paquete "virtual" denominado WNPP. Y sigue un procedimiento concreto para la apertura, reclasificaci�n o cierre de las erratas dependientes de �ste.

La cola de entrada de paquetes

Debido al continuo flujo de paquetes, tanto nuevos como actualizaciones de los mismos (por arreglo de erratas o nuevas versiones originales disponibles) Debian posee tambi�n un sistema semi-automatizado de entrada de paquetes en la distribuci�n. Este sistema de entrada puede automatizarse gracias a la aplicaci�n de algunas t�cnicas, entre otras:

  • comprobaciones rutinarias para verificar que se han incluido todos los elementos necesarios para redistribuir el paquete: c�digo fuente (si es un programa nuevo o una nueva versi�n), fichero de diferencias y paquete Debian.

  • el uso de firmas digitales por parte de los desarrolladores que se utiliza para asegurar que la persona que env�a la actualizaci�n del paquete es un desarrollador en activo del proyecto

  • el uso de hashes MD5, para asegurar que la informaci�n contenida en los paquetes no ha sido modificada en su tr�nsito hacia la cola de entrada (esta informaci�n es la que se transmite firmada, ya que no se firma el software en s�).

  • el uso del control autom�tico de calidad (sobre el que ya se ha hablado previamente en la la secci�n de nombre El sistema de gesti�n de calidad), que permite detectar r�pidamente paquetes que no siguen la pol�tica de generaci�n de software de Debian.

De esta forma se minimiza la posibilidad de que entre en la distribuci�n software que pueda perjudicar a sus usuarios (autenticando su origen y su contenido) y que no cumpla con los est�ndares de calidad exigidos.

Este sistema es semi-autom�tico ya que el tratamiento de los paquetes entrantes y nuevos a la distribuci�n se hace con gran cuidado para observar las medidas de seguridad oportunas y proteger al proyecto. Esto incluye, por ejemplo, la verificaci�n de que el software sigue las Gu�as de Software Libre de Debian, para lo que se ha de consultar el fichero de copyright realizado por el desarrollador. Por ello, una vez realizado los an�lisis previos a los que se someten todos los paquetes entrantes, estos paquetes se env�an a las personas que gestiona el archivo de Debian para su aceptaci�n o rechazo definitivos.

El sistema de entrada de paquetes est�, adem�s, integrado con el sistema de seguimiento de erratas y de necesidades de forma que se pueden cerrar estos los informes en el momento exacto en el que un paquete nuevo, o una nueva versi�n, se incluye en la distribuci�n. Igualmente, notifica autom�ticamente de la entrada de nuevos paquetes a la lista de distribuci�n debian-devel-changes.

Los constructores autom�ticos de paquetes

Un elemento importante en el proceso de la portabilidad del sistema operativo Debian GNU/Linux a m�ltiples arquitecturas es la construcci�n autom�tica de paquetes para las nuevas arquitecturas. Debido al hecho de que muy pocos desarrolladores de paquetes tienen acceso a m�quinas de todas las arquitecturas (ocho en el momento de escribir estas l�neas incluyendo i386, sparc, hppa, arm, alpha y m68k) soportadas por Debian, este proceso es necesario hacerlo de forma semi-autom�tica cuando es posible.

Esta es la funci�n de los constructores autom�ticos de paquetes. Una vez que los responsables de portar la parte b�sica del sistema operativo, as� como el compilador de C, a la arquitectura en cuesti�n, se puede delegar el trabajo a estos sistemas para que se encarguen de automatizar la construcci�n de los paquetes. Igualmente, cuando aparezca una nueva versi�n de un paquete, �stos ser�n los encargados de recompilarlo para las arquitecturas de forma que todas tengan binarios de las �ltimas versiones disponibles. Este sistema de auto-construcci�n ha sido desarrollado por el proyecto Debian, estando disponible a trav�s de http://buildd.debian.org/.

Todo el software de Debian, independientemente del lenguaje en el que est� desarrollado, debe funcionar en todas las arquitecturas soportadas. As�, cuando un software no compila en una arquitectura estando cubiertas todas las funcionalidades de las que depende ser considera una errata. Los constructores autom�ticos avisan a los encargados del proceso de portabilidad cuando tienen problemas para compilar un nuevo paquete. �stos, a su vez, generar�n un informe de errata sobre el paquete en cuesti�n ya que, en algunos casos, la raz�n de la no portabilidad es el incumplimiento de alguna de las pol�ticas de Debian (en otros podr�n ser problemas t�cnicos de m�s dif�cil soluci�n).

Sistema de voto electr�nico

Debido a las necesidades impuestas por la Constituci�n del proyecto Debian, es necesario que, determinadas decisiones (como puede ser la elecci�n de un l�der del proyecto o cambios de la propia Constituci�n) se tomen en base a un sistema de votaci�n. El sistema de votaci�n fue desarrollado conjuntamente con la constituci�n y puesto a prueba en las elecciones de l�der de proyecto en 1999.

Los condicionantes del sistema de funcionamiento de Debian, con multitud de desarrolladores dispersos por todo el mundo, y todos ellos con derecho a voto, condicion� el dise�o de un sistema de votaci�n basado en correo electr�nico con mecanismo de clave p�blicas.

Dado que se ven�an utilizando mecanismos de clave p�blica para firmar los paquetes de software (como se ha comentado previamente) , el resultado natural fue utilizar las mismas claves p�blicas para firmar las "papeletas" distribuidas, mediante correo electr�nico a todos los integrantes del proyecto. As� pues, cuando se solicita una votaci�n, todos los integrantes devuelven las papeletas (que tienen un formato definido) marcadas con la opci�n elegida y firmadas con su clave p�blica.

La firma permite asegurar que el votante es el desarrollador con derecho a voto. Una vez verificado esto, el sistema autom�tico de conteo de votos es capaz de obtener la propuesta m�s votada en funci�n de los votos emitidos.

Asimismo, para poder seguir el estado de las propuestas y las votaciones en curso, existe un sistema de seguimiento de votaciones p�blico, responsabilidad del secretario del proyecto. All� quedan registradas las propuestas que est�n teniendo lugar y su estado actual: propuesta y pendiente de sponsors, en discusi�n, bajo votaci�n y cerrada.

Informaci�n al p�blico

Evidentemente, para ser un proyecto verdaderamente abierto Debian debe hacer p�blica la informaci�n relacionada con el desarrollo de �ste. Para ello, dispone de dos canales fundamentales de difusi�n de informaci�n las listas de correo y el servidor de WWW.

Las listas de correo suponen un medio m�s "reactivo" en el que pueden tener lugar discusiones de inter�s para el proyecto sobre multitud de temas. Esto hace que se cree una lista de correo para cada tema de envergadura de forma que se pueda evitar la confusi�n y sobrecarga de temas en una sola lista de correo. De igual manera, estas listas sirven como medio de comunicaci�n entre los integrantes del proyecto y entre los usuarios, y constituyen un verdadero y eficaz m�todo de soporte. Existen listas dedicadas en distintos idiomas de forma que los usuarios no est�n obligados a tener que utilizar un idioma no nativo para �sta comunicaci�n.

El servidor de WWW es, habitualmente, el "cara al p�blico" del proyecto, ofreciendo gran parte de la informaci�n necesaria a usuarios y desarrolladores para empezar a hacer uso del sistema operativo. En �l se ofrece informaci�n sobre todo el proyecto, se explican sus objetivos, sus recursos, los materiales ofrecidos, las noticias relacionadas con �ste, etc. En total supone alrededor de mil p�ginas impresas de informaci�n para dar a conocer el proyecto y su funcionamiento.

Es importante destacar que existen tambi�n iniciativas individuales para facilitar informaci�n del proyecto que surgen del inter�s de los propios usuarios, aunque no est�n integradas de forma efectiva dentro del proyecto Debian. Es importante destacar, de entre estas iniciativas, el servidor de discusi�n y noticias DebianPlanet y Kernel Cousin Debian que ofrece res�menes de las discusiones mantenidas en las distintas listas de coreo de Debian.

Servicios de control de versiones

Existen tambi�n recursos dedicados a gestionar el c�digo realizado dentro del mismo proyecto (es conveniente recordar que el sistema operativo se nutre, principalmente, de c�digo realizado por otros proyectos de software libre). Debido a las caracter�sticas de distribuci�n geogr�fica de los desarrolladores, contribuciones discontinuadas y comunicaci�n y coordinaci�n a trav�s de correo electr�nico, el sistema de control de versiones escogido para el proyecto, como para muchos otros proyectos de software libre (que generalmente poseen las mismas caracter�sticas), es CVS (Concurrent Versioning System.

Este sistema de control de versiones permite la dispersi�n geogr�fica de los contribuyentes al proyecto ya que es posible que cada uno guarde una copia del repositorio donde se encuentras los elementos bajo control del sistema de control de versiones y env�e sus cambios a determinadas partes, a trav�s de Internet. Adem�s, es posible establecer el acceso remoto a dicho sistema mediante autenticaci�n, con lo que se evita la modificaci�n indebida por personal ajeno al proyecto. En cualquier caso, debido al esp�ritu abierto del proyecto, todos los desarrollos gestionados por CVS son accesibles p�blicamente, de forma an�nima, con acceso de s�lo lectura. Para ello se puede utilizar o bien un cliente espec�fico de CVS o acceder a una interfaz web con la que es posible "navegar" los proyectos.

Los desarrolladores Debian gestionan a trav�s de este servidor de CVS, principalmente, aquellos desarrollos internos de mayor envergadura:

Los desarrollos espec�ficos de cada paquete no se gestionan a trav�s de un servidor de CVS com�n, sino que cada desarrollador utiliza, si lo desea, su propio sistema de gesti�n de software. En este caso, no se lleva a cabo la gesti�n que, por ejemplo, realizan otros proyectos de sistema operativos libre como OpenBSD