Re: groff 1.25.0.rc2 on Solaris 11.4

"G. Branden Robinson" <[email protected]>
Newsgroups gmane.comp.printing.groff.general
Message-ID <20260806150458.jn5mnljtryh2wxq2@illithid>
Hi Bruno,

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.

Right.  I have not been in the habit of generating test scripts at
configuration time from '*.in' files that we ship.

The better part of a decade ago when I started establishing patterns for
myself in writing test scripts for groff, I underestimated just how
poor Solaris's POSIX conformance was/is.

> If I place a symlink <somedir>/grep -> /usr/bin/ggrep in a directory
> in $PATH, the build succeeds with no test failures.

It's a big lift to migrate 200+ test scripts to configure-time
generation process--obviously we'll want to do it in a mostly automated
manner--so I propose to document this issue in the release notes, where
we already caution the reader about Solaris.

Caveats
=======

*  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 has known problems with automated tests; see the
   "PROBLEMS" file in the distribution archive.

The PROBLEMS file says this:

----------------------------------------------------------------------

* I get a make(1) failure involving grep and the groff_man.7.man.in file
  on Solaris 11.

Solaris make(1) has a bug easily exhibited by the following Makefile.

all:
        ! false

Use GNU make instead; it may be available in /opt/csw/bin/gmake.

----------------------------------------------------------------------

* 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 building groff.

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]

----------------------------------------------------------------------

The issue you've reported sounds like it could feature in an expansion
of the last item above.

I have access to only one Solaris 11 system, that being the FSF Europe's
compiler farm.  Not sure why I didn't notice before.  Maybe that system
takes steps to protect the user from Solaris 11's crappy grep.

Or maybe my tip about the $PATH makes the difference?

Regards,
Branden
signature.asc (application/pgp-signature, 833 B)
-----BEGIN PGP SIGNATURE-----

iQIzBAABCAAdFiEEh3PWHWjjDgcrENwa0Z6cfXEmbc4FAmp0opIACgkQ0Z6cfXEm
bc70vRAAlzXkZ1pKS1w2VrcYeRbkCTZS9nB9oKz45dE9/akl3BFxXxwHGnhZk6sl
rSQFXcIE9d0ZjgNMXUjoqCGPAVPLUHTB+5pR8XMeotDGD88cUguiO6fh4Uojm+Y6
lcA/VcEmo4N0aC+ISSNLaw2LCEQtPe0xwmz3yTdhH6a4cRHt2zgHXJZ/QH9icLL3
ARKoVRj9zL/D+3xt+uKU7wEiQaV5CczOlC5HKDV/qD4c4F44Pka/Qwp2Fz38QzzY
D2M9vTkOc9j71FqxfLYeBg4uWNQiSJetlWXrQPiqhxS7suNI00w+Qnya2KFzwUDR
fMOR6kSG5sSz3eMyPG/prwJg3eYEIzF63jvKr4+5cW1+zocCNTBSMTsQClvo9ba3
EH8M8zLUx0Ld6fF8GvG02F9tO1hecUeweP8KSsdAw4oAIyPJ3xyNpdniuH6ufn8e
VhiXOORzcNsELilzhTwBkqkT0nkmq6pQxvI3gbdBrisK2HZoid+gP2KQgvgABjWR
ulnyeitZm/4tnxvrWv1GiwgSsgahatG9GdUu7bR1B4tM0ApUF2Jf+ImNmpmZuB89
B25GE0plX/fGd9E4ToYDidGpkBCnPur/CQBn013wvkXhgAG6qLF+Uh49lbsf4c/K
7a5NpyHaO4jMWFSoGL1e4/muzNDO+35JniFPws4PobYmXrXwYDA=
=T8q6
-----END PGP SIGNATURE-----
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.