I was rebuilding the BlogMatrix Platform on a Fedora Core 5 box this morning when I noticed mod_python wasn't being properly set up. The issue turns out to be that mod_python fails to build:
./configure: line 3427: syntax error near unexpected token `('
./configure: line 3427: ` as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`'
+ exit 1
Through the magic of Google, we quickly found a fix:
A bug in bash 3.1 causes configure to fail. This has been reported on recent versions of Gentoo and and discussed on the mod_python mailing list:
http://bugs.gentoo.org/show_bug.cgi?id=118948
http://www.modpython.org/pipermail/mod_python/2006-January/019965.html
http://www.modpython.org/pipermail/mod_python/2006-January/019969.html
According to the gentoo bug report, the problem in configure.in is the double backslash escape sequence in the line:
MP_VERSION=`echo $MP_VERSION | sed s/\\"//g`
Changing this to:
MP_VERSION=`echo $MP_VERSION | sed s/\"//g`
fixes it for bash 3.1.
I wonder why mod_python is using \\" since the gentoo fix seems to work ok with bash 3.0 (and GNU sed) just as well. Is it there to support other shells, other sed versions, older bash versions... ??
I suggest mod_python adopts the gentoo fix, or avoids the problem altogether by using tr. eg.
MP_VERSION=`echo $MP_VERSION | tr -d '"'`

