Name: zabbix Version: 6.0.12 Release: 1%{?dist} Epoch: 1 Summary: The Enterprise-class open source monitoring solution Group: Applications/Internet License: GPLv2+ URL: http://www.zabbix.com/ Source0: https://cdn.zabbix.com/zabbix/sources/stable/6.0/zabbix-%{version}.tar.gz Source1: zabbix-logrotate.in Source2: zabbix-agent.service Source3: zabbix-server.service Source4: zabbix-proxy.service Source5: zabbix-tmpfiles.conf Source6: zabbix-agent2.service Source7: zabbix-web-service.service Source8: zabbix_policy.te Patch0: frontend.patch Patch1: config.patch Buildroot: %{_tmppath}/zabbix-%{?epoch:%{epoch}:}%{version}-%{release}-root-%(%{__id_u} -n) %define build_agent2 0 %define build_web_service 0 %{!?zabbix_script_dir: %global zabbix_script_dir /usr/lib/zabbix} BuildRequires: gcc BuildRequires: glibc-devel BuildRequires: make BuildRequires: mariadb-connector-c-devel BuildRequires: postgresql-devel BuildRequires: net-snmp-devel BuildRequires: openldap-devel BuildRequires: gnutls-devel BuildRequires: sqlite-devel BuildRequires: unixODBC-devel BuildRequires: curl-devel >= 7.13.1 BuildRequires: OpenIPMI-devel >= 2 BuildRequires: libssh2-devel >= 1.0.0 BuildRequires: libxml2-devel BuildRequires: pcre2-devel BuildRequires: libevent-devel BuildRequires: openssl-devel >= 1.0.1 BuildRequires: systemd BuildRequires: selinux-policy-devel BuildRequires: golang >= 1.12 BuildRequires: git %description Zabbix is the ultimate enterprise-level software designed for real-time monitoring of millions of metrics collected from tens of thousands of servers, virtual machines and network devices. %package agent Summary: Zabbix Agent Group: Applications/Internet Requires: logrotate Requires(pre): /usr/sbin/useradd Requires(post): systemd Requires(preun): systemd Requires(preun): systemd %description agent Zabbix agent to be installed on monitored systems. %if 0%{?build_agent2} %package agent2 Summary: New Zabbix Agent Group: Applications/Internet Requires: logrotate Requires(post): systemd Requires(preun): systemd Requires(preun): systemd %description agent2 New implementation of zabbix agent. To be installed on monitored systems. %endif %if 0%{?build_web_service} %package web-service Summary: Zabbix Web Service Group: Applications/Internet Requires: logrotate Requires(post): systemd Requires(preun): systemd Requires(preun): systemd %description web-service Zabbix web servce for performing various tasks using headless web browser. %endif %package get Summary: Zabbix Get Group: Applications/Internet %description get Zabbix get command line utility %package sender Summary: Zabbix Sender Group: Applications/Internet %description sender Zabbix sender command line utility %package js Summary: Zabbix JS Group: Applications/Internet %description js Zabbix js command line utility. %package sql-scripts Summary: Zabbix database sql scripts Group: Applications/Internet BuildArch: noarch %description sql-scripts SQL files needed to setup Zabbix server or proxy databases %package proxy-mysql Summary: Zabbix proxy for MySQL or MariaDB database Group: Applications/Internet Requires: fping Requires(post): systemd Requires(preun): systemd Requires(postun): systemd Provides: zabbix-proxy = %{?epoch:%{epoch}:}%{version}-%{release} Provides: zabbix-proxy-implementation = %{?epoch:%{epoch}:}%{version}-%{release} %description proxy-mysql Zabbix proxy with MySQL or MariaDB database support. %package proxy-pgsql Summary: Zabbix proxy for PostgreSQL database Group: Applications/Internet Requires: fping Requires(post): systemd Requires(preun): systemd Requires(postun): systemd Provides: zabbix-proxy = %{?epoch:%{epoch}:}%{version}-%{release} Provides: zabbix-proxy-implementation = %{?epoch:%{epoch}:}%{version}-%{release} %description proxy-pgsql Zabbix proxy with PostgreSQL database support. %package proxy-sqlite3 Summary: Zabbix proxy for SQLite3 database Group: Applications/Internet Requires: fping Requires(post): systemd Requires(preun): systemd Requires(postun): systemd Provides: zabbix-proxy = %{?epoch:%{epoch}:}%{version}-%{release} Provides: zabbix-proxy-implementation = %{?epoch:%{epoch}:}%{version}-%{release} %description proxy-sqlite3 Zabbix proxy with SQLite3 database support. %package server-mysql Summary: Zabbix server for MySQL or MariaDB database Group: Applications/Internet Requires: fping Requires(post): systemd Requires(preun): systemd Requires(postun): systemd Provides: zabbix-server = %{?epoch:%{epoch}:}%{version}-%{release} Provides: zabbix-server-implementation = %{?epoch:%{epoch}:}%{version}-%{release} %description server-mysql Zabbix server with MySQL or MariaDB database support. %package server-pgsql Summary: Zabbix server for PostgresSQL database Group: Applications/Internet Requires: fping Requires(post): systemd Requires(preun): systemd Requires(postun): systemd Provides: zabbix-server = %{?epoch:%{epoch}:}%{version}-%{release} Provides: zabbix-server-implementation = %{?epoch:%{epoch}:}%{version}-%{release} %description server-pgsql Zabbix server with PostgresSQL database support. %package web Summary: Zabbix web frontend common package Group: Application/Internet BuildArch: noarch Requires: dejavu-sans-fonts Requires(post): %{_sbindir}/update-alternatives Requires(preun): %{_sbindir}/update-alternatives %description web Zabbix web frontend common package %package web-deps Summary: PHP dependencies metapackage for frontend Group: Application/Internet BuildArch: noarch Requires: zabbix-web = %{version}-%{release} Requires: php-gd >= 7.2 Requires: php-bcmath >= 7.2 Requires: php-mbstring >= 7.2 Requires: php-xml >= 7.2 Requires: php-ldap >= 7.2 Requires: php-json >= 7.2 Requires: php-fpm >= 7.2 Requires: zabbix-web = %{version}-%{release} Requires: zabbix-web-database = %{version}-%{release} %description web-deps PHP dependencies metapackage for frontend %package web-mysql Summary: Zabbix web frontend for MySQL Group: Applications/Internet BuildArch: noarch Requires: zabbix-web = %{version}-%{release} Requires: zabbix-web-deps = %{version}-%{release} Requires: php-mysqlnd Provides: zabbix-web-database = %{version}-%{release} %description web-mysql Zabbix web frontend for MySQL %package web-pgsql Summary: Zabbix web frontend for PostgreSQL Group: Applications/Internet BuildArch: noarch Requires: php-pgsql Requires: zabbix-web = %{?epoch:%{epoch}:}%{version}-%{release} Provides: zabbix-web-database = %{?epoch:%{epoch}:}%{version}-%{release} %description web-pgsql Zabbix web frontend for PostgreSQL %package web-japanese Summary: Japanese font settings for frontend Group: Applications/Internet BuildArch: noarch Requires: vlgothic-p-fonts Requires: zabbix-web = %{?epoch:%{epoch}:}%{version}-%{release} Requires(post): %{_sbindir}/update-alternatives Requires(preun): %{_sbindir}/update-alternatives %description web-japanese Japanese font configuration for Zabbix web frontend %package selinux-policy Summary: Zabbix SELinux policy Group: Applications/Internet Requires(post): %{_sbindir}/semodule Requires(preun): %{_sbindir}/semodule %description selinux-policy Zabbix SELinux policy # # prep # %prep %setup0 -q -n %{name}-%{version}%{?alphatag} %patch0 -p1 ## remove font file rm -f ui/assets/fonts/DejaVuSans.ttf # replace font in defines.inc.php sed -i -r "s/(define\(.*_FONT_NAME.*)DejaVuSans/\1graphfont/" \ ui/include/defines.inc.php # remove .htaccess files rm -f ui/app/.htaccess rm -f ui/conf/.htaccess rm -f ui/include/.htaccess rm -f ui/local/.htaccess # remove translation source files and scripts find ui/locale -name '*.po' | xargs rm -f find ui/locale -name '*.sh' | xargs rm -f # traceroute command path for global script sed -i -e 's|/usr/bin/traceroute|/bin/traceroute|' database/mysql/data.sql sed -i -e 's|/usr/bin/traceroute|/bin/traceroute|' database/postgresql/data.sql sed -i -e 's|/usr/bin/traceroute|/bin/traceroute|' database/sqlite3/data.sql # copy sql files for servers cat database/mysql/schema.sql > database/mysql/server.sql cat database/mysql/images.sql >> database/mysql/server.sql cat database/mysql/data.sql >> database/mysql/server.sql gzip database/mysql/server.sql cat database/postgresql/schema.sql > database/postgresql/server.sql cat database/postgresql/images.sql >> database/postgresql/server.sql cat database/postgresql/data.sql >> database/postgresql/server.sql gzip database/postgresql/server.sql # sql files for proxies mv database/mysql/schema.sql database/mysql/proxy.sql mv database/postgresql/schema.sql database/postgresql/proxy.sql mv database/sqlite3/schema.sql database/sqlite3/proxy.sql # update config files %patch1 -p1 %build # Build consists of 1-3 configure/make passes, one for each database. # pass 1: is sqlite proxy, may be omitted. # pass 2: is pqsql server/proxy, may be omitted. # pass 3: If only one database is enabled, then it must occur with pass 3. build_conf_common=" --enable-dependency-tracking --sysconfdir=/etc/zabbix --libdir=%{_libdir}/zabbix --enable-ipv6 --with-net-snmp --with-ldap --with-libcurl --with-openipmi --with-unixodbc --with-ssh2 --with-libxml2 --with-libevent --with-libpcre2 --with-openssl " # setup pass 3 build_conf_3=" --enable-server --enable-proxy --with-mysql " build_db_3=mysql # setup pass 2 build_conf_2=" --enable-server --enable-proxy --with-postgresql " if [ -z "$build_conf_3" ]; then build_conf_3="$build_conf_2" build_conf_2="" build_db_3="pgsql" fi # setup pass 1 build_conf_1=" --enable-proxy --with-sqlite3 " if [ -z "$build_conf_3" ]; then build_conf_3="$build_conf_1" build_conf_1="" build_db_3=sqlite3 fi # add agents, web-service to pass 3 build_conf_3=" --enable-agent %if 0%{?build_agent2} --enable-agent2 %endif %if 0%{?build_web_service} --enable-webservice %endif $build_conf_3 " make_flags="EXTERNAL_SCRIPTS_PATH=/usr/lib/zabbix/externalscripts" make_flags="$make_flags ALERT_SCRIPTS_PATH=/usr/lib/zabbix/alertscripts" # pass 1 if [ -n "$build_conf_1" ]; then %configure $build_conf_common $build_conf_1 make $make_flags mv src/zabbix_proxy/zabbix_proxy src/zabbix_proxy/zabbix_proxy_sqlite3 fi # pass 2 if [ -n "$build_conf_2" ]; then %configure $build_conf_common $build_conf_2 make $make_flags mv src/zabbix_server/zabbix_server src/zabbix_server/zabbix_server_pgsql mv src/zabbix_proxy/zabbix_proxy src/zabbix_proxy/zabbix_proxy_pgsql fi # pass 3 if [ -n "$build_conf_3" ]; then %configure $build_conf_common $build_conf_3 make $make_flags mv src/zabbix_server/zabbix_server "src/zabbix_server/zabbix_server_$build_db_3" mv src/zabbix_proxy/zabbix_proxy "src/zabbix_proxy/zabbix_proxy_$build_db_3" fi # build selinux policy cp %{SOURCE8} . make -f /usr/share/selinux/devel/Makefile zabbix_policy.pp # # install # %install rm -rf $RPM_BUILD_ROOT mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/log/zabbix mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/run/zabbix mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/zabbix mkdir -p $RPM_BUILD_ROOT%{_datadir} mkdir -p $RPM_BUILD_ROOT%{_datadir}/man/man8 mkdir -p $RPM_BUILD_ROOT%{_datadir}/zabbix mkdir -p $RPM_BUILD_ROOT%{_sbindir} %if 0%{?build_agent2} || 0%{?build_web_service} make DESTDIR=$RPM_BUILD_ROOT GOBIN=$RPM_BUILD_ROOT%{_sbindir} install %else make DESTDIR=$RPM_BUILD_ROOT install %endif # build agent mv $RPM_BUILD_ROOT%{_sysconfdir}/zabbix/zabbix_agentd.conf.d $RPM_BUILD_ROOT%{_sysconfdir}/zabbix/zabbix_agentd.d install -dm 755 $RPM_BUILD_ROOT%{_docdir}/zabbix-agent-%{version} cat %{SOURCE1} | sed \ -e 's|COMPONENT|agentd|g' \ > $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/zabbix-agent install -Dm 0644 -p %{SOURCE2} $RPM_BUILD_ROOT%{_unitdir}/zabbix-agent.service install -Dm 0644 -p %{SOURCE5} $RPM_BUILD_ROOT%{_tmpfilesdir}/zabbix-agent.conf %if 0%{?build_agent2} cat %{SOURCE1} | sed \ -e 's|COMPONENT|agent2|g' \ > $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/zabbix-agent2 cp man/zabbix_agent2.man $RPM_BUILD_ROOT%{_mandir}/man8/zabbix_agent2.8 install -Dm 0644 -p %{SOURCE19} $RPM_BUILD_ROOT%{_unitdir}/zabbix-agent2.service install -Dm 0644 -p %{SOURCE15} $RPM_BUILD_ROOT%{_tmpfilesdir}/zabbix_agent2.conf %endif %if 0%{?build_web_service} cat %{SOURCE1} | sed \ -e 's|COMPONENT|web-service|g' \ > $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/zabbix-web-service cp man/zabbix_web_service.man $RPM_BUILD_ROOT%{_mandir}/man8/zabbix_web_service.8 install -Dm 0644 -p %{SOURCE23} $RPM_BUILD_ROOT%{_unitdir}/zabbix-web-service.service install -Dm 0644 -p %{SOURCE15} $RPM_BUILD_ROOT%{_tmpfilesdir}/zabbix_web_service.conf %endif # build server / proxy mkdir -p $RPM_BUILD_ROOT%{zabbix_script_dir} mv $RPM_BUILD_ROOT%{_datadir}/zabbix/externalscripts $RPM_BUILD_ROOT%{zabbix_script_dir} # # install sql files # mkdir -p $RPM_BUILD_ROOT%{_docdir}/zabbix-sql-scripts/mysql cp database/mysql/proxy.sql $RPM_BUILD_ROOT%{_docdir}/zabbix-sql-scripts/mysql cp database/mysql/server.sql.gz $RPM_BUILD_ROOT%{_docdir}/zabbix-sql-scripts/mysql cp database/mysql/double.sql $RPM_BUILD_ROOT%{_docdir}/zabbix-sql-scripts/mysql cp database/mysql/history_pk_prepare.sql $RPM_BUILD_ROOT%{_docdir}/zabbix-sql-scripts/mysql mkdir -p $RPM_BUILD_ROOT%{_docdir}/zabbix-sql-scripts/postgresql cp database/postgresql/proxy.sql $RPM_BUILD_ROOT%{_docdir}/zabbix-sql-scripts/postgresql cp database/postgresql/server.sql.gz $RPM_BUILD_ROOT%{_docdir}/zabbix-sql-scripts/postgresql cp database/postgresql/timescaledb.sql $RPM_BUILD_ROOT%{_docdir}/zabbix-sql-scripts/postgresql cp database/postgresql/double.sql $RPM_BUILD_ROOT%{_docdir}/zabbix-sql-scripts/postgresql cp database/postgresql/history_pk_prepare.sql $RPM_BUILD_ROOT%{_docdir}/zabbix-sql-scripts/postgresql # proxy / sqlite3 mkdir -p $RPM_BUILD_ROOT%{_docdir}/zabbix-sql-scripts/sqlite3 cp database/sqlite3/proxy.sql $RPM_BUILD_ROOT%{_docdir}/zabbix-sql-scripts/sqlite3 # build proxy mv $RPM_BUILD_ROOT%{_sysconfdir}/zabbix/zabbix_proxy.conf.d $RPM_BUILD_ROOT%{_sysconfdir}/zabbix/zabbix_proxy.d install -m 0755 -p src/zabbix_proxy/zabbix_proxy_* $RPM_BUILD_ROOT%{_sbindir}/ rm $RPM_BUILD_ROOT%{_sbindir}/zabbix_proxy cat %{SOURCE1} | sed \ -e 's|COMPONENT|proxy|g' \ > $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/zabbix-proxy install -Dm 0644 -p %{SOURCE4} $RPM_BUILD_ROOT%{_unitdir}/zabbix-proxy.service install -Dm 0644 -p %{SOURCE5} $RPM_BUILD_ROOT%{_tmpfilesdir}/zabbix-proxy.conf # build server mv $RPM_BUILD_ROOT%{_sysconfdir}/zabbix/zabbix_server.conf.d $RPM_BUILD_ROOT%{_sysconfdir}/zabbix/zabbix_server.d install -m 0755 -p src/zabbix_server/zabbix_server_* $RPM_BUILD_ROOT%{_sbindir}/ rm $RPM_BUILD_ROOT%{_sbindir}/zabbix_server mv $RPM_BUILD_ROOT%{_datadir}/zabbix/alertscripts $RPM_BUILD_ROOT%{zabbix_script_dir} cat %{SOURCE1} | sed \ -e 's|COMPONENT|server|g' \ > $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/zabbix-server install -Dm 0644 -p %{SOURCE3} $RPM_BUILD_ROOT%{_unitdir}/zabbix-server.service install -Dm 0644 -p %{SOURCE5} $RPM_BUILD_ROOT%{_tmpfilesdir}/zabbix-server.conf # frontend find ui -name '*.orig' | xargs rm -f cp -a ui/* $RPM_BUILD_ROOT%{_datadir}/zabbix mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/zabbix/web touch $RPM_BUILD_ROOT%{_sysconfdir}/zabbix/web/zabbix.conf.php mv $RPM_BUILD_ROOT%{_datadir}/zabbix/conf/maintenance.inc.php $RPM_BUILD_ROOT%{_sysconfdir}/zabbix/web/ # selinux mkdir -p $RPM_BUILD_ROOT%{_datadir}/selinux/packages/zabbix mv zabbix_policy.pp $RPM_BUILD_ROOT%{_datadir}/selinux/packages/zabbix %clean rm -rf $RPM_BUILD_ROOT # # files & scriptlets # %files agent %defattr(-,root,root,-) %doc AUTHORS ChangeLog COPYING NEWS README conf/zabbix_agentd/userparameter_mysql.conf %config(noreplace) %{_sysconfdir}/zabbix/zabbix_agentd.conf %config(noreplace) %{_sysconfdir}/logrotate.d/zabbix-agent %dir %{_sysconfdir}/zabbix/zabbix_agentd.d %attr(0755,zabbix,zabbix) %dir %{_localstatedir}/log/zabbix %attr(0755,zabbix,zabbix) %dir %{_localstatedir}/run/zabbix %{_sbindir}/zabbix_agentd %{_mandir}/man8/zabbix_agentd.8* %{_unitdir}/zabbix-agent.service %{_tmpfilesdir}/zabbix-agent.conf %files get %defattr(-,root,root,-) %doc AUTHORS ChangeLog COPYING NEWS README %{_bindir}/zabbix_get %{_mandir}/man1/zabbix_get.1* %files sender %defattr(-,root,root,-) %doc AUTHORS ChangeLog COPYING NEWS README %{_bindir}/zabbix_sender %{_mandir}/man1/zabbix_sender.1* %pre agent getent group zabbix > /dev/null || groupadd -r zabbix getent passwd zabbix > /dev/null || \ useradd -r -g zabbix -d %{_localstatedir}/lib/zabbix -s /sbin/nologin \ -c "Zabbix Monitoring System" zabbix : %post agent %systemd_post zabbix-agent.service %preun agent if [ "$1" = 0 ]; then %systemd_preun zabbix-agent.service fi : %postun agent %systemd_postun_with_restart zabbix-agent.service %posttrans agent # preserve old userparameter_mysql.conf file during upgrade if [ -f %{_sysconfdir}/zabbix/zabbix_agentd.d/userparameter_mysql.conf.rpmsave ] && [ ! -f %{_sysconfdir}/zabbix/zabbix_agentd.d/userparameter_mysql.conf ]; then cp -vn %{_sysconfdir}/zabbix/zabbix_agentd.d/userparameter_mysql.conf.rpmsave %{_sysconfdir}/zabbix/zabbix_agentd.d/userparameter_mysql.conf fi : # Agent 2 %if 0%{?build_agent2} %files agent2 %defattr(-,root,root,-) %doc AUTHORS ChangeLog COPYING NEWS README %config(noreplace) %{_sysconfdir}/zabbix/zabbix_agent2.conf %dir %{_sysconfdir}/zabbix/zabbix_agent2.d %config(noreplace) %{_sysconfdir}/zabbix/zabbix_agent2.d/plugins.d/ceph.conf %config(noreplace) %{_sysconfdir}/zabbix/zabbix_agent2.d/plugins.d/docker.conf %config(noreplace) %{_sysconfdir}/zabbix/zabbix_agent2.d/plugins.d/memcached.conf %config(noreplace) %{_sysconfdir}/zabbix/zabbix_agent2.d/plugins.d/mongodb.conf %config(noreplace) %{_sysconfdir}/zabbix/zabbix_agent2.d/plugins.d/mysql.conf %config(noreplace) %{_sysconfdir}/zabbix/zabbix_agent2.d/plugins.d/oracle.conf %config(noreplace) %{_sysconfdir}/zabbix/zabbix_agent2.d/plugins.d/postgres.conf %config(noreplace) %{_sysconfdir}/zabbix/zabbix_agent2.d/plugins.d/redis.conf %config(noreplace) %{_sysconfdir}/zabbix/zabbix_agent2.d/plugins.d/smart.conf %config(noreplace) %{_sysconfdir}/zabbix/zabbix_agent2.d/plugins.d/modbus.conf %config(noreplace) %{_sysconfdir}/zabbix/zabbix_agent2.d/plugins.d/mqtt.conf %config(noreplace) %{_sysconfdir}/logrotate.d/zabbix-agent2 %attr(0755,zabbix,zabbix) %dir %{_localstatedir}/log/zabbix %attr(0755,zabbix,zabbix) %dir %{_localstatedir}/run/zabbix %{_sbindir}/zabbix_agent2 %{_mandir}/man8/zabbix_agent2.8* %{_unitdir}/zabbix-agent2.service %{_tmpfilesdir}/zabbix_agent2.conf %pre agent2 getent group zabbix > /dev/null || groupadd -r zabbix getent passwd zabbix > /dev/null || \ useradd -r -g zabbix -d %{_localstatedir}/lib/zabbix -s /sbin/nologin \ -c "Zabbix Monitoring System" zabbix : %post agent2 %systemd_post zabbix-agent2.service # make sure that agent2 log file is create with proper attributes (ZBX-18243) if [ $1 == 1 ] && [ ! -f %{_localstatedir}/log/zabbix/zabbix_agent2.log ]; then touch %{_localstatedir}/log/zabbix/zabbix_agent2.log chown zabbix:zabbix %{_localstatedir}/log/zabbix/zabbix_agent2.log fi : %preun agent2 %systemd_preun zabbix-agent2.service : %postun agent2 %systemd_postun_with_restart zabbix-agent2.service %endif %if 0%{?build_web_service} %files web-service %defattr(-,root,root,-) %doc AUTHORS ChangeLog COPYING NEWS README %{_sbindir}/zabbix_web_service %config(noreplace) %{_sysconfdir}/zabbix/zabbix_web_service.conf %config(noreplace) %{_sysconfdir}/logrotate.d/zabbix-web-service %attr(0755,zabbix,zabbix) %dir %{_localstatedir}/log/zabbix %attr(0755,zabbix,zabbix) %dir %{_localstatedir}/run/zabbix %{_unitdir}/zabbix-web-service.service %{_tmpfilesdir}/zabbix_web_service.conf %{_mandir}/man8/zabbix_web_service.8* %pre web-service getent group zabbix > /dev/null || groupadd -r zabbix getent passwd zabbix > /dev/null || \ useradd -r -g zabbix -d %{_localstatedir}/lib/zabbix -s /sbin/nologin \ -c "Zabbix Monitoring System" zabbix : %post web-service %systemd_post zabbix-web-service.service : %preun web-service %systemd_preun zabbix-web-service.service : %postun web-service %systemd_postun_with_restart zabbix-web-service.service %endif %files js %defattr(-,root,root,-) %doc AUTHORS ChangeLog COPYING NEWS README %{_bindir}/zabbix_js %files sql-scripts %defattr(-,root,root,-) %doc AUTHORS ChangeLog COPYING NEWS README %{_docdir}/zabbix-sql-scripts/mysql/server.sql.gz %{_docdir}/zabbix-sql-scripts/mysql/double.sql %{_docdir}/zabbix-sql-scripts/mysql/history_pk_prepare.sql %{_docdir}/zabbix-sql-scripts/postgresql/server.sql.gz %{_docdir}/zabbix-sql-scripts/postgresql/timescaledb.sql %{_docdir}/zabbix-sql-scripts/postgresql/double.sql %{_docdir}/zabbix-sql-scripts/postgresql/history_pk_prepare.sql %{_docdir}/zabbix-sql-scripts/mysql/proxy.sql %{_docdir}/zabbix-sql-scripts/postgresql/proxy.sql %{_docdir}/zabbix-sql-scripts/sqlite3/proxy.sql %files proxy-mysql %defattr(-,root,root,-) %doc AUTHORS ChangeLog COPYING NEWS README %attr(0600,root,zabbix) %config(noreplace) %{_sysconfdir}/zabbix/zabbix_proxy.conf %dir %{zabbix_script_dir}/externalscripts %config(noreplace) %{_sysconfdir}/logrotate.d/zabbix-proxy %attr(0755,zabbix,zabbix) %dir %{_localstatedir}/log/zabbix %attr(0755,zabbix,zabbix) %dir %{_localstatedir}/run/zabbix %{_mandir}/man8/zabbix_proxy.8* %{_unitdir}/zabbix-proxy.service %{_tmpfilesdir}/zabbix-proxy.conf %{_sbindir}/zabbix_proxy_mysql %pre proxy-mysql getent group zabbix > /dev/null || groupadd -r zabbix getent passwd zabbix > /dev/null || \ useradd -r -g zabbix -d %{_localstatedir}/lib/zabbix -s /sbin/nologin \ -c "Zabbix Monitoring System" zabbix : %post proxy-mysql %systemd_post zabbix-proxy.service /usr/sbin/update-alternatives --install %{_sbindir}/zabbix_proxy \ zabbix-proxy %{_sbindir}/zabbix_proxy_mysql 10 : %preun proxy-mysql if [ "$1" = 0 ]; then %systemd_preun zabbix-proxy.service /usr/sbin/update-alternatives --remove zabbix-proxy \ %{_sbindir}/zabbix_proxy_mysql fi : %postun proxy-mysql %systemd_postun_with_restart zabbix-proxy.service : %files proxy-pgsql %defattr(-,root,root,-) %doc AUTHORS ChangeLog COPYING NEWS README %attr(0600,root,zabbix) %config(noreplace) %{_sysconfdir}/zabbix/zabbix_proxy.conf %dir %{zabbix_script_dir}/externalscripts %config(noreplace) %{_sysconfdir}/logrotate.d/zabbix-proxy %attr(0755,zabbix,zabbix) %dir %{_localstatedir}/log/zabbix %attr(0755,zabbix,zabbix) %dir %{_localstatedir}/run/zabbix %{_mandir}/man8/zabbix_proxy.8* %{_unitdir}/zabbix-proxy.service %{_tmpfilesdir}/zabbix-proxy.conf %{_sbindir}/zabbix_proxy_pgsql %pre proxy-pgsql getent group zabbix > /dev/null || groupadd -r zabbix getent passwd zabbix > /dev/null || \ useradd -r -g zabbix -d %{_localstatedir}/lib/zabbix -s /sbin/nologin \ -c "Zabbix Monitoring System" zabbix : %post proxy-pgsql %systemd_post zabbix-proxy.service /usr/sbin/update-alternatives --install %{_sbindir}/zabbix_proxy \ zabbix-proxy %{_sbindir}/zabbix_proxy_pgsql 10 : %preun proxy-pgsql if [ "$1" = 0 ]; then %systemd_preun zabbix-proxy.service /usr/sbin/update-alternatives --remove zabbix-proxy \ %{_sbindir}/zabbix_proxy_pgsql fi : %postun proxy-pgsql %systemd_postun_with_restart zabbix-proxy.service : %files proxy-sqlite3 %defattr(-,root,root,-) %doc AUTHORS ChangeLog COPYING NEWS README %attr(0640,root,zabbix) %config(noreplace) %{_sysconfdir}/zabbix/zabbix_proxy.conf %dir %{zabbix_script_dir}/externalscripts %config(noreplace) %{_sysconfdir}/logrotate.d/zabbix-proxy %attr(0755,zabbix,zabbix) %dir %{_localstatedir}/log/zabbix %attr(0755,zabbix,zabbix) %dir %{_localstatedir}/run/zabbix %{_mandir}/man8/zabbix_proxy.8* %{_unitdir}/zabbix-proxy.service %{_tmpfilesdir}/zabbix-proxy.conf %{_sbindir}/zabbix_proxy_sqlite3 %pre proxy-sqlite3 getent group zabbix > /dev/null || groupadd -r zabbix getent passwd zabbix > /dev/null || \ useradd -r -g zabbix -d %{_localstatedir}/lib/zabbix -s /sbin/nologin \ -c "Zabbix Monitoring System" zabbix : %post proxy-sqlite3 %systemd_post zabbix-proxy.service /usr/sbin/update-alternatives --install %{_sbindir}/zabbix_proxy \ zabbix-proxy %{_sbindir}/zabbix_proxy_sqlite3 10 : %preun proxy-sqlite3 if [ "$1" = 0 ]; then %systemd_preun zabbix-proxy.service /usr/sbin/update-alternatives --remove zabbix-proxy \ %{_sbindir}/zabbix_proxy_sqlite3 fi : %postun proxy-sqlite3 %systemd_postun_with_restart zabbix-proxy.service : %files server-mysql %defattr(-,root,root,-) %doc AUTHORS ChangeLog COPYING NEWS README %attr(0600,root,zabbix) %config(noreplace) %{_sysconfdir}/zabbix/zabbix_server.conf %dir %{zabbix_script_dir}/alertscripts %dir %{zabbix_script_dir}/externalscripts %config(noreplace) %{_sysconfdir}/logrotate.d/zabbix-server %attr(0755,zabbix,zabbix) %dir %{_localstatedir}/log/zabbix %attr(0755,zabbix,zabbix) %dir %{_localstatedir}/run/zabbix %{_mandir}/man8/zabbix_server.8* %{_unitdir}/zabbix-server.service %{_tmpfilesdir}/zabbix-server.conf %{_sbindir}/zabbix_server_mysql %pre server-mysql getent group zabbix > /dev/null || groupadd -r zabbix getent passwd zabbix > /dev/null || \ useradd -r -g zabbix -d %{_localstatedir}/lib/zabbix -s /sbin/nologin \ -c "Zabbix Monitoring System" zabbix : %post server-mysql %systemd_post zabbix-server.service /usr/sbin/update-alternatives --install %{_sbindir}/zabbix_server \ zabbix-server %{_sbindir}/zabbix_server_mysql 10 : %preun server-mysql if [ "$1" = 0 ]; then %systemd_preun zabbix-server.service /usr/sbin/update-alternatives --remove zabbix-server \ %{_sbindir}/zabbix_server_mysql fi : %postun server-mysql %systemd_postun_with_restart zabbix-server.service : %files server-pgsql %defattr(-,root,root,-) %doc AUTHORS ChangeLog COPYING NEWS README %attr(0600,root,zabbix) %config(noreplace) %{_sysconfdir}/zabbix/zabbix_server.conf %dir %{zabbix_script_dir}/alertscripts %dir %{zabbix_script_dir}/externalscripts %config(noreplace) %{_sysconfdir}/logrotate.d/zabbix-server %attr(0755,zabbix,zabbix) %dir %{_localstatedir}/log/zabbix %attr(0755,zabbix,zabbix) %dir %{_localstatedir}/run/zabbix %{_mandir}/man8/zabbix_server.8* %{_unitdir}/zabbix-server.service %{_tmpfilesdir}/zabbix-server.conf %{_sbindir}/zabbix_server_pgsql %pre server-pgsql getent group zabbix > /dev/null || groupadd -r zabbix getent passwd zabbix > /dev/null || \ useradd -r -g zabbix -d %{_localstatedir}/lib/zabbix -s /sbin/nologin \ -c "Zabbix Monitoring System" zabbix : %post server-pgsql %systemd_post zabbix-server.service /usr/sbin/update-alternatives --install %{_sbindir}/zabbix_server \ zabbix-server %{_sbindir}/zabbix_server_pgsql 10 : %preun server-pgsql if [ "$1" = 0 ]; then %systemd_preun zabbix-server.service /usr/sbin/update-alternatives --remove zabbix-server \ %{_sbindir}/zabbix_server_pgsql fi : %postun server-pgsql %systemd_postun_with_restart zabbix-server.service : %files web %defattr(-,root,root,-) %dir %{_sysconfdir}/zabbix/web %ghost %config(noreplace) %{_sysconfdir}/zabbix/web/zabbix.conf.php %doc AUTHORS ChangeLog COPYING NEWS README %config(noreplace) %{_sysconfdir}/zabbix/web/maintenance.inc.php %{_datadir}/zabbix %files web-japanese %defattr(-,root,root,-) %files web-mysql %defattr(-,root,root,-) %files web-pgsql %defattr(-,root,root,-) %post web # The fonts directory was moved into assets subdirectory at one point. # # This broke invocation of update-alternatives command below, because the target link for zabbix-web-font changed # from zabbix/fonts/graphfont.ttf to zabbix/assets/fonts/graphfont.ttf # # We handle this movement by deleting /var/lib/alternatives/zabbix-web-font file if it contains the old target link. # We also remove symlink at zabbix/fonts/graphfont.ttf to have the old fonts directory be deleted during update. if [ -f /var/lib/alternatives/zabbix-web-font ] && \ [ -z "$(grep %{_datadir}/zabbix/assets/fonts/graphfont.ttf /var/lib/alternatives/zabbix-web-font)" ] then rm /var/lib/alternatives/zabbix-web-font if [ -h %{_datadir}/zabbix/fonts/graphfont.ttf ]; then rm %{_datadir}/zabbix/fonts/graphfont.ttf fi fi /usr/sbin/update-alternatives --install %{_datadir}/zabbix/assets/fonts/graphfont.ttf \ zabbix-web-font %{_datadir}/fonts/dejavu/DejaVuSans.ttf 10 : %post web-japanese /usr/sbin/update-alternatives --install %{_datadir}/zabbix/assets/fonts/graphfont.ttf zabbix-web-font \ %{_datadir}/fonts/google-noto-cjk/NotoSansCJK-Regular.ttc 20 : %preun web if [ "$1" = 0 ]; then /usr/sbin/update-alternatives --remove zabbix-web-font \ %{_datadir}/fonts/dejavu/DejaVuSans.ttf fi : %preun web-japanese if [ "$1" = 0 ]; then /usr/sbin/update-alternatives --remove zabbix-web-font \ %{_datadir}/fonts/google-noto-cjk/NotoSansCJK-Regular.ttc fi : %files selinux-policy %defattr(-,root,root,-) %doc AUTHORS ChangeLog COPYING NEWS README %{_datadir}/selinux/packages/zabbix/zabbix_policy.pp %post selinux-policy semodule -i %{_datadir}/selinux/packages/zabbix/zabbix_policy.pp : %postun selinux-policy semodule -r zabbix_policy : # # changelog # %changelog