SHA256
1
0
forked from pool/zabbix
zabbix/zabbix.spec
Boris Manojlovic 1b16b8b0a9 Accepting request 867451 from home:bmanojlovic:branches:server:monitoring:zabbix
- updated to latest release 4.0.27
- New Features and Improvements
  + ZBXNEXT-2480 Removed autocomplete from fields having sensitive data
- Bug Fixes
  + ZBX-18155 Removed positional macros from item names on 'Web monitoring' page
  + ZBX-5842 Fixed ability to detect username existence from unsuccessful login message
  + ZBX-18564 Moved taskid calculation to transaction when creating remote command task
  + ZBX-18487 Increased trapper verbosity for DebugLevel=4 when rejecting sender data
  + ZBX-18185 Fixed compilation error on Solaris 10
  + ZBX-18317 Fixed fatal error when updating only discovered triggers and their properties
  + ZBX-18163 Fixed deletion of one last remaining main host interface to show error
    instead of silently deleting the interface
  + ZBX-18058 Updated the list of item keys and their descriptions
  + ZBX-18464 Fixed javascript Uncaught TypeError when clicking on disabled multiselect item
  + ZBX-18411 Set maxQueryMetrics default values for vcenter depending on its version
  + ZBX-18438 Fixed missing asterisk mark for "timeout" field in item, item prototype and LLD rule edit forms
  + ZBX-18327 Fixed undefined index when invalid URL is given
  + ZBX-17178 Fixed multi-line value truncation in snmp lld
  + ZBX-18462 Fixed inconsistent auto-registration behaviour for hosts without metadata
    on Oracle DB compared to other databases when using Zabbix proxy
  + ZBX-18364 Fixed inconsistency with autoregistration behaviour for hosts without metadata
    on Oracle compared to other databases
  + ZBX-18365 Added Fping 5.0 support to Zabbix
  + ZBX-17493 Added discarding of incoming values outside history/trends storage periods on server
  + ZBX-18343 Fixed in screen "host issue" problem stay even after problem resolved
  + ZBX-17842 Updated VMware template to follow guidelines
  + ZBX-17848 Fixed fping interval detection, added log prints of detected
    options in debug mode, re-detect options every hour
  + ZBX-18188 Increased age and duration related macro resolution to seconds
  + ZBX-15651 Fixed handling of overlapping IP addresses in network discovery received from single Zabbix proxy
  + ZBX-18326 Fixed unsupported code for internet explorer
  + ZBX-15904 Added check of required cache size for vmware event messages
  + ZBX-18121 Fixed SSH monitoring when compiled with libssh; thanks to MATSUDA Daiki for the patch
  + ZBX-14503 Updated JMX template to follow guidelines
  + ZBX-18189 Fixed crash when performing housekeeping with disabled value cache
  + ZBX-18181 Fixed undefined index when importing host with non-existing interface
  + ZBX-18050 Removed proxy name from host breadcrumbs
  + ZBX-18202 Added new default item keys for item type "Zabbix aggregate"
  + ZBX-18124 Fixed discovered host group prototype saving during import
  + ZBX-13789 Fixed SQL errors with Oracle backend due to incorrect use of the USING statement
  + ZBX-18046 Improved error message generation performance of user macro and item key parser
  + ZBX-18105 Fixed use on uninitialised variable
  + ZBX-18014 Added ODBC empty query check
  + ZBX-18160 Fixed fatal error in items.php and host_discovery.php
  + ZBX-13383 Improved performance of the trigger and trigger prototype inheritance
  + ZBX-17974 Implement timeouts for WMI queries
  + ZBX-13789 Improved performance of "Problems" widget with MySQL backend by removing DISTINCT
    modifier from SQL statements with tables joined by primary keys
  + ZBX-17468 Fixed excess audit log record being added on host status update
  + ZBX-18076 Fixed PHP notice and multiple undefined index errors in hostinterface API
  + ZBX-18000 Added red label for disabled media types in user profile
  + ZBX-18075 Fixed runtime error when creating a host via API
  + ZBX-15927 Removed problem calculation for dependent triggers when master trigger is in problem state
  + ZBX-18063 Fixed usage of unsupported parameter in API call
  + ZBX-18060 Fixed inaccessible user be displayed as accessible in slide show properties screen
  + ZBX-17252 Fixed building of Zabbix daemons with link time optimization

OBS-URL: https://build.opensuse.org/request/show/867451
OBS-URL: https://build.opensuse.org/package/show/server:monitoring:zabbix/zabbix?expand=0&rev=19
2021-01-28 11:33:21 +00:00

645 lines
25 KiB
RPMSpec

#
# spec file for package zabbix
#
# Copyright (c) 2021 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
%define server_user zabbixs
%define server_group zabbixs
# keep zabbix user for backwards compatibility of agent
%define agent_user zabbix
%define agent_group zabbix
%define SUSEfirewall_services_dir %{_sysconfdir}/sysconfig/SuSEfirewall2.d/services
Name: zabbix
Version: 4.0.27
Release: 0
Summary: Distributed monitoring system
License: GPL-2.0-or-later
Group: System/Monitoring
URL: http://www.zabbix.com
Source0: https://cdn.zabbix.com/zabbix/sources/stable/4.0/zabbix-%{version}.tar.gz
Source1: rn4.0.0.html
Source2: zabbix-tmpfiles.conf
Source3: zabbix-java-gateway.sh
Source4: zabbix-logrotate.in
Source5: apache2-zabbix.conf
Source6: README.SUSE
Source7: zabbix-server.firewall
Source8: zabbix-agentd.firewall
Source9: zabbix-proxy.firewall
Source10: zabbix-java-gateway.firewall
Source11: zabbix-proxy.service
Source12: zabbix-agentd.service
Source13: zabbix-server.service
Source14: zabbix-java-gateway.service
Source15: README-SSL.SUSE
# PATCH-FIX-UPSTREAM zabbix-3.0.25-new-m4-pgsql.patch fix for opensuse issue caused/solved by bnc#1120035
Patch0: zabbix-3.0.25-new-m4-pgsql.patch
BuildRequires: apache-rpm-macros
BuildRequires: apache2-devel
BuildRequires: autoconf
BuildRequires: automake
BuildRequires: fdupes
BuildRequires: gcc
BuildRequires: java-devel >= 1.6
BuildRequires: libmysqlclient-devel
BuildRequires: libtool
BuildRequires: logrotate
BuildRequires: net-snmp-devel
BuildRequires: openldap2-devel
BuildRequires: pkgconfig
BuildRequires: systemd-rpm-macros
BuildRequires: unixODBC-devel
BuildRequires: update-alternatives
BuildRequires: pkgconfig(OpenIPMI)
BuildRequires: pkgconfig(libcurl)
BuildRequires: pkgconfig(libevent)
BuildRequires: pkgconfig(libpcre)
BuildRequires: pkgconfig(libpq)
BuildRequires: pkgconfig(libssh2)
BuildRequires: pkgconfig(libxml-2.0)
BuildRequires: pkgconfig(openssl)
BuildRequires: pkgconfig(sqlite3)
BuildRequires: pkgconfig(zlib)
%{?systemd_requires}
%description
Zabbix is a distributed monitoring system.
Zabbix is software that monitors numerous parameters of a network and the
health and integrity of servers. Zabbix uses a flexible notification mechanism
that allows users to configure e-mail based alerts for virtually any event.
This allows a fast reaction to server problems. Zabbix offers excellent
reporting and data visualisation features based on the stored data. This makes
Zabbix ideal for capacity planning.
Zabbix supports both polling and trapping. All Zabbix reports and statistics,
as well as configuration parameters, are accessed through a web-based frontend.
A web-based frontend ensures that the status of your network and the health of
your servers can be assessed from any location. Properly configured, Zabbix can
play an important role in monitoring IT infrastructure. This is equally true
for small organisations with a few servers and for large companies with a
multitude of servers.
%package agent
Summary: Local resource monitor agent for Zabbix
Group: System/Monitoring
Requires: logrotate
Requires(pre): %fillup_prereq
Requires(pre): shadow
Conflicts: zabbix-agent
%description agent
The Zabbix agent monitors local resources and relays information to the server.
%package server
Summary: System files for the Zabbix server
Group: System/Monitoring
Requires: fping
Requires: logrotate
Requires: zabbix_server_binary = %{version}-%{release}
Requires(pre): %fillup_prereq
Requires(pre): shadow
Conflicts: zabbix-server
%description server
The Zabbix server component.
%package proxy
Summary: System files for the Zabbix proxy
Group: System/Monitoring
Requires: fping
Requires: logrotate
Requires: zabbix_proxy_binary = %{version}-%{release}
Requires(pre): %fillup_prereq
Requires(pre): shadow
Conflicts: zabbix-proxy
%description proxy
The Zabbix proxy component.
%package phpfrontend
Summary: Zabbix web frontend (php)
Group: Productivity/Networking/Web/Frontends
Requires: apache2
Requires: php7
Requires: php7-bcmath
Requires: php7-ctype
Requires: php7-gd
Requires: php7-gettext
Requires: php7-ldap
Requires: php7-mbstring
Requires: php7-sockets
Requires: php7-xmlreader
Requires: php7-xmlwriter
Suggests: php7-mysqli
Suggests: php7-pgsql
Conflicts: zabbix-phpfrontend
%description phpfrontend
The Zabbix PHP frontend allows access via standard web browsers.
NOTE: You still have to install the PHP package which contains your db driver!
%package server-mysql
Summary: Zabbix server with MySQL support
Group: System/Monitoring
Requires: %{name}-server = %{version}-%{release}
Requires: mariadb
Requires(post): update-alternatives
Requires(postun): update-alternatives
Conflicts: zabbix-server-mysql
Provides: %{name} = %{version}-%{release}
Provides: zabbix_server_binary = %{version}-%{release}
%description server-mysql
The Zabbix server compiled with MySQL support.
%package server-postgresql
Summary: Zabbix server with PostgreSQL support
Group: System/Monitoring
Requires: %{name}-server = %{version}-%{release}
Requires: postgresql
Requires(post): update-alternatives
Requires(postun): update-alternatives
Conflicts: zabbix-server-postgresql
Provides: %{name} = %{version}-%{release}
Provides: zabbix_server_binary = %{version}-%{release}
%description server-postgresql
The Zabbix server compiled with PostgreSQL support.
%package proxy-mysql
Summary: Zabbix proxy with MySQL support
Group: System/Monitoring
Requires: %{name}-proxy = %{version}-%{release}
Requires: mariadb
Requires(post): update-alternatives
Requires(postun): update-alternatives
Conflicts: zabbix-proxy-mysql
Provides: %{name} = %{version}-%{release}
Provides: zabbix_proxy_binary = %{version}-%{release}
%description proxy-mysql
The Zabbix proxy compiled with MySQL support.
%package proxy-postgresql
Summary: Zabbix proxy with PostgreSQL support
Group: System/Monitoring
Requires: %{name}-proxy = %{version}-%{release}
Requires: postgresql
Requires(post): update-alternatives
Requires(postun): update-alternatives
Conflicts: zabbix-proxy-postgresql
Provides: %{name} = %{version}-%{release}
Provides: zabbix_proxy_binary = %{version}-%{release}
%description proxy-postgresql
The Zabbix proxy compiled with PostgreSQL support.
%package proxy-sqlite
Summary: Zabbix proxy with SQLite support
Group: System/Monitoring
Requires: %{name}-proxy = %{version}-%{release}
Requires(post): update-alternatives
Requires(postun): update-alternatives
Conflicts: zabbix-proxy-sqlite
Provides: %{name} = %{version}-%{release}
Provides: zabbix_proxy_binary = %{version}-%{release}
%description proxy-sqlite
The Zabbix proxy compiled with SQLite support.
%package java-gateway
Summary: Zabbix Java gateway
Group: System/Monitoring
Requires: jre
Requires(pre): shadow
Conflicts: zabbix-java-gateway
Provides: %{name} = %{version}-%{release}
%description java-gateway
JMX monitoring can be used to monitor JMX counters of a Java
application. To retrieve the value of a particular JMX counter on a
host, the Zabbix server queries the Zabbix Java gateway, which in
turn uses the JMX management API to query the application of interest
remotely.
%prep
%setup -q -n zabbix-%{version}
%patch0
cp %{SOURCE6} .
# fix source & config files to respect adapted names
for file in src/zabbix_java/settings.sh src/zabbix_java/lib/logback.xml %{SOURCE3} conf/*.conf misc/init.d/suse/*/zabbix_* src/zabbix_server/server.c \
src/zabbix_server/alerter/alerter.c src/zabbix_agent/zbxconf.c src/zabbix_agent/zabbix_agentd.c src/zabbix_proxy/proxy.c ChangeLog; do
sed -i -e "s@/home/zabbix/bin@%{_bindir}@g" \
-e "s@^[# ]*PidFile=/tmp/zabbix_@PidFile=%{_rundir}/%{agent_user}/zabbix_@g" \
-e "s@^[# ]*LogFile=/tmp/zabbix_@LogFile=%{_localstatedir}/log/%{agent_user}/zabbix_@g" \
-e "s@^[# ]*DBSocket=/tmp/mysql.sock@DBSocket=%{_rundir}/mysql/mysql.sock@g" \
-e "s@^[# ]*SocketDir=/tmp@SocketDir=%{_rundir}/%{agent_user}@g" \
-e "s@DBUser=root@DBUser=zabbix@g" \
-e "s@^[# ]*DBPassword=.*@DBPassword=zabbix@g" \
-e "s@Hostname=Zabbix Server@Hostname=Zabbix_Server@" \
-e "s@GW_PID:=%{_localstatedir}/run/zabbix/zabbix-java-gateway.pid@GW_PID:=%{_rundir}/%{server_user}/zabbix-java-gateway.pid@g" \
-e "s@GW_LOGFILE:=%{_localstatedir}/log/zabbix/zabbix-java-gateway.log@GW_LOGFILE:=%{_localstatedir}/log/%{server_user}/zabbix-java-gateway.log@g" $file
done
# fix server, java and proxy (again) config for log and run location...
for file in src/zabbix_java/settings.sh conf/zabbix_proxy.conf conf/zabbix_server.conf ; do
sed -i -e "s#^[# ]*LogFile=%{_localstatedir}/log/.*/zabbix_#LogFile=%{_localstatedir}/log/%{server_user}/zabbix_#g" \
-e "s#^[# ]*PidFile=%{_rundir}/.*/zabbix_#PidFile=%{_rundir}/%{server_user}/zabbix_#g" \
-e "s#^[# ]*SocketDir=%{_rundir}/%{agent_user}#SocketDir=%{_rundir}/%{server_user}#g" \
-e 's#PID_FILE="%{_rundir}/.*/zabbix_#PID_FILE="%{_rundir}/%{server_user}/zabbix_#g' $file
done
# fix db content to respect adapted names and suse naming conventions
for file in database/*/data.sql; do
sed -i -e "s#syslogd#syslog-ng#g" \
-e "s#Syslogd#Syslog-ng#g" \
-e "s#httpd#httpd2-prefork#g" $file
done
##### Fix for date time macros
REF_DATE=$(LANG=C date -r configure +"%%b %%d %%Y")
REF_TIME=$(LANG=C date -r configure +"%%H:%%M:%%S")
sed -i -e "s/__DATE__/\"${REF_DATE}\"/g" -e "s/__TIME__/\"${REF_TIME}\"/g" src/libs/zbxcommon/str.c
#####
##### Fix location of zabbix java gateway location
sed -ri 's@^(ZABBIX_JAVA_CONF=.\{ZABBIX_JAVA_CONF:=).*@\1%{_sysconfdir}/zabbix/zabbix-java-gateway.conf}@g' %{SOURCE3}
# Remove prebuilt Windows binaries
rm -rf bin
#make separate directories for each config
cd ..
cp -r zabbix-%{version} zabbix-%{version}-postgresql
cp -r zabbix-%{version} zabbix-%{version}-sqlite
cd -
%build
ZABBIX_BASIC_CONFIG="--enable-proxy --enable-server --enable-agent --sysconfdir=%{_sysconfdir}/zabbix \
--with-openipmi --enable-java --enable-ipv6 --with-ssh2 --with-ldap --with-unixodbc \
--with-libcurl --with-net-snmp --with-libxml2 --with-openssl --with-libpcre --with-libevent"
# configure MySQL repo (here)
autoreconf -fvi
%configure $ZABBIX_BASIC_CONFIG --with-mysql --without-postgresql --without-sqlite3
make %{?_smp_mflags}
# configure PostgreSQL repo
cd ../zabbix-%{version}-postgresql
autoreconf -fvi
%configure $ZABBIX_BASIC_CONFIG --with-postgresql --without-mysql --without-sqlite3
make %{?_smp_mflags}
cd -
# configure SQLite repo
cd ../zabbix-%{version}-sqlite
autoreconf -fvi
%configure $ZABBIX_BASIC_CONFIG --disable-server --enable-proxy --with-sqlite3 --without-postgresql --without-mysql
make %{?_smp_mflags}
cd -
%install
# install the binaries
%make_install -C ../zabbix-%{version}-sqlite
mv %{buildroot}%{_sbindir}/zabbix_proxy %{buildroot}%{_sbindir}/zabbix_proxy-sqlite
%make_install -C ../zabbix-%{version}-postgresql
mv %{buildroot}%{_sbindir}/zabbix_server %{buildroot}%{_sbindir}/zabbix_server-postgresql
mv %{buildroot}%{_sbindir}/zabbix_proxy %{buildroot}%{_sbindir}/zabbix_proxy-postgresql
%make_install
mv %{buildroot}%{_sbindir}/zabbix_server %{buildroot}%{_sbindir}/zabbix_server-mysql
mv %{buildroot}%{_sbindir}/zabbix_proxy %{buildroot}%{_sbindir}/zabbix_proxy-mysql
mv %{buildroot}%{_bindir}/zabbix_sender %{buildroot}%{_sbindir}/zabbix_sender
# create directory structure
install -d %{buildroot}%{_localstatedir}/log/%{server_user}
install -d %{buildroot}%{_localstatedir}/log/%{agent_user}
# move java gateway files
mkdir -p %{buildroot}/%{_prefix}/lib/zabbix-java-gateway
mv %{buildroot}%{_sbindir}/zabbix_java/lib/*.jar %{buildroot}%{_prefix}/lib/zabbix-java-gateway
mv %{buildroot}%{_sbindir}/zabbix_java/bin/*.jar %{buildroot}%{_prefix}/lib/zabbix-java-gateway
mv %{buildroot}%{_sbindir}/zabbix_java/settings.sh %{buildroot}%{_sysconfdir}/zabbix/zabbix-java-gateway.conf
mv %{buildroot}%{_sbindir}/zabbix_java/lib/logback.xml %{buildroot}%{_sysconfdir}/zabbix/zabbix-java-gateway-log.xml
install -m 0755 %{SOURCE3} %{buildroot}%{_bindir}/zabbix-java-gateway
# we do not need the rest
rm -r %{buildroot}%{_sbindir}/zabbix_java
# install the php frontend
mkdir -p %{buildroot}%{_datadir}/zabbix
cp -r frontends/php/* %{buildroot}%{_datadir}/zabbix
install -Dm 0644 %{SOURCE5} %{buildroot}%{apache_sysconfdir}/conf.d/zabbix.conf
# remove .htaccess files as access rules are moved to zabbix.conf
find %{buildroot}%{_datadir}/zabbix -name .htaccess -exec rm -v {} \;
# Install log rotation
mkdir -p %{buildroot}%{_sysconfdir}/logrotate.d
sed -e 's|COMPONENT|agentd|g; s|USER|zabbix|g' %{SOURCE4} > \
%{buildroot}%{_sysconfdir}/logrotate.d/%{name}-agent
sed -e 's|COMPONENT|server|g; s|USER|zabbixs|g' %{SOURCE4} > \
%{buildroot}%{_sysconfdir}/logrotate.d/%{name}-server
sed -e 's|COMPONENT|proxy|g; s|USER|zabbixs|g' %{SOURCE4} > \
%{buildroot}%{_sysconfdir}/logrotate.d/%{name}-proxy
%fdupes %{buildroot}
# install firewall description files for SLE 12 / Leap 42
%if 0%{?suse_version} < 1500
install -Dm 0644 %{SOURCE7} %{buildroot}%{SUSEfirewall_services_dir}/zabbix_server
install -Dm 0644 %{SOURCE8} %{buildroot}%{SUSEfirewall_services_dir}/zabbix_agentd
install -Dm 0644 %{SOURCE9} %{buildroot}%{SUSEfirewall_services_dir}/zabbix_proxy
install -Dm 0644 %{SOURCE10} %{buildroot}%{SUSEfirewall_services_dir}/zabbix-java-gateway
%endif
# install systemd unit files
install -Dm 0644 %{SOURCE11} %{buildroot}%{_unitdir}/zabbix_proxy.service
install -Dm 0644 %{SOURCE12} %{buildroot}%{_unitdir}/zabbix_agentd.service
install -Dm 0644 %{SOURCE13} %{buildroot}%{_unitdir}/zabbix_server.service
install -Dm 0644 %{SOURCE14} %{buildroot}%{_unitdir}/zabbix-java-gateway.service
install -dm 0755 %{buildroot}/%{_unitdir}/zabbix_server.service.requires
install -dm 0755 %{buildroot}/%{_unitdir}/zabbix_proxy.service.requires
# set the rc sym links
ln -s service %{buildroot}%{_sbindir}/rczabbix_agentd
ln -s service %{buildroot}%{_sbindir}/rczabbix_server
ln -s service %{buildroot}%{_sbindir}/rczabbix_proxy
ln -s service %{buildroot}%{_sbindir}/rczabbix-java-gateway
# this stupidity is required because i do not wanna create separate zabbix-common
# in case i ever do it will put it under one scope...
install -Dm 0644 %{SOURCE2} %{buildroot}%{_tmpfilesdir}/zabbix_agentd.conf
# here I suppose server_user==server_group (and agent_user==agent_group, which is for compatibility reasons)
sed -i 's@%{agent_user}@%{server_user}@g' %{SOURCE2}
install -Dm 0644 %{SOURCE2} %{buildroot}%{_tmpfilesdir}/zabbix_server.conf
install -Dm 0644 %{SOURCE2} %{buildroot}%{_tmpfilesdir}/zabbix_proxy.conf
install -Dm 0644 %{SOURCE2} %{buildroot}%{_tmpfilesdir}/zabbix-java-gateway.conf
###################################################################################
# update-alternatives
install -d -m 0755 %{buildroot}%{_sysconfdir}/alternatives
touch -r /bin/true %{buildroot}%{_sysconfdir}/alternatives/zabbix_server
touch -r /bin/true %{buildroot}%{_sysconfdir}/alternatives/zabbix_proxy
ln -s %{_sysconfdir}/alternatives/zabbix_server %{buildroot}%{_sbindir}/zabbix_server
ln -s %{_sysconfdir}/alternatives/zabbix_proxy %{buildroot}%{_sbindir}/zabbix_proxy
# set links zabbix-* -> zabbix_* (to avoid confusion among users)
ln -s %{_sbindir}/zabbix_server %{buildroot}%{_sbindir}/zabbix-server
ln -s %{_sbindir}/zabbix_server %{buildroot}%{_sbindir}/zabbix-proxy
ln -s %{_sbindir}/zabbix_agentd %{buildroot}%{_sbindir}/zabbix-agentd
ln -s %{_sbindir}/zabbix_sender %{buildroot}%{_sbindir}/zabbix-sender
ln -s %{_bindir}/zabbix_get %{buildroot}%{_bindir}/zabbix-get
# Remove Makefiles from database directories so they don't get picked up by %%doc
rm database/*/Makefile*
# Release Notes - what has changed against Zabbix 3.x
cp %{SOURCE1} .
# SSL README
cp %{SOURCE15} .
%pre server
# Server daemon
%{_bindir}/getent group %{server_group} >/dev/null || %{_sbindir}/groupadd -r %{server_group}
%{_bindir}/getent passwd %{server_user} >/dev/null || %{_sbindir}/useradd -r -d %{_localstatedir}/lib/%{server_user} -s /bin/false -c "Zabbix Server Daemon" -g %{server_group} %{server_user}
%service_add_pre zabbix_server.service
exit 0
%pre proxy
# Proxy daemon
%{_bindir}/getent group %{server_group} >/dev/null || %{_sbindir}/groupadd -r %{server_group}
%{_bindir}/getent passwd %{server_user} >/dev/null || %{_sbindir}/useradd -r -d %{_localstatedir}/lib/%{server_user} -s /bin/false -c "Zabbix Proxy Daemon" -g %{server_group} %{server_user}
%service_add_pre zabbix_proxy.service
exit 0
%pre agent
# Agent daemon
%{_bindir}/getent group %{agent_group} >/dev/null || %{_sbindir}/groupadd -r %{agent_group}
%{_bindir}/getent passwd %{agent_user} >/dev/null || %{_sbindir}/useradd -r -d %{_localstatedir}/lib/%{agent_user} -s /bin/false -c "Zabbix Agent Daemon" -g %{agent_group} %{agent_user}
%service_add_pre zabbix_agentd.service
exit 0
%pre java-gateway
# Java daemon
%{_bindir}/getent group %{server_group} >/dev/null || %{_sbindir}/groupadd -r %{server_group}
%{_bindir}/getent passwd %{server_user} >/dev/null || %{_sbindir}/useradd -r -d %{_localstatedir}/lib/%{server_user} -s /bin/false -c "Zabbix Java Daemon" -g %{server_group} %{server_user}
%service_add_pre zabbix-java-gateway.service
exit 0
%post server
%service_add_post zabbix_server.service
%tmpfiles_create %{_tmpfilesdir}/zabbix_server.conf
echo "Please read %{_docdir}/%{name}-server/README-SSL.SUSE to set up SSL on Zabbix server."
%post proxy
%service_add_post zabbix_proxy.service
%tmpfiles_create %{_tmpfilesdir}/zabbix_proxy.conf
echo "Please read %{_docdir}/%{name}-proxy/README-SSL.SUSE to set up SSL on Zabbix proxy."
%post java-gateway
%service_add_post zabbix-java-gateway.service
%tmpfiles_create %{_tmpfilesdir}/zabbix-java-gateway.conf
%post agent
%service_add_post zabbix_agentd.service
%tmpfiles_create %{_tmpfilesdir}/zabbix_agentd.conf
echo "Please read %{_docdir}/%{name}-agent/README-SSL.SUSE to set up SSL on Zabbix agent."
%post server-mysql
%{_sbindir}/update-alternatives --install %{_sbindir}/zabbix_server zabbix_server %{_sbindir}/zabbix_server-mysql 12
%post server-postgresql
%{_sbindir}/update-alternatives --install %{_sbindir}/zabbix_server zabbix_server %{_sbindir}/zabbix_server-postgresql 11
%post proxy-mysql
%{_sbindir}/update-alternatives --install %{_sbindir}/zabbix_proxy zabbix_proxy %{_sbindir}/zabbix_proxy-mysql 12
%post proxy-postgresql
%{_sbindir}/update-alternatives --install %{_sbindir}/zabbix_proxy zabbix_proxy %{_sbindir}/zabbix_proxy-postgresql 11
%post proxy-sqlite
%{_sbindir}/update-alternatives --install %{_sbindir}/zabbix_proxy zabbix_proxy %{_sbindir}/zabbix_proxy-sqlite 10
%preun server
%service_del_preun zabbix_server.service
%preun proxy
%service_del_preun zabbix_proxy.service
%preun java-gateway
%service_del_preun zabbix-java-gateway.service
%preun agent
%service_del_preun zabbix_agentd.service
%postun server
%service_del_postun zabbix_server.service
%postun proxy
%service_del_postun zabbix_proxy.service
%postun java-gateway
%service_del_postun zabbix-java-gateway.service
%postun agent
%service_del_postun zabbix_agentd.service
%postun server-mysql
if [ "$1" = 0 ] ; then
%{_sbindir}/update-alternatives --remove zabbix_server %{_sbindir}/zabbix_server-mysql
fi
%postun server-postgresql
if [ "$1" = 0 ] ; then
%{_sbindir}/update-alternatives --remove zabbix_server %{_sbindir}/zabbix_server-postgresql
fi
%postun proxy-mysql
if [ "$1" = 0 ] ; then
%{_sbindir}/update-alternatives --remove zabbix_proxy %{_sbindir}/zabbix_proxy-mysql
fi
%postun proxy-postgresql
if [ "$1" = 0 ] ; then
%{_sbindir}/update-alternatives --remove zabbix_proxy %{_sbindir}/zabbix_proxy-postgresql
fi
%postun proxy-sqlite
if [ "$1" = 0 ] ; then
%{_sbindir}/update-alternatives --remove zabbix_proxy %{_sbindir}/zabbix_proxy-sqlite
fi
%files server
%doc AUTHORS ChangeLog database/ibm_db2 database/mysql database/oracle database/postgresql database/sqlite3 rn4.0.0.html README-SSL.SUSE
%if 0%{?suse_version} < 1500
%config %{SUSEfirewall_services_dir}/zabbix_server
%endif
%dir %{_sysconfdir}/zabbix
%config(noreplace) %attr(0640, root, %{server_group}) %{_sysconfdir}/zabbix/zabbix_server.conf
%{_bindir}/zabbix_get
%{_bindir}/zabbix-get
%{_sbindir}/zabbix_server
%{_sbindir}/zabbix-server
%{_sbindir}/rczabbix_server
%attr(0770,root,%{server_group}) %dir %{_localstatedir}/log/%{server_user}
%ghost %attr(0770,root,%{server_group}) %dir %{_rundir}/%{server_user}
%{_mandir}/man1/zabbix_get.1%{?ext_man}
%{_mandir}/man8/zabbix_server.8%{?ext_man}
%{_unitdir}/zabbix_server.service
%{_unitdir}/zabbix_server.service.requires
%{_tmpfilesdir}/zabbix_server.conf
%ghost %{_sysconfdir}/alternatives/zabbix_server
%ghost %{_sysconfdir}/alternatives/zabbix_server.service
%config(noreplace) %{_sysconfdir}/logrotate.d/%{name}-server
%files proxy
%doc README-SSL.SUSE
%if 0%{?suse_version} < 1500
%config %{SUSEfirewall_services_dir}/zabbix_proxy
%endif
%{_sbindir}/zabbix_proxy
%{_sbindir}/zabbix-proxy
%{_sbindir}/rczabbix_proxy
%dir %{_sysconfdir}/zabbix
%config(noreplace) %attr(0640, root, %{server_group}) %{_sysconfdir}/zabbix/zabbix_proxy.conf
%attr(0770,root,%{server_group}) %dir %{_localstatedir}/log/%{server_user}
%ghost %attr(0770,root,%{server_group}) %dir %{_rundir}/%{server_user}
%{_mandir}/man8/zabbix_proxy.8%{?ext_man}
%{_unitdir}/zabbix_proxy.service
%{_unitdir}/zabbix_proxy.service.requires
%{_tmpfilesdir}/zabbix_proxy.conf
%ghost %{_sysconfdir}/alternatives/zabbix_proxy
%ghost %{_sysconfdir}/alternatives/zabbix_proxy.service
%config(noreplace) %{_sysconfdir}/logrotate.d/%{name}-proxy
%files agent
%doc README-SSL.SUSE
%if 0%{?suse_version} < 1500
%config %{SUSEfirewall_services_dir}/zabbix_agentd
%endif
%dir %{_sysconfdir}/zabbix
%config(noreplace) %attr(0640, root, %{agent_group}) %{_sysconfdir}/zabbix/zabbix_agent*.conf
%{_sbindir}/rczabbix_agentd
%{_sbindir}/zabbix_agentd
%{_sbindir}/zabbix-agentd
%{_sbindir}/zabbix_sender
%{_sbindir}/zabbix-sender
%attr(0770,root,%{agent_group}) %dir %{_localstatedir}/log/%{agent_user}
%ghost %attr(0770,root,%{agent_group}) %dir %{_rundir}/%{agent_user}
%{_mandir}/man8/zabbix_agentd.8%{?ext_man}
%{_mandir}/man1/zabbix_sender.1%{?ext_man}
%{_unitdir}/zabbix_agentd.service
%{_tmpfilesdir}/zabbix_agentd.conf
%config(noreplace) %{_sysconfdir}/logrotate.d/%{name}-agent
%files phpfrontend
%doc README.SUSE
%dir %{apache_sysconfdir}
%dir %{apache_sysconfdir}/conf.d
%config(noreplace) %{apache_sysconfdir}/conf.d/zabbix.conf
%{_datadir}/zabbix
%files server-mysql
%{_sbindir}/zabbix_server-mysql
%{_sbindir}/zabbix_server
%ghost %{_sysconfdir}/alternatives/zabbix_server
%files server-postgresql
%{_sbindir}/zabbix_server-postgresql
%{_sbindir}/zabbix_server
%ghost %{_sysconfdir}/alternatives/zabbix_server
%files proxy-mysql
%{_sbindir}/zabbix_proxy-mysql
%{_sbindir}/zabbix_proxy
%ghost %{_sysconfdir}/alternatives/zabbix_proxy
%files proxy-postgresql
%{_sbindir}/zabbix_proxy-postgresql
%{_sbindir}/zabbix_proxy
%ghost %{_sysconfdir}/alternatives/zabbix_proxy
%files proxy-sqlite
%{_sbindir}/zabbix_proxy-sqlite
%{_sbindir}/zabbix_proxy
%ghost %{_sysconfdir}/alternatives/zabbix_proxy
%files java-gateway
%if 0%{?suse_version} < 1500
%config %{SUSEfirewall_services_dir}/zabbix-java-gateway
%endif
%dir %{_sysconfdir}/zabbix
%config(noreplace) %attr(0640, root, %{server_group}) %{_sysconfdir}/zabbix/zabbix-java-gateway.conf
%config(noreplace) %attr(0640, root, %{server_group}) %{_sysconfdir}/zabbix/zabbix-java-gateway-log.xml
%dir %{_prefix}/lib/zabbix-java-gateway
%{_bindir}/zabbix-java-gateway
%{_prefix}/lib/zabbix-java-gateway/zabbix-java-gateway-%{version}%{?rclevel}.jar
%{_prefix}/lib/zabbix-java-gateway/android-json-4.3_r3.1.jar
%{_prefix}/lib/zabbix-java-gateway/slf4j-api-1.6.1.jar
%{_prefix}/lib/zabbix-java-gateway/logback-core-0.9.27.jar
%{_prefix}/lib/zabbix-java-gateway/logback-classic-0.9.27.jar
%{_sbindir}/rczabbix-java-gateway
%attr(0770,root,%{server_group}) %dir %{_localstatedir}/log/%{server_user}
%ghost %attr(0770,root,%{server_group}) %dir %{_rundir}/%{server_user}
%{_unitdir}/zabbix-java-gateway.service
%{_tmpfilesdir}/zabbix-java-gateway.conf
%changelog