Bug#390129: tetex-base: Does not properly call update-* scripts
Frank Küster wrote:
> Ralf Stubner <firstname.lastname@example.org> wrote:
>> I don't understand. Shouldn't tetex-bin call the update-* scripts before
>> generating formats/map files/...
>> [Looking into common.functions.in]
>> It seems it doesn't. IMO that's the bigger problem.
> I think every package that installs snippets for language.dat,
> updmap.cfg, etc., should call update-foo. That's the clean way.
Agreed in principle (see below). However, I think it is also important
that every package that calls fmtutil/updmap/... has to call the
apropriate update-* scripts before, which tetex-bin does not at the moment.
Just imagine that instead of tetex-base it would have been tetex-bin
that got updated together with jadetex recently: tetex-bin's postinst
regenerates formats, but the present fmtutil.cnf still represents the
state valid before the changes to jadtex.ini. The same failure as with
tetex-base would occur. If tetex-bin's postinst would call
update-format, the problematic lines would not be present in fmtutil.cnf
due to the present .dpkg-new file.
>> But then, calling the update-* scripts should be safe at any time.
>> However, now there is an unconditional call to mktexlsr in tetex-base's
>> postinst jusst before the update-* scripts are called. IMO this is
>> unsafe (tetx-bin might not be installed)
> Indeed; it will just fail if tetex-bin isn't installed, which I noticed
> during testing. It's already fixed in my local copy and the upload I
> made, and I just committed it.
A general point: Recently I was thinking whether it would make sense to
change the behaviour of 'format providing packages' such as tetex-base
or jadetex: Right now they regerenate all formats, even though this is
not necessary. Why not have them regenerate only those formats they
actually provide? A simple way to achieve this would be to call
fmtutil-sys --all --cnffile /etc/texmf/fmt.d/foo.cnf
That way these packages would be more self contained and could not get
as easily broken by other packages. Of course, the 'binary providing
packages' such as tetex-bin would still have to regenerate all formats.