Corrigiendo los reportes generados por lintian de un metapaquete

Posted on jue 22 septiembre 2011 in Linux,Empaquetado • 4 min read

Este artículo explicará como corregir los mensajes generados por lintian, estos mensajes son debido a que el programa empaquetado o metapaquete no cumple con el policy de Debian y para subir dicho programa es necesario que esté sin errores ni warning.

El archivo que se va a verificar es el .dsc del metapaquete creado al empaquetar canaima-caribay-radio.

Al ejecutar lintian con el archivo dsc devuelve el siguiente mensaje:

lintian -i canaima-caribay-radio_1.0.dsc
W: canaima-caribay-radio source: debhelper-but-no-misc-depends canaima-caribay-radio
N: 
N:The source package uses debhelper, but it does not include
N:${misc:Depends} in the given binary package's debian/control entry. Any
N:debhelper command may add dependencies to ${misc:Depends} that are
N:required for the work that it does, so recommended best practice is to
N:always add ${misc:Depends} to the dependencies of each binary package if
N:debhelper is in use.
N:
N:Refer to the debhelper(7) manual page for details.
N:
N:Severity: normal, Certainty: possible
N: 
W: canaima-caribay-radio source: package-uses-deprecated-debhelper-compat-version 4
N: 
N:The debhelper compatibility version used by this package is marked as
N:deprecated by the debhelper developer. You should really consider using
N:a newer compatibility version.
N:
N:The compatibility version can be set in (preferred) debian/compat or by
N:setting and exporting DH_COMPAT in debian/rules. If it is not set in
N:either place, debhelper defaults to the deprecated compatibility version
N:1.
N:
N:Refer to the debhelper(7) manual page for details.
N:
N:Severity: normal, Certainty: certain
N: 
W: canaima-caribay-radio source: binary-arch-rules-but-pkg-is-arch-indep
N: 
N:It looks like you try to run code in the binary-arch target of
N:debian/rules, even though your package is architecture- independent.
N:
N:Severity: normal, Certainty: certain
N: 

El primer warning es que hace falta agregar ${misc:Depends] en las dependencias. Adicionalmente se tiene que cambiar el parámetro Standards-Version a la versión 3.9.1.

Section: misc
Priority: optional
Homepage: http://canaima.softwarelibre.gob.ve
Standards-Version: 3.9.1

Package: canaima-caribay-radio
Version: 1.0
Maintainer: Ernesto Nadir Crespo Avila <ecrespo@cenditel.gob.ve>
Depends: ${misc:Depends},jackd2, libjack-jackd2-0, libjack-jackd2-dev, pulseaudio-module-jack, qjackctl,  
libjack-jackd2-0, libjack-jackd2-dev, vorbis-tools, libvorbis-dev, libogg-dev, libmad0-dev, libsamplerate0-dev,  
libflac-dev, libsndfile1-dev, libavcodec-dev, libavformat-dev, libspeex-dev, python-gtk2-dev,  
python-mutagen, libdbus-1-dev, ffmpeg, libshout3-dev, libtwolame-dev, twolame,
idjc, audacity, audacity-data, audacity-dbg, icecast2, easytag
Architecture: all
Copyright: copyright
Changelog: changelog 
Description: Metapaquete para la instalacion de radio streaming
Metapaquete para la instalacion de radio streaming con icecast2 e idjc.

El segundo warning menciona que el archivo debian/compat tiene dentro el número 4 y es necesario que se actualice a la versión de debhelper que se está usando para empaquetar, en este caso debe cambiar a 8. Esto se tiene que cambiar en la plantilla de equivs.

vim /usr/share/equivs/template/debian/compat

Cambiar 4 por 8.

El siguiente warning menciona un problema en la definición de la arquitectura, que es necesario quitar binary-arch y nuestro paquete es independiente de la plataforma. Esto se resuelve modificando canaima-caribay-radio cambian el parámetro Architecture: all por any.

Luego de realizar esos cambios se vuelve a crear el metapaquete y a ejecutar lintian:

lintian -i canaima-caribay-radio_1.0.dsc
W: canaima-caribay-radio source: dh-clean-k-is-deprecated
N: 
N:This package calls dh_clean -k in its debian/rules file and declares a
N:debhelper compatibility version of at least 7.
N:
N:debhelper 7 deprecated dh_clean -k in favour of dh_prep.
N:
N:Refer to the dh_clean(1) manual page for details.
N:
N:Severity: normal, Certainty: certain
N: 
W: canaima-caribay-radio source: package-lacks-versioned-build-depends-on-debhelper 8
N: 
N:The package either doesn't declare a versioned build dependency on
N:debhelper or does not declare a versioned build dependency on a new
N:enough version of debhelper to satisfy the declared compatibility level.
N:
N:Recommended practice is to always declare an explicit versioned
N:dependency on debhelper equal to or greater than the compatibility level
N:used by the package, even if the versioned dependency isn't strictly
N:necessary. Having a versioned dependency also helps with backports to
N:older releases and correct builds on partially updated systems.
N:
N:Refer to the debhelper(7) manual page for details.
N:
N:Severity: minor, Certainty: certain
N: 

Luego de cambiar el archivo compat y la versión del standards-version aparece un warning sobre el comando dh_clean -k que se tiene que sustituir por dh_prep en el archivo debian/rules de la plantilla:

vim /usr/share/equivs/template/debian/rules
install: build
dh_testdir
dh_testroot
dh_prep

El otro warning menciona que debhelper tiene un número de versión viejo. Para cambiarlo se busca el archivo control.in en las plantillas y se modifica la dep

vim /usr/share/equivs/template/debian/control.in

Se modifica la siguiente línea:

Build-Depends: debhelper (>= 8)

Se vuelve a empaquetar y a ejecutar lintian:

lintian -i canaima-caribay-radio_1.0.dsc

Listo, no más mensajes de error o warnings.

¡Haz tu donativo! Si te gustó el artículo puedes realizar un donativo con Bitcoin (BTC) usando la billetera digital de tu preferencia a la siguiente dirección: 17MtNybhdkA9GV3UNS6BTwPcuhjXoPrSzV

O Escaneando el código QR desde la billetera:

17MtNybhdkA9GV3UNS6BTwPcuhjXoPrSzV