Hi Jim,

On Wed, 2026-03-18 at 14:22 -0300, Jim wrote:
> On Tue, Mar 17, 2026 at 04:06 (-0700), Max Chernoff via ntg-context wrote:
> > On Tue, 2026-03-17 at 10:54 +0100, Hans Hagen wrote:
> > > On 3/17/2026 10:13 AM, Max Chernoff wrote:
> > > So maybe when we'd ship byte-compiled lfg files it would fall through.
>
> > Well then you'd fall afoul of the "all compiled files must also contain
> > their corresponding source" rule :)
>
> > > That is the strange thing: why does the policy permit filenames in tex
> > > files but not in lua files ... baffles me.
>
> > Filenames are equally fine in Lua and TeX files, but the difference is
> > that the .lfg files reference the structure/contents of the font, not
> > just the name. For example, you can rename "texgyrepagella-regular.otf"
> > to "LucidaBrightOT.otf", and "type-imp-lucida.mkiv" will still work
> > completely correctly (I've even tested this out). However,
> > "cambria-math.lfg" depends on the font having a character in
> > "0x221A.parts.bottom" that needs to be kerned by 0.2 units; this will
> > presumably only work (or only give good results with) the actual Cambria
> > Math font, and not just some random font renamed to "cambmath.ttf"
>
> I don't want to flog any horse to death, but I will admit I don't
> understand this particular point.
>
> Specifically, I don't see how referencing something in a non-free font
> makes cambria-math.lfg itself verboten.

So the default/historic rule is that if a file is only useful when used
with non-free software, then it cannot be included in TL. As far as I'm
aware, this rule has been in place forever, but the first formal mention
of it that I can find is from 2010. The documentation is still kept in
RCS, so here's the log+diff:

    ----------------------------
    revision 1.21
    date: 2010/11/23 00:49:02;  author: karl;  state: Exp;  lines: +29 -21
    free support for something nonfree doesn't fly.
    ===================================================================
    RCS file: RCS/pkgcontrib.html,v
    retrieving revision 1.20
    retrieving revision 1.21
    diff --unified -r1.20 -r1.21
    --- pkgcontrib.html     2010/10/04 23:10:51     1.20
    +++ pkgcontrib.html     2010/11/23 00:49:02     1.21
    [...]
    @@ -21,38 +21,46 @@
    [...]
    +<li>a.2) 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 <a
    +href="http://www.gnu.org/distros/free-distros.html";>free distros</a> in
    +any case.

Because of this, the type-imp-* files for non-free fonts were excluded
from TL, from before I started maintaining the package

    
https://svn.tug.org:8369/texlive?revision=67034&view=revision&limit_changes=0

(Those files were _always_ supposed to be excluded, but with >250k files
in TL, nobody has the time to check every one, so only "obvious" cases
tend to be caught, and even these often take a while.)

When I took over maintenance of the ConTeXt package last year, my first
step was to compare the ConTeXt files in TL with the ones in the
Standalone Distribution. I noticed the missing files, and lots of
discussion ensued. Essentially, we (Karl and I) agreed on the following:

1.  We do not want to make any _significant_ changes to the current
    policy regarding free support files for non-free software.

2.  "psnfss.map" has been around for 30+ years

        https://www.ctan.org/pkg/psnfss

    and has been included in TL since the very beginning

        
https://svn.tug.org:8369/texlive/trunk/Master/texmf-dist/fonts/map/dvips/psnfss/psnfss.map?revision=93&pathrev=93&view=markup

3.  "psnfss.map" is only useful with non-free fonts (ignoring that there
    are free clones available now; there are other .map files that refer
    to fonts without free clones). But the current (in 2025) policy
    requires us to remove this file.

4.  But we don't want to remove "psnfss.map", because this would break
    30+ years of documents, because there's 20+ years of precedent, and
    because removing this file wouldn't benefit the free software
    movement in any way.

5.  The type-imp-* files are semantically equivalent to the .map files,
    so if we allow .map files for non-free fonts, then it would be
    inconsistent to disallow type-imp-* files for non-free fonts.

At this point, Karl and I came to the conclusion that given the above
points, the best solution would be to reword the current policy to allow
exactly this case. So:

    ----------------------------
    revision 1.56
    date: 2025/05/14 20:05:25;  author: karl;  state: Exp;  lines: +13 -12
    exception tweak
    ----------------------------
    revision 1.55
    date: 2025/05/14 00:41:11;  author: mseven;  state: Exp;  lines: +12 -2
    Update pkgcontrib.html with .map file exception.
    ===================================================================
    RCS file: RCS/pkgcontrib.html,v
    retrieving revision 1.54
    retrieving revision 1.56
    diff --unified --ignore-all-space -r1.54 -r1.56
    --- pkgcontrib.html     2025/02/15 18:48:07     1.54
    +++ pkgcontrib.html     2025/05/14 20:05:25     1.56
    [...]
    @@ -53,6 +52,18 @@
    [...]
    +<p>Exception: <code>.map</code> and <code>.map</code>-like files that 
support
    +non-free fonts may be included in TeX Live. This exception includes
    +<em>only</em> <code>.map</code> files, and not <code>.enc</code>,
    +<code>.tfm</code>, <code>.afm</code>, or similar files. A
    +<code>.map</code>-like file may categorize a font, convert user-friendly
    +names to file names, and specify the relationships between the font's
    +variants (bold, italic, etc.); a file that supports non-free fonts in
    +any other way (e.g., provides actual font functionality) does not fall
    +under this exception. Also, these <code>.map</code> and
    +<code>.map</code>-like files must themselves be available under a free
    +license.

So essentially, _any_ files that exist only to support non-free software
aren't permitted in TL; as a special exception, type-imp-* and *.map
files that support non-free fonts _are_ allowed.

> Indeed, cambria-math.lfg might not work well with some other font that is
> pretending it is Cambria math, but surely that isn't a reason to declare
> the .lfg file non-free.  It just tells me that if I pretend some other font
> is Cambria math, then I'll get an error or bad results or ...
>
> But isn't that problem on the user who is pretending something else is
> Cambria math?  There are all sorts of things I can do to make TeX, LaTeX
> and ConTeXt give me bad output, and surely texlive doesn't want to omit
> every piece of the system that I can mis-use.

The point is not whether the files work; the important thing is that if
the files are useful with proprietary software _and_ not useful with
free software, then they're not allowed.

(Files that work with both free software and non-free software (such as
the fontloader, which can load all types of fonts) are also allowed.
Files that are equally broken/useless with proprietary software and free
software are also allowed, but strongly discouraged for obvious
reasons.)

I guess there are a few different perspectives here:

- The pragmatist: I only have free fonts installed, and my friend send
  me a .tex file that depends on non-free fonts. If I rename some free
  fonts without .lfg files to the same name as the proprietary fonts,
  then the document compiles correctly; therefore, the type-imp-* files
  are useful on their own without proprietary software. But this
  renaming trick gives an error with the .lfg files (or produces
  unusable output, etc.), therefore these files are not useful with only
  free software.

- The literalist: type-imp-* files are like .map files, therefore they
  are allowed. .lfg files are like .tfm files, therefore they are not
  allowed.

- The historian: we've historically allowed .map files for non-free
  fonts, but have historically disallowed any other support files for
  non-free fonts. Therefore, anything that isn't like a .map file can
  never be allowed.

> Similarly, there are all sorts of pieces of software on my computer which
> assist me in using non-free software.

Yup, I'll freely admit that I have lots of non-free software installed
on my computers, and that I don't necessarily personally agree with all
of TL's policies.

> But I imagine even the most
> fanatical Debian person would allow those on his/her computer.

tlcontrib is explicitly modelled after Debian's "contrib" repo:

    https://contrib.texlive.info/

    https://www.debian.org/doc/debian-policy/ch-archive#the-contrib-archive-area

Splitting Debian into separate "main" and "contrib" repos is quite a bit
of extra work, so the fact that it exists implies that many Debian
developers are against including the contents of "contrib" in "main"
(which also implies that this means that they don't want the contents of
"contrib" on their computers.)

> So... is the exclusion of cambria-math.lfg explainable in any other way
> than "ugly output will result if you use it on a free font"?

Yes, see the long explanation above :). But please let me know if
anything is still unclear, and I can try and clarify it further.

Thanks,
-- Max
___________________________________________________________________________________
If your question is of interest to others as well, please add an entry to the 
Wiki!

maillist : [email protected] / 
https://mailman.ntg.nl/mailman3/lists/ntg-context.ntg.nl
webpage  : https://www.pragma-ade.nl / https://context.aanhet.net (mirror)
archive  : https://github.com/contextgarden/context
wiki     : https://wiki.contextgarden.net
___________________________________________________________________________________

Reply via email to