Como se desarrolla en GNOME

Juantomás García^{∗}

Octubre de 2000

Esta ponencia forma parte del III Congreso Hispalinux^{1} virtual, celebrado en Noviembre de 2000. Puedes participar en él en la sección de eventos de BarraPunto^{2}

Resumen

Con esta ponencia se pretende presentar el modelo de desarrollo escogido por GNOME. Que herramientas se utilizan, como esta organizado el proyecto, que tecnología se esta utilizando, como participar en el desarrollo.

El objetivo de la ponencia es divulgar el modelo de desarrollo de GNOME. Siendo un módelo "tradicional" en el mundo del Software Libre, permitirá tener una visión de como se gestiona un proyecto complejo y como se hace uso de las herramientas GNU/Linux.

1 Introducción

La ponencia se va a estructurar en varios capítulos.

En la primera parte 2 se describirán las herramientas básicas utilizadas en el proyecto. Se destacará la importancía que ha tenido y tiene la FSF creando y manteniendo estas herramientas.

La segunda parte de la ponencia 3 tratará de como esta organizado el CVS de GNOME. Como funciona la gestión del sistema de versiones CVS y como se utiliza esto en el proyecto GNOME.

Las arquitectura y dependencias de los modulos de GNOME se describirán en el siguiente capítulo 4. Y como punto final 5 de la ponencia se hará una breve referencia a los enlances relacionados con el proyecto

GNOME y las herramientas utilizadas.

2 Herramientas GNU utilizadas.

Gracias a la FSF se dispone de practicamente todas las herramientas necesarias para poder desarrollar cualquier proyecto. Desde los proyectos más simples a los más complejos. Sin esta labor y esfuerzo no sería tan sencillo desarrollar aplicaciones. Esta herramientas hacen que GNU/Linux sea una plataforma de desarrollo robusta.

Las herramientas GNU no solo funcionan para la plataforma GNU/Linux, si no que además estan portadas a otros Un*x y casi todos los sistemas operativos existentes.

De todas las herramientas utilizadas por el proyecto GNOME podemos hacer una lista de las más importantes y que son vitales para el proyecto.

Herramientas de Base.

• gcc compilador de lenguaje C.

• gmake versión extendida del make tradicional.

• m4 procesador de macros.

Herramientas de portabilidad y automátización de las compilaciones.

∗\begin{matrix}c \\ ◯ \end{matrix}Juantomás García. Se otorga permiso para copiar, distribuir y/o modificar este documento bajo los términos de la Licencia de Documentación Libre GNU, Versión 1.1 o cualquier otra versión posterior publicada por la Free Software Foundation. Se considerará como Secciones Invariantes todo el documento, no habiendo Textos de Portada ni Textos de Contra Portada. Puede consultar una copia de la licencia en: http://www.gnu.org/copyleft/fdl.html

1http://congreso.hispalinux.es 2http://barrapunto.com/eventos

• autoconf. Permite la generación automática de los programa configure que generan automáticamente los Makefile.

• automake. Genera las dependencias de los Makefile automáticamente.

• gettext. Nos facilita la independencia de los textos y permite gestión sencilla de la internacionalización de los programas.

• libtool. Con esta herramienta hacemos independiente la creación de las librerias compartidas.

Herramientas de Mantenimiento.

• CVS. Permite la gestión de versiones de proyectos. Esto permite a los grupos de desarrolladores trabajar descentralizadamente. Además de controlar los cambios producidos.

3 El CVS de GNOME.

GNOME mantiene el proyecto en una red de servidores de CVS. Realmente existe una red de servidores encadenados para poder soportar y repartir la carga.

La verdadera utilidad de utilizar el sistema de versiones CVS es que permite la gestión de proyectos complicados y con un número elevado de desarrolladores descentralizadamente.

4 Arquitectura y Dependencias de GNOME.

En esta sección de la ponencia se describirá como esta organizada la arquitectura de GNOME. Que dependencia tiene con el sistema y como se ha diseñado para facilitar la portabilidad del proyecto.

Primero se describirán las librerias base:

- glib. Que nos permite independencia de datos y una colección de funciones generales muy útiles. - gdm. Librería que se encarga de las funciones gráficas de bajo nivel. - gtk. Es la libreria de objetos gráficos (botones, listas, etc) que utiliza el programa GIMP.

Tambien veremos la descripción de dependencias entre los módulos más importantes. La arquitectura de GNOME esta compuesta por más de 80 módulos algunos de ellos como Bonobo son estratégicos para la evolución del sistema y la programación orientada a componentes.

5 Documentación y Referencias del proyecto GNOME.

Proyecto GNOME y GNU:

http://www.gnome.org http://www.gnu.org Documentacion: http://www.gnome.org/gdp/ http://www.gtk.org/rdp/ (GLIB, GDK, GTK) http://lucas.hispalinux.es (en

castellano)

Ensayos y Documentos técnicos: http://www.gnome.org/white-papers/ Helix Code, Inc http://www.helixcode.com