LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 7349|回复: 38

[PKGBUILD]scim-python

[复制链接]
发表于 2008-1-21 21:21:21 | 显示全部楼层 |阅读模式
最开始是在fedora版看见了scim-python,之后一直在留意着。几天前在邮件列表里看见有人把scim-python引入了ubuntu和gentoo,想了想我们的arch也不能落后啊。于是乎写了个PKGBUILD,安装编译都没有问题,结果输入的时候发现候选词列表基本上全是乱码,在IRC问了其他的朋友,发现他们也遇到了同样的问题。然后我跑去请教了scim-python的开发者Huang Peng,在他的帮助下问题终于解决了。

具体原因:
我安装了ArchLinux,经过调试发现在ArchLinux里面编译的python和大多数Linux发行版本里的不太一样。通常的Linux发行版本里面,Python里的Unicode对象使用ucs4来表示,而ArchLinux里面使用ucs2表示,不知道ArchLinux为什么这样做?(
http://docs.python.org/api/unicodeObjects.html#l2h-480 )
我已经在项目网站上创建了bug,请参考
http://code.google.com/p/scim-python/issues/detail?id=43
。这个BUG会在0.1.10中修复。

Huang Peng
http://groups.google.com/group/s ... ad/c268931e6925522e

现在的svn版本已经修复了这个问题,我顺便写了个svn版本的PKGBUILD(感谢percy对PKGBUILD的建议)。

打包时如果要锁定版本,用makepkg --holdver打包,因为makepkg默认会获取最新的svn版本(感谢arch-cn频道的superjet提示)。

PKGBUILD
  1. pkgname=scim-python-svn
  2. pkgver=1096
  3. pkgrel=1
  4. pkgdesc="A python wrapper for SCIM"
  5. arch=('i686' 'x86_64')
  6. license=('LGPL')
  7. url="http://scim-python.googlecode.com"
  8. depends=('scim>=1.4.7' 'python>=2.5.0' 'pygtk' 'python-pysqlite')
  9. makedepends=('cvs' 'subversion')
  10. conflicts=('scim-python')
  11. provides=('scim-python')
  12. install=scim-python.install
  13. source=(http://scim-python.googlecode.com/files/pinyin-database-0.1.10.5.tar.bz2)
  14. noextract=(pinyin-database-0.1.10.5.tar.bz2)
  15. md5sums=('140a7dd821e8e74299bfb2089993838b')
  16. _svnmod="scim-python"
  17. _svntrunk="http://scim-python.googlecode.com/svn/trunk"
  18. build() {
  19.     cd ${srcdir}
  20.   
  21.     msg "Connecting to ${_svnmod} SVN server..."
  22.     if [ -d ${_svnmod}/.svn ]; then
  23.         msg "SVN update ${_svnmod}"
  24.         cd ${_svnmod} && svn up -r ${pkgver}
  25.     else
  26.         msg "SVN checkout ${_svntrunk} ${_svnmod}"
  27.         svn co ${_svntrunk} --config-dir ./ -r ${pkgver} ${_svnmod}
  28.     fi
  29.     msg "SVN checkout done or server timeout. Preparing sources..."
  30.     rm -rf ${srcdir}/${_svnmod}-build
  31.     cp -r ${srcdir}/${_svnmod} ${srcdir}/${_svnmod}-build
  32.     ln -s ${srcdir}/pinyin-database-0.1.10.5.tar.bz2 ${srcdir}/${_svnmod}-build/python/engine/PinYin/
  33.     msg "Starting make..."
  34.     cd ${srcdir}/${_svnmod}-build
  35.     ./autogen.sh --prefix=/usr \
  36.                  --sysconfdir=/etc \
  37.                  --disable-english-writer \
  38.                  --disable-xingma || return 1
  39.    
  40.     make || return 1
  41.     make NO_INDEX=true DESTDIR=${pkgdir} install
  42.     rm -rf ${srcdir}/${_svnmod}-build
  43. }
复制代码
scim-python.install
  1. post_install() {
  2.     echo "Creating INDEX. Please wait..."
  3.     cd /usr/share/scim-python/engine/PinYin
  4.     python -c "import PYSQLiteDB; db = PYSQLiteDB.PYSQLiteDB (); db.create_indexes ();"
  5.     echo "Done."
  6. }
  7. post_upgrade() {
  8.         post_install $1
  9. }
复制代码
要使用英文拼写纠错的朋友先装上这个:

http://aur.archlinux.org/package ... p;SO=a&

然后把--disable-english-writer去掉。


使用帮助可以在
http://code.google.com/p/scim-python/查看。

最后感谢scim-python开发小组所做的工作,为了这个问题他们还特地安装了ArchLinux。
发表于 2008-1-21 21:28:17 | 显示全部楼层
这个版本是不是用了什么搜狗的词库?
回复 支持 反对

使用道具 举报

发表于 2008-1-21 21:29:44 | 显示全部楼层

赞!

不仅写了个PKGBUILD
还顺便传播了Archlinux... 真不赖
回复 支持 反对

使用道具 举报

发表于 2008-1-22 01:06:07 | 显示全部楼层
做arch的包就是方便, 修改了一下PKGBUID文件

  1. --- PKGBUILD  2008-01-22 00:58:26.000000000 +0800
  2. +++ PKGBUILD.p  2008-01-22 00:58:01.000000000 +0800
  3. @@ -17,7 +17,14 @@
  4. build() {
  5.    cd $startdir/src
  6.    msg "Connecting to scim-python.googlecode.com svn server...."
  7. - svn co $_svntrunk $_svnmod
  8. +
  9. +  if [ -d $_svnmod/.svn ]; then
  10. +    (cd $_svnmod && svn up -r $pkgver)
  11. +  else
  12. +   svn co $_svntrunk $_svnmod
  13. +  fi
  14. +  

  15.    msg "SVN checkout done or server timeout"
  16.    msg "Starting make..."
复制代码
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-1-22 01:32:56 | 显示全部楼层
Post by percy;1809780
做arch的包就是方便, 修改了一下PKGBUID文件

  1. --- PKGBUILD  2008-01-22 00:58:26.000000000 +0800
  2. +++ PKGBUILD.p  2008-01-22 00:58:01.000000000 +0800
  3. @@ -17,7 +17,14 @@
  4. build() {
  5.    cd $startdir/src
  6.    msg "Connecting to scim-python.googlecode.com svn server...."
  7. - svn co $_svntrunk $_svnmod
  8. +
  9. +  if [ -d $_svnmod/.svn ]; then
  10. +    (cd $_svnmod && svn up -r $pkgver)
  11. +  else
  12. +   svn co $_svntrunk $_svnmod
  13. +  fi
  14. +  

  15.    msg "SVN checkout done or server timeout"
  16.    msg "Starting make..."
复制代码


ok,已按照你的意思修改。
回复 支持 反对

使用道具 举报

发表于 2008-1-22 11:51:37 | 显示全部楼层
看看python.学学语法.
参加实践:p
回复 支持 反对

使用道具 举报

发表于 2008-1-22 16:31:37 | 显示全部楼层
upload到AUR吧

(以后每出现一个PKGBUILD, 我都来劝人upload到AUR...)
回复 支持 反对

使用道具 举报

发表于 2008-1-22 22:09:51 | 显示全部楼层
然后大家一起去投票,促使开发者把这个包纳入 官方的库。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-1-23 05:00:21 | 显示全部楼层
更新到604,可以对scim-python进行详细的设置了。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

发表于 2008-1-23 09:50:21 | 显示全部楼层
刚才rebuild,已经606了
Repository Root: http://scim-python.googlecode.com/svn
Repository UUID: 727f7bbf-773a-0410-a90f-6102d2a1caf9
Revision: 606
Node Kind: directory
Schedule: normal
Last Changed Author: Shawn.P.Huang
Last Changed Rev: 606
Last Changed Date: 2008-01-23 07:51:51 +0800 (Wed, 23 Jan 2008)
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表