circular dependency when building LaTeX?

Thiago Jung Bauermann bauermann at kolabnow.com
Wed Jun 23 23:49:41 CEST 2021


Hi Joseph,

Em quarta-feira, 23 de junho de 2021, às 11:21:27 -03, Joseph Wright 
escreveu:
> 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).

This is great information, thank you for the detailed response. Guix has an 
emphasis on reproducibility and (IIUC) building things from scratch, so 
using pre-generated files doesn’t fit with that goal. It’s good to know where 
these generated files come from.

> 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
> 
>      pdftex <name>.ins

Awesome. I’m not very familiar with the TeX build system, so IniTeX is a 
new concept to me. I’ll look it up and see if I can use it then.

> 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
> CTAN.

Using l3build sounds like a good idea. Do you know if it uses pre-generated 
files or if it can bring everything up from scratch?

> (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
> sorted out.)

This is great! Thanks again for the in-depth information.

-- 
Thanks,
Thiago





More information about the tex-live mailing list.