Control: tags -1 + wontfix

On Fri, 2025-03-21 at 08:07 +0000, Andrew Bower wrote:
> The groff linting is coming up with false positives because man pages are
> checking (presumably) without enabling the 'tbl' preprocessor.
> 
> An example, running:
> 
>   apt-get source libcrypt-dev
>   cd libxcrypt-4.4.38
>   debuild -i -uc -us -b
> 
> Gives:
> 
> Now running lintian libxcrypt_4.4.38-1_amd64.changes ...
> W: libcrypt-dev: groff-message troff:<standard input>:101: warning: macro 
> 'TE' not defined [usr/share/man/man3/crypt_checksalt.3.gz:2]
> W: libcrypt-dev: groff-message troff:<standard input>:246: warning: macro 
> 'TS' not defined [usr/share/man/man3/crypt_gensalt.3.gz:1]
> W: libcrypt-dev: groff-message troff:<standard input>:258: warning: macro 
> 'TE' not defined [usr/share/man/man3/crypt_gensalt.3.gz:2]
> W: libcrypt-dev: groff-message troff:<standard input>:429: warning: macro 
> 'TS' not defined [usr/share/man/man3/crypt.3.gz:1]
> W: libcrypt-dev: groff-message troff:<standard input>:442: warning: macro 
> 'TE' not defined [usr/share/man/man3/crypt.3.gz:2]
> W: libcrypt-dev: groff-message troff:<standard input>:55: warning: macro 'TS' 
> not defined [usr/share/man/man3/crypt_preferred_method.3.gz:1]
> W: libcrypt-dev: groff-message troff:<standard input>:63: warning: macro 'TE' 
> not defined [usr/share/man/man3/crypt_preferred_method.3.gz:2]
> W: libcrypt-dev: groff-message troff:<standard input>:93: warning: macro 'TS' 
> not defined [usr/share/man/man3/crypt_checksalt.3.gz:1]
> Finished running lintian.

From man(1):
> The filters are deciphered by a number of means.  Firstly, the command
> line option  -p  or  the  environment variable $MANROFFSEQ is
> interrogated.  If -p was not used and the environment variable was not
> set, the ini‐ tial 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.

As an example, I took the crypt(3) manpage from the latest version of
libcrypt-dev in trixie and added:

  '\" t

to the very first line. On a trixie system, the command (as specified by
the groff-message tag description)

  LC_ALL=C.UTF-8 MANROFFSEQ='' MANWIDTH=80 \
    man --warnings -E UTF-8 -l -Tutf8 -Z ./crypt.3 >/dev/null

outputted no warnings compared to before the change.

> But the mdoc-format man page, e.g. man crypt, is fine and renders its table as
> expected.
> 
> Should the groff invocation in lintian be updated with -t?

lintian intentionally clears all the preprocessor sequence to check for
this. It was introduced in [1] in order to "be stricter with missing
roff preprocessors".

Please let me know if this helps solve the problem.

--
Maytham

[1]: 
https://salsa.debian.org/lintian/lintian/-/commit/750623c4dab40aa2044e49c67ece359e83fe4cf8

Attachment: signature.asc
Description: This is a digitally signed message part

Reply via email to