diff options
Diffstat (limited to 'zabbix.spec')
-rw-r--r-- | zabbix.spec | 632 |
1 files changed, 359 insertions, 273 deletions
diff --git a/zabbix.spec b/zabbix.spec index f61486c..8ffd9b3 100644 --- a/zabbix.spec +++ b/zabbix.spec @@ -1,43 +1,58 @@ -%global srcname zabbix - -Name: zabbix -Version: 6.0.36 -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 +# TODO, maybe sometime: +# * Allow for nginx? +# * Consider using systemd's ReadWriteDirectories + +#TODO: systemctl reload seems to be necessary after switching with Alternatives +#TODO: If the DB path for a Sqlite proxy is configured wrong, it requires systemctl restart. Start doesn't work. + +%global with_selinux 1 +%global selinuxtype targeted +# go is needed for agent2, but there are missing deps +%bcond_with go +# Missing dependencies for the java connector +%bcond_with java +#%%global prerelease rc2 + +Name: zabbix +Version: 7.0.6 +Release: 1 +Summary: Open-source monitoring solution for your IT infrastructure +License: AGPL-3.0-only AND MIT AND GPL-2.0-or-later AND Zlib AND BSD-3-Clause AND BSD-2-Clause AND ISC +URL: https://www.zabbix.com +Source0: https://cdn.zabbix.com/zabbix/sources/stable/7.0/zabbix-%{version}.tar.gz +Source1: %{name}-web.conf +Source2: %{name}-php-fpm.conf +Source5: %{name}-logrotate.in +Source9: %{name}-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 - +Source10: %{name}-agent.service +Source11: %{name}-proxy-mysql.service +Source12: %{name}-proxy-pgsql.service +Source13: %{name}-proxy-sqlite3.service +Source14: %{name}-server-mysql.service +Source15: %{name}-server-pgsql.service +Source17: %{name}-tmpfiles-zabbixsrv.conf +Source18: %{name}.te +Source19: %{name}.if +Source20: %{name}.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 +Patch0: %{name}-config.patch # Allow out-of-tree builds # https://support.zabbix.com/browse/ZBXNEXT-6077 -Patch1: %{srcname}-out-of-tree.patch +Patch1: %{name}-out-of-tree.patch # Enforce Fedora Crypto Policy -Patch2: %{srcname}-crypto-policy.patch -Patch3: %{srcname}-configure-sscanf.patch +Patch2: %{name}-crypto-policy.patch +# Add <stdio> to sscanf check +# https://support.zabbix.com/browse/ZBX-21946 +Patch3: %{name}-configure-sscanf.patch # Patch1 patches automake files so we need to autoreconf BuildRequires: libtool BuildRequires: make -BuildRequires: mysql-devel +BuildRequires: mariadb-connector-c-devel BuildRequires: libpq-devel BuildRequires: sqlite-devel BuildRequires: net-snmp-devel @@ -52,12 +67,36 @@ BuildRequires: libxml2-devel BuildRequires: libevent-devel BuildRequires: pcre2-devel BuildRequires: gcc - +# For Agent 2 - has missing deps +%if %{with go} +BuildRequires: gcc-go +#BuildRequires: golang(github.com/alimy/mc/v2) +BuildRequires: golang(github.com/docker/go-connections) +#BuildRequires: golang(github.com/dustin/gomemcached) +BuildRequires: golang(github.com/fsnotify/fsnotify) +BuildRequires: golang(github.com/go-ldap/ldap) +#BuildRequires: golang(github.com/go-ole/go-ole) +BuildRequires: golang(github.com/go-sql-driver/mysql) +BuildRequires: golang(github.com/godbus/dbus) +#BuildRequires: golang(github.com/jackc/pgx/v4) +BuildRequires: golang(github.com/mattn/go-sqlite3) +#BuildRequires: golang(github.com/mediocregopher/radix/v3) +#BuildRequires: golang(github.com/natefinch/npipe) +#BuildRequires: golang(github.com/testcontainers/testcontainers-go) +#BuildRequires: golang(golang.org/x/sys) +%endif BuildRequires: systemd -BuildRequires: google-noto-sans-cjk-sc-fonts -BuildRequires: fonts-srpm-macros - +# Needed to determine path to link to +BuildRequires: dejavu-sans-fonts + Requires: logrotate + +%if 0%{?with_selinux} +# This ensures that the *-selinux package and all it’s dependencies are not pulled +# into containers and other systems that do not use SELinux +Requires: (%{name}-selinux if selinux-policy-%{selinuxtype}) +%endif + Provides: bundled(md5-deutsch) %description @@ -67,7 +106,7 @@ 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 @@ -79,27 +118,27 @@ 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 @@ -108,171 +147,187 @@ Requires: %{name}-server-implementation = %{version}-%{release} Requires: fping Requires: traceroute Requires(pre): shadow-utils -Requires(post): systemd -Requires(preun): systemd -Requires(postun): systemd - +%{?systemd_requires} + %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 - +%{?systemd_requires} + %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 +%{?systemd_requires} 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-fpm >= 8.0 with php-fpm < 8.4) 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 +# jquery 3.6.0 and jquery-ui 1.13.2 in the sources Requires: js-jquery >= 3.6.0 -Provides: bundled(js-jquery-ui) = 1.12.1 +Provides: bundled(js-jquery-ui) = 1.13.2 # prototype 1.6.1 in the sources, Fedora package is dead #Requires: prototype -Requires: google-noto-sans-cjk-sc-fonts +Requires: dejavu-sans-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 +%if %{with java} +%package -n java-%{name} +Summary: Zabbix Java connector +BuildArch: noarch +BuildRequires: java-devel +BuildRequires: osgi(org.junit) +BuildRequires: osgi(slf4j.api) +BuildRequires: osgi(logback) + +%description -n java-%{name} +Zabbix Java connector. +%endif + +%if 0%{?with_selinux} +# SELinux subpackage +%package selinux +Summary: Zabbix SELinux policy +BuildArch: noarch +Requires: selinux-policy-%{selinuxtype} +Requires(post): selinux-policy-%{selinuxtype} +BuildRequires: selinux-policy-devel +%{?selinux_requires} + +%description selinux +Custom SELinux policy module +%endif + + %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' \ @@ -284,26 +339,25 @@ sed -i \ -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 @@ -321,192 +375,252 @@ common_flags=" " # Setup out of tree builds %global _configure ../configure - + +%if %{with java} +export CLASSPATH=$(build-classpath junit slf4j-api logback-core logback-classic android-json) +%endif + # 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 +%configure $common_flags --enable-agent --with-sqlite3 %{?with_go:--enable-agent2} %{?with_java:--enable-java} %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 +cp -p %{S:18} selinux/ +cp -p %{S:19} selinux/ +cp -p %{S:20} selinux/ + +make -f %{_datadir}/selinux/devel/Makefile %{name}.pp +bzip2 -9 %{name}.pp %endif - - + + %install # Install binaries %make_install -C build-frontend -mv $RPM_BUILD_ROOT%{_sbindir}/zabbix_proxy{,_sqlite3} +mv %{buildroot}%{_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} +mv %{buildroot}%{_sbindir}/zabbix_proxy{,_mysql} +mv %{buildroot}%{_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} - +mv %{buildroot}%{_sbindir}/zabbix_proxy{,_pgsql} +mv %{buildroot}%{_sbindir}/zabbix_server{,_pgsql} + # Ghosted alternatives -touch $RPM_BUILD_ROOT%{_sbindir}/zabbix_{proxy,server} - +touch %{buildroot}%{_sbindir}/zabbix_{proxy,server} + # Home directory for the agent; # The other home directory is created during installation -mkdir -p $RPM_BUILD_ROOT%{_sharedstatedir}/zabbix - +mkdir -p %{buildroot}%{_sharedstatedir}/zabbix + # Log directories -mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/log/zabbix -mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/log/zabbixsrv - +mkdir -p %{buildroot}%{_localstatedir}/log/zabbix +mkdir -p %{buildroot}%{_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/ - +mkdir -p %{buildroot}%{_prefix}/lib/tmpfiles.d +install -m 0644 -p %{S:9} %{buildroot}%{_prefix}/lib/tmpfiles.d/zabbix.conf +install -m 0644 -p %{S:17} %{buildroot}%{_prefix}/lib/tmpfiles.d/zabbixsrv.conf +mkdir -p %{buildroot}%{_rundir} +install -d -m 0755 %{buildroot}%{_rundir}/zabbix/ +install -d -m 0755 %{buildroot}%{_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}/ - +mkdir -p %{buildroot}%{_datadir}/%{name} +cp -a ui/* %{buildroot}%{_datadir}/%{name}/ + # Prepare ghosted config file -mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/%{srcname}/web -touch $RPM_BUILD_ROOT%{_sysconfdir}/%{srcname}/web/zabbix.conf.php - +mkdir -p %{buildroot}%{_sysconfdir}/%{name}/web +touch %{buildroot}%{_sysconfdir}/%{name}/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 - +[ -d %{_fontbasedir}/dejavu ] && + ln -sf ../../../fonts/dejavu/DejaVuSans.ttf %{buildroot}%{_datadir}/%{name}/assets/fonts/ +[ -d %{_fontbasedir}/dejavu-sans-fonts ] && + ln -sf ../../../fonts/dejavu-sans-fonts/DejaVuSans.ttf %{buildroot}%{_datadir}/%{name}/assets/fonts/ + # 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 - +ln -sf ../../../javascript/jquery/3/jquery.min.js %{buildroot}%{_datadir}/%{name}/js/vendors/jquery.js +#ln -sf ../../../javascript/jquery-ui/1/jquery-ui.min.js %{buildroot}%{_datadir}/%{name}/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 || : - +mv %{buildroot}%{_datadir}/%{name}/conf/maintenance.inc.php %{buildroot}%{_sysconfdir}/%{name}/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 - +mkdir -p %{buildroot}%{_sysconfdir}/httpd/conf.d +install -m 0644 -p %{S:1} %{buildroot}%{_sysconfdir}/httpd/conf.d/%{name}.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 - +mkdir -p %{buildroot}%{_sysconfdir}/php-fpm.d +install -m 0644 -p %{S:2} %{buildroot}%{_sysconfdir}/php-fpm.d/%{name}.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 - +mkdir -p %{buildroot}%{_sysconfdir}/logrotate.d +sed -e 's|COMPONENT|agentd|g; s|USER|zabbix|g' %{S:5} > \ + %{buildroot}%{_sysconfdir}/logrotate.d/zabbix-agent +sed -e 's|COMPONENT|server|g; s|USER|zabbixsrv|g' %{S:5} > \ + %{buildroot}%{_sysconfdir}/logrotate.d/zabbix-server +sed -e 's|COMPONENT|proxy|g; s|USER|zabbixsrv|g' %{S:5} > \ + %{buildroot}%{_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 - +mkdir -p %{buildroot}%{_unitdir} +install -m 0644 -p %{S:10} %{buildroot}%{_unitdir}/zabbix-agent.service +install -m 0644 -p %{S:11} %{buildroot}%{_unitdir}/zabbix-proxy-mysql.service +install -m 0644 -p %{S:12} %{buildroot}%{_unitdir}/zabbix-proxy-pgsql.service +install -m 0644 -p %{S:13} %{buildroot}%{_unitdir}/zabbix-proxy-sqlite3.service +install -m 0644 -p %{S:14} %{buildroot}%{_unitdir}/zabbix-server-mysql.service +install -m 0644 -p %{S:15} %{buildroot}%{_unitdir}/zabbix-server-pgsql.service + # Ghosted alternatives -touch $RPM_BUILD_ROOT%{_unitdir}/zabbix-server.service -touch $RPM_BUILD_ROOT%{_unitdir}/zabbix-proxy.service - +touch %{buildroot}%{_unitdir}/zabbix-server.service +touch %{buildroot}%{_unitdir}/zabbix-proxy.service + # Directory for fping spooling files -mkdir -p $RPM_BUILD_ROOT%{_sharedstatedir}/zabbixsrv/tmp - +mkdir -p %{buildroot}%{_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 + mkdir %{buildroot}%{_datadir}/%{name}-$db + cp -p database/$db/*.sql %{buildroot}%{_datadir}/%{name}-$db done - -install -dm 755 $RPM_BUILD_ROOT%{_datadir}/%{srcname}-sqlite3 -cp -p database/sqlite3/schema.sql $RPM_BUILD_ROOT%{_datadir}/%{srcname}-sqlite3 + +install -dm 755 %{buildroot}%{_datadir}/%{name}-sqlite3 +cp -p database/sqlite3/schema.sql %{buildroot}%{_datadir}/%{name}-sqlite3 + +%if 0%{?with_selinux} +install -D -m 0644 %{name}.pp.bz2 %{buildroot}%{_datadir}/selinux/packages/%{selinuxtype}/%{name}.pp.bz2 +install -D -p -m 0644 selinux/%{name}.if %{buildroot}%{_datadir}/selinux/devel/include/distributed/%{name}.if +%endif + %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 \ +%{_sbindir}/update-alternatives --install %{_sbindir}/%{name}_server \ + %{name}-server %{_sbindir}/%{name}_server_mysql 10 \ + --slave %{_unitdir}/zabbix-server.service %{name}-server.service \ %{_unitdir}/zabbix-server-mysql.service - +# This needs to be run twice to rename from old slave name in zabbix < 6.0.33-2 +# due to a bug in alternatives. +%{_sbindir}/update-alternatives --install %{_sbindir}/%{name}_server \ + %{name}-server %{_sbindir}/%{name}_server_mysql 10 \ + --slave %{_unitdir}/zabbix-server.service %{name}-server.service \ + %{_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 \ +%{_sbindir}/update-alternatives --install %{_sbindir}/%{name}_server \ + %{name}-server %{_sbindir}/%{name}_server_pgsql 10 \ + --slave %{_unitdir}/zabbix-server.service %{name}-server.service \ %{_unitdir}/zabbix-server-pgsql.service - +# This needs to be run twice to rename from old slave name in zabbix < 6.0.33-2 +# due to a bug in alternatives. +%{_sbindir}/update-alternatives --install %{_sbindir}/%{name}_server \ + %{name}-server %{_sbindir}/%{name}_server_pgsql 10 \ + --slave %{_unitdir}/zabbix-server.service %{name}-server.service \ + %{_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 \ +%{_sbindir}/update-alternatives --install %{_sbindir}/%{name}_proxy \ + %{name}-proxy %{_sbindir}/%{name}_proxy_mysql 10 \ + --slave %{_unitdir}/zabbix-proxy.service %{name}-proxy.service \ + %{_unitdir}/zabbix-proxy-mysql.service +# This needs to be run twice to rename from old slave name in zabbix < 6.0.33-2 +# due to a bug in alternatives. Remove in F45 +%{_sbindir}/update-alternatives --install %{_sbindir}/%{name}_proxy \ + %{name}-proxy %{_sbindir}/%{name}_proxy_mysql 10 \ + --slave %{_unitdir}/zabbix-proxy.service %{name}-proxy.service \ %{_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 \ +%{_sbindir}/update-alternatives --install %{_sbindir}/%{name}_proxy \ + %{name}-proxy %{_sbindir}/%{name}_proxy_pgsql 10 \ + --slave %{_unitdir}/zabbix-proxy.service %{name}-proxy.service \ + %{_unitdir}/zabbix-proxy-pgsql.service +# This needs to be run twice to rename from old slave name in zabbix < 6.0.33-2 +# due to a bug in alternatives. Remove in F45 +%{_sbindir}/update-alternatives --install %{_sbindir}/%{name}_proxy \ + %{name}-proxy %{_sbindir}/%{name}_proxy_pgsql 10 \ + --slave %{_unitdir}/zabbix-proxy.service %{name}-proxy.service \ %{_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 \ +%{_sbindir}/update-alternatives --install %{_sbindir}/%{name}_proxy \ + %{name}-proxy %{_sbindir}/%{name}_proxy_sqlite3 10 \ + --slave %{_unitdir}/zabbix-proxy.service %{name}-proxy.service \ %{_unitdir}/zabbix-proxy-sqlite3.service - +# This needs to be run twice to rename from old slave name in zabbix < 6.0.33-2 +# due to a bug in alternatives. Remove in F45 +%{_sbindir}/update-alternatives --install %{_sbindir}/%{name}_proxy \ + %{name}-proxy %{_sbindir}/%{name}_proxy_sqlite3 10 \ + --slave %{_unitdir}/zabbix-proxy.service %{name}-proxy.service \ + %{_unitdir}/zabbix-proxy-sqlite3.service + +%if 0%{?with_selinux} +# SELinux contexts are saved so that only affected files can be +# relabeled after the policy module installation +%pre selinux +%selinux_relabel_pre -s %{selinuxtype} + +%post selinux +%selinux_modules_install -s %{selinuxtype} %{_datadir}/selinux/packages/%{selinuxtype}/%{name}.pp.bz2 + +%postun selinux +if [ $1 -eq 0 ]; then + %selinux_modules_uninstall -s %{selinuxtype} %{name} +fi + +%posttrans selinux +%selinux_relabel_post -s %{selinuxtype} +%endif + %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 @@ -520,10 +634,10 @@ else -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 @@ -537,70 +651,71 @@ else -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 + %{_sbindir}/update-alternatives --remove %{name}-server %{_sbindir}/%{name}_server_mysql fi - + %postun server-pgsql if [ $1 -eq 0 ] ; then - %{_sbindir}/update-alternatives --remove %{srcname}-server %{_sbindir}/%{srcname}_server_pgsql + %{_sbindir}/update-alternatives --remove %{name}-server %{_sbindir}/%{name}_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 + %{_sbindir}/update-alternatives --remove %{name}-proxy %{_sbindir}/%{name}_proxy_mysql fi - + %postun proxy-pgsql if [ $1 -eq 0 ] ; then - %{_sbindir}/update-alternatives --remove %{srcname}-proxy %{_sbindir}/%{srcname}_proxy_pgsql + %{_sbindir}/update-alternatives --remove %{name}-proxy %{_sbindir}/%{name}_proxy_pgsql fi - + %postun proxy-sqlite3 if [ $1 -eq 0 ] ; then - %{_sbindir}/update-alternatives --remove %{srcname}-proxy %{_sbindir}/%{srcname}_proxy_sqlite3 + %{_sbindir}/update-alternatives --remove %{name}-proxy %{_sbindir}/%{name}_proxy_sqlite3 fi - + %postun agent %systemd_postun_with_restart zabbix-agent.service + %files %license COPYING %doc AUTHORS ChangeLog NEWS README -%dir %{_sysconfdir}/%{srcname} +%dir %{_sysconfdir}/%{name} %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/ - +%{_datadir}/%{name}-mysql/ + %files dbfiles-pgsql %license COPYING -%{_datadir}/%{srcname}-postgresql/ - +%{_datadir}/%{name}-postgresql/ + %files dbfiles-sqlite3 %license COPYING -%{_datadir}/%{srcname}-sqlite3/ - +%{_datadir}/%{name}-sqlite3/ + %files server %doc misc/snmptrap/zabbix_trap_receiver.pl %attr(0755,zabbixsrv,zabbixsrv) %dir %{_rundir}/zabbixsrv/ @@ -615,22 +730,22 @@ fi %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/ @@ -642,7 +757,7 @@ fi %{_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/ @@ -657,70 +772,41 @@ fi %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 +%dir %attr(0750,apache,apache) %{_sysconfdir}/%{name}/web +%ghost %attr(0644,apache,apache) %config(noreplace) %{_sysconfdir}/%{name}/web/zabbix.conf.php +%attr(0644,apache,apache) %config(noreplace) %{_sysconfdir}/%{name}/web/maintenance.inc.php %config(noreplace) %{_sysconfdir}/httpd/conf.d/zabbix.conf %config(noreplace) %{_sysconfdir}/php-fpm.d/zabbix.conf -%{_datadir}/%{srcname}/ - +%{_datadir}/%{name}/ + %files web-mysql - + %files web-pgsql %changelog -* 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 +* Fri Nov 22 2024 Funda Wang <fundawang@yeah.net> - 7.0.6-1 +- update to 7.0.6 +- tighten php requirment based on upstream documentation -* Mon Oct 02 2023 Funda Wang <fundawang@yeah.net> - 6.0.22-1 -- 6.0.22 +* Thu Oct 24 2024 Funda Wang <fundawang@yeah.net> - 7.0.5-1 +- update to 7.0.5 -* Tue Aug 22 2023 Funda Wang <fundawang@yeah.net> - 6.0.20-1 -- update to 6.0.20 +* Sat Oct 28 2023 beta <beta@yfqm.date> - 5.2.6-5 +- solve installation conflicts between zabbix-proxy-sqlite3 and zabbix-proxy-mysql * Mon Aug 15 2022 Zhang Jun <zhangjun@kylinos.cn> - 5.2.6-4 - update BuildRequire mysql-devel to mysql5-devel |