On Thu, 2005-11-17 at 01:07 -0500, Karim Zaki wrote: > Dear all, > > I'm compiling Gaim for my Mac OS X. I reached the stage of having > compiled, made and installed Gaim along with all its dependencies, > including Pango and Cairo. Now when I come to start Gaim, I get the > following: > > $ /usr/local/bin/gaim > > Pango-ERROR **: Unable create Cairo font > aborting... > Abort trap This error usually means that the fontconfig database is pointing to a font that doesn't exist on your system. You might want to examine the output of 'fc-list - family style file', though it may be hard to figure out what font it's trying to load if you have a lot on your system. I've had some problems with bugs in the recent devel snapshots of fontconfig ... if you grabbed one of those, make sure you have run fc-cache on your font directories explicitly ... the implicit cache file in ~/.fonts.cache-2 doesn't really work. Regards, Owen P.S. - I don't like at all that Pango is vulnerable to this problem. There would be two ways to try to make things better: 1. If cairo_scaled_font_create(), create a "dummy font" that sizes and returns characters as if it was all boxes. This is going to be pretty hard because the shapers expect to be able to get a FT_Face for a font. Or, a variant of this, have such a font distributed with Pango (perhaps even built into the binary) and use that for the result of pango_fc_font_lock_face(). 2. Try to catch the problem earlier when we can do something about it... unfortunately, it hurts a lot to actually load a font off disk that we aren't using. Maybe in pango-context.c:get_shaper_and_font_foreach() There could be a call to a pango_font_validate() or something before a font is chosen for a character. The simplest validation would just be a stat() on the filename from the FT_Pattern. Or you could go further and actually call cairo_scaled_font_create() at that point the first time you use a particular filename - that would catch permission problems - right now I think making a font under /usr/share/fonts not readable to users is an easy way to get Pango to assert as above.
Attachment:
signature.asc
Description: This is a digitally signed message part