summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatthias Schiffer <matthias.schiffer@ew.tq-group.com>2020-04-08 14:32:32 +0200
committerMichael Olbrich <m.olbrich@pengutronix.de>2020-04-09 15:13:03 +0200
commit7401834437535fad962fb0f68dcdddc93d212935 (patch)
tree7dc357dba5a189cc58947da33ae0d8565c6adba5
parent94debc29986dc6d17fd0329b706fc3ea3a9e9a9c (diff)
downloadptxdist-7401834437535fad962fb0f68dcdddc93d212935.tar.gz
ptxdist-7401834437535fad962fb0f68dcdddc93d212935.tar.xz
syslogng: update to 3.25.1
Update and move out of staging. The new version adds compatiblity with OpenSSL 1.1.x and switches to Python 3. The AMQP and MongoDB destinations are removed, they were never buildable without additional packages not available in plain PTXdist. Various other modules are disabled explicitly to avoid the build nondeterministically picking up undeclared dependencies. A simple replacement for the old systemd unit is added, as the new version only provides an instanced unit which cannot be linked as syslog.service (which is necessary to use syslog-ng as the default system logger by enabling ForwardToSyslog in journald.conf). Signed-off-by: Matthias Schiffer <matthias.schiffer@ew.tq-group.com> Message-Id: <20200408123232.12718-1-matthias.schiffer@ew.tq-group.com> Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
-rw-r--r--projectroot/etc/syslog-ng.conf6
-rw-r--r--projectroot/usr/lib/systemd/system/syslog-ng.service20
-rw-r--r--rules/syslogng.in30
-rw-r--r--rules/syslogng.make80
4 files changed, 102 insertions, 34 deletions
diff --git a/projectroot/etc/syslog-ng.conf b/projectroot/etc/syslog-ng.conf
index 254aecfd2..0235b9857 100644
--- a/projectroot/etc/syslog-ng.conf
+++ b/projectroot/etc/syslog-ng.conf
@@ -1,13 +1,15 @@
#
-# syslog-ng configuration
+# syslog-ng configuration
#
+@version: 3.25
+
#
# Options
#
# sync every 0 lines
-options { long_hostnames(off); sync(0); };
+options { chain_hostnames(off); flush_lines(0); };
#
# Sources
diff --git a/projectroot/usr/lib/systemd/system/syslog-ng.service b/projectroot/usr/lib/systemd/system/syslog-ng.service
new file mode 100644
index 000000000..6bf591efd
--- /dev/null
+++ b/projectroot/usr/lib/systemd/system/syslog-ng.service
@@ -0,0 +1,20 @@
+[Unit]
+Description=System Logger Daemon
+Documentation=man:syslog-ng(8)
+Conflicts=emergency.service emergency.target
+Requires=syslog.socket
+Wants=network.target network-online.target
+After=network.target network-online.target
+
+[Service]
+Type=notify
+ExecStartPre=/bin/mkdir -p /var/lib/syslog-ng
+ExecStart=/usr/sbin/syslog-ng -F --enable-core --cfgfile /etc/syslog-ng.conf --control /var/run/syslog-ng.ctl --persist-file /var/lib/syslog-ng/syslog-ng.persist --pidfile /var/run/syslog-ng.pid
+ExecReload=/bin/kill -HUP $MAINPID
+StandardOutput=journal
+StandardError=journal
+Restart=on-failure
+
+[Install]
+Alias=syslog.service
+WantedBy=multi-user.target
diff --git a/rules/syslogng.in b/rules/syslogng.in
index 3b1af844b..7707c8c32 100644
--- a/rules/syslogng.in
+++ b/rules/syslogng.in
@@ -1,6 +1,4 @@
-## SECTION=staging
-## old section:
-### SECTION=networking
+## SECTION=networking
# syslog-ng configuration
menuconfig SYSLOGNG
@@ -9,7 +7,9 @@ menuconfig SYSLOGNG
select EVENTLOG
select GLIB
select OPENSSL
- select PYTHON if SYSLOGNG_PYTHON_DESTINATION
+ select LIBCURL if SYSLOGNG_HTTP
+ select JSON_C if SYSLOGNG_JSON
+ select PYTHON3 if SYSLOGNG_PYTHON_DESTINATION
select LIBC_NSL
select LIBC_RT
select LIBNET if SYSLOGNG_SPOOF_SOURCE
@@ -19,10 +19,6 @@ menuconfig SYSLOGNG
help
The next generation syslog daemon.
- STAGING: remove in ptxdist-2020.01.0
- Fails to build with OpenSSL 1.1.x. Update to a new version is
- needed.
-
if SYSLOGNG
config SYSLOGNG_TCP_WRAPPER
@@ -46,28 +42,30 @@ config SYSLOGNG_SPOOF_SOURCE
destinations though the original message can be
received by TCP as well.
-config SYSLOGNG_AMQP_DESTINATION
+config SYSLOGNG_HTTP
bool
- prompt "support the AMQP destination"
+ prompt "Enable HTTP support"
help
- Enables the ability to publish AMQP messages.
+ Enable support for the http() destination that is based
+ on libcurl.
-config SYSLOGNG_MONGODB_DESTINATION
+config SYSLOGNG_JSON
bool
- prompt "support the MongoDB destination"
+ prompt "Enable JSON support"
help
- Enables the ability to send messages to a MongoDB database.
+ JSON support is required for json-parser, and the format-cim
+ and format-json template functions.
config SYSLOGNG_PYTHON_DESTINATION
bool
- prompt "support the python destination"
+ prompt "Support the python destination"
help
Enables the ability to use inline python in the
syslog-ng configuration file.
config SYSLOGNG_STOMP_DESTINATION
bool
- prompt "support the STOMP destination"
+ prompt "Support the STOMP destination"
help
Enables the ability to send STOMP messages to message brokers.
diff --git a/rules/syslogng.make b/rules/syslogng.make
index 114f72cef..f237dce98 100644
--- a/rules/syslogng.make
+++ b/rules/syslogng.make
@@ -16,9 +16,9 @@ PACKAGES-$(PTXCONF_SYSLOGNG) += syslogng
#
# Paths and names
#
-SYSLOGNG_VERSION := 3.7.3
-SYSLOG_LIBVERSION := 3.7
-SYSLOGNG_MD5 := 803d61a713d6d41a973942d417fec999
+SYSLOGNG_VERSION := 3.25.1
+SYSLOG_LIBVERSION := 3.25
+SYSLOGNG_MD5 := 07c2ebb712ddacd201b24b265b857b0d
SYSLOGNG := syslog-ng-$(SYSLOGNG_VERSION)
SYSLOGNG_SUFFIX := tar.gz
SYSLOGNG_URL := https://github.com/balabit/syslog-ng/releases/download/syslog-ng-$(SYSLOGNG_VERSION)/$(SYSLOGNG).$(SYSLOGNG_SUFFIX)
@@ -32,29 +32,75 @@ SYSLOGNG_LICENSE := GPL-2.0-or-later AND LGPL-2.1-only
SYSLOGNG_ENV = \
$(CROSS_ENV) \
- ac_cv_path_PYTHON=$(CROSS_PYTHON)
+ ac_cv_path_PYTHON=$(CROSS_PYTHON3)
#
# autoconf
#
SYSLOGNG_AUTOCONF = \
$(CROSS_AUTOCONF_USR) \
- $(GLOBAL_IPV6_OPTION) \
- --enable-dynamic-linking \
+ --localstatedir=/var/run \
+ --enable-forced-server-mode \
--disable-debug \
- --disable-sun-streams \
- --$(call ptx/endis, PTXCONF_SYSLOGNG_AMQP_DESTINATION)-amqp \
- --$(call ptx/endis, PTXCONF_SYSLOGNG_MONGODB_DESTINATION)-mongodb \
- --$(call ptx/endis, PTXCONF_SYSLOGNG_PYTHON_DESTINATION)-python \
- --$(call ptx/endis, PTXCONF_SYSLOGNG_SYSTEMD)-systemd \
+ --enable-force-gnu99 \
+ --disable-extra-warnings \
+ --disable-env-wrapper \
+ --disable-gprof \
+ --disable-memtrace \
+ --enable-dynamic-linking \
+ --disable-mixed-linking \
+ $(GLOBAL_IPV6_OPTION) \
+ --$(call ptx/endis, PTXCONF_SYSLOGNG_TCP_WRAPPER)-tcp-wrapper \
--$(call ptx/endis, PTXCONF_SYSLOGNG_SPOOF_SOURCE)-spoof-source \
+ --disable-sun-streams \
+ --disable-openbsd-system-source \
+ --disable-sql \
+ --disable-pacct \
+ --disable-linux-caps \
+ --disable-gcov \
+ --disable-mongodb \
+ --disable-legacy-mongodb-options \
+ --$(call ptx/endis, PTXCONF_SYSLOGNG_JSON)-json \
+ --disable-amqp \
--$(call ptx/endis, PTXCONF_SYSLOGNG_STOMP_DESTINATION)-stomp \
- --$(call ptx/endis, PTXCONF_SYSLOGNG_TCP_WRAPPER)-tcp-wrapper \
- --with-systemd-journal=$(call ptx/ifdef, PTXCONF_SYSLOGNG_SYSTEMD,system,no) \
- --with-systemdsystemunitdir=/usr/lib/systemd/system \
- --localstatedir=/var/run \
+ --disable-smtp \
+ --$(call ptx/endis, PTXCONF_SYSLOGNG_HTTP)-http \
+ --disable-redis \
+ --$(call ptx/endis, PTXCONF_SYSLOGNG_SYSTEMD)-systemd \
+ --disable-geoip2 \
+ --disable-riemann \
+ --with-python=$(PYTHON3_MAJORMINOR) \
+ --$(call ptx/endis, PTXCONF_SYSLOGNG_PYTHON_DESTINATION)-python \
+ --disable-kafka \
+ --disable-manpages \
+ --disable-java \
+ --disable-java-modules \
+ --enable-native \
+ --disable-snmp-dest \
+ --disable-all-modules \
+ $(GLOBAL_LARGE_FILE_OPTION) \
+ --disable-valgrind \
--with-libnet=$(SYSROOT)/usr/bin \
- --with-python=$(PYTHON_MAJORMINOR)
+ --without-net-snmp \
+ --with-systemdsystemunitdir=/usr/lib/systemd/system \
+ --with-jsonc=$(if $(PTXCONF_SYSLOGNG_JSON),system,no) \
+ --with-ivykis=internal \
+ --without-libesmtp \
+ --without-libhiredis \
+ --without-compile-date \
+ --with-systemd-journal=$(call ptx/ifdef, PTXCONF_SYSLOGNG_SYSTEMD,system,no)
+
+# ----------------------------------------------------------------------------
+# Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/syslogng.install:
+ @$(call targetinfo)
+ @$(call world/install, SYSLOGNG)
+# # test plugins, not needed on the target
+ @rm -r "$(SYSLOGNG_PKGDIR)/usr/lib/syslog-ng/loggen"
+ @$(call touch)
+
# ----------------------------------------------------------------------------
# Target-Install
@@ -73,6 +119,8 @@ $(STATEDIR)/syslogng.targetinstall:
@$(call install_copy, syslogng, 0, 0, 0755, -, \
/usr/sbin/syslog-ng)
@$(call install_lib, syslogng, 0, 0, 0644, libsyslog-ng-$(SYSLOG_LIBVERSION))
+ @$(call install_lib, syslogng, 0, 0, 0644, libevtlog-$(SYSLOG_LIBVERSION))
+ @$(call install_lib, syslogng, 0, 0, 0644, libsecret-storage)
@$(call install_glob, syslogng, 0, 0, -, /usr/lib/syslog-ng, *.so)
# # config