[Debian-in-workers] Bug#370385: ttf-telugu-fonts ignored due to missing lang=te field in fonts.cache-1

Suraj N. Kurapati skurapat at ucsc.edu
Sun Jun 4 21:59:24 UTC 2006


Package: ttf-indic-fonts
Version: 0.4.7
Owner: soumyadip.modak at gmail.com

I am posting this Ubuntu Dapper (6.06 LTS) bug upstream to Debian as
per the downstream maintainer's (Debian-IN team) request. This bug
can be found downstream in the Ubuntu BTS (bug #48280):
https://launchpad.net/distros/ubuntu/+source/ttf-indic-fonts/+bug/48280

Thanks for your attention.


= Problem =

The Telugu fonts provided by the ttf-telugu-fonts package (version
0.4.7) are effectively ignored for rendering Telugu text in Dapper
because the /usr/share/fonts/truetype/ttf-telugu-fonts/fonts.cache-1
file lacks a lang=te field. In fact, the lang field is *empty* in
that file! As a result, fc-list fails to detect that the Telugu
fonts provided by that package should be used to render Telugu text.

For example, here is the situation before the fix:

$ fc-list :lang=hi
Samanata:style=Regular
Gargi_1.7:style=Medium
FreeSans:style=Medium,navadno
Chandas:style=Regular
Lohit Hindi:style=Regular
$ fc-list :lang=te
$

Notice that fontconfig correctly detects that the Hindi fonts
provided by ttf-devanagari-fonts should be used to render Hindi
text. This is because that package correctly defines the lang field
in its fonts.cache-1 file.

However, notice that fontconfig does not detect any fonts that
should be used when rendering Telugu text (because ttf-telugu-fonts
does not define the lang field properly in its fonts.cache-1 file).

The result of this situation can be seen in this screenshot (see
attachment). Here the Telugu text is incorrectly rendered, and many
glyphs are entirely missing (shown by Unicode hexadecimal boxes).

= Solution =

Replace the blank "lang=:" field with "lang=te:" in the
/usr/share/fonts/truetype/ttf-telugu-fonts/fonts.cache-1 file:

$ sudo sed -i.orig 's/lang=:/lang=te:/g'
/usr/share/fonts/truetype/ttf-telugu-fonts/fonts.cache-1

Afterwards, you will see that fontconfig properly recognizes the
Telugu fonts provided by ttf-telugu-fonts package:

$ fc-list :lang=te
Pothana2000:style=Regular
Pothana2000,Vemana2000:style=Regular

As a result, Telugu text is now correctly rendered using the Telugu
fonts provided by the ttf-telugu-fonts package, as shown here (see
attachment).

= Further work =

To my knowledge, the fonts.cache-1 files are generated by the
fc-cache command. Thus, the previous "solution" is a temporary fix.

We need to determine and fix what is causing the ttf-telugu-fonts
package to *not* provide fc-cache with the correct lang=te information.




More information about the Debian-in-workers mailing list