[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: mozc in pkgsrc



こんにちは。
小野寺です。

やっと動きました。flock(1)を使っているのもあって、NetBSD currentと、
Linuxでしか動かないと思います。FreeBSDでも動かせるようにできると
思いますが、やっていません。
NetBSD 5/6もlflock(1)を抜くだけで良いかを含め、まだ確認できていません。

From: Ryo ONODERA <ryo_on@yk.rim.or.jp>, Date: Wed, 16 Jan 2013 21:48:35 +0900 (JST)

> From: Ryo ONODERA <ryo_on@yk.rim.or.jp>, Date: Tue, 15 Jan 2013 22:46:26 +0900 (JST)
> 
>> NetBSDの場合を、Linuxの場合に相乗りするのではなく、
>> IsNetBSDやOS_NETBSDを定義して条件分岐するように書き直してみました。
> 
> これをやり過ぎと言いますか、OS_LINUXのみであるべき場所にも
> || defined(OS_NETBSD)を付けていましたので、該当箇所から削りました。

これがまだ何箇所かありましたので、削りました。
逆にOS Xに便乗すべき部分もありましたので、追加しました。

また、getsockopt周りは、#if defined(OS_NETBSD)で囲って
getpeereidのコードを参考に(SOL_SOCKETではなく0にすると言う点)、
書いています。

>> From: Ryo ONODERA <ryo_on@yk.rim.or.jp>, Date: Mon, 14 Jan 2013 16:02:25 +0900 (JST)
>> 
>>> 悲しいことに、ipc/unix_ipc.ccのところまで来て、参考にしていた
>>> FreeBSD portsのものとの差も大きくなって分からなくなって
>>> しまいました。
>> 
>> とりあえず、参考にすべきなのはLinuxであるとの判断で、
>> 
>> http://pkgsrc-wip.cvs.sourceforge.net/viewvc/pkgsrc-wip/wip/ibus-mozc/patches/patch-ipc_unix__ipc.cc?revision=1.2&view=markup
>> 
>> のように書いてみましたが、動いてはいません。
>> 
>> やっとDebugビルド(Releaseオプションを付けない場合)で、
>> ログが記録されることに気付きました。
>> ibus-setupを起動してmozcの設定ウィンドウを表示して、
>> OKで戻って来た場合のログを付けておきます。
>> 
>> まだ詳細を見ることができていませんが…
> 
> 良く考えると、mozc_serverもログを出力していました。
> それを見ると、まずは、mozc_server_japaneseが起動しないこと問題でした。
> mozc_toolが通信できないのもmozc_server_japaneseが起動していないのが第一の
> 問題だったようです。
> Linuxのunix domain socketにおけるabstract namespaceというのを
> 使うようなコードを有効にしてしまっていたのを切り替えて、
> mozc_server_japaneseは少なくともコマンドラインからは起動できるように
> なりました。
> 
> しかし、以下のような名前付きセマフォに関連するエラーが残っています。

昨夜のことなので記憶が飛んでしまいました…。どう直したのだったか…。
ですが直っています。

> 2013-01-16 21:23:33 24150 140183437574145 ipc/named_event.cc(342) LOG(ERROR) sem_open failed: No such file or directory
> 2013-01-16 21:23:33 24150 1 ipc/named_event.cc(359) LOG(ERROR) NamedEventNotifier is not available
> 2013-01-16 21:23:33 24150 140183437574145 session/session_server.cc(95) LOG(WARNING) NamedEvent session is not found
> 
> これのせいであるかは明確ではありませんが、日本語変換を例えば
> alt+graveで起動すると、
> 「変換エンジンプログラムの起動に失敗しました。新しいMozcを
> 利用するためにコンピュータを再起動してください。」
> とエラーウィンドウが表示されて日本語入力はできません。

このエラーウィンドウは、mozc-serverを更新したのにibus-mozcを更新しないなど、
mozc-toolも含め3つが同じコードベースからビルドされていないと表示される
ことがあります。試される方はご注意ください。
つまり、私の作業中のものを試された方は、全て更新してほしいということです。

以前のものを試されている場合には、~/.mozcと/tmp/.mozc*を削除して
みてください。mozc_server_japaneseの作ったファイル等が残っている
と起動できません。

後は、ibus-setupからmozcを選んでもらえれば使えると思います。
ちなみに、mozcに限らず、ibusには以下のような設定があれば良いと思います。

~/.Xresource
*InputMethod:   ibus

~/.profileや~/.shrcなど(素のshでsetしないままに設定できないかは忘れました。
私は~/.zshrcに設定しています)
export XMODIFIERS="@im=ibus"
export GTK_IM_MODULE="xim"
export QT_IM_MODULE="xim"

~/.xinitrc(startxの場合だと思いますので、xdm等の方は適宜読み替えてください)
/usr/pkg/bin/ibus-daemon -d -x

--
Ryo ONODERA // ryo_on@yk.rim.or.jp
PGP fingerprint = 82A2 DC91 76E0 A10A 8ABB  FD1B F404 27FA C7D1 15F3