Preparación del ambiente

Naturalmente, antes de que comience cualquier trabajo de migración, necesitas disponer de todas las herramientas y bibliotecas necesarias con las que compilar. En esta sección se explicará cómo recopilar el software y cómo configurar tu sistema para compilar y ejecutar aplicaciones con el entorno GNOME 2.

Requerimientos para compilar los módulos

Aquí tenemos una lista de las herramientas que necesitarás para conseguir compilar las bibliotecas de plataforma GNOME 2 y para compilar tus aplicaciones contra estas bibliotecas.

Tabla A.2. Paquetes requeridos para compilar la plataforma GNOME 2

PaqueteMínima Versión Requerida
autoconf2.52
automake1.4-p4
libtool1.4
pkgconfig0.8.0
gettext0.10.40

Algunas notas generales sobre estos paquetes:

  • Los paquetes autoconf, automake y libtool sólo son necesarios si estás compilando las bibliotecas desde el CVS.

  • La versión requerida de automake no es la última versión disponible (o sea, la versión 1.5 1.5). Si estás usando la versión 1.5 de automake, te serán de utilidad los siguientes consejos (enviados originalmente a la lista gnome-2-0 por James Henstridge):

    • Si la compilación falla cuando se intenta construir algunos ficheros que contengan código ensamblador, necesitarás añadir la línea

      AM_PROG_AS

      a tu fichero configure.in. Esto será necesario actualmente cuando compiles GTK+ con la versión 1.5, por ejemplo.

    • Algunos paquetes fallarán cuando ejecutes make distcheck. Existen fundamentalmente dos razones para este comportamiento: primero, el directorio fuente para la compilación de test ha pasado a modo sólo-lectura durante la compilación. Puedes evitar este problema si no pones ningún fichero generado durante la compilación en el directorio fuente (esto es un problema para la documentación) ó poniendo explícitamente:

                                 chmod u+w $(sourcedir)
                           

      en las reglas de tu Makefile.

      La otra razón por la que un distcheck puede fallar es si un make uninstall realmente no consigue desinstalar todos los ficheros instalados por un make install. De forma similar, si make distclean deja ficheros generados en el directorio de compilación, automake 1.5 fallará.

  • Es posible usar una versión de gettext anterior a la 0.10.40. Las versiones 0.10.38 y superiores son correctas. Sin embargo, la 0.10.38 acarreará problemas ocasionales cuando funcione en combinación con autoconf 2.52, lo que se ha arreglado ya en la versión 0.10.39 y 0.10.40.

La aplicación pkg-config es un intento de evitar la necesidad de que cada paquete y biblioteca tengan su propio script de configuraciñon para pasar las opciones necesarias de compilador y enlazador de C al script configure. Ahora cada paquete simplemente instala un fichero package.pc que contiene información sobre el destino de instalación del paquete, de qué otros paquetes depende, y qué opciones de compilador y enlazador necesita. El tema de migrar tu aplicación para que use pkg-config se cubre en la sección titulada “Cambios al entorno de compilación”.

Descargando los paquetes

Existen pocas alternativas para descargar todas las bibliotecas necesarias — desde el CVS, de tarballs pre-empaquetados o en un formato de empaquetamiento adecuado a tu distribución.

Los tarballs pueden descargarse de ftp://ftp.gnome.org/pub/gnome/pre-gnome2/latest/sources/. Sin embargo, debido al pobre rendimiento general de ftp.gnome.org, se recomienda que elijas un mirror de http://www.gnome.org/mirrors/ftpmirrors.php3 y desde ahí elijas el directorio equivalente.

Las rutas de instalación de estos paquetes han sido convenientemente configuradas para hacer posible la instalación de las bibliotecas GNOME 2 al mismo tiempo que dispones de los paquetes GNOME 1. Por ejemplo, si los ficheros de cabeceras de GNOME 1 para libgnome se instalan (típicamente) en /usr/include/libgnome, las versiones GNOME 2 se instalarán en /usr/include/libgnome-2.0/libgnome.

Si utilizas consistentemente pkg-config para averiguar las rutas de los includes necesarios y de las opciones de biblioteca, todos estos detalles serán tenidos en cuenta por el sistema. Es suficiente con saber que las dos plataformas pueden ser instaladas simultáneamente.

Nota

Algunos de los paquetes separados listados en la sección “Las bibliotecas de la plataforma” pueden ser mezclados en un sólo tarball, por lo que no te preocupes si parece que no hay exactamente el número correcto de tarballs.

Los paquetes específicos de cada distribución pueden venir de distintas fuentes.

  • Algunos paquetes Debian para Sid están disponibles en los mirrors habituales. Por el momento, puedes ejecutar apt-cache search gtk+ 1.3 para descargar e instalar gtk+, glib, atk y pango. A medida que se disponga de más paquetes, podrás descargarlos de un forma similar (y esta nota será actualizada para reflejar el status más reciente).

  • Los paquetes para Red Hat 7.2, llamados en su conjunto gnomehide, han sido compilados por Havoc Pennington y están disponibles en ftp://people.redhat.com/hp/gnomehide/. También existe una lista de distribución para estos paquetes (sólo para problemas de compilación e instalación) en http://mail.gnome.org/mailman/listinfo/gnome-redhat-list.

  • Jacob Berkman de Ximian está realizando compilaciones diarias de todos los paquetes y dejándolas disponibles a través de la aplicación de gestión de paquetes Red Carpet de Ximian, dentro del canal de desarrolladores (developers). Antes de utilizar estos paquetes, es recomendable que leas este documento http://primates.ximian.com/~jacob/gnome-2-snapshots/.

  • Había un rumor flotando por ahí que decía que Sun estaba realizando compilaciones nocturnas y que iba a dejar disponibles para su plataforma. Se añadirán más detalles sobre esto cuando se confirme o se deniegue este rumor.

Para instalar y compilarlo todo desde el CVS, necesitarás hacer un checkout de todos los módulos mencionados en “Las bibliotecas de la plataforma” y compilarlos en el orden especificado ahí.

Una de las formas más sencillas para conseguir todos los módulos adecuados desde el CVS y compilarlos es bajándose el módulo llamado vicious-build-scripts del repositorio GNOME CVS. Lee el fichero README de este módulo detenidamente y sigue las instrucciones de instalación. Después podrás (opcionalmente) actualizar automáticamente tu árbol de directorios y compilar la mayoría de los módulos necesarios en el orden correcto.

Por el momento, vicious-build-scripts no incluye gail, libgnomeprint, ó libgnomeprintui. Sin embargo, tras compilar todos los módulos anteriores, compilar estos últimos a mano si realmente son necesarios es un proceso bastante directo.

Otros paquetes necesarios para ejecutar GNOME 2

La plataforma GNOME 2 dependerá también de unos pocos paquetes extra que no están mantenidos por los desarrolladores de GNOME, por lo que se espera que los usuarios los traten de forma independiente y que tu aplicación compruebe su presencia si es necesario.

La mayoría de estos paquetes extra formarán parte de cualquier distribución estándar de Linux o Unix. Sin embargo, algunos no son tan comunes, por lo que aquí presentamos la lista de los que necesitarás instalar de forma especial.

Tabla A.3. Paquetes extra requeridos para ejecutar GNOME 2

PaqueteVersión MínimaDescargar desde ...
scrollkeeper0.2http://scrollkeeper.sourceforge.net/
Hojas de estilo DocBook de Norm Walsh [a] (desconocido)http://sourceforge.net/projects/docbook/

[a] Se usan como plantillas para algunas hojas de estilo personalizadas de GNOME a la hora de convertir documentos de ayuda.

Nota

Los enlaces de descarga superiores son sólo punteros a la página inicial de cada proyecto. También podrás conseguir paquetes para tu distribución particular desde las fuentes habituales.

Miscelánea de consejos de configuración

(Con agradecimientos a Alan Cox.)

Pango

Para configurar Pango para probarlo, crea un fichero en tu directorio home y dale el nombre .pangorc y escribe estas líneas como su contenido:

            [PangoFT2]
             FontPath = /usr/share/fonts/default/Type1:/usr/share/fonts/default/TrueType
            

Además, copia el fichero examples/pangoft2.aliases del directorio fuente de pango al fichero .pangoft2_aliases en tu directorio home.

Compilando Red Hat 7.1

Compilar toda la plataforma desde cero requiere al menos la versión 2.0 de Python. Esto es debido a un script de conversión requerido por libglade lee la sección sobre Interfaces de usuario con Glade y libglade para más información).

Si dispones de una instalación estándar de Red Hat 7.1, necesitarás conseguir el rpm python2 desde los paquetes Rawhide, dado que la versión que viene con las Power Tools de la 7.1 no incluye el soporte XML necesario. Un lugar desde donde descargar el rpm necesario es desde www.rpmfind.net.

Requerimientos de espacio en disco

GNOME no consume cero recursos de espacio en disco. De hecho, requiere bastante espacio, aunque en estos días de discos de multi-gigabytes, no es algo serio. Sin embargo, si el espacio en disco necesario es algo que te preocupe, aquí hay algo de información al respecto. Son números aproximativos — existen algunas variaciones debido a las opciones de empaquetamiento, por ejemplo — y están basados únicamente en mis observaciones en un par de máquinas.

  • Las fuentes para las bibliotecas de plataforma requieren unos 170MB antes de ser compiladas (este es el tamañano del código fuente -- es algo menos en el CVS porque algunos de los ficheros son generados como parte del script autogen.sh y no son limpiados tras el make distclean).

  • La plataforma base una vez instalada (sin las fuentes y sin limpiar (stripping) ninguna biblioteca) ronda los 200MB.

  • Si estás compilando las bibliotecas usando vicious-build-scripts y la opción LEAN=yes (que ejecuta make clean distclean tras la instalación de cada módulo), necesitarás aproximadamente unos 140MB de espacio en disco además de los ya requerido por las fuentes. El módulo especialmente voluminoso es gtk — si tienes suficiente espacio para compilarlo, no tendrás problemas para compilar el resto de las fuentes.

  • Compilar todas las bibliotecas de plataforma requiere aproximadamente unos 800MB, incluyendo el código fuente y excluyendo el espacio requerido para instalar las bibliotecas en su destino final.