syslog-ng: New package
authorChris Packham <judge.packham@gmail.com>
Wed, 14 Oct 2015 08:34:18 +0000 (21:34 +1300)
committerThomas Petazzoni <thomas.petazzoni@free-electrons.com>
Sun, 18 Oct 2015 15:31:06 +0000 (17:31 +0200)
syslog-ng is an enhanced log daemon, supporting a wide range of input
and output methods: syslog, unstructured text, queueing, SQL & NoSQL.

[Thomas:
 - Rewrap Config.in.help text
 - Pass --pidfile option when starting syslog-ng so that its PID file
   is created in /var/run/syslog-ng.pid, which allows
   start-stop-daemon to actually stop syslog-ng. Without this,
   S01logging was not able to stop syslog-ng.
 - Pass the executable path at stop time in S01logging, so that
   start-stop-daemon can check we're not incorrectly stopping
   something completely different.
 - Add busybox as a dependency of syslog-ng if busybox is enabled,
   since we want to override Busybox's S01logging init script.
 - Simplify the python condition, since python and python3 are
   mutually exclusive.
 - Rewrap the comment above SYSLOG_NG_FIXUP_CONFIG.]

Signed-off-by: Chris Packham <judge.packham@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
package/Config.in
package/syslog-ng/Config.in [new file with mode: 0644]
package/syslog-ng/S01logging [new file with mode: 0644]
package/syslog-ng/syslog-ng.conf [new file with mode: 0644]
package/syslog-ng/syslog-ng.hash [new file with mode: 0644]
package/syslog-ng/syslog-ng.mk [new file with mode: 0644]

index 774674299ade7c24cb6c38f3cb19f7c6585203bd..739236395f2cab5806048a5ac6c262e17420c444 100644 (file)
@@ -1519,6 +1519,7 @@ endif
        source "package/swupdate/Config.in"
 if BR2_PACKAGE_BUSYBOX_SHOW_OTHERS
        source "package/sysklogd/Config.in"
+       source "package/syslog-ng/Config.in"
 endif
        source "package/systemd/Config.in"
 if BR2_PACKAGE_BUSYBOX_SHOW_OTHERS
diff --git a/package/syslog-ng/Config.in b/package/syslog-ng/Config.in
new file mode 100644 (file)
index 0000000..fdc8d9f
--- /dev/null
@@ -0,0 +1,19 @@
+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
diff --git a/package/syslog-ng/S01logging b/package/syslog-ng/S01logging
new file mode 100644 (file)
index 0000000..d7c899a
--- /dev/null
@@ -0,0 +1,38 @@
+#!/bin/sh
+
+start() {
+       printf "Starting syslog-ng daemon: "
+       start-stop-daemon -S -q -p /var/run/syslog-ng.pid \
+               -x /usr/sbin/syslog-ng -- --pidfile /var/run/syslog-ng.pid
+       [ $? = 0 ] && echo "OK" || echo "FAIL"
+}
+
+stop() {
+       printf "Stopping syslog-ng daemon: "
+       start-stop-daemon -K -q -p /var/run/syslog-ng.pid \
+               -x /usr/sbin/syslog-ng
+       [ $? = 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 $?
diff --git a/package/syslog-ng/syslog-ng.conf b/package/syslog-ng/syslog-ng.conf
new file mode 100644 (file)
index 0000000..0b4a860
--- /dev/null
@@ -0,0 +1,16 @@
+@version: 3.7
+
+source s_sys {
+       file("/proc/kmsg" program_override("kernel"));
+       unix-stream ("/dev/log");
+       internal();
+};
+
+destination d_all {
+       file("/var/log/messages");
+};
+
+log {
+       source(s_sys);
+       destination(d_all);
+};
diff --git a/package/syslog-ng/syslog-ng.hash b/package/syslog-ng/syslog-ng.hash
new file mode 100644 (file)
index 0000000..56dc75f
--- /dev/null
@@ -0,0 +1,2 @@
+# Locally computed
+sha256 4c19841b9079b377cd814b1e6ebbf273af41d04d51c648f4c31f19bfadc20220  syslog-ng-3.7.1.tar.gz
diff --git a/package/syslog-ng/syslog-ng.mk b/package/syslog-ng/syslog-ng.mk
new file mode 100644 (file)
index 0000000..7371060
--- /dev/null
@@ -0,0 +1,78 @@
+################################################################################
+#
+# 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 = LGPLv2.1+ (syslog-ng core), GPLv2+ (modules)
+SYSLOG_NG_LICENSE_FILES = COPYING
+SYSLOG_NG_DEPENDENCIES = host-bison host-flex host-pkgconf \
+       eventlog libglib2 openssl pcre
+SYSLOG_NG_CONF_OPTS = --disable-manpages
+
+# We override busybox's S01logging init script
+ifeq ($(BR2_PACKAGE_BUSYBOX),y)
+SYSLOG_NG_DEPENDENCIES += busybox
+endif
+
+ifeq ($(BR2_PACKAGE_PYTHON),y)
+SYSLOG_NG_DEPENDENCIES += python
+SYSLOG_NG_CONF_OPTS += \
+       --enable-python \
+       --with-python=$(PYTHON_VERSION_MAJOR)
+else ifeq ($(BR2_PACKAGE_PYTHON3),y)
+SYSLOG_NG_DEPENDENCIES += python3
+SYSLOG_NG_CONF_OPTS += \
+       --enable-python \
+       --with-python=$(PYTHON3_VERSION_MAJOR)
+else
+SYSLOG_NG_CONF_OPTS += \
+       --disable-python \
+       --without-python
+endif
+
+ifeq ($(BR2_PACKAGE_LIBESMTP),y)
+SYSLOG_NG_DEPENDENCIES += libesmtp
+SYSLOG_NG_CONF_OPTS += --enable-smtp
+else
+SYSLOG_NG_CONF_OPTS += --disable-smtp
+endif
+
+ifeq ($(BR2_PACKAGE_JSON_C),y)
+SYSLOG_NG_DEPENDENCIES += json-c
+SYSLOG_NG_CONF_OPTS += --enable-json
+else
+SYSLOG_NG_CONF_OPTS += --disable-json
+endif
+
+ifeq ($(BR2_INIT_SYSTEMD),y)
+SYSLOG_NG_DEPENDENCIES += systemd
+SYSLOG_NG_CONF_OPTS += \
+       --enable-systemd \
+       --with-systemdsystemunitdir=/usr/lib/systemd/system
+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
+
+# By default syslog-ng installs a number of sample configuration
+# files. Some of these rely on optional features being
+# enabled. Because of this buildroot uninstalls the shipped config
+# files and provides a simplified configuration.
+define SYSLOG_NG_FIXUP_CONFIG
+       $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) \
+               DESTDIR=$(TARGET_DIR) scl-uninstall-local
+       $(INSTALL) -D -m 0644 package/syslog-ng/syslog-ng.conf \
+               $(TARGET_DIR)/etc/syslog-ng.conf
+endef
+
+SYSLOG_NG_POST_INSTALL_TARGET_HOOKS = SYSLOG_NG_FIXUP_CONFIG
+
+$(eval $(autotools-package))