#
# Copyright (C) 2006-2015 OpenWrt.org
-# Copyright (C) 2015 Christian Beier <dontmind@freeshell.org>
+# Copyright (C) 2015-2017 Christian Beier <dontmind@freeshell.org>
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
include $(TOPDIR)/rules.mk
PKG_NAME:=ola
-PKG_VERSION:=0.10.1
-PKG_RELEASE:=2
+PKG_VERSION:=0.10.5
+PKG_RELEASE:=1
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://github.com/OpenLightingProject/ola.git
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
-PKG_SOURCE_VERSION:=5b86f5802e2e5b23c6a010dc8d10788e6dc57614
+PKG_SOURCE_VERSION:=32db3c49d435398d017c6b5c0b25e02a7a831f5c
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
-PKG_MIRROR_HASH:=626ebac2f68ea368c5886f12364d32d34fa59d1cd3b870bacedcca74f968e74c
+PKG_MIRROR_HASH:=11ed6540bd667c1662d91de93a260a9a63a98725851f768647e2b9b2efe1ae34
PKG_LICENSE:=LGPL-2.1+
PKG_FIXUP:=libtool
--- /dev/null
+From d7f13fdc516ffa36b16b89e7f398a8a36b4188d9 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Christoph=20M=C3=BCllner?= <christophm30@gmail.com>
+Date: Sat, 2 Dec 2017 00:08:55 +0100
+Subject: [PATCH 1/6] Eliminate protobuf AddDescriptors() call.
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Eliminating protobuf's AddDescriptors() calls enabled
+forward-compatibility with libprotobuf. That allows to
+run OLA on recent Linux distrubutions.
+
+Tested on x86_64 running Fedora 27 with protobuf 3.3.1
+in combination with QLC+ and a uDMX controller.
+
+See #1192.
+
+Signed-off-by: Christoph Müllner <christophm30@gmail.com>
+---
+ config/ola.m4 | 3 ---
+ protoc/CppFileGenerator.cpp | 8 --------
+ protoc/GeneratorHelpers.cpp | 5 -----
+ protoc/GeneratorHelpers.h | 3 ---
+ 4 files changed, 19 deletions(-)
+
+diff --git a/config/ola.m4 b/config/ola.m4
+index 6080932e9..d3b8cc8f8 100644
+--- a/config/ola.m4
++++ b/config/ola.m4
+@@ -24,9 +24,6 @@ AC_DEFUN([PROTOBUF_SUPPORT],
+ AC_REQUIRE_CPP()
+ PKG_CHECK_MODULES(libprotobuf, [protobuf >= $1])
+
+-PKG_CHECK_MODULES(libprotobuf2, [protobuf < 3.2], [],
+- [AC_MSG_ERROR([OLA currently requires protobuf < 3.2, see issue 1192])])
+-
+ AC_SUBST([libprotobuf_CFLAGS])
+
+ AC_ARG_WITH([protoc],
+diff --git a/protoc/CppFileGenerator.cpp b/protoc/CppFileGenerator.cpp
+index 518c17879..e7dd95ccb 100644
+--- a/protoc/CppFileGenerator.cpp
++++ b/protoc/CppFileGenerator.cpp
+@@ -196,14 +196,6 @@ void FileGenerator::GenerateBuildDescriptors(Printer* printer) {
+ "assigndescriptorsname", GlobalAssignDescriptorsName(m_output_name));
+ printer->Indent();
+
+- // Make sure the file has found its way into the pool. If a descriptor
+- // is requested *during* static init then AddDescriptors() may not have
+- // been called yet, so we call it manually. Note that it's fine if
+- // AddDescriptors() is called multiple times.
+- printer->Print(
+- "$adddescriptorsname$();\n",
+- "adddescriptorsname", GlobalAddDescriptorsName(m_file->name()));
+-
+ // Get the file's descriptor from the pool.
+ printer->Print(
+ "const ::google::protobuf::FileDescriptor* file =\n"
+diff --git a/protoc/GeneratorHelpers.cpp b/protoc/GeneratorHelpers.cpp
+index 19609181e..6f619b5c0 100644
+--- a/protoc/GeneratorHelpers.cpp
++++ b/protoc/GeneratorHelpers.cpp
+@@ -104,11 +104,6 @@ string FilenameIdentifier(const string& filename) {
+ return result;
+ }
+
+-// Return the name of the AddDescriptors() function for a given file.
+-string GlobalAddDescriptorsName(const string& filename) {
+- return "protobuf_AddDesc_" + FilenameIdentifier(filename);
+-}
+-
+ // Return the name of the AssignDescriptors() function for a given file.
+ string GlobalAssignDescriptorsName(const string& filename) {
+ return "protobuf_AssignDesc_" + FilenameIdentifier(filename);
+diff --git a/protoc/GeneratorHelpers.h b/protoc/GeneratorHelpers.h
+index 35efdbb04..fa91a915d 100644
+--- a/protoc/GeneratorHelpers.h
++++ b/protoc/GeneratorHelpers.h
+@@ -67,9 +67,6 @@ string StripProto(const string& filename);
+ // Convert a file name into a valid identifier.
+ string FilenameIdentifier(const string& filename);
+
+-// Return the name of the AddDescriptors() function for a given file.
+-string GlobalAddDescriptorsName(const string& filename);
+-
+ // Return the name of the AssignDescriptors() function for a given file.
+ string GlobalAssignDescriptorsName(const string& filename);
+
+--
+2.11.0
+
+++ /dev/null
-From a88d6d31fc5a04be4378095e03b4aac133954026 Mon Sep 17 00:00:00 2001
-From: Christian Beier <dontmind@freeshell.org>
-Date: Tue, 15 Mar 2016 15:09:25 +0100
-Subject: [PATCH] Make DNS-SD functionality optional at build time.
-
-When building for embedded systems, for instance, we
-want to limit dependencies to a minimum and it seems
-that OLA is able to perform its core tasks without
-DNS-SD perfectly fine.
-
-Signed-off-by: Christian Beier <dontmind@freeshell.org>
----
- configure.ac | 27 +++++++++++++++------------
- 1 file changed, 15 insertions(+), 12 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index 6654354..0d1947c 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -411,23 +411,26 @@ AS_IF([test "x$use_ossp_uuid" = xyes],
-
- # DNS-SD support
- # We use either avahi or the Apple DNS-SD library.
--
--# dns_sd
--AC_CHECK_HEADER(
-- [dns_sd.h],
-- [AC_SEARCH_LIBS(DNSServiceRegister, [dns_sd], [have_dnssd="yes"])])
-+AC_ARG_WITH(dns-sd,
-+[AS_HELP_STRING([--without-dns-sd], [disable DNS-SD support])],,)
-+if test "x$with_dns_sd" != "xno"; then
-+ # dns_sd
-+ AC_CHECK_HEADER(
-+ [dns_sd.h],
-+ [AC_SEARCH_LIBS(DNSServiceRegister, [dns_sd], [have_dnssd="yes"])])
-+
-+ # avahi
-+ PKG_CHECK_MODULES(
-+ avahi,
-+ [avahi-client],
-+ [have_avahi="yes"],
-+ [true])
-+fi
-
- AS_IF([test "x$have_dnssd" = xyes],
- [AC_DEFINE([HAVE_DNSSD], [1], [Defined to use Bonjour DNS_SD])])
- AM_CONDITIONAL([HAVE_DNSSD], [test "x$have_dnssd" = xyes])
-
--# avahi
--PKG_CHECK_MODULES(
-- avahi,
-- [avahi-client],
-- [have_avahi="yes"],
-- [true])
--
- AS_IF([test "x$have_avahi" = xyes],
- [AC_DEFINE([HAVE_AVAHI], [1], [Defined to use Avahi])])
- AM_CONDITIONAL([HAVE_AVAHI], [test "x$have_avahi" = xyes])
---
-2.1.4
-