打过 locale 补丁的 slim deb 包

其他Linux/Unix/BSD/OSX等发行版讨论
回复
aBiNg
帖子: 1331
注册时间: 2006-07-09 12:22
来自: 南京

打过 locale 补丁的 slim deb 包

#1

帖子 aBiNg » 2008-09-04 20:50

之前用过几次的 slim,又几次删除了,只因为对产生的后果(fcitx调不出,字体改变等)极其反感,也想过修改 slim.conf 文件的,但终没注意到是 locale 的问题。

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

google 到这个:https://bugs.launchpad.net/ubuntu/+sour ... 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_1.3.0-1_i386.deb
打补丁后的 slim deb包
(450.17 KiB) 已下载 106 次
头像
xzzgd
帖子: 116
注册时间: 2006-04-30 19:49

#2

帖子 xzzgd » 2008-09-05 8:25

我也用slim了,不过屏幕中间有个叉叉唉,我改了slim.conf中 hidecursor true,还是不行,是不是xfce中去不了这个叉叉呢?
aBiNg
帖子: 1331
注册时间: 2006-07-09 12:22
来自: 南京

#3

帖子 aBiNg » 2008-09-05 9:48

xzzgd
这个,它conf文件说了,某些wm不支持,xfce中了?
头像
jarryson
帖子: 4002
注册时间: 2005-08-14 19:53

#4

帖子 jarryson » 2008-09-05 12:38

我这里用的好好的,就是slim自己不支持中文显示。

还有只有debian是通过/etc/environment来定义locale的吧。一般都是/etc/profile来定义的
aBiNg
帖子: 1331
注册时间: 2006-07-09 12:22
来自: 南京

#5

帖子 aBiNg » 2008-09-05 16:10

jarryson
debian 的 /etc/default/locale 优先级要比 /etc/environment 高;但我以前在 ubuntu 里通过后者也能设置 locale。
头像
jarryson
帖子: 4002
注册时间: 2005-08-14 19:53

#6

帖子 jarryson » 2008-09-05 19:10

能定义locale的文件太多了。只要是启动有加载的文件都是可以定义的,越最后加载的就等于越优先级高。
头像
syhan
帖子: 272
注册时间: 2006-09-06 12:24
来自: Southeast University

#7

帖子 syhan » 2008-09-09 20:17

为啥要做xdm的display manager,直接/etc/xinittab用slim好了
awesome + stalonetrayer + urxvt + rox-filer + feh + SLiM
回复