On Thu, Feb 20, 2020 at 09:39:47AM +0100, Matthias Schiffer wrote:
> 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 <[email protected]>
> ---
>  projectroot/etc/syslog-ng.conf                |  6 ++-
>  .../usr/lib/systemd/system/syslog-ng.service  | 20 +++++++++
>  rules/syslogng.in                             | 30 ++++++-------
>  rules/syslogng.make                           | 45 ++++++++++++++++---
>  4 files changed, 76 insertions(+), 25 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..6175a9e31 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,7 +32,7 @@ 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
> @@ -41,10 +41,21 @@ SYSLOGNG_AUTOCONF = \
>       $(CROSS_AUTOCONF_USR) \
>       $(GLOBAL_IPV6_OPTION) \
>       --enable-dynamic-linking \
> +     --disable-amqp \
>       --disable-debug \
> +     --disable-geoip2 \
> +     --disable-java \
> +     --disable-java-modules \
> +     --disable-kafka \
> +     --disable-mongodb \
> +     --disable-redis \
> +     --disable-riemann \
> +     --disable-smtp \
> +     --disable-snmp-dest \
> +     --disable-sql \
>       --disable-sun-streams \
> -     --$(call ptx/endis, PTXCONF_SYSLOGNG_AMQP_DESTINATION)-amqp \
> -     --$(call ptx/endis, PTXCONF_SYSLOGNG_MONGODB_DESTINATION)-mongodb \
> +     --$(call ptx/endis, PTXCONF_SYSLOGNG_HTTP)-http \
> +     --$(call ptx/endis, PTXCONF_SYSLOGNG_JSON)-json \
>       --$(call ptx/endis, PTXCONF_SYSLOGNG_PYTHON_DESTINATION)-python \
>       --$(call ptx/endis, PTXCONF_SYSLOGNG_SYSTEMD)-systemd \
>       --$(call ptx/endis, PTXCONF_SYSLOGNG_SPOOF_SOURCE)-spoof-source \
> @@ -53,8 +64,26 @@ SYSLOGNG_AUTOCONF = \
>       --with-systemd-journal=$(call ptx/ifdef, 
> PTXCONF_SYSLOGNG_SYSTEMD,system,no) \
>       --with-systemdsystemunitdir=/usr/lib/systemd/system \
>       --localstatedir=/var/run \
> +     --with-ivykis=internal \
> +     --with-jsonc=$(if $(PTXCONF_SYSLOGNG_JSON),system,no) \
>       --with-libnet=$(SYSROOT)/usr/bin \
> -     --with-python=$(PYTHON_MAJORMINOR)
> +     --with-python=$(PYTHON3_MAJORMINOR)

As I noted in my last review, please use configure_helper.py to check and
improve the options.
- GLOBAL_LARGE_FILE_OPTION should be used
- the sorting should be corrected
- there are several enable/disable and with/without options that are
  missing and may pick up dependencies automatically.

Ignore the --with-python output: configure_helper.py currently cannot
handle two options with the same name --enable-python and --with-python in
this case. The two options are merged so the output for this is wrong.

> +
> +# 
> ----------------------------------------------------------------------------
> +# 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"

Why are these removed? This deserves a comment above.

Michael

> +     @$(call touch)
> +
>  
>  # 
> ----------------------------------------------------------------------------
>  # Target-Install
> @@ -73,6 +102,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
> [email protected]
> 

-- 
Pengutronix e.K.                           |                             |
Steuerwalder Str. 21                       | http://www.pengutronix.de/  |
31137 Hildesheim, Germany                  | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

_______________________________________________
ptxdist mailing list
[email protected]

Reply via email to