Follow-up Comment #7, bug #68060 (group groff): At 2026-02-20T10:25:55-0500, Deri James wrote: > Update of bug #68060 (group groff): > > Status: Fixed => Need Info > Open/Closed: Closed => Open > > _______________________________________________________ > > Follow-up Comment #5: > > I have re-opened because Branden's changes have introduced a new bug.
Ah, it's good that you caught it when you did; I had already tagged
1.24.0.rc4 in my local copy (but _not_ pushed it) and was performing
test builds.
I'll delete the tag.
> It occurs in the case where the URW fonts are found but ghostscript is
> not found.
Ahhh. I seem to recall raising this scenario earlier, but can't lay my
hands on the exact message. Might have been groff@gnu discussion, might
have been a Savannah ticket comment.
It did seem like, with 2 binary variables (have Ghostscript or not, have
URW fonts or not), there should be 4 possibilities. You've just thrown
a spotlight on the previously neglected fourth.
Lacking Ghostscript even with URW fonts present still bones grohtml, but
that's a separate matter. I think historically there has been confusion
in developers' minds, especially my own, but also possibly in groff's
Automake file logic, that made these matters tough to distinguish and
reason clearly about.
> This should result in all fonts being available to groff (35 + U-35),
> but because of Branden's change to use "if HAVE_GHOSTSCRIPT" as a
> condition for including the second list of fonts, it means that those
> fonts don't get included - but they should. See attached log
> GBR-urw-nogs.log.txt.
>
> On debian the ghostscript package has a dependency on
> "fonts-urw-base35", so if ghostscript is installed so are the urw
> fonts (into a directory which configure searches). The actual
> ghostscript Resources/Font directory only contains links to the actual
> font files in the dependent package.
>
> dietpi@tvhnew:~ $ ls -l /usr/share/ghostscript/10.05.1/Resource/Font/
> total 24
> lrwxrwxrwx 1 root root 48 Oct 5 08:09 C059-BdIta ->
> ../../../../fonts/type1/urw-base35/C059-BdIta.t1
> lrwxrwxrwx 1 root root 47 Oct 5 08:09 C059-Bold ->
> ../../../../fonts/type1/urw-base35/C059-Bold.t1
> lrwxrwxrwx 1 root root 49 Oct 5 08:09 C059-Italic ->
> ../../../../fonts/type1/urw-base35/C059-Italic.t1
> lrwxrwxrwx 1 root root 48 Oct 5 08:09 C059-Roman ->
> ../../../../fonts/type1/urw-base35/C059-Roman.t1
> lrwxrwxrwx 1 root root 46 Oct 5 08:09 D050000L ->
> ../../../../fonts/type1/urw-base35/D050000L.t1
> lrwxrwxrwx 1 root root 55 Oct 5 08:09 NimbusMonoPS-Bold ->
> ../../../../fonts/type1/urw-base35/NimbusMonoPS-Bold.t1
> lrwxrwxrwx 1 root root 61 Oct 5 08:09 NimbusMonoPS-BoldItalic ->
> ../../../../fonts/type1/urw-base35/NimbusMonoPS-BoldItalic.t1
> lrwxrwxrwx 1 root root 57 Oct 5 08:09 NimbusMonoPS-Italic ->
> ../../../../fonts/type1/urw-base35/NimbusMonoPS-Italic.t1
> lrwxrwxrwx 1 root root 58 Oct 5 08:09 NimbusMonoPS-Regular ->
> ../../../../fonts/type1/urw-base35/NimbusMonoPS-Regular.t1
> lrwxrwxrwx 1 root root 54 Oct 5 08:09 NimbusRoman-Bold ->
> ../../../../fonts/type1/urw-base35/NimbusRoman-Bold.t1
> lrwxrwxrwx 1 root root 60 Oct 5 08:09 NimbusRoman-BoldItalic ->
> ../../../../fonts/type1/urw-base35/NimbusRoman-BoldItalic.t1
> lrwxrwxrwx 1 root root 56 Oct 5 08:09 NimbusRoman-Italic ->
> ../../../../fonts/type1/urw-base35/NimbusRoman-Italic.t1
> lrwxrwxrwx 1 root root 57 Oct 5 08:09 NimbusRoman-Regular ->
> ../../../../fonts/type1/urw-base35/NimbusRoman-Regular.t1
> lrwxrwxrwx 1 root root 53 Oct 5 08:09 NimbusSans-Bold ->
> ../../../../fonts/type1/urw-base35/NimbusSans-Bold.t1
> lrwxrwxrwx 1 root root 59 Oct 5 08:09 NimbusSans-BoldItalic ->
> ../../../../fonts/type1/urw-base35/NimbusSans-BoldItalic.t1
> lrwxrwxrwx 1 root root 55 Oct 5 08:09 NimbusSans-Italic ->
> ../../../../fonts/type1/urw-base35/NimbusSans-Italic.t1
> lrwxrwxrwx 1 root root 59 Oct 5 08:09 NimbusSansNarrow-Bold ->
> ../../../../fonts/type1/urw-base35/NimbusSansNarrow-Bold.t1
> lrwxrwxrwx 1 root root 66 Oct 5 08:09 NimbusSansNarrow-BoldOblique ->
> ../../../../fonts/type1/urw-base35/NimbusSansNarrow-BoldOblique.t1
> lrwxrwxrwx 1 root root 62 Oct 5 08:09 NimbusSansNarrow-Oblique ->
> ../../../../fonts/type1/urw-base35/NimbusSansNarrow-Oblique.t1
> lrwxrwxrwx 1 root root 62 Oct 5 08:09 NimbusSansNarrow-Regular ->
> ../../../../fonts/type1/urw-base35/NimbusSansNarrow-Regular.t1
> lrwxrwxrwx 1 root root 56 Oct 5 08:09 NimbusSans-Regular ->
> ../../../../fonts/type1/urw-base35/NimbusSans-Regular.t1
> lrwxrwxrwx 1 root root 47 Oct 5 08:09 P052-Bold ->
> ../../../../fonts/type1/urw-base35/P052-Bold.t1
> lrwxrwxrwx 1 root root 53 Oct 5 08:09 P052-BoldItalic ->
> ../../../../fonts/type1/urw-base35/P052-BoldItalic.t1
> lrwxrwxrwx 1 root root 49 Oct 5 08:09 P052-Italic ->
> ../../../../fonts/type1/urw-base35/P052-Italic.t1
> lrwxrwxrwx 1 root root 48 Oct 5 08:09 P052-Roman ->
> ../../../../fonts/type1/urw-base35/P052-Roman.t1
> lrwxrwxrwx 1 root root 55 Oct 5 08:09 StandardSymbolsPS ->
> ../../../../fonts/type1/urw-base35/StandardSymbolsPS.t1
> lrwxrwxrwx 1 root root 53 Oct 5 08:09 URWBookman-Demi ->
> ../../../../fonts/type1/urw-base35/URWBookman-Demi.t1
> lrwxrwxrwx 1 root root 59 Oct 5 08:09 URWBookman-DemiItalic ->
> ../../../../fonts/type1/urw-base35/URWBookman-DemiItalic.t1
> lrwxrwxrwx 1 root root 54 Oct 5 08:09 URWBookman-Light ->
> ../../../../fonts/type1/urw-base35/URWBookman-Light.t1
> lrwxrwxrwx 1 root root 60 Oct 5 08:09 URWBookman-LightItalic ->
> ../../../../fonts/type1/urw-base35/URWBookman-LightItalic.t1
> lrwxrwxrwx 1 root root 52 Oct 5 08:09 URWGothic-Book ->
> ../../../../fonts/type1/urw-base35/URWGothic-Book.t1
> lrwxrwxrwx 1 root root 59 Oct 5 08:09 URWGothic-BookOblique ->
> ../../../../fonts/type1/urw-base35/URWGothic-BookOblique.t1
> lrwxrwxrwx 1 root root 52 Oct 5 08:09 URWGothic-Demi ->
> ../../../../fonts/type1/urw-base35/URWGothic-Demi.t1
> lrwxrwxrwx 1 root root 59 Oct 5 08:09 URWGothic-DemiOblique ->
> ../../../../fonts/type1/urw-base35/URWGothic-DemiOblique.t1
> lrwxrwxrwx 1 root root 55 Oct 5 08:09 Z003-MediumItalic ->
> ../../../../fonts/type1/urw-base35/Z003-MediumItalic.t1
Right, that looks like a Debianism.
> But other distributions are not so nifty and include the fonts
> (without AFMs) inside the ghostscript package:-
...without AFMs. Urp. I wonder why anyone thinks that's a good idea.
> derij@pip build (master)]$ ls -l /usr/share/ghostscript/10.05.1/Resource/Font
> total 4448
> -rw-r--r-- 1 root root 152585 May 26 2025 C059-BdIta
> -rw-r--r-- 1 root root 146014 May 26 2025 C059-Bold
> -rw-r--r-- 1 root root 148928 May 26 2025 C059-Italic
> -rw-r--r-- 1 root root 145084 May 26 2025 C059-Roman
> -rw-r--r-- 1 root root 43343 May 26 2025 D050000L
> -rw-r--r-- 1 root root 155992 May 26 2025 NimbusMonoPS-Bold
> -rw-r--r-- 1 root root 154177 May 26 2025 NimbusMonoPS-BoldItalic
> -rw-r--r-- 1 root root 142983 May 26 2025 NimbusMonoPS-Italic
> -rw-r--r-- 1 root root 140353 May 26 2025 NimbusMonoPS-Regular
> -rw-r--r-- 1 root root 133004 May 26 2025 NimbusRoman-Bold
> -rw-r--r-- 1 root root 140953 May 26 2025 NimbusRoman-BoldItalic
> -rw-r--r-- 1 root root 142085 May 26 2025 NimbusRoman-Italic
> -rw-r--r-- 1 root root 133527 May 26 2025 NimbusRoman-Regular
> -rw-r--r-- 1 root root 107795 May 26 2025 NimbusSans-Bold
> -rw-r--r-- 1 root root 123308 May 26 2025 NimbusSans-BoldItalic
> -rw-r--r-- 1 root root 120927 May 26 2025 NimbusSans-Italic
> -rw-r--r-- 1 root root 106239 May 26 2025 NimbusSansNarrow-Bold
> -rw-r--r-- 1 root root 109815 May 26 2025 NimbusSansNarrow-BoldOblique
> -rw-r--r-- 1 root root 107359 May 26 2025 NimbusSansNarrow-Oblique
> -rw-r--r-- 1 root root 104252 May 26 2025 NimbusSansNarrow-Regular
> -rw-r--r-- 1 root root 104001 May 26 2025 NimbusSans-Regular
> -rw-r--r-- 1 root root 162196 May 26 2025 P052-Bold
> -rw-r--r-- 1 root root 163906 May 26 2025 P052-BoldItalic
> -rw-r--r-- 1 root root 161531 May 26 2025 P052-Italic
> -rw-r--r-- 1 root root 159843 May 26 2025 P052-Roman
> -rw-r--r-- 1 root root 31444 May 26 2025 StandardSymbolsPS
> -rw-r--r-- 1 root root 137163 May 26 2025 URWBookman-Demi
> -rw-r--r-- 1 root root 142686 May 26 2025 URWBookman-DemiItalic
> -rw-r--r-- 1 root root 137614 May 26 2025 URWBookman-Light
> -rw-r--r-- 1 root root 143233 May 26 2025 URWBookman-LightItalic
> -rw-r--r-- 1 root root 100637 May 26 2025 URWGothic-Book
> -rw-r--r-- 1 root root 102403 May 26 2025 URWGothic-BookOblique
> -rw-r--r-- 1 root root 103428 May 26 2025 URWGothic-Demi
> -rw-r--r-- 1 root root 105110 May 26 2025 URWGothic-DemiOblique
> -rw-r--r-- 1 root root 166540 May 26 2025 Z003-MediumItalic
> [derij@pip build (master)]$
>
> And even on debian it is perfectly possible to install
> "fonts-urw-base35" on its own without having ghostscript. To fix this
> the second list of fonts in devpdf.am should be included if either
> ghostscript or the urw fonts are found. Here's one way of doing it:-
>
> diff --git a/configure.ac b/configure.ac
> index f52cd906e..405acbd63 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -189,6 +189,9 @@ AM_CONDITIONAL([USE_GROFF_ALLOCATOR],
> AM_CONDITIONAL([HAVE_GHOSTSCRIPT], [test "$GHOSTSCRIPT" != no \
> && test "$GHOSTSCRIPT" != missing])
> AM_CONDITIONAL([HAVE_URW_FONTS], [test "$groff_have_urw_fonts" = yes ])
> +AM_CONDITIONAL([HAVE_URW_FONTS_OR_HAVE_GHOSTSCRIPT], [test
> "$groff_have_urw_fonts" = yes \
> + || (test "$GHOSTSCRIPT" != no \
> + && test "$GHOSTSCRIPT" != missing)])
> AM_CONDITIONAL([HAVE_MAKEINFO], [test "$groff_have_makeinfo" = yes ])
> AM_CONDITIONAL([HAVE_TEXI2DVI], [test "$groff_have_texi2dvi" = yes ])
> AM_CONDITIONAL([USE_TEX], [test "$groff_use_tex" = yes ])
> diff --git a/font/devpdf/devpdf.am b/font/devpdf/devpdf.am
> index 04d1375a4..15c11e9ba 100644
> --- a/font/devpdf/devpdf.am
> +++ b/font/devpdf/devpdf.am
> @@ -38,7 +38,7 @@ devpdffont_descriptions_from_devps = \
> font/devpdf/TR \
> font/devpdf/EURO
>
> -if HAVE_GHOSTSCRIPT
> +if HAVE_URW_FONTS_OR_HAVE_GHOSTSCRIPT
> devpdffont_descriptions_from_devps += \
> font/devpdf/AB \
> font/devpdf/ABI \
>
>
> Note that the new HAVE_URW_FONTS_OR_HAVE_GHOSTSCRIPT are using shell
> variables which Branden has already used for setting AM_CONDITIONALs.
...and I inherited that practice in turn from Bertrand. :)
> There may be a "better" way of doing this but please test that the
> situation where urw-fonts are found but ghostscript is not results in
> all 35 plus U-35 are installed. I know that this patch works.
Will do. I prefer to have Automake conditional variables, like the
shell variables populated by Autoconf/M4 macros, assert facts about the
build host's configuration, potentially including parameters tunable by
user-specified options to the "configure" script, rather than computed
conclusions/decisions we make as "policy", if you will, in arranging the
groff build. (The latter might be unavoidable sometimes, though.)
`HAVE_URW_FONTS_OR_HAVE_GHOSTSCRIPT` might be of daunting length, but
it's clear in its meaning, and that's a major virtue. I think it's a
winner if Automake doesn't support logical Boolean expressions as
predicates to its "if" conditionals. I'll have to consult its manual.
Thanks for detecting this issue before I tagged rc4. :)
_______________________________________________________
Reply to this item at:
<https://savannah.gnu.org/bugs/?68060>
_______________________________________________
Message sent via Savannah
https://savannah.gnu.org/
signature.asc
Description: PGP signature
