summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLars Wendler <polynomial-c@gentoo.org>2015-10-09 15:10:39 +0200
committerLars Wendler <polynomial-c@gentoo.org>2015-10-09 16:11:53 +0200
commit3027e7c1fcea0709ad9bebfbe14387ef52837c62 (patch)
tree1d8e8dcf6c4a7bef940da0565ad8201a00c6c405 /dev-libs
parentnet-im/dianara: revbump (diff)
downloadgentoo-3027e7c1fcea0709ad9bebfbe14387ef52837c62.tar.gz
gentoo-3027e7c1fcea0709ad9bebfbe14387ef52837c62.tar.bz2
gentoo-3027e7c1fcea0709ad9bebfbe14387ef52837c62.zip
dev-libs/liblognorm: Revbump to remove semi-broken pcre functionality
and add an upstream patch. Package-Manager: portage-2.2.23 Signed-off-by: Lars Wendler <polynomial-c@gentoo.org>
Diffstat (limited to 'dev-libs')
-rw-r--r--dev-libs/liblognorm/files/liblognorm-1.1.2-issue_135.patch110
-rw-r--r--dev-libs/liblognorm/liblognorm-1.1.2-r1.ebuild57
2 files changed, 167 insertions, 0 deletions
diff --git a/dev-libs/liblognorm/files/liblognorm-1.1.2-issue_135.patch b/dev-libs/liblognorm/files/liblognorm-1.1.2-issue_135.patch
new file mode 100644
index 000000000000..4b4a063cf180
--- /dev/null
+++ b/dev-libs/liblognorm/files/liblognorm-1.1.2-issue_135.patch
@@ -0,0 +1,110 @@
+From 4b35ca1e6fff50f47eb5419b879b287f49dcf1d8 Mon Sep 17 00:00:00 2001
+From: Rainer Gerhards <rgerhards@adiscon.com>
+Date: Mon, 24 Aug 2015 09:05:52 +0200
+Subject: [PATCH] "fix": process last line if it misses the terminating LF
+
+This problem occurs with the very last line of a rulebase (at EOF).
+If it is not properly terminated (LF missing), it is silently ignored.
+Previous versions did obviously process lines in this case. While
+technically this is invalid input, we can't outrule that such rulebases
+exist. For example, they do in the rsyslog testbench, which made
+us aware of the problem (see https://github.com/rsyslog/rsyslog/issues/489 ).
+
+I think the proper way of addressing this is to process such lines without
+termination, as many other tools do as well.
+
+closes https://github.com/rsyslog/liblognorm/issues/135
+---
+ src/samp.c | 5 ++++-
+ tests/Makefile.am | 2 ++
+ tests/field_mac48.sh | 1 -
+ tests/missing_line_ending.rb | 1 +
+ tests/missing_line_ending.sh | 25 +++++++++++++++++++++++++
+ 5 files changed, 32 insertions(+), 2 deletions(-)
+ create mode 100644 tests/missing_line_ending.rb
+ create mode 100755 tests/missing_line_ending.sh
+
+diff --git a/src/samp.c b/src/samp.c
+index ef57047..0a9ae0a 100644
+--- a/src/samp.c
++++ b/src/samp.c
+@@ -801,7 +801,10 @@ ln_sampRead(ln_ctx ctx, FILE *const __restrict__ repo, int *const __restrict__ i
+ int c = fgetc(repo);
+ if(c == EOF) {
+ *isEof = 1;
+- goto done;
++ if(i == 0)
++ goto done;
++ else
++ done = 1; /* last line missing LF, still process it! */
+ } else if(c == '\n') {
+ ++linenbr;
+ if(!inParser && i != 0)
+diff --git a/tests/Makefile.am b/tests/Makefile.am
+index a3a3842..cfcf010 100644
+--- a/tests/Makefile.am
++++ b/tests/Makefile.am
+@@ -13,6 +13,7 @@ user_test_LDFLAGS = -no-install
+ TESTS_SHELLSCRIPTS = \
+ parser_whitespace.sh \
+ parser_LF.sh \
++ missing_line_ending.sh \
+ field_hexnumber.sh \
+ field_mac48.sh \
+ field_name_value.sh \
+@@ -54,6 +55,7 @@ REGEXP_TESTS = \
+ field_regex_while_regex_support_is_disabled.sh
+
+ EXTRA_DIST = exec.sh \
++ missing_line_ending.rb \
+ $(TESTS_SHELLSCRIPTS) \
+ $(REGEXP_TESTS) \
+ $(json_eq_self_sources) \
+diff --git a/tests/field_mac48.sh b/tests/field_mac48.sh
+index bd2898e..0f17166 100755
+--- a/tests/field_mac48.sh
++++ b/tests/field_mac48.sh
+@@ -21,4 +21,3 @@ assert_output_json_eq '{ "originalmsg": "f0:f6:1c:xf:cc:a2", "unparsed-data": "f
+
+
+ cleanup_tmp_files
+-
+diff --git a/tests/missing_line_ending.rb b/tests/missing_line_ending.rb
+new file mode 100644
+index 0000000..b252483
+--- /dev/null
++++ b/tests/missing_line_ending.rb
+@@ -0,0 +1 @@
++rule=:%field:mac48%
+\ No newline at end of file
+diff --git a/tests/missing_line_ending.sh b/tests/missing_line_ending.sh
+new file mode 100755
+index 0000000..18f4d2c
+--- /dev/null
++++ b/tests/missing_line_ending.sh
+@@ -0,0 +1,25 @@
++# added 2015-05-05 by Rainer Gerhards
++# This file is part of the liblognorm project, released under ASL 2.0
++. $srcdir/exec.sh
++
++test_def $0 "dmac48 syntax"
++# we need to use a canned file, as we cannot easily reproduce the
++# malformed lines
++cp missing_line_ending.rb $(rulebase_file_name)
++
++execute 'f0:f6:1c:5f:cc:a2'
++assert_output_json_eq '{"field": "f0:f6:1c:5f:cc:a2"}'
++
++execute 'f0-f6-1c-5f-cc-a2'
++assert_output_json_eq '{"field": "f0-f6-1c-5f-cc-a2"}'
++
++# things that need to NOT match
++
++execute 'f0-f6:1c:5f:cc-a2'
++assert_output_json_eq '{ "originalmsg": "f0-f6:1c:5f:cc-a2", "unparsed-data": "f0-f6:1c:5f:cc-a2" }'
++
++execute 'f0:f6:1c:xf:cc:a2'
++assert_output_json_eq '{ "originalmsg": "f0:f6:1c:xf:cc:a2", "unparsed-data": "f0:f6:1c:xf:cc:a2" }'
++
++
++#cleanup_tmp_files
diff --git a/dev-libs/liblognorm/liblognorm-1.1.2-r1.ebuild b/dev-libs/liblognorm/liblognorm-1.1.2-r1.ebuild
new file mode 100644
index 000000000000..066a0c4bda91
--- /dev/null
+++ b/dev-libs/liblognorm/liblognorm-1.1.2-r1.ebuild
@@ -0,0 +1,57 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+AUTOTOOLS_IN_SOURCE_BUILD=1
+AUTOTOOLS_AUTORECONF="yes"
+
+inherit autotools-utils
+
+DESCRIPTION="Fast samples-based log normalization library"
+HOMEPAGE="http://www.liblognorm.com"
+SRC_URI="http://www.liblognorm.com/files/download/${P}.tar.gz"
+
+LICENSE="LGPL-2.1"
+SLOT="0/2"
+KEYWORDS="~amd64 ~arm ~hppa ~x86 ~amd64-linux"
+IUSE="debug doc static-libs test"
+
+RDEPEND="
+ >=dev-libs/libestr-0.1.3
+ >=dev-libs/json-c-0.11:=
+"
+
+DEPEND="
+ ${RDEPEND}
+ virtual/pkgconfig
+ doc? ( >=dev-python/sphinx-1.2.2 )
+"
+
+DOCS=( ChangeLog )
+
+PATCHES=(
+ "${FILESDIR}"/respect_CFLAGS.patch
+ "${FILESDIR}"/${PN}-1.1.2-issue_135.patch
+)
+
+src_configure() {
+ local myeconfargs=(
+ $(use_enable doc docs)
+ $(use_enable test testbench)
+ $(use_enable debug)
+ --disable-regexp
+ )
+
+ autotools-utils_src_configure
+}
+
+src_test() {
+ # When adding new tests via patches we have to make them executable
+ einfo "Adjusting permissions of test scripts ..."
+ find "${S}"/tests -type f -name '*.sh' \! -perm -111 -exec chmod a+x '{}' \; || \
+ die "Failed to adjust test scripts permission"
+
+ emake --jobs 1 check
+}