Mapping existing teTeX dependencies to TeXlive packages |
In the following, "Depends", "dependency", etc. also implies "Recommends", "Suggests", or "Build-Depends", whatever applies to a particular situation.
Depending on tetex-base is almost always a bug. The
package only provides input files, but no functionality for a user.
Most packages should depend on tetex-bin instead, unless
they do not need any of the "engines" (binaries, in particular
/usr/bin/latex) and formats provided by
tetex-bin. See below...
Unfortunately, a simple rule like "Replace 'tetex-bin' by 'tetex-bin | texlive-latex-base'" cannot be given. The reason for this is the much finer granularity of the TeXlive packages (many teTeX bugs also request finer splitting, but this has never been implemented), and the actually buggy splitting scheme of teTeX: Things that are a required part of the LaTeX distribution ought not to be in an -extra package.
The consequence is that Depends: tetex-bin, tetex-extra might be equivalent to Depends: texlive-latex-base as well as Depends: texlive-latex-recommended, texlive-latex-extra, texlive-fonts-recommended or even more.
In order to figure out which dependencies are actually needed, one must therefore look at the (La)TeX code which is contained, generated etc. by the package, check which files are loaded, and determine the TeXlive packages which provide these files.
As near as possible to a cookbook receipe for finding the needed packages is the following procedure:
-recorder. This will output (nearly) all files which
are used.
INPUT.sort -uGenerally, since TeXlive is the more up-to-date TeX system, it should be preferred, and the TeXlive packages should be listed first, like this:
Depends: texlive-latex-base | tetex-binThis is also true for
etch. However, for uploads
targetted at etch, maintainers who are unfamiliar with
TeXlive and fear to introduce incomplete dependencies should consider
putting teTeX first. This will ensure that the default selection when
installing the package is the tested one which is known to work. We
have asked the release team to not treat such bugs as
release-critical, or grant an etch-ignore tag if the
combination of dependencies listed first is correct.
In the following, we are only dealing with LaTeX code. Packages that use plain TeX, ConTeXt or other formats are very rare and not covered here. In the case of packages shipping snippets of LaTeX code, the individual snippets can be treated independently.
The command to load additional files and activate their functions in a LaTeX document is
\usepackage[<optional arguments>]{<packagename>}
This will load the file <packagename>.sty. Documents
without such directives only need tetex-bin |
texlive-latex-base. Otherwise, the maintainer has to figure
out by which TeXlive package the loaded files are installed and add
these packages as dependencies. This can be done by
querying http://www.de.debian.org/distrib/packages#search_packages or
grepping through a copy
of http://ftp.debian.org/debian/dists/unstable/Contents-i386.gz, for
example with the extended findpkg script available
on people.debian.org.
Some styles that are in texlive-latex-base switch the document to fonts that are packaged in texive-fonts-recommended. From such documents, DVI files can be created without problems, but for PostScript or PDF output, texive-fonts-recommended is needed.
If a package provides additional style files for LaTeX, the maintainer must check which other style files are loaded by these additional styles. Note that files cannot only be loaded in the <packagename>.sty file, but also in any files it includes - common extensions are .tex or .cfg.
In style files, \RequirePackage is used instead of \usepackage.
The file that determines format generation is usually called <formatname>.ini. The command to load other files is \input, and these input commands can be nested.
These packages do not need to depend on a TeX system. See the Debian TeX Policy for details.
Packages which use texinfo and want to generate PDF or PS files should Depend or Build-Depend on exactly the TeX-specific packages which are suggested by the texinfo package in unstable
Last modified: Mon Jun 11 15:23:38 CEST 2007 . |