[please don't email info-groff@gnu with feedback; it's not a big
problem, but it makes work for the list moderators]

At 2026-02-21T19:39:14+0100, Alexis (surryhill) wrote:
> testing this pre-release on Darwin with nixpkgs 25.11 was successfull
> and all tests passed for builds with and without URW fonts.

Thanks a lot for evaluating this platform.  I have nothing like it.

> When building with uchardet support the following test failed:
> src/preproc/preconv/tests/smoke-test.sh
> 
> Here are the related snippets from the build log (also attached):
> 
>   testing uchardet detection on pipe (expect fallback to -D)
>   testing fallback to locale setting in environment
>   ...FAILED
>   FAIL src/preproc/preconv/tests/smoke-test.sh (exit status: 1)
[snip; I'll get to this test failure below]
> Hopefully this is helpful.

It is!  Thank you.

Some miscellaneous comments on your build log--largely notes to myself.

[...]
>   CXX      src/libs/libgroff/libgroff_a-nametoindex.o
> src/libs/libgroff/matherr.c:29:5: warning: a 
> function definition without a prototype is deprecated in all versions of C 
> and is not supported in C23 [-Wdeprecated-non-prototype]
>    29 | int matherr(exc)
>       |     ^
> 1 warning generated.

Hmmm, I need to put that on the Lint hit list for early groff 1.25.

We can either fix the declaration...

$ apropos matherr
matherr (3)          - SVID math library exception handling

...or maybe delegate to gnulib.

See <https://savannah.gnu.org/bugs/?66518>.

> BuildFoundries: warning: line 34: cannot read grops font description 'AB' for 
> default foundry
> BuildFoundries: warning: line 35: cannot read grops font description 'ABI' 
> for default foundry
> BuildFoundries: warning: line 36: cannot read grops font description 'AI' for 
> default foundry
> BuildFoundries: warning: line 37: cannot read grops font description 'AR' for 
> default foundry
> BuildFoundries: warning: line 38: cannot read grops font description 'BMB' 
> for default foundry
> BuildFoundries: warning: line 39: cannot read grops font description 'BMBI' 
> for default foundry
> BuildFoundries: warning: line 40: cannot read grops font description 'BMI' 
> for default foundry
> BuildFoundries: warning: line 41: cannot read grops font description 'BMR' 
> for default foundry
> BuildFoundries: notice: copied grops font description CB for gropdf
> BuildFoundries: notice: copied grops font description CBI for gropdf
> BuildFoundries: notice: copied grops font description CI for gropdf
> BuildFoundries: notice: copied grops font description CR for gropdf
> BuildFoundries: notice: copied grops font description HB for gropdf
> BuildFoundries: notice: copied grops font description HBI for gropdf
> BuildFoundries: notice: copied grops font description HI for gropdf
> BuildFoundries: warning: line 49: cannot read grops font description 'HNB' 
> for default foundry
> BuildFoundries: warning: line 50: cannot read grops font description 'HNBI' 
> for default foundry
> BuildFoundries: warning: line 51: cannot read grops font description 'HNI' 
> for default foundry
> BuildFoundries: warning: line 52: cannot read grops font description 'HNR' 
> for default foundry
> BuildFoundries: notice: copied grops font description HR for gropdf
> BuildFoundries: warning: line 54: cannot read grops font description 'NB' for 
> default foundry
> BuildFoundries: warning: line 55: cannot read grops font description 'NBI' 
> for default foundry
> BuildFoundries: warning: line 56: cannot read grops font description 'NI' for 
> default foundry
> BuildFoundries: warning: line 57: cannot read grops font description 'NR' for 
> default foundry
> BuildFoundries: warning: line 58: cannot read grops font description 'PB' for 
> default foundry
> BuildFoundries: warning: line 59: cannot read grops font description 'PBI' 
> for default foundry
> BuildFoundries: warning: line 60: cannot read grops font description 'PI' for 
> default foundry
> BuildFoundries: warning: line 61: cannot read grops font description 'PR' for 
> default foundry
> BuildFoundries: notice: copied grops font description S for gropdf
> BuildFoundries: notice: copied grops font description TB for gropdf
> BuildFoundries: notice: copied grops font description TBI for gropdf
> BuildFoundries: notice: copied grops font description TI for gropdf
> BuildFoundries: notice: copied grops font description TR for gropdf
> BuildFoundries: warning: line 67: cannot read grops font description 'ZCMI' 
> for default foundry
> BuildFoundries: notice: copied grops font description ZD for gropdf
> BuildFoundries: notice: copied grops font description EURO for gropdf

Looks like we should use a consistent quotation practice here.

As noted by Deri and me recently, under "Configuration A",[1] these
warnings are expected when gropdf's feature service level is "basic".

gropdf(1):
   Feature service levels and URW font support
...
     •  Basic service results when gropdf cannot locate all 35 fonts of
        the PostScript Level 2 standard.  Only the base 14 fonts of the
        PDF standard are available, and only in the sense that the
        formatter can use their metrics (copied from grops font
        descriptions as described above).  Use of the -e option to embed
        fonts in the generated PDF results in an error.

> troff: backtrace: 'an.tmac':832: macro 'I'
> troff: backtrace: file 'src/utils/afmtodit/afmtodit.1':230
> troff:src/utils/afmtodit/afmtodit.1:230: warning [page 1, line 129]: cannot 
> adjust line; underset by 1n
> troff: backtrace: file 'src/preproc/eqn/eqn.1':175
> troff:src/preproc/eqn/eqn.1:175: warning [page 1, line 664]: cannot adjust 
> line; underset by 3n
> troff: backtrace: file 'src/preproc/eqn/eqn.1':178
> troff:src/preproc/eqn/eqn.1:178: warning [page 1, line 666]: cannot adjust 
> line; underset by 1n

These warnings happen because groff's installation directory gets
interpolated into man page text, and under the nixpkgs regime, these
directory names are what Mike Myers would call "frickin' 'uge".

...or so I infer from your configuration summary.

GNU roff version 1.24.0.rc4 configuration summary
----------------------------------------------------------------------
 installation directory prefix    : 
/nix/store/77hifs4jfmpsf4w6bjdhgg8dd9am6mhm-groff-1.24.0.rc4

These "underset" warnings can be disregarded; just wanted to mention it.

> troff: backtrace: file 'man/groff_char.7':1060
> troff:man/groff_char.7:1060: warning: special character '.j' not defined
> troff: backtrace: file 'man/groff_char.7':1466
> troff:man/groff_char.7:1466: warning: special character 'vA' not defined
> troff: backtrace: file 'man/groff_char.7':1596
> troff:man/groff_char.7:1596: warning: special character 'bs' not defined
> troff: backtrace: file 'man/groff_char.7':1769
> troff:man/groff_char.7:1769: warning: special character '-+' not defined
> troff: backtrace: file 'man/groff_char.7':1818
> troff:man/groff_char.7:1818: warning: special character 'coproduct' not 
> defined
> troff: backtrace: file 'man/groff_char.7':1918
> troff:man/groff_char.7:1918: warning: special character '+e' not defined

If some kind soul contributes a small font to _groff_, they'd fix

https://savannah.gnu.org/bugs/?62932

...and these warnings.

> troff: backtrace: file 'tmac/groff_mdoc.7':5331
> troff:tmac/groff_mdoc.7:5331: warning [page 318, 2.1i]: cannot adjust line; 
> underset by 0.717639i

Same issue as above, but for a typesetter rather than a terminal.

> ===========================================
>    GNU roff 1.24.0.rc4: ./test-suite.log
> ===========================================
> 
> # TOTAL: 313
> # PASS:  295
> # SKIP:  13
> # XFAIL: 4
> # FAIL:  1
> # XPASS: 0
> # ERROR: 0

That's more skippin' than I'm used to seeing, but I'm not alarmed.  In
my working copy I have some changes to try and ensure that in _every_
case, a skipped test discloses the precise reason it's doing so.  I
didn't notice any omissions thereof in your log, though, which is good.

[rearranging]
> XFAIL: src/roff/groff/tests/current-language-and-environment-in-sync.sh
> =======================================================================
> 
> 1 en=en
> 2 (empty)=en
> 3 fr=fr
> 4 en=fr
> 5 fr=fr
> 6 (empty)=fr
> 7 de=de
> 8 (empty)=de
> 9 de=de
> A fr=de
> B en=de
> C (empty)=de
> D fr=de
> E (empty)=de
> F en=en
> verifying that language code on startup is 'en'
> verifying that language code in new environment is empty (1)
> ...FAILED
> verifying that language code can be set to 'fr'
> verifying that language code reverts on environment pop (1)
> ...FAILED
> verifying that language code restored on environment push (1)
> verifying that language code in new environment is empty (2)
> ...FAILED
> verifying that language code can be set to 'de'
> verifying that language code in new environment is empty (3)
> ...FAILED
> verifying that language code restored on environment pop (2)
> verifying that language code restored on environment pop (3)
> ...FAILED
> verifying that language code restored on environment pop (4)
> ...FAILED
> verifying that language code in new environment is empty (4)
> ...FAILED
> verifying that `evc` request copies language code
> ...FAILED
> verifying that empty language code restored on environment push
> ...FAILED
> verifying that assertion holds when using `hla` request
> XFAIL src/roff/groff/tests/current-language-and-environment-in-sync.sh (exit 
> status: 1)

This horror show will be fixed when I can get Peter's buy-in to one of
my GNU troff language reforms.  :D

https://savannah.gnu.org/bugs/?66387

> FAIL: src/preproc/preconv/tests/smoke-test.sh
> =============================================
> 
> testing -e flag override of BOM detection
> testing detection of UTF-32BE BOM
> testing detection of UTF-32LE BOM
> testing detection of UTF-16BE BOM
> testing detection of UTF-16LE BOM
> testing detection of UTF-8 BOM
> testing detection of Emacs coding tag in piped input
> testing uchardet detection on pipe (expect fallback to -D)
> testing fallback to locale setting in environment
> ...FAILED
> FAIL src/preproc/preconv/tests/smoke-test.sh (exit status: 1)

Okay, let me have a look at what that's doing.

[time passes]

This looks like a legitimate failure; it's a case of me not knowing what
to do.

Here's the code:

---snip---
# Fall back to the locale.
#
# On glibc systems, the 'C' locale uses "ANSI_X3.4-1968" for the
# character set, but preconv assumes Latin-1 instead of US-ASCII.
#
# On non-glibc systems, who knows?  But at least some use UTF-8.

if [ -n "$has_glibc" ]
then
    charset=ISO-8859-1
else
    charset=UTF-8
fi

echo "testing fallback to locale setting in environment" >&2
printf 'Eat at the caf\351.\n' \
    | "$preconv" -d 2>&1 > /dev/null \
    | grep -q "encoding used: '$charset'" || wail
---end snip---

Earlier in your log, when "configure" is running, we have this:

checking whether we are using the GNU C Library >= 2.1 or uClibc... no

Okay, please run that printf(1) command in your build environment and
tell me what you get.  The script `export LC_ALL=C`'s earlier, so you
should do similar.

$ LC_CALL=C printf 'Eat at the caf\351.\n'

I don't know what to expect from your system's libc.  I'd like to.

What _is_ your libc vendor, by the way?  Is there an idiomatic way to
test for its identity?

Regards,
Branden

[1] https://lists.gnu.org/archive/html/groff/2026-02/msg00036.html

Attachment: signature.asc
Description: PGP signature

Reply via email to