* [Buildroot] [PATCH] ola: bump to 0.9.3
@ 2014-12-04 2:58 Simon Marchi
2014-12-07 21:16 ` Thomas Petazzoni
0 siblings, 1 reply; 2+ messages in thread
From: Simon Marchi @ 2014-12-04 2:58 UTC (permalink / raw)
To: buildroot
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.
Also, the project is now hosted on github.
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 [1].
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.
I have just built-tested this. I hope to be able to test the runtime within
a few weeks on an ARM target.
I am still very noobish with Buildroot, so I'd like to have your comments about
the choices that I've made. What would you do differently?
[1] https://github.com/OpenLightingProject/ola/blob/master/protoc/ola-protoc.cpp#L20
Signed-off-by: Simon Marchi <simon.marchi@polymtl.ca>
---
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 | 35 ++++++++--
4 files changed, 28 insertions(+), 163 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@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;
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@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
-
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@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
diff --git a/package/ola/ola.mk b/package/ola/ola.mk
index 95810c1..6414be8 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 = make protoc/ola_protoc
+define HOST_OLA_INSTALL_CMDS
+ $(INSTALL) -m 0755 $(@D)/protoc/ola_protoc $(HOST_DIR)/usr/bin
+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
^ permalink raw reply related [flat|nested] 2+ messages in thread* [Buildroot] [PATCH] ola: bump to 0.9.3
2014-12-04 2:58 [Buildroot] [PATCH] ola: bump to 0.9.3 Simon Marchi
@ 2014-12-07 21:16 ` Thomas Petazzoni
0 siblings, 0 replies; 2+ messages in thread
From: Thomas Petazzoni @ 2014-12-07 21:16 UTC (permalink / raw)
To: buildroot
Dear Simon Marchi,
On Wed, 3 Dec 2014 21:58:53 -0500, Simon Marchi wrote:
> 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.
>
> Also, the project is now hosted on github.
>
> 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 [1].
>
> 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.
>
> I have just built-tested this. I hope to be able to test the runtime within
> a few weeks on an ARM target.
>
> I am still very noobish with Buildroot, so I'd like to have your comments about
> the choices that I've made. What would you do differently?
Thanks for this patch, it looks pretty good. See some comments below.
One first comment is that your commit log shouldn't contain 'personal'
messages such as "I am still very noobish with Buildroot, so I'd like
to have your comments about the choices that I've made. What would you
do differently?", those comments should appear after the "---" sign, so
that they don't get committed.
> ################################################################################
>
> -OLA_VERSION = 0.8.33
> -OLA_SITE = https://open-lighting.googlecode.com/files
> +
There's no need to add one more new line here.
> +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
Indentation should use one tab on all those lines.
> +
> +# On the host side, we only need ola_protoc, so build and install this only.
> +HOST_OLA_MAKE = make protoc/ola_protoc
Maybe you could use:
HOST_OLA_MAKE_OPTS = protoc/ola_protoc
instead.
> +define HOST_OLA_INSTALL_CMDS
> + $(INSTALL) -m 0755 $(@D)/protoc/ola_protoc $(HOST_DIR)/usr/bin
Only one tab needed for the indentation. And please use -D with a full
path, so:
$(INSTALL) -D -m 0755 $(@D)/protoc/ola_protoc $(HOST_DIR)/usr/bin/ola_protoc
Can you resend a new version with those issues fixed?
Thanks a lot!
Thomas
--
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2014-12-07 21:16 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-12-04 2:58 [Buildroot] [PATCH] ola: bump to 0.9.3 Simon Marchi
2014-12-07 21:16 ` Thomas Petazzoni
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox