%define ver 3.0.1
%define rel 1

Summary: The Enterprise-class Monitoring Solution for Everyone
Name: zabbix
Version: %{ver}
Release: %{rel}%{?_dist_release}
License: GPLv2
Group: Applications/Services
URL: https://www.zabbix.com/
Source0: %{name}-%{version}.tar.gz
Source1: zabbix_server.init
Source2: zabbix_proxy.init
Source3: zabbix_agentd.init
Source4: zabbix_server.logrotate
Source5: zabbix_proxy.logrotate
Source6: zabbix_agentd.logrotate
Patch0: zabbix-2.0.4-vine_path.patch
Patch1: zabbix-2.0.4-font.patch
Patch2: zabbix-2.0.4-config.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-buildroot
BuildRequires: libpq-devel
BuildRequires: libmysqlclient-devel
BuildRequires: curl-devel
BuildRequires: net-snmp-devel
BuildRequires: OpenIPMI-devel
BuildRequires: unixODBC-devel
BuildRequires: libssh2-devel
Requires(pre): glibc-common
Requires(pre): shadow-utils

Vendor: Project Vine
Distribution: Vine Linux
Packager: iwaim

%description
The Enterprise-class Monitoring Solution for Everyone.

%package server-common
Summary: common files for Zabbix Server
Requires: %{name} == %{version}-%{release}
Requires(post,preun): chkconfig
Requires(preun,postun): initscripts

%description server-common
This package include common files for Zabbix Server.

%package server-mysql
Summary: Zabbix Server for MySQL/MariaDB
Provides: %{name}-server
Requires: %{name}-server-common == %{version}-%{release}

%description server-mysql
Zabbix Server for MySQL/MariaDB

%package server-postgresql
Summary: Zabbix Server for PostgreSQL
Provides: %{name}-server
Requires: %{name}-server-common == %{version}-%{release}

%description server-postgresql
Zabbix Server for PostgreSQL

%package agent
Summary: Zabbix Agent
Requires: %{name} == %{version}-%{release}
Requires(post,preun): chkconfig
Requires(preun,postun): initscripts

%description agent
Zabbix Agent

%package proxy-common
Summary: common files for Zabbix Proxy
Requires: %{name} == %{version}-%{release}
Requires(post,preun): chkconfig
Requires(preun,postun): initscripts

%description proxy-common
This package include common files for Zabbix Proxy

%package proxy-mysql
Summary: Zabbix Proxy for MySQL/MariaDB
Provides: %{name}-proxy
Requires: %{name}-proxy-common == %{version}-%{release}

%description proxy-mysql
Zabbix Proxy for MySQL/MariaDB

%package proxy-postgresql
Summary: Zabbix Proxy for PostgreSQL
Provides: %{name}-proxy
Requires: %{name}-proxy-common == %{version}-%{release}

%description proxy-postgresql
Zabbix Proxy for PostgreSQL

%package frontend-php
Summary: Zabbix web frontend with PHP
Group: Applications/Internet
Requires: php5
Requires: TrueType-vlgothic

%description frontend-php
Zabbix web frontend with PHP.

%package frontend-php-mysql
Summary: Zabbix web frontend with PHP and MySQL/MariaDB
Group: Applications/Internet
Provides: %{name}-frontend-php == %{version}-%{release}
Requires: php5-mysql

%description frontend-php-mysql
Zabbix web frontend with PHP and MySQL/MariaDB.

%package frontend-php-postgresql
Summary: Zabbix web frontend with PHP and PostgreSQL
Group: Applications/Internet
Provides: %{name}-frontend-php == %{version}-%{release}
Requires: php5-pgsql

%description frontend-php-postgresql
Zabbix web frontend with PHP and PostgreSQL.

%prep
%setup -q -T -a 0 -c -n zabbix-%{version}
mv zabbix-%{version} zabbix_mysql
pushd zabbix_mysql
%patch0 -p 1
%patch1 -p 1
%patch2 -p 1
popd

%setup -q -D -T -a 0 -n zabbix-%{version}
mv zabbix-%{version} zabbix_pgsql
pushd zabbix_pgsql
%patch0 -p 1
%patch1 -p 1
%patch2 -p 1
popd

%build

Build()
{
%configure \
           --enable-server \
           --enable-proxy \
           --enable-ipv6 \
           --sysconfdir=%{_sysconfdir}/zabbix \
           --with-libcurl \
           --with-openipmi \
           --with-net-snmp \
           --with-unixodbc \
           --with-ssh2 \
           $@

%__make
}

pushd zabbix_mysql
Build --with-mysql \
           --enable-agent
popd

pushd zabbix_pgsql
Build --with-postgresql
popd


%install
%__rm -rf $RPM_BUILD_ROOT
pushd zabbix_mysql
make DESTDIR=$RPM_BUILD_ROOT install

mv -f %{buildroot}%{_sbindir}/zabbix_server %{buildroot}%{_sbindir}/zabbix_server.mysql
mv -f %{buildroot}%{_sbindir}/zabbix_proxy %{buildroot}%{_sbindir}/zabbix_proxy.mysql

# make directories
%__mkdir_p $RPM_BUILD_ROOT%{_localstatedir}/{log,run}/%{name}

# DB
%__mkdir_p $RPM_BUILD_ROOT%{_datadir}/zabbix
%__cp -a database/postgresql $RPM_BUILD_ROOT%{_datadir}/zabbix/
%__cp -a database/mysql $RPM_BUILD_ROOT%{_datadir}/zabbix/

# init.d
%__mkdir_p $RPM_BUILD_ROOT%{_initddir}
%__cp %{SOURCE1} $RPM_BUILD_ROOT%{_initddir}/zabbix_server
%__cp %{SOURCE2} $RPM_BUILD_ROOT%{_initddir}/zabbix_proxy
%__cp %{SOURCE3} $RPM_BUILD_ROOT%{_initddir}/zabbix_agentd

# logrotate
%__mkdir_p $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d
%__cp %{SOURCE4}  $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/zabbix_server
%__cp %{SOURCE5}  $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/zabbix_proxy
%__cp %{SOURCE6}  $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/zabbix_agentd

# frontend-php
%__mkdir_p $RPM_BUILD_ROOT%{_datadir}/zabbix-frontend
%__cp -a frontends/php $RPM_BUILD_ROOT%{_datadir}/zabbix-frontend/
%__rm -f $RPM_BUILD_ROOT%{_datadir}/zabbix-frontend/php/fonts/DejaVuSans.ttf

ln -s /usr/share/fonts/TrueType-vlgothic/VL-Gothic-Regular.ttf \
      $RPM_BUILD_ROOT%{_datadir}/zabbix-frontend/php/fonts/

# proxy
mkdir -p %{buildroot}%{_datadir}/zabbix-proxy
ln -sf ../zabbix/mysql %{buildroot}%{_datadir}/zabbix-proxy/
ln -sf ../zabbix/postgresql %{buildroot}%{_datadir}/zabbix-proxy/

popd

pushd zabbix_pgsql
install -m755 src/zabbix_server/zabbix_server %{buildroot}%{_sbindir}/zabbix_server.pgsql
install -m755 src/zabbix_proxy/zabbix_proxy %{buildroot}%{_sbindir}/zabbix_proxy.pgsql
popd

%clean
%__rm -rf $RPM_BUILD_ROOT

%pre
getent group zabbix >/dev/null || groupadd -r zabbix
getent passwd zabbix >/dev/null || \
useradd -r -g zabbix -d %{_sysconfdir}/zabbix -s /sbin/nologin \
-c "Zabbix Monitoring Solution" zabbix
exit 0

%post server-mysql
/sbin/update-alternatives --install /usr/sbin/zabbix_server \
        zabbix_server /usr/sbin/zabbix_server.mysql 10

/sbin/chkconfig --add zabbix_server

%post server-postgresql
/sbin/update-alternatives --install /usr/sbin/zabbix_server \
        zabbix_server /usr/sbin/zabbix_server.pgsql 10

/sbin/chkconfig --add zabbix_server

%post proxy-mysql
/sbin/update-alternatives --install /usr/sbin/zabbix_proxy \
        zabbix_proxy /usr/sbin/zabbix_proxy.mysql 10

/sbin/chkconfig --add zabbix_proxy

%post proxy-postgresql
/sbin/update-alternatives --install /usr/sbin/zabbix_proxy \
        zabbix_proxy /usr/sbin/zabbix_proxy.pgsql 10

/sbin/chkconfig --add zabbix_proxy

%post agent
/sbin/chkconfig --add zabbix_agentd

%preun server-mysql
if [ "$1" -eq 0 ]; then
        /sbin/service zabbix_server stop >/dev/null 2>&1
        /sbin/chkconfig --del zabbix_server
        /sbin/update-alternatives --remove zabbix_server \
                /usr/sbin/zabbix_server.mysql
fi

%preun server-postgresql
if [ "$1" -eq 0 ]; then
        /sbin/service zabbix_server stop >/dev/null 2>&1
        /sbin/chkconfig --del zabbix_server
        /sbin/update-alternatives --remove zabbix_server \
                /usr/sbin/zabbix_server.pgsql
fi

%preun proxy-mysql
if [ "$1" -eq 0 ]; then
        /sbin/service zabbix_proxy stop >/dev/null 2>&1
        /sbin/chkconfig --del zabbix_proxy
        /sbin/update-alternatives --remove zabbix_proxy \
                /usr/sbin/zabbix_proxy.mysql
fi

%preun proxy-postgresql
if [ "$1" -eq 0 ]; then
        /sbin/service zabbix_proxy stop >/dev/null 2>&1
        /sbin/chkconfig --del zabbix_proxy
        /sbin/update-alternatives --remove zabbix_proxy \
                /usr/sbin/zabbix_proxy.pgsql
fi

%preun agent
if [ "$1" -eq 0 ]; then
        /sbin/service zabbix_agentd stop >/dev/null 2>&1
        /sbin/chkconfig --del zabbix_agentd
fi

%postun server-mysql
if [ "$1" -ge "1" ]; then
        /sbin/service zabbix_server condrestart >/dev/null 2>&1 || :
fi

%postun server-postgresql
if [ "$1" -ge "1" ]; then
        /sbin/service zabbix_server condrestart >/dev/null 2>&1 || :
fi

%postun proxy-mysql
if [ "$1" -ge "1" ]; then
        /sbin/service zabbix_proxy condrestart >/dev/null 2>&1 || :
fi

%postun proxy-postgresql
if [ "$1" -ge "1" ]; then
        /sbin/service zabbix_proxy condrestart >/dev/null 2>&1 || :
fi

%postun agent
if [ "$1" -ge "1" ]; then
        /sbin/service zabbix_agentd condrestart >/dev/null 2>&1 || :
fi

%files
%defattr(-,root,root,-)
%doc zabbix_mysql/AUTHORS zabbix_mysql/COPYING zabbix_mysql/ChangeLog zabbix_mysql/NEWS zabbix_mysql/README
%attr(0755,zabbix,zabbix) %dir %{_localstatedir}/log/%{name}
%attr(0755,zabbix,zabbix) %dir %{_localstatedir}/run/%{name}
%dir %{_datadir}/zabbix
%{_datadir}/zabbix/mysql
%{_datadir}/zabbix/postgresql

%files server-common
%defattr(-,root,root,-)
%dir %{_sysconfdir}/zabbix
%config(noreplace) %{_sysconfdir}/zabbix/zabbix_server.conf
%config(noreplace) %{_sysconfdir}/logrotate.d/zabbix_server
%{_initddir}/zabbix_server*
%{_mandir}/man8/zabbix_server.8*

%files server-mysql
%defattr(-,root,root,-)
%{_sbindir}/zabbix_server.mysql

%files server-postgresql
%defattr(-,root,root,-)
%{_sbindir}/zabbix_server.pgsql

%files agent
%defattr(-,root,root,-)
%dir %{_sysconfdir}/zabbix
%config(noreplace) %{_sysconfdir}/zabbix/zabbix_agentd.conf
%config(noreplace) %{_sysconfdir}/logrotate.d/zabbix_agentd
%{_bindir}/zabbix_get
%{_bindir}/zabbix_sender
%{_sbindir}/zabbix_agentd
%{_initddir}/zabbix_agentd
%{_mandir}/man1/zabbix_get.1*
%{_mandir}/man1/zabbix_sender.1*
%{_mandir}/man8/zabbix_agentd.8*

%files proxy-common
%defattr(-,root,root,-)
%dir %{_sysconfdir}/zabbix
%config(noreplace) %{_sysconfdir}/zabbix/zabbix_proxy.conf
%config(noreplace) %{_sysconfdir}/logrotate.d/zabbix_proxy
%{_initddir}/zabbix_proxy
%{_mandir}/man8/zabbix_proxy.8*
%{_datadir}/zabbix-proxy

%files proxy-mysql
%defattr(-,root,root,-)
%{_sbindir}/zabbix_proxy.mysql

%files proxy-postgresql
%defattr(-,root,root,-)
%{_sbindir}/zabbix_proxy.pgsql

%files frontend-php
%defattr(-,root,root,-)
%doc zabbix_mysql/AUTHORS zabbix_mysql/COPYING zabbix_mysql/ChangeLog zabbix_mysql/NEWS zabbix_mysql/README
%dir %{_datadir}/zabbix-frontend
%{_datadir}/zabbix-frontend/php

%files frontend-php-mysql

%files frontend-php-postgresql

%changelog
* Fri Mar 18 2016 Tomohiro "Tomo-p" KATO <tomop@teamgedoh.net> 3.0.1-1
- new upstream release.
- disabled jabber support.

* Wed Sep  9 2015 Tomohiro "Tomo-p" KATO <tomop@teamgedoh.net> 2.4.6-1
- new upstream release.

* Sat Apr 11 2015 Tomohiro "Tomo-p" KATO <tomop@teamgedoh.net> 2.2.9-1
- new upstream release.

* Sun Jul  6 2014 Tomohiro "Tomo-p" KATO <tomop@teamgedoh.net> 2.2.4-1
- new upstream release.
- built with both of mysql and postgresql.

* Mon Oct 07 2013 Daisuke SUZUKI <daisuke@linux.or.jp> 2.0.8-1
- update to 2.0.8

* Wed Feb 20 2013 Daisuke SUZUKI <daisuke@linux.or.jp> 2.0.5-2
- use %%bcond_with mysql to build with mysql

* Tue Feb 19 2013 IWAI, Masaharu <iwai@alib.jp> 2.0.5-1
- update to 2.0.5
- add using MySQL client library switch: default no
  - define use_postfix and use_mysql
  - add BuildRequires: MySQL-devel
  - add configure option: --with-mysql

* Thu Feb  7 2013 IWAI, Masaharu <iwai@alib.jp> 2.0.4-1
- initial build for Vine Linux
