%bcond_with systemd %define only_agent 0 %if %{only_agent} %bcond_with server %bcond_with proxy %bcond_with frontend %else %bcond_without server %bcond_without proxy %bcond_without frontend %endif %bcond_without agent %global php_pkgname php74 Summary: The Enterprise-class Monitoring Solution for Everyone Name: zabbix Version: 5.0.6 Release: 1%{?_dist_release}%{?with_systemd:.systemd} Group: system Vendor: Project Vine Distribution: Vine Linux Packager: iwaim License: GPLv2 URL: https://www.zabbix.com/ %global shortver %(echo %{version} | sed -e 's/\.[0-9]*$//') Source0: https://cdn.zabbix.com/zabbix/sources/stable/%{shortver}/%{name}-%{version}.tar.gz Source1: zabbix_server.init Source2: zabbix_proxy.init Source3: zabbix_agentd.init Source4: zabbix_server.logrotate Source5: zabbix_proxy.logrotate Source6: zabbix_agentd.logrotate Source9: %{name}-tmpfiles-zabbix.conf # systemd units -- Alternatives switches between them (they state their dependencies) # https://support.zabbix.com/browse/ZBXNEXT-1593 Source10: %{name}-agent.service Source11: %{name}-proxy-mysql.service Source12: %{name}-proxy-pgsql.service Source14: %{name}-server-mysql.service Source15: %{name}-server-pgsql.service Source17: %{name}-tmpfiles-zabbixsrv.conf BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-buildroot %if %{with server}%{with proxy} BuildRequires: libpq-devel BuildRequires: libmariadb-devel %endif BuildRequires: libevent-devel BuildRequires: pcre-devel BuildRequires: curl-devel BuildRequires: net-snmp-devel BuildRequires: OpenIPMI-devel BuildRequires: unixODBC-devel BuildRequires: libssh2-devel BuildRequires: openssl-devel Requires(pre): glibc-common Requires(pre): shadow-utils %if %{with systemd} BuildRequires: systemd %endif %description The Enterprise-class Monitoring Solution for Everyone. %if %{with server} %package server-common Summary: common files for Zabbix Server Group: servers Requires: %{name} == %{version}-%{release} %if %{with systemd} %{?systemd_requires} %else Requires(post,preun): chkconfig Requires(preun,postun): initscripts %endif %description server-common This package include common files for Zabbix Server. %package server-mysql Summary: Zabbix Server for MySQL/MariaDB Group: servers Provides: %{name}-server Requires: %{name}-server-common == %{version}-%{release} %description server-mysql Zabbix Server for MySQL/MariaDB %package server-postgresql Summary: Zabbix Server for PostgreSQL Group: servers Provides: %{name}-server Requires: %{name}-server-common == %{version}-%{release} %description server-postgresql Zabbix Server for PostgreSQL %endif %if %{with agent} %package agent Summary: Zabbix Agent Group: system Requires: %{name} == %{version}-%{release} %if %{with systemd} %{?systemd_requires} %else Requires(post,preun): chkconfig Requires(preun,postun): initscripts %endif %description agent Zabbix Agent %endif %if %{with proxy} %package proxy-common Summary: common files for Zabbix Proxy Group: servers Requires: %{name} == %{version}-%{release} %if %{with systemd} %{?systemd_requires} %else Requires(post,preun): chkconfig Requires(preun,postun): initscripts %endif %description proxy-common This package include common files for Zabbix Proxy %package proxy-mysql Summary: Zabbix Proxy for MySQL/MariaDB Group: servers Provides: %{name}-proxy Requires: %{name}-proxy-common == %{version}-%{release} %description proxy-mysql Zabbix Proxy for MySQL/MariaDB %package proxy-postgresql Summary: Zabbix Proxy for PostgreSQL Group: servers Provides: %{name}-proxy Requires: %{name}-proxy-common == %{version}-%{release} %description proxy-postgresql Zabbix Proxy for PostgreSQL %endif %if %{with frontend} %package frontend-php Summary: Zabbix web frontend with PHP Group: servers Requires: %{php_pkgname} Requires: TrueType-vlgothic %description frontend-php Zabbix web frontend with PHP. %package frontend-php-mysql Summary: Zabbix web frontend with PHP and MySQL/MariaDB Group: servers Provides: %{name}-frontend-php == %{version}-%{release} Requires: %{php_pkgname}-mysql %description frontend-php-mysql Zabbix web frontend with PHP and MySQL/MariaDB. %package frontend-php-postgresql Summary: Zabbix web frontend with PHP and PostgreSQL Group: servers Provides: %{name}-frontend-php == %{version}-%{release} Requires: %{php_pkgname}-pgsql %description frontend-php-postgresql Zabbix web frontend with PHP and PostgreSQL. %endif %debug_package %prep %setup -q -T -a 0 -c -n zabbix-%{version} mv zabbix-%{version} zabbix_mysql %if %{with server}%{with proxy} %setup -q -D -T -a 0 -n zabbix-%{version} mv zabbix-%{version} zabbix_pgsql %endif for v in mysql pgsql; do pushd zabbix_$v sed -i -e 's/DejaVuSans/VL-Gothic-Regular/g' ./ui/include/defines.inc.php sed -i \ -e '\|^# PidFile=.*|a PidFile=/run/zabbix/zabbix_agentd.pid' \ -e 's|^LogFile=.*|LogFile=%{_localstatedir}/log/zabbix/zabbix_agentd.log|' \ conf/zabbix_agentd.conf sed -i \ -e '\|^# PidFile=.*|a PidFile=/run/zabbix/zabbix_proxy.pid' \ -e 's|^LogFile=.*|LogFile=%{_localstatedir}/log/zabbix/zabbix_proxy.log|' \ conf/zabbix_proxy.conf sed -i \ -e '\|^# PidFile=.*|a PidFile=/run/zabbix/zabbix_server.pid' \ -e 's|^LogFile=.*|LogFile=%{_localstatedir}/log/zabbix/zabbix_server.log|' \ conf/zabbix_server.conf popd done %build Build() { perl -pi -e 's|/usr/bin/traceroute|/bin/traceroute|' \ ./database/{ibm_db2,mysql,oracle,postgresql,sqlite3}/data.sql %configure \ %{?with_server:--enable-server} \ %{?with_proxy:--enable-proxy} \ %{?with_agent:--enable-agent} \ --enable-ipv6 \ --sysconfdir=%{_sysconfdir}/zabbix \ --with-libcurl \ --with-openipmi \ --with-net-snmp \ --with-unixodbc \ --with-ssh2 \ --with-openssl \ $@ %__make } %if %{with server}%{with proxy} pushd zabbix_mysql Build --with-mysql popd pushd zabbix_pgsql Build --with-postgresql popd %else pushd zabbix_mysql Build popd %endif %install %__rm -rf %{buildroot} pushd zabbix_mysql make DESTDIR=%{buildroot} install %if %{with server} mv -f %{buildroot}%{_sbindir}/zabbix_server %{buildroot}%{_sbindir}/zabbix_server.mysql %endif %if %{with proxy} mv -f %{buildroot}%{_sbindir}/zabbix_proxy %{buildroot}%{_sbindir}/zabbix_proxy.mysql %endif # make directories %__mkdir_p %{buildroot}%{_localstatedir}/{log,run}/%{name} # DB %__mkdir_p %{buildroot}%{_datadir}/zabbix %if %{with server}%{with proxy} %__cp -a database/postgresql %{buildroot}%{_datadir}/zabbix/ %__cp -a database/mysql %{buildroot}%{_datadir}/zabbix/ %endif %if %{with systemd} # unit files %__mkdir_p %{buildroot}%{_unitdir} # Install different systemd units because of the requirements for DBMS daemons install -m 0644 -p %{SOURCE10} %{buildroot}%{_unitdir}/zabbix-agent.service install -m 0644 -p %{SOURCE11} %{buildroot}%{_unitdir}/zabbix-proxy-mysql.service install -m 0644 -p %{SOURCE12} %{buildroot}%{_unitdir}/zabbix-proxy-pgsql.service install -m 0644 -p %{SOURCE14} %{buildroot}%{_unitdir}/zabbix-server-mysql.service install -m 0644 -p %{SOURCE15} %{buildroot}%{_unitdir}/zabbix-server-pgsql.service # systemd tmpfiles mkdir -p %{buildroot}%{_prefix}/lib/tmpfiles.d install -m 0644 -p %{SOURCE9} %{buildroot}%{_prefix}/lib/tmpfiles.d/zabbix.conf %else # init.d %__mkdir_p %{buildroot}%{_initddir} %if %{with server} %__cp %{SOURCE1} %{buildroot}%{_initddir}/zabbix_server %endif %if %{with proxy} %__cp %{SOURCE2} %{buildroot}%{_initddir}/zabbix_proxy %endif %if %{with agent} %__cp %{SOURCE3} %{buildroot}%{_initddir}/zabbix_agentd %endif %endif # logrotate %__mkdir_p %{buildroot}%{_sysconfdir}/logrotate.d %if %{with server} %__cp %{SOURCE4} %{buildroot}%{_sysconfdir}/logrotate.d/zabbix_server %endif %if %{with proxy} %__cp %{SOURCE5} %{buildroot}%{_sysconfdir}/logrotate.d/zabbix_proxy %endif %if %{with agent} %__cp %{SOURCE6} %{buildroot}%{_sysconfdir}/logrotate.d/zabbix_agentd %endif %if %{with frontend} # frontend-php %__mkdir_p %{buildroot}%{_datadir}/zabbix-frontend %__cp -a ui %{buildroot}%{_datadir}/zabbix-frontend/php %__rm -f %{buildroot}%{_datadir}/zabbix-frontend/php/assets/fonts/DejaVuSans.ttf ln -s /usr/share/fonts/TrueType-vlgothic/VL-Gothic-Regular.ttf \ %{buildroot}%{_datadir}/zabbix-frontend/php/assets/fonts/ %endif %if %{with proxy} # proxy mkdir -p %{buildroot}%{_datadir}/zabbix-proxy ln -sf ../zabbix/mysql %{buildroot}%{_datadir}/zabbix-proxy/ ln -sf ../zabbix/postgresql %{buildroot}%{_datadir}/zabbix-proxy/ %endif popd %if %{with server}%{with proxy} pushd zabbix_pgsql install -m755 src/zabbix_server/zabbix_server %{buildroot}%{_sbindir}/zabbix_server.pgsql install -m755 src/zabbix_proxy/zabbix_proxy %{buildroot}%{_sbindir}/zabbix_proxy.pgsql popd %endif %clean %__rm -rf %{buildroot} %pre getent group zabbix >/dev/null || groupadd -r zabbix getent passwd zabbix >/dev/null || \ useradd -r -g zabbix -d %{_sysconfdir}/zabbix -s /sbin/nologin \ -c "Zabbix Monitoring Solution" zabbix exit 0 %if %{with server} %post server-mysql %if %{with systemd} %systemd_post zabbix-server-mysql.service %else /sbin/update-alternatives --install /usr/sbin/zabbix_server \ zabbix_server /usr/sbin/zabbix_server.mysql 10 %endif %post server-postgresql %if %{with systemd} %systemd_post zabbix-server-pgsql.service %else /sbin/update-alternatives --install /usr/sbin/zabbix_server \ zabbix_server /usr/sbin/zabbix_server.pgsql 10 /sbin/chkconfig --add zabbix_server %endif %endif %if %{with proxy} %post proxy-mysql %if %{with systemd} %systemd_post zabbix-proxy-mysql.service %else /sbin/update-alternatives --install /usr/sbin/zabbix_proxy \ zabbix_proxy /usr/sbin/zabbix_proxy.mysql 10 /sbin/chkconfig --add zabbix_proxy %endif %post proxy-postgresql %if %{with systemd} %systemd_post zabbix-proxy-pgsql.service %else /sbin/update-alternatives --install /usr/sbin/zabbix_proxy \ zabbix_proxy /usr/sbin/zabbix_proxy.pgsql 10 /sbin/chkconfig --add zabbix_proxy %endif %endif %if %{with agent} %post agent %if %{with systemd} %systemd_post zabbix-agent.service %else /sbin/chkconfig --add zabbix_agentd %endif %endif %if %{with server} %preun server-mysql %if %{with systemd} %systemd_preun zabbix-server-mysql.service %else if [ "$1" -eq 0 -o -x /bin/systemctl ]; then /sbin/service zabbix_server stop >/dev/null 2>&1 /sbin/chkconfig --del zabbix_server /sbin/update-alternatives --remove zabbix_server \ /usr/sbin/zabbix_server.mysql fi %endif %preun server-postgresql %if %{with systemd} %systemd_preun zabbix-server-pgysql.service %else if [ "$1" -eq 0 -o -x /bin/systemctl ]; then /sbin/service zabbix_server stop >/dev/null 2>&1 /sbin/chkconfig --del zabbix_server /sbin/update-alternatives --remove zabbix_server \ /usr/sbin/zabbix_server.pgsql fi %endif %endif %if %{with proxy} %preun proxy-mysql %if %{with systemd} %systemd_preun zabbix-proxy-mysql.service %else if [ "$1" -eq 0 -o -x /bin/systemctl ]; then /sbin/service zabbix_proxy stop >/dev/null 2>&1 /sbin/chkconfig --del zabbix_proxy /sbin/update-alternatives --remove zabbix_proxy \ /usr/sbin/zabbix_proxy.mysql fi %endif %preun proxy-postgresql %if %{with systemd} %systemd_preun zabbix-proxy-pgsql.service %else if [ "$1" -eq 0 -o -x /bin/systemctl ]; then /sbin/service zabbix_proxy stop >/dev/null 2>&1 /sbin/chkconfig --del zabbix_proxy /sbin/update-alternatives --remove zabbix_proxy \ /usr/sbin/zabbix_proxy.pgsql fi %endif %endif %if %{with agent} %preun agent %if %{with systemd} %systemd_preun zabbix-agent.service %else if [ "$1" -eq 0 -o -x /bin/systemctl ]; then /sbin/service zabbix_agentd stop >/dev/null 2>&1 /sbin/chkconfig --del zabbix_agentd fi %endif %endif %if %{with server} %postun server-mysql %if %{with systemd} %systemd_postun_with_restart zabbix-server-mysql.service %else if [ "$1" -ge "1" -a ! -x /bin/systemctl ]; then /sbin/service zabbix_server condrestart >/dev/null 2>&1 || : fi %endif %postun server-postgresql %if %{with systemd} %systemd_postun_with_restart zabbix-server-pgsql.service %else if [ "$1" -ge "1" -a ! -x /bin/systemctl ]; then /sbin/service zabbix_server condrestart >/dev/null 2>&1 || : fi %endif %endif %if %{with proxy} %postun proxy-mysql %if %{with systemd} %systemd_postun_with_restart zabbix-proxy-mysql.service %else if [ "$1" -ge "1" -a ! -x /bin/systemctl ]; then /sbin/service zabbix_proxy condrestart >/dev/null 2>&1 || : fi %endif %postun proxy-postgresql %if %{with systemd} %systemd_postun_with_restart zabbix-proxy-pgsql.service %else if [ "$1" -ge "1" -a ! -x /bin/systemctl ]; then /sbin/service zabbix_proxy condrestart >/dev/null 2>&1 || : fi %endif %postun agent %if %{with systemd} %systemd_postun_with_restart zabbix-agent.service %else if [ "$1" -ge "1" -a ! -x /bin/systemctl ]; then /sbin/service zabbix_agentd condrestart >/dev/null 2>&1 || : fi %endif %endif %files %defattr(-,root,root,-) %license zabbix_mysql/COPYING %doc zabbix_mysql/AUTHORS zabbix_mysql/ChangeLog zabbix_mysql/NEWS zabbix_mysql/README %attr(0755,zabbix,zabbix) %dir %{_localstatedir}/log/%{name} %dir %{_datadir}/zabbix %if %{with server}%{with proxy} %{_datadir}/zabbix/mysql %{_datadir}/zabbix/postgresql %endif %if %{with systemd} %{_prefix}/lib/tmpfiles.d/zabbix.conf %endif %{_bindir}/zabbix_js %if %{with server} %files server-common %defattr(-,root,root,-) %dir %{_sysconfdir}/zabbix %config(noreplace) %{_sysconfdir}/zabbix/zabbix_server.conf %config(noreplace) %{_sysconfdir}/logrotate.d/zabbix_server %if !%{with systemd} %{_initddir}/zabbix_server* %endif %{_mandir}/man8/zabbix_server.8* %files server-mysql %defattr(-,root,root,-) %{_sbindir}/zabbix_server.mysql %if %{with systemd} %{_unitdir}/zabbix-server-mysql.service %endif %files server-postgresql %defattr(-,root,root,-) %{_sbindir}/zabbix_server.pgsql %if %{with systemd} %{_unitdir}/zabbix-server-pgsql.service %endif %endif %if %{with agent} %files agent %defattr(-,root,root,-) %dir %{_sysconfdir}/zabbix %config(noreplace) %{_sysconfdir}/zabbix/zabbix_agentd.conf %config(noreplace) %{_sysconfdir}/logrotate.d/zabbix_agentd %{_bindir}/zabbix_get %{_bindir}/zabbix_sender %{_sbindir}/zabbix_agentd %if %{with systemd} %{_unitdir}/zabbix-agent.service %else %{_initddir}/zabbix_agentd %endif %{_mandir}/man1/zabbix_get.1* %{_mandir}/man1/zabbix_sender.1* %{_mandir}/man8/zabbix_agentd.8* %endif %if %{with proxy} %files proxy-common %defattr(-,root,root,-) %dir %{_sysconfdir}/zabbix %config(noreplace) %{_sysconfdir}/zabbix/zabbix_proxy.conf %config(noreplace) %{_sysconfdir}/logrotate.d/zabbix_proxy %if !%{with systemd} %{_initddir}/zabbix_proxy %endif %{_mandir}/man8/zabbix_proxy.8* %{_datadir}/zabbix-proxy %files proxy-mysql %defattr(-,root,root,-) %{_sbindir}/zabbix_proxy.mysql %if %{with systemd} %{_unitdir}/zabbix-proxy-mysql.service %endif %files proxy-postgresql %defattr(-,root,root,-) %{_sbindir}/zabbix_proxy.pgsql %if %{with systemd} %{_unitdir}/zabbix-proxy-pgsql.service %endif %endif %if %{with frontend} %files frontend-php %defattr(-,root,root,-) %license zabbix_mysql/COPYING %doc zabbix_mysql/AUTHORS zabbix_mysql/ChangeLog zabbix_mysql/NEWS zabbix_mysql/README %dir %{_datadir}/zabbix-frontend %{_datadir}/zabbix-frontend/php %files frontend-php-mysql %files frontend-php-postgresql %endif %changelog * Sun Dec 20 2020 Tomohiro "Tomo-p" KATO 5.0.6-1 - new upstream release. * Tue Sep 08 2020 Tomohiro "Tomo-p" KATO 5.0.3-1 - new upstream release. * Thu Jul 23 2020 Tomohiro "Tomo-p" KATO 5.0.2-1 - new upstream release. - dropped all patches: made to get the same effect by another method. * Wed Apr 15 2020 Tomohiro "Tomo-p" KATO 4.0.19-2 - rebuilt with libevent-2.1.11. * Mon Apr 06 2020 Tomohiro "Tomo-p" KATO 4.0.19-1 - new upstream release. - dropped Patch3: fixed in upstream. - changed R:php5 to R:php74. - added systemd support (disabled as default). * Thu Dec 19 2019 Tomohiro "Tomo-p" KATO 4.0.15-1 - new upstream release. - imported Patch13 from upstream to support php74. * Thu Oct 17 2019 Tomohiro "Tomo-p" KATO 4.0.13-1 - new upstream release. - updated patches. * Wed May 08 2019 Tomohiro "Tomo-p" KATO 4.0.7-1 - new upstream release. - switched to 4.0 LTS. - dropped Patch0: made to get same effect by another method. - updated Patch1 and 2. * Wed Nov 07 2018 Tomohiro "Tomo-p" KATO 3.0.23-1 - new upstream release. * Tue Jun 12 2018 IWAI, Masaharu 3.0.13-2 - accept building only agent * Thu Dec 21 2017 Tomohiro "Tomo-p" KATO 3.0.13-1 - new upstream release. * Fri Apr 21 2017 Tomohiro "Tomo-p" KATO 3.0.8-1 - new upstream release. * Fri Mar 18 2016 Tomohiro "Tomo-p" KATO 3.0.1-1 - new upstream release. - disabled jabber support. * Wed Sep 9 2015 Tomohiro "Tomo-p" KATO 2.4.6-1 - new upstream release. * Sat Apr 11 2015 Tomohiro "Tomo-p" KATO 2.2.9-1 - new upstream release. * Sun Jul 6 2014 Tomohiro "Tomo-p" KATO 2.2.4-1 - new upstream release. - built with both of mysql and postgresql. * Mon Oct 07 2013 Daisuke SUZUKI 2.0.8-1 - update to 2.0.8 * Wed Feb 20 2013 Daisuke SUZUKI 2.0.5-2 - use %%bcond_with mysql to build with mysql * Tue Feb 19 2013 IWAI, Masaharu 2.0.5-1 - update to 2.0.5 - add using MySQL client library switch: default no - define use_postfix and use_mysql - add BuildRequires: MySQL-devel - add configure option: --with-mysql * Thu Feb 7 2013 IWAI, Masaharu 2.0.4-1 - initial build for Vine Linux