]> TLD Linux GIT Repositories - packages/syslog-ng.git/blob - syslog-ng.spec
- single conf.d, package /var/log/network directory
[packages/syslog-ng.git] / syslog-ng.spec
1 # NOTE: only core functionality is available without /usr;
2 #       some non-trivial extension modules rely in libraries/daemons existing in /usr.
3 #
4 # Conditional build:
5 %bcond_with     dynamic                 # link dynamically with glib, eventlog, pcre (modules are always linked dynamically)
6 %bcond_without  sql                     # support for logging to SQL DB
7 %bcond_without  tests                   # do not perform "make check"
8 %bcond_with     bpf                     # loading eBPF programs support (generates some data from current kernel)
9 %bcond_without  grpc                    # support for GRPC protocols
10 %bcond_without  http                    # support for HTTP destination
11 %bcond_without  json                    # support for JSON template formatting
12 %bcond_without  mongodb                 # support for mongodb destination
13 %bcond_without  mqtt                    # support for MQTT protocol
14 %bcond_without  redis                   # support for Redis destination
15 %bcond_without  smtp                    # support for logging into SMTP
16 %bcond_without  geoip2                  # support for GeoIP2
17 %bcond_without  kafka                   # support for Apache Kafka protocol
18 %bcond_without  riemann                 # support for Riemann monitoring system
19 %bcond_without  amqp                    # AMQP support
20 %bcond_without  python                  # python module
21 %bcond_with     java                    # java modules and support
22 %bcond_without  system_libivykis        # use system libivykis
23 %bcond_without  system_rabbitmq         # use system librabbitmq
24
25 %if %{without amqp}
26 %undefine with_system_rabbitmq
27 %endif
28
29 # as in git submodule
30 %define libivykis_version 0.43.2
31
32 %define         glib2_ver       1:2.32.0
33 %define         mver    4.8
34 Summary:        Syslog-ng - new generation of the system logger
35 Summary(pl.UTF-8):      Syslog-ng - systemowy demon logujący nowej generacji
36 Summary(pt_BR.UTF-8):   Daemon de log nova geração
37 Name:           syslog-ng
38 Version:        4.8.1
39 Release:        1
40 License:        GPL v2+ with OpenSSL exception
41 Group:          Daemons
42 #Source0Download: https://github.com/syslog-ng/syslog-ng/releases
43 Source0:        https://github.com/syslog-ng/syslog-ng/releases/download/%{name}-%{version}/%{name}-%{version}.tar.gz
44 # Source0-md5:  6a5852343f9a34449c3812b474728aa7
45 Source1:        %{name}.init
46 Source2:        %{name}.conf
47 Source3:        %{name}.logrotate
48 Source4:        log_server.conf
49 Source5:        log_remote.conf
50 Source6:        dhcp.conf
51 Source7:        freshclam.conf
52 Source8:        iptables.conf
53 Source9:        ppp.conf
54 %if 0
55 # for git archives (release tarballs include ivykis)
56 #Source10Download: https://github.com/buytenh/ivykis/releases
57 #Source10:      https://github.com/buytenh/ivykis/archive/v%{libivykis_version}/ivykis-%{libivykis_version}.tar.gz
58 Source10:       https://downloads.sourceforge.net/libivykis/ivykis-%{libivykis_version}.tar.gz
59 # Source10-md5: df51c6d5c52bef1c82ea33eddc997792
60 %endif
61 Patch0:         %{name}-datadir.patch
62 Patch2:         %{name}-nolibs.patch
63 Patch4:         man-paths.patch
64 Patch5:         %{name}-link.patch
65 Patch6:         no_shared_ivykis.patch
66 Patch7:         32bit.patch
67 Patch9:         glib-static.patch
68 Patch10:        file_seek.patch
69 URL:            https://syslog-ng.org/
70 BuildRequires:  autoconf >= 2.59
71 BuildRequires:  automake
72 BuildRequires:  bison >= 3.7.6
73 %if %{with tests}
74 BuildRequires:  criterion-devel >= 2.3.3-5
75 %endif
76 %{?with_http:BuildRequires:     curl-devel}
77 BuildRequires:  docbook-style-xsl-nons
78 BuildRequires:  eventlog-devel >= 0.2.12
79 BuildRequires:  flex
80 BuildRequires:  glib2-devel >= %{glib2_ver}
81 %{?with_java:BuildRequires:     gradle >= 3.4}
82 %{?with_grpc:BuildRequires:     grpc-devel >= 1.16.1}
83 %{?with_redis:BuildRequires:    hiredis-devel >= 0.11.0}
84 %{?with_java:BuildRequires:     jdk >= 1.8}
85 %{?with_json:BuildRequires:     json-c-devel >= 0.13}
86 # bpftool
87 %{?with_bpf:BuildRequires:      kernel-tools >= 4.15}
88 %{?with_bpf:BuildRequires:      libbpf-devel >= 1.0.1}
89 BuildRequires:  libcap-devel
90 %{?with_sql:BuildRequires:      libdbi-devel >= 0.9.0}
91 %{?with_smtp:BuildRequires:     libesmtp-devel}
92 %{?with_system_libivykis:BuildRequires: libivykis-devel >= %{libivykis_version}}
93 %{?with_geoip2:BuildRequires:   libmaxminddb-devel}
94 BuildRequires:  libnet-devel >= 1:1.1.2.1-3
95 %{?with_kafka:BuildRequires:    librdkafka-devel >= 1.1.0}
96 BuildRequires:  libtool >= 2:2.0
97 BuildRequires:  libwrap-devel
98 BuildRequires:  libxslt-progs
99 BuildRequires:  lz4-devel >= r131-5
100 %{?with_mongodb:BuildRequires:  mongo-c-driver-devel >= 1.0.0}
101 BuildRequires:  net-snmp-devel
102 BuildRequires:  openssl-devel >= 0.9.8
103 %{?with_mqtt:BuildRequires:     paho-mqtt-devel}
104 BuildRequires:  pcre2-8-devel >= 10.0
105 BuildRequires:  pkgconfig
106 %{?with_grpc:BuildRequires:     protobuf-devel >= 3.12.0}
107 %{?with_system_rabbitmq:BuildRequires:  rabbitmq-c-devel >= 0.5.3}
108 %{?with_riemann:BuildRequires:  riemann-c-client-devel >= 1.6.0}
109 BuildRequires:  rpm >= 4.4.9-56
110 BuildRequires:  rpmbuild(macros) >= 1.623
111 BuildRequires:  which
112 %if %{with tests}
113 BuildRequires:  GeoIP-db-Country
114 BuildRequires:  pylint
115 BuildRequires:  python3
116 %{?with_python:BuildRequires:   python3-devel >= 1:3.2}
117 BuildRequires:  python3-pep8
118 BuildRequires:  python3-ply
119 BuildRequires:  python3-pytest-mock
120 BuildRequires:  tzdata
121 %endif
122 %if %{without dynamic}
123 BuildRequires:  eventlog-static >= 0.2.12
124 BuildRequires:  glib2-static >= %{glib2_ver}
125 %{?with_system_libivykis:BuildRequires: libivykis-static >= %{libivykis_version}}
126 BuildRequires:  pcre-static >= 6.1
127 BuildRequires:  zlib-static
128 %endif
129 Requires(post): fileutils
130 Requires(post,preun):   /sbin/chkconfig
131 Requires:       %{name}-libs = %{version}-%{release}
132 Requires:       psmisc >= 20.1
133 %{?with_system_rabbitmq:Requires:       rabbitmq-c >= 0.5.3}
134 Requires:       rc-scripts >= 0.4.3.0
135 # for afsocket
136 Requires:       libnet >= 1:1.1.2.1-7
137 # for afsocket and dbparser
138 Requires:       openssl >= 0.9.8
139 Provides:       service(klogd)
140 Provides:       service(syslog)
141 Provides:       syslogdaemon
142 Obsoletes:      syslog-ng-module-afsocket < 3.3.1-4
143 Obsoletes:      syslog-ng-module-dbparser < 3.3.1-4
144 Obsoletes:      syslog-ng-systemd < 3.3.4-3
145 Conflicts:      klogd
146 Conflicts:      msyslog
147 Conflicts:      rsyslog
148 Conflicts:      syslog
149 Conflicts:      cronie < 1.5.0-3
150 Conflicts:      fcron < 3.1.2-5
151 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
152
153 %define xsl_stylesheets_dir /usr/share/sgml/docbook/xsl-stylesheets
154
155 %if %{without dynamic}
156 # syslog-ng has really crazy linking rules (see their bugzilla).
157 # Some rules, according to syslog-ng devs, are like this:
158 # - libsyslog-ng.so has undefined symbols for third party libraries
159 #   and these symbols should go via main syslog-ng binary
160 # - same applies for modules
161 # In dynamic case tests are forcily linked with dynamic modules, which doesn't work with as-needed.
162 %define         filterout_ld                    -Wl,--as-needed -Wl,--no-copy-dt-needed-entries
163 %define         no_install_post_check_so        1
164 %define         _sbindir                        /sbin
165 %define         slibdir                         /%{_lib}
166 %else
167 %define         slibdir                         %{_libdir}
168 %endif
169 # or just %{_libdir}? modules seem to be always linked dynamically
170 %define         moduledir                       %{slibdir}/syslog-ng
171
172 %description
173 syslog-ng is a syslogd replacement for Unix and Unix-like systems. It
174 has been tested on Solaris, BSDi and Linux, and were found to run
175 reliably. syslog-ng gives you a much enhanced configuration scheme,
176 which lets you filter messages based on not only priority/facility
177 pairs, but also on message content. You can use regexps to direct log
178 stream to different destinations. A destination can be anything from a
179 simple file to a network connection. syslog-ng supports TCP
180 logforwarding, together with hashing to prevent unauthorized
181 modification on the line.
182
183 %description -l pl.UTF-8
184 Syslog-ng jest zamiennikiem dla standardowo używanych programów typu
185 syslog. Działa w systemie SunOS, BSD, Linux. Daje znacznie większe
186 możliwości logowania i kontrolowania zbieranych informacji.
187
188 %description -l pt_BR.UTF-8
189 Syslog-ng é um substituto para o syslog tradicional, mas com diversas
190 melhorias, como, por exemplo, a habilidade de filtrar mensagens de log
191 por seu conteúdo (usando expressões regulares) e não apenas pelo par
192 facility/prioridade como o syslog original.
193
194 %package module-afmongodb
195 Summary:        MongoDB destination support module for syslog-ng
196 Summary(pl.UTF-8):      Moduł sysloga-ng do obsługi zapisu logów w bazie MongoDB
197 Group:          Libraries
198 Requires:       %{name} = %{version}-%{release}
199 Requires:       mongo-c-driver >= 1.0.0
200
201 %description module-afmongodb
202 MongoDB destination support module for syslog-ng.
203
204 %description module-afmongodb -l pl.UTF-8
205 Moduł sysloga-ng do obsługi zapisu logów w bazie MongoDB.
206
207 %package module-afsmtp
208 Summary:        SMTP output support module for syslog-ng
209 Summary(pl.UTF-8):      Moduł sysloga-ng do obsługi wysyłania logów do serwerów SMTP
210 Group:          Libraries
211 Requires:       %{name} = %{version}-%{release}
212 Requires:       openssl >= 0.9.8
213
214 %description module-afsmtp
215 SMTP output support module for syslog-ng.
216
217 %description module-afsmtp -l pl.UTF-8
218 Moduł sysloga-ng do obsługi wysyłania logów do serwerów SMTP.
219
220 %package module-afsql
221 Summary:        SQL destination support module for syslog-ng
222 Summary(pl.UTF-8):      Moduł sysloga-ng do obsługi zapisu logów w bazach SQL
223 Group:          Libraries
224 Requires:       %{name} = %{version}-%{release}
225 Requires:       libdbi >= 0.9.0
226 Requires:       openssl >= 0.9.8
227
228 %description module-afsql
229 SQL destination support module for syslog-ng (via libdbi).
230
231 %description module-afsql -l pl.UTF-8
232 Moduł sysloga-ng do obsługi zapisu logów w bazach SQL (poprzez
233 libdbi).
234
235 %package module-http
236 Summary:        HTTP destination support module for syslog-ng
237 Summary(pl.UTF-8):      Moduł sysloga-ng do obsługi zapisu logów poprzez HTTP
238 Group:          Libraries
239 Requires:       %{name} = %{version}-%{release}
240
241 %description module-http
242 HTTP destination support module for syslog-ng (via libcurl).
243
244 %description module-http -l pl.UTF-8
245 Moduł sysloga-ng do obsługi zapisu logów poprzez HTTP (via libcurl).
246
247 %package module-cloudauth
248 Summary:        Cloud Authentication support for syslog-ng: pubsub
249 Summary(pl.UTF-8):      Moduł sysloga-ng do uwierzytelniania chmurowego na potrzeby pubsub
250 Group:          Libraries
251 Requires:       %{name} = %{version}-%{release}
252
253 %description module-cloudauth
254 Cloud Authentication support for syslog-ng, currently used for Google
255 PubSub.
256
257 %description module-cloudauth -l pl.UTF-8
258 Moduł sysloga-ng do obsługi uwierzytelniania w chmurze, używany przez
259 Google PubSub.
260
261 %package module-grpc
262 Summary:        GRPC modules for syslog-ng: bigquery, loki, otel
263 Summary(pl.UTF-8):      Moduły GRPC dla sysloga-ng: bigquery, loki, otel
264 Group:          Libraries
265 Requires:       %{name} = %{version}-%{release}
266
267 %description module-grpc
268 GRPC protocols support for syslog-ng, currently: bigquery, loki and
269 otel.
270
271 %description module-grpc -l pl.UTF-8
272 Obsługa protokołów GRPC dla sysloga-ng, obecnie: bigquery, loki i
273 otel.
274
275 %package module-json-plugin
276 Summary:        JSON formatting template function for syslog-ng
277 Summary(pl.UTF-8):      Moduł sysloga-ng do obsługi szablonów z formatowaniem JSON
278 Group:          Libraries
279 Requires:       %{name} = %{version}-%{release}
280 Requires:       json-c >= 0.9
281 Obsoletes:      syslog-ng-module-tfjson < 3.4.2
282
283 %description module-json-plugin
284 JSON formatting template function for syslog-ng.
285
286 %description module-json-plugin -l pl.UTF-8
287 Moduł sysloga-ng do obsługi szablonów z formatowaniem JSON.
288
289 %package module-kafka
290 Summary:        Apache Kafka destination support module for syslog-ng
291 Summary(pl.UTF-8):      Moduł sysloga-ng do obsługi zapisu logów poprzez protokół Apache Kafka
292 Group:          Libraries
293 Requires:       %{name} = %{version}-%{release}
294 Requires:       librdkafka >= 1.1.0
295
296 %description module-kafka
297 Apache Kafka destination support module for syslog-ng.
298
299 %description module-kafka -l pl.UTF-8
300 Moduł sysloga-ng do obsługi zapisu logów poprzez protokół Apache
301 Kafka.
302
303 %package module-mqtt
304 Summary:        MQTT protocol support module for syslog-ng
305 Summary(pl.UTF-8):      Moduł sysloga-ng do obsługi protokołu MQTT
306 Group:          Libraries
307 Requires:       %{name} = %{version}-%{release}
308
309 %description module-mqtt
310 MQTT protocol support module for syslog-ng.
311
312 %description module-mqtt -l pl.UTF-8
313 Moduł sysloga-ng do obsługi protokołu MQTT.
314
315 %package module-python
316 Summary:        Python support module for syslog-ng
317 Summary(pl.UTF-8):      Moduł obsługi Pythona dla sysloga-ng
318 Group:          Librares
319 Requires:       %{name} = %{version}-%{release}
320
321 %description module-python
322 Python support module for syslog-ng.
323
324 %description module-python -l pl.UTF-8
325 Moduł obsługi Pythona dla sysloga-ng.
326
327 %package module-redis
328 Summary:        Redis destination support module for syslog-ng
329 Summary(pl.UTF-8):      Moduł sysloga-ng do obsługi zapisu logów w bazie Redis
330 Group:          Libraries
331 Requires:       %{name} = %{version}-%{release}
332 Requires:       hiredis >= 0.11.0
333
334 %description module-redis
335 Redis destination support module for syslog-ng (via libhiredis).
336
337 %description module-redis -l pl.UTF-8
338 Moduł sysloga-ng do obsługi zapisu logów w bazie Redis (poprzez
339 libhiredis).
340
341 %package module-riemann
342 Summary:        Riemann destination support module for syslog-ng
343 Summary(pl.UTF-8):      Moduł sysloga-ng do obsługi zapisu logów do systemu Riemann
344 Group:          Libraries
345 Requires:       %{name} = %{version}-%{release}
346 Requires:       riemann-c-client >= 1.6.0
347
348 %description module-riemann
349 Riemann destination support module for syslog-ng.
350
351 %description module-riemann -l pl.UTF-8
352 Moduł sysloga-ng do obsługi zapisu logów do systemu Riemann.
353
354 %package libs
355 Summary:        Shared library for syslog-ng
356 Summary(pl.UTF-8):      Biblioteka współdzielona sysloga-ng
357 Group:          Libraries
358 %if %{with dynamic}
359 Requires:       eventlog >= 0.2.12
360 Requires:       glib2 >= %{glib2_ver}
361 Requires:       pcre >= 6.1
362 %endif
363 %{?with_system_libivykis:Requires:  libivykis >= %{libivykis_version}}
364 Conflicts:      syslog-ng < 3.3.1-3
365
366 %description libs
367 Shared library for syslog-ng.
368
369 %description libs -l pl.UTF-8
370 Biblioteka współdzielona sysloga-ng.
371
372 %package devel
373 Summary:        Header files for syslog-ng modules development
374 Summary(pl.UTF-8):      Pliki nagłówkowe do tworzenia modułów dla sysloga-ng
375 Group:          Development/Libraries
376 Requires:       %{name}-libs = %{version}-%{release}
377 %if %{with dynamic}
378 Requires:       eventlog-devel >= 0.2.12
379 Requires:       glib2-devel >= %{glib2_ver}
380 Requires:       pcre-devel >= 6.1
381 %endif
382 %{?with_system_libivykis:Requires:  libivykis-devel >= %{libivykis_version}}
383
384 %description devel
385 Header files for syslog-ng modules development.
386
387 %description devel -l pl.UTF-8
388 Pliki nagłówkowe do tworzenia modułów dla sysloga-ng.
389
390 %package test-devel
391 Summary:        syslog-ng test library
392 Summary(pl.UTF-8):      Biblioteka testowa sysloga-ng
393 Group:          Development/Libraries
394 Requires:       %{name}-devel = %{version}-%{release}
395
396 %description test-devel
397 Test helper package for syslog-ng modules.
398
399 %description test-devel -l pl.UTF-8
400 Pakiet pomocniczy do testowania modułów sysloga-ng.
401
402 %prep
403 %if 1
404 # release tarball
405 %setup -q
406 %else
407 # git archive
408 %setup -q -n %{name}-%{name}-%{version} -a 10
409
410 rmdir lib/ivykis
411 %{__mv} ivykis-%{libivykis_version} lib/ivykis
412 %endif
413
414 %patch -P0 -p1
415 %patch -P2 -p1
416 %patch -P4 -p1
417 %patch -P5 -p1
418 %patch -P6 -p1
419 %patch -P7 -p1
420 %patch -P9 -p1
421 %patch -P10 -p1
422
423 %{__sed} -i -e 's|/usr/bin/awk|/bin/awk|' scl/syslogconf/convert-syslogconf.awk
424 %{__sed} -i -e '1s,/usr/bin/env python3$,%{__python3},' lib/merge-grammar.py
425
426 %build
427 for i in . ; do
428 cd $i
429         %{__libtoolize}
430         %{__aclocal} `[ -d m4 ] && echo '-I m4'`
431         %{__autoconf}
432         %{__autoheader}
433         %{__automake}
434 cd -
435 done
436 %configure \
437         PYTHON="%{__python3}" \
438         --sysconfdir=%{_sysconfdir}/syslog-ng \
439         --disable-silent-rules \
440         %{__enable_disable amqp} \
441 %if %{with dynamic}
442         --enable-dynamic-linking \
443 %else
444         --enable-mixed-linking \
445 %endif
446         --enable-ebpf%{!?with_bpf:=no} \
447         %{__enable_disable geoip2} \
448         --enable-grpc%{!?with_grpc:=no} \
449         --enable-http%{!?with_http:=no} \
450         --enable-ipv6 \
451         --enable-java%{!?with_java:=no} \
452         --enable-java-modules%{!?with_java:=no} \
453         --enable-json%{!?with_json:=no} \
454         --enable-linux-caps \
455         --enable-kafka%{!?with_kafka:=no} \
456         --enable-manpages \
457 %if %{with mongodb}
458         --enable-mongodb \
459         --with-mongoc=system \
460 %else
461         --disable-mongodb \
462 %endif
463         --enable-mqtt%{!?with_mqtt:=no} \
464         --enable-pacct \
465         --enable-pcre \
466         --enable-python%{!?with_python:=no} \
467         --enable-redis%{!?with_redis:=no} \
468         --enable-riemann%{!?with_riemann:=no} \
469         --enable-smtp%{!?with_smtp:=no} \
470         --enable-spoof-source \
471         --enable-ssl \
472         --enable-systemd=no \
473         --with-systemd-journal=auto \
474         --enable-tcp-wrapper \
475 %if %{with sql}
476         --enable-sql \
477 %endif
478         --with-default-modules=affile,afprog,afsocket,afuser,basicfuncs,csvparser,dbparser,syslogformat \
479         --with-docbook=%{xsl_stylesheets_dir}/manpages/docbook.xsl \
480 %if %{with system_libivykis}
481         --with-ivykis=system \
482 %else
483         --with-ivykis=internal \
484 %endif
485         %{?with_system_rabbitmq:--with-librabbitmq-client=system} \
486         --with-module-dir=%{moduledir} \
487         --with-pidfile-dir=/var/run \
488         --with-python-packages=none \
489         --with-timezone-dir=%{_datadir}/zoneinfo
490
491 %{__make}
492
493 %if %{with tests}
494 LD_LIBRARY_PATH=$(find $PWD -name '*.so*' -printf "%h:")
495 PYTHONPATH=$(pwd)/tests/functional
496 export LD_LIBRARY_PATH PYTHONPATH
497 if ! %{__make} check; then
498         cat test-suite.log
499         exit 1
500 fi
501 %endif
502
503 %install
504 rm -rf $RPM_BUILD_ROOT
505 install -d $RPM_BUILD_ROOT/etc/{syslog-ng/conf.d,sysconfig,logrotate.d,rc.d/init.d} \
506         $RPM_BUILD_ROOT%{_sysconfdir}/syslog-ng/patterndb.d \
507         $RPM_BUILD_ROOT/var/{log/network,lib/%{name}/xsd}
508
509 %{__make} -j1 install \
510         pkgconfigdir=%{_pkgconfigdir} \
511         DESTDIR=$RPM_BUILD_ROOT
512
513 %if "%{slibdir}" != "%{_libdir}"
514 install -d $RPM_BUILD_ROOT%{slibdir}
515 %{__mv} $RPM_BUILD_ROOT%{_libdir}/libsyslog-ng-%{mver}.so.* $RPM_BUILD_ROOT%{slibdir}
516 ln -snf %{slibdir}/$(basename $RPM_BUILD_ROOT%{slibdir}/libsyslog-ng-%{mver}.so.*.*.*) $RPM_BUILD_ROOT%{_libdir}/libsyslog-ng.so
517
518 %{__mv} $RPM_BUILD_ROOT%{_libdir}/libevtlog-%{mver}.so.* $RPM_BUILD_ROOT%{slibdir}
519 ln -snf %{slibdir}/$(basename $RPM_BUILD_ROOT%{slibdir}/libevtlog-%{mver}.so.*.*.*) $RPM_BUILD_ROOT%{_libdir}/libevtlog.so
520
521 %{__mv} $RPM_BUILD_ROOT%{_libdir}/libloggen_helper-%{mver}.so.* $RPM_BUILD_ROOT%{slibdir}
522 ln -snf %{slibdir}/$(basename $RPM_BUILD_ROOT%{slibdir}/libloggen_helper-%{mver}.so.*.*.*) $RPM_BUILD_ROOT%{_libdir}/libloggen_helper.so
523
524 %{__mv} $RPM_BUILD_ROOT%{_libdir}/libloggen_plugin-%{mver}.so.* $RPM_BUILD_ROOT%{slibdir}
525 ln -snf %{slibdir}/$(basename $RPM_BUILD_ROOT%{slibdir}/libloggen_plugin-%{mver}.so.*.*.*) $RPM_BUILD_ROOT%{_libdir}/libloggen_plugin.so
526
527 %{__mv} $RPM_BUILD_ROOT%{_libdir}/libsecret-storage.so.* $RPM_BUILD_ROOT%{slibdir}
528 ln -snf %{slibdir}/$(basename $RPM_BUILD_ROOT%{slibdir}/libsecret-storage.so.*.*.*) $RPM_BUILD_ROOT%{_libdir}/libsecret-storage.so
529 %endif
530
531 %{__sed} -e 's|@@SBINDIR@@|%{_sbindir}|g' %{SOURCE1} > $RPM_BUILD_ROOT/etc/rc.d/init.d/syslog-ng
532 sed -e 's,#VERSION#,%{mver},' < %{SOURCE2} > $RPM_BUILD_ROOT%{_sysconfdir}/syslog-ng/syslog-ng.conf
533 cp -p %{SOURCE3} $RPM_BUILD_ROOT/etc/logrotate.d/syslog-ng
534
535 cp -p %{SOURCE4} $RPM_BUILD_ROOT/etc/syslog-ng/conf.d
536 cp -p %{SOURCE5} $RPM_BUILD_ROOT/etc/syslog-ng/conf.d
537 cp -p %{SOURCE6} $RPM_BUILD_ROOT/etc/syslog-ng/conf.d
538 cp -p %{SOURCE7} $RPM_BUILD_ROOT/etc/syslog-ng/conf.d
539 cp -p %{SOURCE8} $RPM_BUILD_ROOT/etc/syslog-ng/conf.d
540 cp -p %{SOURCE9} $RPM_BUILD_ROOT/etc/syslog-ng/conf.d
541
542 for n in cron daemon debug iptables kernel lpr maillog messages secure spooler syslog user xferlog; do
543         > $RPM_BUILD_ROOT/var/log/$n
544 done
545 touch $RPM_BUILD_ROOT/etc/sysconfig/%{name}
546 ln -s "%{name}" $RPM_BUILD_ROOT/etc/sysconfig/%{name}@default
547
548 %{__rm} $RPM_BUILD_ROOT%{_sbindir}/syslog-ng-debun
549 %{__rm} $RPM_BUILD_ROOT%{_mandir}/man1/syslog-ng-debun.1
550 %{__rm} $RPM_BUILD_ROOT%{moduledir}/libexamples.so
551 %{__rm} $RPM_BUILD_ROOT%{_libdir}/*.la
552 %{__rm} $RPM_BUILD_ROOT%{moduledir}/*.la
553 %{__rm} $RPM_BUILD_ROOT%{moduledir}/loggen/*.la
554
555 %clean
556 rm -rf $RPM_BUILD_ROOT
557
558 %post
559 if [ "$1" = "1" ]; then
560         # disable /proc/kmsg from config on first install on vserver
561         {
562                 while read f ctx; do
563                         [ "$f" = "VxID:" -o "$f" = "s_context:" ] && break
564                 done </proc/self/status
565         } 2>/dev/null
566         if [ -z "$ctx" -o "$ctx" = "0" ]; then
567                 VSERVER=no
568         else
569                 VSERVER=yes
570         fi
571         if [ "$VSERVER" = "yes" ]; then
572                 %{__sed} -i -e '/\/proc\/kmsg/ s/^[^#]/#&/' %{_sysconfdir}/%{name}/%{name}.conf
573         fi
574 fi
575
576 /sbin/chkconfig --add syslog-ng
577 %service syslog-ng restart "syslog-ng daemon"
578
579 %preun
580 if [ "$1" = "0" ]; then
581         %service syslog-ng stop
582         /sbin/chkconfig --del syslog-ng
583 fi
584
585 %triggerun -- syslog-ng < 3.0
586 sed -i -e 's#sync(\(.*\))#flush_lines(\1)#g' /etc/syslog-ng/syslog-ng.conf
587 sed -i -e 's#pipe ("/proc/kmsg"#file ("/proc/kmsg"#g' /etc/syslog-ng/syslog-ng.conf
588 sed -i -e 's#log_prefix#program_override#g' /etc/syslog-ng/syslog-ng.conf
589 sed -i -e 's#^destination #destination d_#g' /etc/syslog-ng/syslog-ng.conf
590 sed -i -e 's#destination(#destination(d_#g' /etc/syslog-ng/syslog-ng.conf
591 sed -i -e 's,\bstats\b,stats_freq,' /etc/syslog-ng/syslog-ng.conf
592 sed -i -e 's#match("IN\=\[A-Za-z0-9\]\* OUT=\[A-Za-z0-9\]\*");#match("IN=[A-Za-z0-9]* OUT=[A-Za-z0-9]*" value("MESSAGE"));#g' /etc/syslog-ng/syslog-ng.conf
593 sed -i -e "1 s#\(.*\)\$#@version: 3.0\n\1#g" /etc/syslog-ng/syslog-ng.conf
594 rm -f %{_var}/lib/%{name}/syslog-ng.persist
595 %service -q syslog-ng restart
596
597 %post   libs -p /sbin/ldconfig
598 %postun libs -p /sbin/ldconfig
599
600 %post   module-grpc -p /sbin/ldconfig
601 %postun module-grpc -p /sbin/ldconfig
602
603 %files
604 %defattr(644,root,root,755)
605 %doc AUTHORS NEWS.md contrib/relogger.pl
606 %doc contrib/syslog-ng.conf.{doc,RedHat}
607 %doc contrib/{apparmor,selinux,syslog2ng}
608 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/%{name}
609 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/%{name}@default
610 %attr(750,root,root) %dir %{_sysconfdir}/syslog-ng
611 %attr(750,root,root) %dir %{_sysconfdir}/syslog-ng/patterndb.d
612 %attr(750,root,root) %dir %{_sysconfdir}/syslog-ng/conf.d
613 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/syslog-ng/syslog-ng.conf
614 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/syslog-ng/conf.d/dhcp.conf
615 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/syslog-ng/conf.d/iptables.conf
616 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/syslog-ng/conf.d/log_remote.conf
617 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/syslog-ng/conf.d/log_server.conf
618 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/syslog-ng/conf.d/freshclam.conf
619 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/syslog-ng/conf.d/ppp.conf
620 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/logrotate.d/syslog-ng
621 %attr(754,root,root) /etc/rc.d/init.d/syslog-ng
622 %dir %{moduledir}
623 %attr(755,root,root) %{moduledir}/libadd-contextual-data.so
624 %if %{with amqp}
625 %attr(755,root,root) %{moduledir}/libafamqp.so
626 %endif
627 %attr(755,root,root) %{moduledir}/libaffile.so
628 %attr(755,root,root) %{moduledir}/libafprog.so
629 %attr(755,root,root) %{moduledir}/libafsnmp.so
630 %attr(755,root,root) %{moduledir}/libafsocket.so
631 %attr(755,root,root) %{moduledir}/libafstomp.so
632 %attr(755,root,root) %{moduledir}/libafuser.so
633 %attr(755,root,root) %{moduledir}/libappmodel.so
634 %attr(755,root,root) %{moduledir}/libazure-auth-header.so
635 %attr(755,root,root) %{moduledir}/libbasicfuncs.so
636 %attr(755,root,root) %{moduledir}/libcef.so
637 %attr(755,root,root) %{moduledir}/libconfgen.so
638 %attr(755,root,root) %{moduledir}/libcorrelation.so
639 %attr(755,root,root) %{moduledir}/libcryptofuncs.so
640 %attr(755,root,root) %{moduledir}/libcsvparser.so
641 #%attr(755,root,root) %{moduledir}/libdbparser.so
642 %attr(755,root,root) %{moduledir}/libdisk-buffer.so
643 %if %{with geoip2}
644 %attr(755,root,root) %{moduledir}/libgeoip2-plugin.so
645 %endif
646 %attr(755,root,root) %{moduledir}/libgraphite.so
647 %attr(755,root,root) %{moduledir}/libhook-commands.so
648 %attr(755,root,root) %{moduledir}/libkvformat.so
649 %attr(755,root,root) %{moduledir}/liblinux-kmsg-format.so
650 %attr(755,root,root) %{moduledir}/libmap-value-pairs.so
651 %attr(755,root,root) %{moduledir}/libmetrics-probe.so
652 %attr(755,root,root) %{moduledir}/libpacctformat.so
653 %attr(755,root,root) %{moduledir}/libpseudofile.so
654 %attr(755,root,root) %{moduledir}/librate-limit-filter.so
655 %attr(755,root,root) %{moduledir}/libregexp-parser.so
656 %attr(755,root,root) %{moduledir}/libsecure-logging.so
657 %attr(755,root,root) %{moduledir}/libstardate.so
658 %attr(755,root,root) %{moduledir}/libtags-parser.so
659 %attr(755,root,root) %{moduledir}/libtfgetent.so
660 %attr(755,root,root) %{moduledir}/libtimestamp.so
661 %attr(755,root,root) %{moduledir}/libxml.so
662 %attr(755,root,root) %{moduledir}/libsyslogformat.so
663 %attr(755,root,root) %{moduledir}/libsystem-source.so
664 %dir %{moduledir}/loggen
665 %attr(755,root,root) %{moduledir}/loggen/libloggen_socket_plugin.so
666 %attr(755,root,root) %{moduledir}/loggen/libloggen_ssl_plugin.so
667 %attr(755,root,root) %{_sbindir}/syslog-ng
668 %attr(755,root,root) %{_sbindir}/syslog-ng-ctl
669 %attr(755,root,root) %{_bindir}/dqtool
670 %attr(755,root,root) %{_bindir}/loggen
671 %attr(755,root,root) %{_bindir}/pdbtool
672 %attr(755,root,root) %{_bindir}/persist-tool
673 %attr(755,root,root) %{_bindir}/slogencrypt
674 %attr(755,root,root) %{_bindir}/slogkey
675 %attr(755,root,root) %{_bindir}/slogverify
676 %attr(755,root,root) %{_bindir}/syslog-ng-update-virtualenv
677 %attr(755,root,root) %{_bindir}/update-patterndb
678
679 %{_datadir}/syslog-ng/smart-multi-line.fsm
680 %dir %{_datadir}/syslog-ng/include
681 %{_datadir}/syslog-ng/include/scl.conf
682 %dir %{_datadir}/syslog-ng/include/scl
683 %{_datadir}/syslog-ng/include/scl/apache
684 %{_datadir}/syslog-ng/include/scl/arr
685 %{_datadir}/syslog-ng/include/scl/checkpoint
686 %{_datadir}/syslog-ng/include/scl/cisco
687 # R: basicfuncs
688 %{_datadir}/syslog-ng/include/scl/collectd
689 %{_datadir}/syslog-ng/include/scl/darwinosl
690 %{_datadir}/syslog-ng/include/scl/default-network-drivers
691 %{_datadir}/syslog-ng/include/scl/fortigate
692 %{_datadir}/syslog-ng/include/scl/graphite
693 %{_datadir}/syslog-ng/include/scl/hdfs
694 %{_datadir}/syslog-ng/include/scl/kafka
695 %{_datadir}/syslog-ng/include/scl/iptables
696 %{_datadir}/syslog-ng/include/scl/jellyfin
697 %{_datadir}/syslog-ng/include/scl/junos
698 %{_datadir}/syslog-ng/include/scl/linux-audit
699 %dir %{_datadir}/syslog-ng/include/scl/loadbalancer
700 %attr(755,root,root) %{_datadir}/syslog-ng/include/scl/loadbalancer/gen-loadbalancer.sh
701 %{_datadir}/syslog-ng/include/scl/loadbalancer/plugin.conf
702 %{_datadir}/syslog-ng/include/scl/logscale
703 %{_datadir}/syslog-ng/include/scl/mariadb
704 %{_datadir}/syslog-ng/include/scl/mbox
705 %{_datadir}/syslog-ng/include/scl/nodejs
706 %{_datadir}/syslog-ng/include/scl/openobserve
707 %{_datadir}/syslog-ng/include/scl/opensearch
708 %{_datadir}/syslog-ng/include/scl/osquery
709 %{_datadir}/syslog-ng/include/scl/pacct
710 %{_datadir}/syslog-ng/include/scl/paloalto
711 %{_datadir}/syslog-ng/include/scl/pgsql
712 %{_datadir}/syslog-ng/include/scl/pihole
713 %{_datadir}/syslog-ng/include/scl/python
714 %{_datadir}/syslog-ng/include/scl/qbittorrent
715 %{_datadir}/syslog-ng/include/scl/rewrite
716 %{_datadir}/syslog-ng/include/scl/snmptrap
717 %{_datadir}/syslog-ng/include/scl/solaris
718 %{_datadir}/syslog-ng/include/scl/splunk
719 %{_datadir}/syslog-ng/include/scl/sudo
720 %{_datadir}/syslog-ng/include/scl/sumologic
721 %{_datadir}/syslog-ng/include/scl/websense
722 %{_datadir}/syslog-ng/include/scl/windowseventlog
723 %dir %{_datadir}/syslog-ng/include/scl/syslogconf
724 %{_datadir}/syslog-ng/include/scl/syslogconf/README
725 %attr(755,root,root) %{_datadir}/syslog-ng/include/scl/syslogconf/convert-syslogconf.awk
726 %{_datadir}/syslog-ng/include/scl/syslogconf/plugin.conf
727 %{_datadir}/syslog-ng/include/scl/system
728 %{_datadir}/syslog-ng/xsd
729
730 %dir %{_var}/lib/%{name}
731 %dir %{_var}/lib/%{name}/xsd
732 %{_mandir}/man1/dqtool.1*
733 %{_mandir}/man1/loggen.1*
734 %{_mandir}/man1/pdbtool.1*
735 %{_mandir}/man1/persist-tool.1*
736 %{_mandir}/man1/slogencrypt.1*
737 %{_mandir}/man1/slogkey.1*
738 %{_mandir}/man1/slogverify.1*
739 %{_mandir}/man1/syslog-ng-ctl.1*
740 %{_mandir}/man5/syslog-ng.conf.5*
741 %{_mandir}/man7/secure-logging.7*
742 %{_mandir}/man8/syslog-ng.8*
743
744 %attr(750,root,root) %dir /var/log/network
745 %attr(640,root,logs) %ghost /var/log/cron
746 %attr(640,root,logs) %ghost /var/log/daemon
747 %attr(640,root,logs) %ghost /var/log/debug
748 %attr(640,root,logs) %ghost /var/log/iptables
749 %attr(640,root,logs) %ghost /var/log/kernel
750 %attr(640,root,logs) %ghost /var/log/lpr
751 %attr(640,root,logs) %ghost /var/log/maillog
752 %attr(640,root,logs) %ghost /var/log/messages
753 %attr(640,root,logs) %ghost /var/log/secure
754 %attr(640,root,logs) %ghost /var/log/spooler
755 %attr(640,root,logs) %ghost /var/log/syslog
756 %attr(640,root,logs) %ghost /var/log/user
757 %attr(640,root,logs) %ghost /var/log/xferlog
758
759 %if %{with mongodb}
760 %files module-afmongodb
761 %defattr(644,root,root,755)
762 %attr(755,root,root) %{moduledir}/libafmongodb.so
763 %endif
764
765 %if %{with smtp}
766 %files module-afsmtp
767 %defattr(644,root,root,755)
768 %attr(755,root,root) %{moduledir}/libafsmtp.so
769 %endif
770
771 %if %{with sql}
772 %files module-afsql
773 %defattr(644,root,root,755)
774 %attr(755,root,root) %{moduledir}/libafsql.so
775 %endif
776
777 %if %{with http}
778 %files module-http
779 %defattr(644,root,root,755)
780 %attr(755,root,root) %{moduledir}/libhttp.so
781 %{_datadir}/syslog-ng/include/scl/telegram
782 %endif
783
784 %files module-cloudauth
785 %defattr(644,root,root,755)
786 %attr(755,root,root) %{moduledir}/libcloud_auth.so
787 %{_datadir}/syslog-ng/include/scl/google
788
789 %files module-grpc
790 %defattr(644,root,root,755)
791 %attr(755,root,root) %{_libdir}/libgrpc-protos.so.*.*.*
792 %ghost %{_libdir}/libgrpc-protos.so.0
793 %{_libdir}/libgrpc-protos.so
794 %attr(755,root,root) %{moduledir}/libbigquery.so
795 %attr(755,root,root) %{moduledir}/libloki.so
796 %attr(755,root,root) %{moduledir}/libotel.so
797
798 %if %{with json}
799 %files module-json-plugin
800 %defattr(644,root,root,755)
801 %attr(755,root,root) %{moduledir}/libjson-plugin.so
802 # all below configs require json-plugin
803 %{_datadir}/syslog-ng/include/scl/cee
804 # R: basicfuncs http json-plugin
805 %{_datadir}/syslog-ng/include/scl/discord
806 %{_datadir}/syslog-ng/include/scl/cim
807 # R: http json-plugin
808 %{_datadir}/syslog-ng/include/scl/elasticsearch
809 %{_datadir}/syslog-ng/include/scl/ewmm
810 %{_datadir}/syslog-ng/include/scl/graylog2
811 %{_datadir}/syslog-ng/include/scl/loggly
812 %{_datadir}/syslog-ng/include/scl/logmatic
813 %{_datadir}/syslog-ng/include/scl/netskope
814 # R: basicfuncs http json-plugin
815 %{_datadir}/syslog-ng/include/scl/slack
816 %endif
817
818 %if %{with kafka}
819 %files module-kafka
820 %defattr(644,root,root,755)
821 %attr(755,root,root) %{moduledir}/libkafka.so
822 %endif
823
824 %if %{with mqtt}
825 %files module-mqtt
826 %defattr(644,root,root,755)
827 %attr(755,root,root) %{moduledir}/libmqtt.so
828 %endif
829
830 %if %{with python}
831 %files module-python
832 %defattr(644,root,root,755)
833 %attr(755,root,root) %{moduledir}/libmod-python.so
834 %{moduledir}/python
835 %endif
836
837 %if %{with redis}
838 %files module-redis
839 %defattr(644,root,root,755)
840 %attr(755,root,root) %{moduledir}/libredis.so
841 %endif
842
843 %if %{with riemann}
844 %files module-riemann
845 %defattr(644,root,root,755)
846 %attr(755,root,root) %{moduledir}/libriemann.so
847 %endif
848
849 %files libs
850 %defattr(644,root,root,755)
851 %attr(755,root,root) %{slibdir}/libevtlog-%{mver}.so.*.*.*
852 %attr(755,root,root) %{slibdir}/libevtlog-%{mver}.so.0
853 %attr(755,root,root) %{slibdir}/libloggen_helper-%{mver}.so.*.*.*
854 %attr(755,root,root) %{slibdir}/libloggen_helper-%{mver}.so.0
855 %attr(755,root,root) %{slibdir}/libloggen_plugin-%{mver}.so.*.*.*
856 %attr(755,root,root) %{slibdir}/libloggen_plugin-%{mver}.so.0
857 %attr(755,root,root) %{slibdir}/libsecret-storage.so.*.*.*
858 %attr(755,root,root) %{slibdir}/libsecret-storage.so.0
859 %attr(755,root,root) %{slibdir}/libsyslog-ng-%{mver}.so.*.*.*
860 %attr(755,root,root) %ghost %{slibdir}/libsyslog-ng-%{mver}.so.0
861 %dir %{_datadir}/syslog-ng
862
863 %files devel
864 %defattr(644,root,root,755)
865 %attr(755,root,root) %{_libdir}/libevtlog.so
866 %attr(755,root,root) %{_libdir}/libloggen_helper.so
867 %attr(755,root,root) %{_libdir}/libloggen_plugin.so
868 %attr(755,root,root) %{_libdir}/libsecret-storage.so
869 %attr(755,root,root) %{_libdir}/libsyslog-ng.so
870 %{_libdir}/libsyslog-ng-native-connector.a
871 %{_includedir}/syslog-ng
872 %exclude %{_includedir}/syslog-ng/libtest
873 %{_datadir}/syslog-ng/tools
874 %{_pkgconfigdir}/syslog-ng.pc
875 %{_pkgconfigdir}/syslog-ng-native-connector.pc
876
877 %if %{with tests}
878 %files test-devel
879 %defattr(644,root,root,755)
880 %if "%{_libdir}/syslog-ng" != "{moduledir}"
881 %dir %{_libdir}/syslog-ng
882 %endif
883 %dir %{_libdir}/syslog-ng/libtest
884 %{_libdir}/syslog-ng/libtest/libsyslog-ng-test.a
885 %{_includedir}/syslog-ng/libtest
886 %{_pkgconfigdir}/syslog-ng-test.pc
887 %endif