Re: issues with lintian.debian.org
"Adam D. Barratt" <adam@adam-barratt.org.uk> writes:
> On Sun, 2008-12-28 at 13:13 +0100, Arthur de Jong wrote:
>> Secondly some of my packages seem to get the manpage-has-errors-from-man
>> warning often (always as /tmp/zman*: No such file or directory). I have
>> not been able to reproduce this in my environment (I use debuild so
>> lintian always get run at the end of the build process). Any ideas what
>> this is and if I should fix something?
>
> This appears to be one of a class of issues that occur because
> lintian.d.o is running etch and using etch's man-db. Checking one of the
> manpages directly on the machine produces the following output:
>
> /==========================================================
> | $ man -l tmp/usr/share/man/man8/nslcd.8.gz >/dev/null
> | man: ignoring unknown preprocessor `-'
> | man: ignoring unknown preprocessor `*'
> | man: ignoring unknown preprocessor `-'
> | man: ignoring unknown preprocessor ` '
> | man: ignoring unknown preprocessor `c'
> | man: ignoring unknown preprocessor `o'
> | man: ignoring unknown preprocessor `d'
> | man: ignoring unknown preprocessor `i'
> | man: ignoring unknown preprocessor `n'
> | man: ignoring unknown preprocessor `:'
> | man: ignoring unknown preprocessor ` '
> | man: ignoring unknown preprocessor `u'
> | man: ignoring unknown preprocessor `s'
> | man: ignoring unknown preprocessor `-'
> | man: ignoring unknown preprocessor `a'
> | man: ignoring unknown preprocessor `s'
> | man: ignoring unknown preprocessor `c'
> | man: ignoring unknown preprocessor `i'
> | man: ignoring unknown preprocessor `i'
> | man: ignoring unknown preprocessor ` '
> | man: ignoring unknown preprocessor `-'
> | man: ignoring unknown preprocessor `*'
> | man: ignoring unknown preprocessor `-'
> | Reformatting nslcd.8.gz, please wait...
> | man: can't execute /usr/bin/grap: No such file or directory
Note the missing 'g' in the above output.
This is a legitimate bug in the man page, although it may be that current
versions of man-db work around it. From man(1):
If -p was not used and the environment variable was not set, the
initial line of the nroff file is parsed for a preprocessor string.
To contain a valid preprocessor string, the first line must resemble
'\" <string>
where string can be any combination of letters described by option -p
below.
Your man page starts with the line:
'\" -*- coding: us-ascii -*-
which inadvertantly matches the magic format man uses to indicate that
preprocessors are needed for a given page. 'g' is the character
indicating a preprocessor of grap, but grap is a separate program that
isn't installed on the system where lintian.d.o is running (besides which,
your man page doesn't use grap anyway).
Changing that line to:
.\" -*- coding: us-ascii -*-
instead should fix the problem. roff(7) recommends putting Emacs commands
at the end of the file instead of at the beginning, though:
* The most general method is to include the following 3 comment lines
at the end of the file.
.\" Local Variables:
.\" mode: nroff
.\" End:
* Theoretically, it is possible to write the sequence
.\" -*- nroff -*-
as the first line of a file to have it started in nroff mode when
loaded. Unfortunately, some applications such as the man program
are confused by this; so this is deprecated.
--
Russ Allbery (rra@debian.org) <http://www.eyrie.org/~eagle/>
Reply to: