当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 7 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : 打过 locale 补丁的 slim deb 包
帖子发表于 : 2008-09-04 20:50 

注册: 2006-07-09 12:22
帖子: 1331
地址: 南京
送出感谢: 0 次
接收感谢: 1
之前用过几次的 slim,又几次删除了,只因为对产生的后果(fcitx调不出,字体改变等)极其反感,也想过修改 slim.conf 文件的,但终没注意到是 locale 的问题。

gentoo 发行版有将 slim 当作xdm的 displaymanager 的,链接,但貌似 debian 不方便那样设置。

google 到这个:https://bugs.launchpad.net/ubuntu/+source/slim/+bug/234474,五月份就提出了,debian 源里的包依然没有打补丁,由 slim 登陆后所有 locale 值均为 POSIX,C标准,才恍然大悟了。似乎 slim 开发者竟没考虑到 locale 的问题么?debain 包维护人员也没考虑到么? :shock:

其实直接修改 /etc/init.d/slim 脚本文件就行了。依 launchpad 的补丁加上这段就是:
代码:
+if [ -r /etc/default/locale ]; then
+  . /etc/default/locale
+  export LANG LANGUAGE
+elif [ -r /etc/environment ]; then
+  . /etc/environment
+  export LANG LANGUAGE
+fi
+


于是我就想到给源码包打个补丁得了,省去每次安装都要修改。并在第一个判断语句上加了一个 grep,用于 /etc/default/locale 文件中无有效语句时,让 /etc/environment 起作用,因为我之前一直都是设置后者的。将之改为:
代码:
+if [ -r /etc/default/locale ] && grep ^[^#] /etc/default/locale > /dev/null ; then

存文件名为 slim_1.3.0.patch

打包:
代码:
$ apt-get source slim
$ cp -r slim-1.3.0 slim-1.3.0.orig
$ patch slim-1.3.0/debian/slim.init slim_1.3.0.patch
$ diff -rup slim-1.3.0 slim-1.3.0.orig > slim_locale.patch
$ dpkg-source -x slim_1.3.0-1.dsc
$ sudo apt-get build-dep slim -y
$ cd slim-1.3.0; dpkg-buildpackage -rfakeroot -b
$ sudo dpkg -i ../slim_1.3.0-1_i386.deb


我修改后由 diff 产生的 slim_locale.patch文件:
代码:
diff -rup slim-1.3.0.orig/debian/slim.init slim-1.3.0/debian/slim.init
--- slim-1.3.0.orig/debian/slim.init   2008-09-04 17:45:16.000000000 +0800
+++ slim-1.3.0/debian/slim.init   2008-09-04 18:00:24.000000000 +0800
@@ -24,6 +24,14 @@ PIDFILE=/var/run/slim.lock
 SSD_START_ARGS="--pidfile $PIDFILE --name $(basename $DAEMON) --startas $DAEMON -- -d"
 SSD_STOP_ARGS="--pidfile $PIDFILE --name $(basename $DAEMON) --retry TERM/5/TERM/5"
 
+if [ -r /etc/default/locale ] && grep ^[^#] /etc/default/locale > /dev/null ; then
+  . /etc/default/locale
+  export LANG LANGUAGE
+elif [ -r /etc/environment ]; then
+  . /etc/environment
+  export LANG LANGUAGE
+fi
+
 case $1 in
   start)
     if [ "$HEED_DEFAULT_DISPLAY_MANAGER" = "true" ] &&


附件:
文件注释: 打补丁后的 slim deb包
slim_1.3.0-1_i386.deb [450.17 KiB]
被下载 67 次
页首
 用户资料  
 
2 楼 
 文章标题 :
帖子发表于 : 2008-09-05 8:25 
头像

注册: 2006-04-30 19:49
帖子: 116
送出感谢: 1
接收感谢: 0 次
我也用slim了,不过屏幕中间有个叉叉唉,我改了slim.conf中 hidecursor true,还是不行,是不是xfce中去不了这个叉叉呢?


页首
 用户资料  
 
3 楼 
 文章标题 :
帖子发表于 : 2008-09-05 9:48 

注册: 2006-07-09 12:22
帖子: 1331
地址: 南京
送出感谢: 0 次
接收感谢: 1
xzzgd
这个,它conf文件说了,某些wm不支持,xfce中了?


页首
 用户资料  
 
4 楼 
 文章标题 :
帖子发表于 : 2008-09-05 12:38 
头像

注册: 2005-08-14 19:53
帖子: 3998
送出感谢: 1
接收感谢: 2
我这里用的好好的,就是slim自己不支持中文显示。

还有只有debian是通过/etc/environment来定义locale的吧。一般都是/etc/profile来定义的


页首
 用户资料  
 
5 楼 
 文章标题 :
帖子发表于 : 2008-09-05 16:10 

注册: 2006-07-09 12:22
帖子: 1331
地址: 南京
送出感谢: 0 次
接收感谢: 1
jarryson
debian 的 /etc/default/locale 优先级要比 /etc/environment 高;但我以前在 ubuntu 里通过后者也能设置 locale。


页首
 用户资料  
 
6 楼 
 文章标题 :
帖子发表于 : 2008-09-05 19:10 
头像

注册: 2005-08-14 19:53
帖子: 3998
送出感谢: 1
接收感谢: 2
能定义locale的文件太多了。只要是启动有加载的文件都是可以定义的,越最后加载的就等于越优先级高。


页首
 用户资料  
 
7 楼 
 文章标题 :
帖子发表于 : 2008-09-09 20:17 
头像

注册: 2006-09-06 12:24
帖子: 272
地址: Southeast University
送出感谢: 0 次
接收感谢: 0 次
为啥要做xdm的display manager,直接/etc/xinittab用slim好了


_________________
awesome + stalonetrayer + urxvt + rox-filer + feh + SLiM


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 7 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 2 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译