From d8cfafacf914f908af25995c0e7a1199cffba1e7 Mon Sep 17 00:00:00 2001 From: alakatos Date: Mar 15 2021 08:09:27 +0000 Subject: rebase to upstream version 8.2102.0 resolves: rhbz#1905363 add additional plugin imkafka --- diff --git a/.gitignore b/.gitignore index 4d93b7d..c93e2fc 100644 --- a/.gitignore +++ b/.gitignore @@ -77,3 +77,6 @@ rsyslog-4.6.3.tar.gz /rsyslog-doc-8.2008.0.tar.gz /rsyslog-8.2010.0.tar.gz /rsyslog-doc-8.2010.0.tar.gz +/qpid-proton-0.31.0.tar.gz +/rsyslog-8.2102.0.tar.gz +/rsyslog-doc-8.2102.0.tar.gz diff --git a/rsyslog.spec b/rsyslog.spec index b4fa346..17efd61 100644 --- a/rsyslog.spec +++ b/rsyslog.spec @@ -1,15 +1,14 @@ %define rsyslog_statedir %{_sharedstatedir}/rsyslog %define rsyslog_pkidir %{_sysconfdir}/pki/rsyslog %define rsyslog_docdir %{_docdir}/rsyslog -#due to multiple failures of extensive testbench on various archs -#and module requirements of certain tests need to have it disabled, -#tests execution possible locally on properly set up workstation -%global want_testbench 0 +# The following packages are not enabled on rhel: +# hiredis, libdbi, mongodb, rabbitmq +# The omamqp1 plugin is built differently as qpid-proton is not available on rhel Summary: Enhanced system logging and kernel message trapping daemon Name: rsyslog -Version: 8.2010.0 -Release: 4%{?dist} +Version: 8.2102.0 +Release: 1%{?dist} License: (GPLv3+ and ASL 2.0) URL: http://www.rsyslog.com/ Source0: http://www.rsyslog.com/files/download/rsyslog/%{name}-%{version}.tar.gz @@ -18,6 +17,13 @@ Source2: rsyslog.conf Source3: rsyslog.sysconfig Source4: rsyslog.log Source5: rsyslog.service +# Add qpid-proton as another source, enable omamqp1 module in a +# separatae sub-package with it statically linked(see rhbz#1713427) +%if 0%{?rhel} != 0 +Source6: qpid-proton-0.31.0.tar.gz +%else +BuildRequires: qpid-proton-c-devel +%endif BuildRequires: make BuildRequires: gcc @@ -36,7 +42,6 @@ BuildRequires: python3-docutils # make sure systemd is in a version that isn't affected by rhbz#974132 BuildRequires: systemd-devel >= 204-8 BuildRequires: zlib-devel -BuildRequires: qpid-proton-c-devel Requires: logrotate >= 3.5.2 Requires: bash >= 2.0 @@ -58,11 +63,6 @@ Summary: ElasticSearch output module for rsyslog Requires: %name = %version-%release BuildRequires: libcurl-devel -%package hiredis -Summary: Redis support for rsyslog -Requires: %name = %version-%release -BuildRequires: hiredis-devel - %package mmjsonparse Summary: JSON enhanced logging support Requires: %name = %version-%release @@ -80,31 +80,16 @@ Requires: %name = %version-%release Summary: Message modification module for snmptrapd generated messages Requires: %name = %version-%release -%package libdbi -Summary: Libdbi database support for rsyslog -Requires: %name = %version-%release -BuildRequires: libdbi-devel - %package mysql Summary: MySQL support for rsyslog Requires: %name = %version-%release BuildRequires: mariadb-connector-c-devel -%package mongodb -Summary: MongoDB support for rsyslog -Requires: %name = %version-%release -BuildRequires: mongo-c-driver-devel snappy-devel cyrus-sasl-devel - %package pgsql Summary: PostgresSQL support for rsyslog Requires: %name = %version-%release BuildRequires: libpq-devel -%package rabbitmq -Summary: RabbitMQ support for rsyslog -Requires: %name = %version-%release -BuildRequires: librabbitmq-devel >= 0.2 - %package gssapi Summary: GSSAPI authentication and encryption support for rsyslog Requires: %name = %version-%release @@ -133,7 +118,19 @@ BuildRequires: libnet-devel %package omamqp1 Summary: Provides the omamqp1 module Requires: %name = %version-%release +%if 0%{?rhel} != 0 +Requires: cyrus-sasl-lib +Requires: openssl-libs +BuildRequires: cmake +BuildRequires: make +BuildRequires: gcc +BuildRequires: gcc-c++ +BuildRequires: cyrus-sasl-devel +BuildRequires: openssl-devel +BuildRequires: python3 +%else BuildRequires: qpid-proton-c-devel +%endif %package kafka Summary: Provides the omkafka module @@ -145,6 +142,29 @@ Summary: Provides the mmkubernetes module Requires: %name = %version-%release BuildRequires: libcurl-devel +%if 0%{?rhel} == 0 +%package hiredis +Summary: Redis support for rsyslog +Requires: %name = %version-%release +BuildRequires: hiredis-devel + +%package libdbi +Summary: Libdbi database support for rsyslog +Requires: %name = %version-%release +BuildRequires: libdbi-devel + +%package mongodb +Summary: MongoDB support for rsyslog +Requires: %name = %version-%release +BuildRequires: mongo-c-driver-devel snappy-devel cyrus-sasl-devel + +%package rabbitmq +Summary: RabbitMQ support for rsyslog +Requires: %name = %version-%release +BuildRequires: librabbitmq-devel >= 0.2 +%endif + + %description Rsyslog is an enhanced, multi-threaded syslog daemon. It supports MySQL, syslog/TCP, RFC 3195, permitted sender lists, filtering on any message part, @@ -164,9 +184,6 @@ This subpackage contains documentation for rsyslog. This module provides the capability for rsyslog to feed logs directly into Elasticsearch. -%description hiredis -This module provides output to Redis. - %description mmjsonparse This module provides the capability to recognize and parse JSON enhanced syslog messages. @@ -182,26 +199,14 @@ in various settings. This message modification module takes messages generated from snmptrapd and modifies them so that they look like they originated from the read originator. -%description libdbi -This module supports a large number of database systems via -libdbi. Libdbi abstracts the database layer and provides drivers for -many systems. Drivers are available via the libdbi-drivers project. - %description mysql The rsyslog-mysql package contains a dynamic shared object that will add MySQL database support to rsyslog. -%description mongodb -The rsyslog-mongodb package contains a dynamic shared object that will add -MongoDB database support to rsyslog. - %description pgsql The rsyslog-pgsql package contains a dynamic shared object that will add PostgreSQL database support to rsyslog. -%description rabbitmq -This module allows rsyslog to send messages to a RabbitMQ server. - %description gssapi The rsyslog-gssapi package contains the rsyslog plugins which support GSSAPI authentication and secure connections. GSSAPI is commonly used for Kerberos @@ -237,6 +242,23 @@ The rsyslog-kafka package provides module for Apache Kafka output. The rsyslog-mmkubernetes package provides module for adding kubernetes container metadata. +%if 0%{?rhel} == 0 +%description hiredis +This module provides output to Redis. + +%description libdbi +This module supports a large number of database systems via +libdbi. Libdbi abstracts the database layer and provides drivers for +many systems. Drivers are available via the libdbi-drivers project. + +%description mongodb +The rsyslog-mongodb package contains a dynamic shared object that will add +MongoDB database support to rsyslog. + +%description rabbitmq +This module allows rsyslog to send messages to a RabbitMQ server. +%endif + %prep # set up rsyslog-doc sources %setup -q -a 1 -T -c @@ -244,10 +266,39 @@ rm -r LICENSE README.md source build/objects.inv mv build doc # set up rsyslog sources %setup -q -D - -autoreconf -iv +# Unpack qpid-proton for rhel +%if 0%{?rhel} != 0 +%setup -q -D -T -b 6 +%endif %build +%if 0%{?rhel} != 0 +%ifarch sparc64 +#sparc64 need big PIC +export CFLAGS="$RPM_OPT_FLAGS -fPIC" +%else +export CFLAGS="$RPM_OPT_FLAGS -fpic" +%endif +# build the proton first +( + cd %{_builddir}/qpid-proton-0.31.0 + mkdir bld + cd bld + + # Need ENABLE_FUZZ_TESTING=NO to avoid a link failure + # Find python include dir and python library from + # https://stackoverflow.com/questions/24174394/cmake-is-not-able-to-find-python-libraries + cmake .. \ + -DBUILD_BINDINGS="" \ + -DBUILD_STATIC_LIBS=YES \ + -DENABLE_FUZZ_TESTING=NO \ + -DPYTHON_INCLUDE_DIR=$(python3 -c "from distutils.sysconfig import get_python_inc; print(get_python_inc())") \ + -DPYTHON_LIBRARY=$(python3 -c "import distutils.sysconfig as sysconfig; print(sysconfig.get_config_var('LIBDIR'))") \ + -DCMAKE_AR="/usr/bin/gcc-ar" -DCMAKE_NM="/usr/bin/gcc-nm" -DCMAKE_RANLIB="/usr/bin/gcc-ranlib" + make -j8 +) +%endif + %ifarch sparc64 #sparc64 need big PIE export CFLAGS="$RPM_OPT_FLAGS -fPIE" @@ -257,27 +308,37 @@ export CFLAGS="$RPM_OPT_FLAGS -fpie" export LDFLAGS="-pie -Wl,-z,relro -Wl,-z,now" # the hiredis-devel package doesn't provide a pkg-config file +%if 0%{?rhel} == 0 export HIREDIS_CFLAGS=-I/usr/include/hiredis export HIREDIS_LIBS="-L%{_libdir} -lhiredis" +%endif +sed -i 's/%{version}/%{version}-%{release}/g' configure.ac +autoreconf -if %configure \ --prefix=/usr \ --disable-static \ -%if %{want_testbench} - --enable-testbench \ + --disable-testbench \ +%if 0%{?rhel} == 0 + --enable-clickhouse \ + --enable-imdocker \ + --enable-improg \ + --enable-libdbi \ + --enable-omamqp1 \ + --enable-omhiredis \ + --enable-ommongodb \ + --enable-omrabbitmq \ +%else + --enable-omamqp1 PROTON_LIBS="%{_builddir}/qpid-proton-0.31.0/bld/c/libqpid-proton-core-static.a %{_builddir}/qpid-proton-0.31.0/bld/c/libqpid-proton-proactor-static.a %{_builddir}/qpid-proton-0.31.0/bld/c/libqpid-proton-static.a -lssl -lsasl2 -lcrypto" PROTON_CFLAGS="-I%{_builddir}/qpid-proton-0.31.0/bld/c/include" \ %endif --enable-elasticsearch \ - --enable-clickhouse \ --enable-generate-man-pages \ --enable-gnutls \ --enable-gssapi-krb5 \ - --enable-imdiag \ - --enable-imdocker \ --enable-imfile \ --enable-imjournal \ - --enable-improg \ + --enable-imkafka \ --enable-impstats \ --enable-imptcp \ - --enable-libdbi \ --enable-mail \ --enable-mmanon \ --enable-mmaudit \ @@ -286,14 +347,11 @@ export HIREDIS_LIBS="-L%{_libdir} -lhiredis" --enable-mmjsonparse \ --enable-mmnormalize \ --enable-mmsnmptrapd \ + --enable-mmutf8fix \ --enable-mysql \ - --enable-omamqp1 \ - --enable-omhiredis \ --enable-omhttp \ --enable-omjournal \ - --enable-ommongodb \ --enable-omprog \ - --enable-omrabbitmq \ --enable-omstdout \ --enable-omudpspoof \ --enable-omuxsock \ @@ -341,6 +399,9 @@ rm -f %{buildroot}%{_libdir}/rsyslog/*.la rm -f %{buildroot}%{_libdir}/rsyslog/imdiag.so rm -f %{buildroot}%{_libdir}/rsyslog/liboverride_gethostname.so +# convert line endings from "\r\n" to "\n" +cat tools/recover_qi.pl | tr -d '\r' > %{buildroot}%{_bindir}/rsyslog-recover-qi.pl + %post for n in /var/log/{messages,secure,maillog,spooler} do @@ -368,6 +429,7 @@ done %dir %{rsyslog_statedir} %dir %{rsyslog_pkidir} %{_sbindir}/rsyslogd +%attr(755,root,root) %{_bindir}/rsyslog-recover-qi.pl %{_mandir}/man5/rsyslog.conf.5.gz %{_mandir}/man8/rsyslogd.8.gz %{_unitdir}/rsyslog.service @@ -375,12 +437,12 @@ done %config(noreplace) %{_sysconfdir}/sysconfig/rsyslog %config(noreplace) %{_sysconfdir}/logrotate.d/rsyslog # plugins -%{_libdir}/rsyslog/imdocker.so +%{_libdir}/rsyslog/fmhash.so +%{_libdir}/rsyslog/fmhttp.so %{_libdir}/rsyslog/imfile.so %{_libdir}/rsyslog/imjournal.so %{_libdir}/rsyslog/imklog.so %{_libdir}/rsyslog/immark.so -%{_libdir}/rsyslog/improg.so %{_libdir}/rsyslog/impstats.so %{_libdir}/rsyslog/imptcp.so %{_libdir}/rsyslog/imtcp.so @@ -396,7 +458,7 @@ done %{_libdir}/rsyslog/mmanon.so %{_libdir}/rsyslog/mmcount.so %{_libdir}/rsyslog/mmexternal.so -%{_libdir}/rsyslog/omclickhouse.so +%{_libdir}/rsyslog/mmutf8fix.so %{_libdir}/rsyslog/omhttp.so %{_libdir}/rsyslog/omjournal.so %{_libdir}/rsyslog/ommail.so @@ -408,8 +470,11 @@ done %{_libdir}/rsyslog/pmcisconames.so %{_libdir}/rsyslog/pmlastmsg.so %{_libdir}/rsyslog/pmsnare.so -%{_libdir}/rsyslog/fmhttp.so -%{_libdir}/rsyslog/fmhash.so +%if 0%{?rhel} == 0 +%{_libdir}/rsyslog/imdocker.so +%{_libdir}/rsyslog/improg.so +%{_libdir}/rsyslog/omclickhouse.so +%endif %files crypto %{_bindir}/rscryutil @@ -422,12 +487,6 @@ done %files elasticsearch %{_libdir}/rsyslog/omelasticsearch.so -%files hiredis -%{_libdir}/rsyslog/omhiredis.so - -%files libdbi -%{_libdir}/rsyslog/omlibdbi.so - %files mmaudit %{_libdir}/rsyslog/mmaudit.so @@ -444,17 +503,10 @@ done %doc %{rsyslog_docdir}/mysql-createDB.sql %{_libdir}/rsyslog/ommysql.so -%files mongodb -%{_bindir}/logctl -%{_libdir}/rsyslog/ommongodb.so - %files pgsql %doc %{rsyslog_docdir}/pgsql-createDB.sql %{_libdir}/rsyslog/ompgsql.so -%files rabbitmq -%{_libdir}/rsyslog/omrabbitmq.so - %files gssapi %{_libdir}/rsyslog/lmgssutil.so %{_libdir}/rsyslog/imgssapi.so @@ -477,6 +529,7 @@ done %{_libdir}/rsyslog/omamqp1.so %files kafka +%{_libdir}/rsyslog/imkafka.so %{_libdir}/rsyslog/omkafka.so %files mmkubernetes @@ -484,7 +537,28 @@ done %doc %{rsyslog_docdir}/k8s_filename.rulebase %doc %{rsyslog_docdir}/k8s_container_name.rulebase +%if 0%{?rhel} == 0 +%files hiredis +%{_libdir}/rsyslog/omhiredis.so + +%files libdbi +%{_libdir}/rsyslog/omlibdbi.so + +%files mongodb +%{_bindir}/logctl +%{_libdir}/rsyslog/ommongodb.so + +%files rabbitmq +%{_libdir}/rsyslog/omrabbitmq.so +%endif + + %changelog +* Wed Mar 03 2021 Attila Lakatos - 8.2102.0-1 +- rebase to upstream version 8.2102.0 + resolves: rhbz#1905363 +- enable additional plugins: imkafka, mmutf8fix + * Tue Mar 02 2021 Zbigniew Jędrzejewski-Szmek - 8.2010.0-4 - Rebuilt for updated systemd-rpm-macros See https://pagure.io/fesco/issue/2583. diff --git a/sources b/sources index 3018386..ccff29d 100644 --- a/sources +++ b/sources @@ -1,2 +1,3 @@ -SHA512 (rsyslog-8.2010.0.tar.gz) = e3c8ed6b631053e38abfe8ce183a1544d04a0207dc988d36f5141a7ea8c987915f4c0429ccd094b7e374c277b7ee5b50e65e7205c156af01ffe9bdf8338831c8 -SHA512 (rsyslog-doc-8.2010.0.tar.gz) = 072fb05a0117dc0970a4e5e302abbaf5dc065c2a0962c4160e7efb86fedad89a2caa546cd2bf4af07b7f5e2fa5267cf02889d911f7a6916725e6aea1760ab253 +SHA512 (qpid-proton-0.31.0.tar.gz) = 39487c34ae6ae1cc0c2f57f2ffb2bdf48a554e9ba8439a5c3f9776205cdb138f71284c9fc7626e4bbee3110ccce7da61ddb45f51ebddfede981ada0872074202 +SHA512 (rsyslog-8.2102.0.tar.gz) = 281b0e5d5cb548c39a6e514e5fd5b1bdbe8ca0bdd9234f4fea581ed7679f76d2d75b65d14c3c5e799f86f91600074ff75b467aa1ff27cdbec0f4197261c5aec0 +SHA512 (rsyslog-doc-8.2102.0.tar.gz) = a5dc4fb9bd8892fac693c5692b926c8d7d9fa36667d6b4c6eccba750713af88d4317f6232efc2a16de38c2e58c4a8bc4d04c9ebb2e7ebc3b0878d53eef20dd2e