Yuri and all,
I've been monitoring this thread for a while.
Using package/ports management systems is a good idea, but...
teTeX can be built by the standard ./configure, make, make install.
There are many computer platforms and almost as many package/porting
systems. These systems are often very much incompatible with each
other and using more than one on a machine can lead to major
problems. As a Mac user I read the mailing list for DarwinPorts, the
currently largest Mac OS X/Darwin ports system in terms of number of
available packages. There recently was a lengthy thread on variants
versus dependencies. To recap this in short: unless the packager
builds a "plain vanilla" version you end up with astronomical numbers
of variations on dependencies. Note: Both DarwinPorts and Fink list
teTeX 3.0 ports. There is no mention of TeXLive.
For my needs a small package such as the present teTeX is more useful
that an expansive TeXLive. Many of pieces of software I install on my
own machines need TeX for building documentation (e.g. octave).
Asking the end user to download the equivalent of a DVD or at the
very least a CD, or for that matter have their computer build
something this large, makes no sense to me.
What I need is to be able to pull via ftp/http or from cvs/svn a
(sub-)tree that I can compile as above that provides the equivalent
functionality of teTeX.
On Jun 1, 2006, at 8:14 AM, Yuri Robbers wrote:
Hello Giuseppe and others,
There already are various elegant (and intelligent) solutions for this
problem.
Examples of such solutions would be the Gentoo portage system and the
*BSD "make world" system. An entire OS with thousands of
applications is
managed effectively this way, solving teh dependency problems. SOme of
the drawbacks these systems have will not even exist with TeX.
I'll describe the Gentoo system in a few lines, as it is the system
I'm
most familiar with, and will suffice as an example. I will also add
TeX-related notes.
Gentoo portage is a collection of shell scripts that
a) maintain a database of programs , graphics, etc. that can
potentially
be installed. (TeX: base system + style files + add-on packages +
fonts, etc.) In this databse is noted for each "program":
- current version(s): multiple versions of packages can be on file,
and can in some cases even be installed simultaneously in
order to
deal with dependency issues
- whether a user wants "stable" or "cutting edge development"
versions (overall setting with, possibly, per-package variation)
- architectures it is available for (i.e. processor type). For TeX
this would be the TeX variety: plain, LaTeX, amstex, context,
metafont, etc.
- dependencies (i.e. which other packages are required) which
includes version information (e.g. requires package A, AND
any package B older than 1.2, AND (any C version 3.2 or newer
OR (C-3.0 or C-3.1 AND D))
- incompatibilities (package X and Y are incompatible), or package
X and package Y newer than 2.1 are incompatible, or...
b) update the database from any of a large number of servers (TeX:
CTAN)
c) install and delete programs, checking dependencies and
incompatibilities. Programs are then marked as "installed (with
version number)" or "uninstalled" for resolving dependencies.
d) deal with source as well as binary installs.
This system, or the similar *BSD "make world" system could handle
teTeX / TeXlive package management easily. Distribution maintainers
have to note that new versions are available, update the database and
check if it works. After extensive community testing (and perhaps a
bugzilla-like systsem for reportign errors) final adjustments are made
to "dependencies" and "incompatibilities" if needed, and the new
package
or new version is marked "stable".
These systems have been shown to work, and several user-friendly GUIs
exist for some, if not all of them. They has a long and succesful
track
record including on software distributions that are one to two
orders of
magnitude larger than TeX-Live. Maintainers as well as users are
happy.
The main drawback is the compilation time of large packages on these
systems when working completely from source (which is optional for
many
packages anyway), but TeX-Live doesn't contain all that many large
packages, plus compilation is generally limited to - say - LaTeX-ing
the .ins and .dtx files. And, as has been said, the system can deal
with
pre-compiled binaries as easily as with source code. So any package
can
be offered as a pre-compiled binary for the system of chocie as
well as
as sourcecode.
Of course the main hurdle when using this for TeXlive would be
creating
the initial database: this will cost many, many man-hours. But we
have a
large community, many people might want to contribute (in fact: it is
not uncommon in Gentoo that end users supply so-called "ebuilds" to
developers for incusion in the database)
Please realise I am not necessarily advocating the use of portage per
se: I am advocating the use of any such system: there are many, and I
think the _general concept_ is exactly what we need: which specific
implementation of the concept we could best use should perhaps not be
discussed until it has been decided whether or not the concept itself
will be used at all.
Comments, anybody?
Yuri Robbers.
Marius
--
Marius Schamschula, Alabama A & M University, Department of Physics
The Center for Hydrology Soil Climatology and Remote Sensing
http://optics.physics.aamu.edu/ - http://www.physics.aamu.edu/
http://wx.aamu.edu/ - http://www.aamu.edu/hscars/