Re: a morsel of groff 1.23.0 status

2023-07-06 Thread Deri
On Thursday, 6 July 2023 02:02:39 BST Peter Schaffter wrote:
> On Wed, Jul 05, 2023, Dave Kemper wrote:
> > On 7/5/23, G. Branden Robinson  wrote:
> > > May I be excused some
> > > pride in our delivery of over 400 bug fixes and 150 automated tests?
> > 
> > Fully justified.  I'm glad it's finally out in the world.  Thank you
> > for your tireless work in making groff more featureful, more portable,
> > better documented, and less buggy.
> 
> Hear, hear!

Well done.






Re: a morsel of groff 1.23.0 status

2023-07-06 Thread John Gardner
Bravo to everybody involved!!

Seriously, I can't express just how good it feels to see a long-awaited
release finally be published to the world. :)

On Thu, 6 July 2023, 8:12 am G. Branden Robinson, <
g.branden.robin...@gmail.com> wrote:

> At 2023-07-05T23:31:54+0200, Bertrand Garrigues wrote:
> > I've pushed tag 1.23.0 and published the archive on
> > https://ftp.gnu.org/gnu/groff/
>
> Rock and roll, and good times!
>
> > For the announcement email I'll send the mail to info-...@gnu.org as you
> > don't have the official maintainer title yet.
>
> Ah!  If I had known it was sender-restricted, I'd forgotten.
>
> > There are some guidelines
> > to follow [1], basically a short presentation, then were to get the
> > soft, then the NEWS file.
>
> I see--I hadn't actually read that section before.  I do note that it
> says only what should be included, and doesn't discourage us from saying
> more, which my announcement template admittedly does.
>
> > You can see my previous announcement here [2], I intend to write
> > something similar and mentioning you as the lead developer.  Do you
> > see any important things to add?
>
> If what I'm using as a template in the ANNOUNCE file[A] doesn't fit what
> you want to say, then I'd suggest adding the following, though I don't
> insist on either of them.
>
> 1.  Use the description of groff that is now synchronized between our
> home page, Texinfo manual, and man pages.
>
> ---
> 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.
> ---
>
> 2.  Incorporate the "Changes" section from the "ANNOUNCE" file.  I think
> it useful for at least two reasons: it summarizes the gigantic
> amount (nearly 700 lines) of "NEWS" for this release; it underscores
> the emphasis on quality of implementation.  May I be excused some
> pride in our delivery of over 400 bug fixes and 150 automated tests?
>
> I do grant that if you include both of the above, a modification of
> your 1.22.4 release announcement will look more like than unlike the
> "ANNOUNCE" template.
>
> The writing of promotional copy is not my strong suit, but my concern
> here is to ensure that users of groff 1.22.4 are not lacking reasons to
> upgrade, so I think it is worth going to a little trouble to flog
> 1.23.0's advantages: not just more features, but more testing, more
> documentation, and a better quality of life for our community.
>
> (On that high note, I should probably go re-watch _Glengarry Glen Ross_
> to remind myself what salesmen are really like...)
>
> Above all, _thank you_ for being the groff maintainer and working to
> make this release possible!  Let me know what sort of fermented or
> distilled beverage you enjoy.  :)
>
> > [1] https://www.gnu.org/prep/maintain/html_node/Announcements.html
> > [2] https://lists.gnu.org/archive/html/info-gnu/2018-12/msg00015.html
>
> Best regards,
> Branden
>
> [A]
> https://git.savannah.gnu.org/cgit/groff.git/tree/ANNOUNCE?id=198346d187de9e340bbf9d4f80c2dc4d42f5f74e
>


Re: [TUHS] Re: symbols in eqnchar

2023-07-06 Thread Damian McGuckin



Branden,

In an earlier lifetime, my very smart colleague Weeks White implemented a 
fudged version of 'eqn' which interpreted a line


.SO file

which was NOT between .EQ and .EN. The file was a legal troff input file 
which normally contained .EQ/.EN blocks (among other things). This file 
was pulled directly into the EQN input stream.


Another approach.

Thanks - Damian



groff online manuals updated for 1.23.0 release

2023-07-06 Thread G. Branden Robinson
Hi folks,

I've updated the groff home page.  Yesterday, to reflect the release;
today, to update the online copies of our Texinfo manual and to add the
collected groff man pages.

You can have a look at:

https://www.gnu.org/software/groff/manual/

The groff home page is managed in CVS; dealing with CVS consistently
reminds me how much more pleasant Git is to work with.  Here's a
condensed digest of changes.

---
groff online manual: Update and revamp.

* Do less by hand.
  - Add Makefile.
  - Create index.html from index.html.in.
  - Get file sizes from system.

* Drop PostScript version of manual; groff 1.23.0 doesn't generate it.

* Rename "groff.html_node.tar.gz" to "groff.html.node.tar.gz" to match
  current practice in the groff build.

* Replace "groff.texi.tar.gz" with "groff.texi.gz"; there's no point
  having a single-file tape archive.

* Provide our Texinfo in source form as well (plain and compressed).

* Update descriptions of documentation files.  Most importantly,
  describe plain texi version of our Texinfo manual as encoded in "ISO
  Latin-1" instead of "ASCII", which was incorrect.
---
manual: Add groff man page collection.
---
manual/index.html*: Fix ugly markup.
---

Regards,
Branden


signature.asc
Description: PGP signature


Re: early adopters of groff 1.23.0

2023-07-06 Thread Sam James


"G. Branden Robinson"  writes:

> [[PGP Signed Part:Undecided]]
> Hi folks,
>
> I'm pleased to see that even in the absence of an official announcement
> (so far), distributors are getting their hands on the still piping-fresh
> groff 1.23.0 release.
>
> Over the course of the release cycle, I've kept my eye on repology.org
> to see who's been taking up the release candidates.  That monitoring has
> not been wholly disappointing, but it has underscored the importance of
> producing official releases.  No matter how solid your code quality,
> many people will not take up your work until you pronounce it "ready".
>
> I'd like to recognize the following distributions for moving fast.
>
> * Alpine Linux Edge
> * Carbs Linux
> * Gentoo
> * KaOS Build
> * Termux

Thank you! We've indeed been testing the RCs too, although we made
them opt-in for users.

And thank you all for the new groff release! I know it was a massive
push to get here.



Re: early adopters of groff 1.23.0

2023-07-06 Thread Alexis
Hello all,

after having tested the RCs on darwin nixpkgs for the past weeks
and seeing the message about the 1.23.0 source archive being available
I felt the time was right to create a GitHub Pull-Request¹ and update
the groff package on NixOS and nixpkgs.

Folks reviewing said PR have reported potentially related man-db
test failures caused by:

  grotty::():9: warning:
  unrecognized X command 'sgr 0' ignored

which might be due to bug #61561:

  [grotty] remove 'sgr' device control command²

Does anyone have more context on this and is willing to share
their take on it and how to possibly fix the test failures
should they be related to the update to groff 1.23.0?


Regardless of any NixOS/nixpkgs related woes:
Thank you for all the work and effort put into the release!!


Best
Alexis

¹ https://github.com/NixOS/nixpkgs/pull/241870
² https://savannah.gnu.org/bugs/?61561



Re: a morsel of groff 1.23.0 status

2023-07-06 Thread Bertrand Garrigues
Hi Branden,

On mer., juil. 05 2023 at 05:11:37 , "G. Branden Robinson" 
 wrote:
[...]
> If what I'm using as a template in the ANNOUNCE file[A] doesn't fit what
> you want to say, then I'd suggest adding the following, though I don't
> insist on either of them.

Ah, I've completely forgotten your ANNOUNCE file... 

[...]
> I do grant that if you include both of the above, a modification of
> your 1.22.4 release announcement will look more like than unlike the
> "ANNOUNCE" template.
>
> The writing of promotional copy is not my strong suit, but my concern
> here is to ensure that users of groff 1.22.4 are not lacking reasons to
> upgrade, so I think it is worth going to a little trouble to flog
> 1.23.0's advantages: not just more features, but more testing, more
> documentation, and a better quality of life for our community.

The ANNOUNCE file fits perfectly well to the job, so I'll use it.  I'll
just swap the 1st and 2nd paragraph (normal people usually want to know
what the software is about before actually downloading it).

> (On that high note, I should probably go re-watch _Glengarry Glen
> Ross_ to remind myself what salesmen are really like...)

> Above all, _thank you_ for being the groff maintainer and working to
> make this release possible!  Let me know what sort of fermented or
> distilled beverage you enjoy.  :)

Well both, I've allowed myself a drop of Armagnac (it's like cognac, but
even better) and brewed a cup of Taiwanese Oolong (semi-fermented)
tea... Cheers!

The announcement will be sent in a few minutes.

Regards,
Bertrand



Groff version 1.23.0

2023-07-06 Thread Bertrand Garrigues
We are pleased to announce the availability of groff 1.23.0.

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/


Download


Obtain it from the GNU mirror network,

  https://ftpmirror.gnu.org/groff/groff-1.23.0.tar.gz

or, if the network is for some reason inoperative, directly from GNU

  https://ftp.gnu.org/gnu/groff/groff-1.23.0.tar.gz

Ensure the integrity of your download by checking this source code
archive's cryptographic signature; see "Obtaining groff" below.


Changes
===

Changes since the most recent release candidate, 1.23.0.rc4, comprise
about 200 commits' worth of changes to documentation, including over
1,000 lines of updates to each of doc/groff.texi (our Texinfo manual)
and the man pages groff_mm(7) and eqn(1).

Since groff 1.22.4 was released in December 2018, 28 people have made a
total of over 4,500 commits:

14  Bertrand Garrigues
14  Bjarni Ingi Gislason
 2  Bruno Haible
 6  Colin Watson
 1  Cynthia A. E. Livingston
 1  Damian McGuckin
31  Dave Kemper
29  Deri James
 2  Dorai Sitaram
 1  Edmond Orignac
 1  Eric Allman
  4778  G. Branden Robinson
 1  George HELFFRICH
33  Ingo Schwarze
 1  John Gardner
 4  Keith Bostic
25  Keith Marshall
 2  Michael J. Karels
 1  Nate Bargmann
 3  Nikita Ivanov
 1  Paul Eggert
71  Peter Schaffter
 1  Samanta Navarro
 1  T. Kurt Bond
 3  Tadziu Hoffmann
 1  Thomas Dupond
 2  ivan tkachenko
 1  наб

(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 431 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  102
  Crash/unresponsive   11   Driver: grohtml 7
  Documentation   111   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: devpdf1
  Test  6   Font: devps 3
  Warning/suspicious behavior  67   Font: others/general4
General51
Macros: man33
Macros: mdoc   15
Macros: me 36
Macros: mm 20
Macros: mom11
Macros: ms   

unrecognized X command 'sgr 0' ignored (was: early adopters of groff 1.23.0)

2023-07-06 Thread G. Branden Robinson
[looping in Colin Watson for man-db test suite advice]

Hi Alexis,

At 2023-07-06T23:34:20+0200, Alexis wrote:
> after having tested the RCs on darwin nixpkgs for the past weeks
> and seeing the message about the 1.23.0 source archive being available
> I felt the time was right to create a GitHub Pull-Request¹ and update
> the groff package on NixOS and nixpkgs.

Definitely.  Thank you!

> Folks reviewing said PR have reported potentially related man-db
> test failures caused by:
> 
>   grotty::():9: warning:
>   unrecognized X command 'sgr 0' ignored
> 
> which might be due to bug #61561:
> 
>   [grotty] remove 'sgr' device control command²

I think that is relevant but not the whole story.

> Does anyone have more context on this and is willing to share
> their take on it and how to possibly fix the test failures
> should they be related to the update to groff 1.23.0?

I built man-db 2.11.2 from its Git repo on my GNU/Linux amd64 box with
groff 1.23.0 in my $PATH and did not get this test failure.  I got a
different one.

FAIL: man1/lexgrog.1


man -E UTF-8 -l ./man1/lexgrog.1 produced error output:
troff::136: warning: cannot select font 'CW'
troff::160: warning: cannot select font 'CW'
troff::170: warning: cannot select font 'CW'
troff::171: warning: cannot select font 'CW'
troff::180: warning: cannot select font 'CW'
FAIL man1/lexgrog.1 (exit status: 1)

All other tests passed.

I regard the foregoing as a problem with the man page; the font name
"CW" is not portable; in fact, it is meaningless on terminal devices.

People/distributors can put the following into man.local to work around
it if they expect a lot of man pages to cause this issue.

.if n .ftr CW R

These are only warnings, so they are _not_ fatal to man page
rendering--it is this test script deciding to fail because diagnostics
are appearing).

To get back to the problem you reported, that's mysterious to me.  I
don't see anything in man-db explicitly constructing device control
command escape sequences that would cause this "unrecognized X command
'sgr 0' ignored" warning.

But what _could_ do it is if, somehow, GNU troff 1.22.4 or earlier is
being used to produce output and grotty from groff 1.23.0 is being used
to consume it.  It's tempting to blame a manually constructed pipeline
for that, and I think man-db man(1) constructs one, but it's hard for me
to account for how desynchronized versions of troff and grotty are being
found in the same $PATH.  So that may not be what's happening.

I hope Colin Watson can offer us a clue here.

> ¹ https://github.com/NixOS/nixpkgs/pull/241870
> ² https://savannah.gnu.org/bugs/?61561

Regards,
Branden


signature.asc
Description: PGP signature


Re: a morsel of groff 1.23.0 status

2023-07-06 Thread G. Branden Robinson
Hi Bertrand,

At 2023-07-07T00:31:57+0200, Bertrand Garrigues wrote:
> Ah, I've completely forgotten your ANNOUNCE file... 

If it helps, I'm attaching a copy of what I used to announce the release
to the Debian bug tracking system.

> The ANNOUNCE file fits perfectly well to the job, so I'll use it.
> I'll just swap the 1st and 2nd paragraph (normal people usually want
> to know what the software is about before actually downloading it).

Yes--I dithered over that.  The release per se is the "news" item and
should be the "lede" in journalistic parlance, but for the reader who
doesn't know what "groff" is, such a lede is not enlightening.

> Well both, I've allowed myself a drop of Armagnac (it's like cognac,
> but even better) and brewed a cup of Taiwanese Oolong (semi-fermented)
> tea... Cheers!

Very nice!  I sent a friend of mine a bottle of Armagnac when he got his
Ph.D.-- but I've still never had any!  But I don't sip cognac often--I
like it, but it's pretty sweet.  20 years ago, 2 fellow Debian
developers, of whom Colin Watson was one, introduced me to the joys of
single-malt Scotch...

Best regards,
Branden


signature.asc
Description: PGP signature


Re: a morsel of groff 1.23.0 status

2023-07-06 Thread G. Branden Robinson
[remembering the attachment his time]
We are pleased to announce the availability of groff 1.23.0.  Obtain it
from the GNU mirror network,

  https://ftpmirror.gnu.org/groff/groff-1.23.0.tar.gz

or, if the network is for some reason inoperative, directly from GNU.

  https://ftp.gnu.org/gnu/groff/groff-1.23.0.tar.gz

Ensure the integrity of your download by checking this source code
archive's cryptographic signature; see "Obtaining groff" below.

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
===

Changes since the most recent release candidate, 1.23.0.rc4, comprise
about 250 commits' worth of changes to documentation, including over
1,000 lines of updates to each of doc/groff.texi (our Texinfo manual)
and the man pages groff_diff(7), groff_mm(7), and eqn(1).

Since groff 1.22.4 was released in December 2018, 28 people have made a
total of over 5,000 commits.

$ git shortlog --summary 1.22.4..1.23.0
14  Bertrand Garrigues
14  Bjarni Ingi Gislason
 2  Bruno Haible
 6  Colin Watson
 1  Cynthia A. E. Livingston
 1  Damian McGuckin
31  Dave Kemper
29  Deri James
 2  Dorai Sitaram
 1  Edmond Orignac
 1  Eric Allman
  4778  G. Branden Robinson
 1  George HELFFRICH
33  Ingo Schwarze
 1  John Gardner
 4  Keith Bostic
25  Keith Marshall
 2  Michael J. Karels
 1  Nate Bargmann
 3  Nikita Ivanov
 1  Paul Eggert
71  Peter Schaffter
 1  Samanta Navarro
 1  T. Kurt Bond
 3  Tadziu Hoffmann
 1  Thomas Dupond
 2  ivan tkachenko
 1  наб

(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 432 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  102
  Crash/unresponsive   11   Driver: grohtml 7
  Documentation   111   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: devpdf1
  Test  6   Font: devps 3
  Warning/suspicious behavior  67   Font: others/general4
General51
Macros: man33
Macros: mdoc   15
Macros: me 36
Macros: mm 20
Macros: mom