LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
楼主: james_su

大家如果有兴趣可以帮忙测试一下 CVS 版本的 SCIM。

[复制链接]
发表于 2004-4-30 22:37:06 | 显示全部楼层
已经编译并安装了cvs 里的 scim 及 scim-chinese,使用智能拼音,使用中基本正常,只是不能保存在面板里修改的设置,有“Failed to load socket module.”的提示。这是我用 strace 的相关输出:

  1. old_mmap(0x4078a000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x9000) = 0x4078a000
  2. close(3)                                = 0
  3. open("/etc/passwd", O_RDONLY)           = 3
  4. fcntl64(3, F_GETFD)                     = 0
  5. fcntl64(3, F_SETFD, FD_CLOEXEC)         = 0
  6. getuid32()                              = 1000
  7. open("/etc/passwd", O_RDONLY)           = 4
  8. fcntl64(4, F_GETFD)                     = 0
  9. fcntl64(4, F_SETFD, FD_CLOEXEC)         = 0
  10. _llseek(4, 0, [0], SEEK_CUR)            = 0
  11. fstat64(4, {st_mode=S_IFREG|0644, st_size=1333, ...}) = 0
  12. mmap2(NULL, 1333, PROT_READ, MAP_SHARED, 4, 0) = 0x4078c000
  13. _llseek(4, 1333, [1333], SEEK_SET)      = 0
  14. munmap(0x4078c000, 1333)                = 0
  15. close(4)                                = 0
  16. close(3)                                = 0
  17. socket(PF_UNIX, SOCK_STREAM, 0)         = 3
  18. connect(3, {sa_family=AF_UNIX, path="/tmp/scim-socket-frontend-save"}, 32) = -1 ENOENT (No such file or directory)
复制代码


还有,x11-frontend-setup.so 依赖于 0.9 的库,而非 0.99 的库:
$ldd /usr/lib/scim-1.0/0.99.0/SetupUI/x11-frontend-setup.so | grep util
        libscim-gtkutils-0.9.so.0 => /usr/lib/libscim-gtkutils-0.9.so.0 (0x404d1000)
$ll /usr/lib/libscim-gtkutils-0.9.so.0
lrwxrwxrwx    1 root     root           39 2004-04-30 23:15 /usr/lib/libscim-gtkutils-0.9.so.0 -> /usr/lib/libscim-gtkutils-0.99.so.0.0.0

另外编译过程中还有一些波折。
bootstrap 时也会有如下的出错信息:
[php]
+ aclocal -I m4
+ autoheader
+ libtoolize -c --automake
+ intltoolize -c --automake
no need for patching file 'Makefile.in.in'
+ automake --add-missing --copy --include-deps
configure.ac: installing `./install-sh'
configure.ac: installing `./missing'
Use of uninitialized value in concatenation (.) or string at /usr/bin/automake line 8450.
: installing `./config.guess'
Use of uninitialized value in concatenation (.) or string at /usr/bin/automake line 8450.
: installing `./config.sub'
extras/gtk2_immodule/Makefile.am: installing `./depcomp'
modules/FrontEnd/IMdkit/Makefile.am: installing `./compile'
+ autoconf
configure.ac:76: error: possibly undefined macro: AC_LIBTOOL_DLOPEN
      If this token and others are legitimate, please use m4_pattern_allow.
      See the Autoconf documentation.
configure.ac:77: error: possibly undefined macro: AC_PROG_LIBTOOL
configure.ac:78: error: possibly undefined macro: AC_LIB_LTDL
[/php]
只得手动运行这些 auto tools,并 configure, make
结果链接生成执行文件时会出现:
undefined reference to `dlopen'
undefined reference to `dlerror'
undefined reference to `dlsym'
的提示。自行添加了 -ldl 的链接选项后,通过了编译。
小弟对 GNU autotools 十分不了解,请问我应该安装哪些版本的 autotools 才能顺利通过编译呢?
谢谢您。

Debian sid, gcc3.3.3, automake 1.6.3, autoconf 2.59, libtool 1.6-0
发表于 2004-5-1 10:08:54 | 显示全部楼层
最初由 chaisave 发表
还有,x11-frontend-setup.so 依赖于 0.9 的库,而非 0.99 的库:
$ldd /usr/lib/scim-1.0/0.99.0/SetupUI/x11-frontend-setup.so | grep util
        libscim-gtkutils-0.9.so.0 => /usr/lib/libscim-gtkutils-0.9.so.0 (0x404d1000)
$ll /usr/lib/libscim-gtkutils-0.9.so.0
lrwxrwxrwx    1 root     root           39 2004-04-30 23:15 /usr/lib/libscim-gtkutils-0.9.so.0 -> /usr/lib/libscim-gtkutils-0.99.so.0.0.0

Confirmed.  I had both stable version and CVS HEAD installed, would that be the problem?
最初由 chaisave 发表
另外编译过程中还有一些波折。
bootstrap 时也会有如下的出错信息:
[php]
+ aclocal -I m4
+ autoheader
+ libtoolize -c --automake
+ intltoolize -c --automake
no need for patching file 'Makefile.in.in'
+ automake --add-missing --copy --include-deps
configure.ac: installing `./install-sh'
configure.ac: installing `./missing'
Use of uninitialized value in concatenation (.) or string at /usr/bin/automake line 8450.
: installing `./config.guess'
Use of uninitialized value in concatenation (.) or string at /usr/bin/automake line 8450.
: installing `./config.sub'
extras/gtk2_immodule/Makefile.am: installing `./depcomp'
modules/FrontEnd/IMdkit/Makefile.am: installing `./compile'
+ autoconf
configure.ac:76: error: possibly undefined macro: AC_LIBTOOL_DLOPEN
      If this token and others are legitimate, please use m4_pattern_allow.
      See the Autoconf documentation.
configure.ac:77: error: possibly undefined macro: AC_PROG_LIBTOOL
configure.ac:78: error: possibly undefined macro: AC_LIB_LTDL
[/php]
Debian sid, gcc3.3.3, automake 1.6.3, autoconf 2.59, libtool 1.6-0

I have automake 1.7.9 (package  automake1.7) installed, and it worked for me.
发表于 2004-5-1 10:23:33 | 显示全部楼层
用gcc 3.4编译好象有些问题,http://gcc.gnu.org/gcc-3.4/changes.html好象提到了。
g++ -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I.. -I../src -I../intl -DSCIM_LIBDIR=\"/usr/lib\" -DSCIM_DATADIR=\"/usr/share\" -DSCIM_LOCALEDIR=\"/usr/share/locale\" -DSCIM_SYSCONFDIR=\"/etc\" -DSCIM_ICONDIR=\"/usr/share/scim/icons\" -DSCIM_MODULE_PATH=\"/usr/lib/scim-1.0/\" -g -O2 -MT scim_socket.lo -MD -MP -MF .deps/scim_socket.Tpo -c scim_socket.cpp  -fPIC -DPIC -o .libs/scim_socket.lo
scim_socket.cpp: In member function `int scim::Socket::SocketImpl::read_with_timeout(void*, size_t, int)':
scim_socket.cpp:352: error: ISO C++ forbids cast to non-reference type used as lvalue
scim_socket.cpp: In member function `int scim::Socket::SocketImpl::write(const void*, size_t)':
scim_socket.cpp:374: error: ISO C++ forbids cast to non-reference type used as lvalue
./scim_socket.h: In member function `bool scim::SocketServer::run()':
./scim_socket.h:156: error: `scim::Socket::Socket(const scim::Socket&)' is private
scim_socket.cpp:826: error: within this context
./scim_socket.h:156: error: `scim::Socket::Socket(const scim::Socket&)' is private
scim_socket.cpp:834: error: within this context
./scim_socket.h:156: error: `scim::Socket::Socket(const scim::Socket&)' is private
scim_socket.cpp:854: error: within this context
make[2]: *** [scim_socket.lo] 错误 1
make[2]: Leaving directory `/home/hooey/cvs/scim/scim-lib/src'
make[1]: *** [all-recursive] 错误 1
make[1]: Leaving directory `/home/hooey/cvs/scim/scim-lib'
make: *** [all] 错误 2
发表于 2004-5-1 12:07:07 | 显示全部楼层
谢谢您的回应。
最初由 高原之狼 发表
Confirmed.  I had both stable version and CVS HEAD installed, would that be the problem?

我也是如此,不过我安装的 scim-lib 是借用 alioth 的 debianized scim 来打包的,自己修改了 changelog,使 scim 的版本成为 0.9.9,然后用 dpkg 安装。
我认为 dpkg 会在安装时新版本的 package 时,把这些旧版本的动态库(*.so)先删除,再安装新的库。安装完毕后,我也没有发现这个 0.9 的 so 文件,而这个 0.9 -> 0.99 的 symbolic link 是我后来自己添加的。所以我猜这个问题与 stable 版本和 CVS HEAD 版本共存恐无干系。

I have automake 1.7.9 (package  automake1.7) installed, and it worked for me.

我昨日也曾试过 automake 1.7.9, 不过配置时出了许多错,like:
[php]
+ aclocal -I m4
+ autoheader
+ libtoolize -c --automake
+ intltoolize -c --automake
no need for patching file 'Makefile.in.in'
+ automake --add-missing --copy --include-deps
configure.ac: installing `./install-sh'
configure.ac: installing `./missing'
configure.ac:73: installing `./config.guess'
configure.ac:73: installing `./config.sub'
extras/gtk2_immodule/Makefile.am:26: Libtool library used but `LIBTOOL' is undefined
extras/gtk2_immodule/Makefile.am:26:
extras/gtk2_immodule/Makefile.am:26: The usual way to define `LIBTOOL' is to add `AC_PROG_LIBTOOL'
extras/gtk2_immodule/Makefile.am:26: to `configure.ac' and run `aclocal' and `autoconf' again.
extras/gtk2_immodule/Makefile.am: installing `./depcomp'
modules/Config/Makefile.am:52: Libtool library used but `LIBTOOL' is undefined
modules/Config/Makefile.am:52:
modules/Config/Makefile.am:52: The usual way to define `LIBTOOL' is to add `AC_PROG_LIBTOOL'
modules/Config/Makefile.am:52: to `configure.ac' and run `aclocal' and `autoconf' again.
modules/FrontEnd/IMdkit/Makefile.am:30: Libtool library used but `LIBTOOL' is undefined
modules/FrontEnd/IMdkit/Makefile.am:30:
modules/FrontEnd/IMdkit/Makefile.am:30: The usual way to define `LIBTOOL' is to add `AC_PROG_LIBTOOL'
modules/FrontEnd/IMdkit/Makefile.am:30: to `configure.ac' and run `aclocal' and `autoconf' again.
modules/FrontEnd/IMdkit/Makefile.am: installing `./compile'
modules/FrontEnd/Makefile.am:52: Libtool library used but `LIBTOOL' is undefined
modules/FrontEnd/Makefile.am:52:
modules/FrontEnd/Makefile.am:52: The usual way to define `LIBTOOL' is to add `AC_PROG_LIBTOOL'
modules/FrontEnd/Makefile.am:52: to `configure.ac' and run `aclocal' and `autoconf' again.
modules/Server/Makefile.am:56: Libtool library used but `LIBTOOL' is undefined
modules/Server/Makefile.am:56:
modules/Server/Makefile.am:56: The usual way to define `LIBTOOL' is to add `AC_PROG_LIBTOOL'
modules/Server/Makefile.am:56: to `configure.ac' and run `aclocal' and `autoconf' again.
modules/SetupUI/Makefile.am:67: Libtool library used but `LIBTOOL' is undefined
modules/SetupUI/Makefile.am:67:
modules/SetupUI/Makefile.am:67: The usual way to define `LIBTOOL' is to add `AC_PROG_LIBTOOL'
modules/SetupUI/Makefile.am:67: to `configure.ac' and run `aclocal' and `autoconf' again.
src/Makefile.am:72: Libtool library used but `LIBTOOL' is undefined
src/Makefile.am:72:
src/Makefile.am:72: The usual way to define `LIBTOOL' is to add `AC_PROG_LIBTOOL'
src/Makefile.am:72: to `configure.ac' and run `aclocal' and `autoconf' again.
utils/Makefile.am:38: Libtool library used but `LIBTOOL' is undefined
utils/Makefile.am:38:
utils/Makefile.am:38: The usual way to define `LIBTOOL' is to add `AC_PROG_LIBTOOL'
utils/Makefile.am:38: to `configure.ac' and run `aclocal' and `autoconf' again.
+ autoconf
configure.ac:76: error: possibly undefined macro: AC_LIBTOOL_DLOPEN
      If this token and others are legitimate, please use m4_pattern_allow.
      See the Autoconf documentation.
configure.ac:77: error: possibly undefined macro: AC_PROG_LIBTOOL
configure.ac:78: error: possibly undefined macro: AC_LIB_LTDL
[/php]
看到这些,对接下来的 configure, make 没有信心,所以也就没有多试了。
发表于 2004-5-1 12:54:19 | 显示全部楼层
最初由 chaisave 发表
谢谢您的回应。

不客气,大家一起努力。:-)
最初由 chaisave 发表
我也是如此,不过我安装的 scim-lib 是借用 alioth 的 debianized scim 来打包的,自己修改了 changelog,使 scim 的版本成为 0.9.9,然后用 dpkg 安装。
我认为 dpkg 会在安装时新版本的 package 时,把这些旧版本的动态库(*.so)先删除,再安装新的库。安装完毕后,我也没有发现这个 0.9 的 so 文件,而这个 0.9 -> 0.99 的 symbolic link 是我后来自己添加的。所以我猜这个问题与 stable 版本和 CVS HEAD 版本共存恐无干系。

你说的对,如果你重新做了 package 的话,dpkg 会自动把旧的版本卸载的,所以不会共存。我是用 aptitude 安装了 0.9.6 的 package 后,又直接编译安装 0.9.9 到一个临时目录的。所以我们的情况不太一样。
最初由 chaisave 发表
我昨日也曾试过 automake 1.7.9, 不过配置时出了许多错,like:
[php]
+ aclocal -I m4
+ autoheader
+ libtoolize -c --automake
+ intltoolize -c --automake
no need for patching file 'Makefile.in.in'
+ automake --add-missing --copy --include-deps
(snipped)
[/php]
看到这些,对接下来的 configure, make 没有信心,所以也就没有多试了。

很奇怪。你确定你的 automake 是指向 1.7 的?另外你说你的 libtool 是 1.6,是不是 experimental 里的?
发表于 2004-5-1 12:59:45 | 显示全部楼层
P.S. Sorry, I found you are right. The dependency problem has sth. to with the previous installed scim-lib.
After I compiled the scim-lib and scim-chinese from alioth this morning, I found I could NOT start up scim which complains:
Can not load simple Config module. Using dummy module instead.
thru the output of strace, I conclude that scim-lib alway reference the so files in /usr/lib instead of the so files in its ./src directory when the /usr/lib 's so files is available.
发表于 2004-5-1 13:08:20 | 显示全部楼层
最初由 chaisave 发表
After I compiled the scim-lib and scim-chinese from alioth this morning

Compiled scim-lib and scim-chinese from Alioth?  How did you do that?  Download source package and then compile locally?

It's quite possible there's something wrong with the packages on Alioth, but I don't think it would leave anything in your system after uninstall.

BTW, scim-chinese is on Alioth now.  Wanna give it a try? :-)
发表于 2004-5-1 13:15:32 | 显示全部楼层
你说的对,如果你重新做了 package 的话,dpkg 会自动把旧的版本卸载的,所以不会共存。我是用 aptitude 安装了 0.9.6 的 package 后,又直接编译安装 0.9.9 到一个临时目录的。所以我们的情况不太一样。

Shown as above post, actually, we do have sth. in common.
很奇怪。你确定你的 automake 是指向 1.7 的?另外你说你的 libtool 是 1.6,是不是 experimental 里的?

Yes, I am sure.
$ll /usr/bin/automake
lrwxrwxrwx    1 root     root           26 2004-04-07 17:58 /usr/bin/automake -> /etc/alternatives/automake
$sudo update-alternatives --display automake
automake - status is manual.
link currently points to /usr/bin/automake-1.7
----------snipped-------------------

My libtools is installed from experimental by accident. I'll pin it at unstable later. And try compile SCIM using the 1.5.6.
发表于 2004-5-1 13:21:12 | 显示全部楼层
最初由 chaisave 发表
My libtools is installed from experimental by accident. I'll pin it at unstable later. And try compile SCIM using the 1.5.6.

This should be the problem.  I heard that libtool 1.6 is not compatible with unstable.
发表于 2004-5-1 13:33:23 | 显示全部楼层
最初由 高原之狼 发表
Compiled scim-lib and scim-chinese from Alioth?  How did you do that?  Download source package and then compile locally?

Sure, after added the alioth's deb source to my sources.list , I
$apt-get source scim scim-chinese
and dpkg-builded them.

It's quite possible there's something wrong with the packages on Alioth, but I don't think it would leave anything in your system after uninstall.

you may misunderstand what I said. I meant that:
1. install the scim 0.9.6
2. and the 0.9 so files will stay in /usr/lib
3. get 0.9.9 scim from cvs
4. the 0.9.9 compile process will reference the old /usr/lib/scim-xxxx.so files which are 0.9
5. install the newly cooked deb package
5.1 the old so files has gone with wind
5.2 and the new one installed
6. $ scim -d
6.1 scim searches the 0.9 so files which she find when compiling, but in vain
6.2 scim complains:
Loading simple Config module ...
Can not load simple Config module. Using dummy module instead.
Creating backend ...
Loading Server module: pinyin ...
Failed to load pinyin Server module.
Loading Server module: rawcode ...
Failed to load rawcode Server module.
Loading Server module: socket ...
Failed to load socket Server module.
Loading Server module: table ...
Failed to load table Server module.
Loading x11 FrontEnd module ...
Failed to load x11 FrontEnd module.

and vice versa.

BTW, scim-chinese is on Alioth now.  Wanna give it a try? :-)

Of coz, I'm trying indeed. heh~~
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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