[Fontconfig] Re: Crash when non-existing directories are referenced in ~/.fonts.cache

Matthias Clasen mclasen at redhat.com
Sun Jan 29 21:57:27 PST 2006


On Sun, 2006-01-29 at 23:36 -0500, Patrick Lam wrote:
> I have internet access again and can commit some patches...
> 
> Matthias Clasen wrote:
> > [fc-cat goes in an infinite loop]
> 
> It looks like Mike Fabian got that one.  I'll take a look at it now.
> 
> > It seems to me that all the recent breakage is due to the global cache. 
> > It just complicates the caching logic a lot. Would be it be too hard to just demand
> > fc-cache being run after installing new fonts ? We do that for everything else thats
> > cached, like icon themes, mime data, etc...
> 
> The recent breakage is, in my opinion, due to putting directory caches
> into /var/cache/fontconfig and the resulting changes in global and
> directory cache files needed to support this.  I'm not sure that this
> was, in fact, an improvement, and complicated a lot of the code; it
> helps satisfy some FHS constraint, but seems to be hard to get right and
> is still conceptually a bit problematic.  It was much simpler to put
> font caches in their own directories.
> 
> I don't think it's appropriate to demand that fc-cache be run after
> installing new fonts, especially since fc-cache runs as root and users
> can install their own fonts.  That would make fontconfig worse than it
> is now.

Well, the current state of continuous recreation of $HOME/.fonts.cache
is certainly worse than having to run fc-cache after font installation. 
fc-cache does not have to be run as root, I can use it just fine as an
ordinary user to create a font cache in $HOME/.fonts.

But regardless of this discussion, I'm still seeing some problems with
current CVS. Repeatedly running fc-list : makes $HOME/.fonts.cache-2
change its size (for me it oscillates between 141434 and 141538), so 
it is obviously being rewritten every time, even though the set of 
installed fonts does not change at all.

fc-cat does not list any fonts when run on $HOME/.fonts.cache-2.
When run on one of the directory caches in /var/cache/fontconfig, it
produces garbage in the charset fields.

Matthias



More information about the Fontconfig mailing list