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.janme...@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.janme...@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 via email to