en_US.UTF-8 可以執行,但使用 zh_TW.UTF-8 中文桌面卻無法執行,會彈出 "Unknown file type" 視窗。因此,還是使用 gcin-1.5.1,只是無法支援陸生習慣的輸入法。
[dywang@dywH ~]$ cd rpmbuild [dywang@dywH rpmbuild]$ wget ftp://mirror.switch.ch/pool/1/mirror/epel/beta/6/SRPMS/gcin-1.5.1-1.el6.src.rpm
[dywang@dywH rpmbuild]$ rpm -ivh gcin-1.5.1-1.el6.src.rpm
[dywang@dywH rpmbuild]$ cd SOURCE [dywang@dywH SOURCES]$ ll total 4408 -rw-r--r--. 1 mockbuild mockbuild 748 May 5 2010 configure.patch -rw-r--r--. 1 mockbuild mockbuild 709 Oct 21 2008 gcin-1.4.2-gtk-immodules-lang.patch -rw-rw-r--. 1 mockbuild mockbuild 2827298 Jun 23 2010 gcin-1.5.1.tar.bz2 -rw-r--r--. 1 mockbuild mockbuild 179 Nov 24 2009 gcin.conf -rw-r--r--. 1 mockbuild mockbuild 888 Jan 5 2010 gcin_gtab.patch -rw-r--r--. 1 mockbuild mockbuild 20290 Sep 8 2006 gcinicon.tgz -rw-r--r--. 1 mockbuild mockbuild 5833 Jul 8 2010 gtk-deprecated.patch -rw-r--r--. 1 mockbuild mockbuild 5584 Jul 8 2010 im-client.patch -rw-r--r--. 1 mockbuild mockbuild 1621854 Apr 17 2007 NewCJ3.cin -rw-r--r--. 1 mockbuild mockbuild 533 Feb 4 2009 newcj3.patch -rw-r--r--. 1 mockbuild mockbuild 1644 Jul 8 2010 qt.patch
[dywang@dywH SOURCES]$ tar jxvf gcin-1.5.1.tar.bz2
[dywang@dywH SOURCES]$ cd gcin-1.5.1 [dywang@dywH gcin-1.5.1]$ ls about.cpp gtab.cpp scripts anthy.cpp gtab-dbg.cpp setup-rpm a.txt gtab.h sim2trad.cpp .......... gcin-endian.h juyin-learn.cpp tslearn.cpp gcin-exec-script.cpp kbmcv.cpp tutf8 gcin_filter locale.cpp tval gcin-gb-toggle.cpp Makefile txim gcin.h man unix-exec.cpp gcin-icon.cpp menu util.cpp gcin-kbm-toggle.cpp mitem.h VERSION.gcin gcin-message.cpp os-dep.h win0.cpp ..........
[dywang@dywH SOURCES]$ diff -uN ../tmp/gcin.spec ../SPECS/gcin.spec
--- ../tmp/gcin.spec 2010-07-08 16:49:35.000000000 +0800
+++ ../SPECS/gcin.spec 2015-09-07 07:07:32.505233444 +0800
@@ -1,6 +1,6 @@
Name: gcin
Version: 1.5.1
-Release: 1%{?dist}
+Release: 1%{?dist}.dyw
Summary: Input method for Traditional Chinese
Group: System Environment/Libraries
@@ -76,6 +76,28 @@
%post
/sbin/ldconfig
+# For upgrades, the cache will be regenerated by the new package's %%postun
+mkdir /etc/gtk-2.0/%{_arch}-unknown-linux-gnu 2>/dev/null
+file="/etc/gtk-2.0/%{_arch}-unknown-linux-gnu/gtk.immodules"
+gtk-query-immodules-2.0-%{__isa_bits} > $file || :
+if ! grep -q "im-gcin.so" $file; then
+ echo "\"/usr/lib64/gtk-2.0/immodules/im-gcin.so\"" >> $file
+ echo "\"gcin\" \"gcin Input Method\" \"gcin\" \"/usr/share/locale\" \"*\"" >> $file
+fi
+
+gd="/etc/X11/xinit/xinput.d"
+cd $gd
+gf="/etc/X11/xinit/xinput.d/gcin.conf"
+ln -sf $gd/gcin.conf /etc/alternatives/xinputrc
+[ ! -e none.conf.orig -a ! -L none.conf ] && mv none.conf none.conf.orig
+ln -sf gcin.conf none.conf
+sed -i 's/^\(XIM_ARGS=\"\).*$/\1LC_CTYPE=zh_TW.UTF-8 -x gcin\"/' $gf
+gtk-query-immodules-2.0-%{__isa_bits} --update-cache
%{_bindir}/update-gtk-immodules %{_host} >/dev/null 2>&1 || :
update-desktop-database %{_datadir}/applications >/dev/null 2>&1 || :
%{_sbindir}/alternatives --install %{_sysconfdir}/X11/xinit/xinputrc \
xinputrc %{_sysconfdir}/X11/xinit/xinput.d/gcin.conf 40
[dywang@dywH SOURCES]$ diff -uN ../tmp/gcin-1.5.1/gcin-settings.cpp gcin-1.5.1/gcin-settings.cpp
--- ../tmp/gcin-1.5.1/gcin-settings.cpp 2010-06-19 13:54:02.000000000 +0800
+++ gcin-1.5.1/gcin-settings.cpp 2015-09-07 08:59:30.875230520 +0800
@@ -63,17 +63,17 @@
void load_setttings()
{
- gcin_font_size = get_gcin_conf_int(GCIN_FONT_SIZE, 16);
+ gcin_font_size = get_gcin_conf_int(GCIN_FONT_SIZE, 11);
#if UNIX
get_gcin_conf_str(GCIN_FONT_NAME, &gcin_font_name, "sans");
#else
get_gcin_conf_str(GCIN_FONT_NAME, &gcin_font_name, "MingLiU");
#endif
- gcin_font_size_tsin_presel = get_gcin_conf_int(GCIN_FONT_SIZE_TSIN_PRESEL, 16);
- gcin_font_size_symbol = get_gcin_conf_int(GCIN_FONT_SIZE_SYMBOL, 12);
+ gcin_font_size_tsin_presel = get_gcin_conf_int(GCIN_FONT_SIZE_TSIN_PRESEL, 11);
+ gcin_font_size_symbol = get_gcin_conf_int(GCIN_FONT_SIZE_SYMBOL, 11);
gcin_font_size_tsin_pho_in = get_gcin_conf_int(GCIN_FONT_SIZE_TSIN_PHO_IN, 10);
gcin_font_size_gtab_in = get_gcin_conf_int(GCIN_FONT_SIZE_GTAB_IN, 10);
- gcin_font_size_pho_near = get_gcin_conf_int(GCIN_FONT_SIZE_PHO_NEAR, 14);
+ gcin_font_size_pho_near = get_gcin_conf_int(GCIN_FONT_SIZE_PHO_NEAR, 11);
gcin_input_style = get_gcin_conf_int(GCIN_INPUT_STYLE, InputStyleOverSpot);
gcin_root_x = get_gcin_conf_int(GCIN_ROOT_X, 2000);
gcin_root_y = get_gcin_conf_int(GCIN_ROOT_Y, 2000);
[root@dywH ~]# echo '2147483647-\ 2^0-2^1-2^4-2^5-2^7-2^8-2^9-2^10-2^12-2^13-2^14-2^15' | bc 2147420236 [root@dywH ~]# echo 'obase=16; 2147483647-\ 2^0-2^1-2^4-2^5-2^7-2^8-2^9-2^10-2^12-2^13-2^14-2^15' | bc 7FFF084C [root@dywH ~]#
@@ -86,12 +86,12 @@ gcin_init_im_enabled = true; #endif - gcin_flags_im_enabled = get_gcin_conf_int(GCIN_FLAGS_IM_ENABLED,0x7fffffff); + gcin_flags_im_enabled = get_gcin_conf_int(GCIN_FLAGS_IM_ENABLED,0x7FFF084C); gcin_remote_client = get_gcin_conf_int(GCIN_REMOTE_CLIENT, 0); gcin_shift_space_eng_full = get_gcin_conf_int(GCIN_SHIFT_SPACE_ENG_FULL, 1); gcin_capslock_lower = get_gcin_conf_int(GCIN_CAPSLOCK_LOWER, 1);
- default_input_method = get_gcin_conf_int(DEFAULT_INPUT_METHOD, 6); + default_input_method = get_gcin_conf_int(DEFAULT_INPUT_METHOD, 2); left_right_button_tips = get_gcin_conf_int(LEFT_RIGHT_BUTTON_TIPS, 1); gcin_im_toggle_keys = get_gcin_conf_int(GCIN_IM_TOGGLE_KEYS, 0); #if TRAY_ENABLED
@@ -106,7 +106,7 @@ gtab_dup_select_bell = get_gcin_conf_int(GTAB_DUP_SELECT_BELL, 0); gtab_space_auto_first = get_gcin_conf_int(GTAB_SPACE_AUTO_FIRST, GTAB_space_auto_first_none); - gtab_auto_select_by_phrase = get_gcin_conf_int(GTAB_AUTO_SELECT_BY_PHRASE, GTAB_AUTO_SELECT_BY_PHRASE_AUTO); + gtab_auto_select_by_phrase = get_gcin_conf_int(GTAB_AUTO_SELECT_BY_PHRASE, GTAB_AUTO_SELECT_BY_PHRASE_NO); gtab_pre_select = get_gcin_conf_int(GTAB_PRE_SELECT, 1); gtab_press_full_auto_send = get_gcin_conf_int(GTAB_PRESS_FULL_AUTO_SEND, 1); gtab_disp_partial_match = get_gcin_conf_int(GTAB_DISP_PARTIAL_MATCH, 1);
@@ -117,7 +117,7 @@ gtab_hide_row2 = get_gcin_conf_int(GTAB_HIDE_ROW2, 0); gtab_in_row1 = get_gcin_conf_int(GTAB_IN_ROW1, 0); gtab_capslock_in_eng = get_gcin_conf_int(GTAB_CAPSLOCK_IN_ENG, 1); - gtab_vertical_select = get_gcin_conf_int(GTAB_VERTICAL_SELECT, 0); + gtab_vertical_select = get_gcin_conf_int(GTAB_VERTICAL_SELECT, 1); gtab_unique_auto_send = get_gcin_conf_int(GTAB_UNIQUE_AUTO_SEND, 0); gtab_que_wild_card = get_gcin_conf_int(GTAB_QUE_WILD_CARD, 0);
[dywang@dywH SOURCES]$ tar jcvf gcin-1.5.1.tar.bz2 gcin-1.5.1
[dywang@dywH SOURCES]$ rpmbuild -ba --clean --target=$(uname -m) ../SPECS/gcin.spec Building target platforms: x86_64 Building for target x86_64 error: Failed build dependencies: qt3-devel is needed by gcin-1.5.1-1.el6.dyw.x86_64 libXtst-devel is needed by gcin-1.5.1-1.el6.dyw.x86_64 anthy-devel is needed by gcin-1.5.1-1.el6.dyw.x86_64
[dywang@dywH SOURCES]$ sudo yum install libXtst-devel anthy-devel qt3-devel
[dywang@dywH SOURCES]$ rpmbuild -bb --target=$(uname -m) ../SPECS/gcin.spec
[dywang@dywH SOURCES]$ ll ../RPMS/x86_64/ total 3592 -rw-r--r--. 1 dywang dywang 3676583 Jul 31 10:44 gcin-1.5.1-1.el6.dyw.x86_64.rpm [dywang@dywH SOURCES]$ ll ../SRPMS/x86_64/ ls: cannot access ../SRPMS/x86_64/: No such file or directory
[dywang@dywH SOURCES]$ rpmbuild -bs --target=$(uname -m) ../SPECS/gcin.spec Building target platforms: x86_64 Building for target x86_64 Wrote: /root/rpmbuild/SRPMS/gcin-1.5.1-1.el6.dyw.src.rpm [dywang@dywH SOURCES]$ ll ../SRPMS/ total 3564 -rw-r--r--. 1 dywang dywang 3648959 Jul 31 10:50 gcin-1.5.1-1.el6.dyw.src.rpm
[dywang@dywH SOURCES]$ rpmbuild -ba --clean --target=$(uname -m) ../SPECS/gcin.spec