Taco Hoekwater
Frank Küster wrote:
Can you point me to the place where it is documented which calls are needed to be called
I was going to say: on the wiki, but that clearly wouldn't work this time.
To actually update ConTeXt, assuming you already have a relatively modern context installed, you say
# ctxtools --update
and that fetches the zip file(s) from the pragma site (or a mirror), unpacks them, and updates the various perl and ruby scripts that come with ConTeXt.
When this is done on a system where ConTeXt first came with a TeXlive or teTeX installation, will this replace existing files, or will it put the updated new files in TEMXFLOCAL or TEXMFHOME, respectively? Ah, I think you have answered this already below.
You have to be root for this when you want to update the global install, otherwise you have a few extra caveats, see below.
After a succesful update, you have to run
# texexec --make --all [--xetex | --aleph | --pdftex] <formats>
Where <formats> are the desired formats to run. The accepted list at the moment is: the eight ConTeXt formats, in both long ("cont-en" etc.) and short from ("en","nl","de","it","fr","cz", "ro","uk"), and "mptopdf", and the metapost mems "mpost" and "metafun".
So I guess this is the call that would also be needed if the update itself goes via a package management, i.e. if one installs a new version of the Debian ConTeXt package.
This works fine if you are root, and had a previous context update done already. If you have not already and/or are not root, then you have two big problems:
* TEXFORMATS as shipped with teTeX/TL is uncomplete: there is that missing format-specific subdirectory.
So I guess TeXlive (and the existing teTeX packages within Linux/BSD/... distributions) should do that, so that modern ConTeXt just works. If you are not root, then
you have to create a local texmf.cnf to overrule the default texmf.cnf. I have:
TEXFORMATS = .;$TEXMF/web2c/{$engine,}
because context's texexec pushes the $engine setting to the environment, this works fine (Originally this was supposed to be handled by kpathsea, but like I said, that never got off the ground)
It might be possible by setting, in texmf.cnf, TEXFORMATS.xetex = .;$TEXMF/web2c{xetex,} TEXFORMATS.pdftex = .;$TEXMF/web2c{pdftex,} and so on. I'm not sure, however; this of course depends on which progname ConTeXt uses (so it might need to be TEXFORMATS.cont-xetex or whatever).
Not using texexec is not a big deal in itself, as long as you restrict yourself to using pdfetex and know how to edit the fmtutil config file, I guess. That's why you sometimes see that approach promoted on the wiki.
I think, with the TEXFORMATS.$engine setup working, it should be possible to use both, fmtutil and texexec, and get the same formats - texexec might still be better in doing other update tasks.
* TEXFONTMAPS is also wrong: it makes pdftex (and dvipdfmx as well, I guess) find the mapfiles for dvips before their own mapfiles (those are shipped with ConTeXt).
This also sounds like a bug in TeXlive/teTeX.
* Lastly, ctxtools --update does a kpsewhich on context.tex to find where to install the updated files. That only works if you have write permission for that directory (i.e. you are root), or if you have done a private install already.
So this means -update will always try to overwrite an existing installation, and not automatically search for a writable directory that's earlier in the TEXMF path? Even not as a fallback? This sounds as if this tool could be improved.
I think that is all, but I may have missed something, so if you read this message and know a thing or two about updating, please double check my text. Thanks in advance.
I think it does help a lot, and we can work from there, testing with the Debian ConTeXt package. Regards, Frank -- Dr. Frank Küster Single Molecule Spectroscopy, Protein Folding @ Inst. f. Biochemie, Univ. Zürich Debian Developer (teTeX/TeXLive)