En la anterior entrada del blog, relacionada con esta serie dedicada a explicar paso a paso el procedimiento de participación en el proyecto Debian como mantenedor de un paquete, había explicado cómo se adopta un paquete y en particular, lo había hecho adoptando el paquete dnsproxy a través del bug #876201. A continuación, veremos las modificaciones necesarias que hay que realizar correspondientes ya al desarrollo propio de la versión 1.17 de dnsproxy. La ventaja que tiene el paquete dnsproxy para comenzar y usarlo como ejemplo, es que es un programa muy sencillo, escrito en C y bastante «estándar», por lo que lo consideramos muy adecuado para este ejemplo inicial.
Esta entrada del blog era la que tenía inicialmente intención de escribir, para explicar el procedimiento habitual de desarrollo de un paquete Debian que realiza un mantenedor, pero al escribirlo me fui dando cuenta que era mejor explicar antes de forma detallada algunos pasos previos, y eso ha dado lugar a las siguientes entradas relacionadas, que recomiendo leer previamente:
- Preparar una máquina para el desarrollo de paquetes Debian
- Usando git en el empaquetado de Debian
- Adoptar un paquete en Debian
Referencias
A partir de este momento es esencial el consultar directamente y de forma continua la documentación oficial de debian, en particular:
Aunque no recomiendo su lectura de principio a fin sin más, sino que resulta mucho más útil hacerlo a la vez que se trata de empaquetar y en consultas posteriores, buscando algún aspecto concreto que sea necesario definir o corregir durante el desarrollo de nuestro paquete.
La otra referencia que no puede faltar es Debian Policy Manual que no solo tenemos que consultar al iniciarnos en estas tareas, sino de manera frecuente, ya que es un documento que evoluciona de forma continua y siempre debemos tratar de tener nuestros paquetes conforme a la última versión de la política de Debian.
Configuración inicial
Un aspecto muy básico y sencillo a la vez es definir las variables de entorno DEBEMAIL y DEBFULLNAME con el correo de contacto y nuestro nombre en la máquina en la que vamos a empaquetar. Estas dos variables de entorno son usadas por algunas aplicaciones de Debian para definir el nombre y el correo electrónico del mantenedor de forma automática en alguno de los pasos del desarrollo del paquete.
Para hacerlo de forma permanente las añadimos al fichero ~/.bashrc:
cat << EOF >> ~/.bashrc #Set DEBEMAIL and DEBFULLNAME DEBEMAIL="alb.molina@gmail.com" DEBFULLNAME="Alberto Molina Coballes" export DEBEMAIL DEBFULLNAME EOF source ~/.bashrc
El directorio debian/
El punto de partida va a ser el repositorio pkg-dnsproxy tal como lo dejamos al final de Usando git en el empaquetado de Debian, es decir, con el repositorio actualizado a la versión 1.17 y listo para trabajar en la rama main.
Como mencionamos en algún momento anterior, el desarrollo del paquete debian se va a realizar modificando los ficheros del directorio debian/ en la rama main, por lo que accedemos al directorio ~/git/debian/dnsproxy/pkg-dnsproxy/debian y vemos el contenido actual para el paquete dnsproxy:
-rw-r--r-- 1 debian debian 3870 May 15 10:15 changelog -rw-r--r-- 1 debian debian 2 May 15 10:15 compat -rw-r--r-- 1 debian debian 1211 May 15 10:15 control -rw-r--r-- 1 debian debian 7063 May 15 10:15 copyright -rw-r--r-- 1 debian debian 325 May 15 10:15 default -rw-r--r-- 1 debian debian 738 May 15 10:15 dnsproxy.conf -rw-r--r-- 1 debian debian 2705 May 15 10:15 init.d drwxr-xr-x 2 debian debian 4096 May 15 10:15 patches -rw-r--r-- 1 debian debian 126 May 15 10:15 postinst -rw-r--r-- 1 debian debian 411 May 15 10:15 README.Debian -rw-r--r-- 1 debian debian 285 May 15 10:15 README.source -rwxr-xr-x 1 debian debian 2195 May 15 10:15 rules -rw-r--r-- 1 debian debian 70 May 15 10:15 watch
Poco a poco nos iremos familiarizando con el significado de cada uno de estos ficheros, la mayoría presentes en todos los entornos de desarrollo debian y otros particulares de este desarrollo de dnsproxy y usados por el anterior mantenedor. En principio no vamos a explicar uno a uno lo que son estos ficheros o directorios, sino que iremos viendo las modificaciones necesarias que hay que realizar para conseguir un paquete de dnsproxy correctamente actualizado y basado en la versión 1.17.
Nota: Utilizaremos la abreviatura d/ para referirnos al directorio debian/ como es costumbre.
Procedimiento de trabajo
El objetivo que tenemos en este momento es empaquetar correctamente la versión 1.17 de dnsproxy y eso implica inicialmente hacer modificaciones en los ficheros del directorio debian/ realizando actualizaciones de los mismos y posiblemente añadiendo o quitando algunos. Por otra parte tenemos que asegurarnos de que estas modificaciones se hagan conforme a la política de Debian y además que el paquete se tiene que poder construir correctamente y más aún, tiene que ser compatible en una instalación en una máquina real en diferentes situaciones, por lo que habrá que someterlo a una pila de pruebas. Este proceso por tanto supondrá que vayamos dando pasos adelante y también atrás, hasta que consigamos que lo obtenido cumpla con los estándares de debian y se pueda subir al archivo. Ahí no terminará todo, ya que a su vez los sistemas debian realizan otra pila de pruebas antes de aceptar el paquete en debian unstable (sid). De alguna manera, no precisamente lineal, los pasos a seguir se parecen a los siguientes:
- Modificamos uno o varios ficheros de debian/, teniendo en cuenta la documentación, lo que exige en muchas ocasiones seguir escrupulosamente un determinado formato.
- Cuando estas modificaciones estén terminadas, las añadimos al repositorio git en commits consistentes y con comentarios claros
- Construimos el paquete
- Si el paquete se construye bien, hacemos una pila de pruebas para verificar si las pasa
- Subimos los commits a salsa o deshacemos los cambios si no se construye bien el paquete o encontramos errores importantes
- Volvemos al primer punto hasta que veamos que el paquete está listo para publicarse
Una vez que encontremos que el paquete ya es publicable, seguimos los siguientes pasos:
- Realizamos un d/changelog de la siguiente versión para Debian sid
- Construimos el paquete y le pasamos de forma exhaustiva todas las pruebas que consideremos oportunas
- Firmamos el paquete con nuestra clave GPG
- Subimos el paquete a la rama sid del archivo (a mentors si no tenemos autorización)
- Al subir el paquete se le someterá a múltiples pruebas, se compilará para todas las arquitecturas que soporte y si pasa estas pruebas, se publicará en Debian sid
- Si la nueva versión pasa una serie de días publicado en sid sin que se detecte ningún error crítico, se pasará a debian testing (en estos momentos bullseye)
Ejemplo completo
d/source/format
La anterior versión de dnsproxy no tiene definida la versión del formato del paquete fuente, un aspecto que hoy es imprescindible y que debe definirse la versión 3.0 (quilt), por lo que hay que crear el directorio d/source e incluir dentro del mismo el fichero format con esta versión:
debian@debian:~/git/debian/dnsproxy/pkg-dnsproxy$ mkdir debian/source debian@debian:~/git/debian/dnsproxy/pkg-dnsproxy$ echo "3.0 (quilt)" > debian/source/format
Y realizamos el commit correspondiente a este cambio:
debian@debian:~/git/debian/dnsproxy/pkg-dnsproxy$ git add debian/source/format debian@debian:~/git/debian/dnsproxy/pkg-dnsproxy$ git commit -sm "d/source/format: Set format to 3.0 (quilt)" [master a007371] d/source/format: Set format to 3.0 (quilt) 1 file changed, 1 insertion(+) create mode 100644 debian/source/format
d/control
Puesto que estamos actuando como mantenedores del paquete dnsproxy, un cambio necesario para cerrar el bug #876201 es modificar el nombre y correo del mantenedor del paquete, cambio que hacemos en el fichero d/control. El contenido inicial de este fichero es:
Source: dnsproxy Section: net Priority: optional Maintainer: Patrick Schoenfeld <schoenfeld@debian.org> Homepage: http://wolfermann.org/dnsproxy.html Vcs-Svn: svn://svn.debian.org/svn/collab-maint/ext-maint/dnsproxy/trunk Vcs-Browser: http://svn.debian.org/wsvn/collab-maint/ext-maint/dnsproxy Build-Depends: debhelper (>= 7.1), autotools-dev, libevent-dev, groff-base, quilt Standards-Version: 3.8.4 Package: dnsproxy Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends}, adduser, lsb-base Description: proxy for DNS queries dnsproxy forwards DNS queries to two previously configured nameservers: one for authoritative queries and another for recursive queries. The received answers are sent back to the client unchanged. No local caching is done. . Primary motivation for this project was the need to replace Bind servers with djbdns in an ISP environment. These servers get recursive queries from customers and authoritative queries from outside at the same IP address. Now it is possible to run dnscache and tinydns on the same machine with queries dispatched by dnsproxy. . Another possible scenario is a firewall where proxy queries should be forwarded to the real server in a DMZ.
Podemos ver la información del paquete fuente dnsproxy, en los que se especifican determinados campos: prioridad, mantenedor, repositorio, etc. y del paquete binario dnsproxy, con las dependencias, arquitecturas para las que es válido, descripción, etc. Como podemos ver el fichero d/control contiene información muy importante del paquete y vamos a modificar varios campos en diferentes pasos. En este caso el paquete fuente se utiliza para generar un solo paquete binario, que es la situación más sencilla; pero no siempre es así, es también muy habitual que de un solo paquete fuente se generen varios paquetes binarios, que deberían estar especificados en el fichero d/control. Sí es importante apuntar que para ser consistentes en las modificaciones y el uso de un sistema de control de versiones, las modificaciones deben ser específicas y significativas para cada commit, por lo que modificaremos solo los campos que estén relacionados en cada commit, por ejemplo, haremos una modificación del campo «Maintainer» y un commit, otra de los campos «Vcs-*» y un commit, etc. Empezamos editando el fichero d/control y modificando el campo «Maintainer»:
... Maintainer: Alberto Molina Coballes <alb.molina@gmail.com>
Y realizamos el commit correspondiente, teniendo en cuenta que este cambio cierra el bug #876201 y añadiendo esta información en el commit, haremos que quede reflejado en el d/changelog, informando al Debian Bug Tracking System (BTS) para que cierre el bug. Veamos esto de forma concreta:
debian@debian:~/git/debian/dnsproxy/pkg-dnsproxy$ git status On branch master Your branch is ahead of 'origin/master' by 1 commit. (use "git push" to publish your local commits) Changes not staged for commit: (use "git add <file>..." to update what will be committed) (use "git restore <file>..." to discard changes in working directory) modified: debian/control no changes added to commit (use "git add" and/or "git commit -a") debian@debian:~/git/debian/dnsproxy/pkg-dnsproxy$ git diff diff --git a/debian/control b/debian/control index dad4163..a7c7565 100644 --- a/debian/control +++ b/debian/control @@ -1,7 +1,7 @@ Source: dnsproxy Section: net Priority: optional -Maintainer: Patrick Schoenfeld <schoenfeld@debian.org> +Maintainer: Alberto Molina Coballes <alb.molina@gmail.com> Homepage: http://wolfermann.org/dnsproxy.html Vcs-Svn: svn://svn.debian.org/svn/collab-maint/ext-maint/dnsproxy/trunk Vcs-Browser: http://svn.debian.org/wsvn/collab-maint/ext-maint/dnsproxy debian@debian:~/git/debian/dnsproxy/pkg-dnsproxy$ git add debian/control debian@debian:~/git/debian/dnsproxy/pkg-dnsproxy$ git commit -sm "d/control: Update maintainer > > I'm adopting dnsproxy, so this commit sets me as the maintainer > > Closes: #876201" [master 6ff5edd] d/control: Update maintainer 1 file changed, 1 insertion(+), 1 deletion(-)
Ojo a la línea «Closes: #876201» que es la que finalmente hará que se cierre automáticamente el bug de ITA.
Primera prueba de construcción del paquete
Tenemos el repositorio en la versión 1.17 y hemos modificado el formato del paquete a la versión 3.0 (paso obligatorio en estos momentos), por lo que vamos a ver si el paquete sigue pudiéndose construir o el hecho de modificar las fuentes a 1.17 hace que se produzca algún error importante que tengamos que corregir.
Para construir el paquete binario de la versión 1.17 tenemos que modificar el fichero d/changelog (si no lo hiciésemos, volvería a construir el paquete binario dnsproxy_1.16-0.1, lo cual sería incorrecto, puesto que ya no es el mismo fichero fuente), indicando la versión y las modificaciones más significativas. Podríamos hacer la modifcación de d/changelog directamente con el programa dch, incluído en el paquete devscripts, pero vamos a hacerlo de nuevo con gbp, de la siguiente manera:
debian@debian:~/git/debian/dnsproxy/pkg-dnsproxy$ gbp dch --id-length=7 gbp:info: Found tag for topmost changelog version '195a80463f10b024a82ca87e558d027fad2e0e77' gbp:info: Continuing from commit '195a80463f10b024a82ca87e558d027fad2e0e77'
El comando anterior tiene la ventaja de que mira el historial de git desde la última «release» y añade como cambios en d/changelog todos los commits que se hayan realizado. Podemos ver los cambios que ha hecho en el fichero d/changelog gracias a git:
debian@debian:~/git/debian/dnsproxy/pkg-dnsproxy$ git diff diff --git a/debian/changelog b/debian/changelog index 0c5d751..eef5da6 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,11 @@ +dnsproxy (1.17-1) UNRELEASED; urgency=medium + + * [f63febc] New upstream version 1.17 + * [a007371] d/source/format: Set format to 3.0 (quilt) + * [6ff5edd] d/control: Update maintainer (Closes: #876201) + + -- Alberto Molina Coballes <alb.molina@gmail.com> Sat, 16 May 2020 15:31:28 +0000 + dnsproxy (1.16-0.1) unstable; urgency=low * Non-maintainer upload.
Vemos que de forma sencilla y limpia se han incluido de forma ordenada las últimas modificaciones con la referencia al commit correspondiente a través de los 7 primeros dígitos (de ahí el modificador –id-length=7 que hemos usado). En estos momentos se ha hecho un d/changelog para la versión UNRELEASED, que significa que todavía no es adecuada para subirlo al archivo, cuando tengamos un d/changelog definitivo cambiaremos este campo por «unstable». Vamos a utilizar sbuild para ver si se puede construir este paquete binario 1.17-1:
debian@debian:~/git/debian/dnsproxy/pkg-dnsproxy$ sbuild ... +------------------------------------------------------------------------------+ | Summary | +------------------------------------------------------------------------------+ Build Architecture: amd64 Build Type: binary Build-Space: 1064 Build-Time: 11 Distribution: unstable Host Architecture: amd64 Install-Time: 46 Job: /home/debian/git/debian/dnsproxy/dnsproxy_1.17-1.dsc Lintian: fail Machine Architecture: amd64 Package: dnsproxy Package-Time: 136 Source-Version: 1.17-1 Space: 1064 Status: successful Version: 1.17-1 -------------------------------------------------------------------------------- Finished at 2020-05-16T15:41:07Z Build needed 00:02:16, 1064k disk space
El paquete se construye (se puede generar el fichero dnsproxy_1.17-1_amd64.deb), aunque aún tiene un buen número de cosas que hay que corregir, tal como informa lintian. Como el paquete se construye bien y los cambios que hemos hecho son adecuados, podemos subirlos a salsa, a la vez que deshacemos los cambios en d/changelog que volveremos a generar la próxima vez que construyamos el paquete:
debian@debian:~/git/debian/dnsproxy/pkg-dnsproxy$ git status On branch master Your branch is ahead of 'origin/master' by 2 commits. (use "git push" to publish your local commits) Changes not staged for commit: (use "git add <file>..." to update what will be committed) (use "git restore <file>..." to discard changes in working directory) modified: debian/changelog no changes added to commit (use "git add" and/or "git commit -a") debian@debian:~/git/debian/dnsproxy/pkg-dnsproxy$ git restore debian/changelog debian@debian:~/git/debian/dnsproxy/pkg-dnsproxy$ git push Enumerating objects: 12, done. Counting objects: 100% (12/12), done. Delta compression using up to 2 threads Compressing objects: 100% (7/7), done. Writing objects: 100% (9/9), 932 bytes | 466.00 KiB/s, done. Total 9 (delta 5), reused 0 (delta 0), pack-reused 0 To salsa.debian.org:alberto/pkg-dnsproxy.git 159854b..6ff5edd master -> master
Más cambios en d/control
Continuamos haciendo cambios en este importante fichero, actualizando otros campos del mismo (es decir, después de subir los cambios a salsa, volvemos al paso 1 de los que habíamos enumerado al principio de este artículo). En primer lugar actualizamos los campos Vcs-* referidos a la ubicación del repositorio de desarrollo de debian:
debian@debian:~/git/debian/dnsproxy/pkg-dnsproxy$ git diff debian/control diff --git a/debian/control b/debian/control index a7c7565..2a5151e 100644 --- a/debian/control +++ b/debian/control @@ -3,8 +3,8 @@ Section: net Priority: optional Maintainer: Alberto Molina Coballes <alb.molina@gmail.com> Homepage: http://wolfermann.org/dnsproxy.html -Vcs-Svn: svn://svn.debian.org/svn/collab-maint/ext-maint/dnsproxy/trunk -Vcs-Browser: http://svn.debian.org/wsvn/collab-maint/ext-maint/dnsproxy +Vcs-git: https://salsa.debian.org/alberto/pkg-dnsproxy.git +Vcs-Browser: https://salsa.debian.org/alberto/pkg-dnsproxy Build-Depends: debhelper (>= 7.1), autotools-dev, libevent-dev, groff-base, quilt Standards-Version: 3.8.4
Con el commit correspondiente:
debian@debian:~/git/debian/dnsproxy/pkg-dnsproxy$ git add debian/control debian@debian:~/git/debian/dnsproxy/pkg-dnsproxy$ git commit -sm "d/control: Set new Vcs-Git and Vcs-Browser" [master c95877c] d/control: Set new Vcs-Git and Vcs-Browser 1 file changed, 2 insertions(+), 2 deletions(-)
Modificamos Homepage en d/control poniendo https y añadimos el commit:
debian@debian:~/git/debian/dnsproxy/pkg-dnsproxy$ git diff debian/control diff --git a/debian/control b/debian/control index 2a5151e..1927e0b 100644 --- a/debian/control +++ b/debian/control @@ -2,7 +2,7 @@ Source: dnsproxy Section: net Priority: optional Maintainer: Alberto Molina Coballes <alb.molina@gmail.com> -Homepage: http://wolfermann.org/dnsproxy.html +Homepage: https://wolfermann.org/dnsproxy.html Vcs-git: https://salsa.debian.org/alberto/pkg-dnsproxy.git Vcs-Browser: https://salsa.debian.org/alberto/pkg-dnsproxy Build-Depends: debhelper (>= 7.1), autotools-dev, libevent-dev, groff-base, quilt debian@debian:~/git/debian/dnsproxy/pkg-dnsproxy$ git add debian/control debian@debian:~/git/debian/dnsproxy/pkg-dnsproxy$ git commit -sm "d/control: Use secure URI in Homepage field" [master 1f67e58] d/control: Use secure URI in Homepage field 1 file changed, 1 insertion(+), 1 deletion(-)
debhelper
Un aspecto importante que hay que comentar es que sbuild no construye realmente el paquete, sino que es una envoltura para herramientas de más bajo nivel que se encargan de la construcción. La principal funcionalidad que aporta sbuild es la creación automática de escenarios limpios en entornos enjualados para evitar tenerlos que hacer previamente o compilar en nuestra propia máquina, con los inconvenientes que esto tendría, pero para la propia construcción del paquete sbuild simplemente llama a otras herramientas. Para ver esto con más detalle debemos fijarnos en alguna de las salidas que se han generado al construir los paquetes (estas salidas además de por la salida estándar se almacenan automáticamente en un fichero con extensión .build, que son útiles para buscar aspectos concretos a posteriori), veremos que la construcción del paquete binario se compone de varios pasos:
- Actualización del entorno chroot
- Copiado de los ficheros fuentes al entorno chroot
- Instalacion de las dependencias
- Comprobación de si la arquitectura es válida
- Construcción del entorno
- Construcción el paquete
- Generación del fichero .changes
- Generación del fichero .buildinfo
- Generación de los paquetes
- Instalación y ejecución de lintian
De todos los pasos anteriores, el más importante es lógicamente el de la construcción del paquete. En este paso veremos la utilización de diferentes herramientas: dpkg-source, dpkg-buildpackage, quilt y una serie de programas dh_* (dh_testdir, dh_testroot, etc.) que se conocen como instrucciones o comandos de debhelper. Debhelper es una herramienta básica en la construcción de paquetes, ya que proporciona este conjunto de comandos que pueden ser utilizados para la construcción del paquete a través del fichero d/rules. Más aún, hoy en día se puede simplificar mucho la secuencia de comandos de debhelper, ya que existe el comando dh (debhelper sequencer) que simplifica bastante la sintaxis del fichero d/rules, tanto más sencillo cuanto más lo sea el paquete.
Debhelper va desarrollándose y los paquetes deben especificar con qué versión del mismo y de sus comandos se han construido. Lógicamente es recomendable ir modificando la versión de debhelper de la que depende nuestro paquete, en este caso podemos ver en el campo Build-Depends del fichero d/control que dnsproxy depende de debhelper (>= 7.1), mientras que la versión actual de debhelper en debian sid es la 13, por lo que un paso necesario será actualizarlo.
Actualización a debhelper 13
Editamos de nuevo el fichero d/control y modificamos el campo Build-Depends, poniendo debhelper-compat (= 13) en lugar de debhelper (>= 7.1) y borrando las dependencias en autotools-dev y groff-base que son innecesarias, ya que debhelper las tiene a su vez. Por otra parte hay que borrar el fichero debian/compat donde se especificaba la versión de debhelper con la que era compatible el paquete y ya no es necesario al indicarlo con la dependencia debhelper-compat:
debian@debian:~/git/debian/dnsproxy/pkg-dnsproxy$ git status
On branch master Your branch is ahead of 'origin/master' by 2 commits. (use "git push" to publish your local commits) Changes to be committed: (use "git restore --staged <file>..." to unstage) deleted: debian/compat Changes not staged for commit: (use "git add <file>..." to update what will be committed) (use "git restore <file>..." to discard changes in working directory) modified: debian/control debian@debian:~/git/debian/dnsproxy/pkg-dnsproxy$ git diff diff --git a/debian/control b/debian/control index 1927e0b..22886ed 100644 --- a/debian/control +++ b/debian/control @@ -5,7 +5,7 @@ Maintainer: Alberto Molina Coballes <alb.molina@gmail.com> Homepage: https://wolfermann.org/dnsproxy.html Vcs-git: https://salsa.debian.org/alberto/pkg-dnsproxy.git Vcs-Browser: https://salsa.debian.org/alberto/pkg-dnsproxy -Build-Depends: debhelper (>= 7.1), autotools-dev, libevent-dev, groff-base, quilt +Build-Depends: debhelper-compat (= 13), libevent-dev, quilt Standards-Version: 3.8.4
Y el correspondiente commit:
debian@debian:~/git/debian/dnsproxy/pkg-dnsproxy$ git add debian/control debian@debian:~/git/debian/dnsproxy/pkg-dnsproxy$ git commit -sm "d/control: Bump to debhelper-compat 13 > > debhelper in Build-Dependens field changed to debhelper-compat and d/compat file removed" [master b646ec1] d/control: Bump to debhelper-compat 13 2 files changed, 1 insertion(+), 2 deletions(-) delete mode 100644 debian/compat debian@debian:~/git/debian/dnsproxy/pkg-dnsproxy$ git push Enumerating objects: 15, done. Counting objects: 100% (15/15), done. Delta compression using up to 2 threads Compressing objects: 100% (12/12), done. Writing objects: 100% (12/12), 1.23 KiB | 630.00 KiB/s, done. Total 12 (delta 9), reused 0 (delta 0), pack-reused 0 To salsa.debian.org:alberto/pkg-dnsproxy.git 6ff5edd..b646ec1 master -> master
Realizamos una nueva prueba de construcción del paquete generando de nuevo el fichero d/changelog y el paquete sigue contruyéndose con estas modificaciones que hemos añadido, aunque aún lintian informa de errores y da bastantes advertencias. Habrá que seguir iterando y volver de nuevo al paso 1 del procedimiento de desarrollo y seguir así hasta que consigamos una versión publicable.
En resumen, hemos actualizado el formato del paquete fuente a 3.0 (paso obligatorio en estos momentos), hemos actualizado la versión de debhelper a la última (13), hemos actualizado el campo correspondiente al mantenedor del paquete y algunos otros cambios menores en d/control. Todos estos pasos se pueden considerar muy necesarios, pero todavía queda bastante trabajo hasta poner en orden el paquete, que está lejos todavía de una nueva versión publicable. Sin embargo, poner en esta entrada todos los cambios necesarios sería demasiado largo, por lo no sé si los que haga más adelante los incluiré como una entrada o varias entradas que continúen ésta o solo los commits que sean más relevantes, ya se verá. En cualquier caso, creo que se puede ver en esta entrada cómo es el procedimiento de puesta a punto de un paquete en debian a través de pequeñas modificaciones sucesivas.