# TODO:
-# - rdkafka >= 1.0.0
-# - switch to LTS version??? where???
+# - modules/secure-logging tests fail in ix86, seems like a parsing problem
# - relies on libs in /usr which is wrong
# (well, for modules bringing additional functionality it's acceptable IMO --q)
-# - package python module
#
# Conditional build:
%bcond_with dynamic # link dynamically with glib, eventlog, pcre (modules are always linked dynamically)
%bcond_without redis # support for Redis destination
%bcond_without smtp # support for logging into SMTP
%bcond_without geoip2 # support for GeoIP2
+%bcond_without kafka # support for Apache Kafka protocol
%bcond_without riemann # support for Riemann monitoring system
%bcond_without systemd # systemd (daemon and journal) support
%bcond_without amqp # AMQP support
-%bcond_with python # python module
+%bcond_without python # python module
%bcond_with java # java modules and support
%bcond_without system_libivykis # use system libivykis
%bcond_without system_rabbitmq # use system librabbitmq
%define libivykis_version 0.42.2
%define glib2_ver 1:2.26.1
-%define mver 3.24
+%define mver 3.27
%define docmver 3.12
Summary: Syslog-ng - new generation of the system logger
Summary(pl.UTF-8): Syslog-ng - systemowy demon logujący nowej generacji
Summary(pt_BR.UTF-8): Daemon de log nova geração
Name: syslog-ng
-Version: 3.24.1
+Version: 3.27.1
Release: 1
License: GPL v2+ with OpenSSL exception
Group: Daemons
Source0: https://github.com/balabit/syslog-ng/archive/%{name}-%{version}.tar.gz
-# Source0-md5: 6fa42cf4ad516f1abc6f73ae8912ceb8
+# Source0-md5: 8d836a470d9c43c5b51181bad238540b
Source1: %{name}.init
Source2: %{name}.conf
Source3: %{name}.logrotate
Patch4: man-paths.patch
Patch5: %{name}-link.patch
Patch6: no_shared_ivykis.patch
+Patch7: 32bit.patch
URL: https://syslog-ng.org/
BuildRequires: autoconf >= 2.59
BuildRequires: automake
BuildRequires: bison >= 2.4
%if %{with tests}
-BuildRequires: criterion-devel >= 2.2.1
+BuildRequires: criterion-devel >= 2.3.3-5
%endif
%{?with_http:BuildRequires: curl-devel}
-BuildRequires: docbook-style-xsl
+BuildRequires: docbook-style-xsl-nons
BuildRequires: eventlog-devel >= 0.2.12
BuildRequires: flex
BuildRequires: glib2-devel >= %{glib2_ver}
%{?with_mongodb:BuildRequires: mongo-c-driver-devel >= 1.0.0}
%{?with_geoip2:BuildRequires: libmaxminddb-devel}
BuildRequires: libnet-devel >= 1:1.1.2.1-3
+%{?with_kafka:BuildRequires: librdkafka-devel >= 1.0.0}
BuildRequires: libtool >= 2:2.0
BuildRequires: libwrap-devel
BuildRequires: libxslt-progs
%if %{with tests}
BuildRequires: GeoIP-db-Country
BuildRequires: pylint
-BuildRequires: python
-BuildRequires: python-pep8
-BuildRequires: python-ply
+BuildRequires: python3
+%{?with_python:BuildRequires: python3-devel >= 1:3.2}
+BuildRequires: python3-pep8
+BuildRequires: python3-ply
BuildRequires: tzdata
%endif
%if %{without dynamic}
%description module-json-plugin -l pl.UTF-8
Moduł sysloga-ng do obsługi szablonów z formatowaniem JSON.
+%package module-kafka
+Summary: Apache Kafka destination support module for syslog-ng
+Summary(pl.UTF-8): Moduł sysloga-ng do obsługi zapisu logów poprzez protokół Apache Kafka
+Group: Libraries
+Requires: %{name} = %{version}-%{release}
+Requires: librdkafka >= 1.0.0
+
+%description module-kafka
+Apache Kafka destination support module for syslog-ng.
+
+%description module-kafka -l pl.UTF-8
+Moduł sysloga-ng do obsługi zapisu logów poprzez protokół Apache
+Kafka.
+
+%package module-python
+Summary: Python support module for syslog-ng
+Summary(pl.UTF-8): Moduł obsługi Pythona dla sysloga-ng
+Group: Librares
+Requires: %{name} = %{version}-%{release}
+
+%description module-python
+Python support module for syslog-ng.
+
+%description module-python -l pl.UTF-8
+Moduł obsługi Pythona dla sysloga-ng.
+
%package module-redis
Summary: Redis destination support module for syslog-ng
Summary(pl.UTF-8): Moduł sysloga-ng do obsługi zapisu logów w bazie Redis
%patch4 -p1
%patch5 -p1
%patch6 -p1
+%patch7 -p1
cp -p %{SOURCE4} doc
cp -p %{SOURCE5} contrib/syslog-ng.conf.simple
%{__sed} -i -e 's|/usr/bin/awk|/bin/awk|' scl/syslogconf/convert-syslogconf.awk
-%{__sed} -i -e '1s,/usr/bin/env python$,%{__python},' lib/merge-grammar.py
+%{__sed} -i -e '1s,/usr/bin/env python$,%{__python3},' lib/merge-grammar.py
%build
for i in . ; do
cd -
done
%configure \
+ PYTHON="%{__python3}" \
--sysconfdir=%{_sysconfdir}/syslog-ng \
--disable-silent-rules \
- --with-default-modules=affile,afprog,afsocket,afuser,basicfuncs,csvparser,dbparser,syslogformat \
- --with-docbook=%{xsl_stylesheets_dir}/manpages/docbook.xsl \
- --enable-java%{!?with_java:=no} \
- --enable-java-modules%{!?with_java:=no} \
- --enable-python%{!?with_python:=no} \
-%if %{with mongodb}
- --enable-mongodb \
- --with-mongoc=system \
-%else
- --disable-mongodb \
-%endif
-%if %{with system_libivykis}
- --with-ivykis=system \
+ %{__enable_disable amqp} \
+%if %{with dynamic}
+ --enable-dynamic-linking \
%else
- --with-ivykis=internal \
+ --enable-mixed-linking \
%endif
- %{?with_system_rabbitmq:--with-librabbitmq-client=system} \
- --with-module-dir=%{moduledir} \
- --with-pidfile-dir=/var/run \
- --with-systemdsystemunitdir=%{systemdunitdir} \
- --with-timezone-dir=%{_datadir}/zoneinfo \
- %{__enable_disable amqp} \
%{__enable_disable geoip2} \
--enable-http%{!?with_http:=no} \
--enable-ipv6 \
+ --enable-java%{!?with_java:=no} \
+ --enable-java-modules%{!?with_java:=no} \
--enable-json%{!?with_json:=no} \
--enable-linux-caps \
+ --enable-kafka%{!?with_kafka:=no} \
--enable-manpages \
+%if %{with mongodb}
+ --enable-mongodb \
+ --with-mongoc=system \
+%else
+ --disable-mongodb \
+%endif
--enable-pacct \
--enable-pcre \
+ --enable-python%{!?with_python:=no} \
--enable-redis%{!?with_redis:=no} \
--enable-riemann%{!?with_riemann:=no} \
--enable-smtp%{!?with_smtp:=no} \
%if %{with sql}
--enable-sql \
%endif
-%if %{with dynamic}
- --enable-dynamic-linking
+ --with-default-modules=affile,afprog,afsocket,afuser,basicfuncs,csvparser,dbparser,syslogformat \
+ --with-docbook=%{xsl_stylesheets_dir}/manpages/docbook.xsl \
+%if %{with system_libivykis}
+ --with-ivykis=system \
%else
- --enable-mixed-linking
+ --with-ivykis=internal \
%endif
+ %{?with_system_rabbitmq:--with-librabbitmq-client=system} \
+ --with-module-dir=%{moduledir} \
+ --with-pidfile-dir=/var/run \
+ --with-systemdsystemunitdir=%{systemdunitdir} \
+ --with-timezone-dir=%{_datadir}/zoneinfo
%{__make}
%endif
%attr(755,root,root) %{moduledir}/libaffile.so
%attr(755,root,root) %{moduledir}/libafprog.so
+%attr(755,root,root) %{moduledir}/libafsnmp.so
%attr(755,root,root) %{moduledir}/libafsocket.so
%attr(755,root,root) %{moduledir}/libafstomp.so
%attr(755,root,root) %{moduledir}/libafuser.so
%attr(755,root,root) %{moduledir}/libappmodel.so
+%attr(755,root,root) %{moduledir}/libazure-auth-header.so
%attr(755,root,root) %{moduledir}/libbasicfuncs.so
%attr(755,root,root) %{moduledir}/libcef.so
%attr(755,root,root) %{moduledir}/libconfgen.so
%attr(755,root,root) %{moduledir}/libmap-value-pairs.so
%attr(755,root,root) %{moduledir}/libpacctformat.so
%attr(755,root,root) %{moduledir}/libpseudofile.so
-%attr(755,root,root) %{moduledir}/libsnmpdest.so
-%attr(755,root,root) %{moduledir}/libsnmptrapd-parser.so
+%attr(755,root,root) %{moduledir}/libsecure-logging.so
%attr(755,root,root) %{moduledir}/libstardate.so
%attr(755,root,root) %{moduledir}/libtags-parser.so
%attr(755,root,root) %{moduledir}/libtfgetent.so
%attr(755,root,root) %{_bindir}/loggen
%attr(755,root,root) %{_bindir}/pdbtool
%attr(755,root,root) %{_bindir}/persist-tool
+%attr(755,root,root) %{_bindir}/slogimport
+%attr(755,root,root) %{_bindir}/slogkey
+%attr(755,root,root) %{_bindir}/slogverify
%attr(755,root,root) %{_bindir}/update-patterndb
%dir %{_datadir}/syslog-ng/include
%{_datadir}/syslog-ng/include/scl/snmptrap
%{_datadir}/syslog-ng/include/scl/solaris
%{_datadir}/syslog-ng/include/scl/sudo
+%{_datadir}/syslog-ng/include/scl/sumologic
%{_datadir}/syslog-ng/include/scl/websense
%{_datadir}/syslog-ng/include/scl/windowseventlog
%dir %{_datadir}/syslog-ng/include/scl/syslogconf
%{_mandir}/man1/dqtool.1*
%{_mandir}/man1/loggen.1*
%{_mandir}/man1/pdbtool.1*
+%{_mandir}/man1/persist-tool.1*
+%{_mandir}/man1/slogimport.1*
+%{_mandir}/man1/slogkey.1*
+%{_mandir}/man1/slogverify.1*
%{_mandir}/man1/syslog-ng-ctl.1*
%{_mandir}/man5/syslog-ng.conf.5*
%{_mandir}/man8/syslog-ng.8*
%{_datadir}/syslog-ng/include/scl/slack
%endif
+%if %{with kafka}
+%files module-kafka
+%defattr(644,root,root,755)
+%doc modules/kafka/README.md
+%attr(755,root,root) %{moduledir}/libkafka.so
+%endif
+
+%if %{with python}
+%files module-python
+%defattr(644,root,root,755)
+%attr(755,root,root) %{moduledir}/libmod-python.so
+%{moduledir}/python
+%endif
+
%if %{with redis}
%files module-redis
%defattr(644,root,root,755)
%{_includedir}/syslog-ng/logproto
%{_includedir}/syslog-ng/logthrdest
%{_includedir}/syslog-ng/logthrsource
+%{_includedir}/syslog-ng/modules
%{_includedir}/syslog-ng/parser
%{_includedir}/syslog-ng/rewrite
%{_includedir}/syslog-ng/scanner
+%{_includedir}/syslog-ng/signal-slot-connector
%{_includedir}/syslog-ng/stats
%{_includedir}/syslog-ng/str-repr
%{_includedir}/syslog-ng/template
%defattr(644,root,root,755)
%if "%{_libdir}/syslog-ng" != "{moduledir}"
%dir %{_libdir}/syslog-ng
+%endif
%dir %{_libdir}/syslog-ng/libtest
%{_libdir}/syslog-ng/libtest/libsyslog-ng-test.a
%{_includedir}/syslog-ng/libtest