別件で、またApache+SVN+Trac環境を作った。
と、mod_pythonのインストールのところで
In file included from /usr/include/sys/types.h:27,
from /usr/local/apache2/include/apr.h:127,
from /usr/local/apache2/include/ap_config.h:25,
from /usr/local/apache2/include/httpd.h:43,
from /usr/local/src/mod_python-3.3.1/src/include/mod_python.h:42,
from connobject.c:30:
/usr/include/features.h:150:1: warning: this is the location of the previous definition
connobject.c: In function `_conn_read':
connobject.c:142: error: request for member `next' in something not a structure or union
apxs:Error: Command failed with rc=65536
.
make[1]: *** [mod_python.so] Error 1
make[1]: Leaving directory `/usr/local/src/mod_python-3.3.1/src'
make: *** [do_dso] Error 2
というエラーがでた。
調べてみると
色々調べてて遭遇したのが,Gentoo Linux のBugzilla にあったネタ。どうやら APR 1.3.2 と mod_python 3.3.1 の組み合わせで発生するの問題のようです。
つくば日記(仮)
手元のAPRは1.3.3のようだけど、JIRAを見ると「In Progress」ということでまだ治ってないんだろう。
修正パッチが公開されてるみたいなので、それにしたがってやってみる。
diff -burN mod_python-3.3.1.original/src/connobject.c mod_python-3.3.1/src/connobject.c
--- mod_python-3.3.1.original/src/connobject.c 2006-12-03 05:36:37.000000000 +0100
+++ mod_python-3.3.1/src/connobject.c 2008-07-15 01:05:01.000000000 +0200
@@ -139,7 +139,7 @@
bytes_read = 0;
while ((bytes_read < len || len == 0) &&
- !(b == APR_BRIGADE_SENTINEL(b) ||
+ !(b == APR_BRIGADE_SENTINEL(bb) ||
APR_BUCKET_IS_EOS(b) || APR_BUCKET_IS_FLUSH(b))) {
const char *data;
bをbbにするだけですな。
で、
[root@dev mod_python-3.3.1]# ./configure --with-apxs=/usr/local/apache2/bin/apxs --with-python=/usr/local/python2.6.1/bin/python
[root@dev mod_python-3.3.1]# make
[root@dev mod_python-3.3.1]# make install
うまくいった。後は変な影響がでないことを祈るのみ。
コメントする