[分享] deb 檔自己動手做 - 以 GCIN 為例...

常言道:『飲水思源』,在 Open Source 的世界裡,我們常常需要別人的幫助,但是在您有所心得的時候請記得分享給大家,『幫助人是快樂的喔』。歡迎您在使用 debian 的過程中的任何心得分享給大家。

文章Tetralet » 週一 3月 28, 2005 10:09 am

caleb 寫:gcin 一個不算是 bug 的問題:

在 /etc/gtk-2.0/gtk.immodules 裡面,
代碼: 選擇全部
"gcin" "gcin Input Method" "gtk20" "/usr/share/locale" "zh:ko:ja"

這樣設定不需要 export GTK_IM_MODULE,
只要 locale 設定為 zh, ko, ja 三者之一,
gcin 就會自動成為 gtk2 預設的 Imput Method

雖然這不算 bug, 不過 scim 的做法是
代碼: 選擇全部
"scim" "SCIM Input Method" "scim" "/usr/share/locale" "*"

這樣 scim 只是選項之一, 而不會直接成為預設輸入法...

就系統預設值來說, 或許 gcin 應該把 "zh:ko:ja" 改為 "*" 或 "",
想用 gcin 的 user 自己再去 export GTK_IM_MODULE

原來如此,
難怪所有的 GTK2 Based 的程式都以 GCIN 為預設的輸入法...

我也覺得這個地方的確是有修正的必要。
時間並不能治療我心中的疼痛
南方的春天說什麼也溫暖不了我冰冷的血

誦唱大復活咒文,今天的 Tetralet 又在唧唧喳喳了 重生!
Tetralet
俺是博士
俺是博士
 
文章: 3078
註冊時間: 週四 11月 28, 2002 3:02 pm

文章高原之狼 » 週一 3月 28, 2005 10:29 am

Tetralet 寫:我記得 scim 的 Debian 官方 Maintainer 是 高原之狼 兄,
不過好久沒有他的消息了...

Tetralet 想知道什么消息呢?:-)

Debian 的邮件列表 debian-chinese-gb 和 debian-chinese-big5 我还是时常出没的,另外也上 Freenode #debian-zh 的 IRC。

这里我还是常来的,只不过很少回复而已。
高原之狼
懵懂的國中生
懵懂的國中生
 
文章: 185
註冊時間: 週一 10月 28, 2002 5:54 am

文章Tetralet » 週一 3月 28, 2005 10:42 am

問個有關 scripts/modify-XIM 的問題...

我查看了一下它的內容,
它好像是依 Linux Distribution 不同,
設定了一些像是 XMODIFIERS、GTK_IM_MODULE 等等環境變數,
裡面似乎沒有特別針對 Debian 而寫的程式碼;
並且似乎只有由 tarball 編譯安裝的使用者才會執行到這個 Script,
如果將 GCIN 包裝成 Debian Package,
Debian Package 的 Maintainer 必須特別另外寫一段程式碼,
(如:寫在 postinst 裡)
來取代這段程式碼的功能。

而在 GCIN 安裝完成後,
這個 Script 就再也用不著了…

那麼直接把這個檔案從 GCIN 的 Debian Package 裡移除應該是沒有關係的吧?
時間並不能治療我心中的疼痛
南方的春天說什麼也溫暖不了我冰冷的血

誦唱大復活咒文,今天的 Tetralet 又在唧唧喳喳了 重生!
Tetralet
俺是博士
俺是博士
 
文章: 3078
註冊時間: 週四 11月 28, 2002 3:02 pm

文章高原之狼 » 週一 3月 28, 2005 10:42 am

Anonymous 寫:其實放在 /usr/lib/gtk-2.0/immodules 就可以了, gtk-query-immodules-2.0 會自動看這個 path 的,

/usr/lib/gtk-2.0/2.4.0/immodules 就比較麻煩,因為會隨 gtk 的版本而變化,這個 directory 應該是用來放 gtk2 自己的 im .so,不需要自找麻煩。

正如后面 Tetralet 所说,Debian 并不是直接使用 gtk-query-immodules-2.0 来更新 /etc/gtk-2.0/gtk.immodules,而是使用自己的 update-gtk-immodules script。这里主要是为了持续的升级和不同套件维护者协作来考虑,如果有一天 gtk-query-immodules-2.0 的名字变了,并不需要所有输入法套件都进行改动。

这一点我在 scim 的源码套件里说得很清楚,我想阿信兄在他的 gcin 套件里也应该有类似的说明。这是保证各套件的独立升级能够顺利进行,具体说来还很复杂,但决非自找麻烦。

Debian 由于自身的非集中开发和保证顺利升级的特点,有很多独特的考虑和设置。访客兄如果不熟悉 Debian 套件制作的话,还是请不要随便用“自找麻烦”这样的词来评价为好。
高原之狼
懵懂的國中生
懵懂的國中生
 
文章: 185
註冊時間: 週一 10月 28, 2002 5:54 am

文章高原之狼 » 週一 3月 28, 2005 10:49 am

Tetralet 寫:問個有關 scripts/modify-XIM 的問題...

我查看了一下它的內容,
它好像是依 Linux Distribution 不同,
設定了一些像是 XMODIFIERS、GTK_IM_MODULE 等等環境變數,
裡面似乎沒有特別針對 Debian 而寫的程式碼;
並且似乎只有由 tarball 編譯安裝的使用者才會執行到這個 Script,
如果將 GCIN 包裝成 Debian Package,
Debian Package 的 Maintainer 必須特別另外寫一段程式碼,
(如:寫在 postinst 裡)
來取代這段程式碼的功能。

而在 GCIN 安裝完成後,
這個 Script 就再也用不著了…

那麼直接把這個檔案從 GCIN 的 Debian Package 裡移除應該是沒有關係的吧?

从 source package 还是 binary package 里移除呢?binary 的话自然没有问题,source 的话你要怎样移除呢?因为 .orig.tar.gz 是要尽量和 upstream 保持一致为好。
高原之狼
懵懂的國中生
懵懂的國中生
 
文章: 185
註冊時間: 週一 10月 28, 2002 5:54 am

文章高原之狼 » 週一 3月 28, 2005 10:52 am

Tetralet 寫:
caleb 寫:gcin 一個不算是 bug 的問題:

在 /etc/gtk-2.0/gtk.immodules 裡面,
代碼: 選擇全部
"gcin" "gcin Input Method" "gtk20" "/usr/share/locale" "zh:ko:ja"

這樣設定不需要 export GTK_IM_MODULE,
只要 locale 設定為 zh, ko, ja 三者之一,
gcin 就會自動成為 gtk2 預設的 Imput Method

雖然這不算 bug, 不過 scim 的做法是
代碼: 選擇全部
"scim" "SCIM Input Method" "scim" "/usr/share/locale" "*"

這樣 scim 只是選項之一, 而不會直接成為預設輸入法...

就系統預設值來說, 或許 gcin 應該把 "zh:ko:ja" 改為 "*" 或 "",
想用 gcin 的 user 自己再去 export GTK_IM_MODULE

原來如此,
難怪所有的 GTK2 Based 的程式都以 GCIN 為預設的輸入法...

我也覺得這個地方的確是有修正的必要。

嗯……我觉得不是 caleb 说的那么简单,因为 xim 的设置也是 zh:ja:ko:vi,但是如果不设 GTK_IM_MODULE 的话好象结果是 scim。

我开始怀疑是不是字母顺序了……
高原之狼
懵懂的國中生
懵懂的國中生
 
文章: 185
註冊時間: 週一 10月 28, 2002 5:54 am

文章Tetralet » 週一 3月 28, 2005 10:56 am

高原之狼 寫:从 source package 还是 binary package 里移除呢?binary 的话自然没有问题,source 的话你要怎样移除呢?因为 .orig.tar.gz 是要尽量和 upstream 保持一致为好。

我的建議是加一個小 Patch 修改 scripts/Makefile...
請問這種作法是否恰當呢?
時間並不能治療我心中的疼痛
南方的春天說什麼也溫暖不了我冰冷的血

誦唱大復活咒文,今天的 Tetralet 又在唧唧喳喳了 重生!
Tetralet
俺是博士
俺是博士
 
文章: 3078
註冊時間: 週四 11月 28, 2002 3:02 pm

文章高原之狼 » 週一 3月 28, 2005 10:58 am

Tetralet 寫:
高原之狼 寫:从 source package 还是 binary package 里移除呢?binary 的话自然没有问题,source 的话你要怎样移除呢?因为 .orig.tar.gz 是要尽量和 upstream 保持一致为好。

我的建議是加一個小 Patch 修改 scripts/Makefile...
請問這種作法是否恰當呢?

那就是从 binary 套件中移除了,自然没有问题。
高原之狼
懵懂的國中生
懵懂的國中生
 
文章: 185
註冊時間: 週一 10月 28, 2002 5:54 am

文章Tetralet » 週一 3月 28, 2005 1:03 pm

高原之狼 寫:
Tetralet 寫:我記得 scim 的 Debian 官方 Maintainer 是 高原之狼 兄,
不過好久沒有他的消息了...

Tetralet 想知道什么消息呢?:-)

这里我还是常来的,只不过很少回复而已。

日前去信煩蘇哲兄,
問他有關 GCIN 和 SCIM 的問題。

個人認同蘇哲兄的觀點,
既然使用繁體中文的人會比較習慣使用 GCIN,
但 SCIM 應該會是未來的潮流,
那麼整合 SCIM 及 GCIN 豈不是美事?

請問高原之狼兄是否知道,
SCIM 裡的 倉頡/倉五 的對應表是誰在維護的呢?
時間並不能治療我心中的疼痛
南方的春天說什麼也溫暖不了我冰冷的血

誦唱大復活咒文,今天的 Tetralet 又在唧唧喳喳了 重生!
Tetralet
俺是博士
俺是博士
 
文章: 3078
註冊時間: 週四 11月 28, 2002 3:02 pm

文章eliu » 週一 3月 28, 2005 1:39 pm

SCIM 的好處我目前是用不到,我想專注在對 gcin 實質好處的部份。
open source 的好處就是讓大家自由發揮,但別指望東西擺在那邊自然會有人弄出來。
頭像
eliu
可愛的小學生
可愛的小學生
 
文章: 44
註冊時間: 週六 8月 28, 2004 1:33 pm
來自: 新竹

文章caleb » 週一 3月 28, 2005 2:29 pm

高原之狼 寫:嗯……我觉得不是 caleb 说的那么简单,因为 xim 的设置也是 zh:ja:ko:vi,但是如果不设 GTK_IM_MODULE 的话好象结果是 scim。

我开始怀疑是不是字母顺序了……

雖然 xim 也是設定成 "ko:ja:th:zh", 但是 xim 本身沒有自動呼叫程式的功能,
即使 user 有 export XMODIFIERS, 只要不執行 xim 程式, 並不會造成困擾。

可是 GTK_IM_MODULE 的程式會自動執行, 所以預設值似乎不應該指定 locale
例如說, 假設某 user 想在 firefox 下使用 xcin, 但系統裡也有安裝 gcin
他的 .xinitrc 如下:
代碼: 選擇全部
export LC_CTYPE=zh_TW
export XMODIFIERS="@im=xcin-zh_TW"
xcin &
exec icewm

明明沒有指定 GTK_IM_MODULE, 可是因為 gcin 的預設值,
使得進入 firefox 時自動呼叫了 gcin, 變成 xcin 和 gcin 打架...


如果沒有 locales, gtk2 預設是使用 Default, 即不使用任何輸入法

如果有 locales, gtk2 會按照 /etc/gtk-2.0/gtk.immodules 裡各種輸入法的 locale 設定, 按照檔案順序使用, 排越後面的優先權越大

如果 gcin 和 scim 都有設定 zh, 那看誰排比較後面, 預設就會用誰
如果 gcin 和 scim 都設定為 "" 或 "*", 那預設使用 xim

雖然可以自己手動修改 /etc/gtk-2.0/gtk.immodules,
不過 gcin 如果能把預設的 "zh:ko:ja" 改為 "*" 或 "", 應該會更好。
caleb
可愛的小學生
可愛的小學生
 
文章: 15
註冊時間: 週一 3月 21, 2005 4:46 pm

文章訪客 » 週一 3月 28, 2005 6:25 pm

Bug Report for gcin 0.8.9

1. tar ball 的 pho.tab.src 裡面有兩個「ㄧ 1 0」, 重覆了。
(半形的「ㄧ 1 0」有兩個, 全形的「ㄧ 1 0」有一個)

2. 自訂的 pho.tab.src 最多只能有 15246 行,
超過就無法用 phoa2d 轉成 pho.tab, 會 Segmentation fault。
不知是小弟電腦的問題,還是 gcin 無法支援超過 15246 行?
訪客
 

文章訪客 » 週一 3月 28, 2005 6:48 pm

Anonymous 寫:Bug Report for gcin 0.8.9

1. tar ball 的 pho.tab.src 裡面有兩個「ㄧ 1 0」, 重覆了。
(半形的「ㄧ 1 0」有兩個, 全形的「ㄧ 1 0」有一個)

2. 自訂的 pho.tab.src 最多只能有 15246 行,
超過就無法用 phoa2d 轉成 pho.tab, 會 Segmentation fault。
不知是小弟電腦的問題,還是 gcin 無法支援超過 15246 行?


modify phoa2d.c

#define MAX_CHS (15000)

把 15000 改成 25000 應該夠用吧。
不知道你是多加了那些注音呢?為什麼有這麼多字。
訪客
 

文章訪客 » 週一 3月 28, 2005 6:50 pm

小弟從 xcin 的 cvs 抓了完整支援 UTF-8 的注音 cin 檔,
將之轉為 gcin 的格式, 希望能在 gcin 下輸入所有的 UTF-8 漢字...

下載 xcin 風格的 pho.tab.src (26516 行)
下載 gcin 風格的 pho.tab.src (26692 行)

格式確定是正確的, 可是在小弟的電腦上, pho.tab.src 最多只能有 15246 行...
(兩個檔案若只使用前面 15246 行, 都可以順利轉成 pho.tab, 也可以用注音正確輸入所有文字)

希望大家能幫忙測試看看...(gcin 0.8.9 內建的 pho.tab.src 只有14324行)
xcin 的 cin 檔裡其實有包含韓文, 似乎還有一些 EUC-TW 的字...
不過要刪到只有 15246 行頗費思量...

小弟想先整理看看, 下一步則是整理成 scim 可用的注音檔...
(scim 的 debian 官方 package 注音只能輸入 big5 字)

檔案說明:
xcin 風格是直接把 xcin/cin/utf-8/phone.cin 轉成 gcin 的 pho.tab.src 格式, 保證原汁原味...

gcin 風格是再加上 gcin 的 pho.tab 特色, 例如「注音輸入英文字母」、「注音輸入特殊符號」等等...
另外把多出來的一個「ㄧ 1 0」拿掉, 還有把特殊符號
「ㄍ1 ♂ ㄍ1 個 ㄇ1 ♀ ㄇ1 嗎 ㄒ2 ㏄ ㄒ3 ☆ ㄒ4 ★」等後面加上數字 0
(gcin 0.8.9 tar ball 的 pho.tab.src 裡這幾個符號後沒有數字, 雖然也可以正確轉為 pho.tab, 不過小弟還是給他加上去了)
訪客
 

文章訪客 » 週一 3月 28, 2005 6:52 pm

Anonymous 寫:modify phoa2d.c
#define MAX_CHS (15000)
把 15000 改成 25000 應該夠用吧。

感激不盡~
小弟趕快試試...搞定 gcin 的話, 再來弄 scim...
訪客
 

上一頁下一頁

回到 share

誰在線上

正在瀏覽這個版面的使用者:沒有註冊會員 和 1 位訪客