Name: zabbix Version: 7.0.2 Release: %{?alphatag:%{?alphatag}.}release1%{?dist} 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/development/6.3/%{name}-%{version}%{?alphatag}.tar.gz Source1: zabbix-web22.conf Source2: zabbix-web24.conf Source3: zabbix-logrotate.in Source4: zabbix-java-gateway.init Source5: zabbix-agent.init Source6: zabbix-server.init Source7: zabbix-proxy.init Source10: zabbix-agent.service Source11: zabbix-server.service Source12: zabbix-proxy.service Source13: zabbix-java-gateway.service Source15: zabbix-tmpfiles.conf Source16: zabbix-php-fpm.conf Source17: zabbix-web-fcgi.conf Source18: zabbix-nginx.conf Source19: zabbix-agent2.service Source20: zabbix-agent.sysconfig Source21: zabbix-agent2.init Source22: zabbix-agent2.sysconfig Source23: zabbix-web-service.service Source24: zabbix_policy.te Patch0: frontend.patch Patch1: fping3-sourceip-option.patch Patch2: java-gateway.patch Patch5: rhel6-go11.6.patch Patch9: agent2.conf.socket.patch Buildroot: %{_tmppath}/zabbix-%{version}-%{release}-root-%(%{__id_u} -n) %{!?build_agent: %global build_agent 1} %ifarch x86_64 %if 0%{?rhel} >= 6 %{!?build_agent2: %global build_agent2 1} %endif %if 0%{?rhel} >= 8 %{!?build_web_service: %global build_web_service 1} %endif %endif %if 0%{?rhel} >= 7 %{!?build_proxy: %global build_proxy 1} %{!?build_java_gateway: %global build_java_gateway 1} %endif %if 0%{?rhel} >= 8 %{!?build_server: %global build_server 1} %{!?build_frontend: %global build_frontend 1} %endif %{!?build_with_mysql: %global build_with_mysql 1} %{!?build_with_pgsql: %global build_with_pgsql 1} %{!?build_with_sqlite: %global build_with_sqlite 1} %{!?zabbix_script_dir: %global zabbix_script_dir /usr/lib/zabbix} %if 0%{build_with_mysql} == 0 && 0%{build_with_pgsql} == 0 %global build_server 0 %if 0%{build_with_sqlite} == 0 %global build_proxy 0 %endif %endif %if 0%{?rhel} >= 7 %{!?build_selinux_policy: %global build_selinux_policy 1} %endif # FIXME: Building debuginfo is broken on RHEL 5 & 8. Disabled for now. %if 0%{?rhel} <= 5 || 0%{?rhel} >= 8 %define debug_package %{nil} %endif # Enable hardening %if 0%{?rhel} >= 8 %global _hardened_build 1 %endif BuildRequires: make %if 0%{?rhel} >= 8 BuildRequires: mariadb-connector-c-devel BuildRequires: postgresql-server-devel >= 13.0 BuildRequires: sqlite-devel BuildRequires: net-snmp-devel BuildRequires: openldap-devel BuildRequires: gnutls-devel BuildRequires: unixODBC-devel BuildRequires: curl-devel >= 7.13.1 BuildRequires: OpenIPMI-devel >= 2 BuildRequires: libssh-devel >= 0.9.0 BuildRequires: java-devel >= 1.6.0 BuildRequires: libxml2-devel BuildRequires: libevent-devel %endif %if 0%{?rhel} >= 7 BuildRequires: pcre2-devel %else BuildRequires: pcre-devel %endif %if 0%{?rhel} >= 6 BuildRequires: openssl-devel >= 1.0.1 %endif %if 0%{?rhel} >= 7 BuildRequires: systemd %endif %if 0%{?build_selinux_policy} BuildRequires: policycoreutils-devel %endif %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. %if 0%{?build_agent} %package agent Summary: Zabbix agent Group: Applications/Internet Requires: logrotate Requires(pre): /usr/sbin/useradd %if 0%{?rhel} >= 7 Requires(post): systemd Requires(preun): systemd Requires(preun): systemd %else Requires(post): /sbin/chkconfig Requires(preun): /sbin/chkconfig Requires(preun): /sbin/service Requires(postun): /sbin/service %endif %endif %if 0%{?build_agent2} != 1 %if 0%{?build_agent} %description agent Zabbix agent to be installed on monitored systems. %endif %else %if 0%{?build_agent} %description agent Old implementation of zabbix agent. To be installed on monitored systems. %endif %package agent2 Summary: Zabbix agent 2 Group: Applications/Internet Requires: logrotate %if 0%{?rhel} >= 7 Requires(post): systemd Requires(preun): systemd Requires(preun): systemd %else Requires(post): /sbin/chkconfig Requires(preun): /sbin/chkconfig Requires(preun): /sbin/service Requires(postun): /sbin/service %endif %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 %if 0%{?build_agent} %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. %endif %if 0%{?build_server} || 0%{?build_proxy} %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 %endif %if 0%{?build_proxy} %package proxy-mysql Summary: Zabbix proxy for MySQL or MariaDB database Group: Applications/Internet Requires: fping Requires: logrotate Requires(post): systemd Requires(preun): systemd Requires(postun): systemd Provides: zabbix-proxy = %{version}-%{release} Provides: zabbix-proxy-implementation = %{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: logrotate Requires(post): systemd Requires(preun): systemd Requires(postun): systemd Provides: zabbix-proxy = %{version}-%{release} Provides: zabbix-proxy-implementation = %{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: logrotate Requires(post): systemd Requires(preun): systemd Requires(postun): systemd Provides: zabbix-proxy = %{version}-%{release} Provides: zabbix-proxy-implementation = %{version}-%{release} %description proxy-sqlite3 Zabbix proxy with SQLite3 database support. %endif %if 0%{?build_server} %package server-mysql Summary: Zabbix server for MySQL or MariaDB database Group: Applications/Internet Requires: fping Requires: logrotate Requires(post): systemd Requires(preun): systemd Requires(postun): systemd Provides: zabbix-server = %{version}-%{release} Provides: zabbix-server-implementation = %{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: logrotate Requires(post): systemd Requires(preun): systemd Requires(postun): systemd Provides: zabbix-server = %{version}-%{release} Provides: zabbix-server-implementation = %{version}-%{release} %description server-pgsql Zabbix server with PostgresSQL database support. %endif %if 0%{?build_frontend} %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 Zabbix 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: zabbix-web = %{version}-%{release} Requires: zabbix-web-deps = %{version}-%{release} Requires: php-pgsql Provides: zabbix-web-database = %{version}-%{release} %description web-pgsql Zabbix web frontend for PostgreSQL %package apache-conf Summary: Automatic zabbix frontend configuration with apache Group: Applications/Internet BuildArch: noarch Requires: zabbix-web-deps = %{version}-%{release} Requires: httpd %description apache-conf Zabbix frontend configuration for apache %package nginx-conf Summary: Zabbix frontend configuration for nginx and php-fpm Group: Applications/Internet BuildArch: noarch Requires: zabbix-web-deps = %{version}-%{release} Requires: nginx %description nginx-conf Zabbix frontend configuration for nginx and php-fpm %package web-japanese Summary: Japanese font settings for Zabbix frontend Group: Applications/Internet BuildArch: noarch Requires: google-noto-sans-cjk-ttc-fonts Requires: glibc-langpack-ja Requires: zabbix-web = %{version}-%{release} Requires(post): %{_sbindir}/update-alternatives Requires(preun): %{_sbindir}/update-alternatives %description web-japanese Japanese font configuration for Zabbix web frontend %endif %if 0%{?build_java_gateway} %package java-gateway Summary: Zabbix java gateway Group: Applications/Internet Requires: java-headless >= 1.6.0 Requires(post): systemd Requires(preun): systemd Requires(postun): systemd %description java-gateway Zabbix java gateway %endif %if 0%{?build_selinux_policy} %package selinux-policy Summary: Zabbix SELinux policy Group: Applications/Internet Requires(post): %{_sbindir}/semodule Requires(preun): %{_sbindir}/semodule %description selinux-policy Zabbix SELinux policy %endif # # prep # %prep %setup0 -q -n %{name}-%{version}%{?alphatag} %if 0%{?build_frontend} %patch -P 0 -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 %endif %if 0%{?build_server} || 0%{?build_proxy} || 0%{?build_agent} || 0%{?build_agent2} %patch -P 1 -p1 %endif %if 0%{?build_server} || 0%{?build_proxy} # 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 %endif %if 0%{?build_server} # 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 %endif %if 0%{?build_proxy} # 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 %endif %if 0%{?build_java_gateway} %patch -P 2 -p1 %endif %if 0%{?build_agent2} %patch -P 9 -p1 %endif %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-openssl --with-ssh --with-libxml2 --with-libevent --with-libpcre2 " # setup pass 3 %if 0%{?build_with_mysql} && ( 0%{?build_server} || 0%{?build_proxy} ) build_conf_3=" %if 0%{?build_server} --enable-server %endif %if 0%{?build_proxy} --enable-proxy %endif --with-mysql " build_db_3=mysql %endif # setup pass 2 %if 0%{?build_with_pgsql} && ( 0%{?build_server} || 0%{?build_proxy} ) build_conf_2=" %if 0%{?build_server} --enable-server %endif %if 0%{?build_proxy} --enable-proxy %endif --with-postgresql " if [ -z "$build_conf_3" ]; then build_conf_3="$build_conf_2" build_conf_2="" build_db_3="pgsql" fi %endif # setup pass 1 %if 0%{?build_with_sqlite} && 0%{?build_proxy} 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 %endif # add agents, web-service and java-gateway to pass 3 build_conf_3=" %if 0%{?build_agent} --enable-agent %endif %if 0%{?build_agent2} --enable-agent2 %endif %if 0%{?build_java_gateway} --enable-java %endif %if 0%{?build_web_service} --enable-webservice %endif $build_conf_3 " %if 0%{?build_server} || 0%{?build_proxy} make_flags="EXTERNAL_SCRIPTS_PATH=/usr/lib/zabbix/externalscripts" %endif %if 0%{?build_server} make_flags="$make_flags ALERT_SCRIPTS_PATH=/usr/lib/zabbix/alertscripts" %endif # 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 %if 0%{?build_server} mv src/zabbix_server/zabbix_server src/zabbix_server/zabbix_server_pgsql %endif %if 0%{?build_proxy} mv src/zabbix_proxy/zabbix_proxy src/zabbix_proxy/zabbix_proxy_pgsql %endif fi # pass 3 if [ -n "$build_conf_3" ]; then %configure $build_conf_common $build_conf_3 make $make_flags %if 0%{?build_server} mv src/zabbix_server/zabbix_server "src/zabbix_server/zabbix_server_$build_db_3" %endif %if 0%{?build_proxy} mv src/zabbix_proxy/zabbix_proxy "src/zabbix_proxy/zabbix_proxy_$build_db_3" %endif fi # build selinux policy %if 0%{?build_selinux_policy} cp %{SOURCE24} . make -f /usr/share/selinux/devel/Makefile zabbix_policy.pp %endif # # 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 %if 0%{?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 %{SOURCE3} | sed \ -e 's|COMPONENT|agentd|g' \ > $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/zabbix-agent install -Dm 0644 -p %{SOURCE10} $RPM_BUILD_ROOT%{_unitdir}/zabbix-agent.service install -Dm 0644 -p %{SOURCE15} $RPM_BUILD_ROOT%{_tmpfilesdir}/zabbix-agent.conf %else %if 0%{?build_agent2} rm $RPM_BUILD_ROOT%{_sbindir}/zabbix_agentd rm $RPM_BUILD_ROOT%{_sysconfdir}/zabbix/zabbix_agentd.conf %endif %endif %if 0%{?build_agent2} cat %{SOURCE3} | 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 %{SOURCE3} | 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 %if 0%{?build_server} || 0%{?build_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 # %if 0%{?build_with_mysql} mkdir -p $RPM_BUILD_ROOT%{_datadir}/zabbix-sql-scripts/mysql %if 0%{?build_proxy} cp database/mysql/proxy.sql $RPM_BUILD_ROOT%{_datadir}/zabbix-sql-scripts/mysql %endif %if 0%{?build_server} cp database/mysql/server.sql.gz $RPM_BUILD_ROOT%{_datadir}/zabbix-sql-scripts/mysql cp database/mysql/option-patches/history_upgrade_prepare.sql $RPM_BUILD_ROOT%{_datadir}/zabbix-sql-scripts/mysql %endif %endif %if 0%{?build_with_pgsql} mkdir -p $RPM_BUILD_ROOT%{_datadir}/zabbix-sql-scripts/postgresql %if 0%{?build_proxy} cp database/postgresql/proxy.sql $RPM_BUILD_ROOT%{_datadir}/zabbix-sql-scripts/postgresql %endif %if 0%{?build_server} cp database/postgresql/server.sql.gz $RPM_BUILD_ROOT%{_datadir}/zabbix-sql-scripts/postgresql cp database/postgresql/timescaledb/schema.sql $RPM_BUILD_ROOT%{_datadir}/zabbix-sql-scripts/postgresql/timescaledb.sql cp database/postgresql/option-patches/history_upgrade_prepare.sql $RPM_BUILD_ROOT%{_datadir}/zabbix-sql-scripts/postgresql %endif cp -R database/postgresql/timescaledb/option-patches/without-compression $RPM_BUILD_ROOT%{_datadir}/zabbix-sql-scripts/postgresql/tsdb_history_pk_upgrade_no_compression cp -R database/postgresql/timescaledb/option-patches/with-compression $RPM_BUILD_ROOT%{_datadir}/zabbix-sql-scripts/postgresql/tsdb_history_pk_upgrade_with_compression rm -f $RPM_BUILD_ROOT%{_datadir}/zabbix-sql-scripts/postgresql/tsdb_history_pk_upgrade_no_compression/Makefile* rm -f $RPM_BUILD_ROOT%{_datadir}/zabbix-sql-scripts/postgresql/tsdb_history_pk_upgrade_with_compression/Makefile* %endif %if 0%{?build_with_sqlite} && 0%{?build_proxy} mkdir -p $RPM_BUILD_ROOT%{_datadir}/zabbix-sql-scripts/sqlite3 cp database/sqlite3/proxy.sql $RPM_BUILD_ROOT%{_datadir}/zabbix-sql-scripts/sqlite3 %endif %endif %if 0%{?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 %{SOURCE3} | sed \ -e 's|COMPONENT|proxy|g' \ > $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/zabbix-proxy install -Dm 0644 -p %{SOURCE12} $RPM_BUILD_ROOT%{_unitdir}/zabbix-proxy.service install -Dm 0644 -p %{SOURCE15} $RPM_BUILD_ROOT%{_tmpfilesdir}/zabbix-proxy.conf %endif %if 0%{?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 %{SOURCE3} | sed \ -e 's|COMPONENT|server|g' \ > $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/zabbix-server install -Dm 0644 -p %{SOURCE11} $RPM_BUILD_ROOT%{_unitdir}/zabbix-server.service install -Dm 0644 -p %{SOURCE15} $RPM_BUILD_ROOT%{_tmpfilesdir}/zabbix-server.conf %endif %if 0%{?build_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/ install -Dm 0644 -p %{SOURCE16} $RPM_BUILD_ROOT%{_sysconfdir}/php-fpm.d/zabbix.conf install -Dm 0644 -p %{SOURCE17} $RPM_BUILD_ROOT%{_sysconfdir}/httpd/conf.d/zabbix.conf install -Dm 0644 -p %{SOURCE18} $RPM_BUILD_ROOT%{_sysconfdir}/nginx/conf.d/zabbix.conf %endif %if 0%{?build_java_gateway} mv $RPM_BUILD_ROOT%{_sbindir}/zabbix_java/startup.sh $RPM_BUILD_ROOT%{_sbindir}/zabbix_java_gateway_startup mv $RPM_BUILD_ROOT%{_sbindir}/zabbix_java/shutdown.sh $RPM_BUILD_ROOT%{_sbindir}/zabbix_java_gateway_shutdown mv $RPM_BUILD_ROOT%{_sbindir}/zabbix_java/settings.sh $RPM_BUILD_ROOT%{_sysconfdir}/zabbix/zabbix_java_gateway.conf mv $RPM_BUILD_ROOT%{_sbindir}/zabbix_java/lib/logback.xml $RPM_BUILD_ROOT%{_sysconfdir}/zabbix/zabbix_java_gateway_logback.xml rm $RPM_BUILD_ROOT%{_sbindir}/zabbix_java/lib/logback-console.xml mv $RPM_BUILD_ROOT%{_sbindir}/zabbix_java $RPM_BUILD_ROOT%{_datadir}/zabbix-java-gateway install -Dm 0644 -p %{SOURCE13} $RPM_BUILD_ROOT%{_unitdir}/zabbix-java-gateway.service install -Dm 0644 -p %{SOURCE15} $RPM_BUILD_ROOT%{_tmpfilesdir}/zabbix-java-gateway.conf %endif %if 0%{?build_selinux_policy} mkdir -p $RPM_BUILD_ROOT%{_datadir}/selinux/packages/zabbix mv zabbix_policy.pp $RPM_BUILD_ROOT%{_datadir}/selinux/packages/zabbix %endif %clean rm -rf $RPM_BUILD_ROOT # # files & scriptlets # %if 0%{?build_agent} %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 %if 0%{?rhel} >= 7 %systemd_post zabbix-agent.service %else /sbin/chkconfig --add zabbix-agent || : %endif %preun agent if [ "$1" = 0 ]; then %if 0%{?rhel} >= 7 %systemd_preun zabbix-agent.service %else /sbin/service zabbix-agent stop >/dev/null 2>&1 /sbin/chkconfig --del zabbix-agent %endif fi : %postun agent %if 0%{?rhel} >= 7 %systemd_postun_with_restart zabbix-agent.service %else if [ $1 -ge 1 ]; then /sbin/service zabbix-agent try-restart >/dev/null 2>&1 || : fi %endif %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 : %endif %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/mysql.conf %config(noreplace) %{_sysconfdir}/zabbix/zabbix_agent2.d/plugins.d/oracle.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 %if 0%{?build_server} || 0%{?build_proxy} %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 %if 0%{?build_server} %{_datadir}/zabbix-sql-scripts/mysql/server.sql.gz %{_datadir}/zabbix-sql-scripts/mysql/history_upgrade_prepare.sql %{_datadir}/zabbix-sql-scripts/postgresql/server.sql.gz %{_datadir}/zabbix-sql-scripts/postgresql/timescaledb.sql %{_datadir}/zabbix-sql-scripts/postgresql/history_upgrade_prepare.sql %{_datadir}/zabbix-sql-scripts/postgresql/tsdb_history_pk_upgrade_no_compression/*.sql %{_datadir}/zabbix-sql-scripts/postgresql/tsdb_history_pk_upgrade_with_compression/*.sql %endif %if 0%{?build_proxy} %{_datadir}/zabbix-sql-scripts/mysql/proxy.sql %{_datadir}/zabbix-sql-scripts/postgresql/proxy.sql %{_datadir}/zabbix-sql-scripts/sqlite3/proxy.sql %endif %endif %if 0%{?build_proxy} %if 0%{?build_with_mysql} %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 : %endif %if 0%{?build_with_pgsql} %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 : %endif %if 0%{?build_with_sqlite} %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 : %endif %endif %if 0%{?build_server} %if 0%{?build_with_mysql} %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 : %endif %if 0%{?build_with_pgsql} %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 : %endif %endif %if 0%{?build_frontend} %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-deps %config(noreplace) %{_sysconfdir}/php-fpm.d/zabbix.conf %files web-japanese %defattr(-,root,root,-) %files web-mysql %defattr(-,root,root,-) %files web-pgsql %defattr(-,root,root,-) %files apache-conf %defattr(-,root,root,-) %config(noreplace) %{_sysconfdir}/httpd/conf.d/zabbix.conf %files nginx-conf %defattr(-,root,root,-) %config(noreplace) %{_sysconfdir}/nginx/conf.d/zabbix.conf %post web %if 0%{?rhel} >= 9 if [ "$1" = 2 ] && update-alternatives --display zabbix-web-font | grep -q %{_datadir}/fonts/dejavu/DejaVuSans.ttf; then # remove borked web font alternative symlink /usr/sbin/update-alternatives --remove zabbix-web-font \ %{_datadir}/fonts/dejavu/DejaVuSans.ttf fi /usr/sbin/update-alternatives --install %{_datadir}/zabbix/assets/fonts/graphfont.ttf \ zabbix-web-font %{_datadir}/fonts/dejavu-sans-fonts/DejaVuSans.ttf 10 : %else # 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 : %endif %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 : # The user apache must be available for these to work. # It is provided by httpd or php-fpm packages. %post apache-conf if [ -d /etc/zabbix/web ]; then chown apache:apache /etc/zabbix/web/ fi : %post nginx-conf if [ -d /etc/zabbix/web ]; then chown apache:apache /etc/zabbix/web/ fi : %preun web %if 0%{?rhel} >= 9 if [ "$1" = 0 ]; then /usr/sbin/update-alternatives --remove zabbix-web-font \ %{_datadir}/fonts/dejavu-sans-fonts/DejaVuSans.ttf fi %else if [ "$1" = 0 ]; then /usr/sbin/update-alternatives --remove zabbix-web-font \ %{_datadir}/fonts/dejavu/DejaVuSans.ttf fi %endif : %preun web-japanese if [ "$1" = 0 ]; then /usr/sbin/update-alternatives --remove zabbix-web-font \ %{_datadir}/fonts/google-noto-cjk/NotoSansCJK-Regular.ttc fi : %endif %if 0%{?build_java_gateway} %files java-gateway %defattr(-,root,root,-) %doc AUTHORS ChangeLog COPYING NEWS README %config(noreplace) %{_sysconfdir}/zabbix/zabbix_java_gateway.conf %attr(0755,zabbix,zabbix) %dir %{_localstatedir}/log/zabbix %attr(0755,zabbix,zabbix) %dir %{_localstatedir}/run/zabbix %{_datadir}/zabbix-java-gateway %{_sbindir}/zabbix_java_gateway_startup %{_sbindir}/zabbix_java_gateway_shutdown %{_unitdir}/zabbix-java-gateway.service %{_tmpfilesdir}/zabbix-java-gateway.conf %config(noreplace) %{_sysconfdir}/zabbix/zabbix_java_gateway_logback.xml %pre java-gateway 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 java-gateway %systemd_post zabbix-java-gateway.service : %preun java-gateway if [ $1 -eq 0 ]; then %systemd_preun zabbix-java-gateway.service fi : %postun java-gateway %systemd_postun_with_restart zabbix-java-gateway.service : %endif %if 0%{?build_selinux_policy} %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 if [ $1 = 0 ] && semodule -l | grep -q zabbix_policy; then semodule -r zabbix_policy; fi : %endif # # changelog # %changelog * Mon Jul 29 2024 Zabbix Packager - Version update to 7.0.2 * Wed Jun 19 2024 Zabbix Packager - Version update to 7.0.0 * Wed Jun 19 2024 Zabbix Packager - Version update to 6.4.16 * Fri May 31 2024 Zabbix Packager - Version update to 6.4.15 * Wed Apr 24 2024 Zabbix Packager - Version update to 6.4.14 * Tue Mar 26 2024 Zabbix Packager - Version update to 6.4.13 * Fri Mar 1 2024 Zabbix Packager - Version update to 6.4.12 * Wed Jan 31 2024 Zabbix Packager - Version update to 6.4.11 * Thu Dec 14 2023 Zabbix Packager - Version update to 6.4.10 * Sat Dec 2 2023 Zabbix Packager - Version update to 6.4.9 * Wed Nov 1 2023 Zabbix Packager - Version update to 6.4.8 - Now all available packes are built