[[ maintainer: Send to platform-testers for betas/RCs, info-gnu for releases, and CC groff and linux-man@vger.kernel.org for both. ]] groff 1.23 release candidate 4, 1.23.0.rc4, is now available from GNU's alpha site. You may download the distribution archive from there. https://alpha.gnu.org/gnu/groff/ What is groff? ============== groff (GNU roff) is a typesetting system that reads plain text input files that include formatting commands to produce output in PostScript, PDF, HTML, or DVI formats or for display to a terminal. Formatting commands can be low-level typesetting primitives, macros from a supplied package, or user-defined macros. All three approaches can be combined. A reimplementation and extension of the typesetter from AT&T Unix, groff is present on most POSIX systems owing to its long association with Unix manuals (including man pages). It and its predecessor are notable for their production of several best-selling software engineering texts. groff is capable of producing typographically sophisticated documents while consuming minimal system resources. https://www.gnu.org/software/groff/ Changes ======= [[ maintainer: Document changes since RC4 here. ]] Since groff 1.22.4 was released in December 2018, 28 people have made a total of over 4,500 commits. [[ maintainer: Insert output of "git shortlog --summary 1.22.4..1.23.0.rc4" ]] (Some possibly surprising names in the above are due to a rebase of groff me(7) against 4.4BSD.) Headline features nominated by our development community include: * a new 'man' macro, "MR", for formatting man page cross references; * hyperlinked text in terminals via the ECMA-48 OSC 8 escape sequence; * a new 'rfc1345' macro package, contributed by Dorai Sitaram, enabling use of RFC 1345 mnemonics as groff special characters; * a new 'sboxes' macro package, contributed by Deri James, enabling 'ms' documents to place shaded and/or bordered rectangles underneath any groff page elements (PDF output only); * 'mom' 2.5, a macro package contributed by Peter Schaffter; * the 'ms' package's new strings to assist subscripting; * Italian localization, including hyphenation patterns and macro package string translations, thanks to Edmond Orignac; and * new hyphenation patterns for English. For more on these and other feature changes, see "News" below. Much attention has been given to fixing bugs, improving diagnostic messages, and correcting and expanding documentation. The previous release shipped with three automated unit tests; this one ships with over 160 unit and regression tests. As of this writing, per the GNU Savannah bug tracker, the groff project has resolved 426 problems as fixed for the 1.23.0 release. Some of the bugs we've corrected were over 30 years old. Classifying these issues by type and the component of the project to which they apply, we find the following. Type Component ---- --------- Build/installation 39 Core 100 Crash/unresponsive 11 Driver: grohtml 7 Documentation 106 Driver: gropdf 10 Feature change 41 Driver: grops 2 Incorrect behavior 131 Driver: grotty 4 Lint 15 Driver: others/general 7 Rendering/cosmetics 10 Font: devpdf 1 Test 6 Font: devps 3 Warning/suspicious behavior 67 Font: others/general 4 General 49 Macros: man 33 Macros: mdoc 15 Macros: me 36 Macros: mm 20 Macros: mom 11 Macros: ms 28 Macros: other/general 27 Preprocessor: eqn 5 Preprocessor: grn 3 Preprocessor: pic 5 Preprocessor: preconv 7 Preprocessor: refer 3 Preprocessor: tbl 23 Preprocessor: others/general 5 Utilities 18 Another way of capturing the amount of revision is as follows. $ git diff --stat 1.22.4 1.23.0.rc4 | tail -n 1 [[ maintainer: insert output ]] Obtaining groff =============== Here are the compressed sources and a GPG detached signature[*]. [[ maintainer: insert .tar.gz URL ]] [[ maintainer: insert .tar.gz.sig URL ]] [[ maintainer: include the following for final release: Use a mirror for higher download bandwidth. https://ftpmirror.gnu.org/groff/groff-1.23.0.tar.gz https://ftpmirror.gnu.org/groff/groff-1.23.0.tar.gz.sig ]] Here are the SHA-1 and SHA-256 checksums. xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx groff-1.23.0.rc4.tar.gz yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy groff-1.23.0.rc4.tar.gz The SHA-256 checksum is encoded in Base64 instead of the hexadecimal form that most checksum tools default to. The mechanism follows. sha256sum < groff-1.23.0.rc4.tar.gz | cut -f1 -d\ | xxd -r -p | base64 [*] Use a .sig file to verify that the corresponding file (without the .sig suffix) is intact. First, be sure to download both the .sig file and the corresponding archive. Then, verify the archive. gpg --verify groff-1.23.0.rc4.tar.gz{.sig,} If that command fails because you don't have the required public key, you can import it. wget -O 96214.asc \ 'https://savannah.gnu.org/people/viewgpg.php?user_id=96214' gpg --import 96214.asc Re-run the 'gpg --verify' command subsequently. Caveats ======= o Some portability issues are known to affect groff's gdiffmk utility. A defect in GNU diffutils 3.9 (January 2023) causes gdiffmk to malfunction and its automated test to fail. See . gdiffmk does not work with BusyBox diff (which does not implement GNU diff's "-D" option). gdiffmk does not work on FreeBSD due to specifics of that platform's expr(1) implementation. o 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. o Solaris 10 has known problems with automated tests; see the "PROBLEMS" file in the distribution archive. o There is a problem building on "newlib"-using systems when X11 support is enabled; see the "PROBLEMS" file in the distribution archive. o The build is known to not work with the MSVC compiler. There are no plans to address this before C23 standardized attributes become available. News ==== [[ maintainer: insert output of "sed -n '/VERSION 1\.23/{n;:X;n;/VERSION 1\.22/q;p;bX}' NEWS" ]] Acknowledgements ================ We'd like to thank the following people for helping ensure the quality of this release. [[ maintainer: Collect "thanks to" credits from the ChangeLog file, for instance with "grep -i -A1 thanks ChangeLog". A manual merge of similar from the contrib/ change log files may also be necessary. ]] "hackerb9" Alan D. Salewski Alex Colomar Alexander Kanavin Alexis Andreas Kusalananda Kähäri Axel Kielhorn Ben Wong Bertrand Garrigues Bjarni Ingi Gislason Blake McBride Brian Inglis Bruno Haible Colin Watson Dale Snell Dave Kemper Deri James Dorai Sitaram Doug McIlroy Florent Rougon Gene Hans Bezemer Ingo Schwarze Jeff Conrad Jeremy Puhlman John Gardner KUBO Koichi Keith Marshall Ken Mandelberg Nikita Ivanov Oliver Corff Olle Lögdahl Osamu Sayama Peter Schaffter Petru-Florin Mihancea Quentin Monnet Raf Czlonka Rafal Pietrak Ralph Corderoy Robert Bihlmeyer Robert Goulding Russ Allbery Sergei Trofimovich Steffen Nurpmeso T. Kurt Bond Tadziu Hoffman Thomas Dupond Werner Lemberg Wim Stockman наб