前回までにX11R7.
Xサーバについて
Xサーバはディスプレイ画面を描画すると共に、
「Xサーバ」
画面描画などウィンドウ操作に必要な処理はハードウェアを直接操作する必要があるため、
加えて、
伝統的な一枚岩的設計のサーバでは、
今回ダウンロードしたファイルのうちdriverディレクトリに収められているのが、
ビルド、ビルド、ビルド!(その2)
それではxorg-serverをビルドしてみましょう。xserverディレクトリに移動し、
% ./PlamoBuild.xorg-server-1.7.1 autoreconf: Entering directory `.' ... checking for SHA1Init in -lmd... no checking for XSERVERCFLAGS... configure: error: Package requirements (randrproto >= 1.2.99.3 renderproto >= 0.11 fixesproto >= 4.1 damageproto >= 1.1 xcmiscproto >= 1.2.0 xextproto >= 7.0.99.3 xproto >= 7.0.13 xtrans >= 1.2.2 bigreqsproto >= 1.1.0 fontsproto inputproto >= 1.9.99.902 kbproto >= 1.0.3 videoproto compositeproto >= 0.4 scrnsaverproto >= 1.1 resourceproto xineramaproto xkbfile xfont xau pixman-1 >= 0.15.20 hal dbus-1 xdmcp openssl) were not met: Requested 'pixman-1 >= 0.15.20' but version of Pixman is 0.15.12 Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix.
おっと、
configureスクリプトはxorg-serverをビルドするのに必要なソフトウェアの有無やバージョンをチェックしますが、
configureスクリプトはpkgconfigコマンドを用いてそれぞれのソフトウェアの有無やバージョンをチェックします。pkgconfigコマンドが利用する各種pcファイル
(前回紹介したxpm. pc等) は、 通常/usr/ lib/ に 収められますが、pkgconfig ディレクトリ ビルド時の設定によってインストール先は変わります。/usr/ lib/ pkgconfig/以外にインストールされたpcファイルを探すには、 PKG_ CONFIG_ という環境変数にpcファイルを収めたディレクトリのリストを設定します。PATH
pixmanのビルドスクリプトを調べてソースコードの配布元へ行ってみると0.
libuuidの祟り
続いてビルド作業に移ると、
... /usr/bin/install -c -m 644 xorg.conf.5 '/home/kojima/X11R75/xserver/work/usr/X11R7/share/man/man5' LINK libxorg.la copying selected object files to avoid basename conflicts... LINK Xorg libtool: link: cannot find the library `/usr/lib/libuuid.la' or unhandled argument `/usr/lib/libuuid.la' make[4]: *** [Xorg] エラー 1 make[3]: *** [install-recursive] エラー 1 ...
前回紹介したように、
grepコマンドで調べてみると、
% grep libuuid.la /usr/lib/*.la | cut -f1 -d':' /usr/lib/libMagick++.la /usr/lib/libMagickCore.la /usr/lib/libMagickWand.la /usr/lib/libggadget-gtk-1.0.la /usr/lib/libggadget-npapi-1.0.la /usr/lib/libgnomeuimm-2.6.la /usr/lib/libgstgl-0.10.la /usr/lib/libhal-storage.la /usr/lib/libhal.la /usr/lib/libparted.la /usr/lib/libvlc.la /usr/lib/libvlccore.la /usr/lib/libxfce4kbd-private.la /usr/lib/libxfcegui4.la /usr/lib/libxfprint.la /usr/lib/libxfsm-4.6.la
/usr/
だんだんと影響範囲が広がっているlibuuid問題に恐れながら、
そう考えてライブラリのリストを改めて眺めると、
HAL
そこで、
driver/のビルド
先に紹介したように、
X11R7.
これらもスクリプトで一括ビルドしていきましょう。
$ sudo ../build_pkgs.sh 2>&1 | tee -a build.log パスワード: executing PlamoBuild.xf86-input-acecad-1.4.0 ... --> Deleting usr/share/doc/xf86-video-xgixp-1.7.99.4/PlamoBuild.xf86-video-xgixp-1.7.99.4.gz --> Deleting usr/share/doc/xf86-video-xgixp-1.7.99.4/README.gz --> Deleting empty directory usr/share/doc/xf86-video-xgixp-1.7.99.4 xf86_video_xgixp-1.7.99.4-i586-P1 のインストール中 PACKAGE DESCRIPTION:
スクリプト任せでしたが、
xorg-serverの起動テスト
X Window Systemを起動するにはフォントやアイコンデータなども必要ですが、
そう思ってXサーバの起動テストをしてみたところ、
xorg-serverのログは/var/
$ less /var/log/ Xorg.0.log X.Org X Server 1.7.1 Release Date: 2009-10-23 X Protocol Version 11, Revision 0 Build Operating System: Linux 2.6.31.6-plamoSMP i686 ..
Xorg.
(--) PCI:*(0:0:2:0) 80ee:beef:0000:0000 rev 0, Mem @ 0xe0000000/33554432 (WW) Open ACPI failed (/var/run/acpid.socket) (No such file or directory) (II) "extmod" will be loaded. This was enabled by default and also specified in the config file. (II) "dbe" will be loaded. This was enabled by default and also specified in the config file. (II) "glx" will be loaded. This was enabled by default and also specified in the config file. (II) "dri" will be loaded by default. (II) "dri2" will be loaded by default. (II) LoadModule: "freetype" (WW) Warning, couldn't open module freetype (II) UnloadModule: "freetype" (EE) Failed to load module "freetype" (module does not exist, 0)
この例でも、
最終的に致命的なエラーになっているのはログファイル末尾のこの部分のようです。
(II) VBoxVideo(0): Setting screen physical size to 304 x 228 [dix] Could not init font path element unix/:7100, removing from list! (EE) XKB: Couldn't open rules file /usr/share/X11/xkb/rules/base XKB: Failed to compile keymap Keyboard initialization failed. This could be a missing or incorrect setup of xkeyboard-config. Fatal server error: Failed to activate core devices.
この結果を見ると、
PC用のキーボードには、
英数字のみのUSキーボードやひらがなが入力可能な日本語キーボードをはじめ、 世界各地の言語に応じたさまざまな種類のキーボードが存在します。これらキーボードのキートップの刻印はさまざまですが、 周辺機器としてのキーボードから送られてくる情報はそれぞれのキーにハードウェア的に割りあてられた番号のみで、 その番号をどういう文字と解釈するかはソフトウェア側に任されています。最近のX Window SystemではそのためにXKB (X KeyBoard extention) という仕組みを採用しており、上記のエラーはこのXKBにとって必須の設定ファイルが存在しないことに起因するエラーです。
調べると、
PACKAGE NAME: xkeyboard_config-1.1-i586-P3 COMPRESSED PACKAGE SIZE: 461 K ... FILE LIST: usr/ usr/X11R7/ ... usr/X11R7/share/X11/xkb/rules/base ...
Xサーバが見に行く先が/usr/
libuuidの祟り(その2)
/usr/
/usr/bin/dbus-launch: error while loading shared libraries: libuuid.so.16: cannot open shared object file: No such file or directory /usr/bin/xfce4-session: error while loading shared libraries: libuuid.so.16: cannot open shared object file: No such file or directory
うーん、
お祓いのためにはlibuuid.
~/.xinitrcを修正してウィンドウマネージャをAfterstepにしてみると、

ビルドは続く
こうなってくるとsxpmのためにlibuuid.
まずソースコードが2個のdataディレクトリでビルドスクリプトを動かします。
% sudo ../build_pkgs.sh 2>&1 | tee build.log パスワード: **** executing PlamoBuild.xbitmaps-1.1.0 configure: WARNING: unrecognized options: --disable-static .... checking for xcursorgen... no configure: error: xcursorgen is required to build these cursors. configure error. ./PlamoBuild.xcursor-themes-1.0.2 script stop
おっと、
% grep xcursorgen /var/log/packages/* /var/log/packages/xcursorgen:PACKAGE NAME: xcursorgen-1.0.3-i586-P1 /var/log/packages/xcursorgen:PACKAGE LOCATION: xcursorgen-1.0.3-i586-P1.tgz /var/log/packages/xcursorgen:usr/X11R7/bin/xcursorgen ...
改めてappディレクトリを確認すると、
% grep -i xcursorgen build/config.log configure:2441: checking for xcursorgen configure:2481: error: xcursorgen is required to build these cursors. ac_cv_path_XCURSORGEN=no XCURSORGEN='no'
configureスクリプトの該当部分を見てみると、
それでは、
あれれ、
% sudo PATH=/usr/X11R7/bin:/usr/bin:/bin ../build_pkgs.sh パスワード: **** executing PlamoBuild.xbitmaps-1.1.0 configure: WARNING: unrecognized options: --disable-static ...
今度は無事xcursorgenも見つかりビルドは完了しました。
suでrootになると、
/etc/ login. defsのENV_ SUPATHで設定したパスがコマンドのサーチパスになりますが、 sudoの場合/etc/ login. defsは読まないので、 ENV_ SUPATHではパスを設定できません。一方、 rootのデフォルトシェルの設定ファイルである/etc/ bashrc等で設定してもsudoではシェルが切り替わるわけではないので、 シェル用の設定ファイルも読んでくれないようです。さてどうしたものか、 と改めてman sudoして上記環境変数を指定する方法を見つけましたが、 UNIXの世界の奥深さをあらためて感じることになりました。
残るはfontディレクトリだけです。このディレクトリには37個のソースコードがありますが、
% cd font ; sudo PATH=/usr/bin:/bin:/usr/X11R7/bin ../build_pkgs.sh パスワード: **** executing PlamoBuild.encodings-1.0.3 configure: WARNING: unrecognized options: --disable-static checking for a BSD-compatible install... /usr/bin/install -c ... font_xfree86_type1-1.0.2-i586-P1 のインストール中 PACKAGE DESCRIPTION: %
fontディレクトリでは特にエラーなくビルドとインストールは終了したようです。
最後のトラップ
フォントやビットマップデータも更新し、
% emiclock emiclock: error while loading shared libraries: libXaw.so.8: cannot open shared object file: No such file or directory % xcalc xcalc: error while loading shared libraries: libXaw.so.8: cannot open shared object file: No such file or directory
あわててlibXawパッケージを調べてみると、
% less /var/log/packages/libXaw PACKAGE NAME: libXaw-1.0.7-i586-P1 COMPRESSED PACKAGE SIZE: 785 K UNCOMPRESSED PACKAGE SIZE: 2930 K PACKAGE LOCATION: libXaw-1.0.7-i586-P1.tgz ... usr/X11R7/lib/ usr/X11R7/lib/libXaw6.so.6.0.1 usr/X11R7/lib/libXaw6.la usr/X11R7/lib/libXaw7.so.7.0.0 usr/X11R7/lib/libXaw7.la usr/X11R7/lib/pkgconfig/ usr/X11R7/lib/pkgconfig/xaw6.pc usr/X11R7/lib/pkgconfig/xaw7.pc usr/X11R7/share/ ...
ひるがえって、
% tar tvf plamo/02_x11/X11R74.tgz/libXaw-1.0.4-i586-P1.tgz | grep libXaw ... -rwxr-xr-x root/root 1083 2008-10-20 09:00:00 usr/X11R7/lib/libXaw6.la -rw-r--r-- root/root 329728 2008-10-20 09:00:00 usr/X11R7/lib/libXaw6.a -rwxr-xr-x root/root 408048 2008-10-20 09:00:00 usr/X11R7/lib/libXaw8.so.8.0.0 -rw-r--r-- root/root 467638 2008-10-20 09:00:00 usr/X11R7/lib/libXaw8.a -rwxr-xr-x root/root 1108 2008-10-20 09:00:00 usr/X11R7/lib/libXaw7.la -rwxr-xr-x root/root 399065 2008-10-20 09:00:00 usr/X11R7/lib/libXaw7.so.7.0.0 -rwxr-xr-x root/root 1132 2008-10-20 09:00:00 usr/X11R7/lib/libXaw8.la -rwxr-xr-x root/root 282886 2008-10-20 09:00:00 usr/X11R7/lib/libXaw6.so.6.0.1 -rw-r--r-- root/root 459976 2008-10-20 09:00:00 usr/X11R7/lib/libXaw7.a
何か仕様でも変ったのかな、
commit 3cbe136d633d18b263f596638d55f8f13fabd540
Author: Daniel Stone <[email protected]>
Date: Fri Aug 15 17:59:59 2008 +0300
Remove Xaw8 (Xprint)
Remove Xaw8, which only provided Xprint support over Xaw7.
Xprintとは、
libXawの開発者たちは、
最近のX Window Systemでは、
従来の一枚岩的デザインからモジュール的デザインに切り替えることで個々のソフトウェアの開発効率は改善したものの、 それぞれの開発者が部分ごとに最適化を進める結果、 この例のように全体ではむしろ非効率になることが増えているように感じます。バザールモデルの開発スタイルではこの種の不具合は不可避なのかも知れませんが、 そのしわよせがディストリビュータに来るのは勘弁して欲しいところです。
その後の展開
何とかX11R7.
そのためビルドスクリプトを調整して再度始めからビルドし直すことにし、
パッケージのメンテナンスにおいては、