public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Lars Wendler" <polynomial-c@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] repo/gentoo:master commit in: app-admin/rsyslog/, app-admin/rsyslog/files/8-stable/
Date: Fri,  9 Oct 2015 14:12:09 +0000 (UTC)	[thread overview]
Message-ID: <1444399922.b2fc2901e8b2e08a19e8b2eca4b29c86e1a93e9b.polynomial-c@gentoo> (raw)

commit:     b2fc2901e8b2e08a19e8b2eca4b29c86e1a93e9b
Author:     Lars Wendler <polynomial-c <AT> gentoo <DOT> org>
AuthorDate: Fri Oct  9 14:10:12 2015 +0000
Commit:     Lars Wendler <polynomial-c <AT> gentoo <DOT> org>
CommitDate: Fri Oct  9 14:12:02 2015 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=b2fc2901

app-admin/rsyslog: Bump to version 8.13.0

Package-Manager: portage-2.2.23
Signed-off-by: Lars Wendler <polynomial-c <AT> gentoo.org>

 app-admin/rsyslog/Manifest                         |   2 +
 .../50-rsyslog-8.12.0-fix-re_extract.patch         | 130 +++++++
 ...rsyslog-8.13.0-lookup-table-reload-bugfix.patch | 141 +++++++
 app-admin/rsyslog/files/8-stable/rsyslog.confd-r1  |  30 ++
 app-admin/rsyslog/files/8-stable/rsyslog.initd-r1  |  73 ++++
 app-admin/rsyslog/rsyslog-8.13.0.ebuild            | 423 +++++++++++++++++++++
 6 files changed, 799 insertions(+)

diff --git a/app-admin/rsyslog/Manifest b/app-admin/rsyslog/Manifest
index d8ba9f1..3af7b48 100644
--- a/app-admin/rsyslog/Manifest
+++ b/app-admin/rsyslog/Manifest
@@ -1,6 +1,8 @@
 DIST rsyslog-8.12.0.tar.gz 2091620 SHA256 466bfeac8296e89de1eb9029880998ba7b5fc25694143197bb47167df6cb7e20 SHA512 7735f15f8a843ee41530d180d00ab3a6854ef28e9036db7ecfe0525549b3ab2b184149c2edc4553240dd4e3003ee12ebcdf47719669daa3cc6915d5a30888c72 WHIRLPOOL b96faab541fd8b53558738b7bd71d3b6acc7d66da4fb0552d781f0e214c00a11b4a74464f7b9c9a1d62bc359658f93d380a490ee78afc11d1702975a6edc6823
+DIST rsyslog-8.13.0.tar.gz 2077267 SHA256 b182bd0a7686bef093be570bfb850417191292522fb58e0ad32f2c824f754a33 SHA512 a3245e5b10ae96e6df981291f55a43fa9a8258db213e33a36d7b5a620ea7daaac04a1f93a56304105c4fd10e546f92789831f5b2188b418b4b3b248a4e7795c9 WHIRLPOOL 8473e2c272182d84c629175aafd185cfa6fcafad8a028fd212de118f2e9abf458e062c6065dc5ebb1df27e81546a37387944ad1b3f0d16a38ee25a409b51b1c7
 DIST rsyslog-8.7.0.tar.gz 2003365 SHA256 c77125b67a623569c9bdca8136b9aac013f1c6fd82fb8595e3ea267e61800f9c SHA512 53feac42c14134d76f5592ee491bb56fb2c4c33822a7a5609a5267b6911a5c5c4e73c5d66a913a666967d8826ee3077b91d8d2a1d1b60bcb3d425b35ec4677b0 WHIRLPOOL c74c401de68bb59310e307a0d9859d2f58bcbf8126d637d23d4f3979a0d6c69bce8ca850c2942b43f311ea83f47c9554f34e5dc10623d32324da1b18023d357d
 DIST rsyslog-8.9.0.tar.gz 2022294 SHA256 eab00e8e758cd9dd33b3e2cf6af80297d1951dc7db37bd723a6488a35d577adc SHA512 942cccc2cbe147572cc2d346ac330d80c86915757b2b7a380829f0b40294d7e4afd4887d5066821af1e059cd78cdb38520fc9d28b55daa7afcd0e5b2e6bd9a5d WHIRLPOOL cc072a64364f38d98187e7102e5be0277011071ce90a510a641aea6a5b3573a436e6539c5688b24d12a9654786892070c1518093e0176e5a40bea57f7dded133
 DIST rsyslog-doc-8.12.0.tar.gz 4212441 SHA256 f88517c1e5ae3a8ba129d531b5b4bb79e80f70898a8a5b72a0abd7a8a0feb8f0 SHA512 a1b3907e1a474076dd11e76b267eff35dadbd5abaf3ab802a187ce045eecc6028c854ed8e661650e10c74c79408c6ded341d16af94a05f10c529faaa8f606afb WHIRLPOOL aa21ea93536bab4c9761bdbe2e6c67f650bf181f64cb7c4a78c646d319a5472895be2a118c90d7c42548575b76f62e5dc6b0c4103cf373ab9e3704a6999c6c1b
+DIST rsyslog-doc-8.13.0.tar.gz 4147364 SHA256 3da9a1446686d1cfa82c123a610f2c30f4dc1cbfa608f44ded2baf168e86b67b SHA512 6676533b1e4884f18e583be19c5a50b8f12017ecc2c6860d54dcc72d64e7eafe20a2af3a22817226df123a7a193c7090097502f287455488dd8806b7aac0a5cd WHIRLPOOL 1231580f2bf8af42a7dd34f0a88315ff56324eb64d1259a281a5266fdbe7a472f596d66a5b6d1f5cbf19fdb6f76a2083753e0de224a07653454178128de4fead
 DIST rsyslog-doc-8.7.0.tar.gz 4105507 SHA256 f131bfb963eed4fe74d7336ee5261876b436004b78994d47523a82c0f7d666a8 SHA512 9b5b6f28a55b58c956ca614301fc9667243d02c321f8b4071264e4040dd8fe79ba7eb5a08912e2a229bdcf12f68eec24f1c65ba7b82ccd60c8e70d34267b8405 WHIRLPOOL 386ad5164768a5a4919ba5acda29f3ef670b78cc9d6845e3c8ee252b43d6622c19c7f8ec1edd7d0f1d111bf2c06d29fb5dbf9af6b46c426932ae6caa0e63c30c
 DIST rsyslog-doc-8.9.0.tar.gz 4100654 SHA256 d3c6747439fabbfa976922ca26ffa695778668e757261e00103f2444cf153afa SHA512 dbc6dfc43f3a75ba671969d2fd59080d96e411a62a2ac91444d076acba548b2c87000f9822fa0af82f22b4f5c098273d407c1e665ce4b24a52dbddfdc9ab981f WHIRLPOOL 550d499ec556a75344d25331aa1df1855f6f70e2e702c086a8ecbf1817eb1f4bc3b94224b77491f3bc1f6c758a22475c248f8afdfc25816132dfedd81c6dfee0

diff --git a/app-admin/rsyslog/files/8-stable/50-rsyslog-8.12.0-fix-re_extract.patch b/app-admin/rsyslog/files/8-stable/50-rsyslog-8.12.0-fix-re_extract.patch
new file mode 100644
index 0000000..f049d53
--- /dev/null
+++ b/app-admin/rsyslog/files/8-stable/50-rsyslog-8.12.0-fix-re_extract.patch
@@ -0,0 +1,130 @@
+From a88d67df6e55e0a5f484f6aff8aa6e9813c5c31a Mon Sep 17 00:00:00 2001
+From: Janmejay Singh <singh.janmejay@gmail.com>
+Date: Mon, 28 Sep 2015 20:38:05 +0530
+Subject: [PATCH] fixed re_extract bug, which fails the regex-compile for
+ extract as fn-init fails when fn does not have exactly 2 args
+
+
+Fixes: https://github.com/rsyslog/rsyslog/issues/499
+
+---
+ grammar/rainerscript.c                   |  2 +-
+ tests/Makefile.am                        |  6 ++++++
+ tests/rscript_re_extract.sh              | 14 ++++++++++++++
+ tests/rscript_re_match.sh                | 14 ++++++++++++++
+ tests/testsuites/rscript_re_extract.conf |  9 +++++++++
+ tests/testsuites/rscript_re_match.conf   | 10 ++++++++++
+ 6 files changed, 54 insertions(+), 1 deletion(-)
+ create mode 100755 tests/rscript_re_extract.sh
+ create mode 100755 tests/rscript_re_match.sh
+ create mode 100644 tests/testsuites/rscript_re_extract.conf
+ create mode 100644 tests/testsuites/rscript_re_match.conf
+
+diff --git a/grammar/rainerscript.c b/grammar/rainerscript.c
+index f02e1fe..17f785e 100644
+--- a/grammar/rainerscript.c
++++ b/grammar/rainerscript.c
+@@ -3747,7 +3747,7 @@ initFunc_re_match(struct cnffunc *func)
+ 	regex_t *re;
+ 	DEFiRet;
+ 
+-	if(func->nParams != 2) {
++	if(func->nParams < 2) {
+ 		parser_errmsg("rsyslog logic error in line %d of file %s\n",
+ 			__LINE__, __FILE__);
+ 		FINALIZE;
+diff --git a/tests/Makefile.am b/tests/Makefile.am
+index 914d947..d77728a 100644
+--- a/tests/Makefile.am
++++ b/tests/Makefile.am
+@@ -120,6 +120,8 @@ TESTS +=  \
+ 	rscript_replace_complex.sh \
+ 	rscript_wrap2.sh \
+ 	rscript_wrap3.sh \
++	rscript_re_extract.sh \
++	rscript_re_match.sh \
+ 	rs_optimizer_pri.sh \
+ 	cee_simple.sh \
+ 	cee_diskqueue.sh \
+@@ -854,6 +856,10 @@ EXTRA_DIST= \
+ 	testsuites/stop_when_array_has_element.conf \
+ 	key_dereference_on_uninitialized_variable_space.sh \
+ 	testsuites/key_dereference_on_uninitialized_variable_space.conf \
++	rscript_re_extract.sh \
++	testsuites/rscript_re_extract.conf \
++	rscript_re_match.sh \
++	testsuites/rscript_re_match.conf \
+ 	cfg.sh
+ 
+ # TODO: re-enable
+diff --git a/tests/rscript_re_extract.sh b/tests/rscript_re_extract.sh
+new file mode 100755
+index 0000000..930448c
+--- /dev/null
++++ b/tests/rscript_re_extract.sh
+@@ -0,0 +1,14 @@
++#!/bin/bash
++# added 2015-09-29 by singh.janmejay
++# This file is part of the rsyslog project, released under ASL 2.0
++echo ===============================================================================
++echo \[rscript_re_extract.sh\]: test re_extract rscript-fn
++. $srcdir/diag.sh init
++. $srcdir/diag.sh startup rscript_re_extract.conf
++. $srcdir/diag.sh tcpflood -m 1 -I $srcdir/testsuites/date_time_msg
++echo doing shutdown
++. $srcdir/diag.sh shutdown-when-empty
++echo wait on shutdown
++. $srcdir/diag.sh wait-shutdown 
++. $srcdir/diag.sh content-check "*Number is 19597*"
++. $srcdir/diag.sh exit
+diff --git a/tests/rscript_re_match.sh b/tests/rscript_re_match.sh
+new file mode 100755
+index 0000000..d2e212d
+--- /dev/null
++++ b/tests/rscript_re_match.sh
+@@ -0,0 +1,14 @@
++#!/bin/bash
++# added 2015-09-29 by singh.janmejay
++# This file is part of the rsyslog project, released under ASL 2.0
++echo ===============================================================================
++echo \[rscript_re_match.sh\]: test re_match rscript-fn
++. $srcdir/diag.sh init
++. $srcdir/diag.sh startup rscript_re_match.conf
++. $srcdir/diag.sh tcpflood -m 1 -I $srcdir/testsuites/date_time_msg
++echo doing shutdown
++. $srcdir/diag.sh shutdown-when-empty
++echo wait on shutdown
++. $srcdir/diag.sh wait-shutdown 
++. $srcdir/diag.sh content-check "*Matched*"
++. $srcdir/diag.sh exit
+diff --git a/tests/testsuites/rscript_re_extract.conf b/tests/testsuites/rscript_re_extract.conf
+new file mode 100644
+index 0000000..6c71e53
+--- /dev/null
++++ b/tests/testsuites/rscript_re_extract.conf
+@@ -0,0 +1,9 @@
++$IncludeConfig diag-common.conf
++template(name="outfmt" type="string" string="*Number is %$.number%*\n")
++
++module(load="../plugins/imtcp/.libs/imtcp")
++input(type="imtcp" port="13514")
++
++set $.number = re_extract($msg, '.* ([0-9]+)$', 0, 1, 'none');
++
++action(type="omfile" file="./rsyslog.out.log" template="outfmt")
+diff --git a/tests/testsuites/rscript_re_match.conf b/tests/testsuites/rscript_re_match.conf
+new file mode 100644
+index 0000000..3e0f36f
+--- /dev/null
++++ b/tests/testsuites/rscript_re_match.conf
+@@ -0,0 +1,10 @@
++$IncludeConfig diag-common.conf
++template(name="outfmt" type="string" string="*Matched*\n")
++
++module(load="../plugins/imtcp/.libs/imtcp")
++input(type="imtcp" port="13514")
++
++if (re_match($msg, '.* ([0-9]+)$')) then {
++	 action(type="omfile" file="./rsyslog.out.log" template="outfmt")
++}
++

diff --git a/app-admin/rsyslog/files/8-stable/50-rsyslog-8.13.0-lookup-table-reload-bugfix.patch b/app-admin/rsyslog/files/8-stable/50-rsyslog-8.13.0-lookup-table-reload-bugfix.patch
new file mode 100644
index 0000000..b426180
--- /dev/null
+++ b/app-admin/rsyslog/files/8-stable/50-rsyslog-8.13.0-lookup-table-reload-bugfix.patch
@@ -0,0 +1,141 @@
+From 3a10a78edeef9725f69a24d633bb394e365145f0 Mon Sep 17 00:00:00 2001
+From: Janmejay Singh <singh.janmejay@gmail.com>
+Date: Wed, 30 Sep 2015 17:24:38 +0530
+Subject: [PATCH] Fixed lookup-table reload bug, which ignored table-length of
+ reloaded table, resulting in additional entries being invisible while
+ looking-up (binary-search would work with old-table-length). This would be a
+ security-issue or may cause a crash if reloaded table is actually smaller
+ (memory access beyond table).
+
+---
+ runtime/lookup.c                    |  1 +
+ tests/Makefile.am                   |  5 +++++
+ tests/diag.sh                       |  4 ++++
+ tests/lookup_table.sh               | 24 ++++++++++++++++++++++++
+ tests/testsuites/lookup_table.conf  |  9 +++++++++
+ tests/testsuites/xlate.lkp_tbl      |  5 +++++
+ tests/testsuites/xlate_more.lkp_tbl |  6 ++++++
+ 7 files changed, 55 insertions(+)
+ create mode 100755 tests/lookup_table.sh
+ create mode 100644 tests/testsuites/lookup_table.conf
+ create mode 100644 tests/testsuites/xlate.lkp_tbl
+ create mode 100644 tests/testsuites/xlate_more.lkp_tbl
+
+diff --git a/runtime/lookup.c b/runtime/lookup.c
+index 096bf09..5aa00b9 100644
+--- a/runtime/lookup.c
++++ b/runtime/lookup.c
+@@ -203,6 +203,7 @@ lookupReload(lookup_t *pThis)
+ 	}
+ 	free(pThis->d.strtab);
+ 	pThis->d.strtab = newlu.d.strtab; /* hand table AND ALL STRINGS over! */
++	pThis->nmemb = newlu.nmemb;
+ 	pthread_rwlock_unlock(&pThis->rwlock);
+ 	errmsg.LogError(0, RS_RET_OK, "lookup table '%s' reloaded from file '%s'",
+ 			pThis->name, pThis->filename);
+diff --git a/tests/Makefile.am b/tests/Makefile.am
+index d77728a..49cb641 100644
+--- a/tests/Makefile.am
++++ b/tests/Makefile.am
+@@ -130,6 +130,7 @@ TESTS +=  \
+ 	incltest_dir_wildcard.sh \
+ 	incltest_dir_empty_wildcard.sh \
+ 	linkedlistqueue.sh \
++	lookup_table.sh \
+ 	key_dereference_on_uninitialized_variable_space.sh
+ 
+ 
+@@ -860,6 +861,10 @@ EXTRA_DIST= \
+ 	testsuites/rscript_re_extract.conf \
+ 	rscript_re_match.sh \
+ 	testsuites/rscript_re_match.conf \
++	lookup_table.sh \
++	testsuites/lookup_table.conf \
++	testsuites/xlate.lkp_tbl \
++	testsuites/xlate_more.lkp_tbl \
+ 	cfg.sh
+ 
+ # TODO: re-enable
+diff --git a/tests/diag.sh b/tests/diag.sh
+index 95d6adb..c489fff 100755
+--- a/tests/diag.sh
++++ b/tests/diag.sh
+@@ -195,6 +195,10 @@ case $1 in
+ 			echo WaitMainQueueEmpty | ./diagtalker || . $srcdir/diag.sh error-exit  $?
+ 		fi
+ 		;;
++   'issue-HUP') # shut rsyslogd down when main queue is empty. $2 is the instance.
++		kill -HUP `cat rsyslog$2.pid`
++		./msleep 1000
++		;;
+    'shutdown-when-empty') # shut rsyslogd down when main queue is empty. $2 is the instance.
+ 		if [ "$2" == "2" ]
+ 		then
+diff --git a/tests/lookup_table.sh b/tests/lookup_table.sh
+new file mode 100755
+index 0000000..fae2fab
+--- /dev/null
++++ b/tests/lookup_table.sh
+@@ -0,0 +1,24 @@
++#!/bin/bash
++# added 2015-09-30 by singh.janmejay
++# This file is part of the rsyslog project, released under ASL 2.0
++echo ===============================================================================
++echo \[lookup_table_reload.sh\]: test for lookup-table and HUP based reloading of it
++. $srcdir/diag.sh init
++cp $srcdir/testsuites/xlate.lkp_tbl $srcdir/xlate.lkp_tbl
++. $srcdir/diag.sh startup lookup_table.conf
++. $srcdir/diag.sh injectmsg  0 3
++. $srcdir/diag.sh wait-queueempty
++. $srcdir/diag.sh content-check "msgnum:00000000: foo_old"
++. $srcdir/diag.sh content-check "msgnum:00000001: bar_old"
++. $srcdir/diag.sh assert-content-missing "baz"
++cp $srcdir/testsuites/xlate_more.lkp_tbl $srcdir/xlate.lkp_tbl
++. $srcdir/diag.sh issue-HUP
++. $srcdir/diag.sh injectmsg  0 3
++echo doing shutdown
++. $srcdir/diag.sh shutdown-when-empty
++echo wait on shutdown
++. $srcdir/diag.sh wait-shutdown 
++. $srcdir/diag.sh content-check "msgnum:00000000: foo_new"
++. $srcdir/diag.sh content-check "msgnum:00000001: bar_new"
++. $srcdir/diag.sh content-check "msgnum:00000002: baz"
++. $srcdir/diag.sh exit
+diff --git a/tests/testsuites/lookup_table.conf b/tests/testsuites/lookup_table.conf
+new file mode 100644
+index 0000000..29bd805
+--- /dev/null
++++ b/tests/testsuites/lookup_table.conf
+@@ -0,0 +1,9 @@
++$IncludeConfig diag-common.conf
++
++lookup_table(name="xlate" file="xlate.lkp_tbl")
++
++template(name="outfmt" type="string" string="- %msg% %$.lkp%\n")
++
++set $.lkp = lookup("xlate", $msg);
++
++action(type="omfile" file="./rsyslog.out.log" template="outfmt")
+diff --git a/tests/testsuites/xlate.lkp_tbl b/tests/testsuites/xlate.lkp_tbl
+new file mode 100644
+index 0000000..30e2796
+--- /dev/null
++++ b/tests/testsuites/xlate.lkp_tbl
+@@ -0,0 +1,5 @@
++{
++  "table":[
++      {"index":" msgnum:00000000:", "value":"foo_old" },
++      {"index":" msgnum:00000001:", "value":"bar_old" }]
++}
+diff --git a/tests/testsuites/xlate_more.lkp_tbl b/tests/testsuites/xlate_more.lkp_tbl
+new file mode 100644
+index 0000000..2d3f452
+--- /dev/null
++++ b/tests/testsuites/xlate_more.lkp_tbl
+@@ -0,0 +1,6 @@
++{
++  "table":[
++      {"index":" msgnum:00000000:", "value":"foo_new" },
++      {"index":" msgnum:00000001:", "value":"bar_new" },
++      {"index":" msgnum:00000002:", "value":"baz" }]
++}

diff --git a/app-admin/rsyslog/files/8-stable/rsyslog.confd-r1 b/app-admin/rsyslog/files/8-stable/rsyslog.confd-r1
new file mode 100644
index 0000000..da48c01
--- /dev/null
+++ b/app-admin/rsyslog/files/8-stable/rsyslog.confd-r1
@@ -0,0 +1,30 @@
+# /etc/conf.d/rsyslog
+
+# Configuration file
+#RSYSLOG_CONFIGFILE="/etc/rsyslog.conf"
+
+# PID file
+# If you should ever change this, remember to update
+# "/etc/logrotate.d/rsyslog", too.
+#RSYSLOG_PIDFILE="/run/rsyslogd.pid"
+
+# You can use this configuration option to pass additional options to the
+# start-stop-daemon, see start-stop-daemon(8) for more details.
+# Per default we wait 1000ms after we have started the service to ensure
+# that the daemon is really up and running.
+#RSYSLOG_SSDARGS="--wait 1000"
+
+# The termination timeout (start-stop-daemon parameter "retry") ensures
+# that the service will be terminated within a given time (60 + 5 seconds
+# per default) when you are stopping the service.
+# You need to increase the value when you are working with a large queue.
+# See http://www.rsyslog.com/doc/queues.html for further information.
+#RSYSLOG_TERMTIMEOUT="TERM/60/KILL/5"
+
+
+# Options to rsyslogd
+# See rsyslogd(8) for more details
+# Notes:
+# * Do not specify another PIDFILE but use the variable above to change the location
+# * Do not specify another CONFIGFILE but use the variable above to change the location
+#RSYSLOG_OPTS=""

diff --git a/app-admin/rsyslog/files/8-stable/rsyslog.initd-r1 b/app-admin/rsyslog/files/8-stable/rsyslog.initd-r1
new file mode 100644
index 0000000..078740d
--- /dev/null
+++ b/app-admin/rsyslog/files/8-stable/rsyslog.initd-r1
@@ -0,0 +1,73 @@
+#!/sbin/runscript
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+RSYSLOG_CONFIGFILE=${RSYSLOG_CONFIGFILE:-"/etc/rsyslog.conf"}
+RSYSLOG_PIDFILE=${RSYSLOG_PIDFILE:-"/run/rsyslogd.pid"}
+RSYSLOG_SSDARGS=${RSYSLOG_SSDARGS:-"--wait 1000"}
+RSYSLOG_TERMTIMEOUT=${RSYSLOG_TERMTIMEOUT:-"TERM/60/KILL/5"}
+RSYSLOG_OPTS=${RSYSLOG_OPTS:-""}
+
+command="/usr/sbin/rsyslogd"
+command_args="${RSYSLOG_OPTS} -f \"${RSYSLOG_CONFIGFILE}\" -i \"${RSYSLOG_PIDFILE}\""
+start_stop_daemon_args="${RSYSLOG_SSDARGS}"
+pidfile="${RSYSLOG_PIDFILE}"
+retry="${RSYSLOG_TERMTIMEOUT}"
+
+required_files="${RSYSLOG_CONFIGFILE}"
+
+description="RSYSLOG is the rocket-fast system for log processing (syslog replacement)."
+
+extra_commands="configtest"
+extra_started_commands="rotate"
+
+description_configtest="Run rsyslogd's internal config check."
+
+description_rotate="Sends rsyslogd a signal to re-open its log files."
+
+depend() {
+	need clock hostname localmount
+	provide logger
+}
+
+start_pre() {
+	if [ "${RC_CMD}" != "restart" ]; then
+		configtest || return 1
+	fi
+}
+
+stop_pre() {
+	if [ "${RC_CMD}" = "restart" ]; then
+		configtest || return 1
+	fi
+}
+
+stop_post() {
+	if [ -f "${RSYSLOG_PIDFILE}" ]; then
+		vebegin "Removing stale PID file"
+		rm --force "${RSYSLOG_PIDFILE}"
+		veend $?
+	fi
+}
+
+configtest() {
+	local _command_args="-N 999 -f \"${RSYSLOG_CONFIGFILE}\""
+	local _retval=0
+
+	ebegin "Checking rsyslogd's configuration"
+	eval ${command} ${_command_args} >/dev/null 2>&1
+	_retval=$?
+
+	if [ ${_retval} -ne 0 ]; then
+		eval ${command} ${_command_args}
+	fi
+
+	eend ${_retval} "failed, please correct errors above"
+}
+
+rotate() {
+	ebegin "Re-opening rsyslogd logs"
+	start-stop-daemon --signal SIGHUP --pidfile "${RSYSLOG_PIDFILE}"
+	eend $?
+}

diff --git a/app-admin/rsyslog/rsyslog-8.13.0.ebuild b/app-admin/rsyslog/rsyslog-8.13.0.ebuild
new file mode 100644
index 0000000..34085ef
--- /dev/null
+++ b/app-admin/rsyslog/rsyslog-8.13.0.ebuild
@@ -0,0 +1,423 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+AUTOTOOLS_AUTORECONF=1
+
+inherit autotools-utils eutils systemd
+
+DESCRIPTION="An enhanced multi-threaded syslogd with database support and more"
+HOMEPAGE="http://www.rsyslog.com/"
+
+BRANCH="8-stable"
+
+PATCHES=()
+
+if [[ ${PV} == "9999" ]]; then
+	EGIT_REPO_URI="
+		git://github.com/rsyslog/${PN}.git
+		https://github.com/rsyslog/${PN}.git
+	"
+
+	DOC_REPO_URI="
+		git://github.com/rsyslog/${PN}-doc.git
+		https://github.com/rsyslog/${PN}-doc.git
+	"
+
+	inherit git-r3
+else
+	SRC_URI="
+		http://www.rsyslog.com/files/download/${PN}/${P}.tar.gz
+		doc? ( http://www.rsyslog.com/files/download/${PN}/${PN}-doc-${PV}.tar.gz )
+	"
+	KEYWORDS="~amd64 ~arm ~hppa ~x86"
+
+	PATCHES+=( "${FILESDIR}"/${BRANCH}/50-${PN}-8.12.0-fix-re_extract.patch )
+	PATCHES+=( "${FILESDIR}"/${BRANCH}/50-${PN}-8.13.0-lookup-table-reload-bugfix.patch )
+fi
+
+LICENSE="GPL-3 LGPL-3 Apache-2.0"
+SLOT="0"
+IUSE="dbi debug doc elasticsearch +gcrypt jemalloc kerberos libressl mongodb mysql normalize omudpspoof"
+IUSE+=" postgres rabbitmq redis relp rfc3195 rfc5424hmac snmp ssl systemd test usertools zeromq"
+
+RDEPEND="
+	>=dev-libs/json-c-0.11:=
+	>=dev-libs/libestr-0.1.9
+	>=dev-libs/liblogging-1.0.1:=[stdlog]
+	>=sys-libs/zlib-1.2.5
+	dbi? ( >=dev-db/libdbi-0.8.3 )
+	elasticsearch? ( >=net-misc/curl-7.35.0 )
+	gcrypt? ( >=dev-libs/libgcrypt-1.5.3:= )
+	jemalloc? ( >=dev-libs/jemalloc-3.3.1 )
+	kerberos? ( virtual/krb5 )
+	mongodb? ( >=dev-libs/libmongo-client-0.1.4 )
+	mysql? ( virtual/mysql )
+	normalize? (
+		>=dev-libs/libee-0.4.0
+		>=dev-libs/liblognorm-1.1.2:=
+	)
+	omudpspoof? ( >=net-libs/libnet-1.1.6 )
+	postgres? ( >=dev-db/postgresql-8.4.20:= )
+	rabbitmq? ( >=net-libs/rabbitmq-c-0.3.0 )
+	redis? ( >=dev-libs/hiredis-0.11.0 )
+	relp? ( >=dev-libs/librelp-1.2.5 )
+	rfc3195? ( >=dev-libs/liblogging-1.0.1:=[rfc3195] )
+	rfc5424hmac? (
+		!libressl? ( >=dev-libs/openssl-0.9.8y:0= )
+		libressl? ( dev-libs/libressl:= )
+	)
+	snmp? ( >=net-analyzer/net-snmp-5.7.2 )
+	ssl? ( >=net-libs/gnutls-2.12.23 )
+	systemd? ( >=sys-apps/systemd-208 )
+	zeromq? ( >=net-libs/czmq-1.2.0 )"
+DEPEND="${RDEPEND}
+	virtual/pkgconfig"
+
+if [[ ${PV} == "9999" ]]; then
+	DEPEND+=" doc? ( >=dev-python/sphinx-1.1.3-r7 )"
+	DEPEND+=" >=sys-devel/flex-2.5.39-r1"
+	DEPEND+=" >=sys-devel/bison-2.4.3"
+	DEPEND+=" >=dev-python/docutils-0.12"
+fi
+
+# Maitainer note : open a bug to upstream
+# showing that building in a separate dir fails
+AUTOTOOLS_IN_SOURCE_BUILD=1
+
+AUTOTOOLS_PRUNE_LIBTOOL_FILES="modules"
+
+DOCS=(
+	AUTHORS
+	ChangeLog
+	"${FILESDIR}"/${BRANCH}/README.gentoo
+)
+
+src_unpack() {
+	if [[ ${PV} == "9999" ]]; then
+		git-r3_fetch
+		git-r3_checkout
+	else
+		unpack ${P}.tar.gz
+	fi
+
+	if use doc; then
+		if [[ ${PV} == "9999" ]]; then
+			local _EGIT_BRANCH=
+			if [ -n "${EGIT_BRANCH}" ]; then
+				# Cannot use rsyslog commits/branches for documentation repository
+				_EGIT_BRANCH=${EGIT_BRANCH}
+				unset EGIT_BRANCH
+			fi
+
+			git-r3_fetch "${DOC_REPO_URI}"
+			git-r3_checkout "${DOC_REPO_URI}" "${S}"/docs
+
+			if [ -n "${_EGIT_BRANCH}" ]; then
+				# Restore previous EGIT_BRANCH information
+				EGIT_BRANCH=${_EGIT_BRANCH}
+			fi
+		else
+			local doc_tarball="${PN}-doc-${PV}.tar.gz"
+
+			cd "${S}" || die "Cannot change dir into '$S'"
+			mkdir docs || die "Failed to create docs directory"
+			cd docs || die "Failed to change dir into '${S}/docs'"
+			unpack ${doc_tarball}
+		fi
+	fi
+}
+
+src_configure() {
+	# Maintainer notes:
+	# * Guardtime support is missing because libgt isn't yet available
+	#   in portage.
+	# * Hadoop's HDFS file system output module is currently not
+	#   supported in Gentoo because nobody is able to test it
+	#   (JAVA dependency).
+	# * dev-libs/hiredis doesn't provide pkg-config (see #504614,
+	#   upstream PR 129 and 136) so we need to export HIREDIS_*
+	#   variables because rsyslog's build system depends on pkg-config.
+
+	if use redis; then
+		export HIREDIS_LIBS="-L${EPREFIX}/usr/$(get_libdir) -lhiredis"
+		export HIREDIS_CFLAGS="-I${EPREFIX}/usr/include"
+	fi
+
+	local myeconfargs=(
+		--disable-debug-symbols
+		--disable-generate-man-pages
+		--without-valgrind-testbench
+		$(use_enable test testbench)
+		# Input Plugins without depedencies
+		--enable-imdiag
+		--enable-imfile
+		--enable-impstats
+		--enable-imptcp
+		# Message Modificiation Plugins without depedencies
+		--enable-mmanon
+		--enable-mmaudit
+		--enable-mmfields
+		--enable-mmjsonparse
+		--enable-mmpstrucdata
+		--enable-mmsequence
+		--enable-mmutf8fix
+		# Output Modification Plugins without dependencies
+		--enable-mail
+		--enable-omprog
+		--enable-omruleset
+		--enable-omstdout
+		--enable-omuxsock
+		# Misc
+		--enable-pmaixforwardedfrom
+		--enable-pmciscoios
+		--enable-pmcisconames
+		--enable-pmlastmsg
+		--enable-pmsnare
+		# DB
+		$(use_enable dbi libdbi)
+		$(use_enable mongodb ommongodb)
+		$(use_enable mysql)
+		$(use_enable postgres pgsql)
+		$(use_enable redis omhiredis)
+		# Debug
+		$(use_enable debug)
+		$(use_enable debug diagtools)
+		$(use_enable debug memcheck)
+		$(use_enable debug rtinst)
+		$(use_enable debug valgrind)
+		# Misc
+		$(use_enable elasticsearch)
+		$(use_enable gcrypt libgcrypt)
+		$(use_enable jemalloc)
+		$(use_enable kerberos gssapi-krb5)
+		$(use_enable normalize mmnormalize)
+		$(use_enable omudpspoof)
+		$(use_enable rabbitmq omrabbitmq)
+		$(use_enable relp)
+		$(use_enable rfc3195)
+		$(use_enable rfc5424hmac mmrfc5424addhmac)
+		$(use_enable snmp)
+		$(use_enable snmp mmsnmptrapd)
+		$(use_enable ssl gnutls)
+		$(use_enable systemd imjournal)
+		$(use_enable systemd omjournal)
+		$(use_enable usertools)
+		$(use_enable zeromq imzmq3)
+		$(use_enable zeromq omzmq3)
+		"$(systemd_with_unitdir)"
+	)
+
+	autotools-utils_src_configure
+}
+
+src_compile() {
+	autotools-utils_src_compile
+
+	if use doc && [[ "${PV}" == "9999" ]]; then
+		einfo "Building documentation ..."
+		local doc_dir="${S}/docs"
+		cd "${doc_dir}" || die "Cannot chdir into \"${doc_dir}\"!"
+		sphinx-build -b html source build || die "Building documentation failed!"
+	fi
+}
+
+src_test() {
+	local _has_increased_ulimit=
+
+	# 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"
+
+	if ulimit -n 3072; then
+		_has_increased_ulimit="true"
+	fi
+
+	if ! emake --jobs 1 check; then
+		eerror "Test suite failed! :("
+
+		if [ -z "${_has_increased_ulimit}" ]; then
+			eerror "Probably because open file limit couldn't be set to 3072."
+		fi
+
+		if has userpriv $FEATURES; then
+			eerror "Please try to reproduce the test suite failure with FEATURES=-userpriv " \
+				"before you submit a bug report."
+		fi
+
+	fi
+}
+
+src_install() {
+	use doc && HTML_DOCS=( "${S}/docs/build/" )
+	autotools-utils_src_install
+
+	newconfd "${FILESDIR}/${BRANCH}/${PN}.confd-r1" ${PN}
+	newinitd "${FILESDIR}/${BRANCH}/${PN}.initd-r1" ${PN}
+
+	keepdir /var/empty/dev
+	keepdir /var/spool/${PN}
+	keepdir /etc/ssl/${PN}
+	keepdir /etc/${PN}.d
+
+	insinto /etc
+	newins "${FILESDIR}/${BRANCH}/${PN}.conf" ${PN}.conf
+
+	insinto /etc/rsyslog.d/
+	doins "${FILESDIR}/${BRANCH}/50-default.conf"
+
+	insinto /etc/logrotate.d/
+	newins "${FILESDIR}/${BRANCH}/${PN}.logrotate" ${PN}
+
+	if use mysql; then
+		insinto /usr/share/doc/${PF}/scripts/mysql
+		doins plugins/ommysql/createDB.sql
+	fi
+
+	if use postgres; then
+		insinto /usr/share/doc/${PF}/scripts/pgsql
+		doins plugins/ompgsql/createDB.sql
+	fi
+}
+
+pkg_postinst() {
+	local advertise_readme=0
+
+	if [[ -z "${REPLACING_VERSIONS}" ]]; then
+		# This is a new installation
+
+		advertise_readme=1
+
+		if use mysql || use postgres; then
+			echo
+			elog "Sample SQL scripts for MySQL & PostgreSQL have been installed to:"
+			elog "  /usr/share/doc/${PF}/scripts"
+		fi
+
+		if use ssl; then
+			echo
+			elog "To create a default CA and certificates for your server and clients, run:"
+			elog "  emerge --config =${PF}"
+			elog "on your logging server. You can run it several times,"
+			elog "once for each logging client. The client certificates will be signed"
+			elog "using the CA certificate generated during the first run."
+		fi
+	fi
+
+	if [[ -z "${REPLACING_VERSIONS}" ]] || [[ ${REPLACING_VERSIONS} < 8.0 ]]; then
+		# Show this message until rsyslog-8.x
+		echo
+		elog "Since ${PN}-7.6.3 we no longer use the catch-all log target"
+		elog "\"/var/log/syslog\" due to its redundancy to the other log targets."
+
+		advertise_readme=1
+	fi
+
+	if [[ ${advertise_readme} -gt 0 ]]; then
+		# We need to show the README file location
+
+		echo ""
+		elog "Please read"
+		elog ""
+		elog "  ${EPREFIX}/usr/share/doc/${PF}/README.gentoo*"
+		elog ""
+		elog "for more details."
+	fi
+}
+
+pkg_config() {
+	if ! use ssl ; then
+		einfo "There is nothing to configure for rsyslog unless you"
+		einfo "used USE=ssl to build it."
+		return 0
+	fi
+
+	# Make sure the certificates directory exists
+	CERTDIR="${EROOT}/etc/ssl/${PN}"
+	if [ ! -d "${CERTDIR}" ]; then
+		mkdir "${CERTDIR}" || die
+	fi
+	einfo "Your certificates will be stored in ${CERTDIR}"
+
+	# Create a default CA if needed
+	if [ ! -f "${CERTDIR}/${PN}_ca.cert.pem" ]; then
+		einfo "No CA key and certificate found in ${CERTDIR}, creating them for you..."
+		certtool --generate-privkey \
+			--outfile "${CERTDIR}/${PN}_ca.privkey.pem" &>/dev/null
+		chmod 400 "${CERTDIR}/${PN}_ca.privkey.pem"
+
+		cat > "${T}/${PF}.$$" <<- _EOF
+		cn = Portage automated CA
+		ca
+		cert_signing_key
+		expiration_days = 3650
+		_EOF
+
+		certtool --generate-self-signed \
+			--load-privkey "${CERTDIR}/${PN}_ca.privkey.pem" \
+			--outfile "${CERTDIR}/${PN}_ca.cert.pem" \
+			--template "${T}/${PF}.$$" &>/dev/null
+		chmod 400 "${CERTDIR}/${PN}_ca.privkey.pem"
+
+		# Create the server certificate
+		echo
+		einfon "Please type the Common Name of the SERVER you wish to create a certificate for: "
+		read -r CN
+
+		einfo "Creating private key and certificate for server ${CN}..."
+		certtool --generate-privkey \
+			--outfile "${CERTDIR}/${PN}_${CN}.key.pem" &>/dev/null
+		chmod 400 "${CERTDIR}/${PN}_${CN}.key.pem"
+
+		cat > "${T}/${PF}.$$" <<- _EOF
+		cn = ${CN}
+		tls_www_server
+		dns_name = ${CN}
+		expiration_days = 3650
+		_EOF
+
+		certtool --generate-certificate \
+			--outfile "${CERTDIR}/${PN}_${CN}.cert.pem" \
+			--load-privkey "${CERTDIR}/${PN}_${CN}.key.pem" \
+			--load-ca-certificate "${CERTDIR}/${PN}_ca.cert.pem" \
+			--load-ca-privkey "${CERTDIR}/${PN}_ca.privkey.pem" \
+			--template "${T}/${PF}.$$" &>/dev/null
+		chmod 400 "${CERTDIR}/${PN}_${CN}.cert.pem"
+
+	else
+		einfo "Found existing ${CERTDIR}/${PN}_ca.cert.pem, skipping CA and SERVER creation."
+	fi
+
+	# Create a client certificate
+	echo
+	einfon "Please type the Common Name of the CLIENT you wish to create a certificate for: "
+	read -r CN
+
+	einfo "Creating private key and certificate for client ${CN}..."
+	certtool --generate-privkey \
+		--outfile "${CERTDIR}/${PN}_${CN}.key.pem" &>/dev/null
+	chmod 400 "${CERTDIR}/${PN}_${CN}.key.pem"
+
+	cat > "${T}/${PF}.$$" <<- _EOF
+	cn = ${CN}
+	tls_www_client
+	dns_name = ${CN}
+	expiration_days = 3650
+	_EOF
+
+	certtool --generate-certificate \
+		--outfile "${CERTDIR}/${PN}_${CN}.cert.pem" \
+		--load-privkey "${CERTDIR}/${PN}_${CN}.key.pem" \
+		--load-ca-certificate "${CERTDIR}/${PN}_ca.cert.pem" \
+		--load-ca-privkey "${CERTDIR}/${PN}_ca.privkey.pem" \
+		--template "${T}/${PF}.$$" &>/dev/null
+	chmod 400 "${CERTDIR}/${PN}_${CN}.cert.pem"
+
+	rm -f "${T}/${PF}.$$"
+
+	echo
+	einfo "Here is the documentation on how to encrypt your log traffic:"
+	einfo " http://www.rsyslog.com/doc/rsyslog_tls.html"
+}


             reply	other threads:[~2015-10-09 14:12 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-10-09 14:12 Lars Wendler [this message]
  -- strict thread matches above, loose matches on Subject: below --
2018-05-19 17:44 [gentoo-commits] repo/gentoo:master commit in: app-admin/rsyslog/, app-admin/rsyslog/files/8-stable/ Thomas Deutschmann
2018-05-16 23:12 Thomas Deutschmann
2018-04-04  1:50 Thomas Deutschmann
2018-04-04  1:50 Thomas Deutschmann
2018-02-20 20:39 Thomas Deutschmann
2018-02-09 14:26 Thomas Deutschmann
2017-03-21 14:41 Thomas Deutschmann
2016-02-05 15:24 Lars Wendler
2015-10-09 14:12 Lars Wendler
2015-08-18 15:19 Lars Wendler

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1444399922.b2fc2901e8b2e08a19e8b2eca4b29c86e1a93e9b.polynomial-c@gentoo \
    --to=polynomial-c@gentoo.org \
    --cc=gentoo-commits@lists.gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox