2015-05-28

Void Linux:日本語入力が出来なくなる件 i686環境を作って試してみる。

まずはVMware Playerにi686の環境を作りました。
インストールは自作したベースシステムのディスクイメージを使いましたが、使ったパッケージは公式リポジトリのもので作成。

Xorg-7.6_4とXfce4-4.12.0_3をインストール。ディスプレイマネージャはlxdm-0.5.1_2
フォントは日本語IPAフォントを入れ、自作したフォントパッケージはインストールしない。
ロケール(ja_JP.UTF-8)を作成、/etc/locale.confを編集。
dbusとlxdmサービスを起動させる。
lxdmが起動してログイン画面になったら一旦再起動。


Xfce4のキーボードの設定でシステムのキーボードレイアウトのチェックを外し、
日本語キーボードを登録。

ibusは公式リポジトリからインストール。
この時点ではまだ起動させない。

export GTK_IM_MODULE=ibus
export XMODIFIERS=@im=ibus
export QT_IM_MODULE=ibus
export LANG=ja_JP.UTF-8
設定後に一旦ログアウトしログインし直す。

anthy kasumi ibus-anthyパッケージを作成する。
パッケージ作成中は特にエラー無し。

atnhy kasumi ibus-anthyパッケージをインストールする。

ibusデーモンを起動。
ibus-anthyの設定はdconfのデータベースを使うので起動時のオプションを変更する。
(ibusはデフォルトでmemconfを利用する為)

$ ibus-daemon --config=/usr/liexec/ibus-dconf -drx

Xfce4の自動起動アプリケーションでも登録しておく。

日本語入力の確認のためテキストエディタを追加。geditをインストール

ibusの設定はメソッドの切り替えをCtrl+Spaceへ変更。
システムのキーボートレイアウトを使用のチェックはOFF
Anthyの設定は辞書ツールのON、入力タイプをATOKに変更。

ibus-anthyはちゃんと認識されている

切り替えた時のアイコンも正常
テキストエディタで試すが切り替えはできるものの、日本語入力が出来ない。
GTKのimmoduleのキャッシュを確認するとキャッシュファイルが無いので作成。
?? 64bit環境だと自動で作ってくれていた気がするんだけど・・・

# gtk-query-immodules-2.0 --update-cache
# gtk-query-immodules-3.0 --update-cache

その後一旦ログアウトしなくても日本語入力が出来るようになった。


gedit

mousepad

Xfce4-Terminalでも日本語入力OK

あれ? 特におかしな動作もなく、エラーもログに出ることなくちゃんと動作しちゃいました。
今まで何日もかけて動かない環境で調べてもさっぱりだったのに・・・


次はmozcのパッケージをビルドします。
mozcは過去ブログとGoogle Sitesに載せているものではなく、fcitxに対応させるために作りなおしたテンプレートファイルを使います。
 
srcpkgs/mozcディレクトリにpatchesディレクトリを作成。
ターミナルでsrcpkgsディレクトリへ移動し、シンボリックリンクを作成。

$ ln -s mozc ibus-mozc
$ ln -s mozc fcitx-mozc

パッケージ作成処理中はchrootされるのでリンクパスは絶対パスではなく相対パスにすること!


fcitxの公式サイトにあるソースコードから下記ファイルをダウンロードしpatchesディレクトリにそのまま入れる。
http://download.fcitx-im.org/fcitx-mozc/fcitx-mozc-2.16.2037.102.2.patch

fcitxはmozcのソースコードにパッチを当てて作成されます。
必要ないと思いましたが一応fcitx-develパッケージをhostmakedependsに追加してあります。

自分が作ったmozcのテンプレートファイルは、mozcのソースコードがgithubへ移行する前のバージョンでsvnで入手できる最終バージョンである2.17. 2077.102を使っていてfcitxのパッチと異なりますが仕方なし。


テンプレートファイルを書き直したものはこちらです。
ibus-mozcとfcitx-mozcのパッケージを分けるように作りなおしました。
(その他色々不具合というか間違ってそうな部分も修正)

下記表示はブログの仕様で表示幅により自動で行のまわりこみがされます。
 改行されているように見える部分は実は改行しちゃダメな場所かもしれないので注意して下さい。

# Template file for 'mozc'

pkgname=mozc
version=2.17
revision=2
short_desc="Japanese Inputmethod engine"
maintainer="user "
license="BSD"
homepage="https://code.google.com/p/mozc/"

hostmakedepends="git clang python-devel pkg-config qt-devel glib-devel gtk+-devel zinnia zinnia-tomoe dbus-glib-devel ibus-devel subversion libxcb-devel fcitx-devel"

depends="zinnia zinnia-tomoe"

patch_args="-p1"

pre_fetch() {
    if [ -d /void-packages/depot_tools ] ; then
        echo "depot_tools exist"
    else
        cd /void-packages
        git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
        echo "depot_tools download"
    fi
}

post_fetch() {
    if [ -e ${XBPS_SRCDISTDIR}/${pkgname}-${version}/.gclient ] ;
then
        export PATH=$PATH:/void-packages/depot_tools
        cd ${XBPS_SRCDISTDIR}/${pkgname}-${version}
        gclient sync
    else
        export PATH=$PATH:/void-packages/depot_tools
        cd ${XBPS_SRCDISTDIR}/${pkgname}-${version}
        gclient config http://mozc.googlecode.com/svn/trunk/src
        gclient sync

    fi
}

post_extract() {

    cp -rf ${XBPS_SRCDISTDIR}/${pkgname}-${version}/src ${wrksrc}/

}

post_configure() {

    export PATH=$PATH:/void-packages/depot_tools
    GYP_DEFINES="ibus_mozc_path=/usr/libexec/ibus_mozc ibus_mozc_icon_path=/usr/share/ibus-mozc/product_icon.png document_dir=/usr/share/doc/mozc zinnia_model_file=/usr/lib/zinnia/model/tomoe/handwriting-ja.model" python src/build_mozc.py gyp --server_dir=/usr/lib/mozc

}

post_build() {

    export PATH=$PATH:/void-packages/depot_tools
    python src/build_mozc.py build -j 2 -c Release unix/ibus/ibus.gyp:ibus_mozc server/server.gyp:mozc_server gui/gui.gyp:mozc_tool renderer/renderer.gyp:mozc_renderer unix/fcitx/fcitx.gyp:fcitx-mozc

}

do_install() {

    vmkdir /usr/lib/mozc
    vinstall src/out_linux/Release/gen_collocation_data_main 755 /usr/lib/mozc/
    vinstall src/out_linux/Release/gen_collocation_suppression_data_main 755 /usr/lib/mozc/
    vinstall src/out_linux/Release/gen_oss_sbm 755 /usr/lib/mozc/
    vinstall src/out_linux/Release/gen_suggestion_filter_main 755 /usr/lib/mozc/
    vinstall src/out_linux/Release/gen_symbol_rewriter_dictionary_main 755 /usr/lib/mozc/
    vinstall src/out_linux/Release/gen_system_dictionary_data_main 755 /usr/lib/mozc/
    vinstall src/out_linux/Release/gen_usage_rewriter_dictionary_main 755 /usr/lib/mozc/
    vinstall src/out_linux/Release/mozc_renderer 755 /usr/lib/mozc/
    vinstall src/out_linux/Release/mozc_server 755 /usr/lib/mozc/
    vinstall src/out_linux/Release/mozc_tool 755 /usr/lib/mozc/
    vinstall src/out_linux/Release/protoc 755 /usr/lib/mozc/
}

    ibus-mozc_package() {
        short_desc+=" - ibus module"
        depends="ibus>=1.5.10_1 mozc>=2.17_2"
        pkg_install() {
            vmkdir /usr/share/ibus-mozc
            vinstall src/out_linux/Release/ibus_mozc 755 /usr/libexec/
            vinstall src/out_linux/Release/gen/unix/ibus/mozc.xml 755 /usr/share/ibus/component/
            vinstall src/data/images/unix/ime_product_icon_opensource-32.png 644 /usr/share/ibus-mozc/ product_icon.png
            vinstall src/data/images/unix/ui-alpha_half.png 644 /usr/share/ibus-mozc/
            vinstall src/data/images/unix/ui-alpha_full.png 644 /usr/share/ibus-mozc/
            vinstall src/data/images/unix/ui-dictionary.png 644 /usr/share/ibus-mozc/
            vinstall src/data/images/unix/ui-direct.png 644 /usr/share/ibus-mozc/
            vinstall src/data/images/unix/ui-hiragana.png 644 /usr/share/ibus-mozc/
            vinstall src/data/images/unix/ui-katakana_full.png 644 /usr/share/ibus-mozc/
            vinstall src/data/images/unix/ui-katakana_half.png 644 /usr/share/ibus-mozc/
            vinstall src/data/images/unix/ui-properties.png 644 /usr/share/ibus-mozc/
            vinstall src/data/images/unix/ui-tool.png 644 /usr/share/ibus-mozc/
        }
    }

    fcitx-mozc_package() {
        short_desc+=" - fcitx module"
        depends="fcitx>=4.2.8.6_1 fcitx-configtool>=0.4.8_1 mozc>=2.17_1"
        pkg_install() {
            vmkdir /usr/lib/fcitx
            vmkdir /usr/share/fcitx/addon
            vmkdir /usr/share/fcitx/inputmethod
            vmkdir /usr/share/fcitx/icon
            vmkdir /usr/share/locale/ja/LC_MESSAGES
            vmkdir /usr/share/locale/zh_CN/LC_MESSAGES
            vmkdir /usr/share/locale/zh_TW/LC_MESSAGES

            vinstall src/out_linux/Release/fcitx-mozc.so 755 /usr/lib/fcitx/
            vinstall src/unix/fcitx/fcitx-mozc.conf 755 /usr/share/fcitx/addon/
            vinstall src/unix/fcitx/mozc.conf 755 /usr/share/fcitx/inputmethod/

            vinstall src/out_linux/Release/gen/unix/fcitx/po/ja.mo 755 /usr/share/locale/ja/LC_MESSAGES/ fcitx-mozc.mo
            vinstall src/out_linux/Release/gen/unix/fcitx/po/zh_CN.mo 755 /usr/share/locale/zh_CN/LC_MESSAGES/ fcitx-mozc.mo
            vinstall src/out_linux/Release/gen/unix/fcitx/po/zh_TW.mo 755 /usr/share/locale/zh_TW/LC_MESSAGES/ fcitx-mozc.mo

            vinstall src/data/images/unix/ime_product_icon_opensource-32.png 644 /usr/share/fcitx/mozc/icon/ mozc.png
            vinstall src/data/images/unix/ui-alpha_half.png 644 /usr/share/fcitx/mozc/icon/ mozc-alpha_half.png
            vinstall src/data/images/unix/ui-alpha_full.png 644 /usr/share/fcitx/mozc/icon/ mozc-alpha_full.png
            vinstall src/data/images/unix/ui-dictionary.png 644 /usr/share/fcitx/mozc/icon/ mozc-dictionary.png
            vinstall src/data/images/unix/ui-direct.png 644 /usr/share/fcitx/mozc/icon/ mozc-direct.png
            vinstall src/data/images/unix/ui-hiragana.png 644 /usr/share/fcitx/mozc/icon/ mozc-hiragana.png
            vinstall src/data/images/unix/ui-katakana_full.png 644 /usr/share/fcitx/mozc/icon/ mozc-katakana_full.png
            vinstall src/data/images/unix/ui-katakana_half.png 644 /usr/share/fcitx/mozc/icon/ mozc-katakana_half.png
            vinstall src/data/images/unix/ui-properties.png 644 /usr/share/fcitx/mozc/icon/ mozc-properties.png
            vinstall src/data/images/unix/ui-tool.png 644 /usr/share/fcitx/mozc/icon/ mozc-tool.png
        }
    }
ちょっとビルドに時間がかかるのでコーヒータイム。

作成にエラーの発生無し。
ibus-mozc mozc zinnia zinnia-tomoeをインストールする。

ibusを再起動する。
再起動後にibusの設定でmozcを追加する。


mozcのキー設定はATOKにして保存する。


ここでタスクマネージャを起動させてプロセスの監視をする。
この時点でmozcの設定をした際にmozc_serverが起動している。

メソッドをmozcに切り替える。
切り替えた時点でibus_mozcが起動する。オプションで--ibusとなっているがこれが正常。

テキストエディタを起動して日本語入力を試してみる。

gedit

mousepad



また、普通に使えちゃったよ。
使えたのでちゃんとmozc_rendererが起動してくれています。
キー設定をATOKにしているので半角全角キー以外にも変換と無変換キーでも日本語入力のON・OFFが出来た。

う〜ん、Mac Proにインストールした実機でもダメだったのになんでこうもあっさり動作してしまうのか・・・
全然原因がわからないじゃないか!

0 件のコメント:

コメントを投稿