[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

build, BuildFoundries, and gropdf changes coming

From: G. Branden Robinson
Subject: build, BuildFoundries, and gropdf changes coming
Date: Thu, 10 Nov 2022 16:04:04 -0600

Hi all,

As alluded to in my last message to Alex...

Deri's improvement of gropdf's font file resolution procedure for
embedded fonts[1] has pulled on a loose thread and is having interesting

Here are some selected commits from my working copy.  The creation of
the compiled groff man pages as a PDF document is proving to be an
effective integration test.  I foresee a future where the
"BuildFoundries" script does less work.  We're pretty much stuck with an
approach like the below because to do otherwise would mean recursively
applying groff-font-path-enabled lookups on file specifications
appearing inside the "download" file.[2]  That seems to me (1) to
promise even more complexity and (2) to abuse the semantics of the groff
font path, which is to _locate groff font and device description files_.
Not to locate Type 1 font files that the formatter itself cares nothing
about.  (One day, we might change groff to load and interpret Type 1 and
OpenType fonts itself.  That day has not yet come.)

Maybe a "-D type1-dir" option for gropdf, which means "look HERE, I MEAN
IT" for embeddable fonts would be worth implementing for the sake of our
users, who may understandably be frustrated with all this download file
business?  Maybe we can see how much such frustration arises from
1.23.0.rc2 before resorting to this.

There are some wordos in the following.  This is what my commit messages
look like before they spend a few days percolating and I push them 30-50
at a time.

commit f30d2062465ccb05162859774d5a179e10dabcf6
Author: G. Branden Robinson <>
Date:   Tue Nov 8 19:26:24 2022 -0600

    [gropdf]: Tweak diagnostic message.

    * src/devices/gropdf/ (LoadFont): Tweak diagnostic message.
      Include invalid file specification about which we are complaining.
      This makes the message pretty long, sadly, but it should steer the
      reader directly to the problem while requiring only the vaguest
      understanding of what the "download" file is for.  Also: don't start
      message clause with a capital letter {per GNU Coding Standards};
      double quote file name references; and move parenthesized groff font
      name outside of single quotes.

commit 48586545e0261a030e577ce163f9aa7003e6d8e8
Author: G. Branden Robinson <>
Date:   Tue Nov 8 19:27:45 2022 -0600

    src/devices/gropdf/ Fix whitespace nits.

    This is shut up Git from howling as follows.

    <stdin>:27: space before tab in indent.
    [...and so forth...]
    warning: squelched 2 whitespace errors
    warning: 7 lines add whitespace errors.

commit c99d97342849837cf7648861e6ac618cf9c97a93
Author: G. Branden Robinson <>
Date:   Mon Nov 7 06:59:53 2022 -0600

    INSTALL.extra: Revise.

    * Place "URW fonts" discussion into its own subsection due to length.
    * Clarify that "test-groff" has to be run from the build directory.

commit 496c627c4656be4e5ab7e1de36e82742d7131344
Author: G. Branden Robinson <>
Date:   Wed Nov 9 02:11:34 2022 -0600

    doc/ Add commentary and tweak code style.

    * doc/ (doc/groff-man-pages.pdf): Add explanatory comment.
      Rearrange options to put prepreprocessor stuff first, formatter
      options next, and postprocessor options last.

commit caff5c9e92fbecbd2ccff413a1cb0456a879f8c9
Author: G. Branden Robinson <>
Date:   Wed Nov 9 08:24:52 2022 -0600

    [devpdf]: Tweak generation of "download" file.

    * font/devpdf/ (font/devpdf/download): Improve
      comprehensibility of comments in generated "download" file.  Stop
      bracketing path element separator with spaces.

commit 0d4220f2bdcba5a448c8396ba3081cb2fb817836
Author: G. Branden Robinson <>
Date:   Wed Nov 9 09:02:52 2022 -0600

    [afmtodit]: Handle fatal exits more idiomatically.

    * src/utils/afmtodit/ Use our own fatal exit function
      instead of Perl's "die".

      (croak): New subroutine emits argument as part of diagnostic message
      exits with status 1.

      (usage): Exit with status 2, not 1, on usage errors.

commit c23668e797ba4ace62536a0f5b9ead6307361680
Author: G. Branden Robinson <>
Date:   Wed Nov 9 09:31:25 2022 -0600

    [afmtodit]: Implement new '-w' option.

    * src/utils/afmtodit/ Add new command-line option to specify
      the generated font description's "spacewidth" parameter; in commit
      bf7f6862c3, 2021-09-24, I made libgroff complain if this directive is
      missing (since any font, even a "special" one can be selected as
      current and the formatter and the behavior's behavior when
      encountering an input space should be well-defined under that
      circumstance).  Adding this option enables a well-formed font
      description to be produced.

    * src/utils/afmtodit/ (usage):
    * src/utils/afmtodit/ (Synopsis, Options): Document it.

    * NEWS: Add item.

commit b8b75b176365695ca380362a725a721081828a2e (HEAD -> master)
Author: G. Branden Robinson <>
Date:   Wed Nov 9 10:28:32 2022 -0600

    [devpdf]: Do more explicit work and less magic.

    * font/devpdf/ (devpdffont_DATA): Add all of the PostScript
      Level 2 base 35 font descriptions (from the default foundry).  Also
      add the "EURO" font description file and the "FreeEuro" PFA and AFM
      files, making these explicit targets and dependencies.

      (devpdffont_DATA) [HAVE_URW_FONTS]: Also add the URW foundry's version
      of the base 35 fonts.

      (font/devpdf/freeeuro.afm): Add new target, a simple file copy from
      the devps font directory.

      (font/devpdf/EURO): Generate font description file from the devps font

      (font/devpdf/freeeuro.pfa): Add new target, a simple file copy from
      the devps font directory.

      (MOSTLYCLEANFILES): Clean freeeuro.{afm,pfa}.



[2] The FreeEuro font file is cheekily located at
    "../devps/freeeuro.pfa", which is nicely robust for a groff _build_
    but pretty dubious for installation.

Attachment: signature.asc
Description: PGP signature

reply via email to

[Prev in Thread] Current Thread [Next in Thread]