How to build SunPinyin 2.0 on Mac

内容已过时,请参见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 thoughts on “How to build SunPinyin 2.0 on Mac

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

  2. hi HUGO,

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

  3. “ 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.

  4. 把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)'

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

  6. 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

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

  8. 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 =)

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

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

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

  12. 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可以不?

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

  14. Hi,

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

    Hope you can fix it soon.

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

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