zabbix/zabbix.spec
Boris Manojlovic 11fbf75d17 - update to 6.0.31
- New Features and Improvements
  + ZBXNEXT-9140 Added support for custom compartments in Oracle Cloud by HTTP templates Templates
  + ZBXNEXT-9034 Added Jira Data Center by JMX template Templates
  + ZBXNEXT-8682 Introduced a length limit of 512KB for item test values that server returns to Zabbix frontend Frontend Server
  + ZBXNEXT-8248 Added database filter macros to MySQL templates Templates
  + ZBXNEXT-6698 Removed absolute threshold and timeleft from OS template triggers of filesystem space Templates
  + ZBXNEXT-7930 Added user macro support for username and password fields in email media type Server
  + ZBXCTR-22 Refactored JavaScript filter functions for Kubernetes templates Templates
  + ZBXNEXT-9098 Added AWS ELB Network Load Balancer by HTTP template Templates
  + ZBXNEXT-6864 Replaced {HOST.CONN} with user macros in templates Templates
  + ZBXNEXT-9117 Updated max supported MariaDB version to 11.3 Proxy Server
  + ZBXNEXT-9026 Added Go compiler version to Zabbix agent 2 version output Agent
  + ZBXNEXT-8786 Changed 'odbc.discovery' keys to 'odbc.get' in MySQL by ODBC and Oracle by ODBC templates Templates
  + ZBXNEXT-8536 Added cbdhsvc service to macros in Windows agent templates Templates
  + ZBXNEXT-8861 Made changes and added more metrics to the FortiGate by SNMP template Templates
  + ZBXNEXT-8240 Added a new set of templates for integration with Oracle Cloud Infrastructure Templates
- Bug Fixes
  + ZBX-24483 Improved memory usage in Zabbix server/proxy trappers and in proxy
    pollers when sending large configuration Proxy Server
  + ZBX-23073 Fixed URL widget resizing and dragging Frontend
  + ZBX-24574 Fixed HA node flipping between standby and active states Server
  + ZBX-24119 Fixed possible blocking of alert manager when it periodically pings database Server
  + ZBX-7998 Added VMware service username, password and URL check for empty values Proxy Server
  + ZBX-24402 Reduced main process connections to database during startup Proxy Server
  + ZBX-24369 Fixed filter behavior in monitoring pages after deleting filter parameters Frontend
  + ZBX-24484 Fixed Geomap widget console error when dragging map in widget edit mode Frontend
  + ZBX-23337 Improved supported version documentation for Oracle Database plugin and both templates Documentation
  + ZBX-24180 Fixed inability to import existing host or template when its dependent item prototype,
    which is used in trigger prototypes or graph prototypes, would have a different master item API
  + ZBX-20871 Fixed inability to use LLD macro functions in Prometheus pattern and labels used in item prototype preprocessing API
  + ZBX-24527 Fixed unnecessary loading text being displayed in hintbox preloader Frontend
  + ZBX-24362 Fixed wrong Zabbix agent 2 loadable plugin process handling catching all child process exits Agent
  + ZBX-24470 Fixed scale of VMware vmware.vm.memory.size.compressed key Proxy Server
  + ZBX-24415 Added triggers for datastores in VMware templates Templates
  + ZBX-18094 Fixed multiple pie graph issues related to calculation of item angles Frontend
  + ZBX-20766 Fixed confusing port binding error message Agent Proxy Server
  + ZBX-24481 Fixed inability to unset value map from existing item or item prototype by passing
    a version without valuemap parameter into configuration.import API
  + ZBX-24531 Fixed compile time data not being set for agent2 Agent
  + ZBX-24453 Implemented socket file cleanup when shutting down, added blocking of signals during important stages of startup Proxy Server
  + ZBX-24152 Fixed host form submission with Enter button if the form is opened in a popup and focus is in a flexible text area field Frontend
  + ZBX-23788 Added SNMP OID ifAlias in Network interfaces discovery Templates
  + ZBX-24482 Fixed the presence of the http_proxy field in the initial data Installation
  + ZBX-24210 Improved Zabbix agent 2 loadable plugin capacity code style Agent
  + ZBX-23951 Fixed issue of incorrect template matching when no UUID exists in export file API
  + ZBX-23953 Fixed CIDR network mask of VMware HV network interface Proxy Server
  + ZBX-24195 Fixed host IPMI username and password field max length Frontend
  + ZBX-24451 Added tags and changed a item in Proxmox template Templates
  + ZBX-23386 Fixed hintbox sizing to fit screen Frontend
  + ZBX-24024 Fixed OIDs for external sensors in APC UPC by SNMP templates Templates
  + ZBX-21751 Fixed node's loadavg item in Proxmox template Templates
  + ZBX-24315 Fixed linking template to host when some LLD macro paths already exist Server
  + ZBX-24172 Fixed Zabbix server issue with scheduled intervals on Feb 29th of leap year Server
  + ZBX-23407 Improved performance of retrieving last history values when primary keys are available API
  + ZBX-24246 Updated descriptions for family of MySQL and Oracle templates,
    changed macro in the trigger 'Tablespace utilization is too high' for family of Oracle templates Templates
  + ZBX-23988 Renamed Agent2 Go module
  + ZBX-24222 Fixed incorrect item OIDs in the FortiGate by SNMP template Templates
  + ZBX-24393 Updated README in Redis by Zabbix agent 2 template Templates
  + ZBX-24298 Allowed any JNDI service providers back in JMX monitoring Java gateway
  + ZBX-19990 Separated LLD filter macros in Apache Tomcat by JMX template Templates
  + ZBX-24364 Added preprocessing steps for LLD rules in RabbitMQ templates Templates
  + ZBX-24368 Improved PostgreSQL autovacuum's count query Templates
  + ZBX-24282 Fixed Zabbix proxy to report error for not supported items Proxy Server
  + ZBX-19507 Fixed vmware.eventlog item to recover after event keys are reset Server
  + ZBX-24241 Fixed Zabbix server issue with random order of host groups for a host during real-time export Server
  + ZBX-24275 Fixed item prototype JSONPath preprocessing, added missing volume health metric and triggers in HPE MSA templates Templates
  + ZBX-24316 Fixed username macro in GridGain by JMX template Templates
  + ZBX-23719 Updated plugin-support to add duplicate flag handling Agent
  + ZBX-22429 Fixed typo in Zabbix proxy automake file Installation
  + ZBX-24264 Fixed value cache being filled with values of newly added items with triggers Server
  + ZBX-24088 Fixed problem filtering in maps with nested maps Frontend
  + ZBX-24206 Fixed line breaks in JavaScript in Cloudflare template Templates
  + ZBX-24236 Fixed nested transaction error in LLD when connection is terminated Server
  + ZBX-24134 Added sensor discovery in VMware Hypervisor template Templates
  + ZBX-23918 Fixed item pattern select popup to display all available items Frontend
  + ZBX-24190 Fixed items being updated incorrectly when configuring graph Frontend
  + ZBX-24289 Fixed issue with interface assignment for items copied from host to host Frontend
  + ZBX-23032 Added triggers for cluster status in VMware templates Templates
  + ZBX-23948 Added support for TabularData data when parsing an MBean attribute Java gateway
  + ZBX-23742 Fixed tag filtering logic for tags with one name and different types of operators API
  + ZBX-24271 Added delay in JavaScript execution for Azure Cost Management by HTTP template Templates
  + ZBX-24208 Fixed Oracle, MySQL plugin connection cache blocking Agent
  + ZBX-24202 Fixed JavaScript in AWS S3 bucket by HTTP template Templates
  + ZBX-23478 Fixed issue when missing locale error would not be displayed for user under certain conditions Frontend
  + ZBX-24166 Fixed Zabbix not being able to restart due to RTC and sockets not being closed before stopping Agent Proxy Server
  + ZBX-23853 Fixed duplicate agent check timestamps when time shifts back due to system clock synchronization Agent

OBS-URL: https://build.opensuse.org/package/show/server:monitoring:zabbix/zabbix?expand=0&rev=61
2024-06-27 10:23:25 +00:00

655 lines
24 KiB
RPMSpec

#
# spec file for package zabbix
#
# Copyright (c) 2024 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
%define agent_user zabbix
%define agent_group zabbix
Name: zabbix
Version: 6.0.31
Release: 0
Summary: Distributed monitoring system
License: Apache-2.0 AND GPL-2.0-or-later AND EPL-2.0 AND MPL-2.0 AND BSD-3-Clause
Group: System/Monitoring
URL: https://www.zabbix.com
Source0: https://cdn.zabbix.com/zabbix/sources/stable/6.0/zabbix-%{version}.tar.gz
Source1: rn6.0.0.html
Source2: zabbix-tmpfiles.conf
Source3: zabbix-java-gateway.sh
Source4: zabbix-logrotate.in
Source5: apache2-zabbix.conf
Source6: README.SUSE
Source11: zabbix-proxy.service
Source12: zabbix-agentd.service
Source13: zabbix-server.service
Source14: zabbix-java-gateway.service
Source15: README-SSL.SUSE
Source16: system-user-zabbix.conf
# PATCH-FIX-OPENSUSE zabbix-6.0.12-netsnmp-fixes.patch fix for removed md5 auth protocol
Patch3: zabbix-6.0.12-netsnmp-fixes.patch
BuildRequires: apache-rpm-macros
BuildRequires: apache2-devel
BuildRequires: autoconf
BuildRequires: automake
BuildRequires: fdupes
BuildRequires: firewall-macros
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: sysuser-tools
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)
%sysusers_requires
%{?systemd_requires}
%if 0%{?suse_version} >= 1600 || 0%{?sle_version} > 150100
BuildRequires: postgresql-server-devel
%endif
%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
Requires: update-alternatives
Requires: group(%{agent_group})
Requires: user(%{agent_user})
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: update-alternatives
Requires: zabbix_server_binary = %{version}-%{release}
Requires(pre): %fillup_prereq
Requires(pre): shadow
Requires: group(%{server_group})
Requires: user(%{server_user})
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: update-alternatives
Requires: zabbix_proxy_binary = %{version}-%{release}
Requires(pre): %fillup_prereq
Requires(pre): shadow
Requires: group(%{server_group})
Requires: user(%{server_user})
Conflicts: zabbix-proxy
%description proxy
The Zabbix proxy component.
%package ui
Summary: Zabbix web frontend (php)
Group: Productivity/Networking/Web/Frontends
Requires: apache2
Requires: php8
Requires: php8-bcmath
Requires: php8-ctype
Requires: php8-gd
Requires: php8-gettext
Requires: php8-ldap
Requires: php8-mbstring
Requires: php8-sockets
Requires: php8-xmlreader
Requires: php8-xmlwriter
Suggests: php8-mysqli
Suggests: php8-pgsql
Conflicts: zabbix-phpfrontend
Provides: zabbix-phpfrontend
Obsoletes: zabbix-phpfrontend < 6.0.0
BuildArch: noarch
%description ui
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}
Requires: group(%{server_group})
Requires: user(%{server_user})
BuildArch: noarch
%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.
%package -n system-user-zabbix
Summary: Users and groups
Group: System
Requires(pre): pwdutils
Provides: group(%{agent_group})
Provides: group(%{server_group})
Provides: user(%{agent_user})
Provides: user(%{server_user})%define server_user zabbixs
BuildArch: noarch
%description -n system-user-zabbix
Zabbix users and groups required by zabbix packages
%prep
%autosetup -p0 -n zabbix-%{version}
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
%sysusers_generate_pre %{SOURCE16} zabbix system-user-zabbix.conf
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_build
# configure PostgreSQL repo
cd ../zabbix-%{version}-postgresql
autoreconf -fvi
%configure $ZABBIX_BASIC_CONFIG --with-postgresql --without-mysql --without-sqlite3
%make_build
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_build
cd -
%install
install -D -m 0644 %{SOURCE16} %{buildroot}%{_sysusersdir}/system-user-zabbix.conf
# 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 ui/* %{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 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
%service_add_pre zabbix_server.service
%pre proxy
# Proxy daemon
%service_add_pre zabbix_proxy.service
%pre agent
# Agent daemon
%service_add_pre zabbix_agentd.service
%pre java-gateway
# Java daemon
%service_add_pre zabbix-java-gateway.service
%pre -n system-user-zabbix -f zabbix.pre
%post server
%firewalld_reload
%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
%firewalld_reload
%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
%firewalld_reload
%service_add_post zabbix-java-gateway.service
%tmpfiles_create %{_tmpfilesdir}/zabbix-java-gateway.conf
%post agent
%firewalld_reload
%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/mysql database/oracle database/postgresql database/sqlite3 rn6.0.0.html README-SSL.SUSE
%dir %{_sysconfdir}/zabbix
%config(noreplace) %attr(0640, root, %{server_group}) %{_sysconfdir}/zabbix/zabbix_server.conf
%{_bindir}/zabbix_get
%{_bindir}/zabbix-get
%{_bindir}/zabbix_js
%{_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
%{_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
%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 ui
%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
%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.7.32.jar
%{_prefix}/lib/zabbix-java-gateway/logback-core-1.2.9.jar
%{_prefix}/lib/zabbix-java-gateway/logback-classic-1.2.9.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
%files -n system-user-zabbix
%{_sysusersdir}/system-user-zabbix.conf
%changelog