# - initscript for zabbix-server, zabbix-proxy and zabbix-java
#
# Conditional build:
+%bcond_without agent2 # build Zabbix Agent 2
%bcond_without pgsql # enable PostgreSQL support
%bcond_without sqlite3 # enable sqlite3 support
%bcond_without mysql # enable MySQL support
%define databases %{?with_sqlite3:sqlite3} %{?with_pgsql:postgresql} %{?with_mysql:mysql}
%define any_database %{with pgsql}%{with mysql}%{with sqlite3}
-%define php_min_version 5.4.0
+%define _noautoreq 'pear(.*\.php)'
+
+%define php_min_version 7.2.5
+
+%ifnarch %{go_arches}
+%undefine with_agent2
+%endif
+
+%{?with_java:%{?use_default_jdk}}
+
Summary: Zabbix - network monitoring software
Summary(pl.UTF-8): Zabbix - oprogramowanie do monitorowania sieci
Name: zabbix
-Version: 6.0.4
+Version: 6.0.25
Release: 1
License: GPL v2+
Group: Networking/Utilities
Source0: https://cdn.zabbix.com/zabbix/sources/stable/6.0/%{name}-%{version}.tar.gz
-# Source0-md5: a4f60d529c18c1332354bddd402b561b
+# Source0-md5: 510cb7207048414b71b4fecc9aa50b6b
Source1: %{name}-apache.conf
Source2: %{name}_agentd.init
Source3: %{name}_server.init
Source4: %{name}_proxy.init
+Source5: %{name}_agent2.init
+Source6: %{name}_agent2.sysconfig
Patch0: tld.patch
Patch1: sqlite3_dbname.patch
Patch2: always_compile_ipc.patch
+Patch3: agent2.patch
+Patch4: go.patch
URL: https://www.zabbix.com/
BuildRequires: OpenIPMI-devel
BuildRequires: autoconf
BuildRequires: automake >= 1:1.15
BuildRequires: curl-devel
-#BuildRequires: iksemel-devel
-%{?with_java:BuildRequires: jdk}
+%{?with_agent2:BuildRequires: golang >= 1.13}
+%{?with_java:%buildrequires_jdk}
BuildRequires: libevent-devel
BuildRequires: libssh2-devel
BuildRequires: libtool
BuildRequires: pcre-devel
%{?with_pgsql:BuildRequires: postgresql-devel}
BuildRequires: rpmbuild(macros) >= 1.671
+%{?with_java:BuildRequires: rpm-tld-macros-javaprov}
%{?with_sqlite3:BuildRequires: sqlite3-devel}
BuildRequires: unixODBC-devel
BuildRequires: zlib-devel
%description agentd -l pl.UTF-8
Agent zbiera dane z lokalnej maszyny dla serwera Zabbix.
+%package agent2
+Summary: Zabbix Agent 2
+Summary(pl.UTF-8): Agent 2 Zabbixa
+Group: Networking/Utilities
+Requires: %{name} = %{version}-%{release}
+Requires(post,preun): /sbin/chkconfig
+Requires: rc-scripts
+
+%description agent2
+Zabbix agent collects data from the local system for a Zabbix server.
+
+%description agent2 -l pl.UTF-8
+Agent zbiera dane z lokalnej maszyny dla serwera Zabbix.
+
%package web
Summary: Web frontend for Zabbix
Summary(pl.UTF-8): Interfejs Web dla Zabbixa
%patch0 -p1
%patch1 -p1
%patch2 -p1
+%patch3 -p1
+%patch4 -p1
%build
%{__libtoolize}
configure() {
%configure \
+ %{?with_java:ac_cv_prog_JAVAC=%{java_home}/bin/javac} \
+ %{?with_java:ac_cv_prog_JAR=%{java_home}/bin/jar} \
--enable-agent \
+ %{__enable_disable agent2} \
--enable-ipv6 \
%{__enable_disable java} \
- --with-jabber \
--with-ldap \
--with-libcurl \
+ --with-libevent \
+ --with-libpcre2 \
--with-libxml2 \
--with-net-snmp \
--with-openipmi \
%install
rm -rf $RPM_BUILD_ROOT
-install -d $RPM_BUILD_ROOT{%{_sysconfdir},/etc/rc.d/init.d,/etc/webapps/%{_webapp},%{_appdir}} \
+install -d $RPM_BUILD_ROOT{%{_sysconfdir},/etc/{rc.d/init.d,sysconfig},/etc/webapps/%{_webapp},%{_appdir}} \
$RPM_BUILD_ROOT{/var/run/zabbix,/var/log/zabbix}
%{__make} install \
install %{SOURCE2} $RPM_BUILD_ROOT/etc/rc.d/init.d/zabbix_agentd
install %{SOURCE3} $RPM_BUILD_ROOT/etc/rc.d/init.d/zabbix_server
install %{SOURCE4} $RPM_BUILD_ROOT/etc/rc.d/init.d/zabbix_proxy
+install %{SOURCE5} $RPM_BUILD_ROOT/etc/rc.d/init.d/zabbix_agent2
+install %{SOURCE6} $RPM_BUILD_ROOT/etc/sysconfig/zabbix_agent2
mv $RPM_BUILD_ROOT%{_appdir}/ui/conf $RPM_BUILD_ROOT%{_sysconfdir}/web
ln -s %{_sysconfdir}/web $RPM_BUILD_ROOT%{_appdir}/ui/conf
/sbin/chkconfig --del zabbix_agentd
fi
+%post agent2
+/sbin/chkconfig --add zabbix_agent2
+%service zabbix_agent2 restart
+
+%preun agent2
+if [ "$1" = "0" ]; then
+ %service -q zabbix_agent2 stop
+ /sbin/chkconfig --del zabbix_agent2
+fi
+
%post proxy-mysql
ln -sf %{_sbindir}/zabbix_proxy-mysql %{_sbindir}/zabbix_proxy || :
%attr(755,root,root) %{_sbindir}/zabbix_agentd
%{_mandir}/man8/zabbix_agentd*
+%if %{with agent2}
+%files agent2
+%defattr(644,root,root,755)
+%attr(640,root,zabbix) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/zabbix_agent2.conf
+%dir %attr(751,root,zabbix) %{_sysconfdir}/zabbix_agent2.d
+%dir %attr(751,root,zabbix) %{_sysconfdir}/zabbix_agent2.d/plugins.d
+%attr(640,root,zabbix) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/zabbix_agent2.d/plugins.d/ceph.conf
+%attr(640,root,zabbix) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/zabbix_agent2.d/plugins.d/docker.conf
+%attr(640,root,zabbix) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/zabbix_agent2.d/plugins.d/memcached.conf
+%attr(640,root,zabbix) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/zabbix_agent2.d/plugins.d/modbus.conf
+%attr(640,root,zabbix) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/zabbix_agent2.d/plugins.d/mqtt.conf
+%attr(640,root,zabbix) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/zabbix_agent2.d/plugins.d/mysql.conf
+%attr(640,root,zabbix) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/zabbix_agent2.d/plugins.d/oracle.conf
+%attr(640,root,zabbix) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/zabbix_agent2.d/plugins.d/redis.conf
+%attr(640,root,zabbix) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/zabbix_agent2.d/plugins.d/smart.conf
+%attr(754,root,root) /etc/rc.d/init.d/zabbix_agent2
+%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/zabbix_agent2
+%attr(755,root,root) %{_sbindir}/zabbix_agent2
+%{_mandir}/man8/zabbix_agent2*
+%endif
+
%files web
%defattr(644,root,root,755)
%attr(750,root,http) %dir %{_webapps}/%{_webapp}