公式版OpenOffice.org 2.3.0とGTK+ 2.12で落ちる問題と回避方法
公式版OpenOffice.orgが、(32bit版)GTK+ 2のバージョンを2.12系にしてから、突然落ちるようになってしまった。
$ ooffice javaldx: Could not find a Java Runtime Environment! *** glibc detected *** /usr/lib32/openoffice/program/soffice.bin: double free or corruption (out): 0x08254e10 *** ======= Backtrace: ========= /lib32/libc.so.6[0xf6c75440] /lib32/libc.so.6(cfree+0x89)[0xf6c77159] /usr/lib32/libglib-2.0.so.0(g_free+0x31)[0xf52d5ac1] /usr/lib32/openoffice/program/libvclplug_gtk680li.so[0xf584f3d2] /usr/lib32/openoffice/program/libvcl680li.so(_ZN11SalGraphics22GetNativeControlR egionEmmRK6RegionmRK16ImplControlValueR16SalControlHandleRKN3rtl8OUStringERS0_SC _PK12OutputDevice+0x10f)[0xf7d90f45] (以下略)
調べたところ、このバグは本家でも確認されていて、ソースの修正も提供されているようだ。
- http://bugs.gentoo.org/show_bug.cgi?id=194106
- https://issues.apache.org/ooo/show_bug.cgi?id=82078
- https://issues.apache.org/ooo/show_bug.cgi?id=82608
しかし、バイナリ版を使う状況においては、この問題が2.3.1までに修正されて、その実行ファイル(バイナリ)版が出るのを待つ以外には、
$ OOO_FORCE_DESKTOP=none ooffice もしくは $ OOO_FORCE_DESKTOP=kde ooffice
で回避するしかない。環境変数OOO_FORCE_DESKTOPは、「gnome」「kde」「none」のいずれかを指定することで、GNU/Linux版OpenOffice.orgのデスクトップ環境統合機能において、自動検出の結果に関わらず、指定されたデスクトップ環境に対する統合を強制的に適用する。
x86_64版Gentoo Linuxを使用しているなら、32bit版GTK+ 2のパッケージ(emul-linux-x86-gtklibs)を2.10入りのバージョンに戻すという手もある(手元の環境ではそれで対処することにした)。
あと、ディストリのOpenOffice.orgのパッケージでは問題が起きていない場合が多い。「x86_64なOpenOffice.orgのバイナリを別のディストリから借りてみるテスト」では、x86_64版Gentoo Linux上で、Fedora 8のパッケージを借りてきて動かしたのだが、GTK+ 2.12による問題は起きていない。