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/cl-deb...@common-lisp.net/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  <br...@clisp.org>

        epsf.tex: New file.
        * build-aux/epsf.tex: New file, from
        texlive/texmf-dist/tex/generic/epsf/epsf.tex.





Reply via email to