circular dependency when building LaTeX?
joseph.wright at morningstar2.co.uk
Wed Jun 23 16:21:27 CEST 2021
On 23/06/2021 14:51, Jonathan Fine wrote:
> Phelype Oleinik wrote:
>> Usually |.ins| files should be run with plain TeX, so |tex| or |pdftex|.
>> In fact, LaTeX has its own |format.ins|, which would be a LaTeX->LaTeX
>> circular dependency, so you need plain for that.
> The original poster wrote
>> I’m trying to update the TeX Live version in Guix¹ to 2021.
> This sounds like there was something that worked for the 2020 TeX Live
> sources, but doesn't work for the 2021 TeX Live sources.
> Does anyone know, is there a publicly viewable automated build from the
> 2021 TeX Live sources? I have in mind for example continuous integration
> or github actions.
TeX Live and MiKTeX don't build LaTeX from sources, rather from the
TDS-style material the team upload to CTAN. That already has the
extraction done. However, of course we have to build those in the first
place, and that is done routinely as the test suite for LaTeX runs in an
isolated setup that doesn't pull in the standard TeX tree. We don't
extract the expl3 code at the same time, but rather use a pre-extracted
static version, such that the testing for LaTeX2e and for expl3 is
independent. You can take a look at all of this if wish: it's all part
of the setup in the GitHub repos for LaTeX (we use Travis-CI rather than
GitHub Actions, but the idea is much the same).
Not that DocStrip, which ultimately does the extraction of .dtx sources,
doesn't even need plain TeX: you can use docstrip.dtx with IniTeX to
extract everything. If starting from scratch, you could extract both
latex.ltx and expl3-code.tex (etc.) using
then add these together to build. However, it's a *lot* easier to use
l3build to extract and install everything in whatever tree you wish -
the build scripts 'know' which files to copy. Even that is likely
overkill as, as I say, there are ready-to-install TDS-style zip files on
(We of course have worried about the bootstrapping question, which is
why DocStrip works with IniTeX and l3build doesn't rely on a .dtx for
the Lua code, so l3build can be used directly to install DocStrip, then
DocStrip can extract LaTeX and expl3, then a working system can be
More information about the tex-live