Anulaciones de lintian
El título es una traducción libre de overrides y hace referencia a la
capacidad que ofrece el programa Lintian
para anular sus decisiones
sobre errores y advertencias en un paquete.
En el manual de usuario de
Lintian cuentan que en algunas
ocasiones Lintian
puede quejarse acerca de algún contenido del paquete que
viola la normativa Debian para empaquetado.
Esto puede suceder por varias razones:
- Un error en el propio programa
Lintian
. - Uno de los chequeos no es lo bastante listo como para distinguir un caso especial de la normativa.
- La política de Debian permite alguna excepción a una regla general.
En los dos últimos casos, y tras reflexionar y efectuar alguna búsqueda por la
red al respecto, es posible anular la decisión de Lintian
mediante un
archivo especial que acompaña al paquete en estos casos.
El archivo de anulaciones debe instalarse en
/usr/share/lintian/overrides/<package>
si es un binario ó un archivo
udeb, y en debian/source.lintian-overrides
si es un archivo
fuente. Con este archivo Lintian
ya sabe qué situaciones no debe
considerar como errónas y si avisa de ellas lo hace con una etiqueta especial
p llamada overridden
.
Formato del archivo
El archivo de anulaciones es bastante simple; puede contener líneas en blanco y comentarios (precedidos por el habitual carácter #) para hacerlo más legible, y cada línea es una anulación con el siguiente formato:
[<package> [ <type> ]:] <lintian tag> [ <lintian_info> ]
Donde:
- package es el nombre del paquete (puesto que un único fuente puede generar varios binarios).
- type puede ser binary, udeb ó source.
- lintian tag es la clave con la que
Lintian
idenfitica la advertencía ó el error. - lintian info consiste en toda la información extra que proporciona
Lintian
exceptuando la etiqueta. Eso sirve para afinar más en la selección del aviso/error.
Por cierto, lo que va entre corchetes es opcional.
En el caso de que nuestro paquete taquiones-admin
necesite un archivo de
éstos, éste debe ir el directorio
/usr/share/lintian/overrides/taquiones-admin
y el contenido podría ser algo
como:
# Quiero que los siguientes programas incluyan la extensión .pl (porque sí)
taquiones-admin: script-with-language-extension
# En este caso detecta algunos caracteres extraños (supongo que por
# conversión entre juegos de caracteres
taquiones-admin: manpage-has-errors-from-man
# Y en este otro sé que debería trabajar sobre un directorio limpio, pero hoy
# no estoy para florituras.
taquiones-admin source: source-contains-svn-control-dir
# este programa no merece una página
taquiones-admin: binary-without-manpage usr/bin/remove_spam_tag.pl
Se pueden incluir más de una etiqueta si el error afecta, por ejemplo, a más de un archivo, y es posible anular una etiqueta por completo si sólo incluímos su nombre (como en source-contains-svn-control-dir) ó refererirnos a un caso concreto (como en binary-without-manpage) del ejemplo anterior.
Construyendo un paquete
Para ello podemos perfectamente situar el archivo anterior en un directorio concreto como en:
debian/overrides/taquiones-admin
e incluir lo siguiente en las reglas de construcción (debian/rules
):
# Build architecture-dependent files here.
binary-arch: build install
...
dh_installexamples
dh_installdirs usr/share/lintian/overrides/
dh_install debian/overrides/taquiones-admin usr/share/lintian/overrides/
...
dh_install
Es decir, instalamos primero el directorio y luego el archivo con los útiles de debhelper.
Otra forma de hacerlo es situar el archivo de anulaciones en
debian/taquiones-admin.lintian
y usar una línea como la siguiente en
debian/rules
:
install -o root -g root -m 0644 $(CURDIR)/debian/taquiones-admin.lintian \
debian/taquiones-admin/usr/share/lintian/overrides/taquiones-admin