Dear all,

there are a lot of requests for a more clever splitting of tetex-base,
-bin, and -extra in the BTS.  Now that we are early in the release cycle
of etch, and teTeX-3.0 is finally in unstable, I want to approach the
question of splitting.

This mail goes to all the bugs that refer to splitting, and (via Blind
Cc) to all submitters (and some other related parties who have in the
past expressed interest in the topic).  Followups should go *only* to
the bugs in the To: field, this will reach me and the Co-maintainers.
Please restrict yourself to one of them if your answer only affects one
of the packages; tetex-extra is built from the same sources as base.

Submitters, if you are interested in further discussion, please
subscribe[1] to (one of ) the bugs in the To field (or the
debian-tetex-maint@lists.debian.org mailing list).



In the following, I will try to

1. summarize the requests we have received and their motivation

2. propose some guidelines for splitting

3. propose some possible splitting schemes.

4. timeline

Here we go:

1. Summary of the requests we have received and their motivation
===============================================================
   (plus some comments in [])


regarding tetex-bin

a) #78926: If possible, it'd be nice if dvips were a seperate package, so that 
users
   of printfilters, e.g., don't need tetex-bin installed.

   [is this really a realistic scenario?  How many systems are there that
   print dvi, but don't produce it?]

b) #100332: please move xdvi to its own package
   Motivation:  This would save lots of packages that build documentation
   with TeX the indirect build-dependency on xlibs
 
   [maybe not so grave any more since xlibs are modularized, but
   generally a worthwile goal]
 
c) #223728, #223734: tetex-bin needn't depend on xlibs (and split of stuff
   depending on perl-tk, and corresponding patch for tetex-base)

   Additional motivation:  allow (pdf)tex to be run on production
   machines without X installed. 
 
regarding tetex-base
 
d) #302035: PSNFSS is a required part of LaTeX
   Motivation: tetex-base should contain everything that is part of core
   LaTeX 
 
e) #324868: Move Bluesky fonts to tetex-base
   Motivation: tetex-base should be sufficient for basic document
   processing, and today this means to be able to produce PDF files with
   Type1 fonts (which Bluesky provides at least for english)
 
   [Along these lines, we should consider to move often used LaTeX
   packages to -base]
 
f) #32260, #35892: Split tetex-extra to minimize disk space requirements, and
   allow bibtex (and other programs in -bin) to run sensibly with only
   -base installed.
 
   [this is an understandable wish for bibtex, but not necessarily
   sensible for exotic engines like omega, aleph, ...]
 
g) #51869: Like before, but discusses the issue of splitting tetex-doc
   off, or alternatively having smaller junks with the respective docs
   included. 
 
h) #278901: Like before, but focuses on the regular download size in
   unstable, which could only be reduced by an artificial splitting of
   the *source* package.  This is a different topic, we are *not*
   discussing this here.
 
i) #327480: Please separate the .pfb files of Type1 fonts and make them
   available to X11 
 
   [partly resolved since CM fonts are available as TrueType for X11;
   still valid for other fonts]


2. guidelines for splitting
   ========================

Etch will (if nothing very surprising happens) come with two alternative
TeX systems: teTeX and TeX-Live.  TeX-Live is not only much bigger and
more comprehensive, it is also much more fine-grained.  This will allow
users to install only the specific subset they need.  Therefore, I think
we can refer people concerned with download size or disk space to using
TeX-live and simply not care about this problem;  teTeX is then for
everyone who wants a standard collection of things without bothering
about disk space, or about selecting from a large list.

This effectively resolves bugs f, g, and h, except that we should
consider the aspect of splitting doc files.

I expect that teTeX will continue to be the standard package for
creating documentation when building a Debian package, and I think that
we should try to develop our splitting schemes mainly along the needs of
this application.  End users will probably just install everything, or
switch to tex-live.

>From this, I find the following guidelines:

1. do not bloat indirect build-deps

2. provide a tetex-base that is sufficient for most generated tex-files
   (by debiandoc-sgml, linuxdoc, texinfo, or similar approaches)

3. do not include unnecessary stuff in the basic packages needed for
   most build-deps


3. Some possible splitting schemes
   ===============================

For each of tetex-base and tetex-bin, I see two possible splitting
schemes - one that would fulfill minimal requirements, the other
"better" but more difficult and more work.

3.1 tetex-bin

- To me it seems that splitting of dvips (a) will gain us hardly
  anything, and most users will install it anyway; currently the same is
  true for build-depending packages, although more might switch to
  direct pdf generation later.

- Splitting off things that depend on xlibs and/or perl-tk seems to make
  sense, even with modular xlibs.

- I don't think, however, that splitting off things that depend
  on perl generally is worthwile; because of dpkg-dev perl is
  build-essential, anyway.  Similarly, the new ConTeXt scripts written
  in Ruby deserve a Suggests: ruby, but not a splitting. 

- All binaries in /usr/bin make up to 6.5Mbyte; xdvi.real and mf (the
  ones that depend on xlibs) are 764K.  From the remaining 5.75MByte,
  4.7 are from big binaries with sizes >= 100Kbyte, but in fact most
  build-depending packages only need pdfetex, mf(-nowin) and dvips,
  together 1.3Mbyte (all numbers are from teTeX-3.0), plust many of the
  small executables.

Thus, we get 

* minimal scheme
  ^^^^^^^^^^^^^^
tetex-bin is split into tetex-bin-nox and tetex-bin-x11; tetex-bin
continues to exist as a dummy package.  Besides sorting files with dh_*
and writing the necessary control information, the only thing we have to
do is connected to mf: we probably need to set up an alternatives system
for mf-nowin and mfw.

* advanced scheme
  ^^^^^^^^^^^^^^^
Additionally, tetex-bin-nox is split into tetex-bin-mini and
tetex-bin-extra (or similar), where tetex-bin-mini contains only
pdfetex, mf-nowin and dvips plus the needed scripts/binaries smaller
than 100K.  This would require more work, because finding out which
small programs are needed isn't trivial.

* for tetex-bin, I would also find it acceptable to not split it
  further. 



3.2 tetex-base

For tetex-base, the additional splitting-off of a type1-fonts-x11
package can be added to both following splitting schemes:

* minimal scheme
 ^^^^^^^^^^^^^^^
Just move PSNFSS and the Bluesky fonts to tetex-base (e and d, #324868,
#302035) and be done.  

* advanced scheme
  ^^^^^^^^^^^^^^^
Alternatively, we could create a tetex-base that is in fact a
latex-base: 

As Ralf has pointed out, tex/latex has a size of 16Mbyte, while 94Mbyte
of the total of 135 Mbyte (without doc) are in the fonts directory.
Therefore it seems that it doesn't help much to figure out which LaTeX
packages are needed in this new base package.  Instead, we include in it

- the complete tex/latex directory, 

- everything else that is needed to run LaTeX

- input files for makeindex and bibtex.  I'm not sure about all those
  bst files.

- PSNFSS fonts, the CM and EC fonts in Metafont and Type1 format, if
  available.

This should be enough to build packages using texinfo or sgml-to-LaTeX
converters (or other frequently used something-to-LaTeX converters).
tetex-extra gets all the rest.

In case we end up implementing the advanced scheme for both source
packages, we also need to think about dependencies - I think in this
case tetex-bin-extra should *depend* on tetex-extra, so that people
won't end up with texexec but no context input files, and similar
situations.  

Maybe we should also rename tetex-base (e.g. to tetex-latexbase), but on
the other hand I don't expect that many packages that depend on
tetex-base only would stop working; the harder part would be to convince
package maintainers to drop the tetex-extra dependency.

In any case, I suggest that tetex-base should create a tetex-complete
package that installs everything (maybe except the X11 fonts).  


4. timeline
   ========

Quoting Adrian Bunk:

       THE RIGHT TIME FOR SUCH A SPLIT IS SOON AFTER A RELEASE.

(No, he didn't shout so loud, that's me.) 

Now is the time for discussion and to speak up when something is so
important to you that you are offering to spend time on it.  Please
speak up if you agree or disagree, or if you want to propose something
different. 

If you like, we can start coding at once, using a branch in the svn
repository.  An upload to unstable should not happen until the teTeX-3.0
packages in their current state have stabilized in unstable, and we are
no longer busy fixing other people's bugs (like xmltex, and for sure
some documentation-related FTBFS bugs).


Regards, Frank

[1] http://www.de.debian.org/Bugs/Developer#subscribe

-- 
Frank Küster
Inst. f. Biochemie der Univ. Zürich
Debian Developer


Reply via email to