2006年08月11日

scim-bridge との闘い

まだ 32bit scim-bridge のビルドに成功していない。

が、firefox は、suse の projects から持ってきた 64bit 版 では flash やら java やらが使えないのに我慢できなくて、前に使っていた本家の 32bit firefox に戻した。
64bit 環境では flash が使えないのは知っていたし、java も多分 32bit 版の方を入れれば使えるんだろうけど(64bit 版には java plugin のパッケージがない)、やっぱ flash みれないと困ることがあって。
あと、自動更新が有効になってるくせに、自動更新で本家から落としてきたアップデータでアップデートしても、アップデートできず、一々 projects から持ってきてアップデートしなきゃならん、というのもうんざりだった。だったら初めから自動更新無効にしとけよと。

んじゃ、日本語入力はどうしてるのか?また canna に戻したのか?というと、実は scim が使えている。

どうしてかというと、suse には scim-32bit というパッケージがあり、こいつを入れてやれば 32bit firefox でも scim が使えることにやっと気づいた。お、俺の苦労は一体… orz

ただ、scim が起動していない状態で firefox を起動すると、scim の起動に失敗するのか、firefox が上がらない。上がらないどころか、firefox-bin のプロセスがたくさん生まれてくる。しかし、特にエラーらしいメッセージはない。
予め scim が上がっていれば firefox もちゃんと起動し、scim が使える。

というわけで、scim-bridge なしでも困らない状況になってしまったのだが、このままではやっぱ悔しいので、scim-bridge のビルドにも再度挑戦してみた。

やろうとしているのは要するに、64bit の環境で i686 の scim-bridge をクロスコンパイルすることだが、suse のパッケージを眺めていたら cross-*-binutils というパッケージがあるのに気づいた。「多分、これはクロスコンパイルするときに使うものだろう」と思ったので、喜び勇んで cross-i386-binutils を入れて再挑戦してみた。

結果は見事に撃沈 orz

しかも状況が自分の理解を超えてるのでもうダメぽ
普通に rpmbuild -tb --target=i686 だと 64bit バイナリになってしまう。
「一遍にやろうとせずに、一歩ずつ行くか」と思って ./configure --prefix=/opt/gnome --host=i686 --disable-static としてみたら、何故か share が no で static が yes になってしまう。そのまま make するとやはり 64bit になってしまう。

これはもう、自分がクロスコンパイルのことを根本的に分かってない以上、どうもならん。ちゃんと勉強してからにしようと思いマスタ。
分かってる人には「そんなのそうなるの当たり前じゃん」と思われてるんだろうなと思いますが、知らんものは知らん。分からんものは分からん。(ほんとはとっても恥ずかしい…)

で、scim-bridge は x86 な環境をどっかに作って、そこで普通にビルドして、そいつを持ってくればいいかな、と思うのですが、ちっと分からんことが。

以前の大力さんのコメントにもあったし、開発室『芝玉』にも書かれてますけど、
32bitアプリケーションから64bit SCIMを使えます。(32bit版client-gtkが別途必要)

この「client-gtk」ってどれのことなんでしょう?

fedora や momonga のパッケージの中を見てもそういう名前のものは入ってないし、make して見ても client-gtk フォルダの中にやはりそういう名前のものはないし、im-scim-bridge.{la,so} のことでいいんだろうか?

まぁ、また時間を見つけてやってみるべ。

posted by vagus at 15:17| 東京 🌁| Comment(1) | TrackBack(0) | 日本語入力 - アプリ | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
そういえば、Makefileはやっつけで書いたものなので幾つか問題がありました。
すみません、自分でもさんざん嵌まっていた癖に、数週間たったらすっかり忘れていました。

一つ目は、staticの問題で、何も指定しなければ--disable-static扱いになるので忘れてください。
二つ目は、x86_64上でコンパイルすると、i686ターゲットを指定していても、lib64のライブラリとリンクを張ってしまうことです。
こちらは、コンパイル前にMakefileに下記のような修正を当ててください。

sed -i -e "s/lib64/lib/g" libtool
sed -i -e "s/lib64/lib/g" client-gtk/Makefile

client-gtkは、想像通りです。
im-scim-bridge.soを/usr/lib/gtk-2.0/immodulesにインストールして、update-gtk-immodules i*86-*-linux-gnuを実行すればOKです。
Posted by 大力 at 2006年08月12日 23:57
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。

この記事へのトラックバック
×

この広告は90日以上新しい記事の投稿がないブログに表示されております。