[tex-live] new tl infrastructure

Karl Berry karl at freefriends.org
Sat Jun 23 02:59:53 CEST 2007

There is a new file in the TL hierarchy: Master/texlive.tlpdb.
It is created from the scripts and files in the new Master/tlpkg
directory.  This is the result of a lot of discussion, instigated by
Pawel (Jackowski) last year, and implementation, done nearly entirely by
Norbert (Preining).

What is it all about?  Well, we all know we want TL to provide dynamic
updates over the web, an improved cross-platform installer, etc.  TPM
files were simply not a good basis for moving forward.  They are a
mixture of source and derived information, are difficult and slow to
parse, and hard to reuse: witness the fact that the existing installers
(the Unix scripts and tlpm/tlpmgui) do not use them; they all use the
much simpler lists files that Sebastian invented originally.

So to move forward, we designed "tlpsrc" (TeX Live Package Source)
files, which are a simple line-based format (more or less an augmented
form of the lists files) consisting entirely of source information.
(The .tlpsrc for most packages is just a couple of lines.)  Then there
are scripts to expand these into the full database (also line-based
plain text), which consists of essentially the same information that was
in the tpm's -- all the same categories of packages (TLCore Package
Source), all the same classes of files (Bin Doc Run ...), etc.

As an interim step, we also continue to generate exactly the same lists
files that were previously made from the tpm's.  So the existing
installers continue to function without change.  We do plan to get rid
of the lists files as well before the next release of TL, by changing
the installers to use the database directly.

There's a Perl API for the database that most of the new scripts, and a
shell API for a few odds and ends.  These are documented in the
Master/tlpkg/doc/ directory, along with some specs for the associated
files, etc.  The Debian processes will be changed to use the new
database; anyone else using the TL tpm's (we are not aware of anyone),
please do the same!

On a final note, I'd like to extend my appreciation to Norbert Preining
for working through all the myriad details with remarkable good cheer.
We'd still be in the "someday" stage if not for his efforts.


P.S. The tpm files are still in the hierarchy for now, but will be
removed in the not-too-distant future.  The infrastructure scripts will
also be rearranged and updated.  In general, there's lots left to do; we
just wanted to make this announcement as soon as we had something functional.

More information about the tex-live mailing list