3.1 KiB
Tectonic Bundles
This repository contains tools for building bundles for Tectonic. You should only need this if you're producing your own bundles. If you're just using Tectonic to compile LaTeX, you should use the pre-generated bundles we distribute.
Prerequisites
To use these tools, you will need:
- GNU
patch
. Patch is called bytectonic bundle create
. - A TeXlive tarball.
The following bundles are available:
texlive2023
: based ontexlive2023-20230313
.
Build Process:
Before building any bundles, you'll need to download the prerequisite files.
Usually, this is a TeXlive tarball with a version that matches the bundle you want to build.
See bundle.toml
in the bundle you want to build.
To build a bundle, run the following:
cd bundles
tectonic -X bundle create --build-dir ./build texlive2023/bundle.toml v1
This runs the following jobs, in order. Individual jobs may be run by specifying --job <job name>
.
select
pack
The contents of <build dir>/content
may be inspected and edited after running select
.
This should only be used to debug bundles.
Extra Documentation
- Each directory in
./bundles
is a bundle specification, documented here. - Only one bundle format is currently supported, it is described in
./format-v1.md
. - This repository includes legacy bundle tests, which may be broken.
Output files
The files that tectonic bundle create
produces are listed below:
./build/output/<bundle>/content
: contains all bundle files. It is organized by source: files from the bundle'sinclude
dir will be under./include
, texlive files will be under./texlive
, and so on. Seebuilder/src/select.rs
. This directory also contains some metadata:content/FILELIST
: each line of this file is<path> <hash>
, sorted by file name.
Files with identical names are included.
Files not in any search path are also included.
<hash>
is either a hex sha256 of that file's contents, ornohash
for a few special files.content/SHA256SUM
: The sha256sum ofcontent/FILES
. This string uniquely defines this bundle.content/SEARCH
: File search order for this bundle. See bundle spec documentation.
search-report
: debug file. Lists all directories that will not be searched by the rules insearch-order
.
The entries in this file are non-recursive: Ifsearch-report
contains a line with/texlive
, this means that direct children of/texlive
(like/texlive/file.tex
) will not be found, but files in subdirectories (like/texlive/tex/file.tex
) may be.
Final output files are listed below:
<bundle>.ttb
: the bundle. Note that the ttb version is not included in the extension.- Index location and length are printed once this job completes.
- You can extract files from this bundle by running
dd if=file.ttb ibs=1 skip=<start> count=<len> | gunzip