For the Automake-generated "make dvi" target,
- texinfo.tex is needed always,
- and epsf.tex is needed if the documentation contains figures.
Note that "make dvi" is included in "make distcheck".
On a Debian or Ubuntu system with the packages
texinfo texlive-base texlive-latex-base
installed, "make distcheck" therefore works in most packages,
but does not work in packages whose documentation contains figures,
such as GNU Bison.
How to reproduce:
$ git clone git://git.savannah.gnu.org/bison
$ cd bison
$ git submodule update --init --recursive
$ ./bootstrap
$ ./configure
$ make
$ make distcheck
...
Making dvi in .
make[2]: Entering directory '/tmp/bison/bison-3.8.2.56-2cea/_build/sub'
GEN ../../doc/bison.help
TEXI2DVI doc/bison.dvi
/usr/bin/texi2dvi: etex exited with bad status, quitting.
make[2]: *** [Makefile:11489: doc/bison.dvi] Error 1
To get more details:
$ make dvi V=1
Making dvi in po
make[1]: Entering directory '/tmp/bison/po'
make[1]: Nothing to be done for 'dvi'.
make[1]: Leaving directory '/tmp/bison/po'
Making dvi in runtime-po
make[1]: Entering directory '/tmp/bison/runtime-po'
make[1]: Nothing to be done for 'dvi'.
make[1]: Leaving directory '/tmp/bison/runtime-po'
Making dvi in gnulib-po
make[1]: Entering directory '/tmp/bison/gnulib-po'
make[1]: Nothing to be done for 'dvi'.
make[1]: Leaving directory '/tmp/bison/gnulib-po'
Making dvi in .
make[1]: Entering directory '/tmp/bison'
TEXINPUTS="./build-aux:$TEXINPUTS" \
MAKEINFO='/bin/bash '/tmp/bison/build-aux/missing' makeinfo --no-split
--set-customization-variable=SECTION_NAME_IN_TITLE=true
--set-customization-variable=AVOID_MENU_REDUNDANCY=true
--set-customization-variable=ICONS=true -I doc -I ./doc' \
texi2dvi --build-dir=doc/bison.t2d -I doc -I doc -I ./doc
--build-dir=doc/bison.t2d -o doc/bison.dvi \
`test -f 'doc/bison.texi' || echo './'`doc/bison.texi
This is pdfTeX, Version 3.141592653-2.6-1.40.25 (TeX Live 2023/Debian)
(preloaded format=etex)
restricted \write18 enabled.
entering extended mode
(../../../../.././doc/bison.texi (/tmp/bison/build-aux/texinfo.tex
Loading texinfo [version 2025-06-18.21]: pdf, fonts, glyphs, page headings,
tables, conditionals, indexing, sectioning, toc, environments, defuns, macros,
cross references, insertions, localization, formatting, microtype,
and turning on texinfo input format.) (/tmp/bison/doc/version.texi)
Writing index file bison.cp
...
[138] [139] [140] [141] [142] [143] [144] [145] [146]
../../../../.././doc/bison.texi:10958: epsf.tex not found, images will be ignor
ed.
@@image:impl ...not found, images will be ignored}
@global @warnednoepsftrue ...
<argument> ... @image {figs/example, 430pt,,,.svg}
@unskip @hfil
@centersub ...enalty @fi @line {@kern @leftskip #1
@kern @rightskip }
@\center ...{@hfil @ignorespaces #1@unskip @hfil }
@let @centersub @relax
l.10958 @center @image{figs/example, 430pt,,,.svg}
?
../../../../.././doc/bison.texi:10958: Emergency stop.
...
Output written on bison.dvi (154 pages, 509964 bytes).
Transcript written on bison.log.
/usr/bin/texi2dvi: etex exited with bad status, quitting.
make[1]: *** [Makefile:11489: doc/bison.dvi] Error 1
make[1]: Leaving directory '/tmp/bison'
make: *** [Makefile:12261: dvi-recursive] Error 1
The essential error message here is "epsf.tex not found".
It can also be found in the archives for other packages, such as
- GNU Octave:
https://lists.debian.org/debian-octave/2007/05/msg00007.html
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=423993
https://savannah.gnu.org/bugs/?32487
- slime
https://mailman3.common-lisp.net/hyperkitty/list/[email protected]/message/5KWTDL2GHFA7H3B5RP56F46QBRD2WQBY/
- gEDA
https://archives.seul.org/geda/user/Nov-2008/msg00031.html
So, the problem is not limited to Bison. It occurs because epsf.tex is a
dependency of (in fact, the only dependency of) texinfo.tex.
$ grep '\\input.*\.tex' texinfo.tex
\input epsf.tex
\input txi-#1.tex
\input txi-#1.tex
$ grep '\\openin.*\.tex' texinfo.tex
\openin 1 = epsf.tex
\openin 1 txi-#1.tex
\openin 1 txi-#1.tex
Where can users get epsf.tex from?
- It's not among the installed files of GNU texinfo (although the
git repository and tarballs of texinfo contains a copy of it).
- In Debian and Ubuntu, it's part of the 'texlive-plain-generic'
package: https://packages.debian.org/bookworm/texlive-plain-generic
But that package is 66 MB large, which is overkill for a single file.
Since we distribute texinfo.tex through Gnulib, for developers' convenience,
we should do the same for epsf.tex.
Karl, you may want to sync this file into Gnulib via config/srclist.txt.
In case it ever changes again (it hasn't changed in 14 years).
2025-07-14 Bruno Haible <[email protected]>
epsf.tex: New file.
* build-aux/epsf.tex: New file, from
texlive/texmf-dist/tex/generic/epsf/epsf.tex.