13607 Commits

Author SHA1 Message Date
G. Branden Robinson
3824c1529b Revert "Makefile.am: Clean up distribution archive."
This reverts commit 9fdb52a9cc805d7d5d42895e5a71b72d64e78e38.

This change was spurious; the correct solution was to roll the
distribution archive _after_ generating the corresponding Git tag, not
before.  Commenting out these variables broke an in-tree "make dist".

Continues fixing <https://savannah.gnu.org/bugs/?67933>.
1.24.0.rc2
2026-01-26 14:10:58 -06:00
G. Branden Robinson
a9d2943005 font/devpdf/devpdf.am: Avoid spurious rebuilds.
* font/devpdf/devpdf.am ($(devpdffont_descriptions_from_devps)
  ($(devpdffontencdata), font/devpdf/SS)
  ($(devpdf_builddir)/symbolsl.afm)
  ($(devpdf_builddir)/symbolsl.pfb, $(devpdffontmapdata)): Copy files
  with `cp -fp`, not just `cp -f`, preventing spurious rebuilds of these
  targets.
2026-01-26 13:47:51 -06:00
G. Branden Robinson
659f3e698c font/devpdf/devpdf.am: Drop unnecessary target.
* font/devpdf/devpdf.am (all): Drop unnecessary phony target.
2026-01-26 13:45:41 -06:00
G. Branden Robinson
5c8b984c64 font/devpdf/devpdf.am: Don't make futile target.
* font/devpdf/devpdf.am [HAVE_URW_FONTS]: Shift conditional so that we
  define a target rule for `$(devpdffont_descriptions_for_urw)` only if
  the `HAVE_URW_FONTS` Automake variable is defined.
2026-01-26 13:44:32 -06:00
G. Branden Robinson
db24bcdde0 font/devpdf/devpdf.am: Tidy up.
* font/devpdf/devpdf.am ($(devpdffont_descriptions_for_urw)): Drop
  interpolations of no-longer-used `DEFAULT_BASE35_FONTS` and
  `URW_BASE35_FONTS` macros.
2026-01-26 13:41:27 -06:00
G. Branden Robinson
644a0f0ee9 [doc]: Quiten build when embeddable fonts absent.
* doc/doc.am: Abstract "-P-e" option to gropdf into new macro,
  `groffmanpagesoption`.  We can't use it if the build is configured
  without URW fonts to embed, so define the macro only if
  `HAVE_URW_FONTS` _and_ `USE_GROPDF`.

  (doc/groff-man-pages.pdf): Interpolate macro instead of hard-coding
  "-P-e".

Fixes noise from build when producing groff-man-pages.pdf without
gropdf's "full service" support level (see gropdf(1)).
2026-01-26 13:39:13 -06:00
G. Branden Robinson
93957c377c [groff]: Fix test script printf portability goof.
GNU printf unfortunately Does What It Thinks You Meant, instead of
slapping your wrist and making you write portable format strings.
2026-01-26 13:36:45 -06:00
G. Branden Robinson
3c47d13ec0 src/preproc: Make test scripts more robust.
...against host's locale-related environment variable defaults.

Also issue the octal-dumped output to the error stream, since otherwise
problems might be invisible.
2026-01-26 13:36:45 -06:00
G. Branden Robinson
77c87f20d7 src/preproc: Revise copyright notices.
...in test scripts.

Identify myself as the copyright holder.  I've never executed copyright
assignment paperwork with the FSF, so my "legally significant"[1]
origination of these files in 2025 can't be under the FSF's copyright.

[1] "A change of just a few lines (less than 15 or so) is not legally
significant for copyright."  Conversely, >= 15 lines would be.

https://www.gnu.org/prep/maintain/html_node/Legally-Significant.html
2026-01-26 13:36:45 -06:00
G. Branden Robinson
9af53d87c8 src/preproc: Drop ersatz copyright symbol '(C)'.
Software developers have long labored under the no-longer-correct
misconception that omitting a copyright symbol from one's notice was a
fatal defect that effectively placed the work in the public domain.
That stopped being true as of 1 March 1989.[1]  Further, prior to
guidance issued by the U.S. Copyright Office in the decades since, the
use of "(C)" as a substitute for a copyright sign _may not have
sufficed_ to prevent the copyright notice from being regarded as
defective.  The Copyright Office, then and now, prefers the abbreviation
"copr." when © is typographically unavailable.[ibid.]  Nowadays, its
advice is that "c" (note lowercase) is an "acceptable variant", that
_may_ retain the efficacy of the copyright notice.  The word
"copyright", spelled out in full, also suffices per that resource, and
is already present in this notice.

[1] https://www.copyright.gov/circs/circ03.pdf
2026-01-26 13:36:45 -06:00
G. Branden Robinson
91d83019cf src/preproc: Update Vim modelines in test scripts.
Unabbreviate parameters for readability by humans.
2026-01-26 13:36:45 -06:00
G. Branden Robinson
e7882ed3c7 [devpdf]: Make test script more flexible.
* font/devpdf/tests/check-default-foundry.sh.in: Die with "hard error"
  if test script cannot locate the "Foundry" file.  Skip remainder of
  test (for fonts not in the PostScript Level 1/PDF "base 14") if the
  "URW" section of the "Foundry" file is absent.
2026-01-26 13:36:11 -06:00
G. Branden Robinson
da7ce7ccaf [devpdf]: Update Vim modeline in test script.
Unabbreviate parameters for readability by humans.
2026-01-26 13:34:08 -06:00
G. Branden Robinson
cae515adfd [devpdf]: Revise copyright notice in test scripts.
Identify myself as the copyright holder.  I've never executed copyright
assignment paperwork with the FSF, so my "legally significant"[1]
origination of these files in 2022 can't be under the FSF's copyright.

[1] "A change of just a few lines (less than 15 or so) is not legally
significant for copyright."  Conversely, >= 15 lines would be.

https://www.gnu.org/prep/maintain/html_node/Legally-Significant.html
2026-01-26 13:34:08 -06:00
G. Branden Robinson
21b9de7126 m4/groff.m4: Update error messages.
* m4/groff.m4 (GROFF_PERL): Refer to Perl "executable", not "binary";
  whether an executable is an object file is not our concern.  When
  failing because the available version of Perl is too old, report the
  minimum version we require.
2026-01-26 13:34:08 -06:00
G. Branden Robinson
c1c2f46d7d [doc]: Support less than "full service" gropdf.
...when building.

* doc/doc.am: Abstract `-P-W` option to "gropdf" into a new macro,
  `pdfmomoption`, populating it only if, at configuration time, both
  `HAVE_URW_FONTS` and `USE_GROPDF` were enabled.
2026-01-26 13:34:08 -06:00
G. Branden Robinson
dc88d8e496 [devpdf]: Make "BuildFoundries" tolerate warnings.
* font/devpdf/util/BuildFoundries.pl (Warn): Don't set the exit status
  to a nonzero value on warnings.  This script issues quite a few
  warnings at gropdf's "Basic service" level.

The quest for the Goldilocks amount of build discipline continues...

See commit 6198245eac, 24 July.
2026-01-26 13:34:08 -06:00
G. Branden Robinson
60c6cc6ec6 [build]: Add "--without-urw-fonts" option (2/2).
* m4/groff.m4 (GROFF_URW_FONTS_CHECK): Update indentation.

Copyright-paperwork-exempt: yes
2026-01-26 13:34:08 -06:00
G. Branden Robinson
4201c8d106 [build]: Add "--without-urw-fonts" option (1/2).
* m4/groff.m4 (GROFF_URW_FONTS_SUPPORT): New Autoconf macro creates a
  "with" configuration option, permitting the host environment to easily
  switch off the search for URW fonts and defeat all of the consequent
  features without the "configure" script issuing a lengthy warning
  about failure to find the aforementioned fonts.  New shell variable
  `urwfontsupport` indicates the configuration's desired status (which
  still defaults on).

  (GROFF_URW_FONTS_CHECK): Add dependency on the foregoing macro.
  Initialize `urwfontsdir` shell variable to empty unconditionally,
  permitting it to be updated later if the URW font feature isn't
  disabled.  Nest most of the work of this macro inside a conditional on
  `urwfontsupprt`.  Continue to unconditionally populate and
  `AC_SUBST`-itute `groff_have_urw_fonts` and `urwfontsdir`, because
  "configure.ac", "test-mom.sh.in", "mom.am", "font/devpdf/Foundry.in",
  "devpdf.am", and "check-urw-foundry.sh.in" variously rely on them to
  behave appropriately for the configuration.

NEWS: Add item.

This commit omits an indentation update to clarify the change in flow of
control.
2026-01-26 13:34:08 -06:00
G. Branden Robinson
2df1e7c5b7 m4/groff.m4: Update copyright notice (2/2).
Add copyright notice for myself.  I have never executed copyright
assignment paperwork with the FSF, so my "legally significant"[1]
changes to this file can't be under the FSF's copyright.

Justification (year, commit ID, summary, net lines added by commit):

2021 ebc2637532 [configure]: Warn of buggy Ghostscript versions. [+72]
2022 9b9ff77b9e [build]: Use pnmtops's -quiet option if possible. [+17]
2022 faf3bd814f [build]: Add print spooler to ./configure report. [+16]
2022 775ffb8658 m4/groff.m4: Fix code style nits. [+15]
2023 37f7bf4fd2 m4/groff.m4: Fix code style nits. [+16]
2023 9578e1f516 [build]: Fix Savannah #63808 (2/3). [+44]
2023 8316578166 [build]: Detangle pdfroff, gropdf config (2/2). [+40]
2023 3a4cff5804 m4/groff.m4: Report how paper format is inferred. [+17]
2024 180d665d19 XXX version validity check [+34]

[1] "A change of just a few lines (less than 15 or so) is not legally
significant for copyright."  Conversely, >= 15 lines would be.

https://www.gnu.org/prep/maintain/html_node/Legally-Significant.html
2026-01-26 13:34:08 -06:00
G. Branden Robinson
f7bcac8909 m4/groff.m4: Update copyright notice (1/2).
Ratchet back ending year of FSF copyright notice to 2017, reflecting the
date of the last "legally significant"[1] contribution to this file by
anyone but me.

(Others, including some who have copyright assignments to the FSF
applicable to groff on file, have contributed to this file since 2017,
but their changes to this file did not meet the legal significance
threshold.)

The last "significant" commit in this sense was by Bertrand Garrigues.

commit 75c0873c3f0d9f353b967e316c20ee1bb06d1e86
Author: Bertrand Garrigues <bertrand.garrigues@laposte.net>
Date:   Tue Jul 4 23:40:46 2017 +0200

    Use uchardet library in `preconv' to detect input file encoding
...
 m4/groff.m4 | 36 ++++++++++++++++++++++++++++++++++++
 1 file changed, 36 insertions(+)

Also cosmetically revise file header by dropping period from
non-sentence phrase and by setting off copyright notice with vertical
space.

[1] "A change of just a few lines (less than 15 or so) is not legally
significant for copyright."  Conversely, >= 15 lines would be.

https://www.gnu.org/prep/maintain/html_node/Legally-Significant.html
2026-01-26 13:34:08 -06:00
G. Branden Robinson
03b6f339ae m4/groff.m4: Drop ersatz copyright symbol '(C)'.
Software developers have long labored under the no-longer-correct
misconception that omitting a copyright symbol from one's notice was a
fatal defect that effectively placed the work in the public domain.
That stopped being true as of 1 March 1989.[1]  Further, prior to
guidance issued by the U.S. Copyright Office in the decades since, the
use of "(C)" as a substitute for a copyright sign _may not have
sufficed_ to prevent the copyright notice from being regarded as
defective.  The Copyright Office, then and now, prefers the abbreviation
"copr." when © is typographically unavailable.[ibid.]  Nowadays, its
advice is that "c" (note lowercase) is an "acceptable variant", that
_may_ retain the efficacy of the copyright notice.  The word
"copyright", spelled out in full, also suffices per that resource, and
is already present in this notice.

[1] https://www.copyright.gov/circs/circ03.pdf
2026-01-26 13:34:08 -06:00
G. Branden Robinson
53b53c38c3 gropdf(1): Add subsection "URW font support".
...based on a recent email of Deri's to the groff list.

https://lists.gnu.org/archive/html/groff/2026-01/msg00095.html

Co-authored-by: Deri James <deri@chuzzlewit.myzen.co.uk>
2026-01-26 13:34:05 -06:00
G. Branden Robinson
54e8ba6302 gropdf(1): Fix markup error. 2026-01-26 13:28:18 -06:00
G. Branden Robinson
6e0c8d87e5 [doc,man]: Revise, resync grout compat material. 2026-01-25 22:25:40 -06:00
G. Branden Robinson
44d5c8e0a7 groff_out(5): Delete "Example" section.
It takes up a great deal of real estate for little benefit, in my view.

In the future I hope to revise GNU troff's output for greater
readability (Savannah #63544); I expect that a revision of the
corresponding examples in our Texinfo manual (still present) and
parallelization and of that material with restoration of an "Examples"
section in this man page can then ensue.
2026-01-25 21:18:35 -06:00
G. Branden Robinson
7d652af3f6 doc/groff.texi.in: Revise grout example material.
* Recast.
* Speak in terms of Unix file streams, not "feeding".  Besides being
  more precise, few users these days have experience with punched card
  or paper tape readers as input devices with orifices such that this
  casual analogy is helpful.  (Maybe the term is more idiomatic in the
  native German of the original author.)
* Replace yet another coinage for the legacy compressed encoding,
  "jump-and-write command" with the single term now in use.
* Reform terminogy: "prologue" -> "header".
* Speak of "X11", not "X", since "X" means lots of things and prospects
  for an X Window System Version 12 are as dim as ever.
* Use Texinfo @command command to mark executable command names, not
  @code.
* Break input lines in a *roff-friendly way.

I feel it necessary to reiterate a remark I made in a commit message a
little over a month ago: Bernd needed much closer supervision, or more
active mentoring, than he got.  His technical writing demands heavy
revision in every place I've encountered it.
2026-01-25 21:11:22 -06:00
G. Branden Robinson
7b2bbad6dc [doc,man]: Revise old ditroff output discussion.
Rename Texinfo node/subsubsection and man page subsection from "Obsolete
command" to "Legacy compressed encoding".  Add anchor to keep hyperlinks
to old versions of the manual working.

Revise discussion to reflect the syntax's purpose, as thoroughly treated
by Kernighan's CSTR #97, of which the prior author of this material
seems to have been unaware.
2026-01-25 21:01:07 -06:00
G. Branden Robinson
c936c50981 [doc,man]: Revise grout command summary.
There is still much to do, but now the material grates a bit less.
2026-01-25 20:49:19 -06:00
G. Branden Robinson
45f22d9d1e [doc,man]: Revise grout "Output Structure" stuff. 2026-01-25 19:42:40 -06:00
G. Branden Robinson
b92ff3a1d8 doc/groff.texi.in: Rename Document Parts subsub§.
...to "Output Structure".  Add anchor to support legacy hyperlinks to
this material.
2026-01-25 19:33:25 -06:00
G. Branden Robinson
b708c1b283 [doc,man]: Revise "GNU troff output" stuff (1/x).
Parallelize introductory paragraphs of "GNU troff Output" node/section
of our Texinfo manual and groff_out(5).
2026-01-25 02:22:57 -06:00
G. Branden Robinson
ce747075e9 doc/groff.texi.in: Adopt dynamic @g@ prefix (4/4).
Update "Warnings" subsection/node.
2026-01-25 02:22:55 -06:00
G. Branden Robinson
03608d9772 doc/groff.texi.in: Adopt dynamic @g@ prefix (3/4).
Update "GNU troff Internals" section/node.
2026-01-25 02:22:54 -06:00
G. Branden Robinson
eef7c377e3 doc/groff.texi.in: Adopt dynamic @g@ prefix (2/4).
* Speak of "the formatter", not (g)troff, when describing generally
  applicable *roff behavior.
* Position "only" modifier more carefully.
* Favor active voice over passive.
* Lightly recast.
* Use Texinfo `@:` command after colons, producing more *roff-like
  spacing.  A colon doesn't end a sentence (despite what some page page
  authors think), so we want to prevent TeX from supplementing it with
  inter-sentence space.  (Yes, TeX does that too--a fact unnoticed by
  partisans who proclaim its superiority to *roff on this very point.)
* Break Texinfo input lines in a roff-friendly way.
2026-01-25 02:22:52 -06:00
G. Branden Robinson
70d6175e1d doc/groff.texi.in: Adopt dynamic @g@ prefix (1/4).
Tackle Chapter 2.

* Replace literal "g" prefix in applicable command names with `@g@`
  sed-substitutum (Dog Latin).
* Reformat man page-style command synopsis on the presumption that this
  prefix is null, as it is in most deployments.
* Break Texinfo input lines in a roff-friendly way.
2026-01-25 02:22:45 -06:00
G. Branden Robinson
b4647d0ed4 [doc,man]: Update, resync "Paper format" stuff.
* Speak of "the formatter" generically instead of (g)troff, since all
  device-independent troffs read "DESC" files.
* Report build configuration's `PAGE` parameter.
* Parallelize wording between our Texinfo manual and groff(1).
* Break Texinfo input lines in a roff-friendly way.
2026-01-25 00:34:51 -06:00
G. Branden Robinson
a2fe7ce456 doc/doc.am: Empower DOC_SED to replace @PAGE@. 2026-01-25 00:34:51 -06:00
G. Branden Robinson
440d466d8c [doc,man]: Fix style and markup nits.
* Favor present tense over future.
* Break Texinfo input lines in a roff-friendly way.
2026-01-25 00:34:51 -06:00
G. Branden Robinson
3b0fd8bbeb [doc,man]: Clarify utility of troff's -R option.
Also break Texinfo input lines in a roff-friendly way.
2026-01-25 00:34:51 -06:00
G. Branden Robinson
69c2a5dae5 doc/groff.texi.in: Kill off "gtroff" explanation.
We no longer need it.
2026-01-25 00:34:51 -06:00
G. Branden Robinson
e74bebb507 doc/groff.texi.in: Semi-robotically update.
...replace all instances of "gtroff" not in an `@anchor` command with
"@g@troff".
2026-01-25 00:34:51 -06:00
G. Branden Robinson
ed6dfcba81 doc/groff.texi.in: Retitle section.
Migrate from "gtroff" to "GNU troff".  No `@anchor` necessary because
one already exists; the node itself has already been renamed.
2026-01-25 00:34:51 -06:00
G. Branden Robinson
29a2c1b18d doc/groff.texi.in: "Rename" "GNU troff Reference".
Tag the word "troff" with Texinfo's "@command", to semantic markup
scruples and to ensure it gets set in a consistent face.

Apparently a compatibility anchor isn't required for this alteration
(and attempting one is, in fact, an error to Texinfo), I suppose since
it doesn't change the _text_ of the node identifier.  That makes sense
if we consider that Texinfo's design may arise more from the "Info" part
than the "TeX" part.  (Info's design in turn owes a considerable debt to
Brian Reid's Scribe.[1])

[1] https://apps.dtic.mil/sti/tr/pdf/ADA125287.pdf
2026-01-25 00:34:51 -06:00
G. Branden Robinson
986ac2f717 doc/groff.texi.in: Rename "gtroff Output" section.
Begins fixing Savannah #66031.
2026-01-25 00:34:51 -06:00
G. Branden Robinson
321cf40a6c doc/groff.texi.in: Tweak condition operator list.
Drop backward references from list of conditional operators.  We don't
use them for the several other concepts mentioned in the list that
require familiarity with earlier sections of the manual.
2026-01-25 00:32:51 -06:00
G. Branden Robinson
4b91a8b579 doc/groff.texi.in: Drop redundant material.
Subsection "Characters and Glyphs" already covers the syntax for the
character types, and this material wrongly omitted \C'xxx' anyway.
2026-01-25 00:30:14 -06:00
G. Branden Robinson
99722733b3 [doc,man]: Revise character/glyph material.
* Rename "Using Symbols" node/subsection to "Characters and Glyphs".
  Update Texinfo reference commands throughout the document.  Update
  menu within "Using Fonts" node.
* Add presentation of the 3 types of *roff character: ordinary, special,
  and indexed.
* Add presentation of user-defined characters.
* Recast and clarify description of character-to-glyph resolution
  process.
* Favor active voice over passive.
* Sync this revised material to a new subsection "Characters and glyphs"
  in groff(7).
2026-01-25 00:22:44 -06:00
G. Branden Robinson
f25ced5c22 doc/groff.texi.in: Clarify intro to "keeps". 2026-01-24 15:30:15 -06:00
G. Branden Robinson
2924e319dd doc/groff.texi.in: Fix content/style/markup nits.
Content:
* We don't "frequently" employ the `ll` request in examples; only
  occasionally.

Style:
* Favor active voice over passive.

Markup:
* Break Texinfo input lines in a roff-friendly way.
2026-01-24 15:30:09 -06:00