https://bugzilla.redhat.com/show_bug.cgi?id=1498269
Bug ID: 1498269 Summary: Noto Color Emoji and Noto Emoji fixed fonts cause a X error in a tcl/tk script Product: Fedora Version: 26 Component: google-noto-fonts Severity: high Assignee: psatpute@redhat.com Reporter: jlc@cfl.rr.com QA Contact: extras-qa@fedoraproject.org CC: fonts-bugs@lists.fedoraproject.org, i18n-bugs@lists.fedoraproject.org, psatpute@redhat.com, pwu@redhat.com
Created attachment 1333924 --> https://bugzilla.redhat.com/attachment.cgi?id=1333924&action=edit test script do demonistrate emoji fix font causing an X error
Description of problem: The NCID (Network Caller ID) client is written in tcl/tk. When the google-noto-emoji-fonts became part of the standard install for Fedora, the ncid client would cause an X error and crash every time it scanned for fixed fonts. The attached script was written to determine and verify the problem.
Version-Release number of selected component (if applicable): google-noto-emoji-fonts-20170827-1.fc26.noarch
How reproducible: Reproducible every time test script run on Fedora 26 and also Fedora 25.
Steps to Reproduce: 1. run attached test script 2. 3.
Actual results: X Error of failed request: BadLength (poly request too large or internal Xlib length error) Major opcode of failed request: 138 (RENDER) Minor opcode of failed request: 20 (RenderAddGlyphs) Serial number of failed request: 476 Current serial number in output stream: 539
Expected results: Expected script not to cause an X error and crash.
Additional info: Uncomment the two Noto Emoji font lines in testfonts.tk to not get the X error.
The bug is also reported at https://core.tcl.tk/tk/tktview/3767882e066523dc9ae4 but it is considered a font problem not a tk problem.
https://bugzilla.redhat.com/show_bug.cgi?id=1498269
Pravin Satpute psatpute@redhat.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |mfabian@redhat.com Component|google-noto-fonts |google-noto-emoji-fonts Assignee|psatpute@redhat.com |pwu@redhat.com
https://bugzilla.redhat.com/show_bug.cgi?id=1498269
--- Comment #1 from Mike FABIAN mfabian@redhat.com --- As you write in your attached script:
“Most likely this is an Xft deficiency”
This problem is not specific to the Noto Emoji fonts, almost all emoji fonts do not work when trying to display them for example with “xfd -fa font”:
mfabian@taka:~ $ for i in 'Noto Color Emoji' 'Apple Color Emoji' 'Emoji One' 'Noto Emoji' 'Android Emoji' 'Segoe UI Emoji' 'Twitter Color Emoji'; do fc-list "$i"; xfd -fa "$i"; done
/usr/share/fonts/google-noto-emoji/NotoColorEmoji.ttf: Noto Color Emoji:style=Regular Warning: Missing charsets in String to FontSet conversion X Error of failed request: BadLength (poly request too large or internal Xlib length error) Major opcode of failed request: 138 (RENDER) Minor opcode of failed request: 20 (RenderAddGlyphs) Serial number of failed request: 217 Current serial number in output stream: 370 /home/mfabian/.fonts/Apple Color Emoji.ttf: Apple Color Emoji,Apple 彩色表情符號,Apple farve-emoji,Apple Farben-Emoji,Applen väri-emoji,Apple Emoji couleur,Colore Emoji Apple,Apple カラー絵文字,Apple 컬러 이모티콘,Apple Kleur-Emoji,Apple farge-emoji,Apple Emoji em Cores,Цветные эмодзи Apple,Apple färg-emoji,Apple 彩色表情符号,لون,Apple Emoji color:style=Regular,標準體,Ordinær,Normal,Normaali,Regolare,レギュラー,일반체,Regulier,Обычный,常规体,عادي Warning: Missing charsets in String to FontSet conversion X Error of failed request: BadLength (poly request too large or internal Xlib length error) Major opcode of failed request: 138 (RENDER) Minor opcode of failed request: 20 (RenderAddGlyphs) Serial number of failed request: 475 Current serial number in output stream: 651 /usr/share/fonts/eosrei-emojione/emojione-android.ttf: Emoji One:style=Regular Warning: Missing charsets in String to FontSet conversion X Error of failed request: BadLength (poly request too large or internal Xlib length error) Major opcode of failed request: 138 (RENDER) Minor opcode of failed request: 20 (RenderAddGlyphs) Serial number of failed request: 217 Current serial number in output stream: 370 /usr/share/fonts/google-noto-emoji/NotoEmoji-Regular.ttf: Noto Emoji:style=Regular Warning: Missing charsets in String to FontSet conversion X Error of failed request: BadLength (poly request too large or internal Xlib length error) Major opcode of failed request: 138 (RENDER) Minor opcode of failed request: 20 (RenderAddGlyphs) Serial number of failed request: 217 Current serial number in output stream: 371 /usr/share/fonts/google-android-emoji/AndroidEmoji.ttf: Android Emoji:style=Regular Warning: Missing charsets in String to FontSet conversion X Error of failed request: BadLength (poly request too large or internal Xlib length error) Major opcode of failed request: 138 (RENDER) Minor opcode of failed request: 20 (RenderAddGlyphs) Serial number of failed request: 217 Current serial number in output stream: 368 /home/mfabian/.fonts/segoeuiemoji/seguiemj.ttf: Segoe UI Emoji:style=Regular,Normal,obyčejné,Standard,Κανονικά,Normaali,Normál,Normale,Standaard,Normalny,Обычный,Normálne,Navadno,Arrunta Warning: Missing charsets in String to FontSet conversion X Error of failed request: BadLength (poly request too large or internal Xlib length error) Major opcode of failed request: 138 (RENDER) Minor opcode of failed request: 20 (RenderAddGlyphs) Serial number of failed request: 217 Current serial number in output stream: 367 /home/mfabian/.fonts/TwitterColorEmoji-SVGinOT-Linux-1.3/TwitterColorEmoji-SVGinOT.ttf: Twitter Color Emoji:style=Regular Warning: Missing charsets in String to FontSet conversion X Error of failed request: BadLength (poly request too large or internal Xlib length error) Major opcode of failed request: 138 (RENDER) Minor opcode of failed request: 20 (RenderAddGlyphs) Serial number of failed request: 217 Current serial number in output stream: 367 mfabian@taka:~ $ mfabian@taka:~ $
https://bugzilla.redhat.com/show_bug.cgi?id=1498269
Mike FABIAN mfabian@redhat.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Component|google-noto-emoji-fonts |xorg-x11 Assignee|pwu@redhat.com |xgl-maint@redhat.com QA Contact|extras-qa@fedoraproject.org |
https://bugzilla.redhat.com/show_bug.cgi?id=1498269
--- Comment #2 from John L. Chmielewski jlc@cfl.rr.com --- Updating to the google-noto-emoji-fonts-20170928-1.fc26.noarch package fixed the problem of the "Noto Emoji" font causing an X error.
Unfortunately, if the google-noto-emoji-color-fonts-20170928-1.fc26.noarch package is installed not only does the "Noto Color Emoji" font cause an X error but the "Noto Emoji" font also causes the error again.
If the google-noto-emoji-color-fonts-20170928-1.fc26.noarch package is uninstalled, "Noto Emoji" will not cause an X error.
https://bugzilla.redhat.com/show_bug.cgi?id=1498269
--- Comment #3 from Peng Wu pwu@redhat.com --- I think it is because "Noto Color Emoji" contains color bitmap glyph.
The color bitmap is new feature of TrueType font, tcl/tk or X Window may not support it yet.
https://bugzilla.redhat.com/show_bug.cgi?id=1498269
--- Comment #4 from Mike FABIAN mfabian@redhat.com --- Yes, all color bitmap fonts cause this problem, see the comment:
https://bugzilla.redhat.com/show_bug.cgi?id=1498269#c1
https://bugzilla.redhat.com/show_bug.cgi?id=1498269
--- Comment #5 from Mike FABIAN mfabian@redhat.com --- (In reply to John L. Chmielewski from comment #2)
Updating to the google-noto-emoji-fonts-20170928-1.fc26.noarch package fixed the problem of the "Noto Emoji" font causing an X error.
This font package has been split:
google-noto-emoji-fonts now contains only "Noto Emoji" (scalable black and white font) google-noto-emoji-color-fonts contains only "Noto Color Emoji" (Coloured bitmap font)
Unfortunately, if the google-noto-emoji-color-fonts-20170928-1.fc26.noarch package is installed not only does the "Noto Color Emoji" font cause an X error but the "Noto Emoji" font also causes the error again.
That is only because the default fontconfig rules enforce the use of color emoji fonts if available, see:
/etc/fonts/conf.d/60-generic.conf which contains:
<!-- Prefer to match color emoji font. --> <match> <test name="lang"> <string>und-zsye</string> </test> <test qual="all" name="color" compare="not_eq"> <bool>true</bool> </test> <test qual="all" name="color" compare="not_eq"> <bool>false</bool> </test> <edit name="color" mode="append"> <bool>true</bool> </edit> </match>
Because of this, even if you request "Noto Emoji", what you actually get is "Noto Color Emoji" unless this font is not installed at all.
If the google-noto-emoji-color-fonts-20170928-1.fc26.noarch package is uninstalled, "Noto Emoji" will not cause an X error.
Because then there is no "Noto Color Emoji".
https://bugzilla.redhat.com/show_bug.cgi?id=1498269
Mike FABIAN mfabian@redhat.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Version|26 |27
https://bugzilla.redhat.com/show_bug.cgi?id=1498269
Nicolas Mailhot nicolas.mailhot@laposte.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Component|xorg-x11 |tcltk Assignee|xgl-maint@redhat.com |mmaslano@redhat.com QA Contact| |bhuang@redhat.com
--- Comment #6 from Nicolas Mailhot nicolas.mailhot@laposte.net --- Xft is legacy, TCL/TK can't expect it to integrate new features forever
And color emogis are a new feature (basically a completely new font format, that exercises the exact limits that caused Xft maintainers to deprecate it in favour of fontconfig)
The fix can only be TCL/TK side, their upstream needs to finish the transition from X core fonts and Xft to client-side fonts (fontconfig+harfbuzz-ng), like other toolkits did long ago. It will also fix lots of other TCL/TK text problems
In the meanwhile using TCL/TK will force you to keep your system in a legacy state without new font features like color emogis.
https://bugzilla.redhat.com/show_bug.cgi?id=1498269
Satyabrata Maitra smaitra@redhat.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |i18n
https://bugzilla.redhat.com/show_bug.cgi?id=1498269
--- Comment #7 from Marcela Mašláňová mmaslano@redhat.com --- FYI I'm pretty sure I do not own any package anymore and I definitely got rid off all tcl related stuff years go. If you want to fix it, feel free to take ownership of the package.
https://bugzilla.redhat.com/show_bug.cgi?id=1498269
Jens Petersen petersen@redhat.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |jskarvad@redhat.com Component|tcltk |tk Assignee|mmaslano@redhat.com |jskarvad@redhat.com QA Contact|bhuang@redhat.com |extras-qa@fedoraproject.org
https://bugzilla.redhat.com/show_bug.cgi?id=1498269
--- Comment #8 from Ben Cotton bcotton@redhat.com --- This message is a reminder that Fedora 27 is nearing its end of life. On 2018-Nov-30 Fedora will stop maintaining and issuing updates for Fedora 27. It is Fedora's policy to close all bug reports from releases that are no longer maintained. At that time this bug will be closed as EOL if it remains open with a Fedora 'version' of '27'.
Package Maintainer: If you wish for this bug to remain open because you plan to fix it in a currently maintained version, simply change the 'version' to a later Fedora version.
Thank you for reporting this issue and we are sorry that we were not able to fix it before Fedora 27 is end of life. If you would still like to see this bug fixed and are able to reproduce it against a later version of Fedora, you are encouraged change the 'version' to a later Fedora version prior this bug is closed as described in the policy above.
Although we aim to fix as many bugs as possible during every release's lifetime, sometimes those efforts are overtaken by events. Often a more recent Fedora release includes newer upstream software that fixes bugs or makes them obsolete.
https://bugzilla.redhat.com/show_bug.cgi?id=1498269
John L. Chmielewski jlc@cfl.rr.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Version|27 |28
--- Comment #9 from John L. Chmielewski jlc@cfl.rr.com --- This bug is also in version 28 as reproduced by the provided test script. The bug should also be present version 29.
Changed version to 28.
i18n-bugs@lists.fedoraproject.org