Accepting request 251466 from Base:System

Build with json-c 0.12, number two. Goes together with SR#250461 json-c openSUSE:Factory:Staging:B

OBS-URL: https://build.opensuse.org/request/show/251466
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/rsyslog?expand=0&rev=95
This commit is contained in:
Stephan Kulow 2014-09-23 15:16:54 +00:00 committed by Git OBS Bridge
commit b05a9810db
4 changed files with 92 additions and 0 deletions

View File

@ -0,0 +1,38 @@
From: Andreas Stieger <andreas.stieger@gmx.de>
Subject: [PATCH] fix build with json-c 0.12 if it provides a compatibility json.pc
Date: Mon, 22 Sep 2014 20:40:53 +0100
Upstream: submitting
References:
json-c on openSUSE provides a compatibility pkg-config for "json".
The autoconf check find it first, assuming it does not provide
the function json_tokener_error_desc. Check for availability of
function using AC_CHECK_FUNCS instead.
---
configure.ac | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
Index: rsyslog-8.4.0/configure.ac
===================================================================
--- rsyslog-8.4.0.orig/configure.ac 2014-08-18 10:41:34.000000000 +0100
+++ rsyslog-8.4.0/configure.ac 2014-09-22 20:34:18.000000000 +0100
@@ -32,14 +32,16 @@ PKG_PROG_PKG_CONFIG
PKG_CHECK_MODULES(LIBESTR, libestr >= 0.1.9)
PKG_CHECK_MODULES(LIBLOGGING_STDLOG, liblogging-stdlog >= 1.0.3)
PKG_CHECK_MODULES([JSON_C], [json],, [
- PKG_CHECK_MODULES([JSON_C], [json-c],
- [AC_DEFINE([HAVE_JSON_TOKENER_ERROR_DESC], [1], [we have the newer JSON-C API])])
+ PKG_CHECK_MODULES([JSON_C], [json-c],,)
])
# if int64 is supported, use it
AC_CHECK_LIB(json-c, json_object_new_object,,)
AC_CHECK_FUNCS(json_object_new_int64,,)
+# look for newer API
+AC_CHECK_FUNCS(json_tokener_error_desc,,)
+
case "${host}" in
*-*-linux*)
AC_DEFINE([OS_LINUX], [1], [Indicator for a Linux OS])

View File

@ -0,0 +1,34 @@
From: Rainer Gerhards <rgerhards@adiscon.com>
Date: Tue Aug 19 11:33:41 2014 +0200
Subject: build failure on systems which don't have json_tokener_errors
Upstream: Committed
References: https://github.com/rsyslog/rsyslog/commit/6b47dd542d07ed557f02af9970d1004eb262e1c1
bugfix: build failure on systems which don't have json_tokener_errors
Older versions of json-c need to use a different API (which don't exists
on newer versions, unfortunately...)
Thanks to Thomas D. for reporting this problem.
Build error:
[ 77s] msg.c: In function 'MsgSetPropsViaJSON':
[ 77s] msg.c:4077:14: error: 'json_tokener_errors' undeclared (first use in this function)
[ 77s] errMsg = json_tokener_errors[err];
diff --git a/runtime/msg.c b/runtime/msg.c
index 66c3b7b..81b13f9 100644
--- a/runtime/msg.c
+++ b/runtime/msg.c
@@ -4074,7 +4074,11 @@ MsgSetPropsViaJSON(msg_t *__restrict__ const pMsg, const uchar *__restrict__ con
err = tokener->err;
if(err != json_tokener_continue)
- errMsg = json_tokener_errors[err];
+# if HAVE_JSON_TOKENER_ERROR_DESC
+ errMsg = json_tokener_error_desc(err);
+# else
+ errMsg = json_tokener_errors[err];
+# endif
else
errMsg = "Unterminated input";
} else if(!json_object_is_type(json, json_type_object))

View File

@ -1,3 +1,12 @@
-------------------------------------------------------------------
Mon Sep 22 19:50:42 UTC 2014 - andreas.stieger@gmx.de
- fix build with json-c 0.12 with upstream patch
rsyslog-8.4.0-json-c-0.12.patch
- json-c provides a compatibility pkg-config for "json". Add
rsyslog-8.4.0-json-c-0.12-configure.patch to check for the
required function directly.
-------------------------------------------------------------------
Wed Sep 17 09:40:40 UTC 2014 - wagner-thomas@gmx.at

View File

@ -90,6 +90,11 @@ BuildRequires: pkgconfig(libsystemd-journal) >= 197
Requires(pre): %insserv_prereq %fillup_prereq /etc/init.d/syslog
BuildRequires: klogd
%endif
# for Patch3 rsyslog-8.4.0-json-c-0.12-configure.patch
BuildRequires: autoconf >= 2.61
BuildRequires: automake
BuildRequires: libtool
#
BuildRequires: bison
BuildRequires: flex
BuildRequires: openssl-devel >= 0.9.7
@ -186,6 +191,8 @@ Source15: rsyslog.firewall
# PATCH-FIX-OPENSUSE rsyslog-unit.patch crrodriguez@opensuse.org Customize upstream systemd unit for openSUSE needs.
Patch0: rsyslog-unit.patch
Patch1: rsyslog-8.4.0_implicit_declaration.patch
Patch2: rsyslog-8.4.0-json-c-0.12.patch
Patch3: rsyslog-8.4.0-json-c-0.12-configure.patch
# this is a dirty hack since % dir does only work for the specified directory and nothing above
# but I want to be able to switch this to /etc/apparmor.d once the profiles received more testing
@ -482,6 +489,8 @@ This module provides support for ZeroMQ.
%setup -q -n %{name}-%{upstream_version} -a 14
%patch0 -p1
%patch1 -p1
%patch2 -p1
%patch3 -p1
#
%if %{with systemd}
for file in rsyslog-service-prepare; do
@ -493,6 +502,8 @@ done
%endif
%build
# for Patch3 rsyslog-8.4.0-json-c-0.12-configure.patch
autoreconf -fiv
export CFLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing -W -Wall -I../grammar -I../../grammar"
# needs java
# --enable-gui \