LinuxSir.Org  
| 网站首页 | 注册账号 | 论坛帮助 |

欢迎来到LinuxSir.Org!
您还未登录,请登录后查看论坛,或者点击论坛上方的注册链接注册新账号。


发表新主题 回复
精华主题  
主题工具
旧 08-01-21, 21:21 第 1 帖
狱卒 帅哥
 
狱卒 的头像
 
 
注册会员  
  注册日期: Feb 2003
  我的住址: 湖北 荆州
  帖子: 1,645
  精华: 2
 

标题: [PKGBUILD]scim-python


最开始是在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...s/detail?id=43
。这个BUG会在0.1.10中修复。

Huang Peng
http://groups.google.com/group/scim-...68931e6925522e

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

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

PKGBUILD
代码:
pkgname=scim-python-svn pkgver=1096 pkgrel=1 pkgdesc="A python wrapper for SCIM" arch=('i686' 'x86_64') license=('LGPL') url="http://scim-python.googlecode.com" depends=('scim>=1.4.7' 'python>=2.5.0' 'pygtk' 'python-pysqlite') makedepends=('cvs' 'subversion') conflicts=('scim-python') provides=('scim-python') install=scim-python.install source=(http://scim-python.googlecode.com/files/pinyin-database-0.1.10.5.tar.bz2) noextract=(pinyin-database-0.1.10.5.tar.bz2) md5sums=('140a7dd821e8e74299bfb2089993838b') _svnmod="scim-python" _svntrunk="http://scim-python.googlecode.com/svn/trunk" build() { cd ${srcdir} msg "Connecting to ${_svnmod} SVN server..." if [ -d ${_svnmod}/.svn ]; then msg "SVN update ${_svnmod}" cd ${_svnmod} && svn up -r ${pkgver} else msg "SVN checkout ${_svntrunk} ${_svnmod}" svn co ${_svntrunk} --config-dir ./ -r ${pkgver} ${_svnmod} fi msg "SVN checkout done or server timeout. Preparing sources..." rm -rf ${srcdir}/${_svnmod}-build cp -r ${srcdir}/${_svnmod} ${srcdir}/${_svnmod}-build ln -s ${srcdir}/pinyin-database-0.1.10.5.tar.bz2 ${srcdir}/${_svnmod}-build/python/engine/PinYin/ msg "Starting make..." cd ${srcdir}/${_svnmod}-build ./autogen.sh --prefix=/usr \ --sysconfdir=/etc \ --disable-english-writer \ --disable-xingma || return 1 make || return 1 make NO_INDEX=true DESTDIR=${pkgdir} install rm -rf ${srcdir}/${_svnmod}-build }
scim-python.install
代码:
post_install() { echo "Creating INDEX. Please wait..." cd /usr/share/scim-python/engine/PinYin python -c "import PYSQLiteDB; db = PYSQLiteDB.PYSQLiteDB (); db.create_indexes ();" echo "Done." } post_upgrade() { post_install $1 }
要使用英文拼写纠错的朋友先装上这个:

http://aur.archlinux.org/packages.ph...phans=0&SeB=nd

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


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

最后感谢scim-python开发小组所做的工作,为了这个问题他们还特地安装了ArchLinux。

此帖于 08-10-28 09:12 被 狱卒 编辑.
  狱卒 当前离线   回复时引用此帖
旧 08-01-21, 21:28 第 2 帖
jarryson 帅哥
 
jarryson 的头像
 
 
注册会员  
  注册日期: Jul 2004
  我的住址: 湖北武汉
  帖子: 5,659
  精华: 3
 

这个版本是不是用了什么搜狗的词库?







__________________
AMD Turion MT-34 1.8G,1G+256M ddr333,VIA,AMD-ATI X700 128M,160G IDE,15.4宽...

Archlinux -- 最新,最快,最方便
  jarryson 当前离线   回复时引用此帖
旧 08-01-21, 21:29 第 3 帖
ssflying
 
ssflying 的头像
 
 
注册会员  
  注册日期: Dec 2005
  我的住址: 武漢
  帖子: 151
  精华: 1
 

标题: 赞!


不仅写了个PKGBUILD
还顺便传播了Archlinux... 真不赖







__________________
irc: #arch-cn @ OFTC
----------------------------
“审问之,慎思之,笃行之; 不至,则命也。”
  ssflying 当前离线   回复时引用此帖
旧 08-01-22, 01:06 第 4 帖
percy
 
percy 的头像
 
 
注册会员  
  注册日期: Jul 2003
  我的住址: 北京
  帖子: 314
  精华: 0
 

做arch的包就是方便, 修改了一下PKGBUID文件
代码:
--- PKGBUILD 2008-01-22 00:58:26.000000000 +0800 +++ PKGBUILD.p 2008-01-22 00:58:01.000000000 +0800 @@ -17,7 +17,14 @@ build() { cd $startdir/src msg "Connecting to scim-python.googlecode.com svn server...." - svn co $_svntrunk $_svnmod + + if [ -d $_svnmod/.svn ]; then + (cd $_svnmod && svn up -r $pkgver) + else + svn co $_svntrunk $_svnmod + fi + msg "SVN checkout done or server timeout" msg "Starting make..."
  percy 当前离线   回复时引用此帖
旧 08-01-22, 01:32 第 5 帖
狱卒 帅哥
 
狱卒 的头像
 
 
注册会员  
  注册日期: Feb 2003
  我的住址: 湖北 荆州
  帖子: 1,645
  精华: 2
 

引用:
作者: percy
做arch的包就是方便, 修改了一下PKGBUID文件
代码:
--- PKGBUILD 2008-01-22 00:58:26.000000000 +0800 +++ PKGBUILD.p 2008-01-22 00:58:01.000000000 +0800 @@ -17,7 +17,14 @@ build() { cd $startdir/src msg "Connecting to scim-python.googlecode.com svn server...." - svn co $_svntrunk $_svnmod + + if [ -d $_svnmod/.svn ]; then + (cd $_svnmod && svn up -r $pkgver) + else + svn co $_svntrunk $_svnmod + fi + msg "SVN checkout done or server timeout" msg "Starting make..."
ok,已按照你的意思修改。
  狱卒 当前离线   回复时引用此帖
旧 08-01-22, 11:51 第 6 帖
SCys
 
 
 
注册会员  
  注册日期: Jan 2005
  帖子: 529
  精华: 2
 

看看python.学学语法.
参加实践







__________________
Intel(R) Pentium(R) 4 @ 2.4GHz
ATI 9600
Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+
Intel Corporation 82850 850 (Tehama) Chipset Host Bridge (MCH)
Maxtor 6E040L0, Maxtor 6E080L0

Acer TravelMate 4730G

ArchLinux , Gentoo
Opera, gVim, mocp
  SCys 当前离线   回复时引用此帖
旧 08-01-22, 16:31 第 7 帖
number5
 
 
 
注册会员  
  注册日期: Dec 2007
  帖子: 118
  精华: 0
 

upload到AUR吧

(以后每出现一个PKGBUILD, 我都来劝人upload到AUR...)







__________________
kernel 2.6.27-gentoo-r6
XFCE 4.6 beta2
Funtoo/Gentoo

http://brucewang.net
http://twitter.com/number5
  number5 当前离线   回复时引用此帖
旧 08-01-22, 22:09 第 8 帖
ganloo
 
 
 
注册会员  
  注册日期: Sep 2003
  我的住址: 重庆
  帖子: 1,807
  精华: 10
 

然后大家一起去投票,促使开发者把这个包纳入 官方的库。
  ganloo 当前离线   回复时引用此帖
旧 08-01-23, 05:00 第 9 帖
狱卒 帅哥
 
狱卒 的头像
 
 
注册会员  
  注册日期: Feb 2003
  我的住址: 湖北 荆州
  帖子: 1,645
  精华: 2
 

更新到604,可以对scim-python进行详细的设置了。
上传的图像
文件类型: png 001.png (66.1 KB, 82 次查看)
文件类型: png 002.png (47.3 KB, 71 次查看)
  狱卒 当前离线   回复时引用此帖
旧 08-01-23, 09:50 第 10 帖
percy
 
percy 的头像
 
 
注册会员  
  注册日期: Jul 2003
  我的住址: 北京
  帖子: 314
  精华: 0
 

刚才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)
  percy 当前离线   回复时引用此帖
旧 08-01-23, 09:56 第 11 帖
percy
 
percy 的头像
 
 
注册会员  
  注册日期: Jul 2003
  我的住址: 北京
  帖子: 314
  精华: 0
 

不过没有看到scim-python的配置
  percy 当前离线   回复时引用此帖
旧 08-01-23, 13:01 第 12 帖
bendany
 
 
 
注册会员  
  注册日期: May 2007
  帖子: 10
  精华: 0
 

还没明白scim-python这个项目干啥用的。
是一个输入法模块?利用其他词库?

主页也没有说清楚和scim等的关系。
现在scim的东西很多,关系搞不清楚,苦恼啊。

大家给普及一下如何?
  bendany 当前离线   回复时引用此帖
旧 08-01-23, 15:15 第 13 帖
shawn.p.huang 帅哥
 
shawn.p.huang 的头像
 
 
注册会员  
  注册日期: Dec 2007
  帖子: 187
  精华: 0
 

引用:
作者: 狱卒
更新到604,可以对scim-python进行详细的设置了。
问一下,这个脚本是给用户编译安装用的,还是象rpm的spec文件一样,生成二进制软件包用的?







__________________
欢迎试用ibus输入法框架:
http://code.google.com/p/ibus
  shawn.p.huang 当前离线   回复时引用此帖
旧 08-01-23, 15:41 第 14 帖
shawn.p.huang 帅哥
 
shawn.p.huang 的头像
 
 
注册会员  
  注册日期: Dec 2007
  帖子: 187
  精华: 0
 

现在svn库里的代码,可以用make NO_INDEX=true来编译,这样生成的数据库没有索引,安装包会小很多。不知道arch的安装包有没有postinstall script,可以在这里运行命令,创建数据库的索引。下面是生成随音的命令。

cd /usr/share/scim-python/engine/PinYin
echo "Creating INDEX."
python -c "import PYSQLiteDB; db = PYSQLiteDB.PYSQLiteDB (); db.create_indexes ();"
  shawn.p.huang 当前离线   回复时引用此帖
旧 08-01-23, 17:51 第 15 帖
percy
 
percy 的头像
 
 
注册会员  
  注册日期: Jul 2003
  我的住址: 北京
  帖子: 314
  精华: 0
 

引用:
作者: shawn.p.huang
现在svn库里的代码,可以用make NO_INDEX=true来编译,这样生成的数据库没有索引,安装包会小很多。不知道arch的安装包有没有postinstall script,可以在这里运行命令,创建数据库的索引。下面是生成随音的命令。

cd /usr/share/scim-python/engine/PinYin
echo "Creating INDEX."
python -c "import PYSQLiteDB; db = PYSQLiteDB.PYSQLiteDB (); db.create_indexes ();"

PKGBUILD
代码:
--- PKGBUILD.o 2008-01-23 17:46:34.000000000 +0800 +++ PKGBUILD 2008-01-23 17:40:17.000000000 +0800 @@ -1,6 +1,6 @@ pkgname=scim-python-svn _realname=scim-python -pkgver=606 +pkgver=613 pkgrel=1 pkgdesc="A python wrapper for SCIM" arch=('i686') @@ -10,6 +10,7 @@ url="http://scim-python.googlecode.com" source=() md5sums=() +install=install _svnmod="scim-python-svn" _svntrunk="http://scim-python.googlecode.com/svn/trunk" @@ -33,6 +34,6 @@ --sysconfdir=/etc \ --disable-english-writer - make || return 1 + make NO_INDEX=true || return 1 make DESTDIR=${startdir}/pkg install }
pre,post安装脚本
install
代码:
# This is a default template for a post-install scriptlet. You can # remove any functions you don't need (and this header). # arg 1: the new package version pre_install() { /bin/true } # arg 1: the new package version post_install() { cd /usr/share/scim-python/engine/PinYin echo "Creating INDEX." python -c "import PYSQLiteDB; db = PYSQLiteDB.PYSQLiteDB (); db.create_indexes ();" } # arg 1: the new package version # arg 2: the old package version pre_upgrade() { /bin/true } # arg 1: the new package version # arg 2: the old package version post_upgrade() { post_install $1 } # arg 1: the old package version pre_remove() { /bin/true } # arg 1: the old package version post_remove() { /bin/true } op=$1 shift [ "$(type -t "$op")" = "function" ] && $op "$@" # vim:set ts=2 sw=2 et:
rebuild后果然小了不少
8.7M scim-python-svn-606-1-i686.pkg.tar.gz
4.0M scim-python-svn-613-1-i686.pkg.tar.gz


安装后scim-python可以配置了

此帖于 08-01-23 17:55 被 percy 编辑.
  percy 当前离线   回复时引用此帖
发表新主题 回复


主题工具

发帖规则
您 [不可以] 发表新主题
您 [不可以] 回复主题
您 [不可以] 上传附件
您 [不可以] 编辑您的帖子

已 [启用] BB 代码
已 [启用] 表情符号
已 [启用] IMG 代码
已 [禁用] HTML 代码
[论坛跳转…]


所有时间均为[北京时间]。现在的时间是 12:37


Powered by vBulletin 版本 3.6.8
版权所有 ©2000 - 2010, Jelsoft Enterprises Ltd.
官方中文技术支持: vBulletin 中文
版权所有 ©2002 - 2009, LinuxSir.Org