> What I find most troubling is that sources are littered across the SVN > repository. Sometimes we’ve got simple .ins and .dtx files, but very > often we have a stray .sty or .tex file in some seemingly arbitary > directory and one needs to manually take care of adding these extra > source files to the native-inputs.
I was puzzled like you, but last time I investigated it became a bit clearer: there is simply no general recipe for building TeXlive packages. TeXlive packages are provided "ready to use", they are not meant to be built. The .ins/.dtx are only here for potential package contributors or as a source of documentation, but when it comes to TeXlive, they are not used to build the resulting package. The .sty is (I think) always parachuted into the SVN repository as well. (Actually, sometimes there is no .ins/.dtx, just a .sty.) More worrisome: some fonts don't provide their source. In fact, some of them have confusing licenses, and since the source is missing, I wouldn't call that "free software". But TeXlive is. That's not very consistent and a lot of FOSS TeXlive packages effectively depend on closed-source fonts. What shall do then? > I don’t see this file in the texlive SVN repository. Where is it > hosted? It's in Master/tlpkg/texlive.tlpdb. Or from CTAN: http://mirror.ctan.org/tex-archive/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz. > So, it’s a map of packages to file names? That would probably simplify > the importer. I don’t think it would help with the build system. Am I > missing something? I believe the tlpdb might actually be necessary to build every package reliably. As I said above, TeXlive packages are not meant to be built, they are meant to be copy/pasted, so it seems. (Correct me if I'm wrong.) Sure we can rebuild the .dtx/.ins, but that only works for some packages and it does not suffice, we still need to include the extra files (e.g. fonts) if any. We can only know this file list from the tlpdb. So here is what I suggest: the texlive-build-system looks up the file list in the tlpdb and copies everything. If some of those files include .dtx/.ins, it could build them (but that should not change anything since the .sty is always provided). Question: that would produce another <package>.sty file beside the one existing in the SVN. Should we replace it? Should we print a warning if it does not match? With such a build system, the only thing the importer would have to do is get the synopsys/license information from the tlpdb. Does that make sense?
