[tex-k] fmtutil bogus infinite loop

Norbert Preining preining at logic.at
Mon Dec 21 10:09:08 CET 2009

Dear all,

I found that with current fmtutil if you duplicate a format definition
in fmtutil.cnf, fmtutil breaks down with
	Infinite loop detected
The problem is quite simple: We try to detect recursive calls to fmtutil
by adding
to an exported variable, and check that this format/engine combination
hasn't been built already.

(Easy to reproduce, edit your fmtutil.cnf, duplicate the first format
definition you find, run fmtutil-sys --all)

But we do not reset that variable when a new format is generated.

I was thinking a bit how to fix it, but the structure of the script
does not lend itself easy to fixing that at the read of the lines.

I decided for a much simpler approach: the infinite recursion only
happens when $engine is calling mktexfmt for creating a format.
And there is already a variable mktexfmtMode that is set specifically
for that.

So I reset the loop check variable if we are NOT in mktexfmtMode. That
should make sure that infinite recursions are still deteced.

Here is the patch:

--- fmtutil.orig	2009-12-21 18:02:24.000000000 +0900
+++ fmtutil	2009-12-21 18:02:03.000000000 +0900
@@ -714,6 +714,9 @@
   rm -f $fmtfile
   # Check for infinite recursion before running the iniTeX:
+  # We do this check only if we are running in mktexfmt mode
+  # otherwise double format definitions will create an infinite loop, too
+  $mktexfmtMode || mktexfmt_loop="" 
   case :$mktexfmt_loop: in
     abort "Infinite recursion detected, giving up!" ;;

If anyone has a different idea please let me know. And if nobody objects
I will commit that to the texlive repository.

Best wishes


Norbert Preining                preining@{jaist.ac.jp, logic.at, debian.org}
JAIST, Japan               TU Wien, Austria            Debian TeX Task Force
gpg DSA: 0x09C5B094   fp: 14DF 2E6C 0307 BE6D AD76  A9C0 D2BF 4AA3 09C5 B094
RIPON (vb.)
(Of literary critics.) To include all the best jokes from the book in
the review to make it look as if the critic thought of them.
			--- Douglas Adams, The Meaning of Liff

More information about the tex-k mailing list