[ anterior ] [ Contenidos ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ A ] [ siguiente ]
Supongamos que se ha creado un informe de fallo en tu paquete con el número #54321, y que describe un problema que puedes solucionar. Para crear una nueva revisión del paquete, necesitas:
Corregir, por supuesto, el problema en las fuentes del paquete.
Añadir una nueva revisión en el fichero de cambios (changelog, N. del T.) de Debian, con «dch -i», o explícitamente con «dch -v <versión>-<revisión>» y entonces insertar los comentarios con tu editor favorito.
Sugerencia: ¿Como obtener la fecha fácilmente en el formato requerido? Usa «822-date», o «date -R».
Incluir una breve descripción del error y su solución en la entrada del fichero de cambios, seguido por: «Closes: #54321». De esta forma, el informe del error será automágicamente cerrado por los programas de gestión del archivo en el momento en que tu paquete se acepte en el archivo de Debian.
Repite lo que hiciste en Reconstrucción completa, Sección 6.1, Cómo comprobar tu paquete para encontrar fallos, Capítulo 7, y Enviar el paquete, Capítulo 8. La diferencia es que esta vez, las fuentes originales del archivo no se incluirán, dado que no han cambiado y ya existen en el archivo de Debian.
Ahora consideremos una situación diferente y algo más complicada: ha salido una versión nueva de las fuentes originales, y, por supuesto, deseas empaquetarla. Debes hacer lo siguiente:
Descarga las nuevas fuentes y pon el archivo tar (pongamos que se llama
gentoo-0.9.13.tar.gz
) un directorio por encima del antiguo árbol
de fuentes (por ejemplo ~/gentoo/).
Entra en el antiguo directorio de las fuentes y ejecuta:
uupdate -u gentoo-0.9.13.tar.gz
Por supuesto, reemplaza este nombre de fichero con el nombre de las fuentes de
tu programa. uupdate(1)
renombrará apropiadamente este fichero
tar, intentará aplicar los cambios de tu fichero .diff.gz
previo y
actualizará el nuevo fichero debian/changelog
.
Cambia al directorio «../gentoo-0.9.13
», el nuevo directorio
fuente del paquete, y repite la operación que hiciste en Reconstrucción completa, Sección
6.1, Cómo comprobar tu paquete para encontrar
fallos, Capítulo 7, y Enviar el paquete,
Capítulo 8.
Observa que si has puesto el fichero «debian/watch
» como se
describe en watch.ex, Sección 5.10,
puedes ejecutar uscan(1)
para buscar automáticamente fuentes
revisadas, descargarlas, y ejecutar uupdate
Cuando prepares paquetes para el archivo de Debian, debes comprobar los paquetes resultantes en detalle. A continuación, tienes un ejemplo más realista de este procedimiento.
Verificar los cambios en las fuentes.
De las fuentes, lee los ficheros changelog
, NEWS
, y
cualquier otra documentación que se haya publicado con la nueva versión.
Ejecuta «diff -urN» entre las fuentes viejas y las nuevas para obtener una visión del alcance de los cambios, donde se ha trabajado más activamente (y por tanto donde podrían aparecer nuevas erratas), y también busca cualquier cosa que pudiera parecer sospechosa.
Porta el paquete Debian viejo a la nueva versión.
Descomprime el código fuente original y renombra la raíz del árbol de las
fuentes como <nombrepaquete>-<versión_original>/
y haz
«cd» en este directorio.
Copia el código fuente en el directorio padre y renombrarlo como
<nombrepaquete>_<versión_original>.orig.tar.gz
.
Aplica el mismo tipo de modificación a el nuevo código que al viejo. Algunos posibles métodos son:
orden «zcat /path/to/<nombrepaquete>_<versión-vieja>.diff.gz | patch -p1»,
orden «uupdate
»,
orden «svn merge» si gestionas el código con un repositorio Subversion o,
simplemente copia el directorio debian/
del árbol de código viejo
si se empaquetó con dpatch
o quilt
.
Conserva las entradas viejas del fichero «changelog» (puede parecer obvio, pero se han dado casos...)
La nueva versión del paquete es la versión original añadiéndole el número de revisión de Debian -1, por ejemplo, `0.9.13-1'.
Añade una entrada en el fichero «changelog» para esta nueva versión al comienzo
debian/changelog
que ponga «New upstream release» (nueva versión
original, N. del T.). Por ejemplo, «dch -v 0.9.13-1».
Describe de forma resumida los cambios en la nueva versión del código fuente que arreglan fallos de los que ya se ha informado y cierra esos fallos en el fichero «changelog».
Describe de forma resumida los cambios hechos a la nueva versión del código por el mantenedor para arreglar fallos de los que se ha informado y cierra esos fallos en el fichero «changelog».
Si el parche/fusión no se aplicó limpiamente, inspecciona la situación para
determinar qué ha fallado (la clave está en los ficheros .rej
). A
menudo el problema es que un parche que has aplicado a las fuentes se ha
integrado en el código fuente original, y, por lo tanto, el parche ya no es
necesario.
Las actualizacioens de versión deberían ser silenciosas y no intrusivas (los usuarios sólo deberían advertir la actualización al descubrir que se han arreglado viejos fallos y porque se han introducido algunas nuevas características). [4]
Si necesitas añadir plantillas eliminadas por alguna razón, puedes ejecutar
dh_make
otra vez en el mismo directorio ya «debianizado», con la
opción -o. Una vez hecho esto edítalo como sea necesario.
Deberías reconsiderar todos los cambios introducidos para Debian: elimina aquello que el autor original haya incorporado (de una forma u otra) y recuerda mantener aquellos que no hayan sido incorporados, a menos que haya una razón convincente para no incluirlos.
Si se ha realizado algún cambio en el sistema de construcción (esperemos que lo
supieras desde el primer paso), actualiza los ficheros
debian/rules
y las dependencias de construcción en
debian/control
si es necesario.
Construye el nuevo paquete como se describe en La orden debuild
, Sección
6.3 o El paquete
pbuilder
, Sección 7.6. Es conveniente el uso de
pbuilder
.
Comprueba que los paquetes nuevos se han construido correctamente.
Ejecuta Cómo comprobar tu paquete para encontrar fallos, Capítulo 7.
Comprueba de nuevo si se ha arreglado alguno de los fallos que actualmente
están abiertos en el sistema de
seguimiento de fallos de Debian (BTS)
.
Comprueba el contenido del fichero «.changes» para asegurarte de que lo estás enviando a la distribución correcta, que se cierran los fallos adecuadamente en el campo «Closes:», que los campos «Maintainer:» y «Changed-By:» coinciden, que el fichero se ha firmado con GPG, etc.
Si realizaste algún cambio en el empaquetado durante el proceso, vuelve al segundo paso hasta que todo esté correcto.
Si tu envío necesita que se patrocine, asegúrate de comentar cualquier opción especial que se requiera en la construcción del paquete (como «dpkg-buildpackage -sa -v ...») y de informar a tu patrocinador, así podrá construirlo correctamente.
Si lo envías tú, ejecuta Enviar el paquete, Capítulo 8.
orig.tar.gz
Si intentas construir los paquetes sólo desde el nuevo código fuente con el
directorio debian/
, sin que exista el fichero
orig.tar.gz
en el directorio padre, acabarás creando un paquete de
fuentes nativo sin querer. Estos paquetes se distribuyen sin el fichero
diff.gz
. Este tipo de empaquetamiento sólo debe hacerse para
aquellos paquetes que son específicos de Debian, es decir, aquellos que no
serían útiles en otra distribución. [5]
Para obtener un paquete no nativo de fuentes que consista tanto en un archivo
orig.tar.gz
como en un archivo diff.gz
, debes copiar
manualmente el archivo tar del código fuente original al directorio padre con
el nombre cambiado a
<nombrepaquete>_<versión>.orig.tar.gz
. Igual que como
lo hizo la orden dh_make
en «Debianización» inicial, Sección 2.4.
cvs-buildpackage
y similaresDeberías considerar el utilizar algún sistema de administración de código para gestióna el proceso de empaquetado. Hay varios guiones adaptados para que puedan utilizarse en algunos de los sistemas de control de versiones más populares.
CVS
cvs-buildpackage
Subversion
svn-buildpackage
Estas órdenes también automatizan el empaquetado de nuevas versiones del código fuente.
Cuando construyas una nueva versión del paquete, deberías hacer lo siguiente para verificar que el paquete puede actualizarse de forma segura:
actualiza el paquete a partir de la versión previa,
vuelve a la versión anterior y elimínala,
instala el paquete nuevo,
elimínalo y reinstálalo de nuevo,
púrgalo.
Si el paquete hace uso de unos guiones pre/post/inst/rm complicados, asegúrate de probar éstos con las distintas rutas posibles en la actualización del paquete.
Ten en cuenta que si tu paquete ha estado previamente en Debian, lo más frecuente es que gente actualice el paquete desde la versión que estaba en la última versión de Debian. Recuerda que debes probar también las actualizaciones desde esa versión.
[ anterior ] [ Contenidos ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ A ] [ siguiente ]
Guía del nuevo desarrollador de Debian
version 1.2.11, 12 de enero de 2007.joy-mg@debian.org
jfs@debian.org
ender@debian.org
ana@debian.org