Commit 66056a51 authored by Simon Marchi's avatar Simon Marchi Committed by Thomas Petazzoni
Browse files

ola: bump to 0.9.3

This update requires a few changes. First, good news, the patches that you
guys have submitted to OLA have been merged, so we can drop those:

 ola-0001-fix-build-warning.patch -> ea375582b0bfee93d66608ffc807078ffc48e961
 ola-0002-move-python-sub-check-to-configure.ac.patch -> 673a7602a6bf7a6aa8a8461ebd9362d59f6e21df
 ola-0003-fix-check-for-python-module-for-cross-compilation.patch -> b51b48be81ec38bc7d1229be0c7d3189c5ddbafa

Less good news: OLA now builds a small protoc wrapper (ola_protoc) that is
built and executed at compile-time on the host. If we don't change anything,
ola_protoc is built with the target toolchain and therefore can't run on the
host. Explanation for ola_protoc is here

To solve this, I created a package host-ola, which builds and provides an
ola_protoc for the host. It tries to disable as much as possible of things
that we won't need at configure time. Only ola_protoc is built and installed
so it's not that long.

The change has been built-tested only.

[1] https://github.com/OpenLightingProject/ola/blob/master/protoc/ola-protoc.cpp#L20



[Thomas:
 - add HOST_OLA_DEPENDENCIES variable, so that host-ola doesn't get
   all the dependencies of the target ola package: certain target ola
   dependencies do not have corresponding host packages (and it
   doesn't make sense to have them as dependencies just to build
   ola_protoc)
 - improve the commit log to mention which upstream commits correspond
   to our patches.]

Signed-off-by: default avatarSimon Marchi <simon.marchi@polymtl.ca>
Signed-off-by: default avatarThomas Petazzoni <thomas.petazzoni@free-electrons.com>
parent d3e89999
Loading
Loading
Loading
Loading
+0 −27
Original line number Diff line number Diff line
Fix build on 64 bits architectures

This upstream patch fixes a warning that, due to -Werror, is causing
build failures on 64 bits architectures.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>

commit ea375582b0bfee93d66608ffc807078ffc48e961
Author: Simon Newton <nomis52@gmail.com>
Date:   Wed Oct 30 09:23:49 2013 -0700

    * Avoid a compiler warning

diff --git a/plugins/e131/e131/PreamblePacker.cpp b/plugins/e131/e131/PreamblePacker.cpp
index ef29e18..8dfcc72 100644
--- a/plugins/e131/e131/PreamblePacker.cpp
+++ b/plugins/e131/e131/PreamblePacker.cpp
@@ -77,7 +77,8 @@ const uint8_t *PreamblePacker::Pack(const PDUBlock<PDU> &pdu_block,
   if (!m_send_buffer)
     Init();
 
-  unsigned int size = MAX_DATAGRAM_SIZE - sizeof(ACN_HEADER);
+  unsigned int size = MAX_DATAGRAM_SIZE -
+      static_cast<unsigned int>(sizeof(ACN_HEADER));
   if (!pdu_block.Pack(m_send_buffer + sizeof(ACN_HEADER), &size)) {
     OLA_WARN << "Failed to pack E1.31 PDU";
     return NULL;
+0 −48
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
 
+0 −81
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
+29 −6
Original line number Diff line number Diff line
@@ -4,18 +4,16 @@
#
################################################################################

OLA_VERSION = 0.8.33
OLA_SITE = https://open-lighting.googlecode.com/files
OLA_VERSION = 0.9.3
OLA_SITE = $(call github,OpenLightingProject,ola,$(OLA_VERSION))

OLA_LICENSE = LGPLv2.1+ (libola, libolacommon, Python bindings), GPLv2+ (libolaserver, olad, Python examples and tests)
OLA_LICENSE_FILES = LICENCE GPL LGPL
OLA_INSTALL_STAGING = YES

# We modify configure.ac, so we need to autoreconf
OLA_AUTORECONF = YES

# util-linux provides uuid lib
OLA_DEPENDENCIES = protobuf util-linux host-bison host-flex
OLA_DEPENDENCIES = protobuf util-linux host-bison host-flex host-ola

OLA_CONF_OPTS = \
	ac_cv_have_pymod_google_protobuf=yes \
@@ -24,7 +22,31 @@ OLA_CONF_OPTS = \
	--disable-unittests \
	--disable-root-check \
	--disable-java-libs \
	--disable-fatal-warnings
	--disable-fatal-warnings \
	--with-ola-protoc=$(HOST_DIR)/usr/bin/ola_protoc

HOST_OLA_DEPENDENCIES = host-util-linux host-protobuf

# When building the host part, disable as much as possible to speed up
# the configure step and avoid missing host dependencies.
HOST_OLA_CONF_OPTS = \
	--disable-all-plugins \
	--disable-slp \
	--disable-osc \
	--disable-uart \
	--disable-libusb \
	--disable-libftdi \
	--disable-http  \
	--disable-examples \
	--disable-unittests \
	--disable-doxygen-html \
	--disable-doxygen-doc

# On the host side, we only need ola_protoc, so build and install this only.
HOST_OLA_MAKE_OPTS = protoc/ola_protoc
define HOST_OLA_INSTALL_CMDS
	$(INSTALL) -D -m 0755 $(@D)/protoc/ola_protoc $(HOST_DIR)/usr/bin/ola_protoc
endef

# sets where to find python libs built for target and required by ola
OLA_CONF_ENV = PYTHONPATH=$(TARGET_DIR)/usr/lib/python$(PYTHON_VERSION_MAJOR)/site-packages
@@ -149,3 +171,4 @@ OLA_CONF_OPTS += --disable-usbpro
endif

$(eval $(autotools-package))
$(eval $(host-autotools-package))