URL: <https://savannah.gnu.org/bugs/?68567>
Summary: [devpdf] build on Manjaro Linux 23 finds
wrong/inadequate URW fonts, causing test failure
Group: GNU roff
Submitter: gbranden
Submitted: Sun 26 Jul 2026 05:05:05 AM UTC
Category: Font devpdf
Severity: 3 - Normal
Item Group: Build/Installation
Status: Need Info
Privacy: Public
Assigned to: deri
Open/Closed: Open
Discussion Lock: Unlocked
Planned Release: None
_______________________________________________________
Follow-up Comments:
-------------------------------------------------------
Date: Sun 26 Jul 2026 05:05:05 AM UTC By: G. Branden Robinson <gbranden>
[https://lists.gnu.org/archive/html/groff/2026-07/msg00029.html Bruno Haible
reports]:
On Manjaro Linux 23, I see a test failure. test-suite.log is attached.
Whereas when I configure with option '--without-urw-fonts', all tests pass.
===========================================
GNU roff 1.25.0.rc1: ./test-suite.log
===========================================
# TOTAL: 363
# PASS: 354
# SKIP: 4
# XFAIL: 4
# FAIL: 1
# XPASS: 0
# ERROR: 0
.. contents:: :depth: 2
FAIL: font/devpdf/tests/check-urw-foundry.sh
============================================
checking for font description U-AB...
test -f /home/bruno/groff-1.25.0.rc1/build-64/font/devpdf/U-AB
...FAILED
checking for font description U-ABI...
test -f /home/bruno/groff-1.25.0.rc1/build-64/font/devpdf/U-ABI
...FAILED
checking for font description U-AI...
test -f /home/bruno/groff-1.25.0.rc1/build-64/font/devpdf/U-AI
...FAILED
checking for font description U-AR...
test -f /home/bruno/groff-1.25.0.rc1/build-64/font/devpdf/U-AR
...FAILED
checking for font description U-BMB...
test -f /home/bruno/groff-1.25.0.rc1/build-64/font/devpdf/U-BMB
...FAILED
checking for font description U-BMBI...
test -f /home/bruno/groff-1.25.0.rc1/build-64/font/devpdf/U-BMBI
...FAILED
checking for font description U-BMI...
test -f /home/bruno/groff-1.25.0.rc1/build-64/font/devpdf/U-BMI
...FAILED
checking for font description U-BMR...
test -f /home/bruno/groff-1.25.0.rc1/build-64/font/devpdf/U-BMR
...FAILED
checking for font description U-CB...
test -f /home/bruno/groff-1.25.0.rc1/build-64/font/devpdf/U-CB
...FAILED
checking for font description U-CBI...
test -f /home/bruno/groff-1.25.0.rc1/build-64/font/devpdf/U-CBI
...FAILED
checking for font description U-CI...
test -f /home/bruno/groff-1.25.0.rc1/build-64/font/devpdf/U-CI
...FAILED
checking for font description U-CR...
test -f /home/bruno/groff-1.25.0.rc1/build-64/font/devpdf/U-CR
...FAILED
checking for font description U-HB...
test -f /home/bruno/groff-1.25.0.rc1/build-64/font/devpdf/U-HB
...FAILED
checking for font description U-HBI...
test -f /home/bruno/groff-1.25.0.rc1/build-64/font/devpdf/U-HBI
...FAILED
checking for font description U-HI...
test -f /home/bruno/groff-1.25.0.rc1/build-64/font/devpdf/U-HI
...FAILED
checking for font description U-HNB...
test -f /home/bruno/groff-1.25.0.rc1/build-64/font/devpdf/U-HNB
...FAILED
checking for font description U-HNBI...
test -f /home/bruno/groff-1.25.0.rc1/build-64/font/devpdf/U-HNBI
...FAILED
checking for font description U-HNI...
test -f /home/bruno/groff-1.25.0.rc1/build-64/font/devpdf/U-HNI
...FAILED
checking for font description U-HNR...
test -f /home/bruno/groff-1.25.0.rc1/build-64/font/devpdf/U-HNR
...FAILED
checking for font description U-HR...
test -f /home/bruno/groff-1.25.0.rc1/build-64/font/devpdf/U-HR
...FAILED
checking for font description U-NB...
test -f /home/bruno/groff-1.25.0.rc1/build-64/font/devpdf/U-NB
...FAILED
checking for font description U-NBI...
test -f /home/bruno/groff-1.25.0.rc1/build-64/font/devpdf/U-NBI
...FAILED
checking for font description U-NI...
test -f /home/bruno/groff-1.25.0.rc1/build-64/font/devpdf/U-NI
...FAILED
checking for font description U-NR...
test -f /home/bruno/groff-1.25.0.rc1/build-64/font/devpdf/U-NR
...FAILED
checking for font description U-PB...
test -f /home/bruno/groff-1.25.0.rc1/build-64/font/devpdf/U-PB
...FAILED
checking for font description U-PBI...
test -f /home/bruno/groff-1.25.0.rc1/build-64/font/devpdf/U-PBI
...FAILED
checking for font description U-PI...
test -f /home/bruno/groff-1.25.0.rc1/build-64/font/devpdf/U-PI
...FAILED
checking for font description U-PR...
test -f /home/bruno/groff-1.25.0.rc1/build-64/font/devpdf/U-PR
...FAILED
checking for font description U-S...
test -f /home/bruno/groff-1.25.0.rc1/build-64/font/devpdf/U-S
...FAILED
checking for font description U-TB...
test -f /home/bruno/groff-1.25.0.rc1/build-64/font/devpdf/U-TB
...FAILED
checking for font description U-TBI...
test -f /home/bruno/groff-1.25.0.rc1/build-64/font/devpdf/U-TBI
...FAILED
checking for font description U-TI...
test -f /home/bruno/groff-1.25.0.rc1/build-64/font/devpdf/U-TI
...FAILED
checking for font description U-TR...
test -f /home/bruno/groff-1.25.0.rc1/build-64/font/devpdf/U-TR
...FAILED
checking for font description U-ZCMI...
test -f /home/bruno/groff-1.25.0.rc1/build-64/font/devpdf/U-ZCMI
...FAILED
checking for font description U-ZD...
test -f /home/bruno/groff-1.25.0.rc1/build-64/font/devpdf/U-ZD
...FAILED
FAIL font/devpdf/tests/check-urw-foundry.sh (exit status: 1)
[https://lists.gnu.org/archive/html/groff/2026-07/msg00050.html Deri followed
up]:
If the URW fonts are only found under 'ghostscript' it is unlikely the
required AFM files are available. (I have not seen them as part of
ghostscript
for many a year, I believe they are now baked into the executable in some
binary form - to improve speed).
This means pdf support will be 'intermediate' (all 35 fonts avilable same as
grops, but the extra 'U' foundry fonts - the failed tests - cannot be built
because afmtodit requires access to AFM files.
In this situation I would expect the cnfigure script to report
'intermediate',
and Bruno did not report any problem during the build so I am assuming
BuildFoundries did the right thing and silently avoided tying to run afmtodit
on non-existent afm files.
So the question is why did configure report 'full' when there were no afm
files only pfb files? I managed to duplicate the issue:-
GNU roff version 1.24.1.1122-5c005 configuration summary
----------------------------------------------------------------------
installation directory prefix : /usr/local
C++ compiler and options : g++ -g -O2
C compiler and options : gcc -g -O2
Perl interpreter version : 5.42.0
Ghostscript command : gs
URW fonts directory : /usr/share/ghostscript/10.07.0/Resource/
Font/
gropdf service level : full
X11 support : disabled
default paper format : A4
'groff -l' uses print spooler : lpr
preconv can use uchardet library : yes
can build groff.{info,html,txt} : no
can build groff.{dvi,pdf} : no
----------------------------------------------------------------------
But, only by using "--with-urw-fonts-dir=usr/share/ghostscript/10.07.0/
Resource/Font/". Without this it reports 'intermediate'.
This is on current git but I'm sure its the same on rc1.
And now for something completely different...
I noticed that when making our pdf documents it was actually using a previous
installed version of groff in /usr/local rather than the just built groff.
Our `GROFF_URW_FONTS_CHECK` doesn't even look for the AFM files, just the
fonts themselves.
Here's the full macro in its present form.
# Check for availability of URW fonts in the directory specified by the
# user (see GROFF_URW_FONTS_PATH above), if any. Otherwise search a set
# of directories commonly (but variously) used to store them.
AC_DEFUN([GROFF_URW_FONTS_CHECK], [
AC_REQUIRE([GROFF_URW_FONTS_SUPPORT])
AC_REQUIRE([GROFF_URW_FONTS_PATH])
AC_REQUIRE([GROFF_GHOSTSCRIPT_PATH])
groff_have_urw_fonts=no
if test "$urwfontsupport" != no
then
AC_MSG_CHECKING([for URW fonts in Type 1/PFB format])
dnl Keep this list in sync with font/devpdf/Foundry.in.
_list_paths="\
/usr/share/fonts/type1/urw-base35/ \
/usr/share/fonts/urw-base35 \
/opt/local/share/fonts/urw-fonts/ \
/usr/local/share/fonts/ghostscript/ \
/usr/share/fonts/type1/gsfonts/ \
/usr/share/fonts/type1/ \
/usr/share/fonts/default/Type1/adobestd35/ \
/usr/share/fonts/default/Type1/ \
/usr/share/ghostscript/Resource/Font"
if test -n "$urwfontsdir"
then
_list_paths="$urwfontsdir"
fi
dnl Keep this list of font file names in sync with the corresponding
dnl entry in font/devpdf/util/BuildFoundries.pl.
for k in $_list_paths
do
for _font_file in \
URWGothic-Book \
URWGothic-Book.t1 \
URWGothic-Book.pfb \
URWGothicL-Book.pfb \
a010013l.pfb
do
if test -f $k/$_font_file
then
AC_MSG_RESULT([found in $k])
groff_have_urw_fonts=yes
urwfontsdir=$k
break 2
fi
done
done
if test $groff_have_urw_fonts = no
then
AC_MSG_RESULT([none found])
fi
fi
AC_SUBST([groff_have_urw_fonts])
AC_SUBST(urwfontsdir)
])
However, that's not the macro that determines the "gropdf service level".
AC_DEFUN([GROFF_GROPDF_DEPENDENCIES_CHECK], [
AC_REQUIRE([GROFF_GHOSTSCRIPT_PATH])
AC_REQUIRE([GROFF_URW_FONTS_CHECK])
gropdf_service_level=basic
if test "$GHOSTSCRIPT" != missing
then
gropdf_service_level=intermediate
fi
if test "$groff_have_urw_fonts" = yes
then
gropdf_service_level=full
fi
])
Maybe we could cache the location of the "_font_file" that the former macro
discovers, use it to construct an "AFM" file name, and degrade from "full" to
"intermediate" service if _either_ that or "$GHOSTSCRIPT" is missing.
Deri, do you think that would cover this scenario?
Does it seem like a good idea to you?
_______________________________________________________
Reply to this item at:
<https://savannah.gnu.org/bugs/?68567>
_______________________________________________
Message sent via Savannah
https://savannah.gnu.org/
signature.asc
Description: PGP signature
