[ anterior ] [ Contenidos ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ siguiente ]
Después del lanzamiento del paquete, es posible que debas actualizarlo pronto.
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:
Si debes aplicar una modificación nueva, ejecuta:
quilt new nombre_modificación.patch para establecer el nombre de la modificación;
quilt add archivo_a_modificar para establecer el fichero al cual se aplicará la modificación.
Corregir el problema en el archivo original.
quilt refresh para guardar los cambios realizados en el archivo
del parche nombre_modificación.patch
.
quilt header -e para añadir la descripción (breve) del cambio
realizado en la cabecera del archivo
nombre_modificación.patch
.
Si debes actualizar una modificación ya existente, ejecuta:
quilt pop nombre_modificación.patch para deshacer el parche que debes actualizar (puesto que se habrá ejecutado y se supone que es necesario modificarlo).
Corregir el problema existente en la versión incorrecta del archivo de parche
nombre_modificación.patch
.
quilt refresh para actualizar
nombre_modificación.patch
.
quilt header -e para actualizar la descripción en la cabecera del archivo del parche.
while quilt push; do quilt refresh; done para aplicar todos los parches.
Añadir la información de la revisión en el inicio del archivo
changelog
(del directorio Debian
), por ejemplo
ejecutando dch -i o explícitamente indicando el número de
versión y revisión ejecutando dch -v
versión-revisión, y a continuación detallar los
cambios realizados utilizando un editor [57].
Incluye la descripción (breve) del error y la solución, seguida de la referencia de la notificación del error con (Closes: #54321). De esta manera, el informe de error se «cerrará» automáticamente por el sistema de mantenimiento del repositorio Debian cuando el paquete sea aceptado en el repositorio.
Deberás repetir los pasos anteriores para cada una de las modificaciones realizadas en la actualización del paquete.
Ahora debes reconstruir el paquete con las modificaciones según se ha descrito en Reconstrucción completa, Sección 6.1, Cómo comprobar tu paquete para encontrar fallos, Capítulo 7, and Enviar el paquete, Capítulo 8. La diferencia con el procedimiento anterior es que el archivo de las fuentes originales no se incluirá (puesto que no se ha sido modificadas por el autor) en el envío al repositorio.
Para la actualización de un paquete cuando el autor original libera una nueva versión de las fuentes, debes empezar por revisar la nueva versión original.
Empieza por leer los archivos changelog
, NEWS
y
cualquier otra documentación donde el autor original describa los cambios de
la nueva versión.
Puedes comprobar los cambios entre las fuentes originales de la nueva versión y de la anterior para detectar cualquier cambio sospechoso de producir errores ejecutando:
$ diff -urN nombre_archivo-versión_anterior nombre_archivo-nueva_versión
Las modificaciones realizadas en los archivos generados por «Autotools»
(missing
, aclocal.m4
, config.guess
,
config.h.in
, config.sub
, configure
,
depcomp
, install-sh
, ltmain.sh
y
Makefile.in
) puedes ignorarlas. Puedes eliminarlos antes de
ejecutar diff
en las fuentes para inspeccionarlas.
Si el paquete que examinas está correctamente empaquetado utilizando los
nuevos formatos 3.0 (native) o 3.0 (quilt) para
empaquetar una nueva versión del autor debería ser suficiente copiar el
directorio debian
de la versión anterior a la nueva, para a
continuación, realizar las adaptaciones necesarias. Puedes copiar el
directorio debian
de la versión anterior a la nueva versión
ejecutando tar xvzf
/ruta/a/nombre_paquete_versión_anterior.debian.tar.gz
desde el directorio de las fuentes de la nueva versión [58]. A continuación deberás
realizar algunos tareas obvias.
Comprimir las fuentes originales en el archivo
nombre_paquete_nueva_versión.tar.gz
.
Actualizar el archivo changelog
del directorio debian
ejecutando dch -v nueva_versión-1.
Añade una nueva linea con el texto «New upstream release» para indicar que se trata de una nueva versión de las fuentes originales.
Describe sucintamente los cambios realizados en las fuentes originales por
el autor que solucionan errores informados y cierra los informes
(añadiendo (Closes: #número_del_error)
.
Describe sucintamente los cambios de la nueva versión del desarrollador que solucionan errores previamente reportados y cierra dichos errores.
Ejecuta while quilt push; do quilt refresh; done para aplicar los parches.
Si las modificaciones no se ejecutan correctamente, inspecciona la situación
(mira la información de los archivos .rej
) como se muestra a
continuación.
Si uno de los parches aplicados está integrado en las fuentes originales,
ejecuta quilt delete para eliminarlo.
Si uno de los parches entra en conflicto con los cambios realizados por el autor en las fuentes originales,
ejecuta quilt push -f para aplicar los parches de la versión
anterior para forzar los rechazos (tendrás la información de los rechazos en
los archivos rechazo.rej
).
Edita los archivos rechazo.rej
manualmente para saber
el efecto que se pretende con rechazo.rej
.
Ejecuta quilt refresh para actualizar el parche.
Continua hasta la ejecución de while quilt push; do quilt refresh; done.
Puedes automatizar este proceso utilizando la orden uupdate(1)
como sigue:
$ apt-get source foo ... dpkg-source: info: extracting foo in foo-antigua_versión dpkg-source: info: unpacking foo_antigua_versión.orig.tar.gz dpkg-source: info: applying foo_antigua_versión-1.debian.tar.gz $ ls -F foo-antigua_versión/ foo_antigua_versión-1.debian.tar.gz foo_antigua_versión-1.dsc foo_antigua_versión.orig.tar.gz $ wget http://ejemplo.org/foo/foo-nueva_versión.tar.gz $ cd foo-antigua_versión $ uupdate -v nueva_versión ../foo-nueva_versión.tar.gz $ cd ../foo-nueva_versión $ while quilt push; do quilt refresh; done $ dch ... documenta las modificaciones realizadas
Si has configurado el archivo «debian/watch
» como se ha descrito
en Archivo watch.ex
, Sección
5.20, puedes saltarte la orden wget
. Simplemente, ejecuta
uscan(1)
en el directorio
foo-antigua_versión
en lugar de la orden
uupdate
. Así, se buscará automáticamente el archivo de las
fuentes, se descargará en tu ordenador y se ejecutará la orden
uupdate
[59].
Puedes liberar la nueva versión del paquete repitiendo lo expuesto 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.
Para actualizar un paquete no es necesario actualizar el formato del paquete.
Aún así, puedes aprovechar toda las funcionalidades de debhelper
y del formato 3.0 haciendo lo siguiente [60]:
Si necesitas de nuevo algunos de los archivos de plantilla eliminados, puedes
regenerarlos ejecutando otra vez dh_make
con la opción
--addmissing en el directorio de las fuentes. A continuación
modifícalos correctamente.
Si el paquete no está actualizado para utilizar la nueva sintaxis de
debhelper
V7 en el archivo debian/rules
, actualízalo
para usar dh
. También deberás actualizar
debian/control
.
Si vas ha actualizar el archivo rules
construido por el mecanismo
de inclusión Makefile
del sistema de compilación Debian
(cdbs
) a la nueva sintaxis dh
, lee
/usr/share/doc/cdbs/cdbs-doc.html
y aprende las variables de
configuración DEB_* [61].
Si estás trabajando con un paquete construido con el formato 1.0
sin el archivo nombre_paquete.diff.gz
, puedes
actualizarlo a la nueva versión 3.0 (native) añadiendo el
archivo debian/source/format
con la linea 3.0
(native). Copia los otros archivos del directorio
debian/*
.
Si estás trabajando con un paquete construido con el formato 1.0
con el archivo nombre_paquete.diff.gz
, puedes
actualizarlo a la nueva versión 3.0 (native) añadiendo el
archivo debian/source/format
con la linea 3.0
(native). Copia los otros archivos del directorio
debian/*
. Importa el archivo nombre_paquete.diff
generado por la orden filterdiff -z -x '*/debian/*'
nombre_paquete.diff.gz > nombre_paquete.diff al sistema
quilt
[62].
Si el paquete se ha construido con sistema de parches distinto a
quilt
como dpatch
, dbs
o
cdbs
utilizando las opciones -p0, -p1 o
-p2, puedes convertirlo al formato quilt
utilizando
el guión deb3
explicado en http://bugs.debian.org/581186
y
disponible en http://bugs.debian.org/cgi-bin/bugreport.cgi?msg=5;filename=deb3;att=1;bug=581186
.
Si el paquete se ha construido con ejecutando la orden dh
con la
opción --with quilt o bien con dh_quilt_patch
y
dh_quilt_unpatch
, elimina todo esto y utiliza el formato 3.0
(native).
Repasa la sección Nueva versión del programa fuente, Sección 9.3 por si debes repetir algunos de los pasos indicados en ella.
A continuación se listan algunas cosas a tener en cuenta al actualizar paquetes.
Conserva las entradas anteriores del archivo changelog
(suena a
obviedad, pero se han dado casos de ejecutar dch en lugar de
dch -i).
Los cambios en la construcción del paquete Debian deben ser reconsiderados; elimina las modificaciones anteriores (sea lo que sea) y recuerda de añadir todo lo necesario, a no ser que haya una buena razón para no hacerlo.
Si se ha realizado alguna modificación en la compilación (te enterarás al
inspeccionar los cambios en las fuentes originales) puede que sea necesario
actualizar el archivo debian/rules
y las dependencias de
compilación en el archivo debian/control
.
Debes comprobar si hay alguna comunicación de parches del paquete en el
sistema de gestión de errores (puede darse el caso que algún usuario envíe
un parche ya construido y que te sea de utilidad) en BTS
.
Comprueba el contenido del archivo .changes
para asegurarte que
envías el paquete a la distribución correcta, que los informes de errores que
se cierran con la nueva versión del paquete están listados en el campo
Closes del archivo, que el contenido de los campos
Maintainer y Changed-By son correctos, que has
firmado el archivo con tu clave GPG, etc.
[ anterior ] [ Contenidos ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ siguiente ]
Guía del nuevo desarrollador de Debian
versión 1.2.25, 2010-12-21 14:06:56 UTCjoy-mg@debian.org
jfs@debian.org
ender@debian.org
ana@debian.org
fcocuadrado@gmail.com
tangram.peces@gmail.com