summaryrefslogtreecommitdiff
path: root/zabbix.spec
diff options
context:
space:
mode:
authorCoprDistGit <infra@openeuler.org>2025-01-28 17:53:15 +0000
committerCoprDistGit <infra@openeuler.org>2025-01-28 17:53:15 +0000
commite744af2c60ef1ec27648842ea714f97b0f346632 (patch)
tree6f4d156ef54a8031188577269d21410a94cb5939 /zabbix.spec
parentf6d28d7c04688a8470e3652b1532006c2462cb21 (diff)
automatic import of zabbix
Diffstat (limited to 'zabbix.spec')
-rw-r--r--zabbix.spec741
1 files changed, 741 insertions, 0 deletions
diff --git a/zabbix.spec b/zabbix.spec
new file mode 100644
index 0000000..32e4ea6
--- /dev/null
+++ b/zabbix.spec
@@ -0,0 +1,741 @@
+%global srcname zabbix
+
+Name: zabbix
+Version: 6.0.38
+Release: 1
+Summary: The Enterprise-class open source monitoring solution
+License: GPLv2
+URL: http://www.zabbix.com/
+Source0: https://cdn.zabbix.com/zabbix/sources/stable/6.0/zabbix-%{version}.tar.gz
+Source1: %{srcname}-web.conf
+Source2: %{srcname}-php-fpm.conf
+Source5: %{srcname}-logrotate.in
+Source9: %{srcname}-tmpfiles-zabbix.conf
+# systemd units -- Alternatives switches between them (they state their dependencies)
+# https://support.zabbix.com/browse/ZBXNEXT-1593
+Source10: %{srcname}-agent.service
+Source11: %{srcname}-proxy-mysql.service
+Source12: %{srcname}-proxy-pgsql.service
+Source13: %{srcname}-proxy-sqlite3.service
+Source14: %{srcname}-server-mysql.service
+Source15: %{srcname}-server-pgsql.service
+Source17: %{srcname}-tmpfiles-zabbixsrv.conf
+Source18: %{srcname}.te
+Source19: %{srcname}.if
+Source20: %{srcname}.fc
+
+# This is not a symlink, because we don't want the webserver to possibly ever serve it.
+# local rules for config files
+Patch0: %{srcname}-config.patch
+# Allow out-of-tree builds
+# https://support.zabbix.com/browse/ZBXNEXT-6077
+Patch1: %{srcname}-out-of-tree.patch
+# Enforce Fedora Crypto Policy
+Patch2: %{srcname}-crypto-policy.patch
+Patch3: %{srcname}-configure-sscanf.patch
+
+# Patch1 patches automake files so we need to autoreconf
+BuildRequires: libtool
+BuildRequires: make
+BuildRequires: mysql-devel
+BuildRequires: libpq-devel
+BuildRequires: sqlite-devel
+BuildRequires: net-snmp-devel
+BuildRequires: openldap-devel
+BuildRequires: openssl-devel
+BuildRequires: gnutls-devel
+BuildRequires: unixODBC-devel
+BuildRequires: curl-devel
+BuildRequires: OpenIPMI-devel
+BuildRequires: libssh2-devel
+BuildRequires: libxml2-devel
+BuildRequires: libevent-devel
+BuildRequires: pcre2-devel
+BuildRequires: gcc
+
+BuildRequires: systemd
+BuildRequires: google-noto-sans-cjk-sc-fonts
+BuildRequires: fonts-srpm-macros
+
+Requires: logrotate
+Provides: bundled(md5-deutsch)
+
+%description
+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 visualization 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 front end.
+A web-based front end 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 organizations with a few servers and for large companies with a
+multitude of servers.
+
+%package dbfiles-mysql
+Summary: Zabbix database schemas, images, data and patches
+BuildArch: noarch
+
+%description dbfiles-mysql
+Zabbix database schemas, images, data and patches necessary for creating
+and/or updating MySQL databases
+
+%package dbfiles-pgsql
+Summary: Zabbix database schemas, images, data and patches
+BuildArch: noarch
+
+%description dbfiles-pgsql
+Zabbix database schemas, images, data and patches necessary for creating
+and/or updating PostgreSQL databases
+
+%package dbfiles-sqlite3
+Summary: Zabbix database schemas and patches
+BuildArch: noarch
+
+%description dbfiles-sqlite3
+Zabbix database schemas and patches necessary for creating
+and/or updating SQLite databases
+
+%package server
+Summary: Zabbix server common files
+BuildArch: noarch
+Requires: %{name} = %{version}-%{release}
+Requires: %{name}-server-implementation = %{version}-%{release}
+Requires: fping
+Requires: traceroute
+Requires(pre): shadow-utils
+Requires(post): systemd
+Requires(preun): systemd
+Requires(postun): systemd
+
+%description server
+Zabbix server common files
+
+%package server-mysql
+Summary: Zabbix server compiled to use MySQL
+Requires: %{name} = %{version}-%{release}
+Requires: %{name}-dbfiles-mysql
+Requires: %{name}-server = %{version}-%{release}
+Requires(post): %{_sbindir}/update-alternatives
+Requires(preun): %{_sbindir}/alternatives
+Requires(postun): %{_sbindir}/update-alternatives
+Provides: %{name}-server-implementation = %{version}-%{release}
+
+%description server-mysql
+Zabbix server compiled to use MySQL
+
+%package server-pgsql
+Summary: Zabbix server compiled to use PostgreSQL
+Requires: %{name} = %{version}-%{release}
+Requires: %{name}-server = %{version}-%{release}
+Requires: %{name}-dbfiles-pgsql
+Requires(post): %{_sbindir}/update-alternatives
+Requires(preun): %{_sbindir}/alternatives
+Requires(postun): %{_sbindir}/update-alternatives
+Provides: %{name}-server-implementation = %{version}-%{release}
+
+%description server-pgsql
+Zabbix server compiled to use PostgreSQL
+
+%package agent
+Summary: Zabbix agent
+Requires: %{name} = %{version}-%{release}
+Requires(pre): shadow-utils
+Requires(post): systemd
+Requires(preun): systemd
+Requires(postun): systemd
+
+%description agent
+Zabbix agent, to be installed on monitored systems
+
+%package proxy
+Summary: Zabbix proxy common files
+BuildArch: noarch
+Requires: %{name} = %{version}-%{release}
+Requires: %{name}-proxy-implementation = %{version}-%{release}
+Requires(pre): shadow-utils
+Requires(post): systemd
+Requires(preun): systemd
+Requires(postun): systemd
+Requires: fping
+
+%description proxy
+Zabbix proxy commmon files
+
+%package proxy-mysql
+Summary: Zabbix proxy compiled to use MySQL
+Requires: %{name}-proxy = %{version}-%{release}
+Requires: %{name}-dbfiles-mysql
+Provides: %{name}-proxy-implementation = %{version}-%{release}
+Requires(post): %{_sbindir}/update-alternatives
+Requires(preun): %{_sbindir}/alternatives
+Requires(postun): %{_sbindir}/update-alternatives
+
+%description proxy-mysql
+Zabbix proxy compiled to use MySQL
+
+%package proxy-pgsql
+Summary: Zabbix proxy compiled to use PostgreSQL
+Requires: %{name}-proxy = %{version}-%{release}
+Requires: %{name}-dbfiles-pgsql
+Provides: %{name}-proxy-implementation = %{version}-%{release}
+Requires(post): %{_sbindir}/update-alternatives
+Requires(preun): %{_sbindir}/alternatives
+Requires(postun): %{_sbindir}/update-alternatives
+
+%description proxy-pgsql
+Zabbix proxy compiled to use PostgreSQL
+
+%package proxy-sqlite3
+Summary: Zabbix proxy compiled to use SQLite
+Requires: %{name}-proxy = %{version}-%{release}
+Requires: %{name}-dbfiles-sqlite3
+Provides: %{name}-proxy-implementation = %{version}-%{release}
+Requires(post): %{_sbindir}/update-alternatives
+Requires(preun): %{_sbindir}/alternatives
+Requires(postun): %{_sbindir}/update-alternatives
+
+%description proxy-sqlite3
+Zabbix proxy compiled to use SQLite
+
+%package web
+Summary: Zabbix Web Frontend
+BuildArch: noarch
+Requires: php-bcmath
+Requires: php-fpm
+Requires: php-gd
+Requires: php-gettext
+Requires: php-json
+Requires: php-ldap
+Requires: php-mbstring
+Requires: php-xml
+# jquery 3.3.1 and jquery-ui 1.12.1 in the sources
+Requires: js-jquery >= 3.6.0
+Provides: bundled(js-jquery-ui) = 1.12.1
+# prototype 1.6.1 in the sources, Fedora package is dead
+#Requires: prototype
+Requires: google-noto-sans-cjk-sc-fonts
+Requires: %{name} = %{version}-%{release}
+Requires: %{name}-web-database = %{version}-%{release}
+
+%description web
+The php frontend to display the Zabbix web interface.
+
+%package web-mysql
+Summary: Zabbix web frontend for MySQL
+BuildArch: noarch
+Requires: %{name}-web = %{version}-%{release}
+Requires: php-mysqli
+Provides: %{name}-web-database = %{version}-%{release}
+
+%description web-mysql
+Zabbix web frontend for MySQL
+
+%package web-pgsql
+Summary: Zabbix web frontend for PostgreSQL
+BuildArch: noarch
+Requires: %{name}-web = %{version}-%{release}
+Requires: php-pgsql
+Provides: %{name}-web-database = %{version}-%{release}
+
+%description web-pgsql
+Zabbix web frontend for PostgreSQL
+
+%prep
+%autosetup -p1
+
+autoreconf
+
+# Remove bundled java libs
+find -name \*.jar -delete
+
+# Remove prebuilt Windows binaries
+rm -rf bin
+
+# Override creation of statically named directory for alertscripts and externalscripts
+# https://support.zabbix.com/browse/ZBX-6159
+sed -i '/CURL_SSL_.*_LOCATION\|SCRIPTS_PATH/s|\${datadir}/zabbix|/var/lib/zabbixsrv|' \
+ configure
+
+# Kill off .htaccess files, options set in SOURCE1
+find -name .htaccess -delete
+
+# Fix path to traceroute utility (on all Linux targets)
+find database -name 'data.sql' -exec sed -i 's|/usr/bin/traceroute|/bin/traceroute|' {} \;
+
+# Common
+# Settings with hard-coded defaults that are not suitable for Fedora
+# are explicitly set, leaving the comment with the default value in place.
+# Settings without hard-coded defaults are simply replaced -- be they
+# comments or explicit settings!
+
+# Also replace the datadir placeholder that is not expanded, but effective
+sed -i \
+ -e '\|^# LogFileSize=.*|a LogFileSize=0' \
+ -e 's|^DBUser=root|DBUser=zabbix|' \
+ -e 's|^# DBSocket=.*|DBSocket=%{_sharedstatedir}/mysql/mysql.sock|' \
+ -e '\|^# ExternalScripts=|a ExternalScripts=%{_sharedstatedir}/zabbixsrv/externalscripts' \
+ -e '\|^# AlertScriptsPath=|a AlertScriptsPath=%{_sharedstatedir}/zabbixsrv/alertscripts' \
+ -e '\|^# TmpDir=\/tmp|a TmpDir=%{_sharedstatedir}/zabbixsrv/tmp' \
+ -e 's|/usr/local||' \
+ -e 's|\${datadir}|/usr/share|' \
+ conf/zabbix_agentd.conf conf/zabbix_proxy.conf conf/zabbix_server.conf
+
+# Specific
+sed -i \
+ -e '\|^# PidFile=.*|a PidFile=%{_rundir}/zabbix/zabbix_agentd.pid' \
+ -e 's|^LogFile=.*|LogFile=%{_localstatedir}/log/zabbix/zabbix_agentd.log|' \
+ conf/zabbix_agentd.conf
+
+sed -i \
+ -e '\|^# PidFile=.*|a PidFile=%{_rundir}/zabbixsrv/zabbix_proxy.pid' \
+ -e 's|^LogFile=.*|LogFile=%{_localstatedir}/log/zabbixsrv/zabbix_proxy.log|' \
+ conf/zabbix_proxy.conf
+
+sed -i \
+ -e '\|^# PidFile=.*|a PidFile=%{_rundir}/zabbixsrv/zabbix_server.pid' \
+ -e 's|^LogFile=.*|LogFile=%{_localstatedir}/log/zabbixsrv/zabbix_server.log|' \
+ conf/zabbix_server.conf
+
+
+%build
+
+common_flags="
+ --enable-dependency-tracking
+ --enable-proxy
+ --enable-ipv6
+ --with-net-snmp
+ --with-ldap
+ --with-libcurl
+ --with-openipmi
+ --with-unixodbc
+ --with-ssh2
+ --with-libxml2
+ --with-libevent
+ --with-libpcre2
+ --with-openssl
+"
+# Setup out of tree builds
+%global _configure ../configure
+
+# Frontend doesn't work for SQLite, thus don't build server
+mkdir -p build-frontend
+cd build-frontend
+%configure $common_flags --enable-agent --with-sqlite3
+%make_build
+cd -
+
+mkdir -p build-server-mysql
+cd build-server-mysql
+%configure $common_flags --with-mysql --enable-server
+%make_build
+cd -
+
+mkdir -p build-server-postgresql
+cd build-server-postgresql
+%configure $common_flags --with-postgresql --enable-server
+%make_build
+cd -
+
+%if 0%{?with_selinux}
+# SELinux policy (originally from selinux-policy-contrib)
+# this policy module will override the production module
+mkdir selinux
+cp -p %{SOURCE18} selinux/
+cp -p %{SOURCE19} selinux/
+cp -p %{SOURCE20} selinux/
+
+make -f %{_datadir}/selinux/devel/Makefile %{srcname}.pp
+bzip2 -9 %{srcname}.pp
+%endif
+
+
+%install
+# Install binaries
+%make_install -C build-frontend
+mv $RPM_BUILD_ROOT%{_sbindir}/zabbix_proxy{,_sqlite3}
+%make_install -C build-server-mysql
+mv $RPM_BUILD_ROOT%{_sbindir}/zabbix_proxy{,_mysql}
+mv $RPM_BUILD_ROOT%{_sbindir}/zabbix_server{,_mysql}
+%make_install -C build-server-postgresql
+mv $RPM_BUILD_ROOT%{_sbindir}/zabbix_proxy{,_pgsql}
+mv $RPM_BUILD_ROOT%{_sbindir}/zabbix_server{,_pgsql}
+
+# Ghosted alternatives
+touch $RPM_BUILD_ROOT%{_sbindir}/zabbix_{proxy,server}
+
+# Home directory for the agent;
+# The other home directory is created during installation
+mkdir -p $RPM_BUILD_ROOT%{_sharedstatedir}/zabbix
+
+# Log directories
+mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/log/zabbix
+mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/log/zabbixsrv
+
+# systemd tmpfiles
+mkdir -p $RPM_BUILD_ROOT%{_prefix}/lib/tmpfiles.d
+install -m 0644 -p %{SOURCE9} $RPM_BUILD_ROOT%{_prefix}/lib/tmpfiles.d/zabbix.conf
+install -m 0644 -p %{SOURCE17} $RPM_BUILD_ROOT%{_prefix}/lib/tmpfiles.d/zabbixsrv.conf
+mkdir -p $RPM_BUILD_ROOT%{_rundir}
+install -d -m 0755 $RPM_BUILD_ROOT%{_rundir}/zabbix/
+install -d -m 0755 $RPM_BUILD_ROOT%{_rundir}/zabbixsrv/
+
+# Install the frontend after removing backup files from patching
+find ui -name '*.orig' -delete
+mkdir -p $RPM_BUILD_ROOT%{_datadir}/%{srcname}
+cp -a ui/* $RPM_BUILD_ROOT%{_datadir}/%{srcname}/
+
+# Prepare ghosted config file
+mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/%{srcname}/web
+touch $RPM_BUILD_ROOT%{_sysconfdir}/%{srcname}/web/zabbix.conf.php
+
+# Replace bundled font
+[ -d %{_fontbasedir}/google-noto-cjk ] &&
+ ln -sf ../../../fonts/google-noto-cjk/NotoSansCJKsc-Regular.otf $RPM_BUILD_ROOT%{_datadir}/%{srcname}/assets/fonts/DejaVuSans.ttf
+
+# Replace JS libraries
+# There is no jquery-ui package yet
+ln -sf ../../../javascript/jquery/3/jquery.min.js $RPM_BUILD_ROOT%{_datadir}/%{srcname}/js/vendors/jquery.js
+#ln -sf ../../../javascript/jquery-ui/1/jquery-ui.min.js $RPM_BUILD_ROOT%{_datadir}/%{srcname}/js/vendors/jquery-ui.js
+
+# This file is used to switch the frontend to maintenance mode
+mv $RPM_BUILD_ROOT%{_datadir}/%{srcname}/conf/maintenance.inc.php $RPM_BUILD_ROOT%{_sysconfdir}/%{srcname}/web/maintenance.inc.php || :
+
+# Drop Apache config file in place
+mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/httpd/conf.d
+install -m 0644 -p %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir}/httpd/conf.d/%{srcname}.conf
+
+# Drop php-fpm config file in place
+mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/php-fpm.d
+install -m 0644 -p %{SOURCE2} $RPM_BUILD_ROOT%{_sysconfdir}/php-fpm.d/%{srcname}.conf
+
+# Install log rotation
+mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d
+sed -e 's|COMPONENT|agentd|g; s|USER|zabbix|g' %{SOURCE5} > \
+ $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/zabbix-agent
+sed -e 's|COMPONENT|server|g; s|USER|zabbixsrv|g' %{SOURCE5} > \
+ $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/zabbix-server
+sed -e 's|COMPONENT|proxy|g; s|USER|zabbixsrv|g' %{SOURCE5} > \
+ $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/zabbix-proxy
+
+# Install different systemd units because of the requirements for DBMS daemons
+mkdir -p $RPM_BUILD_ROOT%{_unitdir}
+install -m 0644 -p %{SOURCE10} $RPM_BUILD_ROOT%{_unitdir}/zabbix-agent.service
+install -m 0644 -p %{SOURCE11} $RPM_BUILD_ROOT%{_unitdir}/zabbix-proxy-mysql.service
+install -m 0644 -p %{SOURCE12} $RPM_BUILD_ROOT%{_unitdir}/zabbix-proxy-pgsql.service
+install -m 0644 -p %{SOURCE13} $RPM_BUILD_ROOT%{_unitdir}/zabbix-proxy-sqlite3.service
+install -m 0644 -p %{SOURCE14} $RPM_BUILD_ROOT%{_unitdir}/zabbix-server-mysql.service
+install -m 0644 -p %{SOURCE15} $RPM_BUILD_ROOT%{_unitdir}/zabbix-server-pgsql.service
+
+# Ghosted alternatives
+touch $RPM_BUILD_ROOT%{_unitdir}/zabbix-server.service
+touch $RPM_BUILD_ROOT%{_unitdir}/zabbix-proxy.service
+
+# Directory for fping spooling files
+mkdir -p $RPM_BUILD_ROOT%{_sharedstatedir}/zabbixsrv/tmp
+
+# Install sql files
+for db in postgresql mysql; do
+ mkdir $RPM_BUILD_ROOT%{_datadir}/%{srcname}-$db
+ cp -p database/$db/*.sql $RPM_BUILD_ROOT%{_datadir}/%{srcname}-$db
+done
+
+install -dm 755 $RPM_BUILD_ROOT%{_datadir}/%{srcname}-sqlite3
+cp -p database/sqlite3/schema.sql $RPM_BUILD_ROOT%{_datadir}/%{srcname}-sqlite3
+
+%post server
+%systemd_post zabbix-server.service
+
+if [ $1 -gt 1 ] ; then
+ # Apply permissions also in *.rpmnew upgrades from old permissive ones
+ chmod 0640 %{_sysconfdir}/zabbix_server.conf
+ chown root:zabbixsrv %{_sysconfdir}/zabbix_server.conf
+fi
+:
+
+%post server-mysql
+%{_sbindir}/update-alternatives --install %{_sbindir}/%{srcname}_server \
+ %{srcname}-server %{_sbindir}/%{srcname}_server_mysql 10 \
+ --slave %{_unitdir}/zabbix-server.service %{srcname}-server-systemd \
+ %{_unitdir}/zabbix-server-mysql.service
+
+%post server-pgsql
+%{_sbindir}/update-alternatives --install %{_sbindir}/%{srcname}_server \
+ %{srcname}-server %{_sbindir}/%{srcname}_server_pgsql 10 \
+ --slave %{_unitdir}/zabbix-server.service %{srcname}-server-systemd \
+ %{_unitdir}/zabbix-server-pgsql.service
+
+%post proxy
+%systemd_post zabbix-proxy.service
+
+if [ $1 -gt 1 ] ; then
+ # Apply permissions also in *.rpmnew upgrades from old permissive ones
+ chmod 0640 %{_sysconfdir}/zabbix_proxy.conf
+ chown root:zabbixsrv %{_sysconfdir}/zabbix_proxy.conf
+fi
+:
+
+%post proxy-mysql
+%{_sbindir}/update-alternatives --install %{_sbindir}/%{srcname}_proxy \
+ %{srcname}-proxy %{_sbindir}/%{srcname}_proxy_mysql 10 \
+ --slave %{_unitdir}/zabbix-proxy.service %{srcname}-proxy-systemd \
+ %{_unitdir}/zabbix-proxy-mysql.service
+
+%post proxy-pgsql
+%{_sbindir}/update-alternatives --install %{_sbindir}/%{srcname}_proxy \
+ %{srcname}-proxy %{_sbindir}/%{srcname}_proxy_pgsql 10 \
+ --slave %{_unitdir}/zabbix-proxy.service %{srcname}-proxy-systemd \
+ %{_unitdir}/zabbix-proxy-pgsql.service
+
+%post proxy-sqlite3
+%{_sbindir}/update-alternatives --install %{_sbindir}/%{srcname}_proxy \
+ %{srcname}-proxy %{_sbindir}/%{srcname}_proxy_sqlite3 10 \
+ --slave %{_unitdir}/zabbix-proxy.service %{srcname}-proxy-systemd \
+ %{_unitdir}/zabbix-proxy-sqlite3.service
+
+%pre agent
+getent group zabbix > /dev/null || groupadd -r zabbix
+getent passwd zabbix > /dev/null || \
+ useradd -r -g zabbix -d %{_sharedstatedir}/zabbix -s /sbin/nologin \
+ -c "Zabbix Monitoring System" zabbix
+:
+
+%post agent
+%systemd_post zabbix-agent.service
+
+%pre server
+getent group zabbixsrv > /dev/null || groupadd -r zabbixsrv
+# The zabbixsrv group is introduced by 2.2 packaging
+# The zabbixsrv user was a member of the zabbix group in 2.0
+if getent passwd zabbixsrv > /dev/null; then
+ if [[ $(id -gn zabbixsrv) == "zabbix" ]]; then
+ usermod -c "Zabbix Monitoring System -- Proxy or server" -g zabbixsrv zabbixsrv
+ fi
+else
+ useradd -r -g zabbixsrv -d %{_sharedstatedir}/zabbixsrv -s /sbin/nologin \
+ -c "Zabbix Monitoring System -- Proxy or server" zabbixsrv
+fi
+:
+
+%preun server
+ %systemd_preun zabbix-server.service
+
+%pre proxy
+getent group zabbixsrv > /dev/null || groupadd -r zabbixsrv
+# The zabbixsrv group is introduced by 2.2 packaging
+# The zabbixsrv user was a member of the zabbix group in 2.0
+if getent passwd zabbixsrv > /dev/null; then
+ if [[ $(id -gn zabbixsrv) == "zabbix" ]]; then
+ usermod -c "Zabbix Monitoring System -- Proxy or server" -g zabbixsrv zabbixsrv
+ fi
+else
+ useradd -r -g zabbixsrv -d %{_sharedstatedir}/zabbixsrv -s /sbin/nologin \
+ -c "Zabbix Monitoring System -- Proxy or server" zabbixsrv
+fi
+:
+
+%preun proxy
+%systemd_preun zabbix-proxy.service
+
+%preun agent
+%systemd_preun zabbix-agent.service
+
+%postun server
+%systemd_postun_with_restart zabbix-server.service
+
+%postun server-mysql
+if [ $1 -eq 0 ] ; then
+ %{_sbindir}/update-alternatives --remove %{srcname}-server %{_sbindir}/%{srcname}_server_mysql
+fi
+
+%postun server-pgsql
+if [ $1 -eq 0 ] ; then
+ %{_sbindir}/update-alternatives --remove %{srcname}-server %{_sbindir}/%{srcname}_server_pgsql
+fi
+
+%postun proxy
+%systemd_postun_with_restart zabbix-proxy.service
+
+%postun proxy-mysql
+if [ $1 -eq 0 ] ; then
+ %{_sbindir}/update-alternatives --remove %{srcname}-proxy %{_sbindir}/%{srcname}_proxy_mysql
+fi
+
+%postun proxy-pgsql
+if [ $1 -eq 0 ] ; then
+ %{_sbindir}/update-alternatives --remove %{srcname}-proxy %{_sbindir}/%{srcname}_proxy_pgsql
+fi
+
+%postun proxy-sqlite3
+if [ $1 -eq 0 ] ; then
+ %{_sbindir}/update-alternatives --remove %{srcname}-proxy %{_sbindir}/%{srcname}_proxy_sqlite3
+fi
+
+%postun agent
+%systemd_postun_with_restart zabbix-agent.service
+
+%files
+%license COPYING
+%doc AUTHORS ChangeLog NEWS README
+%dir %{_sysconfdir}/%{srcname}
+%config(noreplace) %{_sysconfdir}/zabbix_agentd.conf
+%{_bindir}/zabbix_get
+%{_bindir}/zabbix_js
+%{_bindir}/zabbix_sender
+%{_mandir}/man1/zabbix_get.1*
+%{_mandir}/man1/zabbix_sender.1*
+
+%files dbfiles-mysql
+%license COPYING
+%{_datadir}/%{srcname}-mysql/
+
+%files dbfiles-pgsql
+%license COPYING
+%{_datadir}/%{srcname}-postgresql/
+
+%files dbfiles-sqlite3
+%license COPYING
+%{_datadir}/%{srcname}-sqlite3/
+
+%files server
+%doc misc/snmptrap/zabbix_trap_receiver.pl
+%attr(0755,zabbixsrv,zabbixsrv) %dir %{_rundir}/zabbixsrv/
+%{_prefix}/lib/tmpfiles.d/zabbixsrv.conf
+%attr(0640,root,zabbixsrv) %config(noreplace) %{_sysconfdir}/zabbix_server.conf
+%attr(0775,root,zabbixsrv) %dir %{_localstatedir}/log/zabbixsrv
+%config(noreplace) %{_sysconfdir}/logrotate.d/zabbix-server
+%ghost %{_sbindir}/zabbix_server
+%attr(0750,zabbixsrv,zabbixsrv) %dir %{_sharedstatedir}/zabbixsrv
+%attr(0750,zabbixsrv,zabbixsrv) %dir %{_sharedstatedir}/zabbixsrv/tmp
+%attr(0750,zabbixsrv,zabbixsrv) %dir %{_sharedstatedir}/zabbixsrv/alertscripts
+%attr(0750,zabbixsrv,zabbixsrv) %dir %{_sharedstatedir}/zabbixsrv/externalscripts
+%ghost %{_unitdir}/zabbix-server.service
+%{_mandir}/man8/zabbix_server.8*
+
+%files server-mysql
+%{_sbindir}/zabbix_server_mysql
+%{_unitdir}/zabbix-server-mysql.service
+
+%files server-pgsql
+%{_sbindir}/zabbix_server_pgsql
+%{_unitdir}/zabbix-server-pgsql.service
+
+%if 0%{?with_selinux}
+%files selinux
+%{_datadir}/selinux/packages/%{selinuxtype}/%{name}.pp.*
+%{_datadir}/selinux/devel/include/distributed/%{name}.if
+%ghost %verify(not md5 size mode mtime) %{_sharedstatedir}/selinux/%{selinuxtype}/active/modules/200/%{name}
+%endif
+
+%files agent
+%doc conf/zabbix_agentd/*.conf
+%attr(0755,zabbix,zabbix) %dir %{_rundir}/zabbix/
+%{_prefix}/lib/tmpfiles.d/zabbix.conf
+%attr(0775,root,zabbix) %dir %{_localstatedir}/log/zabbix
+%config(noreplace) %{_sysconfdir}/zabbix_agentd.conf
+%config(noreplace) %{_sysconfdir}/logrotate.d/zabbix-agent
+%attr(750,zabbix,zabbix) %dir %{_sharedstatedir}/zabbix
+%{_unitdir}/zabbix-agent.service
+%{_sbindir}/zabbix_agentd
+%{_mandir}/man8/zabbix_agentd.8*
+
+%files proxy
+%doc misc/snmptrap/zabbix_trap_receiver.pl
+%attr(0755,zabbixsrv,zabbixsrv) %dir %{_rundir}/zabbixsrv/
+%{_prefix}/lib/tmpfiles.d/zabbixsrv.conf
+%attr(0640,root,zabbixsrv) %config(noreplace) %{_sysconfdir}/zabbix_proxy.conf
+%attr(0775,root,zabbixsrv) %dir %{_localstatedir}/log/zabbixsrv
+%config(noreplace) %{_sysconfdir}/logrotate.d/zabbix-proxy
+%ghost %{_sbindir}/zabbix_proxy
+%attr(0750,zabbixsrv,zabbixsrv) %dir %{_sharedstatedir}/zabbixsrv
+%attr(0750,zabbixsrv,zabbixsrv) %dir %{_sharedstatedir}/zabbixsrv/tmp
+%attr(0750,zabbixsrv,zabbixsrv) %dir %{_sharedstatedir}/zabbixsrv/alertscripts
+%attr(0750,zabbixsrv,zabbixsrv) %dir %{_sharedstatedir}/zabbixsrv/externalscripts
+%ghost %{_unitdir}/zabbix-proxy.service
+%{_mandir}/man8/zabbix_proxy.8*
+
+%files proxy-mysql
+%{_sbindir}/zabbix_proxy_mysql
+%{_unitdir}/zabbix-proxy-mysql.service
+
+%files proxy-pgsql
+%{_sbindir}/zabbix_proxy_pgsql
+%{_unitdir}/zabbix-proxy-pgsql.service
+
+%files proxy-sqlite3
+%{_sbindir}/zabbix_proxy_sqlite3
+%{_unitdir}/zabbix-proxy-sqlite3.service
+
+%files web
+%dir %attr(0750,apache,apache) %{_sysconfdir}/%{srcname}/web
+%ghost %attr(0644,apache,apache) %config(noreplace) %{_sysconfdir}/%{srcname}/web/zabbix.conf.php
+%attr(0644,apache,apache) %config(noreplace) %{_sysconfdir}/%{srcname}/web/maintenance.inc.php
+%config(noreplace) %{_sysconfdir}/httpd/conf.d/zabbix.conf
+%config(noreplace) %{_sysconfdir}/php-fpm.d/zabbix.conf
+%{_datadir}/%{srcname}/
+
+%files web-mysql
+
+%files web-pgsql
+
+%changelog
+* Wed Jan 29 2025 Funda Wang <fundawang@yeah.net> - 6.0.38-1
+- 6.0.38
+
+* Thu Dec 19 2024 Funda Wang <fundawang@yeah.net> - 6.0.37-1
+- 6.0.37
+
+* Fri Nov 22 2024 Funda Wang <fundawang@yeah.net> - 6.0.36-1
+- 6.0.36
+
+* Wed Oct 23 2024 Funda Wang <fundawang@yeah.net> - 6.0.35-1
+- 6.0.35
+
+* Sun Sep 29 2024 Funda Wang <fundawang@yeah.net> - 6.0.34-1
+- 6.0.34
+
+* Thu Aug 15 2024 Funda Wang <fundawang@yeah.net> - 6.0.33-1
+- 6.0.33
+
+* Wed Jul 17 2024 Funda Wang <fundawang@yeah.net> - 6.0.32-1
+- 6.0.32
+
+* Sun Jun 23 2024 Funda Wang <fundawang@yeah.net> - 6.0.31-1
+- 6.0.31
+
+* Fri May 31 2024 Funda Wang <fundawang@yeah.net> - 6.0.30-1
+- 6.0.30
+
+* Wed Apr 24 2024 Funda Wang <fundawang@yeah.net> - 6.0.29-1
+- 6.0.29
+
+* Fri Mar 29 2024 Funda Wang <fundawang@yeah.net> - 6.0.28-1
+- 6.0.28
+
+* Fri Feb 02 2024 Funda Wang <fundawang@yeah.net> - 6.0.26-1
+- 6.0.26
+
+* Sat Jan 27 2024 Funda Wang <fundawang@yeah.net> - 6.0.25-1
+- 6.0.25
+
+* Mon Oct 02 2023 Funda Wang <fundawang@yeah.net> - 6.0.22-1
+- 6.0.22
+
+* Tue Aug 22 2023 Funda Wang <fundawang@yeah.net> - 6.0.20-1
+- update to 6.0.20
+
+* Mon Aug 15 2022 Zhang Jun <zhangjun@kylinos.cn> - 5.2.6-4
+- update BuildRequire mysql-devel to mysql5-devel
+
+* Fri Oct 29 2021 Wang Jiangyong <wangjy41@chinatelecom.cn> - 5.2.6-3
+- solve the problem x86 build failed on offline environment
+
+* Fri May 14 2021 duyiwei <duyiwei@kylinos.cn> - 5.2.6-2
+- solve the problem that missing or redundant if/endif
+
+* Fri Apr 16 2021 duyiwei <duyiwei@kylinos.cn> - 5.2.6-1
+- init