php_gearman-1.0.3与gearmand-1.1.0在centos上的安装补丁

发布: 2012-09-14 09:23

1、gearmand开发活跃,现已从0.x时代跨入了1.x时代

但是,有点问题,gearmand的编译系统对比较老的linux发行版不太友好

从0.x起,在centos-5.x上安装经常出编译问题,虽然其代码本身没有问题。

2、php-gearman扩展的开发速度落后gearmand的开发,不得不在升级gearmand的时候,

对php-gearman扩展稍做修改才能正常编译执行。

3、对gearmand-1.1.0包的修改,以linux sed命令方式做自动修改。

### centos 5.x patch
sed 's/Werror/O2/g' Makefile > ma
mv -v ma Makefile
sed 's/const//g' libtest/memcached.hpp > ma
mv -v ma libtest/memcached.hpp
# cp -v ../gearman.h ./libgearman-1.0/
grep -v cinttypes libgearman-1.0/gearman.h > ma
mv -v ma libgearman-1.0/gearman.h



这些修改分别对应,编译报警级别的修正,const到non-const转换的修下,

gcc低版本(gcc-4.1)无tr1/cinttypes的修正。

4、对php-gearman扩展包的修改,以linux sed命令方式做自动修改。

sed 's/gearman_worker_error(obj->job->worker)/gearman_strerror(obj->ret)/g' php_gearman.c > ma
mv -v ma php_gearman.c
sed 's/gearman_worker_error(jobj->job->worker)/gearman_strerror(jobj->ret)/g' php_gearman.c > ma
mv -v ma php_gearman.c

sed 's/&gearman_module_entry/&gearman_module_entry\n\n\nenum{GEARMAN_MAGIC_TEXT,GEARMAN_MAGIC_REQUEST,GEARMAN_MAGIC_RESPONSE};/g' ph
p_gearman.h > ma
mv -v ma php_gearman.h

修改分另针对以下不兼容问题,

a)由于结构隐藏问题,不能再通过obj->obj->worker取到gearman_worker_st指针。

b)有几个常量不在对客户端库开放,暂时手工加入修正这个问题。

实际上完全可以去掉,没有使用。

5、希望gearmand自身越来越完善。


原文: http://qtchina.tk/?q=node/684

Powered by zexport