Luaotfload still broken
Bruno Voisin
bvoisin at icloud.com
Thu Feb 29 18:28:25 CET 2024
Contrary to what I wrote this morning, it seems luaotfload is still not OK.
Dick Koch suggested a simple experiment: rename the TEXMFVAR folder to something else, so LuaTeX doesn't see it. On the Mac, for example, rename ~/Library/texlive to ~/Library/texlive-tmp. Then typeset any LuaTeX document, for example
% !TEX TS-program = LuaLaTeX
\documentclass{article}
\begin{document}
Hello
\end{document}
Doing that, I get
This is LuaHBTeX, Version 1.18.0 (TeX Live 2024)
restricted system commands enabled.
(./ellipsoid.tex
LaTeX2e <2023-11-01> patch level 1
L3 programming layer <2024-02-20>
luaotfload | load : FATAL ERROR
luaotfload | load : × Failed to load "fontloader" module "basics-gen".
luaotfload | load : × Error message:
luaotfload | load : × "...024/texmf-dist/tex/luatex/luaotfload/luaotfload-init.lua:301: system : no writeable cache path, quiting".
stack traceback:
...ive/2024/texmf-dist/tex/luatex/luaotfload/luaotfload.lua:200: in local 'load_fontloader_module'
...024/texmf-dist/tex/luatex/luaotfload/luaotfload-init.lua:303: in upvalue 'init_main'
...024/texmf-dist/tex/luatex/luaotfload/luaotfload-init.lua:590: in function 'luaotfload-init.lua'
...ive/2024/texmf-dist/tex/luatex/luaotfload/luaotfload.lua:322: in field 'main'
[\directlua]:1: in main chunk
...024/texmf-dist/tex/luatex/luaotfload/luaotfload-init.lua:301: system : no wr
iteable cache path, quiting
stack traceback:
[C]: in function 'error'
...024/texmf-dist/tex/luatex/luaotfload/luaotfload-init.lua:301: in function '
os.exit'
...ive/2024/texmf-dist/tex/luatex/luaotfload/luaotfload.lua:203: in local 'loa
d_fontloader_module'
...024/texmf-dist/tex/luatex/luaotfload/luaotfload-init.lua:303: in upvalue 'i
nit_main'
...024/texmf-dist/tex/luatex/luaotfload/luaotfload-init.lua:590: in function '
luaotfload-init.lua'
...ive/2024/texmf-dist/tex/luatex/luaotfload/luaotfload.lua:322: in field 'mai
n'
[\directlua]:1: in main chunk.
<everyjob> ...ring \\def\string \\encodingdefault{OT1}')end }
\let \f at encoding \encoding...
If now I run "luaotfload-tool --update" in a Terminal window, everything goes fine, the font name database is created, and afterwards the document typesets without any problem.
So it seems the cache path problem is solved when luaotfload-tool is run in a shell, but not when it is run as a sub-process of a LuaTeX run.
All this on the Mac.
Bruno Voisin
PS To be clear: all the above is after applying the latest luaotfload update, so luaotfload-tool is at version 3.28. And, to be clearer, things did not use to be this way: as far as I remember, with TL 2023 and before, when TEXMFVAR did not exist, LuaTeX did not have any problem calling luaotfload-tool and creating the font name database during a run.
More information about the tex-live
mailing list.