本日の野良リポジトリ (2015-12-28)
下記のパッケージを nora セクションに投入しました。
- fcitx-4.2.9.1-2
-
- 後述の /usr/bin/gtk-query-immodules-2.0 に関する問題への対応を行いました。
- ibus-1.5.11-6.git20151104
-
- 後述の /usr/bin/gtk-query-immodules-2.0 に関する問題への対応を行いました。
- uim-1.8.6-6
-
- 後述の /usr/bin/gtk-query-immodules-2.0 に関する問題への対応を行いました。
- anthy 用のモジュールを uim-anthy として分離しました。
- kde4 のパネル用アプレットを uim-kde4 として分離しました。
- scim-1.4.15-0.2
-
- ソースを 1.4.15 へ更新しました。
- 後述の /usr/bin/gtk-query-immodules-2.0 に関する問題への対応を行いました。
- scim-bridge-0.4.16-3.2
-
- scim-1.4.15 を用いてビルドしました。
- 後述の /usr/bin/gtk-query-immodules-2.0 に関する問題への対応を行いました。
- scim-anthy-1.2.7-3.1
-
- scim-1.4.15 を用いてビルドしました。
【 /usr/bin/gtk-query-immodules-2.0 の typo について 】
各インプットメソッドの野良パッケージの動作確認を行っている過程で、
/usr/bin/gtk-query-immodules-2.0
に重大な typo があることを発見しました。
この /usr/bin/gtk-query-immodules-2.0 自体はシェルスクリプトで、システムが 32bit なのか 64bit なのかを判定してそれぞれの gtk-query-immodules-2.0 を実行するものです。
gtk-query-immodules-2.0 の実体は %{_libdir}/gtk-2.0/bin/ 下に存在しています。
--- /usr/bin/gtk-query-immodules-2.0.orig +++ /usr/bin/gtk-query-immodules-2.0 @@ -5,8 +5,8 @@ EC64=$? fi EC32=0 -if [ -x /usr/lib/gtk-2.0bin/gtk-query-immodules-2.0 ]; then - /usr/lib/gtk-2.0bin/gtk-query-immodules-2.0 "$@" +if [ -x /usr/lib/gtk-2.0/bin/gtk-query-immodules-2.0 ]; then + /usr/lib/gtk-2.0/bin/gtk-query-immodules-2.0 "$@" EC32=$? fi if [ "$EC64" = "0" ]; then
ご覧のように 32bit 版用の処理の部分で / が1つ抜けている為に path が不正となり、32bit 版では実体の /usr/lib/gtk-2.0/bin/gtk-query-immodules-2.0 が実行されません。
この /usr/bin/gtk-query-immodules-2.0 は ibus, fcitx などの各インプットメソッドにとって重要なスクリプトです。
各インプットメソッドの gtk2 用のモジュールはそのインストール時の後処理において
/usr/bin/gtk-query-immodules-2.0 --update-cache
を実行しています。これを実行しておかないと gtk2 アプリ上でそのインプットメソッドが動作しないからです。
しかるに /usr/bin/gtk-query-immodules-2.0 のこの typo により 32bit 版では実際には gtk-query-immodules-2.0 が実行されておらず、新たにインプットメソッドをインストールした場合、gtk2 アプリ上で日本語入力が出来ないという問題が発生します。
本日野良リポジトリに投入した fcitx, ibus, scim, scim-bridge, uim の各インプットメソッドのパッケージではこの問題に対応する為に、gtk2 用のモジュールのインストール後処理において、実体である %{_libdir}/gtk-2.0/bin/gtk-query-immodules-2.0 を直接実行するようにしています。