diary/Kojima

・xorg-server-1.6 と libxcb-xlib

Plamo-4.7 に収録している libxcb(libxcb-1.1.91)には libxcb-xlib という小さなライブラリがあるのだけど、 libxcb-1.2 以降ではこのライブラリが削除されている。

libxcb-xlib 自体はそれほど重要なライブラリではないのだけれど、libXext.la で dependecy libs に指定されてしまっているため、 libXext.la を参照するライブラリが芋づる式に libxcb-xlib.la を参照することになってしまっていて、X11R74 では多数のライブラリが libxcb-xlib.so をリンクしてしまっている。

その結果、単純に libxcb-1.2 以降(最近では1.4までバージョンアップしている模様)にすると、本来 X11R74 に含まれている libxcb-xlib の機能は不要なライブラリが 軒並み libxcb-xlib が見つからない、というエラーになってしまう。また、*.la ファイルに libxcb-xlib の参照が入っているライブラリは libxcb-xlib の無い状態で再ビルドしないと *.la ファイルの参照は消えない。

このあたりは libtools のバグというか mis-feature っぽいのだけど、xorg-server-1.6 以降にするには libxcb-1.2 以降が必要なので 何とかする必要がある。

google等で調べた結果、既存のライブラリを活かすためには libxcb-xlib.so.0.0.0 を残すとともに、*.la ファイルから libxcb-xlib.la の参照を削除しておけば(libxcb-xlib.so.0.0.0が存在していても)新しくビルドするライブラリには libxcb-xlib が不要になるようなので、libxcb-1.4 のパッケージに 古いlibxcb-xlib.so.0.0.0 を収めるとともに、initpkg で *.la にある libxcb-xlib.la への参照を 削除するようなコードを加えてみる。

こういう方針で作った xorg-server-1.6.4 と必要なライブラリ、ドライバを Plamo-test に置いたので、興味ある人は試してみてください。

動作させるには、このディレクトリにあるファイル(ライブラリ、プロトタイプ、xorg-server 本体)すべてと drivers 以下にある 1.6.4 用のドライバ が必要で、標準的な環境ではキーボード (xf86_input_keyboard-1.3.99.1-i586-P1.tgz) とマウス (xf86_input_mouse-1.4.99.1-i586-P1.tgz) に加えて、ビデオチップごとのドライバ(intel系なら xf86_video_intel-2.9.0-i586-P2.tgz, NVidia系なら xf86_video_nv-2.1.15-i586-P1.tgz)が必要になります。

ちゃんと動けば、xdpyinfo の結果が

name of display:    :0.0
version number:    11.0
vendor string:    The X.Org Foundation
vendor release number:    10604000 
X.Org version: 1.6.4

となるはず。



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