[tex-live] No context in TL2023 source ?

Ken Moffat zarniwhoop at ntlworld.com
Tue Mar 21 20:14:22 CET 2023

Cc'ing tldistro because I had intended to post there.

On Tue, Mar 21, 2023 at 02:18:24PM +0100, Dr. Werner Fink wrote:
> On 2023/03/21 11:00:32 +0100, Dr. Werner Fink wrote:
> > On 2023/03/21 15:19:03 +0900, Norbert Preining wrote:
> > > On Mon, 20 Mar 2023, Ken Brown wrote:
> > > > I'd also be interested in hearing from distro maintainers how they're
> > > > planning to handle this.
> > > 
> > > Not a distro maintainer anymore, but that will be horrible and most
> > > probably context will be removed from Debian (but that is not my call).
> > 
> > I run into the same problem as the rpm spec file generator uses the
> > db texlive.tlpdb.xz of current TeXLive 2023 as well as the texlive-20230311-source.tar.xz
> > and this leads on building the binaries:
> > 
> > 
> > [ 4699s] Processing files: texlive-context-bin-2023.20230311.svn66562-0.x86_64
> > [ 4699s] error: File not found: /home/abuild/rpmbuild/BUILDROOT/texlive-2023.20230311-0.x86_64/usr/bin/context
> > [ 4699s] error: File not found: /home/abuild/rpmbuild/BUILDROOT/texlive-2023.20230311-0.x86_64/usr/bin/context.lua
> > [ 4699s] error: File not found: /home/abuild/rpmbuild/BUILDROOT/texlive-2023.20230311-0.x86_64/usr/bin/luametatex
> > [ 4699s] error: File not found: /home/abuild/rpmbuild/BUILDROOT/texlive-2023.20230311-0.x86_64/usr/bin/mtxrun
> > [ 4699s] error: File not found: /home/abuild/rpmbuild/BUILDROOT/texlive-2023.20230311-0.x86_64/usr/bin/mtxrun.lua
> > 
> > if ConTeXt is no included in the source tar ball I wonder why the ConTeXt
> > packages are still part of the texlive.tlpdb
> > 
> > Werner

Yes, that is a good question.

> I wonder how this is supposed to work ... even if I use cmake with 'Unix Makefiles'
> I do not see how the resulting binaries will work out of the box
>   xzgrep -i ^execute texlive.tlpdb.xz | grep AddFormat | grep -ic luametatex
>   0
> messages about missing format files as I see are not what most users expect.
> And most user are not able/willingly to search in the documentation how to
> generate the missing formats.
> Werner
Hi All,

Not directly related to Werner's tlpdb issues, but I got the formats
working, at least for mkiv, at 5 a.m.

I'm aftraid this is going to be a long email about getting working
context and metatex from the source tarball, so I'll start with a
little history about what we (Beyond Linux Drom Scratch) do in
general for TeXLive.

In BLFS at some point before my time we moved from TeTeX to TeXLive
and we installed the full binary, then built texlive source over the
top of it.  At some point a user noticed that the 'extras' (asy,
biber, xindy in those days) did not get rebuilt.  Joe Muggins here
took a look and eventually created or copied some test files to see
if my new builds worked.

As an extension of that I eventually copied a minimal mkiv file from
wikipedia.  At one point I tried to understand the docs in the
garden, but most seemed to be out of date and I figured it would be
a continually moving target.  Since I have only minimal interest in
context, I gave up.

What is particularly unusual about our installs is that we install
system-wide and do not normally support package updates during the
year.  And we install in /opt/texlive/YYYY with binaries in
bin/a86_64-linux (or i386 if anyone uses that).

Using the luametatex-230310 tarball we can see that it is very

(i) There is a build.sh which apparently does the right
thing as far as the garden is concerned for windows users and for
some linux platforms.

(ii) There is a license.txt file which mentions the static libraries
it includes.  Among those is zlib, but there is a ' # ' in front of
that - I think that means it was originally included, but has now
been removed.  I cannot see zlib in the code.  It includes miniz.
In BLFS we don't make a fuss about static libs only used within one
package and not installed.

(iii) It uses FLAGS instead of CFLAGS - for BLFS, not a problem, and
for my own systems I regard this as not worth trying to use my own
flags.  Distros might differ.

(iv) It uses cmake, fortunately unlike some cmake packages it is
intended to use ninja.  There are no tests.

(v) Trying an install, it *only* installs luametatex, and it puts
that in a bin/ directory at the end of the supplied prefix, which
might work if you install in plain /usr or /usr/local.

(vi) It fails to provide the symlinks needed to execute mtxrun and
context.  After managing to get a 2023 install_tl_unx and waiting
for a local mirror to be updated to 2023 I managed to install only
the context packages (so, some fonts and other stuff) in
/tmp/CONTEXT on a different machine, test it (both mtxrun and
context existed, and worked), find those programs (symlinks) and
then try on my source install to replicate.

I then hit 'startup error : no format file given, quitting' when I
tried to run 'mtxrun --generate'.  After looking at strace output I
determined that mtxrun and context use program files with a '.lua'
extension (i.e. mtxrun.lua).  Those two are the only two .lua
program files on my binary context install, and they link to files
with the same names in texmf-dist/scripts/context/lua/$F.

So, I can now run my minimal mkiv context example.

for me, with TEXLIVE_PREFIX set to /opt/texlive/2023 and TEXARCH set
to x86_64-linux/ the follwoing commands appear to work.  I say
'appear' because I originally had a typo for the context symlink
(xontext.lua in name and target - fixed the ame, forgot to remove it
to correct the target, hit the startup error trying to run context).

I'm also using ninja -v because I like the detail.

mkdir build
cd build

      -DCMAKE_BUILD_TYPE=Release   \
      -GNinja ..

ninja -v

(remainder as a user)

install -v -m755 luametatex ${TEXLIVE_PREFIX}/bin/${TEXARCH}/
ln -svf luametatex ${TEXLIVE_PREFIX}/bin/${TEXARCH}/context
ln -svf luametatex ${TEXLIVE_PREFIX}/bin/${TEXARCH}/mtxrun

for F in context.lua mtxrun.lua ; do
ln -sfv /$TEXLIVE_PREFIX/texmf-dist/scripts/context/lua/$F \
        /$TEXLIVE_PREFIX/bin/$TEXARCH/$F >>$KM_LOG 2>&1

mtxrun --generate

Hope this might be useful to someone.

Often there is no more than a little plaque to reveal that, against
all gynaecological probability, someone very famous was born halfway
up a wall.                 -- Equal Rites

More information about the tex-live mailing list.