Bug#227305: should depend on at least one font package

Wouter Verhelst Wouter Verhelst <wouter@grep.be>, 227305@bugs.debian.org
Tue, 13 Jan 2004 16:22:21 +0100


On Tue, Jan 13, 2004 at 12:28:29PM +0100, Josselin Mouette wrote:
> Le lun 12/01/2004 =E0 19:31, Wouter Verhelst a =E9crit :
> > I just compiled and installed a fresh gtk2, with framebuffer-support,
> > on a system which does not have X installed. Much to my surprise, the
> > first application we built and ran on that system segfaulted at
> > startup.
> >=20
> > After investigating, we found that the problem was that there were no
> > font packages installed. I had expected that installing pango would
> > take care of that, but apparently not.
>=20
> That's quite surprising. The dependencies include fontconfig, which
> depends on ttf-bitstream-vera | ttf-freefont | gsfonts-x11 |
> msttcorefonts.

Hm.

OK, forget it; I fucked up. I did this on stable (with some backported
stuff), and when I found out about this, I thought the pango I had
installed was a backported version from unstable. As it turns out,
that's not true; it's the one from stable that this bug applies to.

Whoops.

Next time, I'll try not to be lazy, and double-check my findings. Sorry
for the noise :)

> Anyway, no fonts should result in a crash, but not a segfault. Do you
> have a backtrace?

Not sure whether it still makes sense, given the above, but anyway:=20

(gdb) where
#0  0x402eba6b in MiniXftPatternFind () from /usr/lib/libpangoft2-1.0.so.=
0
#1  0x402ebde7 in MiniXftPatternGet () from /usr/lib/libpangoft2-1.0.so.0
#2  0x402ebf25 in MiniXftPatternGetString () from /usr/lib/libpangoft2-1.=
0.so.0
#3  0x402e414d in pango_ft2_font_set_glyph_cache_destroy () from /usr/lib=
/libpangoft2-1.0.so.0
#4  0x4038d0be in g_hash_table_lookup () from /usr/lib/libglib-2.0.so.0
#5  0x402e4a3b in _pango_ft2_font_map_remove () from /usr/lib/libpangoft2=
-1.0.so.0
#6  0x402e4d08 in _pango_ft2_font_map_remove () from /usr/lib/libpangoft2=
-1.0.so.0
#7  0x403192ef in pango_font_map_load_fontset () from /usr/lib/libpango-1=
.0.so.0
#8  0x4031859b in pango_itemize () from /usr/lib/libpango-1.0.so.0
#9  0x40317f86 in pango_itemize () from /usr/lib/libpango-1.0.so.0
#10 0x4031da95 in pango_layout_get_pixel_size () from /usr/lib/libpango-1=
.0.so.0
#11 0x4031c444 in pango_layout_get_cursor_pos () from /usr/lib/libpango-1=
.0.so.0
#12 0x4031c6a3 in pango_layout_get_extents () from /usr/lib/libpango-1.0.=
so.0
#13 0x400bfb4c in gtk_label_size_request (widget=3D0x80802c8, requisition=
=3D0x80802e4) at gtklabel.c:1554
#14 0x403555f2 in g_cclosure_marshal_VOID__BOXED () from /usr/lib/libgobj=
ect-2.0.so.0
#15 0x40341205 in g_cclosure_new_swap () from /usr/lib/libgobject-2.0.so.=
0
#16 0x40340e2b in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
#17 0x403539ef in g_signal_emit_by_name () from /usr/lib/libgobject-2.0.s=
o.0
#18 0x403527aa in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so=
.0
#19 0x403531e9 in g_signal_emit_by_name () from /usr/lib/libgobject-2.0.s=
o.0
#20 0x401078e2 in do_size_request (widget=3D0x80802c8) at gtksizegroup.c:=
493
#21 0x40107be1 in _gtk_size_group_compute_requisition (widget=3D0x80802c8=
, requisition=3D0xbfffcf94) at gtksizegroup.c:682
#22 0x40188c6f in gtk_widget_size_request (widget=3D0x80802c8, requisitio=
n=3D0xbfffcf94) at gtkwidget.c:2331
#23 0x400ab782 in gtk_hbox_size_request (widget=3D0x8081d90, requisition=3D=
0x8081dac) at gtkhbox.c:121
#24 0x403555f2 in g_cclosure_marshal_VOID__BOXED () from /usr/lib/libgobj=
ect-2.0.so.0
#25 0x40341205 in g_cclosure_new_swap () from /usr/lib/libgobject-2.0.so.=
0
#26 0x40340e2b in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
#27 0x403539ef in g_signal_emit_by_name () from /usr/lib/libgobject-2.0.s=
o.0
#28 0x403527aa in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so=
.0
#29 0x403531e9 in g_signal_emit_by_name () from /usr/lib/libgobject-2.0.s=
o.0
#30 0x401078e2 in do_size_request (widget=3D0x8081d90) at gtksizegroup.c:=
493
#31 0x40107be1 in _gtk_size_group_compute_requisition (widget=3D0x8081d90=
, requisition=3D0xbfffd624) at gtksizegroup.c:682
#32 0x40188c6f in gtk_widget_size_request (widget=3D0x8081d90, requisitio=
n=3D0xbfffd624) at gtkwidget.c:2331
#33 0x40059792 in gtk_alignment_size_request (widget=3D0x80822d0, requisi=
tion=3D0x80822ec) at gtkalignment.c:310
#34 0x403555f2 in g_cclosure_marshal_VOID__BOXED () from /usr/lib/libgobj=
ect-2.0.so.0
#35 0x40341205 in g_cclosure_new_swap () from /usr/lib/libgobject-2.0.so.=
0
#36 0x40340e2b in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
#37 0x403539ef in g_signal_emit_by_name () from /usr/lib/libgobject-2.0.s=
o.0
#38 0x403527aa in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so=
.0
#39 0x403531e9 in g_signal_emit_by_name () from /usr/lib/libgobject-2.0.s=
o.0
#40 0x401078e2 in do_size_request (widget=3D0x80822d0) at gtksizegroup.c:=
493
#41 0x40107be1 in _gtk_size_group_compute_requisition (widget=3D0x80822d0=
, requisition=3D0xbfffdca8) at gtksizegroup.c:682
#42 0x40188c6f in gtk_widget_size_request (widget=3D0x80822d0, requisitio=
n=3D0xbfffdca8) at gtkwidget.c:2331
#43 0x4005fe59 in gtk_button_size_request (widget=3D0x807cff0, requisitio=
n=3D0x807d00c) at gtkbutton.c:749
#44 0x403555f2 in g_cclosure_marshal_VOID__BOXED () from /usr/lib/libgobj=
ect-2.0.so.0
#45 0x40341205 in g_cclosure_new_swap () from /usr/lib/libgobject-2.0.so.=
0
#46 0x40340e2b in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
#47 0x403539ef in g_signal_emit_by_name () from /usr/lib/libgobject-2.0.s=
o.0
#48 0x403527aa in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so=
.0
#49 0x403531e9 in g_signal_emit_by_name () from /usr/lib/libgobject-2.0.s=
o.0
#50 0x401078e2 in do_size_request (widget=3D0x807cff0) at gtksizegroup.c:=
493
#51 0x40107be1 in _gtk_size_group_compute_requisition (widget=3D0x807cff0=
, requisition=3D0xbfffe354) at gtksizegroup.c:682
#52 0x40188c6f in gtk_widget_size_request (widget=3D0x807cff0, requisitio=
n=3D0xbfffe354) at gtkwidget.c:2331
#53 0x400ab782 in gtk_hbox_size_request (widget=3D0x807c220, requisition=3D=
0x807c23c) at gtkhbox.c:121
#54 0x403555f2 in g_cclosure_marshal_VOID__BOXED () from /usr/lib/libgobj=
ect-2.0.so.0
#55 0x40341205 in g_cclosure_new_swap () from /usr/lib/libgobject-2.0.so.=
0
#56 0x40340e2b in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
#57 0x403539ef in g_signal_emit_by_name () from /usr/lib/libgobject-2.0.s=
o.0
#58 0x403527aa in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so=
.0
#59 0x403531e9 in g_signal_emit_by_name () from /usr/lib/libgobject-2.0.s=
o.0
#60 0x401078e2 in do_size_request (widget=3D0x807c220) at gtksizegroup.c:=
493
#61 0x40107be1 in _gtk_size_group_compute_requisition (widget=3D0x807c220=
, requisition=3D0xbfffe9e4) at gtksizegroup.c:682
#62 0x40188c6f in gtk_widget_size_request (widget=3D0x807c220, requisitio=
n=3D0xbfffe9e4) at gtkwidget.c:2331
#63 0x400a839c in gtk_frame_size_request (widget=3D0x807b868, requisition=
=3D0x807b884) at gtkframe.c:582
#64 0x403555f2 in g_cclosure_marshal_VOID__BOXED () from /usr/lib/libgobj=
ect-2.0.so.0
#65 0x40341205 in g_cclosure_new_swap () from /usr/lib/libgobject-2.0.so.=
0
#66 0x40340e2b in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
#67 0x403539ef in g_signal_emit_by_name () from /usr/lib/libgobject-2.0.s=
o.0
#68 0x403527aa in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so=
.0
#69 0x403531e9 in g_signal_emit_by_name () from /usr/lib/libgobject-2.0.s=
o.0
#70 0x401078e2 in do_size_request (widget=3D0x807b868) at gtksizegroup.c:=
493
#71 0x40107be1 in _gtk_size_group_compute_requisition (widget=3D0x807b868=
, requisition=3D0xbffff074) at gtksizegroup.c:682
#72 0x40188c6f in gtk_widget_size_request (widget=3D0x807b868, requisitio=
n=3D0xbffff074) at gtkwidget.c:2331
#73 0x40194bf6 in gtk_window_size_request (widget=3D0x8079368, requisitio=
n=3D0x8079384) at gtkwindow.c:3849
#74 0x403555f2 in g_cclosure_marshal_VOID__BOXED () from /usr/lib/libgobj=
ect-2.0.so.0
#75 0x40341205 in g_cclosure_new_swap () from /usr/lib/libgobject-2.0.so.=
0
#76 0x40340e2b in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
#77 0x403539ef in g_signal_emit_by_name () from /usr/lib/libgobject-2.0.s=
o.0
#78 0x403527aa in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so=
.0
#79 0x403531e9 in g_signal_emit_by_name () from /usr/lib/libgobject-2.0.s=
o.0
#80 0x401078e2 in do_size_request (widget=3D0x8079368) at gtksizegroup.c:=
493
#81 0x40107be1 in _gtk_size_group_compute_requisition (widget=3D0x8079368=
, requisition=3D0x0) at gtksizegroup.c:682
#82 0x40188c6f in gtk_widget_size_request (widget=3D0x8079368, requisitio=
n=3D0x0) at gtkwidget.c:2331
#83 0x4019595d in gtk_window_compute_configure_request (window=3D0x807936=
8, request=3D0xbffff80c, geometry=3D0xbffff7d8, flags=3D0xbffff7d4)
    at gtkwindow.c:4646
#84 0x40194511 in gtk_window_show (widget=3D0x8079368) at gtkwindow.c:348=
1
#85 0x40354d36 in g_cclosure_marshal_VOID__VOID () from /usr/lib/libgobje=
ct-2.0.so.0
#86 0x40341205 in g_cclosure_new_swap () from /usr/lib/libgobject-2.0.so.=
0
#87 0x40340e2b in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
#88 0x403539ef in g_signal_emit_by_name () from /usr/lib/libgobject-2.0.s=
o.0
#89 0x403527aa in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so=
.0
#90 0x40352a55 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
#91 0x40187f58 in gtk_widget_show (widget=3D0x8079368) at gtkwidget.c:175=
3
#92 0x08049546 in loader_create () at loader.c:122
#93 0x0804917e in main (argc=3D1, argv=3D0xbffffe14) at main.c:91

--=20
Wouter Verhelst
Debian GNU/Linux -- http://www.debian.org
Nederlandstalige Linux-documentatie -- http://nl.linux.org
"Stop breathing down my neck." "My breathing is merely a simulation."
"So is my neck, stop it anyway!"
  -- Voyager's EMH versus the Prometheus' EMH, stardate 51462.