Creative Commons License
Excepto donde se indique otra cosa, todo el contenido de este lugar está bajo una licencia de Creative Commons.
Taquiones > debian > Anulaciones de Lintian

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