diff --git a/.gitignore b/.gitignore
index 8a7cc6e..de3df7d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1,2 @@
-SOURCES/rsyslog-7.4.7.tar.gz
+SOURCES/rsyslog-8.24.0.tar.gz
+SOURCES/rsyslog-doc-8.24.0.tar.gz
diff --git a/.rsyslog.metadata b/.rsyslog.metadata
index 2ba55fe..289264b 100644
--- a/.rsyslog.metadata
+++ b/.rsyslog.metadata
@@ -1 +1,2 @@
-f4d6c60572bf661c7a7ea6a0f5e221e5a0fbf65a SOURCES/rsyslog-7.4.7.tar.gz
+615ee5b47ca4c3a28de3c8ee4477c721c20f31aa SOURCES/rsyslog-8.24.0.tar.gz
+c0bbe5466738ac97575e0301cf26f0ec45d77b20 SOURCES/rsyslog-doc-8.24.0.tar.gz
diff --git a/SOURCES/rsyslog-7.2.1-msg_c_nonoverwrite_merge.patch b/SOURCES/rsyslog-7.2.1-msg_c_nonoverwrite_merge.patch
deleted file mode 100644
index 6fbe502..0000000
--- a/SOURCES/rsyslog-7.2.1-msg_c_nonoverwrite_merge.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-diff -up rsyslog-7.2.1/runtime/msg.c.orig rsyslog-7.2.1/runtime/msg.c
---- rsyslog-7.2.1/runtime/msg.c.orig 2012-10-29 11:33:30.000000000 +0100
-+++ rsyslog-7.2.1/runtime/msg.c 2012-11-14 08:58:20.235584832 +0100
-@@ -3752,6 +3752,22 @@
- RETiRet;
- }
-
-+static rsRetVal
-+jsonMergeNonOverwrite(struct json_object *existing, struct json_object *json)
-+{
-+ DEFiRet;
-+ struct json_object_iter it;
-+
-+ json_object_object_foreachC(existing, it) {
-+ json_object_object_add(json, it.key, json_object_get(it.val));
-+ }
-+
-+ CHKiRet(jsonMerge(existing, json));
-+
-+finalize_it:
-+ RETiRet;
-+}
-+
- /* find a JSON structure element (field or container doesn't matter). */
- rsRetVal
- jsonFind(msg_t *pM, es_str_t *propName, struct json_object **jsonres)
-@@ -3795,7 +3811,7 @@
- if(pM->json == NULL)
- pM->json = json;
- else
-- CHKiRet(jsonMerge(pM->json, json));
-+ CHKiRet(jsonMergeNonOverwrite(pM->json, json));
- } else {
- if(pM->json == NULL) {
- /* now we need a root obj */
-@@ -3808,7 +3824,7 @@
- json_object_object_add(parent, (char*)leaf, json);
- } else {
- if(json_object_get_type(json) == json_type_object) {
-- CHKiRet(jsonMerge(pM->json, json));
-+ CHKiRet(jsonMergeNonOverwrite(pM->json, json));
- } else {
- //dbgprintf("AAAA: leafnode already exists, type is %d, update with %d\n", (int)json_object_get_type(leafnode), (int)json_object_get_type(json));
- /* TODO: improve the code below, however, the current
diff --git a/SOURCES/rsyslog-7.2.2-manpage-dbg-mode.patch b/SOURCES/rsyslog-7.2.2-manpage-dbg-mode.patch
deleted file mode 100644
index 4a15907..0000000
--- a/SOURCES/rsyslog-7.2.2-manpage-dbg-mode.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-diff -up rsyslog-7.2.2/tools/rsyslogd.8.orig rsyslog-7.2.2/tools/rsyslogd.8
---- rsyslog-7.2.2/tools/rsyslogd.8.orig 2012-11-20 16:31:26.530284950 +0100
-+++ rsyslog-7.2.2/tools/rsyslogd.8 2012-11-20 16:31:34.172188889 +0100
-@@ -131,11 +131,7 @@ syntax errors are reported. Please note
- technical and orignally targeted towards developers.
- .TP
- .B "\-d"
--Turns on debug mode. Using this the daemon will not proceed a
--.BR fork (2)
--to set itself in the background, but opposite to that stay in the
--foreground and write much debug information on the current tty. See the
--DEBUGGING section for more information.
-+Turns on debug mode. See the DEBUGGING section for more information.
- .TP
- .BI "\-f " "config file"
- Specify an alternative configuration file instead of
-@@ -294,11 +290,17 @@ be prevented by using GSS-API authentica
- to think about syslog network security before enabling it.
- .LP
- .SH DEBUGGING
--When debugging is turned on using
-+When debugging is turned on using the
- .B "\-d"
--option then
-+option,
- .B rsyslogd
--will be very verbose by writing much of what it does on stdout.
-+produces debugging information according to the
-+.B RSYSLOG_DEBUG
-+environment variable and the signals received. When run in foreground,
-+the information is written to stdout. An additional output file can be
-+specified using the
-+.B RSYSLOG_DEBUGLOG
-+environment variable.
- .SH FILES
- .PD 0
- .TP
-@@ -325,10 +327,17 @@ is specified during compilation (e.g. /u
- .SH ENVIRONMENT
- .TP
- .B RSYSLOG_DEBUG
--Controls runtime debug support.It contains an option string with the
-+Controls runtime debug support. It contains an option string with the
- following options possible (all are case insensitive):
-
- .RS
-+.IP Debug
-+Turns on debugging and prevents forking. This is processed earlier
-+in the startup than command line options (i.e. -d) and as such
-+enables earlier debugging output. Mutually exclusive with DebugOnDemand.
-+.IP DebugOnDemand
-+Enables debugging but turns off debug output. The output can be toggled
-+by sending SIGUSR1. Mutually exclusive with Debug.
- .IP LogFuncFlow
- Print out the logical flow of functions (entering and exiting them)
- .IP FileTrace
diff --git a/SOURCES/rsyslog-7.4.1-sd-service.patch b/SOURCES/rsyslog-7.4.1-sd-service.patch
deleted file mode 100644
index a9de3a3..0000000
--- a/SOURCES/rsyslog-7.4.1-sd-service.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-diff -up rsyslog-7.4.1/rsyslog.service.in.orig rsyslog-7.4.1/rsyslog.service.in
---- rsyslog-7.4.1/rsyslog.service.in.orig 2013-06-17 15:28:54.430023493 +0200
-+++ rsyslog-7.4.1/rsyslog.service.in 2013-06-17 15:30:05.874378084 +0200
-@@ -4,7 +4,10 @@ Requires=syslog.socket
-
- [Service]
- Type=notify
--ExecStart=@sbindir@/rsyslogd -n
-+EnvironmentFile=-/etc/sysconfig/rsyslog
-+ExecStart=@sbindir@/rsyslogd -n $SYSLOGD_OPTIONS
-+Restart=on-failure
-+UMask=0066
- StandardOutput=null
-
- [Install]
diff --git a/SOURCES/rsyslog-7.4.7-bz1030044-remove-ads.patch b/SOURCES/rsyslog-7.4.7-bz1030044-remove-ads.patch
deleted file mode 100644
index cdbcf0e..0000000
--- a/SOURCES/rsyslog-7.4.7-bz1030044-remove-ads.patch
+++ /dev/null
@@ -1,236 +0,0 @@
-From 79e4e43bcadb0fb520240c655f529874f305f786 Mon Sep 17 00:00:00 2001
-From: Tomas Heinrich
Our secrity goals are achived via public/private key security. As such, it is - vital that private keys are well protected and not accessible to third parties. -- -- -- -- - If private keys have become known to third parties, the system does not provide - any security at all. Also, our solution bases on X.509 certificates and a (very - limited) chain of trust. We have one instance (the CA) that issues all machine -diff --git a/doc/tls_cert_ca.html b/doc/tls_cert_ca.html -index 2cae404..f366462 100644 ---- a/doc/tls_cert_ca.html -+++ b/doc/tls_cert_ca.html -@@ -23,19 +23,6 @@ Gerhards (2008-06-17)
- maintained by a trustworthy person (or group) and approves the indentities of - all machines. It does so by issuing their certificates. In a small setup, the - administrator can provide the CA function. What is important is the the CA's -- -- -- -- - private key is well-protocted and machine certificates are only issued if it is - know they are valid (in a single-admin case that means the admin should not - issue certificates to anyone else except himself). -diff --git a/doc/tls_cert_client.html b/doc/tls_cert_client.html -index dbe7961..53596fc 100644 ---- a/doc/tls_cert_client.html -+++ b/doc/tls_cert_client.html -@@ -25,19 +25,6 @@ example, that meanst turng.example.net). The client check's the server's identit - talks to it only if it is the expected server. This is a very important step. - Without it, you would not detect man-in-the-middle attacks or simple malicious servers - who try to get hold of your valuable log data. -- -- -- -- -Steps to do: -
This page covers error message you may see when setting up -- -- -- -- - rsyslog with TLS. Please note that many - of the message stem back to the TLS library being used. In those cases, there is - not always a good explanation available in rsyslog alone. -diff --git a/doc/tls_cert_machine.html b/doc/tls_cert_machine.html -index 095e15c..fe2ee90 100644 ---- a/doc/tls_cert_machine.html -+++ b/doc/tls_cert_machine.html -@@ -22,19 +22,6 @@ Gerhards (2008-06-18)
-In this step, we generate certificates for each of the machines. Please note - that both clients and servers need certificates. The certificate identifies each - machine to the remote peer. The DNSName specified inside the certificate can -- -- -- -- - be specified inside the $<object>PermittedPeer config statements. -
For now, we assume that a single person (or group) is responsible for the whole - rsyslog system and thus it is OK if that single person is in posession of all -diff --git a/doc/tls_cert_scenario.html b/doc/tls_cert_scenario.html -index 7973532..88c7657 100644 ---- a/doc/tls_cert_scenario.html -+++ b/doc/tls_cert_scenario.html -@@ -21,19 +21,6 @@ Gerhards (2008-06-17)
- -We have a quite simple scenario. There is one central syslog server, -- -- -- -- - named central.example.net. These server is being reported to by two Linux - machines with name zuse.example.net and turing.example.net. Also, there is a - third client - ada.example.net - which send both its own messages to the central -diff --git a/doc/tls_cert_server.html b/doc/tls_cert_server.html -index 9c024bc..b784be1 100644 ---- a/doc/tls_cert_server.html -+++ b/doc/tls_cert_server.html -@@ -23,19 +23,6 @@ Gerhards (2008-06-18)
- via TLS protected plain tcp based syslog from those peers that are explicitely permitted - to send to it. The picture below show our configuration. This step configures - the server central.example.net. -- -- -- -- -Important: Keep in mind that the order of configuration directives - is very important in rsyslog. As such, the samples given below do only work if the given -diff --git a/doc/tls_cert_summary.html b/doc/tls_cert_summary.html -index 8e003bc..95844a8 100644 ---- a/doc/tls_cert_summary.html -+++ b/doc/tls_cert_summary.html -@@ -20,19 +20,6 @@ Gerhards (2008-07-03)
- -If you followed the steps outlined in this documentation set, you now have -- -- -- -- - a reasonable (for most needs) secure setup for the following environment: -
You have learned about the security decisions involved and which we -diff --git a/doc/tls_cert_udp_relay.html b/doc/tls_cert_udp_relay.html -index f4740ce..d44689c 100644 ---- a/doc/tls_cert_udp_relay.html -+++ b/doc/tls_cert_udp_relay.html -@@ -26,19 +26,6 @@ directly to it, because we would like to have TLS protection for its sensitve - logs. If the router and the syslog relay are on a sufficiently secure private - network, this setup can be considered reasonable secure. In any case, it is the - best alternative among the possible configuration scenarios. -- -- -- -- -
Steps to do: -
-