La entrega al repositorio CVS

Pues vamos con el último paso: la entrega al repositorio. Esta fase es, sin duda, la más compleja, ya que es necesario conocer el funcionamiento de numerosas herramientas: cvs, make, db2html, etc. Si queremos ser totalmente rigurosos sería incluso necesario disponer de un entorno para compilar paquetes de desarrollo Gnome. Todo esto no es, desde luego, una tarea trivial, por lo que si os véis superados nuevamente, dejad este tipo de tareas para los coordinadores. Tampoco quisiera desanimaros, a la postre es todo cuestión de remangarse. En las próximas secciones intentaré acercaros mis experiencias con las entregas.

Copiar el paquete del CVS

Para realizar la entrega de la documentación necesitamos en primer lugar obtener una copia del paquete al que pertenezca. Esta copia la obtenemos del repositorio CVS de Gnome utilizando los siguientes comandos:

bash-2.04$     cd /gnome/cvs
bash-2.04$     export CVSROOT=:pserver:anonymous@anoncvs.gnome.org:/cvs/gnome
bash-2.04$     cvs login
(Logging in to anonymous@anoncvs.gnome.org)
CVS password:  <retorno>
bash-2.04$     cvs -z3 co gnome-applets
Como podrás observar, para esta primera operación, nos basta con una conexión anónima (no es necesaria una cuenta personal) que ni siquiera necesita clave de acceso.

Nota

Este comando utiliza la rama principal del paquete, conocida como «HEAD». En algunas ocasiones esta rama puede no ser la apropiada, y no deberían entregarse paquetes copiados de una rama en otra diferente (al menos sin estar seguro de lo que se hace).

Ficheros involucrados

Veamos ahora una lista de los ficheros que tendremos que manipular cuando realicemos una entrega:

./gnome-applets/ChangeLog
./gnome-applets/configure.in

./gnome-applets/whereami/ChangeLog
./gnome-applets/whereami/docs/Makefile.am

./gnome-applets/whereami/docs/es/Makefile.am

./gnome-applets/whereami/docs/es/figures
./gnome-applets/whereami/docs/es/figures/whereami_applet.png
./gnome-applets/whereami/docs/es/whereami.sgml
./gnome-applets/whereami/docs/es/whereami_applet.sgml
./gnome-applets/whereami/docs/es/license.sgml
./gnome-applets/whereami/docs/es/licencia-es.sgml
./gnome-applets/whereami/docs/es/licencia-nota-es.sgml
./gnome-applets/whereami/docs/es/authors.sgml
./gnome-applets/whereami/docs/es/topic.dat
./gnome-applets/whereami/docs/es/whereami_applet-es.omf
Como puede verse, tenemos los ya conocidos ficheros de la traducción y algunos ficheros adicionales. En los siguientes apartados iremos viendo cómo generar o modificar cada uno de ellos.

Ficheros de la traducción

Lo primero que debemos hacer es copiar los ficheros de la traducción es la estructura de directorios del paquete. Suponiendo que nuestro directorio de trabajo es /home/mbarreiro/traducciones/whereami, las comandos serían los siguientes

bash-2.04$     cd /gnome/cvs/gnome-applets 
bash-2.04$     cd whereami/docs
bash-2.04$     mkdir es
bash-2.04$     cd es
bash-2.04$     cp -rf /home/mbarreiro/traducciones/whereami/* .

Nota

Es importante asegurarnos de que no copiamos otros ficheros o directorios, como por ejemplo el directorio whereami que se genera al crear la documentación en formato html, o las copias de seguridad creadas al editar los ficheros (whereami.sgml~).

Con esto tendremos todos los ficheros en su lugar de destino, a falta del fichero Makefile.am. Veamos cómo conseguir y actualizar este fichero:

bash-2.04$     cd /gnome/cvs/gnome-applets/whereami/docs/es 
bash-2.04$     cp ../C/Makefile.am .
Como podéis ver, simplemente copiamos del directorio C, y después realizamos las siguientes modificaciones:

gnome-applets/whereami/docs/es/Makefile.am

figs = \
        figures/whereami_applet.png
docname = whereami_applet
lang = es
omffile = whereami_applet-C.omf
sgml_ents = whereami.sgml \
        license.sgml \
        licencia-es.sgml \
        licencia-nota-es.sgml \
        authors.sgml
include $(top_srcdir)/sgmldocs.make
dist-hook: app-dist-hook

Ficheros de la aplicación

Si la traducción es nueva, habrá que incluir el código de idioma para que se genere e instale la nueva documentación. Para ello modificaremos el fichero docs/Makefile.am:

gnome-applets/whereami/docs/Makefile.am

SUBDIRS = C es it
Para terminar debemos anotar los cambios que hemos realizado en el fichero ChangeLog, para que el resto de desarrolladores conozca los cambios que hemos realizado:

gnome-applets/whereami/ChangeLog

2001-07-28  Manuel de Vega barreiro  <mbarreiro@red.madritel.es>

          New Spanish Translation
        * docs/es/*
        * docs/Makefile.am

Ficheros del paquete

A nivel de paquete debemos modificar el fichero configure.in, incorporando las siguientes modificaciones:

gnome-applets/configure.in

...
AC_SUBST(CANVAS_PIXBUF_LIBS)
ALL_LINGUAS="az ca cs da de el en_GB es et eu fi fr ga gl hu it ja ko lt nl nn no pl pt pt_BR ro ru sk sl sv tr uk wa zh_CN.GB2312 zh_TW.Big5"
AM_GNOME_GETTEXT
...
AC_OUTPUT([
gnome-applets.spec
Makefile
macros/Makefile
...
whereami/docs/it/Makefile
whereami/docs/es/Makefile
gtik/Makefile
...

Nota

Observa que el código de cada idioma se añade respetando el orden alfabético, ya que en caso contrario todo el mundo se volvería loco al introducir un nuevo idioma.

Como de costumbre, debemos reflejar todos los cambios en el ChangeLog, esta vez a nivel de paquete, para que el resto de desarrolladores conozca los cambios que hemos realizado:

gnome-applets/ChangeLog

2001-07-28  Manuel de Vega barreiro  <mbarreiro@red.madritel.es>

        Whereami help Spanish translation
        * configure.in
        * whereami/docs/Makefile.am
        * whereami/docs/es/*

Nota

Los ficheros ChangeLog y configure.in sufren frecuentes cambios, por lo que conviene modificarlos justo antes de realizar la entrega.

Prueba de compilación

Ésta es, por así decirlo, la prueba del nueve. Se trata de compilar el paquete con las modificaciones que hemos incorporado. El problema es que compilar paquetes sacados directamente del repositorio CVS no es una tarea fácil. Esto se debe más a las dependencias cruzadas con otros paquetes y librerías, que al propio paquete.

Importante

Jugar a compilar e instalar paquetes en desarrollo es la forma mas fácil de conseguir un escritorio inutilizable. No lo hagas en un sistema en producción, ni en un ordenador del que dependa tu trabajo diario.

Dicho todo esto, veamos los comandos para compilar el paquete:

bash-2.04$     cd /gnome/cvs/gnome-applets
bash-2.04$     ./autogen.sh
bash-2.04$     make
Como ves, nada del otro mundo; son los comandos habituales para instalar paquetes GNU.

Entrega de ficheros al CVS

Para realizar la entrega debemos presentarnos en nuestra cuenta personal y ejecutar los siguientes comandos:

Nota

Puedes solicitar una cuenta personal en el repositorio CVS de la siguiente manera:

enviar un mensaje a:
cvsmaster@gnome.org
o
Kjartan Maraas <kmaraas@gnu.org>

con el siguiente contenido:

breve explicación del tipo de contribución a Gnome (en Ingles imagino).
grupo en el que colaboras
Nombre completo
ecorreo accesible
identificador de acceso
clave encriptado  (1)

(1) la clave encriptado se obtien con el siguiente comando:
perl -e 'print crypt ("clave", "semilla");'
la semilla deberia ser una cadena aleatoria de al menos 2 caracteres.

Lo que desconozco es la politica de reparto. Antes era muy abierta, y solo te
cortaban las alas si hacias alguna tratada.

bash-2.04$     cd /gnome/cvs
bash-2.04$     export CVSROOT=:pserver:barreiro@cvs.gnome.org:/cvs/gnome
bash-2.04$     cvs login
(Logging in to barreiro@cvs.gnome.org)
CVS password:  <clave de acceso>
bash-2.04$     
Llegados a este punto pueden darse dos casos: una traducción nueva, o una actualización.

Traducción nueva

En este caso los comandos necesarios para la entrega serían:

bash-2.04$     cd /gnome/cvs/gnome-applets/whereami/docs
bash-2.04$     cvs add es
bash-2.04$     cvs add es/*
bash-2.04$     cvs add es/figures/*
bash-2.04$     cd ..
bash-2.04$     cvs commit

bash-2.04$     cd /gnome/cvs/gnome-applets
bash-2.04$     cvs commit configure.in ChangeLog
bash-2.04$     cvs logout
Cada vez que ejecutamos el comando cvs commit se presenta una lista con los ficheros que se van a entregar y se abre el editor por defecto para que indiquemos brevemente el motivo de la actualización.

Os recomiendo repasar la lista, ya que a veces podemos enviar ficheros que no forman parte de esta entrega por error. Éste es el motivo por el que acostumbro a realizar la entrega en dos partes.

Actualización

En este caso los comandos necesarios para la entrega serían:

bash-2.04$     cd /gnome/cvs/gnome-applets/whereami
bash-2.04$     cvs commit

bash-2.04$     cd /gnome/cvs/gnome-applets
bash-2.04$     cvs commit ChangeLog
bash-2.04$     cvs logout
A diferencia del caso anterior, no hay ficheros que añadir y, además, no es necesario modificar algunos ficheros (makefile.am,configure.in). El resto del proceso es idéntico.