2007/01/06

RedHat Enterprise Linux 4 で scim-skk を使う

今日はRHEL4 (RedHat Enterprise Linux 4)でskkを使う方法を試してみました。
既にRHEL5betaではscimが含まれているし、RHEL4でscim+anthyを使う方法は簡単になっている。(SCIM Packages for RHEL4)

この投稿もRHEL4+Firefox+scim-skkの組み合わせで書いています。
カスタマイズしていないiiimf-cannaよりはとんでもない変換をする事もなく、とても快適になりました。 これは慣れの問題ですね。ATOKがない環境では作業にならない人もいますし。

scimの導入はSCIM Packages for RHEL4に従って、scim-anthyを導入した後で、OpenSuseのRPMを元にscim-skk 0.5.2のRPMを作りました。これは多少苦労しましたが、出来たRPMを導入してanthyからscim-skkに切り替えてもまともに動かない…。 gnome-terminalでC-jやEnterで変換が確定できず、その他の挙動もおかしかったのです。

参考にしたvmware上のUbuntu 6.06.1 LTSではちゃんと動いていたので、dpkgでパッケージを確認すると、ubuntuではscim-skkの0.5.1を使っていました。
Googleで検索すると0.5.2で同じような問題を経験した例もあったので、0.5.1のRPMを改めて作り直しました。

scim-skkのRPMを作ろう

編集したspecファイルを元に"rpmbuild -bb"でx86_64をターゲットにビルドしたけれど、"gtk_combo_box_get_active_text" が未定義というエラーがでてうまくいかない。

マニュアルではgtk+-2.0のgtk/gtk.hで定義されているようだったけれど、同じような事で"my_gtk_combo_box_get_active_text" を作っている人がいたので、それをそのままパクって"scim_skk_setup_dictionaries.cpp" 内で static関数として定義して作った。

ちなみに編集した0.5.1用のspecファイルと元のOpenSuse用との差分は以下の通り。
これは新しいスタイルシートのテスト。端末から入力した文字列を表します。

$ diff -u scim-skk.spec.20070105 scim-skk.spec
こちらも新しく作成したコードを表示するためのスタイルシートのテスト。
--- scim-skk.spec.20070105      2006-05-02 20:22:00.000000000 +0900
+++ scim-skk.spec       2007-01-05 12:29:23.000000000 +0900
@@ -8,44 +8,40 @@
 # Please submit bugfixes or comments via http://bugs.opensuse.org/
 #

-# norootforbuild
-# usedforbuild    Mesa Mesa-devel aaa_base acl anthy anthy-devel atk atk-devel attr audit-libs autoconf automake bash bind-libs bind-utils binutils bison bzip2 cairo cairo-devel coreutils cpio cpp cracklib cvs cyrus-sasl db desktop-translations diffutils e2fsprogs expat file filesystem fillup findutils flex fontconfig fontconfig-devel freetype2 freetype2-devel gawk gcc gcc-c++ gconf2 gdbm gdbm-devel gettext gettext-devel glib2 glib2-devel glibc glibc-devel glibc-locale glitz glitz-devel gnome-filesystem gpm grep groff gtk2 gtk2-devel gzip info insserv klogd less libacl libattr libcom_err libdrm libgcc libjpeg libnscd libpng libpng-devel libstdc++ libstdc++-devel libtool libxcrypt libxml2 libzio m4 make man mktemp module-init-tools ncurses ncurses-devel net-tools netcfg openldap2-client openmotif-libs openssl orbit2 pam pam-modules pango pango-devel patch perl permissions pkgconfig popt
procinfo procps psmisc pwdutils rcs readline rpm scim scim-devel sed strace sysvinit tar tcpd texinfo timezone unzip update-desktop-files util-linux vim xorg-x11-devel xorg-x11-libs zlib zlib-devel
-
 Name:           scim-skk
-BuildRequires:  anthy-devel gcc-c++ gtk2-devel scim-devel update-desktop-files
-Version:        0.5.2
-Release:        14
+BuildRequires:  anthy-devel gcc-c++ gtk2-devel scim-devel
+Version:        0.5.1
+Release:        1
 License:        GPL
 Group:          System/I18n/Japanese
 Autoreqprov:    on
 Requires:       skkdic
 Provides:       locale(scim:ja)
 URL:            http://sourceforge.jp/projects/scim-imengine/
-Source0:        http://osdn.dl.sourceforge.jp/scim-imengine/15351/scim-skk-0.5.2.tar.bz2
+Source0:        http://osdn.dl.sourceforge.jp/scim-imengine/15351/scim-skk-0.5.1.tar.gz
 Patch0:         commit-when-focus-out.patch
 Patch1:         libtool-options.patch
+Patch2:                scim-skk-0.5.1.missing_combobox.diff
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
 Summary:        SKK Input Method Engine for SCIM

 %description
 SKK Input Method Engine for SCIM

-
-
 Authors:
 --------
     Jun Mukai 

-%debug_package
 %prep
 %define build_setup     1
 %setup -q -n %{name}-%{version}
 %patch0 -p0
 %patch1 -p0
+%patch2 -p1

 %build
 libtoolize --force
-autoreconf -I /opt/gnome/share/aclocal --force --install --verbose
+autoreconf -I /usr/share/aclocal --force --install --verbose
 CXXFLAGS="$RPM_OPT_FLAGS"
 ./configure --prefix=/usr              --sysconfdir=%{_sysconfdir} @@ -67,17 +63,21 @@
 %files -f scim-skk.lang
 %defattr(-, root, root)
 %doc AUTHORS COPYING NEWS README* ChangeLog TODO
-%dir %{_libdir}/scim-1.0/
-%dir %{_libdir}/scim-1.0/IMEngine/
-%{_libdir}/scim-1.0/IMEngine/skk.so
+%dir %{_libdir}/scim-1.0/1.4.0
+%dir %{_libdir}/scim-1.0/1.4.0/IMEngine/
+%{_libdir}/scim-1.0/1.4.0/IMEngine/skk.so
+%{_libdir}/scim-1.0/1.4.0/IMEngine/skk.la
 %if %{build_setup}
-%dir %{_libdir}/scim-1.0/SetupUI/
-%{_libdir}/scim-1.0/SetupUI/skk-imengine-setup.so
+%dir %{_libdir}/scim-1.0/1.4.0/SetupUI/
+%{_libdir}/scim-1.0/1.4.0/SetupUI/skk-imengine-setup.so
+%{_libdir}/scim-1.0/1.4.0/SetupUI/skk-imengine-setup.la
 %endif
 %dir %{_datadir}/scim/icons/
 %{_datadir}/scim/icons/scim-skk.png

使い勝手

いまのところscim-skkはだいたいうまく動いている。
少なくともアプリケーションを道づれに異常終了する事はないです。

けれども、JavaベースのFreeMindでは変換ができなくなってプロセスを再起動したり、C-jで変換を確定させようとしてFirefoxで右上の検索ボックスにフォーカスが当る事があります。
このscim-skkもしばらくは学習が必要なので、こういう文章を入力している内に使い易くなることでしょう。 skkが使えない事でRHEL5まで待つか、Ubuntuに乗り換えるか迷っていたので、しばらくメインマシンはRHEL4ベース、周辺のサーバー群はUbuntuという構成になりそうです。

その他

お正月休みを利用して家の環境やらbloggerのスタイルシートに手を加えたりしていました。
今年も家族や友人たちが健康で過せる一年であるように祈るばかりです。

0 件のコメント: