[Buildroot] [git commit] package/ola: fix check for google.protobuf
Peter Korsgaard
peter at korsgaard.com
Tue Jan 14 22:36:59 UTC 2014
commit: http://git.buildroot.net/buildroot/commit/?id=e532033bff523b8175b31d60acb79910a7e507fd
branch: http://git.buildroot.net/buildroot/commit/?id=refs/heads/master
Fix the google.protobuf check in an upstreamable way.
As suggested by Arnout, use an autoconf ac_cv_have_* variable
so we can pass it on the command line. This is generic behaviour
for a lot of autoconf internals, so it makes sense to do it this
way.
Signed-off-by: "Yann E. MORIN" <yann.morin.1998 at free.fr>
Cc: Arnout Vandecappelle <arnout at mind.be>
Reviewed-by: Arnout Vandecappelle (Essensium/Mind) <arnout at mind.be>
Signed-off-by: Peter Korsgaard <peter at korsgaard.com>
---
.../ola-0002-fix-check-for-google.protobuf.patch | 30 -------
...002-move-python-sub-check-to-configure.ac.patch | 48 ++++++++++++
...k-for-python-module-for-cross-compilation.patch | 81 ++++++++++++++++++++
package/ola/ola.mk | 1 +
4 files changed, 130 insertions(+), 30 deletions(-)
diff --git a/package/ola/ola-0002-fix-check-for-google.protobuf.patch b/package/ola/ola-0002-fix-check-for-google.protobuf.patch
deleted file mode 100644
index f0bc465..0000000
--- a/package/ola/ola-0002-fix-check-for-google.protobuf.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-configure: do not check for google.protobuf
-
-The check for google.protobuf is inherently flawed for cross-compilation,
-as it uses the host Python to check for target modules.
-
-In Buildroot, our dependencies ensures that google.protobuf is present
-by the time we configure and build ola, so we can just skip the test
-altogether.
-
-We don't need to fake the result of the test: it is used nowhere; the
-test is only here to fail or succeed.
-
-Signed-off-by: "Yann E. MORIN" <yann.morin.1998 at free.fr>
-
-diff -durN ola-0.8.32.orig/configure.ac ola-0.8.32/configure.ac
---- ola-0.8.32.orig/configure.ac 2013-09-29 19:46:48.000000000 +0200
-+++ ola-0.8.32/configure.ac 2014-01-09 19:43:55.342044336 +0100
-@@ -530,7 +530,11 @@
-
- if test "${enable_python_libs}" = "yes"; then
- AM_PATH_PYTHON(2.6)
-- AX_PYTHON_MODULE("google.protobuf", "fatal")
-+# AX_PYTHON_MODULE is inherently broken for cross-compilation
-+# since it executes the host Python to check for target modules.
-+# In Buildroot, we do not need to check for google.protobuf,
-+# since our dependencies ensure it is available.
-+# AX_PYTHON_MODULE("google.protobuf", "fatal")
- fi
-
- # Maybe build the logic sniffer tools
diff --git a/package/ola/ola-0002-move-python-sub-check-to-configure.ac.patch b/package/ola/ola-0002-move-python-sub-check-to-configure.ac.patch
new file mode 100644
index 0000000..1a79035
--- /dev/null
+++ b/package/ola/ola-0002-move-python-sub-check-to-configure.ac.patch
@@ -0,0 +1,48 @@
+commit 673a7602a6bf7a6aa8a8461ebd9362d59f6e21df
+Author: Yann E. MORIN <yann.morin.1998 at free.fr>
+Date: Tue Jan 14 21:37:51 2014 +0100
+
+ configure: move python sub-check to configure.ac
+
+ We do not want to re-test the python name for each Python module
+ we want to check for.
+
+ Even if we only check for one Python module right now, this is
+ good practice overall.
+
+ Signed-off-by: "Yann E. MORIN" <yann.morin.1998 at free.fr>
+
+---
+Sent upstream, awaiting for response...
+
+diff --git a/config/ax_python_module.m4 b/config/ax_python_module.m4
+index bd70a06..96dd1ab 100644
+--- a/config/ax_python_module.m4
++++ b/config/ax_python_module.m4
+@@ -25,11 +25,6 @@
+
+ AU_ALIAS([AC_PYTHON_MODULE], [AX_PYTHON_MODULE])
+ AC_DEFUN([AX_PYTHON_MODULE],[
+- if test -z $PYTHON;
+- then
+- PYTHON="python"
+- fi
+- PYTHON_NAME=`basename $PYTHON`
+ AC_MSG_CHECKING($PYTHON_NAME module: $1)
+ $PYTHON -c "import $1" 2>/dev/null
+ if test $? -eq 0;
+diff --git a/configure.ac b/configure.ac
+index 1efedf1..5f6f604 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -530,6 +530,10 @@ AM_CONDITIONAL(INSTALL_RDM_TESTS, test "${enable_rdm_tests}" = "yes")
+
+ if test "${enable_python_libs}" = "yes"; then
+ AM_PATH_PYTHON(2.6)
++ if test -z $PYTHON; then
++ PYTHON="python"
++ fi
++ PYTHON_NAME=`basename $PYTHON`
+ AX_PYTHON_MODULE("google.protobuf", "fatal")
+ fi
+
diff --git a/package/ola/ola-0003-fix-check-for-python-module-for-cross-compilation.patch b/package/ola/ola-0003-fix-check-for-python-module-for-cross-compilation.patch
new file mode 100644
index 0000000..436974d
--- /dev/null
+++ b/package/ola/ola-0003-fix-check-for-python-module-for-cross-compilation.patch
@@ -0,0 +1,81 @@
+commit ea985068c2d699ffb5b353de090f7ded713c08a7
+Author: Yann E. MORIN <yann.morin.1998 at free.fr>
+Date: Tue Jan 14 21:38:27 2014 +0100
+
+ configure: add option for user to override checks for Python modules
+
+ The check for google.protobuf is inherently flawed for cross-compilation,
+ as it uses the host Python to check for target modules.
+
+ In this case, it is not possible to check for a Pyhon modules altogether,
+ and we need to rely on the user to properly tell us whether we do or do
+ not have google.protobuf.
+
+ This is done by adding am autoconf cache variable:
+ ac_cv_have_pymod_google_protobuf
+
+ which can be set to:
+ - yes : force the test to be true
+ - no : force the test to be false
+ - (empty) : let the test decide
+
+ This is then used in AX_PYTHON_MODULE to override the test.
+
+ Currently, only the google.protobuf Python module is checked for, but
+ the same could be done later on of other Python modules that may be
+ added in the future, of course.
+
+ Fixes configure-errors like:
+ http://autobuild.buildroot.net/results/e63/e634d5f0cee3967caffaa6e7ada8c0968e3eff63/build-end.log
+
+ Also fixes some under-quotation in the python module check.
+
+ Signed-off-by: "Yann E. MORIN" <yann.morin.1998 at free.fr>
+
+---
+Sent upstream, awaiting for response...
+
+diff --git a/config/ax_python_module.m4 b/config/ax_python_module.m4
+index 96dd1ab..2910e88 100644
+--- a/config/ax_python_module.m4
++++ b/config/ax_python_module.m4
+@@ -25,20 +25,17 @@
+
+ AU_ALIAS([AC_PYTHON_MODULE], [AX_PYTHON_MODULE])
+ AC_DEFUN([AX_PYTHON_MODULE],[
+- AC_MSG_CHECKING($PYTHON_NAME module: $1)
+ $PYTHON -c "import $1" 2>/dev/null
+ if test $? -eq 0;
+ then
+- AC_MSG_RESULT(yes)
+- eval AS_TR_CPP(HAVE_PYMOD_$1)=yes
++ eval AS_TR_CPP([HAVE_PYMOD_$1])=yes
+ else
+- AC_MSG_RESULT(no)
+- eval AS_TR_CPP(HAVE_PYMOD_$1)=no
++ eval AS_TR_CPP([HAVE_PYMOD_$1])=no
+ #
+ if test -n "$2"
+ then
+- AC_MSG_ERROR(failed to find required module $1)
+- exit 1
++ AC_MSG_ERROR([failed to find required module $1])
+ fi
+ fi
++ AC_MSG_RESULT([AS_TR_CPP([HAVE_PYMOD_$1])])
+ ])
+diff --git a/configure.ac b/configure.ac
+index 5f6f604..5994d06 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -534,7 +534,9 @@ if test "${enable_python_libs}" = "yes"; then
+ PYTHON="python"
+ fi
+ PYTHON_NAME=`basename $PYTHON`
+- AX_PYTHON_MODULE("google.protobuf", "fatal")
++ AC_CACHE_CHECK([$PYTHON_NAME module: google.protobuf],
++ [ac_cv_have_pymod_google_protobuf],
++ [AX_PYTHON_MODULE([google.protobuf], [fatal])])
+ fi
+
+ # Maybe build the logic sniffer tools
diff --git a/package/ola/ola.mk b/package/ola/ola.mk
index 843ec0b..a503bc3 100644
--- a/package/ola/ola.mk
+++ b/package/ola/ola.mk
@@ -18,6 +18,7 @@ OLA_AUTORECONF = YES
OLA_DEPENDENCIES = protobuf util-linux host-bison host-flex
OLA_CONF_OPT = \
+ ac_cv_have_pymod_google_protobuf=yes \
--disable-gcov \
--disable-tcmalloc \
--disable-unittests \
More information about the buildroot
mailing list