Red Hat Bugzilla – Bug 242016
[ml_IN] Malayalam fonts rendered incorrectly
Last modified: 2009-05-08 07:19:52 EDT
Description of problem:
The malayalam fonts rendered wrongly in mozilla firefox. This occurs for Chillu
and some koottaksharams like "nte". There are also issues when rendering
ya(യ)+chandrakala(്)+va (വ) and some other similar characters. I have attached a
screenshot which indicates the issues.
Version-Release number of selected component (if applicable):
Fedora Core 6
Steps to Reproduce:
1.Visit the page http://ml.wikipedia.org/wiki/%E0%B4%86%E0%B4%A8 or
http://ml.wikipedia.org/wiki/ in firefox
Refer the attachment
Created attachment 155867 [details]
Screenshot of malaylam page in firefox
have you same problem in konqueror and gedit?
Created attachment 155868 [details]
Screenshot of malayalam page in Konqueror and Gedit
When compared with konqueror, firefox has less errors. But it's interesting to
see that chillu errors are solved in konqueror but there are lots of
ok, so can you please open another bug for qt (rendering) for koottaksharam?
and yes, are you please add unicode for those combinations like
0d0c + od4d+????
you can use Malayalam Unicode chart from:
I am not an expert in unicode and has less knowledge about how the glyphs are
stored. However I will try to get help from some experts about this issue.
Lets look at the issues one by one.
1) Not rendering chillu properly
This has got to do with wrong input and not a problem with rendering
Earlier pango used to render consonent+chandrakala without ZWJ as chillu now
when it is corrected text entered earlier has also need to be corrected.
ള+്+ZWJ - ള്
2) കീഴ്വഴക്കള് is due to a wrong sequence selected in Microsoft Open Type
It can be fixed using suruma patch for pango ( http://suruma.sarovar.org ) and a
font modified to work with it.
3) ഉള്പ്പെടുന്ന This is bug in pango that need to be fixed
For now it can be worked around by adding a ZWNJ after ള്
4) ണു് samvruthokaram is not yet supported. I guess it has to be supported at font
5) പ്രത്യേകത refer 3
6) ന്രോ the problem is bug introduced by Fedora developers to fix rendering of
lohit_ml new lipi font by adding an exception and which broke the traditional
It could be solved by including popular traditional lipi fonts like Rachana and
Anjali to Fedora
Most of the issues except for 3 can be solved by using suruma patched pango.
I have some more screenshots using the rachana and anjali fonts. The anjali
seems to have less errors in firefox. The anjali fonts can be downloaded from :
Created attachment 155873 [details]
Screenshots of firefox and konqueror using Rachana and Anjali
The upstream bug:
*** Bug 379431 has been marked as a duplicate of this bug. ***
*** Bug 382121 has been marked as a duplicate of this bug. ***
LingNing, can you take a look at this, please?
Jens, ok, I will look at it.
I have tested a suruma patch for pango
(http://suruma.sarovar.org/patch4pango-1.16.4.tar.bz2) in Fedora 8 with
lohit-malayalam fonts and Rachana_g02 fonts. There are considerable issues when
using lohit-fonts even with suruma patch. Please compare the two screenshots
Created attachment 265721 [details]
Malayalam in firefox using suruma-pango-patch and lohit-malayalam font
Created attachment 265731 [details]
Malayalam in firefox using suruma-pango-patch and Rachana-g02 font
I have discussed the problems with Ani and tend to agree with most of the points
made by Pravin in Comment #8.
1. Chillu rendering: It used to work in fedora even with ZWJ. There seems to be
some changes in Pango that has broke the rendering. Chillu problems are also
being addressed in Unicode 5.1 .0. Thus we have to wait for the final verdict on
2. ഴ + ് + വ: This is rendered wrong since this is a special case where post
base Va is not used. With most other consonants we need to have post base form
of Va. This can be hanlded in the font, without changing the post base flag of
Va in Pango.
3. ഉള്പ്പെടുന്ന: This problem exists due to some reorderings done by pango which
may be neccessary in the rendering of chillu characters. For time being (and may
be even forever) we can use ZWNJ as suggested by Pravin. This is already being
used in the gnome and fedora translations.
4. ണു് : This cannot be supported in font since pango will not allow use of halant
5. consonant + ് + യ + ക: This is most probably a font issue and can be
solved. Ideally font should have pstf flag for half ya and so should be in the
pango. Additionally I see one 'akhn' combination of ka and ya which may be
6. ന്രോ: This issue is still under discussion. This will be done in both font and
Suruma pathes and Rachana font supports only old lipi in this case. We are
working on a dual solution where both old and new lipi will be supoprted.
1. Chillu Rendering: Whatever be the outcome of Unicode 5.1 we need to support
data which is already using ZWJ for chillu. I broke it in Pango by mistake when
I reverted your changes (ZWJ is ignored now which should not be the case). We
should be able to incorporate this back when we propose a patch to solve all the
existing issues. Even now if you can add this back, I can support the patch
saying it was my mistake in the first place to have removed that flag.
3. I would rather fix the issue than use ZWNJ in this case. My earlier comment
to use ZWNJ was before seeing icu handling this correctly. Also it is not the
correct way to use wrong encoding to work around rendering bugs.
4. This has to be supported in pango and suruma patch gives a solution to this.
If you can review it and if you like it we can submit it upstream (we don't want
to cut our language to fit the rendering engine anymore - and windows renders
5. I don't understand the requirement for supporting the typewriter script
anymore. Can you suggest any logical reasons to continue with typewriter script
now that the technology can handle the tradition script without needing to
cutting down the script? This is a language and cultural issue rather than a
technical issue. If you look around the Malayalam users you can see everyone
following the traditional script.
Rendering is such a fundamental requirement to have a localized system and we
have been sitting on this for a long time even with a solution to most of these
problems already. We have to address this quickly.
Even while we debate on the typewriter/traditional script issue we can push
patch for adding back ZWJ processing and samvruthokaram that does not affect the
Its possible to support both ZWJ and unicode 5.1. We will have to include the
chillu glyphs at the designated code points and apply GSUB on the same glyph in
such a way that it can be produced as a combination with ZWJ as well.
Please correct the ZWJ mistake, I will certainly support that and also the
samvruthokaram patch looks ok.
I have submitted the patch to render chillus and samvruthokaram upstream.
Please add your comments there and support it.
Lets stop fighting over typewriter script and traditional script. Lets find a
way that is agreeable to both of us and that will solve most important rendering
issues we have now.
AFAIK, you don't agree with suruma patch because it does not render conjuncts
with ra like പ്ര (pra) in typewriter script. We don't agree with you changing the
order in pango for making this work in typewriter script while breaking
Can we find a middle way in which suruma patch can render 'pra' correctly in
typewriter script as well?
I remember you mentioning a way to do it by changing fonts so that both scripts
work. Can you get us that?
Samvruthokaram patch for icu. Please comment here too.
Good work Praveen. I will surely test it.
Please test the Open Office Version from
and see if any of the issues still remain. We still need some more fixes to
perfect pango rendering but Open Office is perfect with all known issues resolved.
Suresh is working on a way to solve the issue with typewriter script, he has
already solved it for qt. I will post it here after testing it.
I am having some issues with the Fedora desktop at my office. I will fix it
today and test the patch ASAP.
I have installed the pango and libicu patch from smc repository in Fedora 8. I
think there are still issues. However I tested it with lohit-malayalam-fonts.
I'm not sure whether I need to test it with any other fonts. I have included the
screenshots of firefox and openoffice, before and after applying the updated
packages from smc.
Please let me know if I need to consider any other test cases. I am using Xen
virtual guest, so that I need not worry about any package corruption.
Created attachment 290346 [details]
Screenshots of openoffice and firefox using tha updates from smc
No, it won't work with Lohit fonts without modification. Test with Rachana_g02
and MalOtf.ttf (from
I have tested Openoffice.org and Firefox with ttf-indic-fonts and also
Rachana_g02. It seems that different fonts has different isues. I have attached
a detailed list of screenshots of various fonts.
Created attachment 290403 [details]
Screenshots of openoffice and firefox using updates from smc
First of all thanks for testing it.
How did you create the tar ball? It does not open normally, you have gzipped it
twice, so first you have to run gunzip, change the .tar file to .tar.gz and then
do a tar -zxvf
Firstly, the fonts which you have tested are different
1) Rachana_w01 is designed to work with Microsoft Uniscribe rendering engine and
it will not render correctly in pango or icu.
2) To fix the rendering issues Suresh developed patches for pango and icu called
suruma and required changes in fonts also, which means these becomes
incompatible with Uniscribe/Windows and does not work well for typewriter script
(conjuncts of ra). These are marked g01
3) Rahul Bhalerao has made changes to icu and pango to make Lohit render
correctly which breaks Rachana and other traditional scripts
4) Now Suresh has made the fonts compatible with with both suruma and uniscribe,
these are the g02 fonts. He has fixed the MalOtf to render correctly with suruma
patch (I should have given this font instead of the one from debian package - I
have attached the fixed MalOtf)
So for fixing all the rendering problems you have to follow these steps
a) update the icu and pango packages to the latest version in smc repository
b) Install Rachana_g02 and MalOtf (both attached here).
Now if Lohit follow the scheme of MalOtf then it will work with suruma patch.
Once we have both the traditional and typewriter scripts work correctly with
suruma patch, I think Rahul will agree to push these upstream.
Created attachment 290545 [details]
MalOtf made to work with suruma patch
Created attachment 290546 [details]
Sorry, I was in a hurry and created the tarball using the Archive Manager and
not sure how it gone bad.. Anyway I will attach a new file. I will test it
tomorrow morning and post the results.
Created attachment 290569 [details]
Screenshots of openoffice and firefox using updates from smc
Thanks Praveen and Suresh for your efforts. I have tested the updated packages
from SMC repository with Mal0tf and rachana_g02 fonts in Fedora 8 and it works
fine. However I noticed an issue when using the Mal0tf fonts in FireFox. The
word അന്താരാഷ്ട്ര is not rendered correctly. Please see the attachment. I think
these patches should be applied upstream ASAP.
Created attachment 290646 [details]
Screenshots of openoffice and firefox using pango and icu patches from SMC.
The fonts used are Mal0tf and Rachana_g02
Pravin, your message in comment #23 confused me a bit. In the second paragraph,
you say you don't agree to my solution, while in the last line, you are asking
me my suggestion on the changes required in font to support the old script.
As of now, I have only one tested solution for this. Make the reordering in
pango to support typewriter script and make changes in old script font to suit
There is one more solution hopping in my mind but yet to be tested. On uniscibe,
the typewriter script font uses contextual chain subs (instead of reordering) to
implement 'pra' kind of ligatures. Although OpenType specs for
typewriter(reformed) malayalam script suggest 'reordering at the start of
syllable' for this 'post base' ligature, I expect the old script font to work
out of box for this arrangement, but not sure (I have not tested any windows
machine for this).
I think pango still has problem handling contextual chain subs for indic
scripts. If this can be implemented, all the fonts would work seamlessly on all
the platforms. I think Behdad can inform and help more on this.
Btw, supporting both the scripts is a high priority for me too :)
So lets do it the right way. If contextual chain subs are the ways to lets do
it. I will see if I can find someone ready to work on this if Behdad is ready to
The important thing is fixing the rendering issues.
1) suruma patch fixes most of the issues
2) If you provide both suruma style and uniscribe style conjuncts for va and ya,
it works with Vista, suruma patched pango and qt. That would mean we can
maintain one font that works in Vista and pango (if Microsoft is ready to fix
XP, then there also, but we can't do anything there).
3) At least that gives a one-direction compatibility it is better than
So my choices/priority
1) fix pango to render fonts the way uniscribe does - difficult and we don't
know how much work is needed. If contextual chain subs are the way to I'm all
2) suruma way - we know it works - one way compatibility
3) break away from uniscribe and come up with a standard for Free Software
implementations and fix the issue once and forever.
The important thing is we have to get it out sooner than later and the fastest
way is suruma approach.
For breaking away from Uniscribe, we need to find the real problems in
uniscribe. I have already documented few ambiguities and skipped reorderings in
About suruma, I am not confident about the way it handles Ya and Va. If it needs
to use 'akhn' tag, then I am not with it. Both of these are having post-base
forms and it should be retained.
Problem is, I don't know the Indic shaping rules or model at all.
What I do know is that we really, really should stay as close as possible to
Uniscribe. There's no point in implementing OpenType shaping afterall if we
have different requirements.
The way suruma handles Ya and Va works well with Uniscribe version in Vista. We
have a solution with 'akhn' tag and we know it fixes many issues. We are not
very particular about it. Unless someone commits to fix it without going the
'akhn' we need to use this as it is much worse to leave it broken.
1) Use 'akhn' as in suruma patch - we know it fixes many serious rendering bugs
and it is used by everyone in the Swathanthra Malayalam Computing Community.
2) Some one has to commit to fix it without using 'akhn'. We can't leave it
broken as it is now. So if you are not with 'akhn' you have to fix it with
post-base or get someone to commit it. If Red Hat or someone else who wants
uniscribe compatibility can commit resources we have no objections to it.
I am repeating our priority here again. WE CANNOT LEAVE IT BROKEN.
I started with suruma font with a patch for pango which then had problems with
chillu and post base forms.The chillu issues is solved by turning on ZWJ
processing for Malayalam in the pango and by adding ZWJ in the chillu GSUB
entry in the font.I used 'akhn' for for the post base forms which solved the
issues with the post base forms.
After that, I implemented my idea in the Rachana font for solving the shaping
issues.In the g02 and later versions of the font I retained the uniscribe
features too which means the font can also be used with the qt, unpatched.
I think it is better not to use post/below base forms of RA and LA for xRA and
xLA ligatures.Because there are some consonants whch can't take the isolated
post/below base forms of LA and RA.Eg. YA + RA, YA + LA. RA+RA etc.So for the
reformed script we may have to design some glyphs for xRA and xLA ligaures.It is
worth the effort because we get better and desired rendering.Moreover, AFAIK,
none of the non-uniscribe shaping mechanisms make use of the Language System
Tags from the font.(MAL for Malayalam traditional script and MLR for Malayalam
Now the issues with post base YA and VA forms still persist with pango(like the
'consonant + ് + യ + ക' shaping issue).Recently I have found a workaround for
this at the font level which I will be using in the next versions of
This is really exciting. As now only issue 3 from Comment #8 is left unresolved
(as per Suresh's last comment).
Behdad, g03 fonts (designed for suruma patch with 'akhn' tag for Ya and Va) work
with Uniscribe version in Vista and QT.
Rahul, from Suresh's last comment we can solve the issue with xRa by adding some
more conjuncts in Lohit font (MalOtf, another popular MLR font, already uses
this method). What do you think?
I really appreciate your view that we should try to be as close to uniscribe as
possible. Things do not have so many problems there.
Only way to achieve that would be to follow the OpenType specs themselves.
Considering the issues around Ya (0D2F), Ra (0D30), La (0D32) and Va (0D35) I
would again refer to the Appendix B about the consonant forms at:
It is clearly mentioned that Ya and Va both have Post Base forms in both
old(MAL) and new(MLR) scripts. Whereas La has Below Base form in both the scripts.
If we follow this strictly, I do not think there would be anything else breaking
around it. (IMO the 'akhn' tag has completely different objective and should not
be mixed here even if it works for few cases.)
About 'Ra', I still find the description in the above document to be ambiguous.
Yet, I am open to learn the trick used in Uniscribe for this. If no one succeeds
in doing that, then and only then we should follow a different approach.
My observations about 'akhn' for Ya and Va vary a lot. Firstly, they did not
work on the uniscribe in XP.
As far as I know, there aren't any changes about these conjuncts in Vista. In
any way, 'akhn' tag used on anything that is reordered internally will override
the natural sequence of the characters in other cases. e.g. try the plain
sequence of 0D4D+0D2F (്യ) without any initial consonant. On pango with
Rachana_g02, this resulted in formation of the post-base Ya glyph which is
wrong. Try testing something like (Ka+Halant+Va)+Ya. I would expect 'akhn' Ya
will break the initial cluster of KaHalantVa. (These are only examples of what
may go wrong, I have not tested it in real on Vista yet.)
About Ra, I assume by 'xRa' you mean the conjuncts of type
'Consonant+halant+Ra'. Here using reformed script has completely different
objective. Reformed script IMO should be used to have only minimal set of glyphs
present in font. Your suggestion does not help that. More, I am also concerned
about the conjunct glyphs that will also need this post-base form of Ra but may
not have a related glyph in font. Its always better to make this happen
automatically. This is happening in uniscribe currently.
Behdad, sorry for such long descriptions, I understand it would be difficult for
you to follow the script mechanisms being discussed here. But lets hope we at
least manage to implement what is already standardized and working well :)
Rahul says "Reformed script IMO should be used to have only minimal set of glyphs
present in font."
We can't place a below base form LA every time we encounter a 'VIRAMA, LA'
sequence.This is against the orthographic rules in Malayalam.The same reason
holds true for post base form of RA ,too.
Vis-à-vis the the VA and LA forms issues, the use of 'akhn' was for overcoming
the some shaping issues in pango.Now I clould sovle this issue at the font
level using the 'pstf' tag itself and using the 'VA/LA, VIRAMA' sequence in the
GSUB.I will make available this font for testing.
What typically puzzles me and makes me very hesitant to commit patches to the
Pango indic module is when people say "works with Qt". Guess what, Pango's
indic shaper was quite like Qt's a couple years ago. Then more and more "fixes"
where committed to Pango, each breaking a dozen other combinations... And we've
got into the spaghetti that we have now...
What we need first and foremost is a test suite.
Thanks that you realized using 'pstf' tag :). This is what I have been asking
for so long. Keep post-base forms post-base, below-base to below-base, both in
font and rendering engine and avoid using 'akhn'. Whenever (in rare cases) you
do not want to use them in those forms try some other remedies in font and do
not touch rendering engine for everything.
There is correction in my earlier comment.I messed up with LA and YA.
The line Vis-à-vis the the VA and LA forms issues... should be
Vis-à-vis the the VA and YA forms issues...
and ... 'pstf' tag itself and using the 'VA/LA, VIRAMA' sequence ... should be
... 'pstf' tag itself and using the 'VA/YA, VIRAMA' sequence ...
I had to add some glyphs for the 'pstf' stuff to work.So it was a workaround.
For the RA and LA, I have specified the reason for the non-usage of post base
forms and it is entirely different.It is related to orthography.
When the rendering go haywire with only one particular system we, naturely, go
for the fix in that specific rendering system.
qt4.4/harfbuzz patch is submitted upstream
please test and comment
Behdad, any chance we can have the patch in the upstream bug included in F9?
This issue seems to be giving considerable pain to the Malayalam community.
It is indeed painful to see the patch sitting in the bugzilla unattended for
more than 5 weeks now.
Which patch? Which version of which product?
Rahul and Ani, have we tested this patch for the pango in current pre-F9 rawhide?
Rahul, would you please review the upstream patch?
Recently I have updated lohit-fonts-malayalam in F8(version 2.1.9), and it seems
that still there are issues. The Fedora community is on the brim of a brand new
release and it would be really nice to see all the issues resolved.
Basically the fonts looks ugly(see the items 5 and 4 in the attached image).
There are also critical rendering errors(items 1, 2 and 3 in the image). I have
also attached the screenshot of the same page with Meera fonts(developed by
SMC). The system is installed with the latest pango(pango-1.18.4). I am sure
that the above issues are due to the fonts, because the issues in pango are now
I believe that the traditional fonts, which is very much familiar to the
Malayalees makes more sense in computers. The typewriter fonts were developed in
an effort to ease the typesetting in printing press and it may not be relevant
If the bugs are not resolved within the timeframe, at least consider making the
Meera fonts(it's already in F9 repo) mandatory for Malayalam Language support in
F9 and remove lohit-fonts-malayalam as a prerequisite for applications such as
I wish F9 would be the first GNU/Linux distribution with error-free Malayalam
rendering and interface(80% translation of GNOME is completed)
Created attachment 303741 [details]
Screenshot of firefox with lohit-fonts-malayalam-2.1.9
Screenshot of firefox with lohit-fonts-malayalam-2.1.9
Created attachment 303742 [details]
Screenshot of firefox with Meera Font(SMC)
Screenshot of firefox with Meera Font(SMC)
I see there are basically three kind of problems visible here:
1. the positioning of (Consonant+Halant+Ra) glyphs
2. Substitutions of few Conjunct+HalfRa glyphs, due to the wrong ligatures.
3. The particular combination involving Ya and KaHalantKa.
The first kind of problem happened, since I copied the glyphs given by Hiren.
Unfortunately he had used a different scaling Ascent-Descent values than the
original default Lohit. This caused the positions to distort with respect to
The second problem, I am not sure how it got in, since I had only copy pasted
the fixes given to me. Now after spotting the problem, ligature rules are
certainly incorrect for the conjuncts plus Ra glyphs.
The third problem, is a left behind of the earlier implementation of pango, that
did not use post-base Ya properly. Only reported problem related to this was
post-base Ya followed by Ka, but not the KKa. So this is not a new, but
ignored-for-long-time bug.This is probably present in Rachana as well.
The font in F9, was released quite a long time back and ensured testing by Ani.
So we had ample time to test and correct these kind of last minute fixes.
Unfortunately they were not reported until recently, even now they are not
reported as separate bugs. Said that these are not very complex issues, they
could have been solved on time provided they were reported in time. Anyways, I
would still try to get the fixes right into f9-final.
One more probable problem I think is the ligature for samvruthokaram that was
present in Hiren's fixes. After comparing it with other fonts, I am not sure if
thats the correct glyph. Appreciate inputs on that.
The ligature for samvrathokaram is working correctly, what I did was adding a
new glyph for samvrathokaram, as what it is done in Raghu font by
Suresh|Suruma.For that glyph too, the right bearing is wrong. My fixes are done
just to make a better font and I still believes the font (with my fixes) is buggy.
Considering the font as a font designer and as a language user/l10n volunteer I
feel the font to be worthless, unattractive and unreadable. The design of some
glyphs are done in wrong manner, proportion of glyphs are not correct and the
font contains more irrelevant glyphs. Being a default font for a language, it is
supposed to be good (at least readable) at the screen and paper, which the lohit
malayalam fails on both. This font requires a heavy modifcation, that too from
point out the fact that this version of fedora is the one which contain many
malayalam localisation efforts and pacakges than any old fedoras. Hence it is
disappointing to have such a fedora with 'more than a buggy' font. Its a fact
that the lohit malayalam is unstable font and suggestions for solutions are :
1. Make the lohit malayalam bugfree in every sence : which includes redesigning
of existing glyphs, making of more than 600 more glpyhs to get transformed into
traditional font pattern and some technical things (I suggest an year and a half
for that.).Lohit is now is neither an typewriter font or traditional font, it is
a mix of both. Even to follow the same idea, certain more glyphs are required
for the font.
2. Freeze lohit malayalam, let it be so there or in trash. Make any other Free
Software fonts as the default font for F9. Suggested font is Meera of smc-font
package. And allow lohit malayalam designers to work on the developements.
Bad fonts results in bad computing.
Hiran, thank you for your comments and feedback on Lohit Malayalam.
We need to separate the rendering and fonts issues as far as possible.
It would be very helpful if you could open a separate bug against
lohit-fonts (or multiple bugs) detailing the problems and issues with it.
It sounds like we probably need a tracking bug for it too.
Changing version to '9' as part of upcoming Fedora 9 GA.
More information and reason for this action is here:
requested by Jens Petersen (#27995)
Fedora 10 renders Malayalam perfectly and the default font package is also changed. This ticket may be closed ASAP.
I guess we should have closed this bug long time back. :-)