morning update, using smart

Gene Heskett gene.heskett at verizon.net
Sun Mar 18 04:56:14 UTC 2007


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 at 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 at 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.




More information about the fedora-list mailing list