[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: