Fedora Core 6でWine 0.9.30を動かす(libX11にパッチを当てる方法)
Fedora Core 6でWine 0.9.23以降を使うと、ハングアップするが、どうやらlibX11のバグらしい(?)。
libX11にパッチを当てたら、確かにWine 0.9.30が動いた。
参考1:http://bbs.fedora.jp/read.php?FID=10&TID=4828
参考2:https://bugs.freedesktop.org/show_bug.cgi?id=1182
参考3:http://bugs.winehq.org/show_bug.cgi?id=6547
せっかくなので、ここにlibX11のRPMにパッチを当てる具体的な手順を書いておく。
パッチをダウンロード
下記の通りにコマンドを入れる。
もし、wgetが「bugs.freedesktop.org」に繋がらなかったら、
「https://bugs.freedesktop.org/」を「https://131.252.208.36/」とIPアドレス表記に変える。
パッチはXim.patchと言う名前で保存される。
$ cd ~/rpm/SOURCES $ wget --no-check-certificate -O hoge "https://bugs.freedesktop.org/attachment.cgi?id=4874" $ cat hoge | sed -e 's/lib\/X11\/im/modules\/im\/ximcp\/im/' | sed -e 's/lib\/X11/src/' > Xim.patch
ソースRPMをダウンロード
ここではyumdownloaderを使ってソースRPMをダウンロードするので、yum-utilsをインストールしておく。
# yum install yum-utils
/etc/yum.repos.d/fedora-core.repoをエディタで編集。
[core-source]セクションの「enabled」を1にする。
[core-source] name=Fedora Core $releasever - Source #baseurl=http://download.fedora.redhat.com/pub/fedora/linux/core/$releasever/source/SRPMS/ mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=core-source-$releasever&arch=$basearch enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora file:///etc/pki/rpm-gpg/RPM-GPG-KEY
yumdownloaderでソースRPMをダウンロードする。
$ cd ~/rpm/SRPMS $ yumdownloader --source libX11
スペックファイルを編集
ダウンロードしたソースRPMからスペックファイルを取り出す。
$ rpm -ihv libX11-1.0.3-4.fc6.src.rpm
${HOME}/rpm/SPECS/libX11.specをエディタで編集する。
次の3箇所を書き加える。
4行目、自分でRPMを作ったことが分かる様に適当な文字を加える。
Release: 4%{?dist}.spr1
12行目から始まるパッチのリストに、「Patch3」を加える。
Patch0: libX11-0.99.3-datadir-locale-dir-fix.patch # FIXME: https://bugs.freedesktop.org/show_bug.cgi?id=3646 seems to indicate # this patch is now committed upstream. When libX11-1.0.4 is released, # manually confirm each patch hunk before removal. Patch1: libX11-nls-indic-locales-bug185376.patch Patch2: dont-forward-keycode-0.patch Patch3: Xim.patch
55行目付近、ここにも「%patch3」を加える。
%patch1 -p1 -b .nls-indic-locales-bug185376
%patch2 -p1 -b .dont-forward-keycode-0
%patch3 -p0 -b .Xim
インストール
下記通りにコマンドを入れてしばらくすると、${HOME}/rpm/RPMS/****にRPMファイルが出来上がる。
「--target」オプションは自分のマシンのアーキテクチャに合わせる。
$ rpmbuild -bs libX11.spec $ cd ../SRPMS $ rpmbuild --rebuild --target=i686 libX11-1.0.3-4.spr1.src.rpm
出来上がったRPMファイルは、「rpm -Uhv --oldpackage」でインストールする。
$ cd ~/rpm/RPMS/i686 $ su # rpm -Uhv --oldpackage \ libX11-1.0.3-4.spr1.i686.rpm \ libX11-devel-1.0.3-4.spr1.i686.rpm