This bug is present in fontconfig 2.0, 2.1 and CVS : -configure fontconfig to only use 2 different directories (foo and bar) -in foo directory, put 4x6-ISO8859-1.pcf font (ucs font from XF 4.3 CVS) -in bar directory, put onyx.ttf font (Linotype Onyx from http://www.myfonts.com/fonts/linotype/onyx/) -run fc-cache -f -v to refresh fontconfig cache now, run xterm -fa sans => crash in FcPatternPosition (p=0x0, object=0x4002363b "file) at fcpat.c:535 535 high = p->num - 1; This is caused by fontconfig matching code returning a Null match If you try to start a pango based application, you get the "fonconfig is not configured...." Moving onyx.ttf font in the "foo" directory and restarting fc-cache fixes the issue.. The issue described here is a simplified testcase.. More simply, you just need to add onyx.ttf font in a directory different from the one which contains 4x6-ISO8859-1 to break fontconfig :((
Created attachment 24 [details] log from FC_DEBUG=127 xterm -fa sans
Looks like the attachment was truncated at the critical juncture. Given that the onyx font is not redistributable, I'm afraid we're going to have a difficult time debugging this. Have you tried reproducing this with a free font? I suggest that one of the issues is related to the lack of French support in 4x6, so it may be that most any .ttf which does support french will cause a similar problem.
This doesn't seem to be related to french locale => I've reconfigured the system to use english and I still get the same problem.. Attached is another log obtained with gedit.. There is no crash involved since pango returns an error and log shouldn't be truncated
Created attachment 25 [details] log from gedit with FC_DEBUG=127
Cool bug. The reason 4x6 was critical was that onyx has a font version of 6 and 4x6 has a pixelsize of 6. The pixel size was represented internally as a value list containing '6.0' and was parsed first. When onyx was parsed, it shared the same value list as 6 == 6.0. However, the matching code didn't allow integer and double values to mix, the result was a match failure. Fixed by permitting double and integer values to mix in the matching code.
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.