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

Re: Bug#450432: ... and even more bugs like this?



On Fri, Nov 16, 2007 at 12:05:39AM +0600, Ivan Shmakov wrote:
> $ lintian --root="$PWD"/../lintian-root-2007-11-15 \
>       *.deb \
>       | grep -F has-errors
> W: libdirectfb-dev: manpage-has-errors-from-man usr/share/man/man1/directfb-config.1.gz 24: warning: `l' not defined
> W: dvidvi: manpage-has-errors-from-man usr/share/man/man1/a5booklet.1.gz 9: warning: `IX' not defined
> 
> 	The lines like this seems to me somewhat bogus.  I guess, `.IX'
> 	allows one to specify an index item, and since `man' doesn't
> 	provide any indices, this macro is left undefined, and thus
> 	ignored by `man' (and it's okay.)

Perhaps some of these should be explicitly ignored by lintian, as
they're problems with popular generator tools and it really doesn't do
anyone any good to report them in lintian; they should be filed as bugs
against the generators instead. (Unfortunately, you might have to parse
groff's warning text in order to ignore particular cases.)

.IX is probably from pod2man, which does:

  .\" If the F register is turned on, we'll generate index entries on stderr for
  .\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
  .\" entries marked with X<> in POD.  Of course, you'll have to process the
  .\" output yourself in some meaningful fashion.
  .if \nF \{\
  .    de IX
  .    tm Index:\\$1\t\\n%\t"\\$2"
  ..
  .    nr % 0
  .    rr F
  .\}

Russ, perhaps this should be something like this instead to suppress the
warning?

  .\" If the F register is turned on, we'll generate index entries on stderr for
  .\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
  .\" entries marked with X<> in POD.  Of course, you'll have to process the
  .\" output yourself in some meaningful fashion.
  .ie \nF \{\
  .    de IX
  .    tm Index:\\$1\t\\n%\t"\\$2"
  ..
  .    nr % 0
  .    rr F
  .\}
  .el \{\
  .    de IX
  ..
  .\}

> 	A simple-minded approach to suppress these warnings would be
> 	something like:
> 
> .de IX
> .end
> 
> 	but I believe that such a definition belongs to the macro
> 	package `man' uses.

man doesn't use any macro package of its own; it's all in groff. I'd
like to keep it that way if possible. Anyhow, since this is a macro
defined by a particular man page generator, it's not appropriate to
handle it in either man or groff.

> W: dvgrab: manpage-has-errors-from-man usr/share/man/de/man1/dvgrab.1.gz 308: warning: `..' not defined

Looks like a botched attempt to define a macro. (.. is what you use to
terminate a macro definition.)

> W: dput: manpage-has-errors-from-man usr/share/man/man1/dput.1.gz 92: warning: `P.SH' not defined

An obvious typo.

> W: dpkg-dev: manpage-has-errors-from-man usr/share/man/man1/dpkg-checkbuilddeps.1.gz 27: warning: `UR' not defined

.UR used to be what you used to mark up URLs; man(7) recommended it
until not that long ago.

> W: dpkg-dev: manpage-has-errors-from-man usr/share/man/man1/dpkg-architecture.1.gz 104: warning: `C`' not defined

I'm not entirely sure what all this line noise is trying to achieve.
Looks to me like stuff like \f(CW\*(C`\-c\*(C' should just be \-c; aside
from the undefined strings, why should just the option be constant-width
and not the rest of the example command line?

> W: dpkg: manpage-has-errors-from-man usr/share/man/man1/dpkg-query.1.gz 51: warning: `T' not defined

I think .T was perhaps meant to be .TP.

> W: docbook-utils: manpage-has-errors-from-man usr/share/man/man7/frontend-spec.7.gz 37: warning: `..)' not defined

groff usage error; the line should read:

  \&...)

... or else the "...)" should be wrapped onto the previous line.

> W: docbook-to-man: manpage-has-errors-from-man usr/share/man/man1/instant.1.gz 81: warning: `E' not defined

Firstly, I think \*EM was probably supposed to be \*(EM. Secondly,
there's no such string defined, and perhaps \(em is what they really
meant.

> W: docbook-to-man: manpage-has-errors-from-man usr/share/man/man5/transpec.5.gz 467: warning: `DS' not defined

Err. This looks like an attempt to use ms macros, maybe? .RS and .RE
would be the appropriate equivalents in the man macros, if I understand
the intention correctly.

> W: docbook-to-man: manpage-has-errors-from-man usr/share/man/man3/regexp.3.gz 2: warning: `DA' not defined

Perhaps this is how you specify dates in some old version of the man
macros? The date is conventionally the third argument to .TH nowadays.

At any rate, docbook-to-man has no business shipping this manual page at
all, and it should simply be removed.

> W: dirmngr: manpage-has-errors-from-man usr/share/man/man1/dirmngr.1.gz 245: warning: `#'' not defined
> W: dirmngr: manpage-has-errors-from-man usr/share/man/man1/dirmngr-client.1.gz 86: warning: `-vv'' not defined

I don't have this installed, but they look like typos.

> W: dialog: manpage-has-errors-from-man usr/share/man/man3/dialog.3.gz 1494: warning: `..' not defined

Maybe another botched attempt to define a macro?

> W: dhcp3-common: manpage-has-errors-from-man usr/share/man/man5/dhcp-options.5.gz 1136: warning: `.'' not defined

The line begins like this:

  '.' character

... and should instead begin:

  \&'.' character

(' is groff's default no-break control character.)

> W: dh-make: manpage-has-errors-from-man usr/share/man/man8/dh_make.8.gz 74: warning: `If' not defined

Typo; the leading ". " should just be removed.

> W: debootstrap: manpage-has-errors-from-man usr/share/man/man8/debootstrap.8.gz `R' is a string (producing the registered sign), not a macro.

An error, fixed in debootstrap 1.0.0.

> W: ddd: manpage-has-errors-from-man usr/share/man/man1/ddd.1.gz 34: warning: `PSPIC' not defined

This is sort of odd; that macro is defined in cases where the output
device is capable of drawing pictures using pic. I think it would be
best to ignore this one, although the warning could be suppressed like
this:

  .if d PSPIC .PSPIC /tmp/buildd/ddd-3.3.11/./ddd/PICS/dddlogo.eps 10cm

> W: dctrl-tools: manpage-has-errors-from-man usr/share/man/man1/tbl-dctrl.1.gz 115: warning: `Bi' not defined

Typo for .BI.

> W: dcraw: manpage-has-errors-from-man usr/share/man/man1/dcfujiturn.1.gz 7: warning: `LO' not defined
> W: dcraw: manpage-has-errors-from-man usr/share/man/man1/dccleancrw.1.gz 7: warning: `LO' not defined
> W: dcraw: manpage-has-errors-from-man usr/share/man/man1/dcraw.1.gz 13: warning: `LO' not defined
> W: dcraw: manpage-has-errors-from-man usr/share/man/man1/dcparse.1.gz 7: warning: `LO' not defined
> W: dcraw: manpage-has-errors-from-man usr/share/man/man1/dcfujigreen.1.gz 7: warning: `LO' not defined

I only know of .LO in the mm macros, but 1 isn't a valid argument to
even those so I don't know what this is meant to be. It could be removed
without losing anything.

> W: dcc-common: manpage-has-errors-from-man usr/share/man/man8/dcc.8.gz  Empty input line #820

Seems to be fixed. (Disallowing empty input lines is specific to the
mdoc macros.)

> W: dcc-client: manpage-has-errors-from-man usr/share/man/man8/dccifd.8.gz 688: warning: `"' not defined

It's in dcc-server now. It looks like these were meant to be .\" (i.e.
comments).

> W: dbconfig-common: manpage-has-errors-from-man usr/share/man/man1/dbconfig-load-include.1.gz 8: warning: `Xc' not defined
> W: dbconfig-common: manpage-has-errors-from-man usr/share/man/man1/dbconfig-generate-include.1.gz 8: warning: `Xc' not defined

I only know of .Xc in mdoc, and this doesn't look like how you'd use it
there. What it's doing here is anyone's guess. I'd remove it.

> W: db4.4-util: manpage-has-errors-from-man usr/share/man/man1/db4.4_checkpoint.1.gz 27: warning: `TR' not defined
> W: db4.4-util: manpage-has-errors-from-man usr/share/man/man1/db4.4_deadlock.1.gz 50: warning: `TR' not defined
> W: db4.4-util: manpage-has-errors-from-man usr/share/man/man1/db4.4_load.1.gz 127: warning: `TR' not defined
> W: db4.3-util: manpage-has-errors-from-man usr/share/man/man1/db4.3_deadlock.1.gz 50: warning: `TR' not defined
> W: db4.3-util: manpage-has-errors-from-man usr/share/man/man1/db4.3_load.1.gz 127: warning: `TR' not defined
> W: db4.3-util: manpage-has-errors-from-man usr/share/man/man1/db4.3_checkpoint.1.gz 27: warning: `TR' not defined

This looks like a typo for .TP, to set up an indented paragraph.

> W: dasher: manpage-has-errors-from-man usr/share/man/man1/dasher.1.gz 112: warning: `B--with-a11y.' not defined

Missing space after .B.

Cheers,

-- 
Colin Watson                                       [cjwatson@debian.org]



Reply to: