# - initscript for zabbix-server, zabbix-proxy and zabbix-java
#
# Conditional build:
-%bcond_with agent2 # build Zabbix Agent 2
+%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 _noautoreq 'pear(.*\.php)'
+%define _noautoreq_pear /etc/zabbix/web/maintenance\.inc\.php include/.*\.php vendor/.*\.php
+
+%define php_min_version 7.2.5
+
+%ifnarch %{go_arches}
+%undefine with_agent2
+%endif
+
+%{?with_java:%{?use_default_jdk}}
-%define php_min_version 5.4.0
Summary: Zabbix - network monitoring software
Summary(pl.UTF-8): Zabbix - oprogramowanie do monitorowania sieci
Name: zabbix
-Version: 6.0.19
+Version: 6.0.31
Release: 1
License: GPL v2+
Group: Networking/Utilities
Source0: https://cdn.zabbix.com/zabbix/sources/stable/6.0/%{name}-%{version}.tar.gz
-# Source0-md5: a57192d6bb17f9ca80a75f87d5462987
+# Source0-md5: f04833c9954a0aa97f51b3f859aa09e1
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
-%{?with_agent2:BuildRequires: golang}
-%{?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
Requires: php(bcmath)
Requires: php(core) >= %{php_min_version}
Requires: php(ctype)
+Requires: php(filter)
Requires: php(gd)
Requires: php(gettext)
Requires: php(json)
Requires: php(mbstring)
+Requires: php(openssl)
Requires: php(pcre)
Requires: php(session)
Requires: php(sockets)
%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}/zabbix_agent2.conf.d,/etc/{rc.d/init.d,sysconfig},/etc/webapps/%{_webapp},%{_appdir}} \
$RPM_BUILD_ROOT{/var/run/zabbix,/var/log/zabbix}
%{__make} install \
DESTDIR=$RPM_BUILD_ROOT \
- GOBIN=$RPM_BUILD_ROOT%{_sbindir} \
ZJG_DEST=$RPM_BUILD_ROOT%{_datadir}/zabbix_java
for database in %{databases} ; do
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
Running these should be fine in most cases:
mysqladmin create zabbix
- zcat %{_docdir}/%{name}-server-mysql-%{version}/schema.sql.gz | mysql zabbix
- zcat %{_docdir}/%{name}-server-mysql-%{version}/images.sql.gz | mysql zabbix
- zcat %{_docdir}/%{name}-server-mysql-%{version}/data.sql.gz | mysql zabbix
+ cat %{_docdir}/%{name}-server-mysql-%{version}/schema.sql | mysql zabbix
+ cat %{_docdir}/%{name}-server-mysql-%{version}/images.sql | mysql zabbix
+ cat %{_docdir}/%{name}-server-mysql-%{version}/data.sql | mysql zabbix
EOF
fi
ln -sf %{_sbindir}/zabbix_server-mysql %{_sbindir}/zabbix_server || :
createuser -U postgres zabbix
createdb -U postgres -O zabbix zabbix
- zcat %{_docdir}/%{name}-server-postgresql-%{version}/schema.sql.gz | psql -U zabbix zabbix
- zcat %{_docdir}/%{name}-server-postgresql-%{version}/images.sql.gz | psql -U zabbix zabbix
- zcat %{_docdir}/%{name}-server-postgresql-%{version}/data.sql.gz | psql -U zabbix zabbix
+ cat %{_docdir}/%{name}-server-postgresql-%{version}/schema.sql | psql -U zabbix zabbix
+ cat %{_docdir}/%{name}-server-postgresql-%{version}/images.sql | psql -U zabbix zabbix
+ cat %{_docdir}/%{name}-server-postgresql-%{version}/data.sql | psql -U zabbix zabbix
EOF
fi
ln -sf %{_sbindir}/zabbix_server-postgresql %{_sbindir}/zabbix_server || :
%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
+%dir %attr(751,root,zabbix) %{_sysconfdir}/zabbix_agent2.conf.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/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