+# TODO
+# - initscript for zabbix-agent-standalone and zabbix-server
#
# Conditional build:
-%bcond_with pgsql # enable postgresql support (by default use mysql)
+%bcond_with pgsql # enable PostgreSQL support (by default use mysql)
+%bcond_with oracle # enable Oracle support (by default use mysql)
-%define _beta beta10
Summary: zabbix - network monitoring software
-Summary(pl): zabbix - oprogramowanie do monitorowania sieci
+Summary(pl.UTF-8): zabbix - oprogramowanie do monitorowania sieci
Name: zabbix
-Version: 1.0
-Release: 0.%{_beta}.0.1
+Version: 1.1.7
+Release: 1
License: GPL v2+
Group: Networking/Admin
-Source0: http://dl.sourceforge.net/%{name}/%{name}-%{version}%{_beta}.tar.gz
-# Source0-md5: 6d1fd1c4e8166ceffa730060583d4014
+Source0: http://dl.sourceforge.net/zabbix/%{name}-%{version}.tar.gz
+# Source0-md5: ac24ab58ef1a985c1e2a5217386d5dba
Source1: %{name}-agent.inetd
-Source2: %{name}-trapper.inetd
+Source2: %{name}-apache.conf
URL: http://zabbix.sourceforge.net/
%{!?with_pgsql:BuildRequires: mysql-devel}
-%{?with_pgsql:BuildRequires: postgresql-devel}
BuildRequires: net-snmp-devel
-BuildRequires: openssl-devel >= 0.9.7c
+BuildRequires: openldap-devel >= 2.4.6
+BuildRequires: openssl-devel >= 0.9.7d
+%{?with_pgsql:BuildRequires: postgresql-devel}
+BuildRequires: rpmbuild(macros) >= 1.268
+Requires(postun): /usr/sbin/groupdel
+Requires(postun): /usr/sbin/userdel
+Requires(pre): /bin/id
+Requires(pre): /usr/bin/getgid
+Requires(pre): /usr/sbin/groupadd
+Requires(pre): /usr/sbin/useradd
+Provides: group(zabbix)
+Provides: user(zabbix)
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
-%define _sysconfdir /etc/%{name}
+%define _sysconfdir /etc/%{name}
+%define _appdir %{_datadir}/%{name}
+%define _webapps /etc/webapps
+%define _webapp %{name}
%description
zabbix is software that monitors numerous parameters of a network and
-the servers on that network. zabbix is a useful tool for monitoring
+the servers on that network. It is a useful tool for monitoring
the health and integrity of servers. zabbix uses a flexible
notification mechanism that allows users to configure email based
alerts for virtually any event. All monitored parameters are stored in
trapping. All zabbix reports and statistics, as well as configuration
parameters, are accessed through a web-based front end.
-%description -l pl
-zabbix to oprogramowanie do monitorowania licznych parametrów sieci i
-serwerów sieciowych. zabbix jest przydatny przy monitorowaniu
-dzia³ania serwerów. zabbix korzysta z elastycznego mechanizmu
-powiadamiania, który pozwala u¿ytkownikom konfigurowaæ powiadamianie
-poczt± elektroniczn± dla praktycznie wszelkich zdarzeñ. Monitorowane
-parametry s± przechowywane w bazie danych. zabbix oferuje, w oparciu o
-przechowywane dane, ¶wietne raportowanie i funkcje wizualizacji.
-zabbix wspiera zarówno odpytywanie, jak i pu³apkowanie. Dostêp do
-wszystkich raportów i statystyk zabbiksa jest mo¿liwy poprzez
-interfejs oparty o WWW.
-
-%package frontend-php
-Summary: PHP frontend for zabbix
-Summary(pl): Interfejs PHP dla zabbiksa
-Group: Networking/Admin
-Requires: apache
-Requires: php
-
-%description frontend-php
-This package provides web based (PHP) frontend for zabbix.
-
-%description frontend-php -l pl
-Ten pakiet dostarcza napisany w PHP frontend dla zabbiksa.
+%description -l pl.UTF-8
+zabbix to oprogramowanie do monitorowania licznych parametrów sieci i
+serwerów sieciowych. Jest przydatny przy monitorowaniu działania
+serwerów. Jorzysta z elastycznego mechanizmu powiadamiania, który
+pozwala użytkownikom konfigurować powiadamianie pocztą elektroniczną
+dla praktycznie wszelkich zdarzeń. Monitorowane parametry są
+przechowywane w bazie danych. W oparciu o przechowywane dane zabbix
+oferuje świetne raportowanie i funkcje wizualizacji. Wspiera zarówno
+odpytywanie jak i pułapkowanie. Dostęp do wszystkich raportów i
+statystyk zabbiksa jest możliwy poprzez interfejs oparty o WWW.
%package agent-inetd
Summary: inetd agent for zabbix
-Summary(pl): Wersja inetd agenta zabbiksa
+Summary(pl.UTF-8): Wersja inetd agenta zabbiksa
Group: Networking/Admin
-Requires: %{name}
+Requires: %{name} = %{version}-%{release}
Requires: inetdaemon
-Obsoletes: %{name}-agent-standalone
+Obsoletes: zabbix-agent-standalone
%description agent-inetd
This package provides inetd version of zabbix agent.
-%description agent-inetd -l pl
+%description agent-inetd -l pl.UTF-8
Ten pakiet dostarcza agenta zabbiksa dla inetd.
%package agent-standalone
Summary: Standalone agent for zabbix
-Summary(pl): Wersja wolnostoj±ca agenta zabbiksa
+Summary(pl.UTF-8): Wersja wolnostojąca agenta zabbiksa
Group: Networking/Admin
-Requires: %{name}
-Obsoletes: %{name}-agent-inetd
+Requires: %{name} = %{version}-%{release}
+Obsoletes: zabbix-agent-inetd
%description agent-standalone
-This package provides standalone version of zabbix agent.
+This package provides standalone (recommended) version of zabbix agent.
-%description agent-standalone -l pl
-Ten pakiet dostarcza wolnostoj±cej wersji agenta zabbiksa.
+%description agent-standalone -l pl.UTF-8
+Ten pakiet dostarcza wolnostojącej (zalecanej) wersji agenta zabbiksa.
-%package suckerd
-Summary: sucker daemon for zabbix
+%package frontend-php
+Summary: PHP frontend for zabbix
+Summary(pl.UTF-8): Interfejs PHP dla zabbiksa
Group: Networking/Admin
-Requires: %{name}
-%{!?with_pgsql:Requires: mysql}
-%{?with_pgsql:Requires: postgresql}
-
-%description suckerd
-This package provides the sucker daemon for zabbix.
+Requires: php(gd)
+%{!?with_pgsql:Requires: php-mysql}
+%{?with_pgsql:Requires: php-pgsql}
+Requires: webapps
+Requires: webserver = apache
+Requires: webserver(php)
-%package trapper-inetd
-Summary: inetd trapper for zabbix
-Summary(pl): Wersja inetd programu pu³apkuj±cego zabbiksa
-Group: Networking/Admin
-Requires: %{name}
-Requires: inetdaemon
-Obsoletes: %{name}-trapper-standalone
+%description frontend-php
+This package provides web based (PHP) frontend for zabbix.
-%description trapper-inetd
-This package provides inetd version of zabbix trapper.
+%description frontend-php -l pl.UTF-8
+Ten pakiet dostarcza napisany w PHP frontend dla zabbiksa.
-%package trapper-standalone
-Summary: Standalone trapper for zabbix
-Summary(pl): Wersja wolnostoj±ca programu pu³apkuj±cego zabbiksa
+%package get
+Summary: Program retrieving data from zabbix agent
+Summary(pl.UTF-8): Program odpytujÄcy agenta zabbiksa
Group: Networking/Admin
-Requires: %{name}
-Obsoletes: %{name}-trapper-inetd
-%description trapper-standalone
-This package provides standalone version of zabbix trapper.
+%description get
+This package provides a program retrieving data from zabbix agent.
+
+%description get -l pl.UTF-8
+Ten pakiet zawiera program odpytujÄcy agenta zabbiksa.
%package sender
-Summary: zabbix's sender
-Summary(pl): Program zawiadamiaj±cy zabbiksa
+Summary: Zabbix sender
+Summary(pl.UTF-8): Program zawiadamiający zabbiksa
Group: Networking/Admin
%description sender
This package provides the zabbix sender.
+%description sender -l pl.UTF-8
+Ten pakiet zawiera program zawiadamiający zabbiksa.
+
+%package server
+Summary: Zabbix server
+Summary(pl.UTF-8): Serwer zabbiksa
+Group: Networking/Admin
+Requires: %{name} = %{version}-%{release}
+Obsoletes: %{name}-suckerd
+Obsoletes: %{name}-trapper-inetd
+Obsoletes: %{name}-trapper-standalone
+
+%description server
+This package provides the zabbix server.
+
+%description server -l pl.UTF-8
+Ten pakiet zawiera serwer zabbiksa.
+
%prep
-%setup -q -n %{name}-%{version}%{_beta}
+%setup -q
%build
%configure \
%{!?with_pgsql:--with-mysql} \
%{?with_pgsql:--with-pgsql} \
- --with-net-snmp
+ %{?with_oracle:--with-oracle} \
+ --enable-server \
+ --enable-agent \
+ --with-net-snmp \
+ --with-ldap \
+# --with-ucd-snmp=DIR \
%{__make}
%install
rm -rf $RPM_BUILD_ROOT
-install -d $RPM_BUILD_ROOT{%{_sysconfdir},/etc/sysconfig/rc-inetd,%{_sbindir},/home/services/html/zabbix}
+install -d $RPM_BUILD_ROOT{%{_sysconfdir},/etc/{sysconfig/rc-inetd,webapps/%{_webapp}},%{_appdir}}
-install bin/zabbix_* $RPM_BUILD_ROOT%{_sbindir}
-install misc/conf/* $RPM_BUILD_ROOT%{_sysconfdir}
-cp -r frontends/php/* $RPM_BUILD_ROOT/home/services/html/zabbix
+%{__make} install \
+ DESTDIR=$RPM_BUILD_ROOT
-install %SOURCE1 $RPM_BUILD_ROOT/etc/sysconfig/rc-inetd/zabbix-agent
-install %SOURCE2 $RPM_BUILD_ROOT/etc/sysconfig/rc-inetd/zabbix-trapper
+install misc/conf/zabbix_{a*,s*} $RPM_BUILD_ROOT%{_sysconfdir}
+cp -r frontends $RPM_BUILD_ROOT%{_appdir}
+mv -f $RPM_BUILD_ROOT%{_appdir}/frontends/php/include/db.inc.php $RPM_BUILD_ROOT%{_webapps}/%{_webapp}
+ln -s %{_webapps}/%{_webapp}/db.inc.php $RPM_BUILD_ROOT%{_appdir}/frontends/php/include
+install %{SOURCE1} $RPM_BUILD_ROOT/etc/sysconfig/rc-inetd/zabbix-agent
+install %{SOURCE2} $RPM_BUILD_ROOT%{_webapps}/%{_webapp}/apache.conf
+install %{SOURCE2} $RPM_BUILD_ROOT%{_webapps}/%{_webapp}/httpd.conf
%clean
rm -rf $RPM_BUILD_ROOT
+%triggerin frontend-php -- apache1 < 1.3.37-3, apache1-base
+%webapp_register apache %{_webapp}
+
+%triggerun frontend-php -- apache1 < 1.3.37-3, apache1-base
+%webapp_unregister apache %{_webapp}
+
+%triggerin frontend-php -- apache < 2.2.0, apache-base
+%webapp_register httpd %{_webapp}
+
+%triggerun frontend-php -- apache < 2.2.0, apache-base
+%webapp_unregister httpd %{_webapp}
+
%pre
-if [ -z "`/usr/bin/getgid zabbix`" ]; then
- /usr/sbin/groupadd zabbix
-fi
-if [ -z "`/bin/id -u zabbix 2>/dev/null`" ]; then
- /usr/sbin/useradd -d / -g zabbix -c "Zabbix User" -s /bin/false zabbix
+%groupadd -g 111 zabbix
+%useradd -d / -u 111 -g zabbix -c "Zabbix User" -s /bin/false zabbix
+
+%post
+if [ "$1" = 1 ]; then
+ %banner -e %{name} <<-EOF
+ You should create database for Zabbix.
+ Running these should be fine in most cases:
+%if %{with pgsql}
+ psql -c 'create database zabbix'
+ zcat %{_docdir}/%{name}-%{version}/create/postgresql/schema.sql.gz | psql zabbix
+ zcat %{_docdir}/%{name}-%{version}/create/data/data.sql.gz | psql zabbix
+ zcat %{_docdir}/%{name}-%{version}/create/data/images_pgsql.sql.gz | psql zabbix
+%else
+ mysqladmin create zabbix
+ zcat %{_docdir}/%{name}-%{version}/create/mysql/schema.sql.gz | mysql zabbix
+ zcat %{_docdir}/%{name}-%{version}/create/data/data.sql.gz | mysql zabbix
+ zcat %{_docdir}/%{name}-%{version}/create/data/images.sql.gz | mysql zabbix
+%endif
+ %{?TODO:You also need zabbix-agent. install zabbix-agent-standalone %or zabbix-agent-inetd.}
+EOF
fi
%postun
if [ "$1" = "0" ]; then
- /usr/sbin/userdel zabbix
- /usr/sbin/groupdel zabbix
+ %userremove zabbix
+ %groupremove zabbix
fi
%post agent-inetd
-if [ -f /var/lock/subsys/rc-inetd ]; then
- /etc/rc.d/init.d/rc-inetd reload
-else
- echo "Type \"/etc/rc.d/init.d/rc-inetd start\" to start inet server" 1>&2
-fi
+%service -q rc-inetd reload
%postun agent-inetd
-if [ -f /var/lock/subsys/rc-inetd ]; then
- /etc/rc.d/init.d/rc-inetd reload
-fi
-
-%post trapper-inetd
-if [ -f /var/lock/subsys/rc-inetd ]; then
- /etc/rc.d/init.d/rc-inetd reload
-else
- echo "Type \"/etc/rc.d/init.d/rc-inetd start\" to start inet server" 1>&2
-fi
-
-%postun trapper-inetd
-if [ -f /var/lock/subsys/rc-inetd ]; then
- /etc/rc.d/init.d/rc-inetd reload
+if [ "$1" = 0 ]; then
+ %service -q rc-inetd reload
fi
%files
%defattr(644,root,root,755)
-%doc doc/manual.pdf AUTHORS ChangeLog FAQ TODO create bin/ZabbixW32.exe
+%doc AUTHORS FAQ NEWS README ChangeLog create upgrades bin/ZabbixW{32,64}.exe
%attr(750,root,zabbix) %dir %{_sysconfdir}
-
-%files frontend-php
-%defattr(644,root,root,755)
-/home/services/html/zabbix
+%dir %{_appdir}
+%dir %{_appdir}/frontends
%files agent-inetd
%defattr(644,root,root,755)
%attr(640,root,zabbix) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/zabbix_agent.conf
-%attr(640,root,root) %config(noreplace) %verify(not mtime md5 size) /etc/sysconfig/rc-inetd/zabbix-agent
-%attr(755,root,root) %{_sbindir}/zabbix_agent
+%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/rc-inetd/zabbix-agent
+%attr(755,root,root) %{_bindir}/zabbix_agent
%files agent-standalone
%defattr(644,root,root,755)
%attr(640,root,zabbix) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/zabbix_agentd.conf
-%attr(755,root,root) %{_sbindir}/zabbix_agentd
+%attr(755,root,root) %{_bindir}/zabbix_agentd
-%files suckerd
+%files frontend-php
%defattr(644,root,root,755)
-%attr(640,root,zabbix) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/zabbix_suckerd.conf
-%attr(755,root,root) %{_sbindir}/zabbix_suckerd
+%attr(750,root,http) %dir %{_webapps}/%{_webapp}
+%attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_webapps}/%{_webapp}/*
+%{_appdir}/frontends/php
-%files trapper-inetd
+%files get
%defattr(644,root,root,755)
-%attr(640,root,zabbix) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/zabbix_trapper.conf
-%attr(640,root,root) %config(noreplace) %verify(not mtime md5 size) /etc/sysconfig/rc-inetd/zabbix-trapper
-%attr(755,root,root) %{_sbindir}/zabbix_trapper
+%attr(755,root,root) %{_bindir}/zabbix_get
-%files trapper-standalone
+%files sender
%defattr(644,root,root,755)
-%attr(640,root,zabbix) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/zabbix_trapperd.conf
-%attr(755,root,root) %{_sbindir}/zabbix_trapperd
+%attr(755,root,root) %{_bindir}/zabbix_sender
-%files sender
+%files server
%defattr(644,root,root,755)
-%attr(755,root,root) %{_sbindir}/zabbix_sender
+%attr(640,root,zabbix) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/zabbix_server.conf
+%attr(755,root,root) %{_bindir}/zabbix_server