Nov 23

内容已过时,请参见Migrated sunpinyin-2.0’s repo to github

首先要说明的是,sunpinyin-2.0 for Mac版本还在开发中,目前的状况是,可以build并安装到系统中,并且能够进行输入,不过用户配置方面(从界面到代码)都还没有实现。

第一步,需要安装分布式版本管理工具mercurial,并安装MacPorts,以安装必要的autotools软件包:

$ sudo /opt/local/bin/port install glib2 intltool sqlite3
$ export PATH=$PATH:/Developer/usr/bin:/opt/local/bin
(为了将来方便,可将此行加入到~/.bash_profile中)

接下来,从OpenSolaris上check out项目的代码,这个会花费比较长的时间,需要耐心 :)

$ hg clone ssh://anon@hg.opensolaris.org/hg/nv-g11n/inputmethod

然后进入到sunpinyin2目录中,执行autogen.sh

$ cd sunpinyin2
$ cd data; ln -s ../../sunpinyin/ime/data/lm_sc.t3g.le lm_sc.t3g; cd -
$ ACLOCAL_FLAGS=-I/opt/local/share/aclocal ./autogen.sh \
  --disable-cle --disable-ibus

由于目前在autogen.sh里,hardcoded了--enable-ibus等选项,所以在执行configure时会出错,所以需要再用适当的选项重新执行一遍configure;另外需要使用MacPorts的glibtoolize重新生成一下libtool,否则无法进行链接,

$ /opt/local/bin/glibtoolize --force --copy
$ ./configure --enable-debug --disable-cle --disable-ibus

接下来需要build词表,

$ cd build; make genpyt; make lexicon; cd -

最后就是build基于IMKit的输入法前端了,

$ cd wrapper/macos
$ make clean; make
$ sudo make install

现在,sunpinyin-2.0应该已经安装到系统中了,需要re-login才可以看到这个输入法。

调试的时候,需要用ssh从另外一台机器远程登录到本机上。之后,如果要验证bug fixes,为了避免重复re-login,可以反复执行killall -9 SunPinyin,直至系统报告没有SunPinyin进程,然后也要重新启动用来测试的应用(例如textedit)。

26 Responses to “How to build SunPinyin 2.0 on Mac”

  1. tchaikov says:

    要不回头和 xue wei 商量一下,把 autogen.sh 给改回来吧?另外,cle 已经被我缺省 disable 掉了。
    还有,在 configure 里面,现在所有的 wrapper 缺省都是 “no” 或者 “auto”。

  2. Speed says:

    加油~
    期待sun2.0 for mac

  3. HUGO says:

    请问有模糊拼音么?我觉得很多像我这种南方人是特别需要的。谢谢

  4. tchaikov says:

    hi HUGO,

    模糊拼音正是 SunPinyin 2.0 的新功能之一。详情请参见:http://code.google.com/p/ibus-sunpinyin/wiki/WhatsNew 。:)

  5. iJay says:

    “ cd data; ln -s ../sunpinyin/ime/data/lm_sc.t3g.le .; cd -”这个是把lm_sc.t3g.le链接到data下的吧?

    还有,autogen的时候报错:

    No package ‘sqlite3′ found

    Consider adjusting the PKG_CONFIG_PATH environment variable if you
    installed software in a non-standard prefix.

    Alternatively, you may set the environment variables sqlite3_CFLAGS
    and sqlite3_LIBS to avoid the need to call pkg-config.
    See the pkg-config man page for more details.

  6. iJay says:

    port install了一下sqlite,但是又提示

    No package ‘ibus-1.0′ found

    是不是“–disable-ibus”没用?

  7. iJay says:

    把autogen.sh里的–enable-ibus改成–disable-ibus又失败:

    ./configure: line 17701: syntax error near unexpected token `0.35.0′
    ./configure: line 17701: `IT_PROG_INTLTOOL(0.35.0)’

  8. yongsun says:

    iJay, 非常感谢你的反馈,非常惭愧,我那个ln -s的命令路径有误,而且需要用port安装sqlite3,已经更新博客的内容。关于IT_PROG_INTLTOOL的问题,你可以看看intltool是否已经被port安装了,并且/opt/local/bin是否在你的$PATH中。

  9. iJay says:

    1、intltool通常没有安装
    2、autogen时的–disable-ibus参数不生效,需要手动修改autogen.sh文件中的–enable-ibus为–disable-ibus
    3、make lexicon出错:

    ./genpyt ../raw/dict.utf8 ../data/pydict_sc.bin ../swap/pydict_sc.log.utf8 ../data/lm_sc.t3g
    Opening language model…open lm: No such file or directory
    error!
    make: *** [lexicon] Error 255

  10. yongsun says:

    iJay, 你看看sunpinyin2/data目录下是不是已经有lm_sc.t3g这个符号链接了?

  11. iJay says:

    没有啊,从哪儿链过来?之前链的不是lm_sc.t3g.le么?

  12. iJay says:

    咱们用gtalk联系吧,这么一来一去太麻烦
    mustangxu@gmail.com

  13. iJay says:

    终于成功编出来了~~接下来怎么参与?是要修改pref panel么?

  14. yongsun says:

    是,perf panel是界面部分,SunPinyinApplicationDelegate.h/mm是处理有关用户配置的代码,你可以先看看Interface Builder相关的东西 …

  15. emi says:

    great job.. so usefull to mac users like me; i hope you keep it up this great project. i will try to share and translate to my friends on univ.

    great job again =)

  16. siikii says:

    请问如何开启模糊音啊?是需要我在Build的时候设置吗?我在设置里找不到这一选项。对南方人来说,没模糊音,基本无法使用了。

  17. chu says:

    请问可以在 FreeBSD 上 build 吗?

  18. Elden says:

    好像设定的翻页键无效

  19. yongsun says:

    siikii,你说的是mac版本?mac版本的设置界面还没有开发,可以在build中设置,可以参考ime-core/imi_options.h/cpp。

  20. yongsun says:

    chu,目前只有ibus的porting是完成的,如果可以在freebsd上把ibus build好,是可以在freebsd上build的。据我了解,sunpinyin-1.0 for scim是可以在bsd系统上运行的。如果有兴趣,也欢迎加入我们的scim porting工作 :)

  21. yongsun says:

    Elden,mac版本的用户设置还未开发,欢迎加入我们的开发工作啊 :)

  22. chu says:

    嗯,FreeBSD 上已经有 ibus 的 ports 了,等有时间研究下。

  23. Xue says:

    hi, 我把autogen.sh中的写死的configure参数都注释掉了。现在可以接受autogen.sh的参数。所以执行完:
    ACLOCAL_FLAGS=-I/opt/local/share/aclocal ./autogen.sh \
    –disable-cle –disable-ibus

    然后,进入wrapper/macos,make就可以了。我的环境下make成功。但是没敢make install,老孙能不能说说怎么删除, 直接make uninstall可以不?

  24. Xue says:

    sorry,漏了一步,应该:
    1。ACLOCAL_FLAGS=-I/opt/local/share/aclocal ./autogen.sh \
    –disable-cle –disable-ibus
    2。make
    3。cd wrapper/macos; make

  25. Jun says:

    Hi,

    Great work! 我按照你说的步骤安装了SunPinyin 2.0 on Mac. 现在的情况是在词组中输入m没反映,比如我想输入“这么”(zheme),输入法只接受到了(zhee),m键没输入进去。但是如果m在第一个位置上就行…不知道这个bug是我编译的问题,还是mac版有,或者其他版本也有…

    Hope you can fix it soon.

  26. yongsun says:

    Jun,我刚修正了这个问题,你可以再更新一下代码仓库,然后试一试 :)

Leave a Reply

To submit your comment, click the image below where it asks you to... Clickcha - The One-click Captcha
preload preload preload