[Tex/LaTex] How to a package be listed on CTAN but not be available in Tex Live

ctanpackagestexlive

Here is a comment by Alan Munn on How soon do all CTAN mirrors update for TeX Live Utility to detect the changes?

Except for during [the freeze period], (i.e., most of the time) TeXLive updates to packages (not binaries) are available within a day or so of them being uploaded to CTAN.

I submitted my very first package to CTAN earlier this year and my submission was successful: http://www.ctan.org/tex-archive/macros/latex/contrib/matlab-prettifier. I last updated the package in late April 2014.

However, to this day, I have never seen my package listed as part of Tex Live 2013: the TeX Live Utility (I'm on Mac OS X) has never listed it under the "Packages" tab. I've now installed and switched to Tex Live 2014, but my package is not listed in there either.

Before I bother CTAN or TeX Live people, I'd like your thoughts on this. Does the absence of my package in Tex Live 2014 have to do with the annual freeze period? What am I doing wrong? Under what circumstances can a package be listed on the CTAN site but not be available in Tex Live?


Update: matlab-prettifier is now available in TeX Live 2014.

Best Answer

The conditions of a package for TeX Live can be found at this page: TeX Live package contributions

I will quote some of the page to discuss the conditions.

Disclaimer: I am not part of the TeX Live team. This is just my way to see the licensing conditions and my interpretation might not be correct.

Questions can be asked in the TeX Live mailing list (texlive at tug dot org), see TeX Live mailing lists.

1. a) First, the package must be free (as in freedom) software, available under, for example, the LaTeX Project Public License or GNU General Public License. Please state the license explicitly in your package's source code, README, and/or other documentation. Those licenses (and others) contain instructions for how to apply them to your code.

OK matlab-prettifier is licensed under LPPL 1.3 or any later version.

2. a) The package must be useful in itself, or useful in conjunction with free software. In other words, we won't install a package that exists only to support something nonfree, even when it is free itself (e.g., LPPL'd macro support for a proprietary font). That doesn't help the free software world, and would rightly be rejected by free distros in any case.

Problem Problematic, because MATLAB is AFAIK a commercial software and the sole purpose of matlab-prettifier is the MATLAB language.

TeX Live has the condition, that a package must be useful on a system, which consists and uses entirely free software. This condition differs TeX Live from MiKTeX. It is a concise decision of the Maintainers of TeX Live, which do not want to spend their spare voluntary time on commercial software.

However, it is acceptable for TeX Live AFAIK, if a package is additionally useful for free software. There are some free alternatives to MATLAB: GNU Octave, FreeLab, ... If at least some of them also support the MATLAB language (more or less), or if the package can also support free alternatives, then the red cross might turn to a green check mark.

2. b) We very strongly recommend using an existing license; devising your own will certainly delay any inclusion in TeX Live. We also strongly recommend using a clause “or any later version” with any license. The licensing conditions for TeX Live go into more detail about what is and isn't acceptable.

OK LPPL 1.3 or any later version.

3. The source for any generated documentation files (e.g., pdf) must also be available for the generated documentation to be included in TeX Live. We won't refuse to install the package itself, but we must refrain from installing generated documentation when there is no source. Free documentation is as important as free software.

OK Source for the package and documentation is given by the .dtx file.

4. If you haven't uploaded your package to CTAN, please do that. Virtually all TL packages come from CTAN and that is by far the easiest place for us to update from. It's a good thing in general for CTAN to be as comprehensive as possible.

OK CTAN location: CTAN:macros/latex/contrib/matlab-prettifier/

5. The @ character cannot be used in any filenames. Our tools are not prepared to handle this, and since it's trivial to avoid we'd rather not spend time on it.

OK matlab-prettifier does not contain @. The use of - is ok.

6. The package should not create (the likelihood of) any new runtime filename conflicts; in other words, all names should be reasonably expected to remain unique; using the package name as a prefix often works well. In addition to conflicts in the TeX tree, new executables should have names that are reasonably distinctive, and not just within the TeX world—most executables will end up being installed in system-wide directories as part of os distributions.

OK The only run-time file matlab-prettifier.sty does not conflict with any other file in TeX Live.

Summary:

  • Most conditions pass without doubt.
  • In case of 2.a), I would ask on the TeX Live mailing list. It would help, if the package can show its usefulness for free software.
  • The package might just be overlooked, also a reason to ask on the TeX Live mailing list.
Related Question