diff options
Diffstat (limited to 'zabbix.spec')
-rw-r--r-- | zabbix.spec | 614 |
1 files changed, 273 insertions, 341 deletions
diff --git a/zabbix.spec b/zabbix.spec index 0251373..f61486c 100644 --- a/zabbix.spec +++ b/zabbix.spec @@ -1,58 +1,43 @@ -# 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_without go -# Missing dependencies for the java connector -%bcond_with java -#%%global prerelease rc2 - -Name: zabbix -Version: 7.0.5 -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 +%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 # systemd units -- Alternatives switches between them (they state their dependencies) # https://support.zabbix.com/browse/ZBXNEXT-1593 -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 - +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: %{name}-config.patch +Patch0: %{srcname}-config.patch # Allow out-of-tree builds # https://support.zabbix.com/browse/ZBXNEXT-6077 -Patch1: %{name}-out-of-tree.patch +Patch1: %{srcname}-out-of-tree.patch # Enforce Fedora Crypto Policy -Patch2: %{name}-crypto-policy.patch -# Add <stdio> to sscanf check -# https://support.zabbix.com/browse/ZBX-21946 -Patch3: %{name}-configure-sscanf.patch +Patch2: %{srcname}-crypto-policy.patch +Patch3: %{srcname}-configure-sscanf.patch # Patch1 patches automake files so we need to autoreconf BuildRequires: libtool BuildRequires: make -BuildRequires: mariadb-connector-c-devel +BuildRequires: mysql-devel BuildRequires: libpq-devel BuildRequires: sqlite-devel BuildRequires: net-snmp-devel @@ -67,22 +52,12 @@ BuildRequires: libxml2-devel BuildRequires: libevent-devel BuildRequires: pcre2-devel BuildRequires: gcc -%if %{with go} -BuildRequires: golang -%endif -BuildRequires: systemd - -# Needed to determine path to link to -BuildRequires: dejavu-sans-fonts +BuildRequires: systemd +BuildRequires: google-noto-sans-cjk-sc-fonts +BuildRequires: fonts-srpm-macros + 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 @@ -92,7 +67,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 @@ -104,27 +79,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 @@ -133,89 +108,100 @@ Requires: %{name}-server-implementation = %{version}-%{release} Requires: fping Requires: traceroute Requires(pre): shadow-utils -%{?systemd_requires} - +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 -%{?systemd_requires} - +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 -%{?systemd_requires} +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 @@ -227,93 +213,66 @@ Requires: php-json Requires: php-ldap Requires: php-mbstring Requires: php-xml -# jquery 3.6.0 and jquery-ui 1.13.2 in the sources +# 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.13.2 +Provides: bundled(js-jquery-ui) = 1.12.1 # prototype 1.6.1 in the sources, Fedora package is dead #Requires: prototype -Requires: dejavu-sans-fonts +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 -%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 +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' \ @@ -325,25 +284,26 @@ 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 @@ -361,252 +321,192 @@ 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 %{?with_go:--enable-agent2} %{?with_java:--enable-java} +%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 %{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 +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 %{buildroot}%{_sbindir}/zabbix_proxy{,_sqlite3} +mv $RPM_BUILD_ROOT%{_sbindir}/zabbix_proxy{,_sqlite3} %make_install -C build-server-mysql -mv %{buildroot}%{_sbindir}/zabbix_proxy{,_mysql} -mv %{buildroot}%{_sbindir}/zabbix_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 %{buildroot}%{_sbindir}/zabbix_proxy{,_pgsql} -mv %{buildroot}%{_sbindir}/zabbix_server{,_pgsql} - +mv $RPM_BUILD_ROOT%{_sbindir}/zabbix_proxy{,_pgsql} +mv $RPM_BUILD_ROOT%{_sbindir}/zabbix_server{,_pgsql} + # Ghosted alternatives -touch %{buildroot}%{_sbindir}/zabbix_{proxy,server} - +touch $RPM_BUILD_ROOT%{_sbindir}/zabbix_{proxy,server} + # Home directory for the agent; # The other home directory is created during installation -mkdir -p %{buildroot}%{_sharedstatedir}/zabbix - +mkdir -p $RPM_BUILD_ROOT%{_sharedstatedir}/zabbix + # Log directories -mkdir -p %{buildroot}%{_localstatedir}/log/zabbix -mkdir -p %{buildroot}%{_localstatedir}/log/zabbixsrv - +mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/log/zabbix +mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/log/zabbixsrv + # systemd tmpfiles -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/ - +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 %{buildroot}%{_datadir}/%{name} -cp -a ui/* %{buildroot}%{_datadir}/%{name}/ - +mkdir -p $RPM_BUILD_ROOT%{_datadir}/%{srcname} +cp -a ui/* $RPM_BUILD_ROOT%{_datadir}/%{srcname}/ + # Prepare ghosted config file -mkdir -p %{buildroot}%{_sysconfdir}/%{name}/web -touch %{buildroot}%{_sysconfdir}/%{name}/web/zabbix.conf.php - +mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/%{srcname}/web +touch $RPM_BUILD_ROOT%{_sysconfdir}/%{srcname}/web/zabbix.conf.php + # Replace bundled font -[ -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/ - +[ -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 %{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 - +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 %{buildroot}%{_datadir}/%{name}/conf/maintenance.inc.php %{buildroot}%{_sysconfdir}/%{name}/web/maintenance.inc.php || : - +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 %{buildroot}%{_sysconfdir}/httpd/conf.d -install -m 0644 -p %{S:1} %{buildroot}%{_sysconfdir}/httpd/conf.d/%{name}.conf - +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 %{buildroot}%{_sysconfdir}/php-fpm.d -install -m 0644 -p %{S:2} %{buildroot}%{_sysconfdir}/php-fpm.d/%{name}.conf - +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 %{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 - +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 %{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 - +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 %{buildroot}%{_unitdir}/zabbix-server.service -touch %{buildroot}%{_unitdir}/zabbix-proxy.service - +touch $RPM_BUILD_ROOT%{_unitdir}/zabbix-server.service +touch $RPM_BUILD_ROOT%{_unitdir}/zabbix-proxy.service + # Directory for fping spooling files -mkdir -p %{buildroot}%{_sharedstatedir}/zabbixsrv/tmp - +mkdir -p $RPM_BUILD_ROOT%{_sharedstatedir}/zabbixsrv/tmp + # Install sql files for db in postgresql mysql; do - mkdir %{buildroot}%{_datadir}/%{name}-$db - cp -p database/$db/*.sql %{buildroot}%{_datadir}/%{name}-$db + mkdir $RPM_BUILD_ROOT%{_datadir}/%{srcname}-$db + cp -p database/$db/*.sql $RPM_BUILD_ROOT%{_datadir}/%{srcname}-$db done - -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 - + +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}/%{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 \ +%{_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}/%{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 \ +%{_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}/%{name}_proxy \ - %{name}-proxy %{_sbindir}/%{name}_proxy_mysql 10 \ - --slave %{_unitdir}/zabbix-proxy.service %{name}-proxy.service \ +%{_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 -# 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}/%{name}_proxy \ - %{name}-proxy %{_sbindir}/%{name}_proxy_pgsql 10 \ - --slave %{_unitdir}/zabbix-proxy.service %{name}-proxy.service \ +%{_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 -# 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}/%{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 \ +%{_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 - -%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 @@ -620,10 +520,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 @@ -637,71 +537,70 @@ 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 %{name}-server %{_sbindir}/%{name}_server_mysql + %{_sbindir}/update-alternatives --remove %{srcname}-server %{_sbindir}/%{srcname}_server_mysql fi - + %postun server-pgsql if [ $1 -eq 0 ] ; then - %{_sbindir}/update-alternatives --remove %{name}-server %{_sbindir}/%{name}_server_pgsql + %{_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 %{name}-proxy %{_sbindir}/%{name}_proxy_mysql + %{_sbindir}/update-alternatives --remove %{srcname}-proxy %{_sbindir}/%{srcname}_proxy_mysql fi - + %postun proxy-pgsql if [ $1 -eq 0 ] ; then - %{_sbindir}/update-alternatives --remove %{name}-proxy %{_sbindir}/%{name}_proxy_pgsql + %{_sbindir}/update-alternatives --remove %{srcname}-proxy %{_sbindir}/%{srcname}_proxy_pgsql fi - + %postun proxy-sqlite3 if [ $1 -eq 0 ] ; then - %{_sbindir}/update-alternatives --remove %{name}-proxy %{_sbindir}/%{name}_proxy_sqlite3 + %{_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}/%{name} +%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}/%{name}-mysql/ - +%{_datadir}/%{srcname}-mysql/ + %files dbfiles-pgsql %license COPYING -%{_datadir}/%{name}-postgresql/ - +%{_datadir}/%{srcname}-postgresql/ + %files dbfiles-sqlite3 %license COPYING -%{_datadir}/%{name}-sqlite3/ - +%{_datadir}/%{srcname}-sqlite3/ + %files server %doc misc/snmptrap/zabbix_trap_receiver.pl %attr(0755,zabbixsrv,zabbixsrv) %dir %{_rundir}/zabbixsrv/ @@ -716,22 +615,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/ @@ -743,7 +642,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/ @@ -758,37 +657,70 @@ 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}/%{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 +%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}/%{name}/ - +%{_datadir}/%{srcname}/ + %files web-mysql - + %files web-pgsql %changelog -* Thu Oct 24 2024 Funda Wang <fundawang@yeah.net> - 7.0.5-1 -- update to 7.0.5 +* 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 -* Sat Oct 28 2023 beta <beta@yfqm.date> - 5.2.6-5 -- solve installation conflicts between zabbix-proxy-sqlite3 and zabbix-proxy-mysql +* 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 |