Subject: texlive is too big
From: Ricardo Wurmus <[email-masked]>
To: [email-masked]
Date: Sat, 03 Jun 2017 21:03:49 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

Currently, we offer the complete texlive distribution in a single
package that weighs several gigabytes.  This causes several problems:

* it’s much too heavy a dependency for packages
* it takes a long time to download
* it takes a long time to compress the substitute
* a user who only wants to compile a simple PDF needs to put up with
  installing the complete texlive distribution.

The purpose of this bug report is to keep track of the remaining issues
in splitting up texlive.

This is the current status (in my local branch):

* we have a texlive importer that fetches description and version info
  from CTAN but downloads from the texlive SVN.  This is because CTAN
  does not store versioned tarballs.

* we have a new texlive-build-system that can compile TeX packages in
  “.ins” + “.dtx” format

* the build system works fine for creating individual packages for the
  LaTeX required package set.

* these packages are sufficient to build the documentation of the
  package “fastcap” in DVI and PDF format

What’s missing?

Currently, one needs to set a lot of environment variables to use these
separate packages.  For “fastcap” I needed to set “DVIPSHEADERS” (to
find “tex.pro”), “TFMFONTS” (for compiled metafont files), “TEXFORMATS”
(for the compiled “latex.fmt”), and “TEXINPUTS” (for all directories
containing tex source files).  Setting these variables manually is
really tedious.

How can we set them automatically?  A simple idea is to provide a
procedure “texlive-union” that takes texlive packages and produces a
wrapped variant of the tools in “texlive-bin” that run inside an
environment where these variables are set.

It is also not clear how users should install texlive from countless
separate packages.  We should provide different sets of packages for
variants like texlive-minimal up to texlive-most.  We may also want to
support installation of individual packages by providing a profile hook
(e.g. when a user only wants texlive-minimal with the gbrief package).

--
Ricardo

GPG: BCA6 89B6 3655 3801 C3C6  2150 197A 5888 235F ACAC
https://elephly.net