summaryrefslogtreecommitdiff
path: root/ANNOUNCE
blob: 8fe16cc05c78a7c20a753ce244cea023f0aaa9ff (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
[[ 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
  <https://debbugs.gnu.org/db/61/61193.html>.

  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
наб