・xcb-utils-0.3.8 のメモ
しばらくハマっていたのでまとめを兼ねて。
xcb-util-0.3.6パッケージにはこれだけのライブラリが含まれているのに,
-rwxr-xr-x root/root 14380 usr/lib64/libxcb-aux.so.0.0.0 -rwxr-xr-x root/root 18867 usr/lib64/libxcb-event.so.1.0.0 -rwxr-xr-x root/root 8905 usr/lib64/libxcb-property.so.1.0.0 -rwxr-xr-x root/root 23071 usr/lib64/libxcb-icccm.so.1.0.0 -rwxr-xr-x root/root 18764 usr/lib64/libxcb-image.so.0.0.0 -rwxr-xr-x root/root 10514 usr/lib64/libxcb-keysyms.so.1.0.0 -rwxr-xr-x root/root 9323 usr/lib64/libxcb-reply.so.1.0.0 -rwxr-xr-x root/root 17627 usr/lib64/libxcb-render-util.so.0.0.0
xcb-utils-0.3.8パッケージには
-rwxr-xr-x root/root 29214 usr/lib64/libxcb-util.so.0.0.0
しか入っていない.
0.3.6のうち,いくつかのライブラリは個別のパッケージに分割され, xcb-util-image, xcb-util-keysyms, xcb-util-renderutil, xcb-util-wm の 4つのパッケージが増えていて,それぞれ以下のようなライブラリが入っている.
xcb-util-image: -rwxr-xr-x root/root 18812 usr/lib64/libxcb-image.so.0.0.0 xcb-util-keysyms: -rwxr-xr-x root/root 10586 usr/lib64/libxcb-keysyms.so.1.0.0 xcb-util-renderutil: -rwxr-xr-x root/root 17627 usr/lib64/libxcb-render-util.so.0.0.0 xcb-util-wm: -rwxr-xr-x root/root 24284 usr/lib64/libxcb-icccm.so.4.0.0 -rwxr-xr-x root/root 64243 usr/lib64/libxcb-ewmh.so.1.0.0
0.3.6と比べると,libxcb-util と libxcb-ewmh が増えて, libxcb-aux,libxcb-event, libxcb-property, libxcb-reply の4つが無くなっている.
このうちaux,event,propertyの機能はutilに統合されたようで,これらのライブラリの pkgconfigファイルには
Name: XCB Aux library Description: XCB convenient functions Version: 0.3.8 Requires: xcb Libs: -L${libdir} -lxcb-util Cflags: -I${includedir}
みたいにxcb-utilをリンクするような記載がある.
ただし,既に libxcb-aux.so.0.0.0 をリンクするようにビルドされてしまっているバイナリには pkgconfigの設定は効力を及ぼさないので,とりあえずの回避策として
ln -sf libxcb-util.so.0 libxcb-aux.so.0 ln -sf libxcb-util.so.0 libxcb-event.so.0 ln -sf libxcb-util.so.0 libxcb-property.so.0
のシンボリックリンクを貼ることで回避できそう.実用上は,libxcb-eventとlibxcb-propertyを リンクしているバイナリは(Plamo64-1.0の範囲では)無さそうなので,libxcb-auxのリンクが 解決できればいい模様
libxcb-auxのリンクを必要とするパッケージは結構ある.多分、後述のlibstartup-notification経由で Xfceのバイナリの多くにリンクされてしまっている模様。
libxcb-aux.so.0 used by these binaries compiz(/usr/bin/compiz) gtk-window-decorator(/usr/bin/gtk-window-decorator) wnckprop(/usr/bin/wnckprop) wnck-urgency-monitor(/usr/bin/wnck-urgency-monitor) Thunar(/usr/bin/Thunar) ristretto(/usr/bin/ristretto) thunar-volman-settings(/usr/bin/thunar-volman-settings) xfce4-appfinder(/usr/bin/xfce4-appfinder) xfce4-mixer(/usr/bin/xfce4-mixer) xfce4-notes-settings(/usr/bin/xfce4-notes-settings) ....
一方,libtoolsが参照する la ファイルにも libxcb-auxを参照しているものがある.
$ grep libxcb-aux /usr/lib64/lib*.la /usr/lib64/libI810XvMC.la:dependency_libs=' /usr/lib64/libdrm.la -lrt /usr/lib64/libXvMC.la /usr/lib64/libXv.la /usr/lib64/libXext.la /usr/lib64/libXfixes.la /usr/lib64/libX11-xcb.la /usr/lib64/libX11.la -ldl /usr/lib64/libxcb-dri2.la /usr/lib64/libxcb-aux.la /usr/lib64/libxcb.la /usr/lib64/libXau.la /usr/lib64/libXdmcp.la' /usr/lib64/libIntelXvMC.la:dependency_libs=' /usr/lib64/libXvMC.la /usr/lib64/libXv.la /usr/lib64/libXext.la /usr/lib64/libXfixes.la /usr/lib64/libX11-xcb.la /usr/lib64/libX11.la -ldl /usr/lib64/libxcb-dri2.la /usr/lib64/libxcb-aux.la /usr/lib64/libxcb.la /usr/lib64/libXau.la /usr/lib64/libXdmcp.la -lpthread /usr/lib64/libdrm_intel.la /usr/lib64/libdrm.la -lrt' /usr/lib64/libstartup-notification-1.la:dependency_libs=' /usr/lib64/libxcb-aux.la /usr/lib64/libX11-xcb.la /usr/lib64/libX11.la -ldl /usr/lib64/libxcb.la /usr/lib64/libXau.la /usr/lib64/libXdmcp.la'
libtoolsがこれらを参照すると,存在しなくなった /usr/lib64/libxcb-aux.la を読み込もうと してエラーになるので,早めに更新しておく必要がある.