scourgen

22一/101

最新的Adium 1.4hg修改版,支持小i的msn群里显示发言人名字.

Adium不能在小i的msn群里显示发言人的名字,用/showname也没有用,逼得我开着虚拟机用Windows live messenger.

今天看到一篇文章,是讲如何将Adium修改成支持msn群的,但是提供的都是老版本,于是下载了Adium的源码,一步一步进行修改.

  1. 安装Mercurial
    Adium使用Mercurial管理代码,所以得先装这Mercurial.个人建议用mac port进行安装,比较方便.

    sudo port install mercurial
  2. 安装完就可以创建一个工作目录,然后下载Adium的源码了:
    cd ~
    mkdir adium_build
    hg clone http://hg.adium.im/adium
  3. 下载完成后进入Utilities/dep-build-scripts目录
    cd Utilities/dep-build-scripts/
  4. 下载一些相关的包,以下脚本会自动下载10几个包,并且会自动把文件解压到source目录
    ./common.sh -d
  5. 下载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
  6. 因为pidgin是用monotone这个源码管理软件进行管理的,所以我们得再安装monotone
    sudo port install monotone
  7. 然后对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 .
  8. 用monotone更新一下pidgin的代码
    mnt pull
    mnt update
  9. 然后开始build相关联的包
    ./general_dependencies_make.sh
  10. 如果很快就结束的话,多半是有错误发生,可以看一下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>
  11. 于是再调用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
  12. 再执行第9步,正常的话应该得到如下提示:
    Done - now run ./purple_dependencies_make.sh
  13. 然后开始编译purple的相关包,这步时间会稍微久一点.
    ./purple_dependencies_make.sh
  14. 然后在正式编译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     }
  15. 然后开始编译LibPurple
    ./purple_make.sh --i386 --regenerate
  16. 然后编译Mac通用的二进制文件
    ./universalize.sh
  17. 然后编译多语言文件
    ./make_po_files.sh
  18. 最后安装新的Frameworks到Adium中
    ./copy_frameworkds.sh
  19. 最后回到Adium的主目录,进行编译
    cd ../..
    make
  20. 完成后,会在主目录的build/Release-Debug目录中出现Adium.app,这就是最终的可执行文件了.
    打开程序,看看效果.

    不错吧,已经可以看到3个*中间的发言人名字了.

为了方便大家,这里提供我编译的版本的下载地址,是基于最新的1.4hg进行修改的,直接下载就能用了

Adium 1.4hg Scourgen编译版

分类: IT 发表评论
评论 (1) 引用 (0)
  1. 你好。我下載服用了1.4。可是還是一樣也。名字還是hotmail的。是還要設定什麼嗎。


发表评论


还没有引用.