Bug 1549 - GTK apps don't respect global/user lcdfilter font settings without a sub-pixel rendering enabled freetype2 build
Summary: GTK apps don't respect global/user lcdfilter font settings without a sub-pixe...
Status: RESOLVED FIXED
Alias: None
Product: Mageia
Classification: Unclassified
Component: RPM Packages (show other bugs)
Version: 1
Hardware: x86_64 Linux
Priority: Normal normal
Target Milestone: ---
Assignee: Mageia Bug Squad
QA Contact:
URL: http://imageshack.us/f/835/screennc.png/
Whiteboard:
Keywords:
Depends on: 1909
Blocks:
  Show dependency treegraph
 
Reported: 2011-06-03 12:49 CEST by Hrvoje Senjan
Modified: 2011-07-05 04:34 CEST (History)
3 users (show)

See Also:
Source RPM: freetype2
CVE:
Status comment:


Attachments

Description Hrvoje Senjan 2011-06-03 12:49:59 CEST
Description of problem:
None of the GTK apps follow font hinting set in .fonts.conf and .Xresources

Version-Release number of selected component (if applicable):


How reproducible:
Always

Steps to Reproduce:
1. Set "custom" font settings
2. Open any GTK application
3. See the difference

.fonts.conf:
<?xml version='1.0'?>
<!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
<fontconfig>
 <match target="font">
  <edit mode="assign" name="rgba">
   <const>rgb</const>
  </edit>
 </match>
 <match target="font">
  <edit mode="assign" name="hinting">
   <bool>true</bool>
  </edit>
 </match>
 <match target="font">
  <edit mode="assign" name="hintstyle">                                                       
   <const>hintslight</const>                                                                  
  </edit>                                                                                     
 </match>                                                                                     
 <match target="font">                                                                        
  <edit mode="assign" name="antialias">                                                       
   <bool>true</bool>                                                                          
  </edit>                                                                                     
 </match>                                                                                     
 <match target="font">                                                                        
  <edit mode="assign" name="lcdfilter">                                                       
   <const>lcddefault</const>                                                                  
  </edit>                                                                                     
 </match>                                                                                     
 <match target="font">                                                                        
  <edit mode="assign" name="autohint">                                                        
   <bool>true</bool>                                                                          
  </edit>                                                                                     
 </match>                                                                                     
 <match target="font">                                                                        
  <edit mode="assign" name="rgba">                                                            
   <const>rgb</const>                                                                         
  </edit>                                                                                     
 </match>                                                                                     
 <match target="font">                                                                        
  <edit mode="assign" name="hinting">                                                         
   <bool>true</bool>                                                                          
  </edit>                                                                                     
 </match>                                                                                     
 <match target="font">                                                                        
  <edit mode="assign" name="hintstyle">                                                       
   <const>hintslight</const>                                                                  
  </edit>                                                                                     
 </match>                                                                                     
 <match target="font">                                                                        
  <edit mode="assign" name="antialias">                                                       
   <bool>true</bool>                                                                          
  </edit>                                                                                     
 </match>                                                                                     
 <dir>~/.fonts</dir>                                                                          
</fontconfig>


.Xresources:
! Xft settings ---------------------------------------------------------------                
Xft.dpi:        96                                                                            
Xft.antialias:  true                                                                          
Xft.rgba:       rgb                                                                           
Xft.hinting:    true                                                                          
Xft.hintstyle:  hintslight                                                                    
Xft.lcdfilter: lcddefault  

/etc/fonts/conf.d/ :
-rw-r--r-- 1 root root  221 Sij 14 16:52 00-cache.conf                                        
lrwxrwxrwx 1 root root   38 Lip  2 13:21 10-autohint.conf -> /etc/fonts/conf.avail/10-autohint.conf
lrwxrwxrwx 1 root root   43 Lip  2 13:22 10-sub-pixel-rgb.conf -> /etc/fonts/conf.avail/10-sub-pixel-rgb.conf
lrwxrwxrwx 1 root root   39 Lip  2 12:31 20-fix-globaladvance.conf -> ../conf.avail/20-fix-globaladvance.conf
-rw-r--r-- 1 root root  663 Sij 14 16:52 20-mdv-CJK-dualwidth.conf
-rw-r--r-- 1 root root 1334 Sij 14 16:52 20-mdv-disable-antialias.conf
lrwxrwxrwx 1 root root   39 Lip  2 12:31 20-unhint-small-vera.conf -> ../conf.avail/20-unhint-small-vera.conf
-rw-r--r-- 1 root root  490 Sij 14 16:52 25-mdv-CJK-disable-hinting.conf
-rw-r--r-- 1 root root 1160 Sij 14 16:52 25-no-bitmap-fedora.conf
lrwxrwxrwx 1 root root   37 Lip  2 12:31 25-unhint-nonlatin.conf -> ../conf.avail/25-unhint-nonlatin.conf
-rw-r--r-- 1 root root  457 Sij 14 16:52 26-mdv-no-embeddedbitmap.conf
-rw-r--r-- 1 root root 3946 Sij 14 16:52 30-mdv-avoid-bitmap.conf
-rw-r--r-- 1 root root 2473 Sij 14 16:52 30-mdv-urwfonts.conf
lrwxrwxrwx 1 root root   36 Lip  2 12:31 30-metric-aliases.conf -> ../conf.avail/30-metric-aliases.conf
lrwxrwxrwx 1 root root   33 Lip  2 12:31 30-urw-aliases.conf -> ../conf.avail/30-urw-aliases.conf
lrwxrwxrwx 1 root root   30 Lip  2 12:31 40-nonlatin.conf -> ../conf.avail/40-nonlatin.conf
lrwxrwxrwx 1 root root   27 Lip  2 12:31 45-latin.conf -> ../conf.avail/45-latin.conf
lrwxrwxrwx 1 root root   31 Lip  2 12:31 49-sansserif.conf -> ../conf.avail/49-sansserif.conf
lrwxrwxrwx 1 root root   26 Lip  2 12:31 50-user.conf -> ../conf.avail/50-user.conf
lrwxrwxrwx 1 root root   27 Lip  2 12:31 51-local.conf -> ../conf.avail/51-local.conf
lrwxrwxrwx 1 root root   27 Lip  2 12:31 60-latin.conf -> ../conf.avail/60-latin.conf
lrwxrwxrwx 1 root root   35 Lip  2 12:31 65-fonts-persian.conf -> ../conf.avail/65-fonts-persian.conf
lrwxrwxrwx 1 root root   30 Lip  2 12:31 65-nonlatin.conf -> ../conf.avail/65-nonlatin.conf
lrwxrwxrwx 1 root root   29 Lip  2 12:31 69-unifont.conf -> ../conf.avail/69-unifont.conf
lrwxrwxrwx 1 root root   31 Lip  2 12:31 80-delicious.conf -> ../conf.avail/80-delicious.conf
-rw-r--r-- 1 root root 1898 Sij 14 16:52 85-wqy-bitmapsong.conf
lrwxrwxrwx 1 root root   31 Lip  2 12:31 90-synthetic.conf -> ../conf.avail/90-synthetic.conf
-rw-r--r-- 1 root root  959 Sij 14 16:52 README


Screenshot:
http://imageshack.us/f/835/screennc.png/
Hrvoje Senjan 2011-06-03 12:50:11 CEST

CC: (none) => hrvoje.senjan

Comment 1 Hrvoje Senjan 2011-06-03 13:31:31 CEST
Screenshot #2 , side by side using same fonts:
http://imageshack.us/photo/my-images/191/snimka2.png/
Comment 2 Ahmad Samir 2011-06-03 23:41:09 CEST
As has been said in the forum, you need a freetype2 build where sub-pixel rendering is enabled, this will happen in the freetype2 build that will be pushed to the Tainted repo; the package will be available after the freeze is over and packages can be submitted to the build system again.

Leaving the report open until the package is available.

Summary: GTK apps don't respect global/user font settings => GTK apps don't respect global/user lcdfilter font settings without a sub-pixel rendering enabled freetype2 build
Source RPM: (none) => freetype2

Comment 3 Pavel Penchev 2011-06-06 09:47:51 CEST
Do you have a rough idea when the freetype2+subpixel rendering will hit the Tainted repo?

I depend on some GTK apps (Eclipse/Firefox) but I'd like to skip compiling the stuff myself.

CC: (none) => pavel.penchev

Comment 4 Ahmad Samir 2011-06-06 19:59:55 CEST
I see you're running x86_64; these packages are built by me locally (in a clean chroot) for my own usage, you can use them if you like until the release freeze is over and packages can be submitted to the build system:
http://ryu.zarb.org/~ahmad/lib64freetype6-2.4.4-4.1.mga1.x86_64.rpm
http://ryu.zarb.org/~ahmad/lib64freetype6-devel-2.4.4-4.1.mga1.x86_64.rpm
http://ryu.zarb.org/~ahmad/lib64freetype6-static-devel-2.4.4-4.1.mga1.x86_64.rpm
Comment 5 Hrvoje Senjan 2011-06-06 20:38:36 CEST
I will try it , thanks :)
Comment 6 Hrvoje Senjan 2011-06-07 08:08:46 CEST
Ahmad , your package fixed the issue :). Thank you
Ahmad Samir 2011-06-24 10:41:21 CEST

Depends on: (none) => 1909

Comment 7 Dave Hodgins 2011-06-26 20:59:10 CEST
I've installed freetype2-demos from the Tainted Updates Testing repository,
which correctly pulled in the dependencies.  I tested the installation using
ftview 72 /usr/share/fonts/TTF/dejavu/DejaVuSans.ttf

I think that's sufficient qa testing for the i586 version.  If someone with
a 64 bit install can repeat the test in that version, the packages can then
be moved to Tainted Updates.

CC: (none) => davidwhodgins

Comment 8 Dave Hodgins 2011-06-26 21:18:53 CEST
I noticed that building the tainted version also creates Core Updates Testing
versions, so I've tested those with 
rpm -e --nodeps libfreetype6-static-devel libfreetype6-devel libfreetype6 freetype2-demos
urpmi --media "Core Updates Testing" freetype2-demos
ftview 72 /usr/share/fonts/TTF/dejavu/DejaVuSans.ttf

The i586 version of the packages ...
libfreetype6-static-devel
libfreetype6-devel
freetype2-demos
libfreetype6
are ready to be pushed to Core Updates
Comment 9 Ahmad Samir 2011-06-26 23:36:51 CEST
The update request is in bug 1099, everything goes there after its creation, to keep everything in one place.
Comment 10 Dave Hodgins 2011-07-05 04:02:45 CEST
It's bug 1909.
Comment 11 Ahmad Samir 2011-07-05 04:34:29 CEST
Right. It's correct in the dependency field

Status: NEW => RESOLVED
Resolution: (none) => FIXED


Note You need to log in before you can comment on or make changes to this bug.