Hi Hans,

With the LuaMetaTeX-based ConTeXt wrapper, it's not generally possible
to run ConTeXt from a symlinked binary in another directory. This shows
up if someone makes symlinks in "/usr/bin" so that they can avoid adding
anything to their $PATH.

If you make run a symlink to the LuaMetaTeX-based ConTeXt wrapper, it
looks for texmfcnf.lua relative to the symlink location, not the symlink
target. With the old LuaTeX/kpse-based wrapper, the script would look
for texmfcnf.lua relative to the symlink target.

I know that my description above is terrible, so here's a demo:

   $ bin=$(mtxrun --expand-var TEXMFOS | head -1)/*
   $ cd $(mktemp -d)
   $ ln -s $bin/luatex $bin/luametatex $bin/context $bin/context.lua 
$bin/mtxrun $bin/mtxrun.lua .
   $ ./context --nofile
   $ ./context --luatex --nofile
Running the above commands used to work with the old LuaTeX/kpse-based
wrapper, but it doesn't work any more. I was able to ""fix"" this by
adding the lines

   if os.selfpath then
       environment.ownbin = lfs.symlinktarget(os.selfpath .. io.fileseparator 
.. os.selfname)
       environment.ownpath = environment.ownbin:match("^.*" .. io.fileseparator)
       environment.ownpath = kpse.new("luatex"):var_value("SELFAUTOLOC")
       environment.ownbin = environment.ownpath .. io.fileseparator .. (arg[-2] 
or arg[-1] or arg[0] or "luatex"):match("[^" .. io.fileseparator .. "]*$")
to mtxrun.lua, right below the line

   package.loaded["data-ini"] = package.loaded["data-ini"] or true
but this is obviously not a very good fix.

There are some threads with more details at:

Those links only discuss TL, but I get the same issue if I make a symlink
to the standalone ConTeXt files. 

-- Max
If your question is of interest to others as well, please add an entry to the 

maillist : ntg-context@ntg.nl / https://www.ntg.nl/mailman/listinfo/ntg-context
webpage  : https://www.pragma-ade.nl / http://context.aanhet.net
archive  : https://bitbucket.org/phg/context-mirror/commits/
wiki     : https://contextgarden.net

Reply via email to