[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Another way to deal with the Font Map Problem



Frank Küster <frank@debian.org> wrote:

> No, not exactly. We could run (the second time) updmap with "--disable
> $notfoundmap". The files in /etc/texmf/updmap.d/ would not be changed,
> but /var/lib/texmf/web2c/updmap.cfg would not contain all lines that are
> in *.cfg files in updmap.d.

Umm, for me, calling updmap --disable in Debian maintainer scripts is
verboten, because it modifies the user-configuration... We already
talked about that when discussing whether there was still a good reason
to use update-updmap.

> %% #~$magic$~# 
> %% file will be ignored unless listed in /var/lib/tetex/fontmap...

[...]

> Yes, of course. But there are users who don't read manpages unless
> forced to. Or _really_ pointed to. I was intending to _really_ point
> them there by a comment.

OK. I implemented the new scheme based on tetex-base_2.96.5.20040711-4
and tetex-bin_2.96.7.20040721-1 from your p.d.o. space. You can find the
result here:

  http://people.via.ecp.fr/~flo/tmp/tetex-beta/

The lmodern package there is quite simple, but does not handle upgrades
from previous versions. Future font packages could look just like that
one. This package is supposed to be used only with tetex-beta packages
with the update-updmap that I uploaded at the aforementioned address. It
uses the new locations for .enc and .map files, so is definitely not
suitable for tetex 2.

[ Open for discussion: whether to run try_to_update_fontmaps() on purge,
  i.e. update-updmap, mktexlsr and updmap. This takes a while, and is
  usually useless because purge is usually called after remove, which
  already did that. It is not useless if the user removed the lmodern,
  broke his config (map files, or whatnot) and then purges lmodern.
  Running try_to_update_fontmaps() might fix his broken config at this
  point but I am not sure it is worth annoying all other users just for
  that, we should rarely happen and is a user error anyway.

  So, I chose to disable try_to_update_fontmaps() on purge for this
  experimental package. This has a minor side effect: if I purge
  lmodern, since try_to_update_fontmaps() is last run when postrm is
  called with $1 = remove, the resulting updmap.cfg contains:

    #
    ### /etc/texmf/updmap.d/10lmodern.cfg not included because the
    ### corresponding package seems to be removed.
    #

  which is what my new update-updmap writes for .cfg files that have the
  magic comment but no corresponding file under
  /var/lib/tetex/debian-fontmap-cfg (which means the package that
  shipped the .cfg file in question is removed-but-not-purged).

  When postrm is called with $1 = remove, conffiles are still there, so
  10lmodern.cfg is still there with its magic comment. That is why these
  lines appear in the resulting updmap.cfg. Of course, this is harmless,
  but we would prefer updmap.cfg to be free of any trace left by purged
  packages... (of course, next time update-updmap is run, the traces
  will disappear since 10lmodern.cfg does not exist anymore after purge
  time; this is only a transient minor problem) ]

I had to hack tetex-base so that it does not conflict with lmodern
anymore, of course, and does not provide all the files that lmodern
does. For the latter, I used remove-bad-license-files because it was the
quickest way to get to the tests, but of course there is no license
problem here. I also had to modify patch-deb so that
/etc/texmf/updmap.d/00updmap.cfg does not declare the lmodern map files
anymore. All this is in the tetex-base.patch file that I uploaded there.
I'm not perfectly sure whether I handled patch-deb correctly, so beware.
I simply wanted to be able to perform the tests with the new
update-updmap and lmodern package implementing the new scheme. You'll
probably want to redo the same modifications yourself, more cleanly (not
using remove-bad-license-files in order to remove the lmodern files from
tetex-base, for one).

As for update-updmap, I didn't really want to rebuild tetex-bin, so... I
extracted the tetex-bin .deb I had already built, copied the new
update-updmap in the extracted tree, modified the md5sums file in the
control area and repacked the whole thing (if you do this at home
[kids], beware of the owner/perms in your repacked .deb file before
installing). It works. I didn't update the man page. I'm waiting for
your comments before doing so.

tetex-base still contains /usr/share/texmf/dvips/config. I suppose it is
done on purpose for backward compatibility.

  % ls -l /usr/share/texmf/dvips/config
  lrwxrwxrwx  1 root root 17 2004-12-21 02:10 /usr/share/texmf/dvips/config -> /etc/texmf//dvips

As a consequence, updmap is not quite happy:

  Running updmap... mapWarn obsoleteCopy /usr/share/texmf/dvips/config/lm.map
  updmap: Warnings caused during map file lookup, see mapWarn messages. Consult the manualpage for details.
  done.

but does not fail, though. Also, please note the double "/" in the
link's target.

One last comment:

  % ls /var/lib/tetex
  README  debian-fontmap-cfg  tetex-extra

I used debian-fontmap-cfg to avoir potential clashes with future
upstream directories... This is of course open to discussion... We could
have a whole debian hierarchy under /var/lib/tetex but that would make
things a bit deep. Well, I don't have any opinion on this matter at the
moment, but you can think about it. I just want to go to sleep, now. :)

Bye,

-- 
Florent



Reply to: