Primeras modificaciones para empaquetar dnsproxy para Debian


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:

  1. Preparar una máquina para el desarrollo de paquetes Debian
  2. Usando git en el empaquetado de Debian
  3. 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:

  1. Modificamos uno o varios ficheros de debian/, teniendo en cuenta la documentación, lo que exige en muchas ocasiones seguir escrupulosamente un determinado formato.
  2. Cuando estas modificaciones estén terminadas, las añadimos al repositorio git en commits consistentes y con comentarios claros
  3. Construimos el paquete
  4. Si el paquete se construye bien, hacemos una pila de pruebas para verificar si las pasa
  5. Subimos los commits a salsa o deshacemos los cambios si no se construye bien el paquete o encontramos errores importantes
  6. 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:

  1. Realizamos un d/changelog de la siguiente versión para Debian sid
  2. Construimos el paquete y le pasamos de forma exhaustiva todas las pruebas que consideremos oportunas
  3. Firmamos el paquete con nuestra clave GPG
  4. Subimos el paquete a la rama sid del archivo (a mentors si no tenemos autorización)
  5. 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
  6. 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:

  1. Actualización del entorno chroot
  2. Copiado de los ficheros fuentes al entorno chroot
  3. Instalacion de las dependencias
  4. Comprobación de si la arquitectura es válida
  5. Construcción del entorno
  6. Construcción el paquete
  7. Generación del fichero .changes
  8. Generación del fichero .buildinfo
  9. Generación de los paquetes
  10. 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.

Primeras modificaciones para empaquetar dnsproxy para Debian

Deja una respuesta

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Salir /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Salir /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Salir /  Cambiar )

Conectando a %s