Commit e532033b authored by Yann E. MORIN's avatar Yann E. MORIN Committed by Peter Korsgaard
Browse files

package/ola: fix check for google.protobuf



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: default avatar"Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Arnout Vandecappelle <arnout@mind.be>
Reviewed-by: default avatarArnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Signed-off-by: default avatarPeter Korsgaard <peter@korsgaard.com>
parent 573aa4b9
Loading
Loading
Loading
Loading
+0 −30
Original line number Diff line number Diff line
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@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
+48 −0
Original line number Diff line number Diff line
commit 673a7602a6bf7a6aa8a8461ebd9362d59f6e21df
Author: Yann E. MORIN <yann.morin.1998@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@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
 
+81 −0
Original line number Diff line number Diff line
commit ea985068c2d699ffb5b353de090f7ded713c08a7
Author: Yann E. MORIN <yann.morin.1998@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@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
+1 −0
Original line number Diff line number Diff line
@@ -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 \