22 sept. 2011

Corrigiendo los reportes generados por lintian de un metapaquete

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.




Publicar un comentario en la entrada

AddThis