This patch fixes the problem for me (I'm having the exact same
problem, where a fresh sid instalation fails with the "cannot
write" errors). It seems to me that the code in
FcDirCacheProcess() is wrong: since files are being modified in
the cache directory, "dir_stat.st_mtime <= file_stat.st_mtime"
will often be false for random reasons; even though I don't fully
understand what the logic behind the code is, that doesn't
sound right. Wouldn't the intention of that function be to return
true unless an error happens?
Regards,
--
Álvaro Martínez Echevarría ame ATATAT acm.org
``Pero yo que he sentido una vez en mis manos temblar
la alegría / ya no podré morir nunca. / Pero yo que he
tocado una vez las agudas agujas del pino / ya no podré
morir nunca''. [José Hierro, "El muerto"]
--- fontconfig-2.4.1/src/fccache.c.OLD 2006-09-09 16:30:00.000000000 -0700
+++ fontconfig-2.4.1/src/fccache.c 2006-10-16 15:06:47.000000000 -0700
@@ -143,7 +143,7 @@
FcStrList *list;
FcChar8 *cache_dir;
struct stat file_stat, dir_stat;
- FcBool ret = FcFalse;
+ FcBool ret = FcTrue;
if (stat ((char *) dir, &dir_stat) < 0)
return FcFalse;