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

Bug#299936: updmap.cfg, update-updmap and removed packages: Yet an other approach



Hi,

Frank Küster <frank@kuesterei.ch> wrote:

> The main advantage is the reason why I'm sending this to this bug
> (Original title: updmap-sys --enable-map should act on 00updmap.cfg).
> The problem in this bug is that according to upstream's documentation
> (and, of course, many resources on the web and in newsgroups and mailing
> lists) one can permanently enable map files with "updmap[-sys] --enable
> [Mixed]Map=...".

But this is Debian here. We are better than that, you know. :)

> In the original bug report, I suggested that we patch updmap-sys to act
> on 00updmap.cfg instead.  However, since map entries can be in different
> files in updmap.d, it is unclear on which file in this directory it
> should actually act.  This is even more severe for --disable, which
> would need to parse all cfg files in updmap.d.  If people start
> combining updmap-sys --enable with editing of files in that directory,
> the outcome is even more complicated (there may be two entries for one
> map file...).

Ack.

> Therefore I propose the following scheme:

[...]

> 2. If a package was purged and is now installed, update-updmap does not
>    find any information about the map lines in fontmap.var.  Therefore

So, when a font package is purged, it has to make sure that every map
line that is not in updmap.d/ is removed from fontmap.var.

[...]

> 3. If the user changes the settings in updmap.cfg, the next time
>    update-updmap acts on this Map line it notices that the setting is
>    different in fontmap.var and updmap.cfg and respects the setting in
>    updmap.cfg, i.e. it doesn't call updmap-sys --[en|dis]able.

Changing a setting in updmap.cfg could also bring updmap.cfg in sync
with fontvar.map WRT this setting, and you would then infer that the
admin want to follow the config changes brought by the conffile in
updmap.d (whenever it is updated in the .deb), which is not necessarily
true...

>    4.1.2) enabled in fontmap.var, disabled in updmap.cfg (i.e. local
>           change): Change setting to disabled in fontmap.var.  Now all
>           three files have the same information, no problem in the
>           future 

Here, the user wanted the map to be disabled. Since the pkg maintainer
happens to take the same decision at some point, the user's config will
now follow that of the .deb: reenabled whenever it is reenabled in the
.deb.

Of course, the same problem happens in general with conffiles. If you
happen to craft the exact same conffile as that distributed by the .deb
you have installed, then your config will follow that of the .deb in
next releases, unless there is a check on timestamps that I am not aware
of. But managing to craft the exact same conffile by sheer chance is in
general an exceptional event.

However, here, if a map was activated by default in a .deb you have
installed, and you later manually updmap-sys --disable then --enable it
(or simply enable it in the file under updmap.d/), you will have crafted
by "chance" the same config as shipped in the .deb and therefore, your
config will follow that of the .deb across releases, whether you like it
or not.

Similar thing for disabling, except that if you do it manually in
updmap.d/, you can use something else than #!, so that the system knows
that you really want the map disabled. However, if you run updmap-sys
--enable then --disable and the map was disabled as shipped in the .deb,
you have the same problem as in the previous paragraph.

>    4.2) conffile changes from disabled to enabled
>
>    4.2.1) settings in updmap.cfg and fontmap.var are diabled (i.e. no
>           local change): Change setting to disabled in both files
                                             ^^^^^^^^
                                             enabled, I suppose

>    4.2.2) disabled in fontmap.var, enabled in updmap.cfg (i.e. local
>           change): Change setting to enabled in fontmap.var.  Now all
>           three files have the same information, no problem in the
>           future 

And your config will then follow the .deb, whether you like it or not...

[...]

> Uff.  I think this would work.

Hmmm. You also have to deal with user additions to the files (possibly
user-added files) in updmap.d, somehow special-case 00updmap.cfg
(doesn't contain Map nor MixedMap lines; the options could be changed
there or in updmap.cfg directly, possibly conflicting) and with per-user
setups in $HOME...

I find all this rather complicated, but you may disagree. :)

-- 
Florent



Reply to: