[dywang@dywH ~]$ cd rpmbuild [dywang@dywH rpmbuild]$ wget ftp://ftp.pbone.net/mirror/ftp5.gwdg.de/pub/opensuse/\ repositories/home%3A/swyear%3A/gcin-fedora/CentOS_CentOS-6/src/gcin-2.7.4-1.3.src.rpm
[dywang@dywH rpmbuild]$ rpm -ivh gcin-2.7.4-1.3.src.rpm
[dywang@dywH rpmbuild]$ cd SOURCE [dywang@dywH SOURCES]$ ls gcin-2.*z gcin-2.7.4.tar.xz
[dywang@dywH SOURCES]$ tar xf gcin-2.7.4.tar.xz
[dywang@dywH SOURCES]$ cd gcin-2.7.4 [dywang@dywH gcin-2.7.4]$ ls about.cpp gtab-buf.h qt-im a.txt gtab.cpp README.html AUTHORS gtab-dbg.cpp regression.txt bak gtab.h scripts cache.cpp gtab-init.cpp setup-rpm Changelog.html gtab-list.cpp sim2trad.cpp config.h gtab-list.h statistic.cpp configure gtab-merge.cpp suffixes-rule COPYING gtab-phrase-db.h t2s-file.h data gtab-tsin-fname.cpp t2s-lookup.cpp eggtrayicon.cpp gtab-use-count.cpp table-update.cpp eggtrayicon.h gtab-util.cpp tchs eve.cpp gtk3-im tenv fullchar.cpp gtk_bug_fix.c tenvq gcb.cpp gtk-im tgdb gcin2tab.cpp html-browser.cpp tray.cpp gcin-common.cpp IC.cpp tray-win32.cpp gcin-conf.cpp IC.h tsa2d32.cpp gcin-conf.h icons tscr gcin.cpp im-addr.cpp tsd2a32.cpp gcin-crypt.cpp im-client ts-download.cpp gcin-endian.h im-dispatch.cpp ts-edit.cpp gcin-exec-script.cpp IMdkit tsin2gtab-phrase.cpp gcin-exit.cpp im-srv.cpp tsin-char.cpp gcin-fedora.spec im-srv.h tsin.cpp gcin-fedora.spec.in juyin-learn.cpp tsin.h gcin_filter kbmcv.cpp tsin-parse.cpp gcin-gb-toggle.cpp lang.cpp tsin-parse.h gcin-gtk-compatible.h lang.h tsin-scan.cpp gcin.h Licnese.txt tsin-util.cpp gcin-icon.cpp locale.cpp tslearn.cpp gcin-kbm-toggle.cpp Makefile ts-share.h gcin-message.cpp man ts-upload.cpp gcin-module-cb.cpp menu tutf8 gcin-module-cb.h mitem.h tval gcin-module.cpp modules txim gcin-module.h os-dep.h unix-exec.cpp gcin.png pho2pinyin.cpp util.cpp gcin-send.cpp phoa2d.cpp util.h gcin-settings.cpp pho.cpp VERSION.gcin gcin-setup.cpp phod2a.cpp win0.cpp gcin-setup-gtab.cpp pho-dbg.cpp win1.cpp gcin-setup-list.cpp pho.h win1.h gcin-setup-pho.cpp pho-kbm-name.cpp win32-utf8-signature.txt gcin.spec.in pho-kbm-name.h win-gtab.cpp gcin-state.h pho-lookup.cpp win-inmd-switch.cpp gcin.test pho-play.cpp win-kbm.cpp gcin-version.h pho-status.h win-message.cpp gen-deb pho-sym.cpp win-pho.cpp gen-dist pho-util.cpp win-pho-near.cpp gen-fedora phrase.cpp win-save-phrase.cpp gen-unix phrase-save-menu.cpp win-save-phrase.h gen-win32 pin-juyin.cpp win-sym.cpp gen-win32-tsin pinyin.cpp win-sym.h gst.h po gtab-buf.cpp qt4-im
[dywang@dywH SOURCES]$ vim ../SPECS/gcin.spec
Release: 1.3.dyw
.......
%post gtk2
if [ $1 -eq 1 ] ; then
# For upgrades, the cache will be regenerated by the new package's %%postun
file="/etc/gtk-2.0/%{_arch}-unknown-linux-gnu/gtk.immodules"
gtk-query-immodules-2.0-%{__isa_bits} > $file || :
if ! grep "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
grep '^pkill gcin' /etc/gdm/PreSession/Default
[ $? -ne 0 ] && echo 'pkill gcin' >> /etc/gdm/PreSession/Default
sed -i 's/^\(XIM_ARGS=\"\)/\1C_CTYPE=zh_TW.UTF-8\ /' $gf
fi
.......
%postun gtk2
gtk-query-immodules-2.0-%{__isa_bits} > /etc/gtk-2.0/%{_arch}-unknown-linux-gnu/gtk.immodules || :
.......
[dywang@dywH gcin-2.7.4]$ diff -uN ../gcin-2.7.4.orig/gcin-settings.cpp gcin-settings.cpp --- ../gcin-2.7.4.orig/gcin-settings.cpp 2011-12-31 15:47:58.000000000 +0800 +++ gcin-settings.cpp 2015-03-20 09:48:21.705148031 +0800 @@ -71,17 +71,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, 12);
#if UNIX || 1
get_gcin_conf_str(GCIN_FONT_NAME, &gcin_font_name, "Sans");
#else
get_gcin_conf_str(GCIN_FONT_NAME, &gcin_font_name, "MingLiU Bold");
#endif
- gcin_font_size_tsin_presel = get_gcin_conf_int(GCIN_FONT_SIZE_TSIN_PRESEL, 16);
+ gcin_font_size_tsin_presel = get_gcin_conf_int(GCIN_FONT_SIZE_TSIN_PRESEL, 12);
gcin_font_size_symbol = get_gcin_conf_int(GCIN_FONT_SIZE_SYMBOL, 12);
- gcin_font_size_tsin_pho_in = get_gcin_conf_int(GCIN_FONT_SIZE_TSIN_PHO_IN, 13);
+ gcin_font_size_tsin_pho_in = get_gcin_conf_int(GCIN_FONT_SIZE_TSIN_PHO_IN, 12);
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, 12);
gcin_font_size_win_kbm = get_gcin_conf_int(GCIN_FONT_SIZE_WIN_KBM, 10);
gcin_font_size_win_kbm_en = get_gcin_conf_int(GCIN_FONT_SIZE_WIN_KBM_EN, 8);
gcin_input_style = get_gcin_conf_int(GCIN_INPUT_STYLE, InputStyleOverSpot);
@@ -92,7 +92,7 @@ gcin_eng_phrase_enabled = get_gcin_conf_int(GCIN_ENG_PHRASE_ENABLED, 1); gcin_tray_hf_win_kbm = get_gcin_conf_int(GCIN_TRAY_HF_WIN_KBM, 0); #if UNIX - gcin_init_im_enabled = get_gcin_conf_int(GCIN_INIT_IM_ENABLED, 1); + gcin_init_im_enabled = get_gcin_conf_int(GCIN_INIT_IM_ENABLED, 0); #else
[dywang@dywH ~]$ cd rpmbuild/SOURCES/gcin-2.7.4 [dywang@dywH gcin-2.7.4]$ cat data/gtab.list EN e !EN gcin-tray.png #####符號輸出類######### # ↓↓↓ ~/.gcin/symbol-table 符號表 4 !SYMBOL_TABLE symbol_table.png 符號小鍵盤 , symbols.gtab symbols.png #####注音/拼音類######### 注音 3 !PHO juyin.png 詞音/拼音 6 !TSIN tsin.png !新酷音 [ chewing-module.so chewing.png #拼音 5 pinyin.gtab pinyin.png # gtab 拼音現在不用了,改用詞音的拼音 #####倉頡類######### 倉頡 1 cj.gtab cj.png #標點倉頡 4 cj-punc.gtab cj-punc.png 倉五 2 cj5.gtab cj5.png 亂倉打鳥 \ NewCJ3.gtab NewCJ3.png 五四三倉頡 2 cj543.gtab cj543.png #五四三倉頡會由詞庫自動選字 http://hyperrate.com/thread.php?tid=12828 速成/簡易 - simplex.gtab simplex.png 標點簡易 - simplex-punc.gtab simplex-punc.png #####大易類######### 大易 7 dayi3.gtab dayi3.png #大易 7 gdayi3.gtab dayi3.png #####行列類######### 行列 8 ar30.gtab ar30.png 行列大字集 8 ar30-big.gtab ar30-big.png 行列33 8 ar33.gtab ar33.png 行列符號 8 array-symbols.gtab array-symbols.png #####其他類######### 嘸蝦米 9 noseeing.gtab noseeing.png 帶調粵拼 ] jyutping.gtab jyutping.png 內碼 0 intcode-module.so intcode.png #輕鬆 2 ez7.gtab #####外語類######### !日本anthy = anthy-module.so kana-nippon.png hangul / hangul.gtab hangul.png greek ` greek.gtab greek.png latin-letters [ latin-letters.gtab latin-letters.png En-words [ vocabulary.gtab vocabulary.png russian ? russian.gtab russian.png ### russian by yuriy
Ctrl-Shift 循環 啟動幾乎包含所有輸入法,其中 1 表示倉頡,2 表示倉五及,3 表示注音,如前述對應表。修改後僅保留 123678- 部分常用輸入法。
@@ -101,12 +101,12 @@ gcin_punc_auto_send = get_gcin_conf_int(GCIN_PUNC_AUTO_SEND, 1); - get_gcin_conf_str(GCIN_STR_IM_CYCLE, &gcin_str_im_cycle, "1234567890-=[]\\"); + get_gcin_conf_str(GCIN_STR_IM_CYCLE, &gcin_str_im_cycle, "123678-"); 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);
Ctrl-Shift 循環 啟動第一次內定由詞音改為倉頡五輸入法。
- get_gcin_conf_str(DEFAULT_INPUT_METHOD, &default_input_method_str, "6"); + get_gcin_conf_str(DEFAULT_INPUT_METHOD, &default_input_method_str, "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
@@ -195,7 +195,7 @@
gcin_edit_display = get_gcin_conf_int(GCIN_EDIT_DISPLAY, GCIN_EDIT_DISPLAY_OVER_THE_SPOT);
#endif
- gcin_on_the_spot_key = get_gcin_conf_int(GCIN_ON_THE_SPOT_KEY, 1);
+ gcin_on_the_spot_key = get_gcin_conf_int(GCIN_ON_THE_SPOT_KEY, 0);
if (gcin_on_the_spot_key)
gcin_edit_display = GCIN_EDIT_DISPLAY_ON_THE_SPOT;
@@ -211,7 +211,7 @@
else
#endif
{
- char *kbm_str = is_chs?"pinyin "N1234" 1 1":"zo "N1234" 1 1";
+ char *kbm_str = is_chs?"pinyin "N1234" 1 1":"pinyin-no-tone "N1234" 1 1";
get_gcin_conf_fstr(PHONETIC_KEYBOARD, phokbm, kbm_str);
}
[dywang@dywH SOURCES]$ rpmbuild -bb --target=$(uname -m) ../SPECS/gcin.spec Building target platforms: x86_64 Building for target x86_64 error: Failed build dependencies: qt-devel is needed by gcin-2.7.4-1.3.dyw.x86_64 gtk2-devel is needed by gcin-2.7.4-1.3.dyw.x86_64 libXtst-devel is needed by gcin-2.7.4-1.3.dyw.x86_64 anthy-devel is needed by gcin-2.7.4-1.3.dyw.x86_64
[dywang@dywH SOURCES]$ yum install qt-devel gtk2-devel libXtst-devel anthy-devel
...................
/usr/lib/gcc/x86_64-redhat-linux/4.4.4/../../../../lib64/libgdk-x11-2.0.so: undefined reference to `_XGetRequest'
collect2: ld returned 1 exit status
make: *** [gcin] Error 1
error: Bad exit status from /var/tmp/rpm-tmp.AqAfaH (%build)
RPM build errors:
Bad exit status from /var/tmp/rpm-tmp.AqAfaH (%build)
[dywang@dywH SOURCES]$ ldd -r -d /usr/lib/gcc/x86_64-redhat-linux/4.4.4/../../../../lib64/libgdk-x11-2.0.so linux-vdso.so.1 => (0x00007fffc15ec000) libpangocairo-1.0.so.0 => /usr/lib64/libpangocairo-1.0.so.0 (0x00007fc680d91000) libpango-1.0.so.0 => /usr/lib64/libpango-1.0.so.0 (0x00007fc680b45000) libfontconfig.so.1 => /usr/lib64/libfontconfig.so.1 (0x00007fc68090f000) libXext.so.6 => /usr/lib64/libXext.so.6 (0x00007fc6806fd000) libXrender.so.1 => /usr/lib64/libXrender.so.1 (0x00007fc6804f3000) libXinerama.so.1 => /usr/lib64/libXinerama.so.1 (0x00007fc6802f0000) libXi.so.6 => /usr/lib64/libXi.so.6 (0x00007fc6800e1000) libXrandr.so.2 => /usr/lib64/libXrandr.so.2 (0x00007fc67fed9000) libXcursor.so.1 => /usr/lib64/libXcursor.so.1 (0x00007fc67fcce000) libXcomposite.so.1 => /usr/lib64/libXcomposite.so.1 (0x00007fc67facc000) libXdamage.so.1 => /usr/lib64/libXdamage.so.1 (0x00007fc67f8ca000) libXfixes.so.3 => /usr/lib64/libXfixes.so.3 (0x00007fc67f6c4000) libcairo.so.2 => /usr/lib64/libcairo.so.2 (0x00007fc67f44b000) libX11.so.6 => /usr/lib64/libX11.so.6 (0x00007fc67f10c000) libgdk_pixbuf-2.0.so.0 => /usr/lib64/libgdk_pixbuf-2.0.so.0 (0x00007fc67eeec000) libgio-2.0.so.0 => /lib64/libgio-2.0.so.0 (0x00007fc67ebdb000) libgobject-2.0.so.0 => /lib64/libgobject-2.0.so.0 (0x00007fc67e98f000) libglib-2.0.so.0 => /lib64/libglib-2.0.so.0 (0x00007fc67e689000) libm.so.6 => /lib64/libm.so.6 (0x00007fc67e405000) libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fc67e1e8000) libc.so.6 => /lib64/libc.so.6 (0x00007fc67de54000) libpangoft2-1.0.so.0 => /usr/lib64/libpangoft2-1.0.so.0 (0x00007fc67dc2a000) libgmodule-2.0.so.0 => /lib64/libgmodule-2.0.so.0 (0x00007fc67da27000) libfreetype.so.6 => /usr/lib64/libfreetype.so.6 (0x00007fc67d78a000) libexpat.so.1 => /lib64/libexpat.so.1 (0x00007fc67d562000) libpixman-1.so.0 => /usr/lib64/libpixman-1.so.0 (0x00007fc67d2d9000) libpng12.so.0 => /usr/lib64/libpng12.so.0 (0x00007fc67d0b3000) libz.so.1 => /lib64/libz.so.1 (0x00007fc67ce9d000) libxcb.so.1 => /usr/lib64/libxcb.so.1 (0x00007fc67cc7e000) libdl.so.2 => /lib64/libdl.so.2 (0x00007fc67ca7a000) libgthread-2.0.so.0 => /lib64/libgthread-2.0.so.0 (0x00007fc67c876000) librt.so.1 => /lib64/librt.so.1 (0x00007fc67c66d000) libresolv.so.2 => /lib64/libresolv.so.2 (0x00007fc67c453000) libselinux.so.1 => /lib64/libselinux.so.1 (0x00007fc67c234000) /lib64/ld-linux-x86-64.so.2 (0x00000034dae00000) libXau.so.6 => /usr/lib64/libXau.so.6 (0x00007fc67c030000) undefined symbol: _XGetRequest (/usr/lib/gcc/x86_64-redhat-linux/4.4.4/../../../../lib64/libgdk-x11-2.0.so)
[dywang@dywH SOURCES]$ rpm -qf /usr/lib64/libgdk-x11-2.0.so gtk2-devel-2.20.1-4.el6.x86_64
[dywang@dywH SOURCES]$ rpm -qa | grep ^gtk2 gtk2-2.20.1-4.el6.x86_64 gtk2-devel-2.20.1-4.el6.x86_64 gtk2-engines-2.18.4-5.el6.dyw.x86_64
[dywang@dywH SOURCES]$ yum downgrade gtk2 gtk2-devel
[dywang@dywH SOURCES]$ rpmbuild -ba --clean --target=$(uname -m) ../SPECS/gcin.spec ................... Wrote: /root/rpmbuild/SRPMS/gcin-2.7.4-1.3.dyw.src.rpm Wrote: /root/rpmbuild/RPMS/x86_64/gcin-2.7.4-1.3.dyw.x86_64.rpm Wrote: /root/rpmbuild/RPMS/x86_64/gcin-gtk2-2.7.4-1.3.dyw.x86_64.rpm Wrote: /root/rpmbuild/RPMS/x86_64/gcin-qt4-2.7.4-1.3.dyw.x86_64.rpm Executing(%clean): /bin/sh -e /var/tmp/rpm-tmp.0MB2uA + umask 022 + cd /home/dywang/rpmbuild/BUILD + cd gcin-2.7.4 + /bin/rm -rf /home/dywang/rpmbuild/BUILDROOT/gcin-2.7.4-1.3.dyw.x86_64 + exit 0
[dywang@dywH SOURCES]$ sudo cp ../RPMS/x86_64/gcin-* /var/ftp/pub/centos6/crtPackages
[root@dywH Packages]$ repogroup.sh 1793/1793 - vartmp/openssl-1.0.0-27.el6.x86_64.rpm Saving Primary metadata Saving file lists metadata Saving other metadata Loaded plugins: fastestmirror, refresh-packagekit Cleaning up Everything Cleaning up list of fastest mirrors
[dywang@dywH ~]$ sudo yum reinstall gcin-gtk2 gcin