diary/Kojima

・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 を読み込もうと してエラーになるので,早めに更新しておく必要がある.



トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2021-12-17 (金) 16:35:42