Subject: Re: bug#27217: texlive is too big

From: Pierre Neidhardt <[email-masked]>
Date: Sat, 15 Dec 2018 15:11:12 +0100

I've dug into this a little deeper (sadly not too much, I don't think I'll have
time to work on this before a while).

Let me summarize the issue: packages can be fetched from two main resources: 

- the TeXlive subversion repository (what we are doing now) which bundles
  everything into a single massive folder.
  
- CTAN which distributes everything as separate packages.

The problem with CTAN is that it's not versioned and there is no "stable" URL
for the packages.

To paraphrase
https://github.com/NixOS/nixpkgs/blob/master/pkgs/tools/typesetting/tex/texlive/default.nix:

--8<---------------cut here---------------start------------->8---
      # Upstream refuses to distribute stable tarballs,
      # so we host snapshots on IPFS or on our own servers.
      # Common packages should get served from the binary cache anyway.
      # See discussions, e.g. https://github.com/NixOS/nixpkgs/issues/24683
      urlPrefixes = args.urlPrefixes or [
        # A snapshot temporarily hosted by @xeji.
        # TODO: remove when there is a reliable long-term solution
        https://cat3.de/texlive-2018/tlnet/archive

        # TODO: Add second, faster and more reliable snapshot mirror,
        # maybe on one of our project's servers

        # IPFS seeded by the mirror above - this may be quite slow
        https://ipfs.io/ipfs/QmT4Z67wXin1Z9DhvqwSSkSZSuu8hT6LgDyMu6CBm9Tb7t/tlnet/archive

        # The canonical source moves quickly and will be broken almost immediately
        http://mirror.ctan.org/tex-archive/systems/texlive/tlnet/archive

        # Should be stable for historic, archived releases
        # http://ftp.math.utah.edu/pub/tex/historic/systems/texlive/2018/tlnet-final/archive
        # TODO: use this later when 2018 is archived

      ];
--8<---------------cut here---------------end--------------->8---

The core question for us is: "Can we reconstruct a TeXlive package from the
subversion repository?"

Corollary: Was NixOS right to discard the repository as a source for packages?

If we can't reconstruct packages from the subversion repository, then our
current texlive-build-system is not very useful when centered around
texlive-ref.

Nix auto-generates all packages from this file:
http://mirror.ctan.org/tex-archive/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz.
This could be our redeemer :)

-- 
Pierre Neidhardt
https://ambrevar.xyz/