On Saturday 17 March 2007, Sam Varshavchik wrote: >Gene Heskett writes: >> In /etc/fonts/conf.avail, a directory created on Nov 9, all the files >> are 1 Oct dated. >> >> In /etc/fonts.conf.d a directory created on Jan 26, 2007, all the >> files are much older, with the newest ones being made on Nov 9th 2006. >> >> The rest of the files in /etc/fonts: >> -rwxrwxrwx 1 root root 8637 Dec 21 2004 Fontmap >> -rwxrwxrwx 1 root root 11489 Jan 5 2005 fonts.conf >> -rwxrwxrwx 1 root root 5840 Jan 5 2005 fonts.dtd >> -rwxrwxrwx 1 root root 1070 Sep 27 2004 local.conf >> are much older than that. >> >> That was me that set all the perms wide open of course. >> >> So, I still have the problem, and so far none of these 'clues' (now >> there is another oxymoron if ever there was such a thing) do not seem >> to be meaning much to this particular wannabe Sherlock Holmes. >> >> Help! > >At this point, what I would ordinarily do now is fire up gdb, and step >through the stupid thing to see exactly what it's doing. But, if you > knew how to do this, I'd think you would've done it already, I presume, > so that's not going to work. Time to try a different approach. > >It looks to me like that there's a corrupted file somewhere that the > stupid thing is trying to read, and when it can't make heads or tails > of it, it blows up. > >Looking at fonts.conf, it looks like that in addition to >/var/cache/fontconfig, it also pokes in $HOME/.fontconfig, so if root > has this subdirectory, try nuking its contents too, temporarily. I > checked, and my box's root account does not have a .fontconfig, but a > non-root account does. There's also a /var/gdm/.fontconfig. That's > worth exploring. > >Then, in addition to /usr/share/fonts, it also looks at the .fonts > directory in your home directory. On my box, no account has a .fonts > subdirectory. > >Finally, in /usr/share/fonts, and in /usr/share/X11/fonts I see a >fonts.cache-1 file in every directory and subdirectory. > >Try something like "ls -lt `find /usr/share/fonts -name 'fonts.cache*'`" >(note the carefully-placed apostrophes and backticks, and repeat for >/usr/share/X11/fonts), to identify recently-touched fonts.cache-1 files. > See if temporarily nuking the ones with the most recent timestamps will > fix it. Only one exists, in msttcorefonts, I just mv'd it, no effect. >The next step is to see if "rpm -V fontconfig" finds a corrupted file in > the fontconfig package. Then, you'll need to identify each rpm that > install fonts. "rpm -q -a | grep '*fonts*'" would be a good start. unforch, and although its 40 seconds of 90% cpu, that comes up empty. But, to use a bigger hammer: $>rpm -V `rpm -q -a | grep font` outputs a quite lengthy list, too long to post, with everything having the M error because I'd done the chmod 0777 to the whole thing, and quite a few having an extra, final 'c' reported, like these: .M...... c /etc/fonts/conf.avail/10-autohint.conf .M...... c /etc/fonts/conf.avail/10-no-sub-pixel.conf .M...... c /etc/fonts/conf.avail/10-sub-pixel-bgr.conf .M...... c /etc/fonts/conf.avail/10-sub-pixel-rgb.conf .M...... c /etc/fonts/conf.avail/10-sub-pixel-vbgr.conf .M...... c /etc/fonts/conf.avail/10-sub-pixel-vrgb.conf .M...... c /etc/fonts/conf.avail/10-unhinted.conf .M...... c /etc/fonts/conf.avail/20-fix-globaladvance.conf .M...... c /etc/fonts/conf.avail/20-lohit-gujarati.conf .M...... c /etc/fonts/conf.avail/20-unhint-small-vera.conf .M...... c /etc/fonts/conf.avail/30-amt-aliases.conf .M...... c /etc/fonts/conf.avail/30-urw-aliases.conf .M...... c /etc/fonts/conf.avail/40-generic.conf .M...... c /etc/fonts/conf.avail/49-sansserif.conf .M...... c /etc/fonts/conf.avail/50-user.conf .M...... c /etc/fonts/conf.avail/51-local.conf .M...... c /etc/fonts/conf.avail/60-latin.conf .M...... c /etc/fonts/conf.avail/65-fonts-persian.conf .M...... c /etc/fonts/conf.avail/65-nonlatin.conf .M...... c /etc/fonts/conf.avail/69-unifont.conf .M...... c /etc/fonts/conf.avail/70-no-bitmaps.conf .M...... c /etc/fonts/conf.avail/70-yes-bitmaps.conf .M...... c /etc/fonts/conf.avail/80-delicious.conf .M...... c /etc/fonts/conf.avail/90-synthetic.conf .M...... d /etc/fonts/conf.avail/README There are more, but scattered here and there in the output. .M...... c /etc/fonts/conf.d/25-no-hint-fedora.conf .M...... c /etc/fonts/conf.d/30-aliases-fedora.conf .M...... c /etc/fonts/conf.d/40-generic-fedora.conf .M...... c /etc/fonts/conf.d/64-nonlatin-fedora.conf .M...... c /etc/fonts/conf.d/75-blacklist-fedora.conf SM5....T c /etc/fonts/fonts.conf SM5....T /etc/fonts/fonts.dtd [...] .M...... c /usr/share/fonts/japanese/TrueType/fonts.alias [...] .M...... c /usr/share/fonts/japanese/misc/fonts.alias [...] .M...... c /etc/fonts/conf.d/59-dejavu-lgc-fonts.conf [...] .M...... c /etc/fonts/conf.d/58-dejavu.conf [...] .M...... c /etc/fonts/conf.d/61-dejavu-experimental.conf And that's all that gets my attention in that tree, and its that tree that fc-cache is yelping about. And the manpage for rpm doesn't seem to mention it in this context. Or does it, my previous snip didn't start quick enough: c %config configuration file. d %doc documentation file. g %ghost file (i.e. the file contents are not included in the package payload). l %license license file. r %readme readme file. So that does explain the c & d's sensibly. > Then run rpm -V for each, looking for something that would pop out in > front of you. > >Finally, I would look for files in /usr/share/fonts, and >/usr/share/X11/fonts, that are not claimed by any package. Something > like: > >cd /usr/share/fonts >find . -type f -print | xargs rpm -q -f | grep 'not owned' [root@coyote fonts]# find . -type f -print | xargs rpm -q -f | grep 'not owned' file /usr/share/fonts/msttcorefonts/ponts.cache-1 is not owned by any package file /usr/share/fonts/msttcorefonts/fonts.scale is not owned by any package file /usr/share/fonts/msttcorefonts/Fontmap is not owned by any package file /usr/share/fonts/tv-fonts/fonts.dir is not owned by any package But, in this case $>rpm -q msttcorefonts msttcorefonts-2.0-1 >That's rather crude, but it'll work. On my box, besides fonts.cache-1 I >also see a bunch of fonts.scale and fonts.dir files, all over the place. [root@coyote fonts]# locate fonts.dir /home/elmer/.kde/share/fonts/override/fonts.dir /home/gene/.gnome2/share/cursor-fonts/fonts.dir /home/gene/.gnome2/share/fonts/fonts.dir /home/gene/.kde/share/fonts/fonts.dir /home/gene/.kde/share/fonts/override/fonts.dir /home/shop/.fonts/fonts.dir /home/shop-gene/.fonts/fonts.dir [nuke about 50k of /mnt/hdb stuff, its my old FC2 install] /root/.fonts/fonts.dir /root/.fonts/kde-override/fonts.dir /root/.gkrellm2/themes/BlueX4/font/fonts.dir /root/.gkrellm2/themes/Xenophilia/font/fonts.dir /root/.gnome2/share/cursor-fonts/fonts.dir /root/.gnome2/share/fonts/fonts.dir /usr/java/jdk1.5.0_10/jre/lib/fonts/fonts.dir /usr/java/jdk1.5.0_10/jre/lib/oblique-fonts/fonts.dir /usr/share/X11/fonts/100dpi/fonts.dir /usr/share/X11/fonts/75dpi/fonts.dir /usr/share/X11/fonts/TTF/fonts.dir /usr/share/X11/fonts/Type1/fonts.dir /usr/share/X11/fonts/misc/fonts.dir /usr/share/fonts/default/Type1/fonts.dir /usr/share/fonts/japanese/TrueType/fonts.dir /usr/share/fonts/japanese/misc/fonts.dir /usr/share/fonts/msttcorefonts/fonts.dir /usr/share/fonts/terminus-font/fonts.dir /usr/share/fonts/tv-fonts/fonts.dir /usr/share/gkrellm2/themes/BlueX4/font/fonts.dir /usr/share/gkrellm2/themes/Xenophilia/font/fonts.dir /usr/share/xine/skins/Bambino-Blue/fonts.dir /usr/share/xine/skins/Centori/fonts.dir /usr/share/xine/skins/Sunset/fonts.dir /usr/share/xine/skins/mplayer/fonts.dir /usr/share/xine/skins/xinium/fonts.dir /usr/src/jdk1.5.0_10/jre/lib/fonts/fonts.dir /usr/src/jdk1.5.0_10/jre/lib/oblique-fonts/fonts.dir So I have quite a few of those, but they do not show up in an strace. And this is all the fonts.scale files locate can find that belong to the FC6 install. /root/.fonts/fonts.scale /usr/share/X11/fonts/TTF/fonts.scale /usr/share/X11/fonts/Type1/fonts.scale /usr/share/fonts/default/Type1/fonts.scale /usr/share/fonts/japanese/TrueType/fonts.scale /usr/share/fonts/msttcorefonts/fonts.scale So there aren't nearly as many, and I would think it would be a 1/1 for those two, it appears to be for the FC2 install on /mnt/hdb/usr/share. But that's the only seeming miss-match. Didn't we use to have a mkfonts-something that was supposed to survey the system and create all these files for us? Or is that what fc-cache, given a single tree at a time, is supposed to do now? So I've got clues by the megabyte here, none of which are making any sense to me. And any help gratefully accepted and profuse thanks for the right note played on a magic twanger at this point. Oops, I just gave away my age, that tv show has been gone for 50+ years now. -- Cheers, Gene "There are four boxes to be used in defense of liberty: soap, ballot, jury, and ammo. Please use in that order." -Ed Howdershelt (Author) Speer's 1st Law of Proofreading: The visibility of an error is inversely proportional to the number of times you have looked at it.