-
Notifications
You must be signed in to change notification settings - Fork 185
Install From Source
安装下列软件包(注意你的发行版可能使用与此不同的包名)
gcc g++ make cmake pkg-config glib(开发包) curl(开发包) libpurple(开发包) sqlite3(开发包) zlib(开发包)
可选包(通常提供了更好的性能,推荐安装)
js(开发包) libev(开发包)
在 Ubuntu/Debian 上,可以用以下命令安装
$ sudo apt-get install build-essential cmake pkg-config libglib2.0-dev libcurl4-openssl-dev\
libpurple-dev libsqlite3-dev libmozjs185-dev libev-dev
注意编译需要 libpurple>=2.8。推荐使用 curl>=7.22.0,否则图片收发可能有问题。
在 Fedora 上,可以用以下命令安装
$ sudo yum install gcc gcc-c++ make cmake pkgconfig glib-devel libcurl-devel libpurple-devel\
sqlite-devel zlib-devel js-devel
安装master分支
$ git clone https://github.com/xiehuc/pidgin-lwqq.git
$ cd pidgin-lwqq
$ git submodule init
$ git submodule update
$ mkdir build
$ cd build
$ cmake ..
$ make
$ sudo make install
安装dev分支
...
$ cd pidgin-lwqq
$ git checkout dev
$ git submodule init
...
请确保自己真正理解了每步的含义,如果不能,请自行google。
编译成功以后会出现如下的提示:需要特别注意
================lwqq flags=====================
-- With Libev (Option) : Off
===============================================
===============pidgin-lwqq flags===============
-- With Mozjs (Option) : Off
-- Native Language Support : true
-- Install Path : /usr/lib/purple-2
===============================================
- With Libev: 可以减少UI的卡顿问题,会自动检测是否安装了libev-dev包来自动启用。 因为一些系统如ubuntu的libcurl的dns查询是同步方式的,所以在网络环境差的时候容易 卡UI.libev能够有效的解决这种问题.但是鉴于平时测定单纯用libpurple的eventloop的效能也不算太差,所以libev使 用可选方式支持.
- With Mozjs: 提供javascript解析hash.js的能力,能够快速应对webqq更新js的情况而无需重新编译。(不过最近webqq更新js的频率变低了),支持mozjs185和mozjs17(对于gentoo)两种,默认以mozjs185优先
- Native Laguage Support: 编译多语言支持,会自动检测是否有gettext环境并自动启用,可以通过 -DNLS=Off来强制关闭
- Install Path: 自动检测purple-2的安装目录。无需再使用CMAKE_INSTALL_PREFIX宏
可以使用cmake .. -DWITH_{...}
来强制打开关闭特性
由于Centos上面的很多包都太老了,导致没有mozjs185,这里需要说明的是,这里需要说明的是,我只能尽量去向后兼容,对于做到对centos现有的兼容程度已经付出了很多的劳动,而且始终没有办法避免包太老的问题,我已经决定不再回复centos编译问题提出的任何issue,请自行解决,现在还有很多人没有明白mozjs185是怎么回事:
- mozjs185包是可选的
- 开启了mozjs185包的好处是以后在webqq更换了hash校验之后能很快重新登录,并且是对用户透明的.因为这里需要别人先发issue说hash函数更新了,我去从官网的js中把hash相关的趴下来,放到sae中,然后其它用户在下次登录的时候会自动从sae下载hash.js从而顺利验证.
- 不开启mozjs185不影响平时的使用,但是在webqq更换了hash校验之后就会提示错误,并且只有等到我把js翻译成c语言,然后放到github上,再由自己重新编译源代码或者是等待别人打包好的二进制包.所以周期比较长
- 把js翻译成c的工作我以后会越来越少做,因为我相当于是义务性质的工作,想翻译或者是不想翻译是我的事,因为我已经提供了更好的解决方案,至于自己因为包太老的原因我只能表示我已经尽力的,翻译js的工作是重复的,多余的.如果是你觉得我十分的懒惰,或者是性格恶劣或者是不够意思,我想说"这里是开放的平台",请不要把压力都集中在某一个人上面,因为完全可以提交patch,这个项目开了这么久了也见多少人pull request,这个开源的气氛完全没有.
其实我还有很多想说的,但是我说了结果肯定会引起不愉快的,所以我还是先闭口吧.
我随便找了一个centos可用的mozjs,可以用下面的方法安装
#yum localinstall http://packages.squiz.net/centos/5/x86_64/mozjs17-devel-17.0.0-4.el5.centos-squiz.x86_64.rpm http://packages.squiz.net/centos/5/x86_64/mozjs17-17.0.0-4.el5.centos-squiz.x86_64.rpm
其它的步骤就和上面的一样了.
另外,可能centos上需要make两次才能编译,这个可能是cmake2.6的问题,cmake2.6实在是太老了,我在其它系统上面也没有遇到问题,所以就没有去排查了.应该不是我配置写得不好的原因.
- 下载adium的源代码并且使用
xcodebuild -configuration Debug
来编译adium - 使用brew安装sqlite3,zlib,curl,spidermonkey的开发包
brew install sqlite3 zlib curl spidermonkey
- 适用cmake生成config.h,步骤内容同上面Linux部分,除了
make
和make install
两步 - 用xcode打开
pidgin-lwqq/adium/adium-lwqq.xcodeproj
然后编译。保持adium源码的目录和pidgin-lwqq的源码目录如下的结构:
├── adium
└── pidgin-lwqq
- 参考lwqq/wiki配置好编译环境
- 从这里下载pidgin的源代码,并且解压缩到
lwqq_root/pidgin
目录下,根据BuildWinPidgin编译Windows版本的Pidgin(其实主要是为了获取libpurple) 编译完成之后把该文件夹复制到lwqq_root/win32-dev/pidgin
目录下.- bonjourd的编译依赖获取太麻烦了,所以我们这里直接修改
pidgin/libpurple/protocols/Makefile.mingw
.删除bonjour. - 一些包的名字有问题,应该是源代码不是最新的缘故:nss的那个包文件夹名字为nss-3.13.6-nspr-4.9.2以及pidgin-inst-deps-20120910
- 在win8下编译,会因为wstcpip和winsock的冲突,导致无法编译,需要调整include的顺序。
- 在这里下载并解压缩到win32-dev中
- bonjourd的编译依赖获取太麻烦了,所以我们这里直接修改
- 在第2步中就会获取glib的依赖,所以这里不用再做什么.
- 在这里下载spider monkey的mingw32预编译好的包,解压缩到win32-dev/js-1.8.5-mingw32目录下.
- 需要使用在上面提供的依赖的压缩包文件,如果是随意复制其它来源的dll(如pthreadGC2.dll会导致这些dll依赖libgccsw***.dll 从而使得静态链接的libwebqq.dll失效,直接导致了pidgin退出的时候出现异常错误)
也可以直接下载整理好的pidgin-dependencies和pidgin-lwqq-dependencies直接解压缩到win32-dev中,pidgin源代码中需要修改的文件放在了pidgin-dependencies/pidgin目录下了。
打开一个MinGW Shell,进入lwqq_root
目录,输入
git clone https://github.com/xiehuc/pidgin-lwqq.git
git submodule init
git submodule update
cd pidgin-lwqq
mkdir build;cd build
cmake .. -G "MSYS Makefiles" -DWIN32_LIBS_DIR=`lwqq_root/win32-dev`的绝对路径 -DPACKAGE=ZIP
make
最后,就可以在build/src
目录下获得libwebqq.dll.
PACKAGE
选项可以自动打包成zip文件,使用make package
之后可以在build
目录下获得zip包
将制作的zip包解压缩到pidgin的根目录即可。执行pidgin就可以在协议中看到WebQQ协议了。