groff
[Top][All Lists]
Advanced

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

unrecognized X command 'sgr 0' ignored (was: early adopters of groff 1.2


From: G. Branden Robinson
Subject: unrecognized X command 'sgr 0' ignored (was: early adopters of groff 1.23.0)
Date: Thu, 6 Jul 2023 19:27:41 -0500

[looping in Colin Watson for man-db test suite advice]

Hi Alexis,

At 2023-07-06T23:34:20+0200, Alexis wrote:
> after having tested the RCs on darwin nixpkgs for the past weeks
> and seeing the message about the 1.23.0 source archive being available
> I felt the time was right to create a GitHub Pull-Request¹ and update
> the groff package on NixOS and nixpkgs.

Definitely.  Thank you!

> Folks reviewing said PR have reported potentially related man-db
> test failures caused by:
> 
>   grotty:<standard input>:(<standard input>):9: warning:
>   unrecognized X command 'sgr 0' ignored
> 
> which might be due to bug #61561:
> 
>   [grotty] remove 'sgr' device control command²

I think that is relevant but not the whole story.

> Does anyone have more context on this and is willing to share
> their take on it and how to possibly fix the test failures
> should they be related to the update to groff 1.23.0?

I built man-db 2.11.2 from its Git repo on my GNU/Linux amd64 box with
groff 1.23.0 in my $PATH and did not get this test failure.  I got a
different one.

FAIL: man1/lexgrog.1
====================

man -E UTF-8 -l ./man1/lexgrog.1 produced error output:
troff:<standard input>:136: warning: cannot select font 'CW'
troff:<standard input>:160: warning: cannot select font 'CW'
troff:<standard input>:170: warning: cannot select font 'CW'
troff:<standard input>:171: warning: cannot select font 'CW'
troff:<standard input>:180: warning: cannot select font 'CW'
FAIL man1/lexgrog.1 (exit status: 1)

All other tests passed.

I regard the foregoing as a problem with the man page; the font name
"CW" is not portable; in fact, it is meaningless on terminal devices.

People/distributors can put the following into man.local to work around
it if they expect a lot of man pages to cause this issue.

.if n .ftr CW R

These are only warnings, so they are _not_ fatal to man page
rendering--it is this test script deciding to fail because diagnostics
are appearing).

To get back to the problem you reported, that's mysterious to me.  I
don't see anything in man-db explicitly constructing device control
command escape sequences that would cause this "unrecognized X command
'sgr 0' ignored" warning.

But what _could_ do it is if, somehow, GNU troff 1.22.4 or earlier is
being used to produce output and grotty from groff 1.23.0 is being used
to consume it.  It's tempting to blame a manually constructed pipeline
for that, and I think man-db man(1) constructs one, but it's hard for me
to account for how desynchronized versions of troff and grotty are being
found in the same $PATH.  So that may not be what's happening.

I hope Colin Watson can offer us a clue here.

> ¹ https://github.com/NixOS/nixpkgs/pull/241870
> ² https://savannah.gnu.org/bugs/?61561

Regards,
Branden

Attachment: signature.asc
Description: PGP signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]