[tex-live] Feature request: "package dependency" field on CTAN

Karl Berry karl at freefriends.org
Sat Nov 12 23:43:18 CET 2016

Hello Hironobu,

    For example, newtx depends on kastrup, 

aka binhex.tex. Somewhat surprising to me, but ok, I see it.
I added it.

    and luatexja depends on filehook.

But, at least at a glance, only if array is not already loaded.

Therefore I would not recommend that luatexja unconditionally depend on
filehook -- one such case might not matter, but imagine if every package
listed every other package that it *might* load, across all engines and
all formats. You might as well install everything in the first place and
be done with it. Which is, not coincidentally, already the default.

As I've said before, conditional dependencies in the TeX world seem like
a problem beyond the state of the art. Debian's "weak depends" would not
be helpful, and I don't know of anything in practice that's gone beyond
that. It seems to me the only true solution is to load packages at
runtime a la MiKTeX, and that is an unsolved (and not easy) problem for TL.
New developers welcome :).

     it's getting harder and harder to set all
     dependencies correctly by hand.

It's no harder than it ever was: it's always been impossible, and it
will remain impossible :). It is not and cannot be a goal to list every
dependency. It's delusionary to think it can be done.

    seems to be resolved manually by TeX Live team in some cases 

It is effectively the authors (and users) who do it now -- they send
dependency information (like you just did), I (and Christian for MiKTeX
I suppose) add dependencies as is useful.

I have nothing in principle against the proposed CTAN field, as long as
it used for unconditional dependencies. Meaning something the package
requires every time it is loaded, with any engine. Anything other than
that is a slippery slope that will lead to more problems than benefit,
as far as I can see.

There are various possibilities for automatically determining
dependencies, going along autotesting packages. For example,
auto-creating a minimal document, running with -recorder (across
engines), and going through the output. It's an easy idea to have, not
such an easy idea to find time to actually implement. --best, karl.

More information about the tex-live mailing list