On Mon, 2005-10-03 at 22:17 -0400, Patrick Lam wrote: > Matthias Clasen wrote: > > > > Actually, thinking about FcDirCacheValid some more, I don't see how the > > single per-file timestamp can work at all with multi-platform cache > > files. Imagine that a new font gets installed in a directory with a > > multi-platform cache. If you then run fc-cache on i386, it'll update > > only the i386 section of the cache, but update the timestamp, marking > > the whole cache file as uptodate, so a later run on x86_64 will not > > update the x86_64 segment. I think the only solution to this is to put > > per-segment timestamps into the file, and use them to determine > > cache-outdatedness on a per-platform basis. Or simply use one cache file > > per platform... > > Oops, you're right. How about this: when we find that the cache is > invalidated on any platform, we remove all stale sections from other > platforms. That ought to be sufficient to avoid staleness (safety). Of > course, an update to a file which is not stale preserves existing > sections (liveness). With this solution, in order to fully update cache > files, you'll have to run fc-cache on all relevant platforms once, which > is the best we can do (without cross-platform cache creation) anyway. Sounds like it should work well enough (since fonts are not installed with high frequency...) Matthias