Bug 1599870

Summary: emojis do not render if font hinting is turned off
Product: [Fedora] Fedora Reporter: Matthew Wong <mawong>
Component: freetypeAssignee: Marek Kašík <mkasik>
Status: CLOSED NEXTRELEASE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: low Docs Contact:
Priority: unspecified    
Version: 30CC: ajax, alexl, fonts-bugs, i18n-bugs, john.j5live, kevin, mclasen, mfabian, mkasik, plumerlis, pnemade, rhughes, rstrode, sandmann, tagoh
Target Milestone: ---   
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2020-04-07 06:44:28 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Attachments:
Description Flags
screenshot of gnome-characters with my .config/fontconfig/fonts.conf none

Description Matthew Wong 2018-07-10 19:46:06 UTC
Description of problem: I cannot see any emojis in e.g. gnome-characters or hexchat if I turn font hinting off

Version-Release number of selected component (if applicable):
fedora 28
gnome-characters-3.28.2-1.fc28.x86_64
fontconfig-2.13.0-4.fc28.x86_64

How reproducible: always


Steps to Reproduce:
1. Create a .config/fontconfig/fonts.conf with hinting false
<?xml version='1.0'?>
<!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
<fontconfig>
  <match>
    <edit mode="assign" name="hinting">
      <bool>false</bool>
    </edit>
  </match>
</fontconfig>
2. Logout & log back in
3. Open gnome-characters

Actual results: no emojis are visible in most applications


Expected results: emojis are visible in all applications


Additional info: idk what component to choose. I love emojis, thank you for making them a priority.

Comment 1 Marek Kašík 2019-01-04 17:19:24 UTC
Hi,

I'm sorry for late answer. Do you still see the issue? I've tried to reproduce it on Fedora 28 but with no success. I also don't see it on Fedora 29 if I set hinting to none in gnome-tweaks.

Comment 2 Matthew Wong 2019-01-07 15:28:57 UTC
Hi, yes I still see it. I made a mistake in my original report because it seems it is not just hinting off but the combination of hinting off + antialias on in my fontconfig file that causes the issue:

<?xml version='1.0'?>
<!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
<fontconfig>
  <match>
    <edit mode="assign" name="hinting">
      <bool>false</bool>
    </edit>
    <edit mode="assign" name="antialias">
      <bool>true</bool>
    </edit>
  </match>
</fontconfig>

I do not use gnome DE, so I am not sure how gnome-tweaks and this fontconfig file interact. Trying gnome, I deleted my fontconfig and used gnome-tweaks to set hinting off + antialiasing on (subpixel) and emojis show in gnome-characters as expected, but if I use the above fontconfig then emojis do not show no matter the setting in gnome-tweaks or what DE I am using.

Comment 3 Marek Kašík 2019-01-11 15:06:28 UTC
Thank you for the answer. I still can not reproduce the issue. Maybe it is font related. Could you attach here list of fonts installed in your system (e.g. "rpm -qa | grep fonts")?
It could be useful to see content of your "/etc/fonts/conf.d/" too ("ls /etc/fonts/conf.d/").
What is your locale ("locale")?
Which version of freetype do you have?

Comment 4 Matthew Wong 2019-01-11 16:30:53 UTC
$ rpm -qa | grep fonts
liberation-serif-fonts-1.07.4-11.fc28.noarch
aajohan-comfortaa-fonts-3.001-2.fc28.noarch
lohit-kannada-fonts-2.5.4-3.fc28.noarch
urw-base35-d050000l-fonts-20170801-10.fc28.noarch
google-noto-fonts-common-20161022-7.fc28.noarch
adobe-source-han-serif-cn-fonts-1.001-4.fc28.1.noarch
lohit-gujarati-fonts-2.92.4-3.fc28.noarch
khmeros-fonts-common-5.0-25.fc28.noarch
thai-scalable-waree-fonts-0.6.5-1.fc28.noarch
urw-base35-nimbus-roman-fonts-20170801-10.fc28.noarch
google-noto-sans-tai-tham-fonts-20161022-7.fc28.noarch
liberation-fonts-common-1.07.4-11.fc28.noarch
sil-nuosu-fonts-2.1.1-14.fc28.noarch
lohit-bengali-fonts-2.91.5-3.fc28.noarch
urw-base35-standard-symbols-ps-fonts-20170801-10.fc28.noarch
dejavu-sans-fonts-2.35-6.fc28.noarch
vlgothic-fonts-20141206-10.fc28.1.noarch
liberation-mono-fonts-1.07.4-11.fc28.noarch
google-crosextra-carlito-fonts-1.103-0.8.20130920.fc28.noarch
urw-base35-fonts-common-20170801-10.fc28.noarch
thai-scalable-fonts-common-0.6.5-1.fc28.noarch
google-noto-emoji-fonts-20180814-1.fc28.noarch
smc-meera-fonts-6.1-9.fc28.noarch
paktype-naskh-basic-fonts-4.1-9.fc28.noarch
google-noto-sans-meetei-mayek-fonts-20161022-7.fc28.noarch
adobe-source-han-sans-cn-fonts-1.004-6.fc28.1.noarch
lohit-gurmukhi-fonts-2.91.2-3.fc28.noarch
google-crosextra-caladea-fonts-1.002-0.10.20130214.fc28.noarch
google-noto-emoji-color-fonts-20180814-1.fc28.noarch
urw-base35-nimbus-sans-fonts-20170801-10.fc28.noarch
gnu-free-serif-fonts-20120503-17.fc28.noarch
gnu-free-fonts-common-20120503-17.fc28.noarch
naver-nanum-fonts-common-3.020-20.20140930.fc28.1.noarch
libreoffice-opensymbol-fonts-6.0.6.2-2.fc28.noarch
google-noto-sans-lisu-fonts-20161022-7.fc28.noarch
lohit-odia-fonts-2.91.2-3.fc28.noarch
paratype-pt-sans-fonts-20141121-6.fc28.noarch
urw-base35-z003-fonts-20170801-10.fc28.noarch
urw-base35-c059-fonts-20170801-10.fc28.noarch
gnu-free-sans-fonts-20120503-17.fc28.noarch
google-droid-sans-fonts-20120715-13.fc28.noarch
julietaula-montserrat-fonts-7.200-4.fc28.noarch
google-noto-sans-tai-viet-fonts-20161022-7.fc28.noarch
naver-nanum-gothic-fonts-3.020-20.20140930.fc28.1.noarch
lohit-telugu-fonts-2.5.5-3.fc28.noarch
lohit-tamil-fonts-2.91.3-3.fc28.noarch
jomolhari-fonts-0.003-24.fc28.noarch
khmeros-base-fonts-5.0-25.fc28.noarch
urw-base35-nimbus-mono-ps-fonts-20170801-10.fc28.noarch
liberation-sans-fonts-1.07.4-11.fc28.noarch
google-noto-sans-mandaic-fonts-20161022-7.fc28.noarch
dejavu-serif-fonts-2.35-6.fc28.noarch
adobe-source-han-serif-tw-fonts-1.001-4.fc28.1.noarch
lohit-assamese-fonts-2.91.5-3.fc28.noarch
stix-fonts-1.1.0-12.fc28.noarch
urw-base35-p052-fonts-20170801-10.fc28.noarch
dejavu-fonts-common-2.35-6.fc28.noarch
tabish-eeyek-fonts-1.0-12.fc28.noarch
sil-abyssinica-fonts-1.200-13.fc28.noarch
urw-base35-bookman-fonts-20170801-10.fc28.noarch
gnu-free-mono-fonts-20120503-17.fc28.noarch
abattis-cantarell-fonts-0.0.25-4.fc28.noarch
gdouros-symbola-fonts-10.24-2.fc28.noarch
dejavu-sans-mono-fonts-2.35-6.fc28.noarch
lohit-devanagari-fonts-2.95.4-3.fc28.noarch
smc-fonts-common-6.1-9.fc28.noarch
sil-padauk-fonts-3.003-1.fc28.noarch
urw-base35-fonts-20170801-10.fc28.noarch
google-noto-sans-sinhala-fonts-20161022-7.fc28.noarch
adobe-source-han-sans-tw-fonts-1.004-7.fc28.1.noarch
sil-mingzat-fonts-0.100-8.fc28.noarch
urw-base35-gothic-fonts-20170801-10.fc28.noarch
google-noto-sans-tagalog-fonts-20161022-7.fc28.noarch
xorg-x11-fonts-ISO8859-1-100dpi-7.5-19.fc28.noarch

$ ls /etc/fonts/conf.d/
10-hinting-slight.conf@
10-scale-bitmap-fonts.conf@
20-unhint-small-dejavu-sans.conf@
20-unhint-small-dejavu-sans-mono.conf@
20-unhint-small-dejavu-serif.conf@
20-unhint-small-vera.conf@
25-no-bitmap-fedora.conf
25-unhint-nonlatin.conf@
29-paps.conf
30-0-google-crosextra-caladea-fontconfig.conf@
30-0-google-crosextra-carlito-fontconfig.conf@
30-lohit-gurmukhi.conf@
30-lohit-odia.conf@
30-metric-aliases.conf@
31-cantarell.conf@
40-nonlatin.conf@
45-generic.conf@
45-latin.conf@
49-sansserif.conf@
50-user.conf@
51-local.conf@
57-dejavu-sans.conf@
57-dejavu-sans-mono.conf@
57-dejavu-serif.conf@
57-paratype-pt-sans.conf@
59-liberation-mono.conf@
59-liberation-sans.conf@
59-liberation-serif.conf@
59-lohit-devanagari.conf@
60-generic.conf@
60-latin.conf@
61-aajohan-comfortaa.conf@
61-julietaula-montserrat.conf@
61-stix.conf@
61-urw-bookman.conf@
61-urw-c059.conf@
61-urw-d050000l.conf@
61-urw-fallback-backwards.conf@
61-urw-gothic.conf@
61-urw-nimbus-mono-ps.conf@
61-urw-nimbus-roman.conf@
61-urw-nimbus-sans.conf@
61-urw-p052.conf@
61-urw-standard-symbols-ps.conf@
61-urw-z003.conf@
62-google-crosextra-caladea-fontconfig.conf@
62-google-crosextra-carlito-fontconfig.conf@
65-0-adobe-source-han-sans-cn.conf@
65-0-adobe-source-han-sans-tw.conf@
65-0-adobe-source-han-serif-cn.conf@
65-0-adobe-source-han-serif-tw.conf@
65-0-jomolhari.conf@
65-0-khmeros-base.conf@
65-0-lohit-assamese.conf@
65-0-lohit-bengali.conf@
65-0-lohit-gujarati.conf@
65-0-lohit-gurmukhi.conf@
65-0-lohit-kannada.conf@
65-0-lohit-odia.conf@
65-0-lohit-tamil.conf@
65-0-lohit-telugu.conf@
65-0-naver-nanum-gothic.conf@
65-0-paktype-naskh-basic.conf@
65-0-smc-meera.conf@
65-1-lohit-devanagari.conf@
65-1-vlgothic-gothic.conf@
65-fonts-persian.conf@
65-gdouros-symbola.conf@
65-google-droid-sans.conf@
65-google-noto-sans-sinhala.conf@
65-nonlatin.conf@
65-sil-mingzat.conf@
65-sil-padauk.conf@
66-google-noto-sans-lisu.conf@
66-google-noto-sans-mandaic.conf@
66-google-noto-sans-meetei-mayek.conf@
66-google-noto-sans-tagalog.conf@
66-google-noto-sans-tai-tham.conf@
66-google-noto-sans-tai-viet.conf@
66-sil-abyssinica.conf@
66-sil-nuosu.conf@
66-tabish-eeyek.conf@
69-gnu-free-mono.conf@
69-gnu-free-sans.conf@
69-gnu-free-serif.conf@
69-unifont.conf@
80-delicious.conf@
90-synthetic.conf@
README

$ locale
LANG=en_CA.UTF-8
LC_CTYPE="en_CA.UTF-8"
LC_NUMERIC="en_CA.UTF-8"
LC_TIME="en_CA.UTF-8"
LC_COLLATE="en_CA.UTF-8"
LC_MONETARY="en_CA.UTF-8"
LC_MESSAGES="en_CA.UTF-8"
LC_PAPER="en_CA.UTF-8"
LC_NAME="en_CA.UTF-8"
LC_ADDRESS="en_CA.UTF-8"
LC_TELEPHONE="en_CA.UTF-8"
LC_MEASUREMENT="en_CA.UTF-8"
LC_IDENTIFICATION="en_CA.UTF-8"
LC_ALL=

$ rpm -qa | grep freetype
freetype-devel-2.8-10.fc28.x86_64
freetype-2.8-10.fc28.x86_64

thanks

Comment 5 Matthew Wong 2019-01-11 16:31:32 UTC
Created attachment 1520090 [details]
screenshot of gnome-characters with my .config/fontconfig/fonts.conf

Comment 6 sachin 2019-04-03 09:34:43 UTC
Unable to reproduce above issue with Fedora 30 . followed below steps 

1. Have created .config/fontconfig/fonts.conf 
<?xml version='1.0'?>
<!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
<fontconfig>
  <match>
    <edit mode="assign" name="hinting">
      <bool>false</bool>
    </edit>
    <edit mode="assign" name="antialias">
      <bool>true</bool>
    </edit>
  </match>
</fontconfig>
2. log out and logback
3. opened gnome-characters 

emojis rendered properly, and if I added above <match> content in /etc/fonts/fonts.config 

emoji rendered without colors

Comment 7 sachin 2019-04-03 10:24:58 UTC
gnome-characters-3.32.0-2.fc30.x86_64

fontconfig-2.13.1-6.fc30.x86_64

Comment 8 Mike FABIAN 2020-04-07 06:41:09 UTC
I cannot reproduce this on F32.

[mfabian@localhost ~]$ cat  .config/fontconfig/fonts.conf
<?xml version='1.0'?>
<!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
<fontconfig>
  <match>
      <edit mode="assign" name="hinting">
            <bool>false</bool>
      </edit>
      <edit mode="assign" name="antialias">
            <bool>true</bool>
      </edit>
  </match>
</fontconfig>
[mfabian@localhost ~]$ 

gnome-characters, emoji-picker, and gedit all display the emoji correctly and in colour.

Comment 9 Mike FABIAN 2020-04-07 06:44:28 UTC
Closing as NEXTRELEASE as it works for me in F32.

Comment 10 plumlis 2021-06-03 02:05:27 UTC
I can reproduce this one F34

   <match target="font">
<edit name="autohint" mode="assign">
	<bool>false</bool>
	</edit>
 </match>
<match target="font">
<edit name="hinting" mode="assign">
	<bool>true</bool>
	</edit>
	 </match>
    <match target="font">
        <edit mode="assign" name="hintstyle">
            <const>hintnone</const>
        </edit>
    </match>