Google日本語入力Mozcのビルド

2018年3月2日金曜日

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/

Copyright © 2010 休眠 | Free Blogger Templates by Splashy Templates | Layout by Atomic Website Templates