Package: bdf2psf Version: 1.44 Severity: important
In the BDF font format, each glyph's shape is defined in terms of a bitmap of certain dimensions, located at a certain offset from the origin. For example, in a font that uses a 12x24 pixel character cell, the apostrophe glyph (') might only cover 2x4 pixels, and so it could be represented as a 2x4 bitmap offset upward from the origin, rather than a 12x24 bitmap with no offset and a large number of blank pixels. A wholly blank glyph could legitimately be represented by a 0x0 bitmap. This bitmap shrink-wrapping is performed by many tools that deal with BDF fonts, including gbdfed and otf2bdf. bdf2psf handles it well, except for the degenerate 0x0 bitmap case. Steps to reproduce: 1. Get a sample BDF file with an empty bitmap for the U+0020 SPACE glyph: sudo aptitude install ttf-bitstream-vera otf2bdf otf2bdf -r 72 -p 12 -c C \ /usr/share/fonts/truetype/ttf-bitstream-vera/VeraMono.ttf | sed -e "s/AVERAGE_WIDTH.*/AVERAGE_WIDTH 80/" > vera-mono-12.bdf (the sed invocation is required because bdf2psf sanity-checks the AVERAGE_WIDTH property rather than the font bounding box, or checking the DWIDTHs of the glyphs that it actually uses) 2. Convert the BDF file to a PSF file: bdf2psf vera-mono-12.bdf \ /usr/share/bdf2psf/standard.equivalents \ /usr/share/bdf2psf/required.set+/usr/share/bdf2psf/useful.set \ 256 \ vera-mono-12.psf 3. Load the resulting psf file: consolechars -f vera-mono-12.psf Expected result: Character cells containing a U+0020 SPACE glyph should be blank. Actual result: Character cells containing a U+0020 SPACE glyph contain random noise, as though they displayed uninitialised memory. Note: If you apply the following patch to the BDF file and re-convert it to PSF, the resulting font works as expected: --- vera-mono-12.bdf 2009-07-29 17:19:50.000000000 +1000 +++ vera-mono-12-fixed.bdf 2009-07-29 17:20:38.000000000 +1000 @@ -31,8 +31,9 @@ ENCODING 32 SWIDTH 583 0 DWIDTH 7 0 -BBX 0 0 0 0 +BBX 0 1 0 0 BITMAP +00 ENDCHAR STARTCHAR 0021 ENCODING 33 -- System Information: Debian Release: squeeze/sid APT prefers testing APT policy: (500, 'testing'), (500, 'stable') Architecture: i386 (i686) Kernel: Linux 2.6.26-2-686 (SMP w/1 CPU core) Locale: LANG=en_AU.UTF-8, LC_CTYPE=en_AU.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/bash Versions of packages bdf2psf depends on: ii perl 5.10.0-24 Larry Wall's Practical Extraction bdf2psf recommends no packages. bdf2psf suggests no packages. -- no debconf information -- To UNSUBSCRIBE, email to debian-boot-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org