Bug#522675: libpango1.0-0: pango 1.24 binary incompatible with 1.22

Marc Lehmann debian-reportbug at plan9.de
Sun Apr 5 19:22:34 UTC 2009


Package: libpango1.0-0
Version: 1.24.0-2
Severity: normal


after upgrading to libgpango 1.24, my applications started to crash like
this:

   (process:19388): Pango-WARNING **: failed to choose a font, expect ugly output. engine-type='PangoRenderFc', script='latin'

   (process:19388): Pango-WARNING **: failed to choose a font, expect ugly output. engine-type='PangoRenderFc', script='common'

   (process:19388): Pango-WARNING **: failed to choose a font, expect ugly output. engine-type='PangoRenderFc', script='hiragana'
   ./deliantra: line 6: 19388 Segmentation fault      (core dumped)

The reason is coimmit 9305b9a9995e84ace3818a90346820ef8c47a3ce to pango:

    [pangofc] Add a "fontmap" property to PangoFcFont

   Gecko uses its own PangoFcFontMap subclass with its own
   PangoFontSet.  Previously we were setting font->fontmap in our
   own private PangoFcFontSet.  Now it's up to the PangoFcFont
   subclass to set it when creating the new font object.

applications subclassing the public pangofc api that did work properly
will now fail. The problem is that doing what the patch suggests works
with 1.24, but fails with 1.22:

   Pango:ERROR:/tmp/buildd/pango1.0-1.22.4/pango/pangofc-fontmap.c:559:pango_fc_font_map_add: assertion failed: (fcfont->fontmap == NULL)

So, while adding:

   #if PANGO_VERSION_CHECK (1, 23, 1)
     PANGO_FC_FONT (font)->fontmap = fontmap;
   #endif

makes the program work, you need a recompile betwene 1.22 and 1.24, as
1.22 checks that the fontmap is 0, and 1.24 requires it to be non-null.

This makes it hard (nothing short of a run-time check possible) to create
binaries that work with 1.22 and 1.24.

(My understanding of this might be wrong, but such a big incompatible
api change deserves at leats a better error message, especially when
older versions of pango explicitly made setting the fontmap illegal by an
assertions).

-- System Information:
Debian Release: 5.0
  APT prefers stable
  APT policy: (990, 'stable'), (500, 'unstable'), (500, 'testing'), (1, 'experimental')
Architecture: amd64 (x86_64)

Kernel: Linux 2.6.26-1-amd64 (SMP w/4 CPU cores)
Locale: LANG=C, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash

Versions of packages libpango1.0-0 depends on:
hi  libc6                  2.7-18            GNU C Library: Shared libraries
ii  libcairo2              1.8.6-2+b1        The Cairo 2D vector graphics libra
ii  libdatrie0             0.1.3-2           Double-array trie library
ii  libfontconfig1         2.6.0-3           generic font configuration library
hi  libfreetype6           2.3.7-2           FreeType 2 font engine, shared lib
ii  libglib2.0-0           2.20.0-2          The GLib library of C routines
ii  libpango1.0-common     1.24.0-2          Modules and configuration files fo
ii  libthai0               0.1.9-4           Thai language support library
ii  libx11-6               2:1.2-1           X11 client-side library
ii  libxft2                2.1.12-3          FreeType-based font drawing librar
ii  libxrender1            1:0.9.4-2         X Rendering Extension client libra
ii  zlib1g                 1:1.2.3.3.dfsg-12 compression library - runtime

libpango1.0-0 recommends no packages.

libpango1.0-0 suggests no packages.

-- no debconf information






More information about the pkg-gnome-maintainers mailing list