[zabbix/f20] Solve various systemd-related issues and update to 2.0.13

Volker Fröhlich volter at fedoraproject.org
Wed Sep 10 21:24:17 UTC 2014


commit 5bbf21a92323dcbf330a733b72d6a412e46cd203
Author: Volker Fröhlich <volker27 at gmx.at>
Date:   Wed Sep 10 23:20:16 2014 +0200

    Solve various systemd-related issues and update to 2.0.13
    
    - Use the upstream tarball, now that non-free json was replaced with android-json
    - Clean between builds, otherwise zabbix_{proxy,server} are compiled
      again on install; make server and proxy package noarch now
    - Set the service type to forking in unit files (BZ 1132437),
      add PIDFile entry, remove RemainAfterExit, change /var/run to /run
    - Install tmpfiles configuration in the proper location per guidelines,
      thus solving the startup trouble due to missing directories
      (respectively BZ 1115251, 1081584, 982001, 1135696)
    - Harmonize package descriptions and summaries

 .gitignore                   |    1 +
 sources                      |    2 +-
 zabbix-2.0.12-zbx8151.patch  |   53 ----------------------------------
 zabbix-2.0.12-zbx8238.patch  |   24 ---------------
 zabbix-agent.service         |    4 +-
 zabbix-proxy-mysql.service   |    4 +-
 zabbix-proxy-pgsql.service   |    4 +-
 zabbix-proxy-sqlite3.service |    4 +-
 zabbix-server-mysql.service  |    4 +-
 zabbix-server-pgsql.service  |    4 +-
 zabbix-tmpfiles.conf         |    2 +-
 zabbix.spec                  |   65 +++++++++++++++++++++++++++---------------
 12 files changed, 57 insertions(+), 114 deletions(-)
---
diff --git a/.gitignore b/.gitignore
index 11e43d6..e72ed77 100644
--- a/.gitignore
+++ b/.gitignore
@@ -25,3 +25,4 @@ zabbix-1.8.2.tar.gz
 /zabbix-2.0.10-free.tar.gz
 /zabbix-2.0.11-free.tar.gz
 /zabbix-2.0.12-free.tar.gz
+/zabbix-2.0.13.tar.gz
diff --git a/sources b/sources
index b9ea480..821c330 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-8d497bc9eca83d59ba5633645b86584e  zabbix-2.0.12-free.tar.gz
+538e973109c36aaa8c1f2bc7925fb1c4  zabbix-2.0.13.tar.gz
diff --git a/zabbix-agent.service b/zabbix-agent.service
index 27bfad7..1e74b9b 100644
--- a/zabbix-agent.service
+++ b/zabbix-agent.service
@@ -3,10 +3,10 @@ Description=Zabbix Monitor Agent
 After=syslog.target network.target
 
 [Service]
-Type=oneshot
+Type=forking
 ExecStart=/usr/sbin/zabbix_agentd
-RemainAfterExit=yes
 User=zabbix
+PIDFile=/run/zabbix/zabbix_agentd.pid
 
 [Install]
 WantedBy=multi-user.target
diff --git a/zabbix-proxy-mysql.service b/zabbix-proxy-mysql.service
index 6464a5a..8f962f9 100644
--- a/zabbix-proxy-mysql.service
+++ b/zabbix-proxy-mysql.service
@@ -3,10 +3,10 @@ Description=Zabbix MySQL Proxy Agent
 After=syslog.target network.target mysqld.service
 
 [Service]
-Type=oneshot
+Type=forking
 ExecStart=/usr/sbin/zabbix_proxy
-RemainAfterExit=yes
 User=zabbixsrv
+PIDFile=/run/zabbix/zabbix_proxy.pid
 
 [Install]
 WantedBy=multi-user.target
diff --git a/zabbix-proxy-pgsql.service b/zabbix-proxy-pgsql.service
index 5d52fd9..d2bb7e4 100644
--- a/zabbix-proxy-pgsql.service
+++ b/zabbix-proxy-pgsql.service
@@ -3,10 +3,10 @@ Description=Zabbix PostgreSQL Proxy Agent
 After=syslog.target network.target postgresql.service
 
 [Service]
-Type=oneshot
+Type=forking
 ExecStart=/usr/sbin/zabbix_proxy
-RemainAfterExit=yes
 User=zabbixsrv
+PIDFile=/run/zabbix/zabbix_proxy.pid
 
 [Install]
 WantedBy=multi-user.target
diff --git a/zabbix-proxy-sqlite3.service b/zabbix-proxy-sqlite3.service
index a102fc0..5cfadfc 100644
--- a/zabbix-proxy-sqlite3.service
+++ b/zabbix-proxy-sqlite3.service
@@ -3,10 +3,10 @@ Description=Zabbix SQLite3 Proxy Agent
 After=syslog.target network.target
 
 [Service]
-Type=oneshot
+Type=forking
 ExecStart=/usr/sbin/zabbix_proxy
-RemainAfterExit=yes
 User=zabbixsrv
+PIDFile=/run/zabbix/zabbix_proxy.pid
 
 [Install]
 WantedBy=multi-user.target
diff --git a/zabbix-server-mysql.service b/zabbix-server-mysql.service
index 9c0217b..20e20b4 100644
--- a/zabbix-server-mysql.service
+++ b/zabbix-server-mysql.service
@@ -3,10 +3,10 @@ Description=Zabbix Server with MySQL DB
 After=syslog.target network.target mysqld.service
 
 [Service]
-Type=oneshot
+Type=forking
 ExecStart=/usr/sbin/zabbix_server
-RemainAfterExit=yes
 User=zabbixsrv
+PIDFile=/run/zabbix/zabbix_server.pid
 
 [Install]
 WantedBy=multi-user.target
diff --git a/zabbix-server-pgsql.service b/zabbix-server-pgsql.service
index a196b4c..8247d96 100644
--- a/zabbix-server-pgsql.service
+++ b/zabbix-server-pgsql.service
@@ -3,10 +3,10 @@ Description=Zabbix Server with PostgreSQL DB
 After=syslog.target network.target postgresql.service
 
 [Service]
-Type=oneshot
+Type=forking
 ExecStart=/usr/sbin/zabbix_server
-RemainAfterExit=yes
 User=zabbixsrv
+PIDFile=/run/zabbix/zabbix_server.pid
 
 [Install]
 WantedBy=multi-user.target
diff --git a/zabbix-tmpfiles.conf b/zabbix-tmpfiles.conf
index 3099a5d..4596c33 100644
--- a/zabbix-tmpfiles.conf
+++ b/zabbix-tmpfiles.conf
@@ -1 +1 @@
-D /var/run/zabbix 0775 zabbix zabbix -
+D /run/zabbix 0775 zabbix zabbix -
diff --git a/zabbix.spec b/zabbix.spec
index 773d65d..1bb630e 100644
--- a/zabbix.spec
+++ b/zabbix.spec
@@ -18,16 +18,14 @@
 %global srcname zabbix
 
 Name:           zabbix
-Version:        2.0.12
-Release:        3%{?dist}
+Version:        2.0.13
+Release:        1%{?dist}
 Summary:        Open-source monitoring solution for your IT infrastructure
 
 Group:          Applications/Internet
 License:        GPLv2+
 URL:            http://www.zabbix.com
-#Source0:        http://downloads.sourceforge.net/%{srcname}/%{srcname}-%{version}.tar.gz
-# upstream tarball minus src/zabbix_java/lib/org-json-2010-12-28.jar
-Source0:        %{srcname}-%{version}-free.tar.gz
+Source0:        http://downloads.sourceforge.net/%{srcname}/%{srcname}-%{version}.tar.gz
 Source1:        %{srcname}-web.conf
 Source5:        %{srcname}-logrotate.in
 Source9:        %{srcname}-tmpfiles.conf
@@ -51,11 +49,6 @@ Patch1:         %{srcname}-2.0.3-fonts-config.patch
 Patch2:         %{srcname}-2.0.1-no-flash.patch
 # adapt for fping3 - https://support.zabbix.com/browse/ZBX-4894
 Patch3:         %{srcname}-1.8.12-fping3.patch
-# logrt may continue reading an old file repeatedly.
-Patch4:         %{srcname}-2.0.12-zbx8238.patch
-# Local file inclusion via XXE attack (CVE-2014-3005)
-# https://support.zabbix.com/browse/ZBX-8151
-Patch5:         %{srcname}-2.0.12-zbx8151.patch
 
 BuildRequires:   mysql-devel
 BuildRequires:   postgresql-devel
@@ -99,6 +92,7 @@ multitude of servers.
 %package server
 Summary:             Zabbix server common files
 Group:               Applications/Internet
+BuildArch:           noarch
 Requires:            %{name} = %{version}-%{release}
 Requires:            %{name}-server-implementation = %{version}-%{release}
 Requires:            fping
@@ -138,7 +132,7 @@ Provides:            %{name}-server-implementation = %{version}-%{release}
 Zabbix server compiled to use PostgresSQL
 
 %package agent
-Summary:             Zabbix Agent
+Summary:             Zabbix agent
 Group:               Applications/Internet
 Requires:            %{name} = %{version}-%{release}
 Requires(pre):       shadow-utils
@@ -147,11 +141,12 @@ Requires(preun):     systemd
 Requires(postun):    systemd
 
 %description agent
-The Zabbix client agent, to be installed on monitored systems.
+Zabbix agent, to be installed on monitored systems
 
 %package proxy
-Summary:             Zabbix Proxy
+Summary:             Zabbix proxy common files
 Group:               Applications/Internet
+BuildArch:           noarch
 Requires:            %{name} = %{version}-%{release}
 Requires:            %{name}-proxy-implementation = %{version}-%{release}
 Requires(pre):       shadow-utils
@@ -254,8 +249,6 @@ Zabbix web frontend for PostgreSQL
 rm -f frontends/php/images/flash/zbxclock.swf
 
 %patch3 -p1
-%patch4 -p1
-%patch5 -p0
 
 # Remove bundled java libs
 rm -rf src/zabbix_java/lib/*.jar
@@ -282,7 +275,7 @@ rm -f frontends/php/conf/.htaccess
 
 # Adapt configuration file options
 sed -i \
-    -e 's|# PidFile=.*|PidFile=%{_localstatedir}/run/zabbix/zabbix_agentd.pid|g' \
+    -e 's|# PidFile=.*|PidFile=/run/zabbix/zabbix_agentd.pid|g' \
     -e 's|^LogFile=.*|LogFile=%{_localstatedir}/log/zabbix/zabbix_agentd.log|g' \
     -e 's|# LogFileSize=.*|LogFileSize=0|g' \
     -e 's|/usr/local||g' \
@@ -294,7 +287,7 @@ sed -i \
 
 #TODO: It'd be better to leave the defaults in a commment and just override them, as they are still hard-coded!
 sed -i \
-    -e 's|# PidFile=.*|PidFile=%{_localstatedir}/run/zabbix/zabbix_server.pid|g' \
+    -e 's|# PidFile=.*|PidFile=/run/zabbix/zabbix_server.pid|g' \
     -e 's|^LogFile=.*|LogFile=%{_localstatedir}/log/zabbix/zabbix_server.log|g' \
     -e 's|# LogFileSize=.*|LogFileSize=0|g' \
     -e 's|# AlertScriptsPath=${datadir}/zabbix/|AlertScriptsPath=%{_sharedstatedir}/zabbixsrv/|g' \
@@ -307,7 +300,7 @@ sed -i \
 
 #TODO: It'd be better to leave the defaults in a commment and just override them, as they are still hard-coded!
 sed -i \
-    -e 's|# PidFile=.*|PidFile=%{_localstatedir}/run/zabbix/zabbix_proxy.pid|g' \
+    -e 's|# PidFile=.*|PidFile=/run/zabbix/zabbix_proxy.pid|g' \
     -e 's|^LogFile=.*|LogFile=%{_localstatedir}/log/zabbix/zabbix_proxy.log|g' \
     -e 's|# LogFileSize=.*|LogFileSize=0|g' \
     -e 's|^DBUser=root|DBUser=zabbix|g' \
@@ -351,11 +344,13 @@ make %{?_smp_mflags}
 mv src/zabbix_proxy/zabbix_proxy src/zabbix_proxy/zabbix_proxy_sqlite3
 
 %configure $common_flags --with-mysql --enable-server
+make clean
 make %{?_smp_mflags}
 mv src/zabbix_server/zabbix_server src/zabbix_server/zabbix_server_mysql
 mv src/zabbix_proxy/zabbix_proxy src/zabbix_proxy/zabbix_proxy_mysql
 
 %configure $common_flags --with-postgresql --enable-server
+make clean
 make %{?_smp_mflags}
 mv src/zabbix_server/zabbix_server src/zabbix_server/zabbix_server_pgsql
 mv src/zabbix_proxy/zabbix_proxy src/zabbix_proxy/zabbix_proxy_pgsql
@@ -372,7 +367,6 @@ mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/%{srcname}/web
 mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d
 mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/httpd/conf.d
 mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/log/zabbix
-mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/run/zabbix
 mkdir -p $RPM_BUILD_ROOT%{_unitdir}
 
 # Frontend
@@ -447,9 +441,11 @@ done
 install -dm 755 $RPM_BUILD_ROOT%{_datadir}/%{srcname}-sqlite3
 cp -p database/sqlite3/schema.sql $RPM_BUILD_ROOT%{_datadir}/%{srcname}-sqlite3
 
-# systemd must create /var/run/%{srcname}
-mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/tmpfiles.d
-install -m 0644 %{SOURCE9} $RPM_BUILD_ROOT%{_sysconfdir}/tmpfiles.d/zabbix.conf
+# 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
+mkdir -p %{buildroot}/run
+install -d -m 0755 %{buildroot}/run/zabbix/
 
 
 %post server
@@ -514,6 +510,9 @@ getent passwd zabbix > /dev/null || \
 
 %pre server
 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
 getent passwd zabbixsrv > /dev/null || \
     useradd -r -g zabbix -d %{_sharedstatedir}/zabbixsrv -s /sbin/nologin \
     -c "Zabbix Monitoring System -- Proxy or server" zabbixsrv
@@ -524,6 +523,9 @@ getent passwd zabbixsrv > /dev/null || \
 
 %pre proxy
 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
 getent passwd zabbixsrv > /dev/null || \
     useradd -r -g zabbix -d %{_sharedstatedir}/zabbixsrv -s /sbin/nologin \
     -c "Zabbix Monitoring System -- Proxy or server" zabbixsrv
@@ -575,7 +577,6 @@ fi
 %dir %{_sysconfdir}/%{srcname}
 %config(noreplace) %{_sysconfdir}/zabbix_agentd.conf
 %config(noreplace) %{_sysconfdir}/%{srcname}/zabbix_agentd.conf
-%config(noreplace) %{_sysconfdir}/tmpfiles.d/zabbix.conf
 %{_bindir}/zabbix_get
 %{_bindir}/zabbix_sender
 %{_mandir}/man1/zabbix_get.1*
@@ -583,6 +584,8 @@ fi
 
 %files server
 %doc misc/snmptrap/zabbix_trap_receiver.pl
+%attr(0775,zabbix,zabbix) %dir /run/zabbix/
+%{_prefix}/lib/tmpfiles.d/zabbix.conf
 %attr(0775,root,zabbix) %dir %{_localstatedir}/log/zabbix
 %attr(0600,zabbixsrv,zabbix) %config(noreplace) %{_sysconfdir}/zabbix_server.conf
 %config(noreplace) %{_sysconfdir}/%{srcname}/zabbix_server.conf
@@ -606,6 +609,8 @@ fi
 
 %files agent
 %doc conf/zabbix_agentd/*.conf
+%attr(0775,zabbix,zabbix) %dir /run/zabbix/
+%{_prefix}/lib/tmpfiles.d/zabbix.conf
 %attr(0775,root,zabbix) %dir %{_localstatedir}/log/zabbix
 %config(noreplace) %{_sysconfdir}/zabbix_agent.conf
 %config(noreplace) %{_sysconfdir}/%{srcname}/zabbix_agent.conf
@@ -620,6 +625,8 @@ fi
 
 %files proxy
 %doc misc/snmptrap/zabbix_trap_receiver.pl
+%attr(0775,zabbix,zabbix) %dir /run/zabbix/
+%{_prefix}/lib/tmpfiles.d/zabbix.conf
 %attr(0775,root,zabbix) %dir %{_localstatedir}/log/zabbix
 %attr(0600,zabbixsrv,zabbix) %config(noreplace) %{_sysconfdir}/zabbix_proxy.conf
 %config(noreplace) %{_sysconfdir}/%{srcname}/zabbix_proxy.conf
@@ -657,6 +664,18 @@ fi
 %files web-pgsql
 
 %changelog
+* Wed Sep 10 2014 Volker Fröhlich <volker27 at gmx.at> - 2.0.13-1
+- New upstream release; Remove obsolete patches for ZBX-8151 and ZBX-8238
+- Use the upstream tarball, now that non-free json was replaced with android-json
+- Clean between builds, otherwise zabbix_{proxy,server} are compiled
+  again on install; make server and proxy package noarch now
+- Set the service type to forking in unit files (BZ 1132437),
+  add PIDFile entry, remove RemainAfterExit, change /var/run to /run
+- Install tmpfiles configuration in the proper location per guidelines,
+  thus solving the startup trouble due to missing directories
+  (respectively BZ 1115251, 1081584, 982001, 1135696)
+- Harmonize package descriptions and summaries
+
 * Fri Jun 20 2014 Volker Fröhlich <volker27 at gmx.at> - 2.0.12-3
 - Patch for ZBX-8151 (Local file inclusion via XXE attack) -- CVE-2014-3005
 


More information about the scm-commits mailing list