https://github.com/google/mozc
1)依存パッケージ
【インプットメソッド】
Mozcはibusやscimなどのインプットメソッドフレームワーク(プラットホーム)上で動作する日本語変換エンジンなので、インストールするためにはいずれかをインストールしておく必要がある
IBus(ibus) SCIM(scim) Fcitx(fcitx)
【コンパイラ・インタプリタ】
gcc/g++(g++) C/C++コンパイラ
Python(python) プログラミング言語Pythonのインタプリタ
【ライブラリ】
D-Busのライブラリ(libdbus-1-dev)
シンプルなプロセス間メッセージングシステム (開発用ヘッダ)
D-Busは複数のプログラム同士で情報をやり取りするためのプログラム
Glib(libglib2.0-dev) glibライブラリ(v2.0)
cURL(libcurl4-openssl-dev)
Zlib(zlib1g-dev) Zilb圧縮ライブラリ
OpenSSL(libssl-dev)
ProtocolBuffers&GoogleC++TestingFramWork(protobuf-compiler,libprotobuf-dev,libgtest-dev)
Googleの配布するソフトウェアを動作させるときに必要なライブラリ
zinnia(libzinnia-dev) オンライン手書き文字認識エンジン
Qt4(libqt4-dev) Qt4ライブラリ
GYP (Generate Your Projects)) 自動ビルドツール
IBusのライブラリ(libibus-dev) IBusのライブラリ
SCIMのライブラリ(libscim-dev) scimのライブラリ
Fcitxのライブラリ(fcitx-libs-dev) Fcitxのライブラリ
2)ビルド
Ubuntu12.04のMozcのソースパッケージのページから"mozc_1.3.975.102.orig.tar.gz"をダウンロードして展開(ここでは~/に展開したとする)
root環境で動作するようにする為
"~/mozc-1.3.975.102/base/run_level.cc"の276行目から303行目までを削除
// Linux or Mac
if (type == SERVER || type == RENDERER) {
if (::geteuid() == 0) {
// This process is started by root, or the executable is setuid to root.
// TODO(yusukes): It would be better to add 'SAFE' run-level which
// prohibits all mutable operations to local resources and return the
// level after calling chroot("/somewhere/safe"), setgid("nogroup"),
// and setuid("nobody") here. This is because many novice Linux users
// tend to login to their desktop as root.
return RunLevel::DENY;
}
if (::getuid() == 0) {
// The executable is setuided to non-root and is started by root user?
// This is unexpected. Returns DENY.
return RunLevel::DENY;
}
return RunLevel::NORMAL;
}
// type is 'CLIENT'
if (::geteuid() == 0 || ::getuid() == 0) {
// When mozc.so is loaded into a privileged process, deny clients to use
// dictionary_tool and config_dialog.
return RunLevel::DENY;
削除後の275行目から279行目までが以下のようになっていればいい
275 #else
276
277 return RunLevel::NORMAL;
278
279 #endif
以下のコマンドを実行、最後がDoneで終わっていることを確認
# cd ~/mozc-1.3.975.102
# python build_mozc.py gyp
次のコマンドを実行、エラーが出ず終わっていることを確認
# python build_mozc.py build_tools -c Release
次のコマンドを実行、エラーが出ず終わっていることを確認
# python build_mozc.py build -c Release unix/scim/scim.gyp:scim_mozc unix/scim/scim.gyp:scim_mozc_setup server/server.gyp:mozc_server gui/gui.gyp:mozc_tool
(※上記の'scim'はインプットメソッドフレームワークに置き換え)
次のコマンドを実行でファイルを出力
# cp out_linux/Release/lib.target/libscim_mozc.so /usr/lib/scim-1.0/1.4.0/IMEngine/mozc.so
# cp out_linux/Release/lib.target/libscim_mozc_setup.so /usr/lib/scim-1.0/1.4.0/SetupUI/mozc-setup.so
# mkdir /usr/lib/mozc/
# cp out_linux/Release/mozc_server /usr/lib/mozc
# cp out_linux/Release/mozc_tool /usr/lib/mozc
# rename ui scim-mozc data/images/unix/*
# cp data/images/unix/* /usr/share/scim/icons/