+# TODO
+# - initscript for zabbix-agent-standalone and zabbix-server
#
# Conditional build:
-# _with_pgsql - enable postgresql support (by default use mysql)
-#
-%define _beta beta8
+%bcond_with pgsql # enable PostgreSQL support (by default use mysql)
+%bcond_with oracle # enable Oracle support (by default use mysql)
+
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: ed691c777df63aa6081dde750f10e733
+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: ucd-snmp-devel
-BuildRequires: openssl-devel >= 0.9.6j
-#PreReq: -
-#Requires -
-#Requires(pre,post): -
-#Requires(preun): -
-#Requires(postun): -
-#Provides: -
-#Obsoletes: -
-#Conflicts: -
+%{!?with_pgsql:BuildRequires: mysql-devel}
+BuildRequires: net-snmp-devel
+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 health and integrity of servers. ZABBIX uses a flexible
+zabbix is software that monitors numerous parameters of a network and
+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
-a database. ZABBIX offers excellent reporting and data visualisation
-features based on the stored data. ZABBIX supports both polling and
-trapping. All ZABBIX reports and statistics, as well as configuration
+a database. zabbix offers excellent reporting and data visualisation
+features based on the stored data. zabbix supports both polling and
+trapping. All zabbix reports and statistics, as well as configuration
parameters, are accessed through a web-based front end.
-%description
-
-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
-blah
+%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
-blah
+This package provides inetd version of zabbix agent.
+
+%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
-blah
+This package provides standalone (recommended) version of zabbix agent.
-%package suckerd
-Summary: sucker daemon for zabbix
-Group: Networking/Admin
-Requires: %{name}
-%{!?_with_pgsql:Requires: mysql}
-%{?_with_pgsql:Requires: postgresql}
-
-%description suckerd
-blah
+%description agent-standalone -l pl.UTF-8
+Ten pakiet dostarcza wolnostojącej (zalecanej) wersji agenta zabbiksa.
-%package trapper-inetd
-Summary: inetd trapper for zabbix
-Summary(pl): Wersja inetd programu pu³apkuj±cego zabbiksa
+%package frontend-php
+Summary: PHP frontend for zabbix
+Summary(pl.UTF-8): Interfejs PHP dla zabbiksa
Group: Networking/Admin
-Requires: %{name}
-Requires: inetdaemon
-Obsoletes: %{name}-trapper-standalone
+Requires: php(gd)
+%{!?with_pgsql:Requires: php-mysql}
+%{?with_pgsql:Requires: php-pgsql}
+Requires: webapps
+Requires: webserver = apache
+Requires: webserver(php)
-%description trapper-inetd
-blah
+%description frontend-php
+This package provides web based (PHP) frontend for zabbix.
+
+%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
-blah
+%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
-blah
+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
-rm -f missing
-%{__aclocal}
-%{__autoconf}
%configure \
- %{!?_with_pgsql:--with-mysql} \
- %{?_with_pgsql:--with-pgsql}
+ %{!?with_pgsql:--with-mysql} \
+ %{?with_pgsql:--with-pgsql} \
+ %{?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