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

Attachment: signature.asc
Description: PGP signature

    • ... G. Branden Robinson
      • ... Bruno Haible via discussion of the GNU roff typesetting system and related software
  • ... Bruno Haible via discussion of the GNU roff typesetting system and related software
  • ... Bruno Haible via discussion of the GNU roff typesetting system and related software
  • ... Bruno Haible via discussion of the GNU roff typesetting system and related software
  • ... Bruno Haible via discussion of the GNU roff typesetting system and related software
    • ... G. Branden Robinson
      • ... Bruno Haible via discussion of the GNU roff typesetting system and related software
        • ... G. Branden Robinson
          • ... Bruno Haible via discussion of the GNU roff typesetting system and related software
    • ... G. Branden Robinson
      • ... Bruno Haible via discussion of the GNU roff typesetting system and related software
        • ... G. Branden Robinson

Reply via email to