May 24, 2012

Full TeX Live modularized for openSUSE 12.2 - 6000+ packages coming

Werner Fink - the SUSE TeX guru, master of bash and scripting - really surprised me today. He just increased the number of binary RPMs in a significant way with adding 6000 packages from the full TeX Live distribution. So, if we can convince him to add 3000 more packages, we would have 30000 rpm packages.

So, what has he done? He has downloaded the TeX Live package database, applies his self-written perl parser to it to generate 2200 spec files out of it (including recording the dependencies that the package database contains) and additionally generates some collection packages and schemes - and also builds the binary packages. The split in these packages, collections and schemes is part of TeX Live, Werner put them with his generator in rpms.
Collection packages just require other packages and are topic related, e.g. there's a collection package called texlive-collection-latex, if you install it, it installs everything you need for typesetting LaTeX files.
Schemes are the basis for everything, there's for example a small (texlive-scheme-small) and a full scheme (texlive-scheme-full).
So, you could install the small scheme and enhance it with the LaTeX and music collections.

For building the 2200 packages (they contain fonts, documentation, TeX code), Werner wrote a meta package that runs rpmbuild in a loop for those packages. So, the build service sees only one package (which results in 6000 rpm packages) and not 2200.

So, TeX on openSUSE 12.2 will have 83 collections and 9 schemes, a few source packages, 6000 rpm packages - for a total of 1.4 GB plus 52 MB for the binaries of TeX. Fortunately the 6000 rpm packages are of architecture "noarch", so we only have them once in the openSUSE repository.
Previous openSUSE releases only contained the normal TeX Live distribution with a small number of very large packages, now openSUSE contains everything in a modular way.

All of this is available in the openSUSE Build Service as part of the TeX Live project and soon in openSUSE 12.2.