Subject: bug#7994: make distcheck fails when latex is not installed

From: Karl Berry <[email-masked]>
Date: Wed, 29 Apr 2020 19:36:11 -0600

Hi Ralf, Jose, anyone and everyone,

Back on this automake bug report from a mere nine years ago:
(https://debbugs.gnu.org/cgi/bugreport.cgi?bug=7994)

    Date: Sun, 6 Feb 2011 23:20:01 +0100

    In a package with a texinfo file, distcheck fails when LaTeX is not
    installed.  Instead, it should exit 63(?).

I guess I don't exactly understand.  Do we not want Automake to require
TeX (BTW, as far as I know, LaTeX specifically is irrelevant to Texinfo)
for a successful "make dist" in a package with a Texinfo file? It does
not seem unreasonable to me.

I can't find any specific statement about this, though the manual
(Auxiliary Programs) does say that texinfo.tex is required for make dvi,
make ps, make pdf, to work, which implies that TeX is required, since
texinfo.tex is meaningless by itself.

And, furthermore, what would be the difference between "fails" and "exit 63"?
Either way the make dist(check) would stop. Also, I can't find
anything notable about status 63. Perhaps you meant status 77 for
skipping a test? But this is not a test that is failing, it's a whole
target (dvi). So I'm confused.

BTW, as far as I can tell, it is actually "make dist" that fails, not 
"make distcheck". It's because of the "make dvi" that you mentioned below.

At any rate, I made a test (included below) to try make distcheck on a
constructed minimal distribution without tex/etc., and the result is:

texi2dvi  --build-dir=main.t2d -o main.dvi  \
./../main.texi
/usr/local/gnu/bin/texi2dvi: TeX neither supports -recorder nor outputs \openout lines in its log file
make[1]: *** [Makefile:342: main.dvi] Error 1
make[1]: Leaving directory '/u/karl/gnu/src/akarl/t/distcheck-no-tex.dir/distcheck-no-tex-1.0/_build/sub'
make: *** [Makefile:563: distcheck] Error 1

(Aside: My test sets TEXI2DVI=false, but apparently something along the
way is not respecting that, and finding the texi2dvi in my PATH. Didn't
seem important to track that down. The only difference is whether the
error is emitted by from texi2dvi finding a deficient tex, or
/bin/sh: texi2dvi: command not found
)

By the way, in the process of researching this, I did find two Automake
tests, instdir-no-empty and txinfo-bsd-make-recurs, which as far as I
can tell run dvi/ps/pdf targets without requiring the programs. I feel
somewhat surprised that that hasn't been discerned by someone's
environment before now, but that's how it looks.

    The fact that distcheck runs 'make dvi' is not documented.

Ack, will fix that in any case. Unless we change it.

Here is my little test (without the leading comments).
-----------------------------------------------------------------------------
. test-init.sh

cat >> configure.ac << 'END'
AC_OUTPUT
END

cat > Makefile.am << 'END'
info_TEXINFOS = main.texi
END

cat > main.texi << 'END'
\input texinfo
@setfilename main.info
@bye
END

$ACLOCAL
$AUTOMAKE -a
$AUTOCONF

./configure
$MAKE

TEX=false TEXI2DVI=false MAKEINFO=false DVIPS=false
export TEX TEXI2DVI MAKEINFO DVIPS

$MAKE distcheck
:
-----------------------------------------------------------------------------

Best,
Karl