Hi Bruno, I've finally gotten access to a Solaris 11 machine again.
After disposing of some unrelated problems, and managing to get the
build to work with Solaris's geriatric /usr/bin/make in the bargain, I
was able to get the full test suite to pass.
At 2026-08-03T20:14:24+0200, Bruno Haible wrote:
> On Solaris 11.4, 203 tests fail.
>
> All of them because they use 'grep' and the Solaris /usr/bin/grep is
> old. But there is also /usr/bin/ggrep, which is GNU grep version 3.1.
> In fact, config.status contains two AC_SUBSTed variables:
> grep -> "/usr/bin/ggrep"
> egrep -> "/usr/bin/ggrep -E"
> But the test suite appears to not use these variables.
>
> If I place a symlink <somedir>/grep -> /usr/bin/ggrep in a directory
> in $PATH, the build succeeds with no test failures.
I have an "easier" solution. It was already covered in the "ANNOUNCE"
and "PROBLEMS" files.
$ sed -n 191,203p ANNOUNCE
Caveats
=======
* To build groff on Solaris 11.4, you must pass the option
`--disable-dependency-tracking` to its "configure" script, or use GNU
Make, for example with `./configure MAKE=gmake`.
* GNU tools, or otherwise POSIX-conforming ones, are generally required
to build on Solaris 10 or 11. See the "PROBLEMS" file in the
distribution archive.
* Solaris 10 and 11 have known problems with automated tests; see the
"PROBLEMS" file in the distribution archive.
$ sed -n 919,940p PROBLEMS
* Tests fail when I run "make check" on Solaris 10 or 11.
The test suite expects a POSIX-conforming shell and utilities. Solaris
10 does not offer these in the default $PATH. We try to use features
standardized no later than POSIX Issue 4 (1994). Unfortunately even
that is too recent for some implementations. Solaris 11 has a (mostly)
conforming shell. It may help to ensure that "/usr/xpg6/bin" and
"/usr/xpg4/bin" precede "/usr/bin" in the $PATH when making this target.
$ PATH=/usr/xpg6/bin:/usr/xpg4/bin:$PATH make check
For Solaris 10, it is necessary to modify the shell-based test scripts
in place to use a conforming shell. Here is an example.
$ gsed -i -e '1s@#!/bin/sh@#!/usr/xpg4/bin/sh@' \
`find . -name '*.sh' | egrep '/(examples|tests)/'`
$ gsed -i -e '1s@#!/bin/sh@#!/usr/xpg4/bin/sh@' \
`find . -name '*.sh.in' | egrep '/(examples|tests)/'`
$ PATH=/usr/xpg4/bin:$PATH gmake check
[POSIX.1-2024 has withdrawn specification of egrep(1) but Solaris 10
doesn't support `grep -E`. --GBR in 2026]
I've slightly update the language; the above is (perhaps approximately)
what will appear in my next push to groff's "master" branch.
Regards,
Branden
signature.asc
Description: PGP signature
