From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: Received: from mx1.tq-group.com ([62.157.118.193]) by metis.ext.pengutronix.de with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1jM9st-0002KK-K6 for ptxdist@pengutronix.de; Wed, 08 Apr 2020 14:32:48 +0200 From: Matthias Schiffer Date: Wed, 8 Apr 2020 14:32:32 +0200 Message-Id: <20200408123232.12718-1-matthias.schiffer@ew.tq-group.com> Subject: [ptxdist] [PATCH v3] syslogng: update to 3.25.1 List-Id: PTXdist Development Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: ptxdist@pengutronix.de MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: ptxdist-bounces@pengutronix.de Sender: "ptxdist" To: ptxdist@pengutronix.de Cc: matthias.schiffer@ew.tq-group.com 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 --- v3: reduce configure_helper.py diff to path configurations and unused utilities that don't have a sane "disabled" setting: - --disable-python + --with-pidfile-dir=path + --with-module-dir=path + --with-loggen-plugin-dir=path + --with-module-path=path + --with-timezone-dir=path + --with-ld-library-path=path + --with-libcurl=DIR - --localstatedir=/var/run + --with-nosetests=ABSOLUTE_PATH + --with-pylint=ABSOLUTE_PATH + --with-docbook=FILE --disable-python and --localstatedir remain because of configure_helper.py limitations. projectroot/etc/syslog-ng.conf | 6 +- .../usr/lib/systemd/system/syslog-ng.service | 20 +++++ rules/syslogng.in | 30 ++++--- rules/syslogng.make | 84 +++++++++++++++---- 4 files changed, 106 insertions(+), 34 deletions(-) create mode 100644 projectroot/usr/lib/systemd/system/syslog-ng.service 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..c2d4965b6 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,79 @@ 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 \ + --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) \ + --localstatedir=/var/run + +# ---------------------------------------------------------------------------- +# Install +# ---------------------------------------------------------------------------- + +$(STATEDIR)/syslogng.install: + @$(call targetinfo) + + @$(call world/install, SYSLOGNG) + + @rm "$(SYSLOGNG_PKGDIR)/usr/bin/loggen" + @rm -r "$(SYSLOGNG_PKGDIR)/usr/lib/libloggen_"* + @rm -r "$(SYSLOGNG_PKGDIR)/usr/lib/syslog-ng/loggen" + + @$(call touch) + # ---------------------------------------------------------------------------- # Target-Install @@ -73,6 +123,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 -- 2.17.1 _______________________________________________ ptxdist mailing list ptxdist@pengutronix.de