[tex-live] Bug in updmap?!

Fabrice Popineau Fabrice.Popineau at supelec.fr
Fri Oct 29 15:04:20 CEST 2004


> out, which isn't solved by shouting at Gerben. Both you and Gerben
> have a tendency to get angry and shout at people, but I don't think it
> ever helps.

I won't deny it. And you  know that I'm fed up with the way
things are going for many months now.

> For what its worth, yes, I know I have in the past been as emotional
> as you and Gerben, with an equal desire to blame someone :-}

But I'm definitely not looking for  someone to blame. 

I'm merely stating a fact that the kind of discussion about updmap is _a
non-sense_, because   this   syntax should  have   been  discussed prior
introducing it, not after.

If I referred back to this BachoTeX meeting (I didn't attend btw), it is
simply to stress that the lack of clear design decisions from whatever
management team (that does not exist anyway) results in the situation we
are now.

On one  side you have   people working on   this project on their  _free
time_. 

On the other  side, LUGs needing it to  _sell it_ to users. 

The   first ones  look for  simple  solutions  to   their  problems, but
unfortunately, clearly to _their platform_ problems only.

But      users  want  more.   They    want    compatibility, they   want
reliability. Many of  this year changes have  cost lots of time to  many
people, not only to  the 4 or 5  of us. And there  is no  guarantee that
this will have ever an end the way we are working.

On a very related topic,   I sent a note to   the current DANTE  meeting
which I have attached. Don't know if someone will  read it there, but it
explains (very shortly)   why I think  both CTAN/Distributions  meetings
DANTE has organized  have felt to fulfil their  expectations (or mine at
least).  The   way described there  of doing   things could  change what
distributions are. I    expect  people on  this  list   to  already have
understood my point   of view on  this  topic. If  not it will  make  it
clearer.

Read it as my last contribution, for what it worth. And blame me for
what I did (or what I didn't).

Fabrice

What does it take to install/update a \LaTeX{} package today? Find the right
directory on CTAN. Find the right file(s) to download, in the best case an
archive. Uncompress it to some temporary folder. Process the \texttt{.ins}
and/or \texttt{.dtx} files. Install all the files under your TDS compliant texmf
tree, which can become a little bit clumsy: sometimes, you have fonts, metapost
files, etc. to dispatch into a dozen of different places. Do not forget to
rebuild your texmf database. And then, if you are lucky, you can work with your
new package. All this processing is at best boring, at worst a source of error.

What would it take to relieve users from this? I have often heard that it is
impossible. In fact it is not, and that doesn't require a lot. It is indeed
possible to automate \TeX{} package installation, at least for the vast majority
of \TeX{} packages. How is it possible?

First, I guess that by now everybody has heard about TDS compliant texmf
trees. The \TeX{} Directory Structure normalize file location. But its
requirements are not strong enough for automation. The TDS requirements have
been made with only one problem in mind: acceleration of file search into big
texmf trees. So basically, the TDS restricts the places where to look for
certain kind of files. For example, all \texttt{.sty} \LaTeX{} files have to be
located somewhere under \path|texmf/tex/latex/|.

If we want to automate package management, we have to comply with stronger
requirements. The TDS has to be augmented with rules identifying a unique places
for each package. Moreover, a connexion has to be made between the symbolic name
of the package and those places. Assume we register for a \texttt{foo} package
and this name has not yet been taken. Then a bunch of directories  are
automatically assigned to this package:
texmf/fonts/source/public/foo/
texmf/fonts/tfm/public/foo/
...
texmf/fonts/tfm/tex/foo/...
texmf/fonts/tfm/tex/latex/foo/
texmf/fonts/tfm/tex/context/foo/
...
texmf/doc/foo/
...
That means that all the `foo' files are located under one of these directories
and no `foo' file is located outside of them.

The exact rules are a little bit more complex, because given the existing state
of affairs, we have to consider a couple of different cases. The first obvious
case is the one of the format files themselves, like the base \LaTeX{}
files. Given that \LaTeX{} is a package, contributions can be provided. So the
base files have to be located into:
texmf/tex/latex/base/
texmf/tex/latex/config/
and not into texmf/tex/latex/ itself.

How does this help with automation? If we follow these stricter rules, we are
able to automatically construct the list of `foo' files given a reference texmf tree that
has the files. Therefore, we can create an archive of these files. Now on the
client side, we can archive or wipe out all of his current `foo' files, download
the newest archive and unpack it.

We can also run tools to ensure consistency on the client texmf tree: make
sure that no `foo' file appear under one of the `bar' directories for example. 

What would it take to CTAN to evolve towards this kind of automation? 

First, it
would require that authors register their package names. There have been a
couple of clashes in the past, like some `pl' package to typeset Prolog code,
and the `pl' package for Polish fonts.

Once unique names are ensured, it would require from authors that they upload
ready to use fragments of texmf tree. In the current situation, there are too
many different ways to install a package, with different instructions. It would
be much better to relieve the user from that and let the author upload what he
thinks is the right way to arrange the files into the texmf tree. Moreover, the
kind of consistency tools cited above could be run by the server on the package
to check that the 'enhance TDS' guidelines are respected.

Finally, it would require to have a web service infrastructure capable of
delivering the archives. The Graham Catalogue could be used to build a first
index to search among the packages. No need to look for complex indexing
methods. Then simple client tools could be developed
to list the installed packages, to look for a new package or for updates.

This way of doing things would change the structure of distributions. They could
be reduced to the simple list of binaries and specific files. That means you
could get a < 10Mb archive of TeXLive 2004 and run the package maintenance
client to download whatever packages you need. 

It is to be noted that these ideas of an enhanced TDS have been implemented for the texmf-dist tree
of TeXLive 2004, not without some reluctance from sceptical people. It is also
to be noted that Christian Schenk (MiKTeX author) has offered to develop the web
service infrastructure, but without any reply (to my knowledge). My guess is that he might well do
it by himself and  build a parallel and much more efficient way of downloading
packages.

So the question is: is that community getting old and dying or will it adapt to
more modern tools and methods? For me, the way to go is clear: why doing by hand
something that the machine can do for me?



More information about the tex-live mailing list