[Buildroot] [PATCH v2] ola: bump to 0.9.3
Simon Marchi
simon.marchi at polymtl.ca
Mon Dec 8 00:39:39 UTC 2014
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.
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
Signed-off-by: Simon Marchi <simon.marchi at polymtl.ca>
---
New in v2:
* Fixed formatting.
* Added OLA_AUTORECONF, since we get the code directly from github.
* Use HOST_OLA_MAKE_OPTS instead of HOST_OLA_MAKE.
* Use full path in install.
---
package/ola/ola-0001-fix-build-warning.patch | 27 --------
...002-move-python-sub-check-to-configure.ac.patch | 48 -------------
...k-for-python-module-for-cross-compilation.patch | 81 ----------------------
package/ola/ola.mk | 33 +++++++--
4 files changed, 27 insertions(+), 162 deletions(-)
delete mode 100644 package/ola/ola-0001-fix-build-warning.patch
delete mode 100644 package/ola/ola-0002-move-python-sub-check-to-configure.ac.patch
delete mode 100644 package/ola/ola-0003-fix-check-for-python-module-for-cross-compilation.patch
diff --git a/package/ola/ola-0001-fix-build-warning.patch b/package/ola/ola-0001-fix-build-warning.patch
deleted file mode 100644
index 1fdb58f..0000000
--- a/package/ola/ola-0001-fix-build-warning.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-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 at free-electrons.com>
-
-commit ea375582b0bfee93d66608ffc807078ffc48e961
-Author: Simon Newton <nomis52 at 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;
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
deleted file mode 100644
index 1a79035..0000000
--- a/package/ola/ola-0002-move-python-sub-check-to-configure.ac.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-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
deleted file mode 100644
index 436974d..0000000
--- a/package/ola/ola-0003-fix-check-for-python-module-for-cross-compilation.patch
+++ /dev/null
@@ -1,81 +0,0 @@
-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 95810c1..8e9d1fc 100644
--- a/package/ola/ola.mk
+++ b/package/ola/ola.mk
@@ -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,29 @@ 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
+
+# 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 +169,4 @@ OLA_CONF_OPTS += --disable-usbpro
endif
$(eval $(autotools-package))
+$(eval $(host-autotools-package))
--
2.1.3
More information about the buildroot
mailing list