# TODO:
-# - initscript for zabbix-agentd, zabbix-server, zabbix-proxy and zabbix-java
+# - initscript for zabbix-server, zabbix-proxy and zabbix-java
+# - unpackaged files:
+# /usr/bin/zabbix_js
+# /var/lib/zabbix/zabbix.db
#
# Conditional build:
-%bcond_with pgsql # enable PostgreSQL support
-%bcond_with oracle # enable Oracle support
-%bcond_with sqlite3 # enable sqlite3 support
+%bcond_without pgsql # enable PostgreSQL support
+%bcond_without sqlite3 # enable sqlite3 support
%bcond_without mysql # enable MySQL support
-
%bcond_without java # disable java support
+%bcond_without agent2 # disable bulding of Go based agent2
-%if %{with pgsql} || %{with oracle} || %{with sqlite3}
-%undefine with_mysql
-%endif
+%define databases %{?with_sqlite3:sqlite3} %{?with_pgsql:postgresql} %{?with_mysql:mysql}
+%define any_database %{with pgsql}%{with mysql}%{with sqlite3}
-%if %{?with_pgsql:1}%{?with_oracle:1}%{?with_sqlite3:1}%{?with_mysql:1} != 1
-ERROR: exactly one database must be selected
+%ifnarch %{go_arches}
+%undefine with_agent2
%endif
-%define php_min_version 5.4.0
+%{?with_java:%{?use_default_jdk}}
+%define php_min_version 7.2.5
Summary: Zabbix - network monitoring software
Summary(pl.UTF-8): Zabbix - oprogramowanie do monitorowania sieci
Name: zabbix
-Version: 3.2.0
-Release: 0.2
+Version: 6.0.30
+Release: 1
License: GPL v2+
Group: Networking/Utilities
-Source0: http://downloads.sourceforge.net/zabbix/%{name}-%{version}.tar.gz
-# Source0-md5: e2491b482868059f251902d5f636eacb
+# https://www.zabbix.com/download_sources
+Source0: https://cdn.zabbix.com/zabbix/sources/stable/6.0/%{name}-%{version}.tar.gz
+# Source0-md5: 7f553e63c07f330996ad06ea87ea2f38
+Source100: go-vendor.tar.xz
+# Source100-md5: b25dd4b2a72c62d6fa1378031b261a3d
Source1: %{name}-apache.conf
-Source2: zabbix_server.service
-Source3: zabbix_agentd.service
-Source4: zabbix_proxy.service
-Source5: zabbix_java.service
-Source6: zabbix.tmpfiles
+Source2: %{name}_server.service
+Source3: %{name}_agentd.service
+Source4: %{name}_proxy.service
+Source5: %{name}_java.service
+Source6: %{name}.tmpfiles
+Source7: %{name}_agentd.init
+Source8: %{name}_agent2.init
+Source9: %{name}_agent2.service
+%if 0
+cd src/go/
+go mod vendor
+tar -caf ~/go-vendor.tar.xz -C ../../ src/go/vendor
+%endif
Patch0: config.patch
-URL: http://zabbix.sourceforge.net/
+Patch1: sqlite3_dbname.patch
+Patch2: always_compile_ipc.patch
+Patch3: go-destdir.patch
+Patch4: go-vendor.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}
-BuildRequires: libxml2-devel
+%{?with_java:%buildrequires_jdk}
+BuildRequires: rpm-build >= 4.6
+%{?with_java:BuildRequires: rpm-pld-macros-javaprov}
+%{?with_agent2:BuildRequires: golang >= 1.19}
+BuildRequires: libevent-devel
BuildRequires: libssh2-devel
+BuildRequires: libtool
+BuildRequires: libxml2-devel
%{?with_mysql:BuildRequires: mysql-devel}
BuildRequires: net-snmp-devel
BuildRequires: openldap-devel >= 2.4.6
BuildRequires: openssl-devel >= 0.9.7d
+BuildRequires: pcre-devel
%{?with_pgsql:BuildRequires: postgresql-devel}
+BuildRequires: rpmbuild(macros) >= 2.021
%{?with_sqlite3:BuildRequires: sqlite3-devel}
+BuildRequires: tar >= 1:1.22
BuildRequires: unixODBC-devel
-BuildRequires: rpmbuild(macros) >= 1.671
-Requires: zabbix-server
-Requires: zabbix-agentd
-Requires: zabbix-frontend-php
+BuildRequires: xz
+BuildRequires: zlib-devel
+Requires: %{name}-agentd = %{version}-%{release}
+Requires: %{name}-frontend-php = %{version}-%{release}
+Requires: %{name}-server = %{version}-%{release}
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
%define _sysconfdir /etc/%{name}
%define _webapps /etc/webapps
%define _webapp %{name}
+%if %{defined __compress_doc}
+%define doc_cat zcat
+%define doc_suffix .gz
+%else
+%define doc_cat cat
+%define doc_suffix %{nil}
+%endif
+
%description
Zabbix is software that monitors numerous parameters of a network and
-the servers on that network. It is a useful tool for monitoring
-the health and integrity of servers. Zabbix uses a flexible
-notification mechanism that allows users to configure email based
-alerts for virtually any event. All monitored parameters are stored in
-a database. Zabbix offers excellent reporting and data visualisation
+the servers on that network. It is a useful tool for monitoring the
+health and integrity of servers. Zabbix uses a flexible notification
+mechanism that allows users to configure email based alerts for
+virtually any event. All monitored parameters are stored in a
+database. Zabbix offers excellent reporting and data visualisation
features based on the stored data. Zabbix supports both polling and
trapping. All Zabbix reports and statistics, as well as configuration
parameters, are accessed through a web-based front end.
Summary: Zabbix Agent
Summary(pl.UTF-8): Agenta Zabbiksa
Group: Networking/Utilities
-Requires: systemd-units >= 38
Requires: %{name}-common = %{version}-%{release}
+Requires: systemd-units >= 38
Obsoletes: zabbix-agent-inetd
Obsoletes: zabbix-agent-standalone
+Requires(post,preun): /sbin/chkconfig
+Requires: rc-scripts
%description agentd
Zabbix agent collects data from the local system for a Zabbix server.
%description agentd -l pl.UTF-8
Agent zbiera dane z lokalnej maszyny dla serwera Zabbix.
+%package agent2
+Summary: Zabbix Agent 2
+Group: Networking/Utilities
+URL: https://www.zabbix.com/documentation/current/manual/concepts/agent2
+Requires: %{name}-common = %{version}-%{release}
+Requires(post,preun): /sbin/chkconfig
+Requires: rc-scripts
+
+%description agent2
+Zabbix agent 2 is a new generation of Zabbix agent and may be used in
+place of Zabbix agent.
+
+Zabbix agent 2 has been developed to:
+- reduce the number of TCP connections
+- have greater check concurrency
+- be easily extendible with plugins.
+
+A plugin should be able to:
+- provide trivial checks consisting of only a few simple lines of code
+- provide complex checks consisting of long-running scripts and
+ standalone data gathering with periodic sending back of the data
+- be a drop-in replacement for Zabbix agent (in that it supports all
+ the previous functionality)
+
+Passive checks work similarly to Zabbix agent. Active checks support
+scheduled/flexible intervals and check concurrency within one active
+server.
+
%package frontend-php
Summary: PHP frontend for Zabbix
Summary(pl.UTF-8): Interfejs PHP dla Zabbiksa
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(simplexml)
Requires: php(sockets)
Requires: php(xml)
Requires: php(xmlreader)
Requires: php(xmlwriter)
-%{?with_mysql:Requires: php(mysql)}
-%{?with_pgsql:Requires: php(pgsql)}
Requires: webapps
+Requires: webserver(alias)
+Requires: webserver(indexfile)
Requires: webserver(php)
+Suggests: php(mysql)
+Suggests: php(pgsql)
+Suggests: php(sqlite3)
+# used with sqlite3
+Suggests: php(sysvsem)
+BuildArch: noarch
%description frontend-php
This package provides web based (PHP) frontend for Zabbix.
Summary: Zabbix proxy
Summary(pl.UTF-8): Proxy do Zabbiksa
Group: Networking/Utilities
-Requires: systemd-units >= 38
Requires: %{name}-common = %{version}-%{release}
+Requires: systemd-units >= 38
+Requires: zabbix-proxy(db) = %{version}-%{release}
%description proxy
This package provides the Zabbix proxy.
%description proxy -l pl.UTF-8
Ten pakiet zawiera proxy Zabbix.
+%package proxy-mysql
+Summary: MySQL support for Zabbix proxy
+Summary(pl.UTF-8): Obsługa MySQL dla proxy do Zabbiksa
+Group: Networking/Utilities
+Provides: %{name}-proxy(db) = %{version}-%{release}
+Obsoletes: zabbix-proxy-postgresql
+Obsoletes: zabbix-proxy-sqlite3
+
+%description proxy-mysql
+This package provides the Zabbix proxy binary with MySQL support.
+
+%description proxy-mysql -l pl.UTF-8
+Ten pakiet zawiera proxy Zabbix z obsługą MySQL.
+
+%package proxy-postgresql
+Summary: PostgreSQL support for Zabbix proxy
+Summary(pl.UTF-8): Obsługa PostgreSQL dla proxy do Zabbiksa
+Group: Networking/Utilities
+Provides: %{name}-proxy(db) = %{version}-%{release}
+Obsoletes: zabbix-proxy-mysql
+Obsoletes: zabbix-proxy-sqlite3
+
+%description proxy-postgresql
+This package provides the Zabbix proxy binary with PostgreSQL support.
+
+%description proxy-postgresql -l pl.UTF-8
+Ten pakiet zawiera proxy Zabbix z obsługą PostgreSQL.
+
+%package proxy-sqlite3
+Summary: SQLite 3 support for Zabbix proxy
+Summary(pl.UTF-8): Obsługa SQLite 3 dla proxy do Zabbiksa
+Group: Networking/Utilities
+Provides: %{name}-proxy(db) = %{version}-%{release}
+Obsoletes: zabbix-proxy-mysql
+Obsoletes: zabbix-proxy-postgresql
+
+%description proxy-sqlite3
+This package provides the Zabbix proxy binary with SQLite 3 support.
+
+%description proxy-sqlite3 -l pl.UTF-8
+Ten pakiet zawiera proxy Zabbix z obsługą SQLite 3.
+
%package sender
Summary: Zabbix sender
Summary(pl.UTF-8): Program zawiadamiający Zabbiksa
Summary: Zabbix server
Summary(pl.UTF-8): Serwer Zabbiksa
Group: Networking/Utilities
-Requires: systemd-units >= 38
Requires: %{name}-common = %{version}-%{release}
-Obsoletes: %{name}-suckerd
-Obsoletes: %{name}-trapper-inetd
-Obsoletes: %{name}-trapper-standalone
+Requires: %{name}-server(db) = %{version}-%{release}
+Requires: systemd-units >= 38
+Obsoletes: zabbix-suckerd
+Obsoletes: zabbix-trapper-inetd
+Obsoletes: zabbix-trapper-standalone
%description server
This package provides the Zabbix server.
%description server -l pl.UTF-8
Ten pakiet zawiera serwer Zabbiksa.
+%package server-mysql
+Summary: MySQL support for Zabbix server
+Summary(pl.UTF-8): Obsługa MySQL sla serwera Zabbiksa
+Group: Networking/Utilities
+Provides: %{name}-server(db) = %{version}-%{release}
+Obsoletes: zabbix-server-postgresql
+Obsoletes: zabbix-server-sqlite3
+
+%description server-mysql
+This package provides the Zabbix server binary for use with MySQL
+database.
+
+%description server-mysql -l pl.UTF-8
+Ten pakiet zawiera serwer Zabbiksa z obsługą bazy danych MySQL.
+
+%package server-postgresql
+Summary: PostgreSQL support for Zabbix server
+Summary(pl.UTF-8): Obsługa PostgreSQL sla serwera Zabbiksa
+Group: Networking/Utilities
+Provides: %{name}-server(db) = %{version}-%{release}
+Obsoletes: zabbix-server-mysql
+Obsoletes: zabbix-server-sqlite3
+
+%description server-postgresql
+This package provides the Zabbix server binary for use with PostgreSQL
+database.
+
+%description server-postgresql -l pl.UTF-8
+Ten pakiet zawiera serwer Zabbiksa z obsługą bazy danych PostgreSQL.
+
%package java
Summary: Zabbix Java Gateway
Group: Networking/Utilities
-Requires: systemd-units >= 38
Requires: %{name}-common = %{version}-%{release}
+Requires: systemd-units >= 38
%description java
This package provides the Zabbix Java Gateway.
%prep
-%setup -q
-
+%setup -q -a100
%patch0 -p1
+%patch1 -p1
+%patch2 -p1
+%patch3 -p1
+%patch4 -p1
%build
-%configure \
- %{?with_mysql:--with-mysql} \
- %{?with_pgsql:--with-postgresql} \
- %{?with_oracle:--with-oracle} \
- %{?with_sqlite3:--with-sqlite3} \
- --enable-server \
+%{__libtoolize}
+%{__aclocal} -I m4
+%{__autoconf}
+%{__autoheader}
+%{__automake}
+
+configure() {
+ %configure \
+ %{?with_java:ac_cv_prog_JAVAC=%{java_home}/bin/javac} \
+ %{?with_java:ac_cv_prog_JAR=%{java_home}/bin/jar} \
+ --enable-dependency-tracking \
--enable-agent \
- --enable-proxy \
+ %{__enable_disable agent2} \
--enable-ipv6 \
%{__enable_disable java} \
- --with-jabber \
--with-ldap \
--with-libcurl \
+ --with-libevent \
+ --with-libpcre \
--with-libxml2 \
--with-net-snmp \
--with-openipmi \
--with-openssl \
--with-ssh2 \
- --with-unixodbc
+ --with-unixodbc \
+ "$@"
+}
+
+configure \
+ --disable-server \
+ --disable-proxy
%{__make}
+for database in %{databases} ; do
+ if [ "$database" = "sqlite3" ] ; then
+ enable_server=""
+ else
+ enable_server="--enable-server"
+ fi
+ configure \
+ --with-$database \
+ $enable_server \
+ --enable-proxy
+
+ %{__make}
+
+ if [ "$enable_server" ] ; then
+ %{__make} install \
+ -C src/zabbix_server \
+ DESTDIR=$PWD/install-${database}
+ fi
+
+ %{__make} install \
+ -C src/zabbix_proxy \
+ DESTDIR=$PWD/install-${database}
+done
+
%install
rm -rf $RPM_BUILD_ROOT
-install -d $RPM_BUILD_ROOT{%{_sysconfdir},/etc/webapps/%{_webapp},%{_appdir}} \
- $RPM_BUILD_ROOT{/run/zabbix,/var/log/zabbix,%{systemdunitdir},%{tmpfilesdir}}
+install -d \
+ $RPM_BUILD_ROOT/etc/webapps/%{_webapp} \
+ $RPM_BUILD_ROOT{/etc/rc.d/init.d,%{_appdir}/frontends/php} \
+ $RPM_BUILD_ROOT{/var/run/zabbix,/var/log/zabbix,%{systemdunitdir},%{systemdtmpfilesdir}}
%{__make} install \
DESTDIR=$RPM_BUILD_ROOT \
ZJG_DEST=$RPM_BUILD_ROOT%{_datadir}/zabbix_java
-cp -r frontends $RPM_BUILD_ROOT%{_appdir}
+for database in %{databases} ; do
+ if [ "$database" != "sqlite3" ] ; then
+ cp -p install-$database/%{_sbindir}/zabbix_server \
+ $RPM_BUILD_ROOT%{_sbindir}/zabbix_server-$database
+ fi
+ cp -p install-$database/%{_sbindir}/zabbix_proxy \
+ $RPM_BUILD_ROOT%{_sbindir}/zabbix_proxy-$database
+done
+
+if [ -n "$database" ] ; then
+ ln -sf zabbix_server-$database $RPM_BUILD_ROOT%{_sbindir}/zabbix_server
+ ln -sf zabbix_proxy-$database $RPM_BUILD_ROOT%{_sbindir}/zabbix_proxy
+fi
+
+%if %{with sqlite3}
+install -d $RPM_BUILD_ROOT/var/lib/zabbix
+touch $RPM_BUILD_ROOT/var/lib/zabbix/zabbix.db
+%endif
+
+cp -r ui/* $RPM_BUILD_ROOT%{_appdir}/frontends/php
-install %{SOURCE1} $RPM_BUILD_ROOT%{_webapps}/%{_webapp}/apache.conf
-install %{SOURCE1} $RPM_BUILD_ROOT%{_webapps}/%{_webapp}/httpd.conf
+cp -p %{SOURCE1} $RPM_BUILD_ROOT%{_webapps}/%{_webapp}/apache.conf
+cp -p %{SOURCE1} $RPM_BUILD_ROOT%{_webapps}/%{_webapp}/httpd.conf
install %{SOURCE2} $RPM_BUILD_ROOT%{systemdunitdir}/zabbix_server.service
install %{SOURCE3} $RPM_BUILD_ROOT%{systemdunitdir}/zabbix_agentd.service
+install %{SOURCE9} $RPM_BUILD_ROOT%{systemdunitdir}/zabbix_agent2.service
+install %{SOURCE7} $RPM_BUILD_ROOT/etc/rc.d/init.d/zabbix_agentd
+install %{SOURCE8} $RPM_BUILD_ROOT/etc/rc.d/init.d/zabbix_agent2
install %{SOURCE4} $RPM_BUILD_ROOT%{systemdunitdir}/zabbix_proxy.service
-install %{SOURCE5} $RPM_BUILD_ROOT%{systemdunitdir}/zabbix_java.service
+%{?with_java:install %{SOURCE5} $RPM_BUILD_ROOT%{systemdunitdir}/zabbix_java.service}
-install %{SOURCE6} $RPM_BUILD_ROOT%{tmpfilesdir}/zabbix.conf
+cp -p %{SOURCE6} $RPM_BUILD_ROOT%{systemdtmpfilesdir}/zabbix.conf
mv $RPM_BUILD_ROOT%{_appdir}/frontends/php/conf $RPM_BUILD_ROOT%{_sysconfdir}/frontend
-ln -s %{_sysconfdir}/frontend $RPM_BUILD_ROOT%{_appdir}/frontends/php/conf
+ln -s --relative $RPM_BUILD_ROOT{%{_sysconfdir}/frontend,%{_appdir}/frontends/php/conf}
touch $RPM_BUILD_ROOT%{_sysconfdir}/frontend/zabbix.conf.php
%if %{with java}
mv $RPM_BUILD_ROOT%{_datadir}/zabbix_java/settings.sh $RPM_BUILD_ROOT%{_sysconfdir}/zabbix_java.conf
-ln -s %{_sysconfdir}/zabbix_java.conf $RPM_BUILD_ROOT%{_datadir}/zabbix_java/settings.sh
+ln -s --relative $RPM_BUILD_ROOT{%{_sysconfdir}/zabbix_java.conf,%{_datadir}/zabbix_java/settings.sh}
mv $RPM_BUILD_ROOT%{_datadir}/zabbix_java/lib/logback.xml $RPM_BUILD_ROOT%{_sysconfdir}/java-logback.xml
-ln -s %{_sysconfdir}/java-logback.xml $RPM_BUILD_ROOT%{_datadir}/zabbix_java/lib/logback.xml
+ln -s --relative $RPM_BUILD_ROOT{%{_sysconfdir}/java-logback.xml,%{_datadir}/zabbix_java/lib/logback.xml}
mv $RPM_BUILD_ROOT%{_datadir}/zabbix_java/lib/logback-console.xml $RPM_BUILD_ROOT%{_sysconfdir}/java-logback-console.xml
-ln -s %{_sysconfdir}/java-logback-console.xml $RPM_BUILD_ROOT%{_datadir}/zabbix_java/lib/logback-console.xml
+ln -s --relative $RPM_BUILD_ROOT{%{_sysconfdir}/java-logback-console.xml,%{_datadir}/zabbix_java/lib/logback-console.xml}
cat >$RPM_BUILD_ROOT%{_sbindir}/zabbix_java-start <<'EOF'
#!/bin/sh
%triggerun frontend-php -- apache < 2.2.0, apache-base
%webapp_unregister httpd %{_webapp}
+%triggerpostun agent2 -- zabbix-agent2 < 6.0.15
+%systemd_trigger zabbix_agent2.service
+
%pre common
%groupadd -g 111 zabbix
%useradd -d / -u 111 -g zabbix -c "Zabbix User" -s /bin/false zabbix
+%addusertogroup -q zabbix proc
%postun common
if [ "$1" = "0" ]; then
%groupremove zabbix
fi
-%post server
+%post server-mysql
if [ "$1" = 1 ]; then
%banner -e %{name}-server <<-EOF
You should create database for Zabbix.
-%if %{with pgsql}
- Running these should be fine in most cases:
- psql -c 'create database zabbix'
- zcat %{_docdir}/%{name}-server-%{version}/postgresql/schema.sql.gz | psql zabbix
- zcat %{_docdir}/%{name}-server-%{version}/postgresql/images.sql.gz | psql zabbix
- zcat %{_docdir}/%{name}-server-%{version}/postgresql/data.sql.gz | psql zabbix
-%else
-%if %{with mysql}
+
Running these should be fine in most cases:
mysqladmin create zabbix
- zcat %{_docdir}/%{name}-server-%{version}/mysql/schema.sql.gz | mysql zabbix
- zcat %{_docdir}/%{name}-server-%{version}/mysql/images.sql.gz | mysql zabbix
- zcat %{_docdir}/%{name}-server-%{version}/mysql/data.sql.gz | mysql zabbix
-%else
- Database template is available in %{_docdir}/%{name}-%{version}
-%endif
-%endif
- %{?TODO:You also need zabbix-agent. install zabbix-agentd.}
+ %doc_cat %{_docdir}/%{name}-server-mysql-%{version}/schema.sql%{doc_suffix} | mysql zabbix
+ %doc_cat %{_docdir}/%{name}-server-mysql-%{version}/images.sql%{doc_suffix} | mysql zabbix
+ %doc_cat %{_docdir}/%{name}-server-mysql-%{version}/data.sql%{doc_suffix} | mysql zabbix
EOF
fi
+ln -sf zabbix_server-mysql %{_sbindir}/zabbix_server || :
+
+%post server-postgresql
+if [ "$1" = 1 ]; then
+ %banner -e %{name}-server <<-EOF
+ You should create database for Zabbix.
+
+ Running these should be fine in most cases:
+
+ createuser zabbix
+ createdb -O zabbix -E utf8 -T template0 zabbix
+ %doc_cat %{_docdir}/%{name}-server-postgresql-%{version}/schema.sql%{doc_suffix} | psql -U zabbix zabbix
+ %doc_cat %{_docdir}/%{name}-server-postgresql-%{version}/images.sql%{doc_suffix} | psql -U zabbix zabbix
+ %doc_cat %{_docdir}/%{name}-server-postgresql-%{version}/data.sql%{doc_suffix} | psql -U zabbix zabbix
+EOF
+fi
+ln -sf zabbix_server-postgresql %{_sbindir}/zabbix_server || :
+
+%post server
%systemd_post zabbix_server.service
%preun server
%systemd_preun zabbix_server.service
%postun server
+if [ "$1" = "0" ]; then
+ if [ -L %{_sbindir}/zabbix_server ] ; then
+ rm -f %{_sbindir}/zabbix_server || :
+ fi
+fi
%systemd_reload
%post agentd
+/sbin/chkconfig --add zabbix_agentd
+%service zabbix_agentd restart
%systemd_post zabbix_agentd.service
%preun agentd
+if [ "$1" = "0" ]; then
+ %service -q zabbix_agentd stop
+ /sbin/chkconfig --del zabbix_agentd
+fi
%systemd_preun zabbix_agentd.service
%postun agentd
%systemd_reload
+%post agent2
+/sbin/chkconfig --add zabbix_agent2
+%service zabbix_agent2 restart
+%systemd_post zabbix_agent2.service
+
+%preun agent2
+if [ "$1" = "0" ]; then
+ %service -q zabbix_agent2 stop
+ /sbin/chkconfig --del zabbix_agent2
+fi
+%systemd_preun zabbix_agent2.service
+
+%post proxy-mysql
+ln -sf zabbix_proxy-mysql %{_sbindir}/zabbix_proxy || :
+
+%post proxy-postgresql
+ln -sf zabbix_proxy-postgresql %{_sbindir}/zabbix_proxy || :
+
+%post proxy-sqlite3
+ln -sf zabbix_proxy-sqlite3 %{_sbindir}/zabbix_proxy || :
+
%post proxy
%systemd_post zabbix_proxy.service
%attr(751,root,http) %dir %{_sysconfdir}/frontend
%dir %{_appdir}
%dir %{_appdir}/frontends
-%dir %attr(770,root,zabbix) /run/zabbix
+%dir %attr(770,root,zabbix) /var/run/zabbix
%dir %attr(775,root,zabbix) /var/log/zabbix
+%{systemdtmpfilesdir}/zabbix.conf
%files agentd
%defattr(644,root,root,755)
+%doc conf/zabbix_agentd/*.conf
%attr(640,root,zabbix) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/zabbix_agentd.conf
+%dir %attr(751,root,zabbix) %{_sysconfdir}/zabbix_agentd.conf.d
+%attr(754,root,root) /etc/rc.d/init.d/zabbix_agentd
%attr(755,root,root) %{_sbindir}/zabbix_agentd
%{_mandir}/man8/zabbix_agentd*
%{systemdunitdir}/zabbix_agentd.service
+%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/*.conf
+%attr(754,root,root) /etc/rc.d/init.d/zabbix_agent2
+%attr(755,root,root) %{_sbindir}/zabbix_agent2
+%{_mandir}/man8/zabbix_agent2.8*
+%{systemdunitdir}/zabbix_agent2.service
+%endif
+
%files frontend-php
%defattr(644,root,root,755)
%attr(750,root,http) %dir %{_webapps}/%{_webapp}
-%attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_webapps}/%{_webapp}/*
-%{_appdir}/frontends/php
+%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_webapps}/%{_webapp}/apache.conf
+%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_webapps}/%{_webapp}/httpd.conf
%ghost %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/frontend/zabbix.conf.php
%attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/frontend/.htaccess
%attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/frontend/maintenance.inc.php
%attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/frontend/zabbix.conf.php.example
+%{_appdir}/frontends/php
%files get
%defattr(644,root,root,755)
%attr(755,root,root) %{_bindir}/zabbix_get
%{_mandir}/man1/zabbix_get*
+%if %{any_database}
%files proxy
%defattr(644,root,root,755)
%attr(640,root,zabbix) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/zabbix_proxy.conf
-%attr(755,root,root) %{_sbindir}/zabbix_proxy
+%dir %attr(751,root,zabbix) %{_sysconfdir}/zabbix_proxy.conf.d
+%ghost %{_sbindir}/zabbix_proxy
%{_mandir}/man8/zabbix_proxy*
%{systemdunitdir}/zabbix_proxy.service
+%endif
+
+%if %{with mysql}
+%files proxy-mysql
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_sbindir}/zabbix_proxy-mysql
+%endif
+
+%if %{with pgsql}
+%files proxy-postgresql
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_sbindir}/zabbix_proxy-postgresql
+%endif
+
+%if %{with sqlite3}
+%files proxy-sqlite3
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_sbindir}/zabbix_proxy-sqlite3
+%endif
%files sender
%defattr(644,root,root,755)
%attr(755,root,root) %{_bindir}/zabbix_sender
%{_mandir}/man1/zabbix_sender*
+%if %{any_database}
%files server
%defattr(644,root,root,755)
-%doc upgrades/dbpatches
+%attr(640,root,zabbix) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/zabbix_server.conf
+%dir %attr(751,root,zabbix) %{_sysconfdir}/zabbix_server.conf.d
+%ghost %{_sbindir}/zabbix_server
+%{_mandir}/man8/zabbix_server*
+%{systemdunitdir}/zabbix_server.service
+%endif
+
%if %{with mysql}
-%doc database/mysql
+%files server-mysql
+%defattr(644,root,root,755)
+%doc database/mysql/*.sql
+%attr(755,root,root) %{_sbindir}/zabbix_server-mysql
%endif
+
%if %{with pgsql}
-%doc database/postgresql
-%endif
-%if %{with oracle}
-%doc database/oracle
-%endif
-%if %{with sqlite3}
-%doc database/sqlite3
+%files server-postgresql
+%defattr(644,root,root,755)
+%doc database/postgresql/*.sql
+%attr(755,root,root) %{_sbindir}/zabbix_server-postgresql
%endif
-%attr(640,root,zabbix) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/zabbix_server.conf
-%attr(755,root,root) %{_sbindir}/zabbix_server
-%{_mandir}/man8/zabbix_server*
-%{systemdunitdir}/zabbix_server.service
%if %{with java}
%files java