【 Topics 】

ブログを引っ越しました。こちらのブログは現状のまま凍結します。(2020年10月14日)

引越し先: Operation Normal ? (v2)(同一サイト内です)

本日の野良リポジトリ (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 を直接実行するようにしています。

PCLinuxOS | comments (0) | -