22一/101
最新的Adium 1.4hg修改版,支持小i的msn群里显示发言人名字.
Adium不能在小i的msn群里显示发言人的名字,用/showname也没有用,逼得我开着虚拟机用Windows live messenger.
今天看到一篇文章,是讲如何将Adium修改成支持msn群的,但是提供的都是老版本,于是下载了Adium的源码,一步一步进行修改.
- 安装Mercurial
Adium使用Mercurial管理代码,所以得先装这Mercurial.个人建议用mac port进行安装,比较方便.sudo port install mercurial
- 安装完就可以创建一个工作目录,然后下载Adium的源码了:
cd ~ mkdir adium_build hg clone http://hg.adium.im/adium
- 下载完成后进入Utilities/dep-build-scripts目录
cd Utilities/dep-build-scripts/
- 下载一些相关的包,以下脚本会自动下载10几个包,并且会自动把文件解压到source目录
./common.sh -d
- 下载Pidgin的源文件并解压缩
cd source mkdir im.pidgin.adium.1-4 cd im.pidgin.adium.1-4 wget http://developer.pidgin.im/static/pidgin.mtn.bz2 bzip2 -d pidgin.mtn.bz2
- 因为pidgin是用monotone这个源码管理软件进行管理的,所以我们得再安装monotone
sudo port install monotone
- 然后对monotone的独特项目管理包(.mnt)文件进行解压,得到pidgin的源文件
mtn db -d pidgin.mtn migrate mtn -d pidgin.mtn pull --set-default mtn.pidgin.im "im.pidgin.*" mtn -d pidgin.mtn co -b im.pidgin.adium.1-4 .
- 用monotone更新一下pidgin的代码
mnt pull mnt update
- 然后开始build相关联的包
./general_dependencies_make.sh
- 如果很快就结束的话,多半是有错误发生,可以看一下log文件,比如我就出现了perl里的某个XML Parser包找不到的错误,导致intltool包编译不成功.
vim ./build/purple_dep_make.log/usr/bin/install -c -m 644 'libgadu.pc' '/Users/scourgen/StudyWorkSpaces/Adium/adium-1.4/Utilities/dep-build-scripts/build/root-i386/lib/pkgconfig/libgadu.pc' make[2]: Nothing to be done for `install-exec-am'. make[2]: Nothing to be done for `install-data-am'. checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for a thread-safe mkdir -p... /Users/scourgen/StudyWorkSpaces/Adium/adium-1.4/Utilities/dep-build-scripts/source/intltool-0.36.2/install-sh -c -d checking for gawk... gawk checking whether make sets $(MAKE)... yes checking for perl... /opt/local/bin/perl <span style="color: #ff0000;">checking for XML::Parser... configure: error: XML::Parser perl module is required for intltool</span> - 于是再调用port安装这个XML Parser
sudo port install p5-xml-parser ---> Computing dependencies for p5-xml-parser ---> Fetching p5-xml-parser ---> Attempting to fetch XML-Parser-2.36.tar.gz from http://distfiles.macports.org/perl5 ---> Verifying checksum(s) for p5-xml-parser ---> Extracting p5-xml-parser ---> Configuring p5-xml-parser ---> Building p5-xml-parser ---> Staging p5-xml-parser into destroot ---> Installing p5-xml-parser @2.36_0 ---> Activating p5-xml-parser @2.36_0 ---> Cleaning p5-xml-parser
- 再执行第9步,正常的话应该得到如下提示:
Done - now run ./purple_dependencies_make.sh
- 然后开始编译purple的相关包,这步时间会稍微久一点.
./purple_dependencies_make.sh
- 然后在正式编译purple之前进行修改,加入显示msn群里发言人名字的功能.
if ((value = msn_message_get_attr(msg, "P4-Context")) != NULL) { char *body_enc2; body_enc2 = g_strdup_printf("<b>***%s***</b> %s", value, body_enc ? body_enc : ""); g_free(body_enc); body_enc = body_enc2; }将上述代码插入到source/im.pidgin.adium.1-4/libpurple/protocols/msn/msg.c 847行之后,变成:
842 #if 0 843 if ((value = msn_message_get_attr(msg, "User-Agent")) != NULL) 844 { 845 purple_debug_misc("msn", "User-Agent = '%s'\n", value); 846 } 847 #endif 848 849 if ((value = msn_message_get_attr(msg, "P4-Context")) != NULL) 850 { 851 char *body_enc2; 852 body_enc2 = g_strdup_printf("<b>***%s***</b> %s", value, 853 body_enc ? body_enc : ""); 854 g_free(body_enc); 855 body_enc = body_enc2; 856 } - 然后开始编译LibPurple
./purple_make.sh --i386 --regenerate
- 然后编译Mac通用的二进制文件
./universalize.sh
- 然后编译多语言文件
./make_po_files.sh
- 最后安装新的Frameworks到Adium中
./copy_frameworkds.sh
- 最后回到Adium的主目录,进行编译
cd ../.. make
- 完成后,会在主目录的build/Release-Debug目录中出现Adium.app,这就是最终的可执行文件了.
打开程序,看看效果.

不错吧,已经可以看到3个*中间的发言人名字了.
为了方便大家,这里提供我编译的版本的下载地址,是基于最新的1.4hg进行修改的,直接下载就能用了
2010年06月17日 08:52
你好。我下載服用了1.4。可是還是一樣也。名字還是hotmail的。是還要設定什麼嗎。