Skip to contentSkip to conversation

Syslog-ng

RFC PATCH New Chris Packham 3 participants 6 messages Sep 26, 2015 – Oct 13, 2015

lore
Share & tools
lore
#0 lore raw

cover Syslog-ng

Hi,

Resurrecting some old patches I had lying around.

Syslog-ng is a very configurable logging system that we've been using at $dayjob for some time. This patch series includes the latest version.

So far I've only tested with qemu_x86_defconfig so there may be some build errors lurking. I haven't had a chance to verify systemd support either.

Chris Packham (2):
eventlog: New package
syslog-ng: New package

 package/Config.in              |  4 ++++
 package/eventlog/Config.in     |  5 +++++
 package/eventlog/eventlog.mk   | 14 ++++++++++++
 package/syslog-ng/Config.in    | 18 ++++++++++++++++
 package/syslog-ng/S01logging   | 36 +++++++++++++++++++++++++++++++
 package/syslog-ng/syslog-ng.mk | 49 ++++++++++++++++++++++++++++++++++++++++++
 6 files changed, 126 insertions(+)
 create mode 100644 package/eventlog/Config.in
 create mode 100644 package/eventlog/eventlog.mk
 create mode 100644 package/syslog-ng/Config.in
 create mode 100644 package/syslog-ng/S01logging
 create mode 100644 package/syslog-ng/syslog-ng.mk
Signature · 1 line
2.5.0
#1 lore raw

RFC PATCH 1/2 eventlog: New package

eventlog is a library for creating structured events from applications, and is the workhorse behind syslog-ng's own messages.

---
 package/Config.in            |  1 +
 package/eventlog/Config.in   |  5 +++++
 package/eventlog/eventlog.mk | 14 ++++++++++++++
 3 files changed, 20 insertions(+)
 create mode 100644 package/eventlog/Config.in
 create mode 100644 package/eventlog/eventlog.mk
package/Config.in +1 -0
index 9dff5e8..2c033ba 100644
@@ -943,6 +943,7 @@ endmenu
 
 menu "Logging"
 	source "package/glog/Config.in"
+	source "package/eventlog/Config.in"
 	source "package/liblog4c-localtime/Config.in"
 	source "package/liblogging/Config.in"
 	source "package/log4cplus/Config.in"
package/eventlog/Config.in new file +5 -0
new file mode 100644
index 0000000..3ba909a
@@ -0,0 +1,5 @@
+config BR2_PACKAGE_EVENTLOG
+	bool "eventlog"
+	help
+	  eventlog is a library for creating structured events from
+	  applications, and is the workhorse behind syslog-ng's own messages.
package/eventlog/eventlog.mk new file +14 -0
new file mode 100644
index 0000000..14bbbfe
@@ -0,0 +1,14 @@
+################################################################################
+#
+# eventlog
+#
+################################################################################
+
+EVENTLOG_VERSION = 0.2.12
+EVENTLOG_SOURCE = eventlog_$(EVENTLOG_VERSION).tar.gz
+EVENTLOG_SITE = https://my.balabit.com/downloads/eventlog/0.2/
+EVENTLOG_LICENSE = BSD
+EVENTLOG_LICENSE_FILES = COPYING
+EVENTLOG_INSTALL_STAGING = YES
+
+$(eval $(autotools-package))
Signature · 1 line
2.5.0
#2 lore raw

RFC PATCH 1/2 eventlog: New package

Dear Chris Packham,

Quoted 17 lines · Chris Packham

eventlog is a library for creating structured events from applications, and is the workhorse behind syslog-ng's own messages.

---
 package/Config.in            |  1 +
 package/eventlog/Config.in   |  5 +++++
 package/eventlog/eventlog.mk | 14 ++++++++++++++
 3 files changed, 20 insertions(+)
 create mode 100644 package/eventlog/Config.in
 create mode 100644 package/eventlog/eventlog.mk
package/Config.in +0 -0
index 9dff5e8..2c033ba 100644

package/Config.in endmenu · line 946

Quoted 4 lines
package/Config.in +1 -0
@@ -943,6 +943,7 @@ endmenu
 
 menu "Logging"
 	source "package/glog/Config.in"
+	source "package/eventlog/Config.in"

this should be alphabetically ordered.

Quoted 20 lines
package/Config.in +0 -0
 	source "package/liblog4c-localtime/Config.in"
 	source "package/liblogging/Config.in"
 	source "package/log4cplus/Config.in"
package/eventlog/Config.in new file +5 -0
new file mode 100644
index 0000000..3ba909a
@@ -0,0 +1,5 @@
+config BR2_PACKAGE_EVENTLOG
+	bool "eventlog"
+	help
+	  eventlog is a library for creating structured events from
+	  applications, and is the workhorse behind syslog-ng's own messages.
package/eventlog/eventlog.mk new file +0 -0
new file mode 100644
index 0000000..14bbbfe

package/eventlog/eventlog.mk line 9

Quoted 9 lines
package/eventlog/eventlog.mk new file +9 -0
@@ -0,0 +1,14 @@
+################################################################################
+#
+# eventlog
+#
+################################################################################
+
+EVENTLOG_VERSION = 0.2.12
+EVENTLOG_SOURCE = eventlog_$(EVENTLOG_VERSION).tar.gz
+EVENTLOG_SITE = https://my.balabit.com/downloads/eventlog/0.2/

The trailing slash is not needed.

package/eventlog/eventlog.mk line 14

Quoted 6 lines
package/eventlog/eventlog.mk new file +5 -0
+EVENTLOG_LICENSE = BSD
+EVENTLOG_LICENSE_FILES = COPYING
+EVENTLOG_INSTALL_STAGING = YES
+
+$(eval $(autotools-package))

And you are missing an eventlog.hash file like this one:

# From https://my.balabit.com/downloads/eventlog/0.2/
sha1 3e35a634e7de029ab9d36995a085bfcb00ed6a4d eventlog_0.2.12.tar.gz

Regards,

Vincent.

#3 lore raw

RFC PATCH 1/2 eventlog: New package

In reply to Chris Packham

Dear Chris Packham,

Quoted 11 lines · Chris Packham

eventlog is a library for creating structured events from applications, and is the workhorse behind syslog-ng's own messages.

---
 package/Config.in            |  1 +
 package/eventlog/Config.in   |  5 +++++
 package/eventlog/eventlog.mk | 14 ++++++++++++++
 3 files changed, 20 insertions(+)
 create mode 100644 package/eventlog/Config.in
 create mode 100644 package/eventlog/eventlog.mk

Applied with a number of changes:

[Thomas:
- fix alphabetic ordering in package/Config.in, as noticed by Vicente.
- rewrap Config.in help text and add some URL as a reference (though the eventlog project doesn't seem to have a real web page)
- remove useless slash at the end of EVENTLOG_SITE
- make the license info more specific: it's a BSD-3c license
- add a hash file.]

Thanks for your contribution!

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
#4 lore raw

RFC PATCH 2/2 syslog-ng: New package

In reply to Chris Packham

syslog-ng is an enhanced log daemon, supporting a wide range of input and output methods: syslog, unstructured text, queueing, SQL & NoSQL.

---
 package/Config.in              |  3 +++
 package/syslog-ng/Config.in    | 18 +++++++++++++
 package/syslog-ng/S01logging   | 36 ++++++++++++++++++++++++++
 package/syslog-ng/syslog-ng.mk | 58 ++++++++++++++++++++++++++++++++++++++++++
 4 files changed, 115 insertions(+)
 create mode 100644 package/syslog-ng/Config.in
 create mode 100644 package/syslog-ng/S01logging
 create mode 100644 package/syslog-ng/syslog-ng.mk
package/Config.in +3 -0
index 2c033ba..00fdc09 100644
@@ -1514,6 +1514,9 @@ endif
 if BR2_PACKAGE_BUSYBOX_SHOW_OTHERS
 	source "package/sysklogd/Config.in"
 endif
+if BR2_PACKAGE_BUSYBOX_SHOW_OTHERS
+	source "package/syslog-ng/Config.in"
+endif
 	source "package/systemd/Config.in"
 if BR2_PACKAGE_BUSYBOX_SHOW_OTHERS
 	source "package/sysvinit/Config.in"
package/syslog-ng/Config.in new file +18 -0
new file mode 100644
index 0000000..185a8e2
@@ -0,0 +1,18 @@
+config BR2_PACKAGE_SYSLOG_NG
+	bool "syslog-ng"
+	select BR2_PACKAGE_EVENTLOG
+	select BR2_PACKAGE_LIBGLIB2
+	select BR2_PACKAGE_PCRE
+	select BR2_PACKAGE_OPENSSL
+	depends on BR2_USE_WCHAR # glib2
+	depends on BR2_TOOLCHAIN_HAS_THREADS
+	depends on BR2_USE_MMU # fork()
+	help
+	  syslog-ng is an enhanced log daemon, supporting a wide range of input
+	  and output methods: syslog, unstructured text, queueing, SQL & NoSQL
+
+	  https://syslog-ng.org/
+
+comment "syslog-ng needs a toolchain w/ wchar, threads"
+	depends on BR2_USE_MMU
+	depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS
package/syslog-ng/S01logging new file +36 -0
new file mode 100644
index 0000000..3fa7107
@@ -0,0 +1,36 @@
+#!/bin/sh
+
+start() {
+  echo -n "Starting syslog-ng daemon: "
+  start-stop-daemon -S -q -p /var/run/syslog-ng.pid --exec /usr/sbin/syslog-ng
+  [ $? = 0 ] && echo "OK" || echo "FAIL"
+}
+
+stop() {
+  echo -n "Stopping syslog-ng daemon: "
+  start-stop-daemon -K -q -p /var/run/syslog-ng.pid
+  [ $? = 0 ] && echo "OK" || echo "FAIL"
+}
+
+restart() {
+  stop
+  sleep 1
+  start
+}
+
+case "$1" in
+  start)
+    start
+    ;;
+  stop)
+    stop
+    ;;
+  restart|reload)
+    restart
+    ;;
+  *)
+    echo "Usage: $0 {start|stop|restart}"
+    exit 1
+esac
+
+exit $?
package/syslog-ng/syslog-ng.mk new file +58 -0

58 lines not on this page · raw message

Signature · 1 line
2.5.0
#5 lore raw

RFC PATCH 2/2 syslog-ng: New package

Hi,

Quoted 113 lines · Chris Packham

syslog-ng is an enhanced log daemon, supporting a wide range of input and output methods: syslog, unstructured text, queueing, SQL & NoSQL.

---
 package/Config.in              |  3 +++
 package/syslog-ng/Config.in    | 18 +++++++++++++
 package/syslog-ng/S01logging   | 36 ++++++++++++++++++++++++++
 package/syslog-ng/syslog-ng.mk | 58 ++++++++++++++++++++++++++++++++++++++++++
 4 files changed, 115 insertions(+)
 create mode 100644 package/syslog-ng/Config.in
 create mode 100644 package/syslog-ng/S01logging
 create mode 100644 package/syslog-ng/syslog-ng.mk
package/Config.in +3 -0
index 2c033ba..00fdc09 100644
@@ -1514,6 +1514,9 @@ endif
 if BR2_PACKAGE_BUSYBOX_SHOW_OTHERS
        source "package/sysklogd/Config.in"
 endif
+if BR2_PACKAGE_BUSYBOX_SHOW_OTHERS
+       source "package/syslog-ng/Config.in"
+endif
        source "package/systemd/Config.in"
 if BR2_PACKAGE_BUSYBOX_SHOW_OTHERS
        source "package/sysvinit/Config.in"
package/syslog-ng/Config.in new file +18 -0
new file mode 100644
index 0000000..185a8e2
@@ -0,0 +1,18 @@
+config BR2_PACKAGE_SYSLOG_NG
+       bool "syslog-ng"
+       select BR2_PACKAGE_EVENTLOG
+       select BR2_PACKAGE_LIBGLIB2
+       select BR2_PACKAGE_PCRE
+       select BR2_PACKAGE_OPENSSL
+       depends on BR2_USE_WCHAR # glib2
+       depends on BR2_TOOLCHAIN_HAS_THREADS
+       depends on BR2_USE_MMU # fork()
+       help
+         syslog-ng is an enhanced log daemon, supporting a wide range of input
+         and output methods: syslog, unstructured text, queueing, SQL & NoSQL
+
+         https://syslog-ng.org/
+
+comment "syslog-ng needs a toolchain w/ wchar, threads"
+       depends on BR2_USE_MMU
+       depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS
package/syslog-ng/S01logging new file +36 -0
new file mode 100644
index 0000000..3fa7107
@@ -0,0 +1,36 @@
+#!/bin/sh
+
+start() {
+  echo -n "Starting syslog-ng daemon: "
+  start-stop-daemon -S -q -p /var/run/syslog-ng.pid --exec /usr/sbin/syslog-ng
+  [ $? = 0 ] && echo "OK" || echo "FAIL"
+}
+
+stop() {
+  echo -n "Stopping syslog-ng daemon: "
+  start-stop-daemon -K -q -p /var/run/syslog-ng.pid
+  [ $? = 0 ] && echo "OK" || echo "FAIL"
+}
+
+restart() {
+  stop
+  sleep 1
+  start
+}
+
+case "$1" in
+  start)
+    start
+    ;;
+  stop)
+    stop
+    ;;
+  restart|reload)
+    restart
+    ;;
+  *)
+    echo "Usage: $0 {start|stop|restart}"
+    exit 1
+esac
+
+exit $?
package/syslog-ng/syslog-ng.mk new file +13 -0
new file mode 100644
index 0000000..475d1b6
@@ -0,0 +1,58 @@
+################################################################################
+#
+# syslog-ng
+#
+################################################################################
+
+SYSLOG_NG_VERSION = 3.7.1
+SYSLOG_NG_SOURCE = syslog-ng-$(SYSLOG_NG_VERSION).tar.gz
+SYSLOG_NG_SITE = https://github.com/balabit/syslog-ng/releases/download/syslog-ng-$(SYSLOG_NG_VERSION)
+SYSLOG_NG_LICENSE = LGPL (syslog-ng core), GPL (modules)
+SYSLOG_NG_LICENSE_FILES = COPYING
+SYSLOG_NG_DEPENDENCIES = host-bison host-flex host-pkgconf \
+       eventlog libglib2 openssl pcre \

package/syslog-ng/syslog-ng.mk line 23

Quoted 10 lines
package/syslog-ng/syslog-ng.mk new file +10 -0
+       $(if $(BR2_PACKAGE_PYTHON),python) \
+       $(if $(BR2_PACKAGE_PYTHON3),python3) \
+       $(if $(BR2_PACKAGE_LIBESMTP),libesmtp) \
+       $(if $(BR2_PACKAGE_JSON_C),json-c)
+
+ifeq ($(BR2_INIT_SYSTEMD),y)
+SYSLOG_NG_CONF_OPTS += \
+       --enable-systemd \
+       --with-systemdsystemunitdir=/usr/lib/systemd/system
+SYSLOG_NG_DEPENDENCIES += systemd

I wasn't sure about this. I copied it from another package but technically there is no reason for this to be dependent on systemd. There's nothing about _building_ this package that cares if systemd has been built. All the systemd related options do is make it install the syslog-ng.service file.

Quoted 21 lines
package/syslog-ng/syslog-ng.mk new file +21 -0
+else
+SYSLOG_NG_CONF_OPTS += --disable-systemd
+endif
+
+define SYSLOG_NG_INSTALL_INIT_SYSV
+       $(INSTALL) -m 0755 -D package/syslog-ng/S01logging \
+               $(TARGET_DIR)/etc/init.d/S01logging
+endef
+
+ifeq ($(BR2_PACKAGE_PYTHON)$(BR2_PACKAGE_PYTHON3),)
+SYSLOG_NG_CONF_OPTS += --disable-python --without-python
+endif
+
+ifeq ($(BR2_PACKAGE_LIBESMTP),)
+SYSLOG_NG_CONF_OPTS += --disable-smtp
+endif
+
+define SYSLOG_NG_REMOVE_JSONFORMAT
+        rm -f $(TARGET_DIR)/usr/share/include/scl/cim/template.conf
+endef
+

package/syslog-ng/syslog-ng.mk line 54

Quoted 10 lines
package/syslog-ng/syslog-ng.mk new file +10 -0
+ifeq ($(BR2_PACKAGE_JSON_C),)
+SYSLOG_NG_CONF_OPTS += --disable-json
+# Remove config files that use format-json
+SYSLOG_NG_POST_INSTALL_TARGET_HOOKS += SYSLOG_NG_REMOVE_JSONFORMAT
+endif
+
+define SYSLOG_NG_KERNEL_LOG
+       $(SED) '/internal();/a \\tfile("/proc/kmsg" program_override("kernel"));' \
+               $(TARGET_DIR)/etc/syslog-ng.conf
+endef

There's a bug here. Every time this is built a new configuration line is inserted.

Because syslog-ng is so configurable the default configuration shipped tries to show off some of the features. I'm actually wondering if a simplified "buildroot" syslog-ng.conf would be better. It would also eliminate the need for the SYSLOG_NG_REMOVE_JSONFORMAT hook.

Quoted 7 lines
package/syslog-ng/syslog-ng.mk new file +4 -1
+
+SYSLOG_NG_POST_INSTALL_TARGET_HOOKS += SYSLOG_NG_KERNEL_LOG
+
+$(eval $(autotools-package))
--

2.5.0