[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

[dz@cs.unitn.it: Bug#156115: xserver generates bogus fontnames for scalable fonts]



Juliusz,

I'm finding this bug a real stumper.  I don't even really know where to
begin in establishing whether this is user error or not, or if not what
part of the X server is broken.  Can you help, please?

Anyone else from debian-x who'd like to pitch in, please do.

----- Forwarded message from Massimo Dal Zotto <dz@cs.unitn.it> -----

From: Massimo Dal Zotto <dz@cs.unitn.it>
To: submit@bugs.debian.org
Subject: Bug#156115: xserver generates bogus fontnames for scalable fonts
Date: Fri, 9 Aug 2002 23:33:10 +0200 (MEST)
Message-Id: <200208092133.g79LXAfN008256@dizzy.dz.net>
X-Spam-Status: No, hits=-5.0 required=4.0
	tests=SENT_BY_BTS,FORGED_RCVD_FOUND
	version=2.31

Package: xserver-xfree86
Version: 4.1.0-16

I found a problem with Xserver, Type1 fonts, gsfonts-x11 and Tk on woody.
When the xserver has Type1 fonts in the fontpath and package gsfonts-x11
is installed the default Tk button font {Helvetica -12 bold} looks ugly:

After some debugging I have found a strange behavior of the Xserver which
seems causing the Tk problem. The bug happens only when all the following
conditions are met:

    - the X server (4.1.0) is running at 75 dpi

    - the Type1 module is loaded in the X server

    - the directory /usr/lib/X11/fonts/Type1 is at the end of X fontpath

    - package gsfonts-x11 is installed

    - Tk is searching a font {Helvetica -12 bold}, the default for buttons


The bug can be reproduced with the following commands:

### Install the required packages
# apt-get install xserver-xfree86 gsfonts-x11 tk8.3

### Start the X server at 75dpi
$ startx -- :1 -dpi 75

### Set the X fontpath. Don't use a font server
$ xset fp /usr/X11R6/lib/X11/fonts/misc/:unscaled,/usr/X11R6/lib/X11/fonts/75dpi/:unscaled,/usr/X11R6/lib/X11/fonts/100dpi/:unscaled,/usr/lib/X11/fonts/Type1
$ xset fp rehash

### List fonts, if some have 12-120-75-75-p-0 we have the problem
$ xlsfonts -fn "-*-helvet*-*-*-*-*-*-*-*-*-*-*-iso8859-1" | grep p-0-iso8859-1
...
-adobe-helvetica-bold-r-normal--12-120-75-75-p-0-iso8859-1

### Run this Tk script
$ echo "pack [button .b -font {Helvetica -12 bold} -text abcde12345]" | wish


On my woody sytem the button text looks very ugly, in particular the "2" has
a small dot under the baseline and all the font is generally very bad.


If I remove /usr/lib/X11/fonts/Type1 from the fontpath or deinstall the
package gsfont-x11, which install the font used by Tk, the text is ok:

$ xset fp- /usr/lib/X11/fonts/Type1
$ xset fp rehash
$ echo "pack [button .b -font {Helvetica -12 bold} -text abcde12345]" | wish


The following packages and fonts are installed on my system:

$ dpkg -l xserver* gsfonts-x11 tk8.3 | grep ^i
ii  xserver-common    4.1.0-16   files and utilities common to all X servers
ii  xserver-xfree86   4.1.0-16   the XFree86 X server
ii  gsfonts-x11       0.16       Make Ghostscript fonts available to X11.
ii  tk8.3             8.3.3-8    The Tk toolkit for TCL and X11 v8.3 - Run-Time Files.

$ DISPLAY= dpkg-www /usr/X11R6/lib/X11/fonts
Packages owning /usr/X11R6/lib/X11/fonts:
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Installed/Config-files/Unpacked/Failed-config/Half-installed
|/ Err?=(none)/Hold/Reinst-required/X=both-problems (Status,Err: uppercase=bad)
||/ Name                     Version    Description
+++-========================-==========-=================================================
ii  xfonts-75dpi-transcoded  4.1.0-16   75 dpi fonts for X (transcoded from ISO 10646-1)
ii  xfonts-pex               4.1.0-16   fonts for minimal PEX support in X
ii  xfonts-75dpi             4.1.0-16   75 dpi fonts for X
ii  xfonts-100dpi-transcoded 4.1.0-16   100 dpi fonts for X (transcoded from ISO 10646-1)
ii  xfonts-base              4.1.0-16   standard fonts for X
ii  gtk-engines-xenophilia   0.7-6      Customizable GTK+ engine with a plain look
ii  xvgafont                 1.2        Vga fonts for X11 in iso-8859-1 encoding.
ii  ttfonts-ms               1.0        TrueType fonts from M$
ii  gsfonts-x11              0.16       Make Ghostscript fonts available to X11.
ii  xfonts-100dpi            4.1.0-16   100 dpi fonts for X
ii  xfonts-scalable          4.1.0-16   scalable fonts for X


I have the Type1 module loaded in the server and the following fontpath:

    FontPath   "/usr/X11R6/lib/X11/fonts/misc/:unscaled"
    FontPath   "/usr/X11R6/lib/X11/fonts/75dpi/:unscaled"
    FontPath   "/usr/X11R6/lib/X11/fonts/100dpi/:unscaled"
    FontPath   "/usr/X11R6/lib/X11/fonts/TrueType/"
    FontPath   "/usr/X11R6/lib/X11/fonts/Type1/"

What seems strange to me is that sometimes the xserver lists fontnames
which should not exist:

$ xlsfonts | grep "helvetica-.*-iso8859-1$" | tee a | wc -l
     58

$ xlsfonts -fn "-*-helvetica-*-*-*-*-*-*-*-*-*-*-iso8859-1" | tee b | wc -l
     68

$ diff a b | grep '^>'
> -adobe-helvetica-bold-i-normal--12-120-75-75-p-0-iso8859-1
> -adobe-helvetica-bold-o-narrow--12-120-75-75-p-0-iso8859-1
> -adobe-helvetica-bold-o-normal--12-120-75-75-p-0-iso8859-1
> -adobe-helvetica-bold-r-narrow--12-120-75-75-p-0-iso8859-1
> -adobe-helvetica-bold-r-normal--12-120-75-75-p-0-iso8859-1
> -adobe-helvetica-medium-i-normal--12-120-75-75-p-0-iso8859-1
> -adobe-helvetica-medium-o-narrow--12-120-75-75-p-0-iso8859-1
> -adobe-helvetica-medium-o-normal--12-120-75-75-p-0-iso8859-1
> -adobe-helvetica-medium-r-narrow--12-120-75-75-p-0-iso8859-1
> -adobe-helvetica-medium-r-normal--12-120-75-75-p-0-iso8859-1

$ xlsfonts -l | grep "helvetica-.*-iso8859-1$" | tee c | wc -l
     58

$ xlsfonts -l -fn "-*-helvetica-*-*-*-*-*-*-*-*-*-*-iso8859-1" | grep -v NAME | tee d | wc -l
     58

Note that option -l of xlsfonts doesn't show the bogus fonts. Why?


$ xset fp- /usr/X11R6/lib/X11/fonts/Type1/; xset fp rehash

$ xlsfonts | grep "helvetica-.*-iso8859-1$" | tee e | wc -l
     48

$ xlsfonts -fn "-*-helvetica-*-*-*-*-*-*-*-*-*-*-iso8859-1" | tee f | wc -l
     48


It seems that when gsfonts-x11 is installed and Type1 fonts are added to
the fontpath the xserver returns some extra font names with pixelSize=12
and avgWidth=0. In the examples I have considered only helvetica iso8859-1
fonts, but there are many other.

Note that normally the fonts with avgWidth=0 are only scalable fonts with
pixelSize=0. Why are these bogus font names returned by the xserver?

It seems also that pixelSize=12 is related to the fact that the X server is
running at 75dpi. If you run the server at 100dpi you will get fonts with
pixelSize=17.

The problem with Tk is that when searching for an {Helvetica -12 bold} font
it finds a bogus fixed font name which matches exactly what is required but
is actually a scalable postscript font which looks very ugly on the display.

The problem doesn't happen if the server runs at 100dpi because the bogus
fontnames with pixelSize=17 are ignored by Tk which is looking for 12pixels
fonts.

-- 
Massimo Dal Zotto


----- End forwarded message -----

-- 
G. Branden Robinson                |
Debian GNU/Linux                   |         De minimis non curat lex.
branden@debian.org                 |
http://people.debian.org/~branden/ |

Attachment: pgp932_t5xDnD.pgp
Description: PGP signature


Reply to: