[FZH] sunpinyin入源还得等等

Chen Lei supercyper在163.com
星期二 四月 13 12:11:03 UTC 2010


还是覆盖好,因为这x86和i686文件md5sum也一样,本身是一样的文件。另外rpm还是人性化的,只覆盖一模一样的文件,如果你安装了两个包,卸载其中一个这两个文件还是在的。 这是很常见的multilib情况,比如x64和i686的-devel都安装包里面的头文件肯定要覆盖一遍,这就是fedora强调为什么要保留文件timestamp的原因。至于创建链接 我没有见过那个包这么干的,而且容易导致rpm -qf xxx看不出文件是哪个包的,非常不合适。 deb打包有个专用的功能可以修复文件名,rpm目前还没有这个功能
 
不过我觉得如果sunpinyin变成单独的动态库库,如果data都安装到/usr/lib有困难的话,倒可以直接放在{_libdir},不过要浪费一些空间,不过目前这个包很容易把data安装/usr/lib。 另外,ibus-sun xsun本身不能读写data文件,都是靠库文件读写的,data文件夹是靠一个宏定义的,不是hardcode

在2010-04-13 19:57:24,"Liang Suilong" <liangsuilong在gmail.com> 写道:

如果同時都安裝了 x86_64 和 i686 的包,那麼后安裝的那個 rpm 包就會因為文件名相同完全取代先前安裝的那一個。雖然這樣的做法在 packaging guideline 可能不存在問題,但是這樣的做法我個人覺得不妥。因為一個正常的文件突然被另外一個軟件包中的文件取代,似乎不太合情理。

我堅持這種做法:把 data 按照架構放置在對應得 %{_libdir} 裡面,然後在 prein 和 preun 的腳本里添加一個創建鏈接的命令,我覺得這樣比較好。當然也需要一個選擇語句判斷鏈接是否已經在安裝前就存在。如果 i686 和 x86_64 的 data 都安裝了,那麼就可以建立一個硬鏈接去解決?你說這樣好嗎?


2010/4/13 Chen Lei <supercyper在163.com>




touch 修复timestamp后不会冲突,不信你可以用koji build 后按照i686和x64的data包试试,只要那两个文件的时间一样 md5一样估计就不会冲突

另外FHS对/lib64有专门规定。debian估计是在FHS建立/lib64标准之前就支持64位了,所有没有办法完全按照FHS的来了

不久后sunpinyin应该会变成一个库,ibus-sun和xsun只是两个wrapper去调用这个动态库文件
在2010-04-13 16:07:52,"Liang Suilong" <liangsuilong在gmail.com> 写道:


如果把 data 文件不论架构都放在 /usr/lib 的话,想同时安装 x86_64 和 i686 都会出现文件冲突。另外在 debian amd64 上,/usr/lib64 是存在的,是一个链接到 /usr/lib 的链接。而 32bit 的 library 会放在 /usr/lib32 里面,这点应该不算违反 FHS 吧,只是不够严谨而已。 




既然如此,倒不如向作者提议,在 makefile 里加入发行版检测的选择语句, 又或者干脆就把 data 直接按照架构放在 lib 或 lib64。


2010/4/13 Chen Lei <supercyper在163.com>
-d的话就是后台模式,父进程是1, 不能接受imsettings的管理,任何输入法不能用后台模式运行,必须由imsettings fork出子进程。

touch是统一文件时间问题,否则安装x86_64 和i686的data安装到同一个目录会冲突,这点fedora有专门的说明
不过昨天的spec有点问题,touch位置不对,现在修改好了。
我觉得data还是放在/usr/lib,因为那个zinnia-的model默认是/usr/lib硬连接的。我这个spec基本是抄袭sunpinyin作者的deb得到,加了点fedora特殊的内容。按照FHS是64位专用文件是应该到/lib64的,debian这点上违法了FHS。其他arch-specfic文件到/usr/lib


在2010-04-13 15:15:45,"Liang Suilong" <liangsuilong在gmail.com> 写道: 

恩。。那就等等吧。。 


貌似你写的 xinput-xsunpinyin 还是有些许问题。


XIM_PROGRAM="/usr/bin/xsunpinyin -d" 应该是以 daemon 的形式运行。


另外 spec 文件里的 touch 这两个命令似乎不再需要,makefile 里已经有相应的脚本进行类似的操作了。


PS:我觉得 lm_sc.t3g 还是放回 %{_datadir} 比较好,似乎 %{_prefix}/lib 的这样 macro 会让 rpmlint 报告 error 或者 warning。既然 ibus-handwrite 的 engine 都是放在 %{_datadir},另外 RH 系的发行版还是明确分开 /usr/lib64 和 /usr/lib 这点相对其他发行版看起来比较麻烦。虽然这样改来改去看起来闲的蛋疼,但是还是改过来比较好。








2010/4/13 Chen Lei <supercyper在163.com>

现在sunpinyin的库都是直接链接入wrapper的,没有编译成动态库,上游说最近会重写编译系统,所以再等等吧,估计到时候要分成四个包
_______________________________________________
Chinese mailing list
Chinese at lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/chinese




-- 
Fedora && Debian User, former Ubuntu User
My Page: http://www.liangsuilong.info
Fedora Project Contributor -- Packager && Ambassador
https://fedoraproject.org/wiki/User:Liangsuilong







-- 
Fedora && Debian User, former Ubuntu User
My Page: http://www.liangsuilong.info
Fedora Project Contributor -- Packager && Ambassador
https://fedoraproject.org/wiki/User:Liangsuilong







-- 
Fedora && Debian User, former Ubuntu User
My Page: http://www.liangsuilong.info
Fedora Project Contributor -- Packager && Ambassador
https://fedoraproject.org/wiki/User:Liangsuilong


关于邮件列表 Chinese 的更多信息