Hi Hans,

On Thu, 2025-06-12 at 13:56 +0200, Hans Hagen wrote:
> I uploaded a new version,

Looks like my autoupdating scripts worked well, the new version should
be available in TeX Live as of a few hours ago.

In case anyone ever encounters any critical bugs in the version packaged
by TeX Live, it's pretty easy to downgrade the prior version:

    $ tlmgr restore context 75454
    $ tlmgr restore context.x86_64-linux 75425

(run "tlmgr restore context" to list the available versions)

Or if you need to downgrade to an even earlier version, it's only
slightly more involved:

    $ rm 
/usr/local/texlive/2025/bin/x86_64-linux/{mtxrun,mtxrun.lua,context,context.lua,luametatex}
    $ tlmgr install --reinstall --file \
          
https://texlive.info/tlnet-archive/2025/06/12/tlnet/archive/context.tar.xz \
          
https://texlive.info/tlnet-archive/2025/06/12/tlnet/archive/context.x86_64-linux.tar.xz

(replace the "2025/06/12" with whatever date you want to downgrade to)

> -- additional warnings (or abort) in case one runs from tex live and
> missing or expected files

Sure, fine by me. One possible idea: instead of relying on the file
luametatex.h existing/not existing, I could add a "distributed_by" key
(or similar) to the texmfcnf.lua file in TeX Live. Then ConTeXt could
display the contents of that key in the log file, right below the
ConTeXt version, so that it's clear to users (and people reading
messages to the mailing list) that they're using an unofficial version.

> ps. i might reintroduce the beta/current updating scheme at some point
> .. still undecided

Also fine by me; let me know if you ever want me to make any changes to
the packaging in TeX Live.

> % texmf-dist/tex/context/modules/mkxl/m-texlive.mkxl
> %D This is a variant on code I found in a \TEXLIVE\ installation in \type
> %D {cont-sys.mkxl} in 2025. In \type {cont-sys.mkxl} one can add this:
> %D
> %D \starttyping
> %D \usemodule[texlive]
> %D \stoptyping

I've updated cont-sys.mkxl with your new code, thanks!

> %D I guess that the reason for this hackery is that a \TEXLIVE\ doesn't do
> %D an update of the file database after installing some \CONTEXT\ related
> %D files. In a similar manner, when a used updated something \CONTEXT\ we
> %D don't generate an lsr file. Here both are checked.

So TeX Live (tlmgr) always runs "mtxrun [--luatex] --generate" and
"context [--luatex] --make" whenever it modifies any ConTeXt files, but
since most users install TeX Live to "/usr/local/texlive/$YEAR" (or
similar), tlmgr runs as root, so it can only update the caches/formats
in "/usr/local/texlive/$YEAR/texmf-var/". But if a someone ever runs
"mtxrun --generate" or "context --make" as a regular user, ConTeXt will
create caches/formats in "~/.texlive$YEAR/texmf-var/", and then it will
ignore all the files in "/usr/local/texlive/$YEAR/texmf-var/", even if
they're newer than the user-local ones.

I wrote that code as a quick hack back in 2023, but as we all know,
quick hacks tend to stay around far longer than they should :). If
there's some way to tell ConTeXt to always use the system's filename
cache files for "root == 'selfautoparent:texmf-dist'", and then the
user-local filename cache files for other roots, that would probably be
even better.

Thanks again,
-- Max
___________________________________________________________________________________
If your question is of interest to others as well, please add an entry to the 
Wiki!

maillist : ntg-context@ntg.nl / 
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