[Momonga-devel.ja:02885] X.org-6.8.1の試作パッケージとX.org移行の提案


nosanosaです。

BUG ID89のXFree86-4.3.0.2-9mでDRIが Segmentation Faultする件ですが、
XFree86を-Gオプションでビルドしてみたりしてみましたが、ダメでした。

それで思い立って、Fedora Core Developementから X.orgのパッケージを持っ
てきてMomonizeしてインストールしてみたところ、とりあえずXも立ち上がり、
DRIも問題なく動きましたので報告します。

やったことはFedora Core Developmentのxorg-x11-6.8.1-12.src.rpmに
XFree86-4.3.0.2-9mでFedoraのXFree86に加えられていたMomongaでの変更を
マージしたということ(だけ)です。

X.orgとXFree86はビルドの構造は同じで、今のMoのXFree86はFedoraベースの
ものになっていたので、このマージは簡単にいきました。Momonga独自のパッ
チも基本的には当たりました。ビルドのオプションが変わったりしていました
が、今のMoのパッケージ構成に近くなるようにしてあります。

以下に試作パッケージを置いてあります。
http://www.momonga-linux.org/~nosanosa/xorg-x11-6.8.1-0.fc12.1m.nosrc.rpm

できるパッケージをとりあえず全部まとめて rpm -Uvh --nodepsで入れてXを
再起動すればX.orgで立ち上がると思います。--nodepsというのは、XFree86を
明示的に要求するパッケージがあるので。(Provides: XFree86しておけばいい
のかもしれませんが、Fedoraのになかったので今はそのまま)

Xのパッケージングについて全く無知な状態でやってできたものなので、もち
ろんこのままいきなりtrunkに入れる訳にはいかないですし、設定ツールやイ
ンストーラなどの調整がいると思いますが、これを叩き台にして、X.orgへの
移行を開始したらどうでしょうか、と提案したいとおもいます。

以下に変更点などの覚書をあげておきます。

○ specファイルについて

・XFree86 -> xorg-x11

パッケージ名は従来のXFree86の部分がxorg-x11に変わりました。また
descriptionではX.orgにかわり、Requiresなどでは「今後のパッケージ名の変
更の可能性も考えて」すべて%{name}を使う方向になっています。

・Xft

MomongaのXFree86-4.3.0.2-9mでは外部からXftをダウンロードして、同梱され
ているXftを置き換えてますが、X.orgに同梱されているXftは最新のもののような
ので置き換えるのをやめています。

・パッチについて

Momonga独自のパッチのうちPatch40000からPatch70000まではそのまま当たり
ました。

http://www.kde.gr.jp/~akito/からのXftへのパッチPatch40は(Xftのバージョ
ンが上がっているせいか)当りませんでしたのでとりあえず外してあります。

・フォントのパッケージング

Fedoraではフォントが別のsrc.rpmからつくるようになっているらしく、
%define with_fonts 0
となるのですが、ここでは従来のMoにならってフォントもこのsrc.rpmから作
るようにしておきました。

・fontconfig

FedoraもMomongaも別パッケージですがFedoraでは2.2.3に上がっています。

・freetype2

X.orgのfreetypeモジュールにはAfter X-TT プロジェクト 
(http://x-tt.sourceforge.jp/index_nippon.html);の成果が取り込まれたらし
く、xttモジュールはなくなっていて替わりに(従来のxttの機能ももった)新し
いfreetypeモジュールを使うようです。で、Moのfreetypeは2.1.4で、このバー
ジョンでX.orgをビルドできますし動いているようですが、After X-TT プロジェ
クトのページをみると2.1.7以下のfreetypeには"xtt2 version 1.2a freetype 
2.1.x用パッチ"を当てるように書いてあります。またfreetypeの最新は2.1.9
のようです。

・host.def, archexec

このあたりのサバキはFCのままです。archexecとは何かいまいちよくわかって
いませんがarchごとの設定ファイルを扱うためのものみたいです。FCのまま
%define with_archexec 1
として、Fedoraに入っていた archexec, host.defをSource10、 Source100と
して入れてあります。

・xserver.pamd, xdm.pamd, xfs.init, xfs.config, xdm.init

このあたりのファイルは基本的に変化がないようだったのでMoのものをそのま
ま入れています。ただし、xfs.initは機能は同じようでしたが、(洗練された
方向に?)変わっていたので、FCのものをいれてあります。xdm.initはFCだけに
あってそのまま入れてあります。

・libs-data

従来は別のサブパッケージに分けられているのがデフォルトでしたが
%define with_libs_data 0
となってlibsに含めるようになっていたので、そのまま含めるようになってい
ます。

○ インストールと設定ファイルについて

・XF86Config -> xorg.conf

設定ファイル/etc/X11/XF86Configは/etc/X11/xorg.confに名前が変わりまし
た。

またログファイルは/var/log/XFree86.0.logから/var/log/Xorg.0.logという
ように変わりました。

Fedoraの%postで、XF86Config*というファイルがあると適当にxorg.confにリ
ネームしてくれるので、自分で変えなくてもいいみたいです。

・xorg.conf の内容

上述したようにxttモジュールがなくなったので/etc/X11/XF86Configに
Load  "xtt"
としていた場合はこれを消して
Load  "freetype"
とします。
(ってもともと
# You only need the following two modules if you do not use xfs.って書
いてあるけれど、xfsが動いてる場合どうなんだろう?)

またX.org 6.8.1の(実験的な)新機能であるComposite拡張(透過ウィンドウな
どを可能にするらしい)を有効にするにはxorg.confに
Section "Extensions"
 Option "Composite" "Enable"
EndSection
を加えます。ただし実際に透過ウィンドウなどにするにはxcmpmgrなるものを
インストールする必要があるようです。
(参考 https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=133679);

○ 実際の使用感、互換性

XFree86とX.orgは互換性があるはずで rebuild againt一切なしの状態で、実
際にgdmからXFce4を使っていろいろ立ち上げましたが何ら変化なく動いてます。
DRIもちゃんと動きました。GNOMEも問題ないようです。

ただ、KDEを立ち上げようとしたらうちではwindow managerのセットアップで
失敗しているっぽいです。もしかしたらrebuildが必要かも。

=== まとめ ===

私自身は、Xに関しては深いことは何も知らないので、とんでもない間違いを
言っている(やっている)可能性もありますが、移行自体は意外に簡単なのでは
ないかと思っています。対応ハードも増えているようですし、ここは一気に
X.org移行の方向で検討してほしいなとおもいます。

では、なにかありましたらツッコミをよろしくおねがいします。



	--------------------------------------------
	     nosanosa nosanosa@xxxxxxxxxxxxxxxxx
	--------------------------------------------