
Hi all, Previously, ConTeXt was imported into TeX Live once per year, via a TDS archive from CTAN. There were a few problems with this: 1. To handle this import, the TeX Live maintainers had to create lots of custom scripts, and even then, the import still needed lots of manual effort. 2. ConTeXt received zero updates throughout the year, not even for bug fixes. So even if a bug were fixed upstream, TeX Live users would need to wait up to a full year. 3. ConTeXt contained a number of support files for non-free fonts, which are against TeX Live's policies, so they were removed. However, this meant that there was no easy way for users to install these files. 4. The ConTeXt TDS archive does not contain all files present in the ConTeXt Standalone Distribution. Notably, this includes the ConTeXt companion fonts, which had to be manually imported into TeX Live (and were briefly mispackaged last year). Because of this, I've taken over packaging ConTeXt for CTAN and TeX Live. The very first release via this new process has already been imported into TeX Live, and should reach the CTAN mirrors shortly. I've set up some scripts that automatically repackage the contents of the ConTeXt Standalone Distribution every day, so the ConTeXt in TeX Live should never be more than a couple days older than the official upstream version. In addition, I've created a new "context-nonfree" package on TLContrib that contains any files excluded from TeX Live for policy reasons, so that users can easily install these optional support files. The primary goal of this project is to make an installation of TeX Live with "scheme-context" (plus "context-nonfree" from TLContrib) behave identically to the ConTeXt Standalone Distribution with all modules installed. Note that "scheme-full" (AKA the default "Full" TeX Live installation) is a superset of "scheme-context", which means that most TeX Live users will now have a complete ConTeXt installation by default. Repacking ConTeXt took quite a bit of work, so I'm sure that I've introduced some mistakes. If you do notice any bugs, the best place to report them would be at the project's GitHub page https://github.com/gucci-on-fleek/context-packaging/issues/ but if you prefer, you can also message the public mailing lists ntg-context@ntg.nl or tex-live@tug.org, or email me privately. If you're interested to read more about this repackaging process, all the scripts, some additional documentation, and the build logs are available on GitHub: https://github.com/gucci-on-fleek/context-packaging And a special thanks to Karl Berry, Manfred Lotz, Norbert Preining, and Hans Hagen for helping out with all of this! Thanks, -- Max

Dear Max, On Sun, 8 Jun 2025 at 02:10, Max Chernoff via tex-live wrote:
I've taken over packaging ConTeXt for CTAN and TeX Live.
Thanks a lot for this, but I have one question: what's the plan with luametatex binaries? Would the binaries then be updated multiple times per year, and if so, from which source? Mojca

Hi Mojca On Sun, 2025-06-08 at 17:44 +0200, Mojca Miklavec wrote:
On Sun, 8 Jun 2025 at 02:10, Max Chernoff via tex-live wrote:
I've taken over packaging ConTeXt for CTAN and TeX Live.
Thanks a lot for this, but I have one question: what's the plan with luametatex binaries? Would the binaries then be updated multiple times per year, and if so, from which source?
It's complicated. For most platforms, I'm running $ mtxrun --script install --platform=$PLATFORM --update to install the binaries from the Standalone Distribution, and then I'm copying these directly into TeX Live. These binaries should always be functional since they're exactly what's distributed upstream. This applies to the following platforms: amd64-freebsd i386-linux windows x86_64-linux x86_64-linuxmusl For macOS, the Standalone Distribution uses separate aarch64 and x86_64 binaries, but TeX Live uses a single universal binary. For those, I'm installing the binaries from the Standalone Distribution as normal, and then I'm directly copying the x86_64 binary into x86_64-darwinlegacy, and I'm merging the x86_64 and aarch64 binaries into a single universal binary using llvm-lipo. This applies to the following platforms: universal-darwin x86_64-darwinlegacy The ConTeXt build farm builds LuaMetaTeX binaries for a bunch of platforms not directly supported by the ConTeXt installer. The problem is that there are only 2 branches---"main", which was last updated in February (and therefore too old to work with an updated ConTeXt) https://build.contextgarden.net/dl/luametatex/main/ and "work", which is updated daily-ish (and therefore often too new to work with the stable ConTeXt versions) https://build.contextgarden.net/dl/luametatex/work/ However, since my build/upload script runs daily, it's pretty unlikely that the contents of the "work" branch will be any newer than the ConTeXt TEXMF files, except in cases where I'm releasing to TeX Live more than a day after an upstream ConTeXt version was released (which is what happened for this first initial release, but shouldn't happen often in the future). I don't really like this solution, so hopefully you/me/Hans can figure something out so that it isn't necessary for future releases. This applies to the following platforms: aarch64-linux armhf-linux i386-freebsd i386-solaris x86_64-solaris And then there are the platforms for which the Build Farm does not generate binaries. Some platforms have agreed to watch the TeX Live/ CTAN/GitHub releases and manually rebuild LuaMetaTeX when needed; this applies to the following platforms: amd64-netbsd i386-netbsd And some platforms decided to not bother keeping up with the frequent rebuilds, which isn't really a big deal since the initial release of TL25 didn't include LuaMetaTeX binaries for these platforms anyways. This applies to the following platforms: x86_64-cygwin There are also some platforms supported by the ConTeXt installer or the Build Farm, but for whom TeX Live does not officially distribute any binaries. I'm including the binaries for these platforms in the zip archives on CTAN and GitHub, but they're not included in TeX Live. This applies to the following platforms: amd64-openbsd73 sparc-solaris There are also lots of platforms supported by neither TeX Live nor the ConTeXt Build Farm, but with binaries available from Nelson Beebe's site: https://ftp.math.utah.edu/pub/texlive-utah/ I'm not doing anything about any of these platforms, so those users are on their own. Hopefully that clarifies things a little bit. Thanks, -- Max

On Mon, 9 Jun 2025, 00:27 Max Chernoff wrote:
For macOS, the Standalone Distribution uses separate aarch64 and x86_64 binaries, but TeX Live uses a single universal binary. For those, I'm installing the binaries from the Standalone Distribution as normal, and then I'm directly copying the x86_64 binary into x86_64-darwinlegacy, and I'm merging the x86_64 and aarch64 binaries into a single universal binary using llvm-lipo.
The binary universal-darwin should probably be signed and notarised in order to be committed to TeX Live. The build farm does not produce signed binaries yet. Mojca

Hi Mojca, On Mon, 2025-06-09 at 07:56 +0200, Mojca Miklavec wrote:
On Mon, 9 Jun 2025, 00:27 Max Chernoff wrote:
For macOS, the Standalone Distribution uses separate aarch64 and x86_64 binaries, but TeX Live uses a single universal binary. For those, I'm installing the binaries from the Standalone Distribution as normal, and then I'm directly copying the x86_64 binary into x86_64-darwinlegacy, and I'm merging the x86_64 and aarch64 binaries into a single universal binary using llvm-lipo.
The binary universal-darwin should probably be signed and notarised in order to be committed to TeX Live. The build farm does not produce signed binaries yet.
Karl and I checked with Richard Koch before starting this, and Richard thought that distributing an unsigned LuaMetaTeX binary in TeX Live should be okay. But if this causes problems for anyone on macOS, please let me know and we can try and figure out a solution. Thanks, -- Max

On Mon, 9 Jun 2025, 00:27 Max Chernoff wrote:
The problem is that there are only 2 branches---"main", which was last updated in February (and therefore too old to work with an updated ConTeXt)
https://build.contextgarden.net/dl/luametatex/main/
and "work", which is updated daily-ish (and therefore often too new to work with the stable ConTeXt versions)
https://build.contextgarden.net/dl/luametatex/work/
However, since my build/upload script runs daily, it's pretty unlikely that the contents of the "work" branch will be any newer than the ConTeXt TEXMF files, except in cases where I'm releasing to TeX Live more than a day after an upstream ConTeXt version was released (which is what happened for this first initial release, but shouldn't happen often in the future). I don't really like this solution, so hopefully you/me/Hans can figure something out so that it isn't necessary for future releases.
This sounds a bit dangerous. Hans is explicitly using the work branch to test experimental features that have not even been released in the distribution. Very often those features get thrown away/rewritten based on testing. Mojca

On 6/9/2025 8:07 AM, Mojca Miklavec wrote:
On Mon, 9 Jun 2025, 00:27 Max Chernoff wrote:
The problem is that there are only 2 branches---"main", which was last updated in February (and therefore too old to work with an updated ConTeXt)
https://build.contextgarden.net/dl/luametatex/main/
and "work", which is updated daily-ish (and therefore often too new to work with the stable ConTeXt versions)
https://build.contextgarden.net/dl/luametatex/work/
However, since my build/upload script runs daily, it's pretty unlikely that the contents of the "work" branch will be any newer than the ConTeXt TEXMF files, except in cases where I'm releasing to TeX Live more than a day after an upstream ConTeXt version was released (which is what happened for this first initial release, but shouldn't happen often in the future). I don't really like this solution, so hopefully you/me/Hans can figure something out so that it isn't necessary for future releases.
This sounds a bit dangerous. Hans is explicitly using the work branch to test experimental features that have not even been released in the distribution. Very often those features get thrown away/rewritten based on testing.
one can just get wget http://lmtx.pragma-ade.nl/install-lmtx/context-freebsd-amd64.zip wget http://lmtx.pragma-ade.nl/install-lmtx/context-linux.zip wget http://lmtx.pragma-ade.nl/install-lmtx/context-linux-64.zip wget http://lmtx.pragma-ade.nl/install-lmtx/context-linux-aarch64.zip wget http://lmtx.pragma-ade.nl/install-lmtx/context-linuxmusl-64.zip wget http://lmtx.pragma-ade.nl/install-lmtx/context-mswin.zip wget http://lmtx.pragma-ade.nl/install-lmtx/context-openbsd-amd64.zip wget http://lmtx.pragma-ade.nl/install-lmtx/context-osx-64.zip wget http://lmtx.pragma-ade.nl/install-lmtx/context-osx-arm64.zip wget http://lmtx.pragma-ade.nl/install-lmtx/context-win64.zip wget http://lmtx.pragma-ade.nl/install-lmtx/context-windows-arm64.zip wget http://lmtx.pragma-ade.nl/install-lmtx/texmf.zip wget http://lmtx.pragma-ade.nl/install-lmtx/texmf-context.zip and start from there ----------------------------------------------------------------- Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | www.pragma-ade.nl | www.pragma-pod.nl -----------------------------------------------------------------

Hi Hans, On Mon, 2025-06-09 at 08:27 +0200, Hans Hagen wrote:
one can just get
wget http://lmtx.pragma-ade.nl/install-lmtx/context-freebsd-amd64.zip wget http://lmtx.pragma-ade.nl/install-lmtx/context-linux.zip wget http://lmtx.pragma-ade.nl/install-lmtx/context-linux-64.zip wget http://lmtx.pragma-ade.nl/install-lmtx/context-linux-aarch64.zip wget http://lmtx.pragma-ade.nl/install-lmtx/context-linuxmusl-64.zip wget http://lmtx.pragma-ade.nl/install-lmtx/context-mswin.zip wget http://lmtx.pragma-ade.nl/install-lmtx/context-openbsd-amd64.zip wget http://lmtx.pragma-ade.nl/install-lmtx/context-osx-64.zip wget http://lmtx.pragma-ade.nl/install-lmtx/context-osx-arm64.zip wget http://lmtx.pragma-ade.nl/install-lmtx/context-win64.zip wget http://lmtx.pragma-ade.nl/install-lmtx/context-windows-arm64.zip wget http://lmtx.pragma-ade.nl/install-lmtx/texmf.zip wget http://lmtx.pragma-ade.nl/install-lmtx/texmf-context.zip
and start from there
I'm already doing that for those platforms (except for linux-aarch64, which I had missed; thanks for pointing that out), but the Build Farm also builds binaries for the following platforms https://build.contextgarden.net/dl/luametatex/work/armhf-linux/ https://build.contextgarden.net/dl/luametatex/work/i386-freebsd/ https://build.contextgarden.net/dl/luametatex/work/i386-solaris/ https://build.contextgarden.net/dl/luametatex/work/x86_64-solaris/ but I'm not able to find the corresponding zips on lmtx.pragma-ade.nl. I've tried downloading the following files without success (although it could just be that I'm using the wrong names): http://lmtx.pragma-ade.nl/install-lmtx/context-linux-armhf.zip http://lmtx.pragma-ade.nl/install-lmtx/context-freebsd.zip http://lmtx.pragma-ade.nl/install-lmtx/context-solaris-intel.zip If you think that me copying the latest binaries from "work" will be an issue for those platforms, could you please either tag a new LuaMetaTeX release before copying it into ConTeXt (so that I can download the binaries from "main"), add those platforms to mtx-install.lua and/or lmtx.pragma-ade.nl (so that I can download the binaries with "mtxrun --script install --platform=$PLATFORM --update"), or copy the binaries for those platforms to some other URL that I can download them from? All of those options will work equally well for me, so I have no problem working with whichever one is the easiest for you. Or if you think that copying the latest binaries from "work" will be okay, I can also continue doing that. Thanks, -- Max

On 6/9/2025 9:04 AM, Max Chernoff via ntg-context wrote:
Hi Hans,
On Mon, 2025-06-09 at 08:27 +0200, Hans Hagen wrote:
one can just get
wget http://lmtx.pragma-ade.nl/install-lmtx/context-freebsd-amd64.zip wget http://lmtx.pragma-ade.nl/install-lmtx/context-linux.zip wget http://lmtx.pragma-ade.nl/install-lmtx/context-linux-64.zip wget http://lmtx.pragma-ade.nl/install-lmtx/context-linux-aarch64.zip wget http://lmtx.pragma-ade.nl/install-lmtx/context-linuxmusl-64.zip wget http://lmtx.pragma-ade.nl/install-lmtx/context-mswin.zip wget http://lmtx.pragma-ade.nl/install-lmtx/context-openbsd-amd64.zip wget http://lmtx.pragma-ade.nl/install-lmtx/context-osx-64.zip wget http://lmtx.pragma-ade.nl/install-lmtx/context-osx-arm64.zip wget http://lmtx.pragma-ade.nl/install-lmtx/context-win64.zip wget http://lmtx.pragma-ade.nl/install-lmtx/context-windows-arm64.zip wget http://lmtx.pragma-ade.nl/install-lmtx/texmf.zip wget http://lmtx.pragma-ade.nl/install-lmtx/texmf-context.zip
and start from there
I'm already doing that for those platforms (except for linux-aarch64, which I had missed; thanks for pointing that out), but the Build Farm also builds binaries for the following platforms
https://build.contextgarden.net/dl/luametatex/work/armhf-linux/
that machine is fragile (was a rpi 32)
https://build.contextgarden.net/dl/luametatex/work/i386-freebsd/
idem, hard to update etc (somehow goes off line randomly
https://build.contextgarden.net/dl/luametatex/work/i386-solaris/ https://build.contextgarden.net/dl/luametatex/work/x86_64-solaris/
obsolete stuff, probably unuseable for tex anyway
but I'm not able to find the corresponding zips on lmtx.pragma-ade.nl. I've tried downloading the following files without success (although it could just be that I'm using the wrong names):
http://lmtx.pragma-ade.nl/install-lmtx/context-linux-armhf.zip http://lmtx.pragma-ade.nl/install-lmtx/context-freebsd.zip http://lmtx.pragma-ade.nl/install-lmtx/context-solaris-intel.zip
If you think that me copying the latest binaries from "work" will be an issue for those platforms, could you please either tag a new LuaMetaTeX release before copying it into ConTeXt (so that I can download the binaries from "main"), add those platforms to mtx-install.lua and/or lmtx.pragma-ade.nl (so that I can download the binaries with "mtxrun --script install --platform=$PLATFORM --update"), or copy the binaries for those platforms to some other URL that I can download them from?
we only tag a major update (so normally tex live code freeze, maybe around the meeting) .. i don't want a git repos with intermediate crap (too much noise)
All of those options will work equally well for me, so I have no problem working with whichever one is the easiest for you. Or if you think that copying the latest binaries from "work" will be okay, I can also continue doing that.
juist stick with the major platforms (i knwo that soem context users on e.g. moving targets like openbsd just compile themselves as it relates to specific version of the OS we used to generate a few) 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 -----------------------------------------------------------------

Hi Hans, On Mon, 2025-06-09 at 13:29 +0200, Hans Hagen via ntg-context wrote:
juist stick with the major platforms (i knwo that soem context users on e.g. moving targets like openbsd just compile themselves as it relates to specific version of the OS we used to generate a few)
Ok, Karl said that he's okay with that, so I'll remove the binaries for those platforms in the next update. Future updates will only include the "officially-supported" binaries from lmtx.pragma-ade.nl. Thanks, -- Max
participants (4)
-
Hans Hagen
-
Hans Hagen
-
Max Chernoff
-
Mojca Miklavec