From 0c5c03d095485f7521d96cd44314f9a0ee826232 Mon Sep 17 00:00:00 2001 From: Wolfram Sang Date: Wed, 10 Jun 2009 10:57:52 +0000 Subject: * patches: remove 'generic'-layer git-svn-id: https://svn.pengutronix.de/svn/ptxdist/trunks/ptxdist-trunk@10711 33e552b5-05e3-0310-8538-816dae2090ed --- .../mod_python-3.3.1-python-headers.diff | 380 +++++++++++++++++++++ 1 file changed, 380 insertions(+) create mode 100644 patches/mod_python-3.3.1/mod_python-3.3.1-python-headers.diff (limited to 'patches/mod_python-3.3.1/mod_python-3.3.1-python-headers.diff') diff --git a/patches/mod_python-3.3.1/mod_python-3.3.1-python-headers.diff b/patches/mod_python-3.3.1/mod_python-3.3.1-python-headers.diff new file mode 100644 index 000000000..5f92e420d --- /dev/null +++ b/patches/mod_python-3.3.1/mod_python-3.3.1-python-headers.diff @@ -0,0 +1,380 @@ +From: Robert Schwebel +Subject: [patch] fix python headers + +When cross compiling mod_python for a 32 bit system while being on a 64 +bit build host, we get the following error: + +some_path/include/python2.4/pyport.h:612:2: error: #error "LONG_BIT definition appears wrong for platform (bad gcc/glibc config?)." + +The reason is that in a cross scenario we need a python build for the +"--build" machine and one for the "--host" machine; currently the python +headers have been taken from the "--build" path, which brings 64 bit +headers into a 32 bit build. + +The patch below was taken from the OpenEmbedded repository and adapted +to mod_python. + +Signed-off-by: Robert Schwebel + +--- + autogen.sh | 5 + configure.in | 8 - + m4/python.m4 | 307 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + src/Makefile.in | 2 + 4 files changed, 317 insertions(+), 5 deletions(-) + +Index: mod_python-3.3.1/m4/python.m4 +=================================================================== +--- /dev/null ++++ mod_python-3.3.1/m4/python.m4 +@@ -0,0 +1,307 @@ ++dnl ++dnl Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005 ++dnl Free Software Foundation, Inc. ++dnl ++dnl This file is free software; the Free Software Foundation ++dnl gives unlimited permission to copy and/or distribute it, ++dnl with or without modifications, as long as this notice is preserved. ++dnl ++ ++dnl ++dnl AM_CHECK_PYMOD(MODNAME [,SYMBOL [,ACTION-IF-FOUND [,ACTION-IF-NOT-FOUND]]]) ++dnl Check if a module containing a given symbol is visible to python. ++dnl ++dnl this one is commonly used with AM_PATH_PYTHONDIR ... ++dnl ++ ++AC_DEFUN([AM_CHECK_PYMOD],[ ++ ++ AC_REQUIRE([AM_PATH_PYTHON]) ++ py_mod_var=`echo $1['_']$2 | sed 'y%./+-%__p_%'` ++ ++ AC_MSG_CHECKING(for ifelse([$2],[],,[$2 in ])python module $1) ++ AC_CACHE_VAL(py_cv_mod_$py_mod_var, [ ++ ifelse([$2],[], [prog=" ++ import sys ++ try: ++ import $1 ++ except ImportError: ++ sys.exit(1) ++ except: ++ sys.exit(0) ++ sys.exit(0)"], [prog=" ++ import $1 ++ $1.$2"]) ++ if $PYTHON -c "$prog" 1>&AC_FD_CC 2>&AC_FD_CC ++ then ++ eval "py_cv_mod_$py_mod_var=yes" ++ else ++ eval "py_cv_mod_$py_mod_var=no" ++ fi ++ ]) ++ py_val=`eval "echo \`echo '$py_cv_mod_'$py_mod_var\`"` ++ if test "x$py_val" != xno; then ++ AC_MSG_RESULT(yes) ++ ifelse([$3], [],, [$3 ++ ])dnl ++ else ++ AC_MSG_RESULT(no) ++ ifelse([$4], [],, [$4 ++ ])dnl ++ fi ++ ++]) ++ ++ ++dnl ++dnl Check the ability to create python extensions ++dnl ++dnl AM_CHECK_PYTHON_HEADERS([ACTION-IF-POSSIBLE], dnl [ACTION-IF-NOT-POSSIBLE]) ++dnl ++dnl This function does also define PYTHON_INCLUDES ++dnl ++ ++AC_DEFUN([AM_CHECK_PYTHON_HEADERS],[ ++ ++ AC_REQUIRE([AM_PATH_PYTHON]) ++ ++ AC_MSG_CHECKING(for headers required to compile python extensions) ++ ++ dnl deduce PYTHON_INCLUDES ++ AC_ARG_WITH(python-includes, ++ AS_HELP_STRING([--with-python-includes=DIR], [DIR path to Python includes]), ++ py_exec_prefix=$withval ++ ) ++ if test x$py_exec_prefix != x; then ++ PYTHON_INCLUDES="-I${py_exec_prefix}/include/python${PYTHON_VERSION}" ++ else ++ py_prefix=`$PYTHON -c "import sys; sys.stdout.write(sys.prefix)"` ++ py_exec_prefix=`$PYTHON -c "import sys; sys.stdout.write(sys.exec_prefix)"` ++ if test -x "$PYTHON-config"; then ++ PYTHON_INCLUDES=`$PYTHON-config --includes 2>/dev/null` ++ else ++ PYTHON_INCLUDES="-I${py_prefix}/include/python${PYTHON_VERSION}" ++ if test "$py_prefix" != "$py_exec_prefix"; then ++ PYTHON_INCLUDES="$PYTHON_INCLUDES -I${py_exec_prefix}/include/python${PYTHON_VERSION}" ++ fi ++ fi ++ fi ++ ++ AC_SUBST(PYTHON_INCLUDES) ++ ++ dnl check if the headers exist: ++ save_CPPFLAGS="$CPPFLAGS" ++ CPPFLAGS="$CPPFLAGS $PYTHON_INCLUDES" ++ ++ AC_TRY_CPP([#include ],dnl ++ [AC_MSG_RESULT(found) ++ $1],dnl ++ [AC_MSG_RESULT(not found) ++ $2]) ++ CPPFLAGS="$save_CPPFLAGS" ++]) ++ ++ ++dnl ++dnl JD_PYTHON_CHECK_VERSION(PROG, VERSION, [ACTION-IF-TRUE], [ACTION-IF-FALSE]) ++dnl ++dnl Run ACTION-IF-TRUE if the Python interpreter PROG has version >= VERSION. ++dnl Run ACTION-IF-FALSE otherwise. ++dnl ++dnl This test uses sys.hexversion instead of the string equivalent. ++dnl This is similar to AM_PYTHON_CHECK_VERSION, but without python 1.5.x support ++dnl and with python 3.0 support. ++dnl ++ ++AC_DEFUN([JD_PYTHON_CHECK_VERSION],[ ++ ++ prog="import sys ++ # split strings by '.' and convert to numeric. Append some zeros ++ # because we need at least 4 digits for the hex conversion. ++ # map returns an iterator in Python 3.0 and a list in 2.x ++ minver = list(map(int, '$2'.split('.'))) + [[0, 0, 0]] ++ minverhex = 0 ++ # xrange is not present in Python 3.0 and range returns an iterator ++ for i in list(range(0, 4)): minverhex = (minverhex << 8) + minver[[i]] ++ sys.exit(sys.hexversion < minverhex)" ++ ++ AS_IF([AM_RUN_LOG([$1 -c "$prog"])], [$3], [$4]) ++ ++]) ++ ++ ++dnl ++dnl JD_PATH_PYTHON([MINIMUM-VERSION], [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) ++dnl ++dnl Adds support for distributing Python modules and packages. To ++dnl install modules, copy them to $(pythondir), using the python_PYTHON ++dnl automake variable. To install a package with the same name as the ++dnl automake package, install to $(pkgpythondir), or use the ++dnl pkgpython_PYTHON automake variable. ++dnl ++dnl The variables $(pyexecdir) and $(pkgpyexecdir) are provided as ++dnl locations to install python extension modules (shared libraries). ++dnl Another macro is required to find the appropriate flags to compile ++dnl extension modules. ++dnl ++dnl If your package is configured with a different prefix to python, ++dnl users will have to add the install directory to the PYTHONPATH ++dnl environment variable, or create a .pth file (see the python ++dnl documentation for details). ++dnl ++dnl If the MINIMUM-VERSION argument is passed, AM_PATH_PYTHON will ++dnl cause an error if the version of python installed on the system ++dnl doesn't meet the requirement. MINIMUM-VERSION should consist of ++dnl numbers and dots only. ++dnl ++ ++AC_DEFUN([JD_PATH_PYTHON], ++ [ ++ dnl Find a Python interpreter. Python versions prior to 2.0 are not ++ dnl supported ++ m4_define_default([_AM_PYTHON_INTERPRETER_LIST], ++ [python python2 python3 python3.0 python2.5 python2.4 python2.3 python2.2 dnl ++python2.1 python2.0]) ++ ++ m4_if([$1],[],[ ++ dnl No version check is needed. ++ # Find any Python interpreter. ++ if test -z "$PYTHON"; then ++ AC_PATH_PROGS([PYTHON], _AM_PYTHON_INTERPRETER_LIST, :) ++ fi ++ am_display_PYTHON=python ++ ], [ ++ dnl A version check is needed. ++ if test -n "$PYTHON"; then ++ # If the user set $PYTHON, use it and don't search something else. ++ AC_MSG_CHECKING([whether $PYTHON version >= $1]) ++ JD_PYTHON_CHECK_VERSION([$PYTHON], [$1], ++ [AC_MSG_RESULT(yes)], ++ [AC_MSG_ERROR(too old)]) ++ am_display_PYTHON=$PYTHON ++ else ++ # Otherwise, try each interpreter until we find one that satisfies ++ # VERSION. ++ AC_CACHE_CHECK([for a Python interpreter with version >= $1], ++ [am_cv_pathless_PYTHON],[ ++ for am_cv_pathless_PYTHON in _AM_PYTHON_INTERPRETER_LIST none; do ++ test "$am_cv_pathless_PYTHON" = none && break ++ JD_PYTHON_CHECK_VERSION([$am_cv_pathless_PYTHON], [$1], [break]) ++ done]) ++ # Set $PYTHON to the absolute path of $am_cv_pathless_PYTHON. ++ if test "$am_cv_pathless_PYTHON" = none; then ++ PYTHON=: ++ else ++ AC_PATH_PROG([PYTHON], [$am_cv_pathless_PYTHON]) ++ fi ++ am_display_PYTHON=$am_cv_pathless_PYTHON ++ fi ++ ]) ++ ++ if test "$PYTHON" = :; then ++ dnl Run any user-specified action, or abort. ++ m4_default([$3], [AC_MSG_ERROR([no suitable Python interpreter found])]) ++ else ++ ++ dnl Query Python for its version number. Getting [:3] seems to be ++ dnl the best way to do this; it's what "site.py" does in the standard ++ dnl library. ++ ++ AC_CACHE_CHECK([for $am_display_PYTHON version], [am_cv_python_version], ++ [am_cv_python_version=`$PYTHON -c "import sys; sys.stdout.write(sys.version[[:3]])"`]) ++ AC_SUBST([PYTHON_VERSION], [$am_cv_python_version]) ++ ++ dnl Use the values of $prefix and $exec_prefix for the corresponding ++ dnl values of PYTHON_PREFIX and PYTHON_EXEC_PREFIX. These are made ++ dnl distinct variables so they can be overridden if need be. However, ++ dnl general consensus is that you shouldn't need this ability. ++ ++ AC_SUBST([PYTHON_PREFIX], ['${prefix}']) ++ AC_SUBST([PYTHON_EXEC_PREFIX], ['${exec_prefix}']) ++ ++ dnl At times (like when building shared libraries) you may want ++ dnl to know which OS platform Python thinks this is. ++ ++ AC_CACHE_CHECK([for $am_display_PYTHON platform], [am_cv_python_platform], ++ [am_cv_python_platform=`$PYTHON -c "import sys; sys.stdout.write(sys.platform)"`]) ++ AC_SUBST([PYTHON_PLATFORM], [$am_cv_python_platform]) ++ ++ ++ dnl Set up 4 directories: ++ ++ dnl pythondir -- where to install python scripts. This is the ++ dnl site-packages directory, not the python standard library ++ dnl directory like in previous automake betas. This behavior ++ dnl is more consistent with lispdir.m4 for example. ++ dnl Query distutils for this directory. distutils does not exist in ++ dnl Python 1.5, so we fall back to the hardcoded directory if it ++ dnl doesn't work. ++ AC_CACHE_CHECK([for $am_display_PYTHON script directory], ++ [am_cv_python_pythondir], ++ [am_cv_python_pythondir=`$PYTHON -c "from distutils import sysconfig; print sysconfig.get_python_lib(0,0,prefix='$PYTHON_PREFIX')" 2>/dev/null || ++ echo "$PYTHON_PREFIX/lib/python$PYTHON_VERSION/site-packages"`]) ++ AC_SUBST([pythondir], [$am_cv_python_pythondir]) ++ ++ dnl pkgpythondir -- $PACKAGE directory under pythondir. Was ++ dnl PYTHON_SITE_PACKAGE in previous betas, but this naming is ++ dnl more consistent with the rest of automake. ++ ++ AC_SUBST([pkgpythondir], [\${pythondir}/$PACKAGE]) ++ ++ dnl pyexecdir -- directory for installing python extension modules ++ dnl (shared libraries) ++ dnl Query distutils for this directory. distutils does not exist in ++ dnl Python 1.5, so we fall back to the hardcoded directory if it ++ dnl doesn't work. ++ AC_CACHE_CHECK([for $am_display_PYTHON extension module directory], ++ [am_cv_python_pyexecdir], ++ [am_cv_python_pyexecdir=`$PYTHON -c "from distutils import sysconfig; print sysconfig.get_python_lib(1,0,prefix='$PYTHON_EXEC_PREFIX')" 2>/dev/null || ++ echo "${PYTHON_EXEC_PREFIX}/lib/python${PYTHON_VERSION}/site-packages"`]) ++ AC_SUBST([pyexecdir], [$am_cv_python_pyexecdir]) ++ ++ dnl pkgpyexecdir -- $(pyexecdir)/$(PACKAGE) ++ ++ AC_SUBST([pkgpyexecdir], [\${pyexecdir}/$PACKAGE]) ++ ++ dnl Run any user-specified action. ++ $2 ++ fi ++ ++]) ++ ++ ++dnl ++dnl JD_CHECK_PYTHON_HEADERS([ACTION-IF-POSSIBLE], [ACTION-IF-NOT-POSSIBLE]) ++dnl ++dnl A macro to check for ability to create python extensions. ++dnl This function also defines PYTHON_INCLUDES ++dnl ++ ++AC_DEFUN([JD_CHECK_PYTHON_HEADERS],[ ++ ++ AC_REQUIRE([AM_PATH_PYTHON]) ++ AC_MSG_CHECKING(for headers required to compile python extensions) ++ ++ dnl deduce PYTHON_INCLUDES ++ py_prefix=`$PYTHON -c "import sys; sys.stdout.write(sys.prefix)"` ++ py_exec_prefix=`$PYTHON -c "import sys; sys.stdout.write(sys.exec_prefix)"` ++ ++ if test -x "$PYTHON-config"; then ++ PYTHON_INCLUDES=`$PYTHON-config --includes 2>/dev/null` ++ else ++ PYTHON_INCLUDES="-I${py_prefix}/include/python${PYTHON_VERSION}" ++ if test "$py_prefix" != "$py_exec_prefix"; then ++ PYTHON_INCLUDES="$PYTHON_INCLUDES -I${py_exec_prefix}/include/python${PYTHON_VERSION}" ++ fi ++ fi ++ ++ AC_SUBST(PYTHON_INCLUDES) ++ ++ dnl check if the headers exist: ++ save_CPPFLAGS="$CPPFLAGS" ++ CPPFLAGS="$CPPFLAGS $PYTHON_INCLUDES" ++ ++ AC_TRY_CPP([#include ],[AC_MSG_RESULT(found) $1],[AC_MSG_RESULT(not found) $2]) ++ CPPFLAGS="$save_CPPFLAGS" ++]) ++ +Index: mod_python-3.3.1/configure.in +=================================================================== +--- mod_python-3.3.1.orig/configure.in ++++ mod_python-3.3.1/configure.in +@@ -275,11 +275,11 @@ LDFLAGS="${LDFLAGS} ${PyLFS} ${PyLDFLAGS + LDFLAGS="${LDFLAGS} ${PY_LDFLAGS}" + AC_MSG_RESULT($PY_LDFLAGS) + +-AC_MSG_CHECKING(where Python include files are) ++INCLUDES="${INCLUDES} ${AP_INCLUDES}" + AC_SUBST(INCLUDES) +-PY_INCLUDES="-I${PyEXEC_INSTALLDIR}/include/python${PyVERSION}" +-INCLUDES="${INCLUDES} ${AP_INCLUDES} ${PY_INCLUDES}" +-AC_MSG_RESULT($PY_INCLUDES) ++ ++# determine PYTHON_PATH ++AM_CHECK_PYTHON_HEADERS + + # this for the test.py script + AC_SUBST(TEST_SERVER_ROOT) +Index: mod_python-3.3.1/src/Makefile.in +=================================================================== +--- mod_python-3.3.1.orig/src/Makefile.in ++++ mod_python-3.3.1/src/Makefile.in +@@ -22,7 +22,7 @@ MKDEP=@MKDEP@ + + # requires flex 2.5.31 for reentrant support + LEX=@LEX@ +-INCLUDES=@INCLUDES@ ++INCLUDES=@INCLUDES@ @PYTHON_INCLUDES@ + LIBS=@LIBS@ + LDFLAGS=@LDFLAGS@ + OPT= +Index: mod_python-3.3.1/autogen.sh +=================================================================== +--- /dev/null ++++ mod_python-3.3.1/autogen.sh +@@ -0,0 +1,5 @@ ++#!/bin/sh ++ ++aclocal -I `pwd`/m4 ++autoconf ++ -- cgit v1.2.3