On 3/17/2026 11:30 AM, Max Chernoff wrote:

Ok, I'm pretty sure that I know exactly what's causing this. TeX Live
usually runs "mtxrun (--luatex) --generate" at installation time, but
I've been told that MacTeX specifically disables this step.

The reason is that on every single other platform, TeX Live locally
builds the format files for every format/engine combination when it is
installed, but MacTeX builds all the format files on the server and then
just uses those files locally. I believe that this is due to some
Apple-imposed limit on how long it can take to install a piece of
software, which TL would exceed without pregenerating the format files
remotely.

A few tex-lives ago i actually checked on a mac (obsolete now by lack of osx updates) and one thing that complicates matters is that one has no clue on what paths is actually used due to symbolic links that point to other links that ... etc that has some historic reasosn that then make this "let's not touch this because who knows what i might break" situations. A regular lmtx install is simpler so that often works, but texlive has some history to take care of.

I was under the (mistaken) impression that this meant that MacTeX would
still run "mtxrun --generate" at install time, but the email never
actually said that anywhere. And the behaviour that you mentioned
_almost certainly_ means that "mtxrun --generate" has never been ran as
root.

In the end I suppose that it is a miracacle that it does somehow works on a mac given this notarizing stuff.

Anyways, the short answer is that this is probably my fault :). I'll
email the MacTeX people to see if there's any way that we can fix it.

Good.

With at least two other participants (Linux and Windows, AFAIR) it
worked, but it’s possible that files from TL25 were used.

The packaging process tests on Linux before any releases, and I use the
ConTeXt in TL on Linux at least once a week (and usually multiple times
daily), so it should be pretty rare that things break there. I'm not
able to test the other platforms, so I rely on people reporting issues.

Indeed, esp as it changed over time where e.g. configurations are put. I remember the times when these huge permutasions of all possible TEXMF etc paths were compiled into linux binaries (which of course leads to lots of checks and a slow down; there are reasons why we cached nested calls as esp all these "kpsewhich shebang launchers" were a real slow down).

Anyways, I've tested again just now, and ConTeXt works fine for me on
Linux x86_64, both on a fresh installation (via the Island of TeX
container images) and on my main installation upgraded from TL22.

Ok. One of these day we will push an update and you can check again.

A common problem of previous TLs (didn’t check 26) was that
lua(meta)tex’s cache was built with administrator rights on
installation. Running as a normal user, this was not writable, so
lua(meta)tex created a new one, that resulted in conflicts about files
not found or found in wrong places.
Please avoid creating anything for ConTeXt with admin rights.

That's actually the exact opposite of what's happening here :). The
issue is that ConTeXt doesn't know how to find itself until you've ran
"mtxrun --generate" at least once. Using the Standalone Distribution:

     $ export PATH=/opt/context/tex/texmf-linux-64/bin/:/usr/bin/
     $ sudo rm -rf /opt/context/tex/texmf-cache/luametatex-cache/
     $ rm -rf ~/luametatex-cache/context/

     $ context --nofile
     mtxrun          | unknown script 'mtx-context.lua' or 'mtx-mtx-context.lua'

     $ sudo /opt/context/tex/texmf-linux-64/bin/mtxrun --generate
     resolvers       | resolving | variable 'SELFAUTOLOC' set to 
'/opt/context/tex/texmf-linux-64/bin'
     [...]
     resolvers       | resolving | saving tree 'selfautoparent:texmf-context'
     resolvers       | caches | hashing tree 'selfautoparent:texmf-context', 
hash 'fb39a92c95ceca857c3f2d0ee48a2ad3'
     [...]
     mtxrun          | elapsed lua time: 0.080 seconds

     $ context --nofile
     mtx-context     | warning: no format found, forcing remake (commandline 
driven)
     [...]
     resolvers       | resolving | saving tree 'selfautoparent:texmf-context'
     resolvers       | caches | hashing tree 'selfautoparent:texmf-context', 
hash 'fb39a92c95ceca857c3f2d0ee48a2ad3'
     [...]
     resolvers       | formats | executing runner 'make luametatex format': 
/opt/context/tex/texmf-linux-64/bin/luametatex --ini  --socket --shell-escape 
--lua=/opt/context/tex/texmf-context/tex/context/base/mkxl/luat-cod.lmt 
/opt/context/tex/texmf-context/tex/context/base/mkxl/cont-en.mkxl
     [...]
     resolvers       | formats | context file     : 
/opt/context/tex/texmf-context/tex/context/base/mkxl/cont-en.mkxl
     resolvers       | formats | run time         : 1.204 seconds
     resolvers       | formats | return value     : okay
     [...]
     system          > ConTeXt  ver: 2026.02.10 16:39 LMTX  fmt: 2026.3.17  
int: english/english
     [...]
     mkxl run stats  > runtime: 0.192 seconds
     system          | total runtime: 1.472 seconds of 1.503 seconds

Now, this doesn't necessarily need to be ran as an administrator, but
having ConTeXt not work at all until every user manually runs "mtxrun
--generate" beforehand isn't very user friendly. So currently, TL runs
"mtxrun --generate" and "mtxrun --luatex --generate" on every update as
an administrator, but it does _not_ run "context --make". When running
as an ordinary user, ConTeXt will still ignore the system-level filename
database and generate its own, but this ensures that users will never
get the dreaded "unknown script 'mtx-context.lua'" error message.

Sounds complicated.

Previous versions of TL also ran "context --make" as an administrator
whenever TL updated; this was completely harmless since ConTeXt would
ignore these files, but it added unnecessary time to the updates, so
this was removed for TL26.

Sound like fundamental changes.

FWIW, the Standalone Distribution also rebuilds the filename database
and formats as an administrator whenever you update it:

     $ export PATH=/opt/context/tex/texmf-linux-64/bin/:/usr/bin/
     $ sudo sh /opt/context/install.sh
     [...]
     mtx-install     | server   : lmtx.pragma-ade.com
     mtx-install     | instance : install-lmtx
     mtx-install     | platform : linux-64
     mtx-install     | system   : unix
     mtx-install     | updating tex/texmf, 658 files
     mtx-install     | updating tex/texmf-context, 5470 files
     [...]
     mtx-install     | running: /opt/context/tex/texmf-linux-64/bin/mtxrun 
--generate
     [...]
     resolvers       | formats | executing runner 'make luametatex format': 
/opt/context/tex/texmf-linux-64/bin/luametatex --ini  --socket --shell-escape 
--lua=/opt/context/tex/texmf-context/tex/context/base/mkxl/luat-cod.lmt 
/opt/context/tex/texmf-context/tex/context/base/mkxl/cont-en.mkxl
     [...]
     mtx-install     | update, done
     The following settings were used:

       server   : lmtx.contextgarden.net,lmtx.pragma-ade.com,lmtx.pragma-ade.nl
       instance : install-lmtx
       extras   :
       ownpath  : /opt/context
       platform : linux-64

I never really checked that as normally I'm 'root' when I do such things.

On Mon, 2026-03-16 at 10:35 +0100, Henning Hraban Ramm wrote:
I just got the report of a new (not-yet-)user on Arch Linux that it
wouldn’t work.

Was this the version of TL installed from tug.org (or one of the various
CTAN mirrors), or the version of TL packaged in the Arch repos? Because
I've heard reports that the TL packaged in Arch has quite a few issues.
I can _try_ and help with the version in the Arch repos, but since I
don't use Arch myself, I can't really test anything.

I think so, arch. Lucky us no bsd as that also diferent depending on what one has.

We should collect the details under which circumstances it fails:
- OS / processor architecture
- installed as user/admin
- previous installation present

Yes, that would be much appreciated, thank you! Feel free to report this
wherever is the most convenient to you; either on GitHub, via a private
email to me, to this list, etc.

Good. Also on the wiki.

Hans

-----------------------------------------------------------------
                                          Hans Hagen | PRAGMA ADE
              Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
       tel: 038 477 53 69 | www.pragma-ade.nl | www.pragma-pod.nl
-----------------------------------------------------------------
___________________________________________________________________________________
If your question is of interest to others as well, please add an entry to the 
Wiki!

maillist : [email protected] / 
https://mailman.ntg.nl/mailman3/lists/ntg-context.ntg.nl
webpage  : https://www.pragma-ade.nl / https://context.aanhet.net (mirror)
archive  : https://github.com/contextgarden/context
wiki     : https://wiki.contextgarden.net
___________________________________________________________________________________

Reply via email to