zabbix/zabbix.spec

667 lines
22 KiB
RPMSpec
Raw Normal View History

2012-10-07 22:43:46 +00:00
# TODO, maybe sometime:
# * Do something about mutex errors sometimes occurring when init scripts'
# restart is invoked; something like "sleep 2" between stop and start?
# * Use "Include" in zabbix_{agentd,proxy,server}.conf, point to corresponding
# /etc/zabbix/zabbix_*.conf.d/ dir; needs patching in order to not load
# various backup files (*.rpm{orig,new,save}, *~ etc) in that dir.
%global srcname zabbix
2012-02-01 20:58:23 +04:00
2014-05-21 00:27:38 +11:00
Summary: Open-source monitoring solution for your IT infrastructure
Name: zabbix
2015-01-26 06:24:40 -05:00
Version: 2.0.14
Release: 1
2014-05-21 00:27:38 +11:00
License: GPLv2+
Group: Monitoring
Url: http://www.zabbix.com/
2015-01-26 06:24:40 -05:00
Source0: http://downloads.sourceforge.net/%{srcname}/%{srcname}-%{version}.tar.gz
2012-10-07 22:43:46 +00:00
# upstream tarball minus src/zabbix_java/lib/org-json-2010-12-28.jar
2014-05-21 00:27:38 +11:00
#Source0: %{srcname}-%{version}-free.tar.gz
Source1: zabbix-web.conf
Source5: zabbix-logrotate.in
2012-10-07 22:43:46 +00:00
# tmpfiles for F >= 15 mandriva >= 2012
2014-05-21 00:27:38 +11:00
Source9: zabbix-tmpfiles.conf
2012-10-07 22:43:46 +00:00
# systemd units
2014-05-21 00:27:38 +11:00
Source10: zabbix-agent.service
Source11: zabbix-proxy-mysql.service
Source12: zabbix-proxy-pgsql.service
Source13: zabbix-proxy-sqlite3.service
Source14: zabbix-server-mysql.service
Source15: zabbix-server-pgsql.service
Source16: zabbix-server-sqlite3.service
2012-10-07 22:43:46 +00:00
# local rules for config files
2014-05-21 00:27:38 +11:00
Patch0: zabbix-2.0.1-config.patch
2012-10-07 22:43:46 +00:00
# local rules for config files - fonts
2015-01-26 06:24:40 -05:00
Patch1: zabbix-2.0.14-fonts-config.patch
2012-10-07 22:43:46 +00:00
# remove flash content (#737337)
# https://support.zabbix.com/browse/ZBX-4794
2014-05-21 00:27:38 +11:00
Patch2: zabbix-2.0.1-no-flash.patch
2012-10-07 22:43:46 +00:00
# adapt for fping3 - https://support.zabbix.com/browse/ZBX-4894
2014-05-21 00:27:38 +11:00
Patch3: zabbix-1.8.12-fping3.patch
BuildRequires: systemd-units
BuildRequires: mysql-devel
BuildRequires: net-snmp-devel
#BuildRequires: openldap-devel
BuildRequires: unixODBC-devel
BuildRequires: pkgconfig(gnutls)
BuildRequires: pkgconfig(iksemel)
BuildRequires: pkgconfig(libcurl)
BuildRequires: pkgconfig(libpq)
BuildRequires: pkgconfig(libssh2)
BuildRequires: pkgconfig(OpenIPMI)
BuildRequires: pkgconfig(sqlite3)
Requires: logrotate
Requires(pre): shadow-utils
2012-10-07 22:43:46 +00:00
%if %{srcname} != %{name}
2014-05-21 00:27:38 +11:00
Conflicts: %{srcname}
2012-02-01 20:58:23 +04:00
%endif
%description
2012-10-07 22:43:46 +00:00
ZABBIX is software that monitors numerous parameters of a network and
the health and integrity of servers. ZABBIX uses a flexible
notification mechanism 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 visualisation
features based on the stored data. This makes ZABBIX ideal for
2012-02-01 20:58:23 +04:00
capacity planning.
2012-10-07 22:43:46 +00:00
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 your servers can be assessed from any
location. Properly configured, ZABBIX can play an important role in
monitoring IT infrastructure. This is equally true for small
organisations with a few servers and for large companies with a
multitude of servers.
2014-05-21 00:27:38 +11:00
%files
%doc AUTHORS ChangeLog COPYING NEWS README
%dir %{_sysconfdir}/%{srcname}
%config(noreplace) %{_sysconfdir}/tmpfiles.d/zabbix.conf
%attr(0755,zabbix,zabbix) %dir %{_localstatedir}/lib/%{srcname}
%attr(0755,zabbix,zabbix) %dir %{_localstatedir}/log/%{srcname}
%{_bindir}/zabbix_get
%{_bindir}/zabbix_sender
%{_mandir}/man1/zabbix_get.1*
%{_mandir}/man1/zabbix_sender.1*
%pre
getent group zabbix > /dev/null || groupadd -r zabbix
getent passwd zabbix > /dev/null || \
useradd -r -g zabbix -d %{_localstatedir}/lib/%{srcname} -s /sbin/nologin \
-c "Zabbix Monitoring System" zabbix
:
#----------------------------------------------------------------------------
2012-10-07 22:43:46 +00:00
%package server
2014-05-21 00:27:38 +11:00
Summary: Zabbix server common files
Group: Monitoring
Requires: %{name} = %{EVRD}
Requires: %{name}-server-implementation = %{EVRD}
Requires: fping
Requires: traceroute
2012-10-07 22:43:46 +00:00
%description server
Zabbix server common files
2014-05-21 00:27:38 +11:00
%files server
%doc misc/snmptrap/zabbix_trap_receiver.pl
%attr(0640,root,zabbix) %config(noreplace) %{_sysconfdir}/zabbix_server.conf
%{_sysconfdir}/%{srcname}/zabbix_server.conf
%attr(0755,zabbix,zabbix) %dir %{_sysconfdir}/%{srcname}/externalscripts
%config(noreplace) %{_sysconfdir}/logrotate.d/zabbix-server
%ghost %{_unitdir}/zabbix-server.service
%{_mandir}/man8/zabbix_server.8*
#----------------------------------------------------------------------------
2012-10-07 22:43:46 +00:00
%package server-mysql
2014-05-21 00:27:38 +11:00
Summary: Zabbix server compiled to use MySQL
Group: Monitoring
Requires: %{name} = %{EVRD}
Requires: %{name}-server = %{EVRD}
Requires(post,preun,postun): systemd-units
Provides: %{name}-server-implementation = %{EVRD}
Conflicts: %{name}-server-pgsql
Conflicts: %{name}-server-sqlite3
2012-10-07 22:43:46 +00:00
%description server-mysql
2014-05-21 00:27:38 +11:00
Zabbix server compiled to use MySQL.
%files server-mysql
%{_docdir}/%{srcname}-server-mysql-%{version}/
%{_sbindir}/zabbix_server_mysql
%{_unitdir}/zabbix-server-mysql.service
%post server-mysql
if [ $1 -eq 1 ] ; then
/bin/systemctl daemon-reload >/dev/null 2>&1 || :
fi
ln -sf %{_unitdir}/zabbix-server-mysql.service %{_unitdir}/zabbix-server.service
%preun server-mysql
if [ $1 -eq 0 ] ; then
/bin/systemctl --no-reload disable zabbix-server-mysql.service > /dev/null 2>&1 || :
/bin/systemctl stop zabbix-server-mysql.service > /dev/null 2>&1 || :
fi
%postun server-mysql
/bin/systemctl daemon-reload >/dev/null 2>&1 || :
if [ $1 -ge 1 ] ; then
/bin/systemctl try-restart zabbix-server-mysql.service >/dev/null 2>&1 || :
fi
#----------------------------------------------------------------------------
2012-10-07 22:43:46 +00:00
%package server-pgsql
2014-05-21 00:27:38 +11:00
Summary: Zabbix server compiled to use PostgresSQL
Group: Monitoring
Requires: %{name} = %{EVRD}
Requires: %{name}-server = %{EVRD}
Requires(post,preun,postun): systemd-units
Provides: %{name}-server-implementation = %{EVRD}
Conflicts: %{name}-server-mysql
Conflicts: %{name}-server-sqlite3
2012-10-07 22:43:46 +00:00
%description server-pgsql
2014-05-21 00:27:38 +11:00
Zabbix server compiled to use PostgresSQL.
%post server-pgsql
if [ $1 -eq 1 ] ; then
/bin/systemctl daemon-reload >/dev/null 2>&1 || :
fi
ln -sf %{_unitdir}/zabbix-server-pgsql.service %{_unitdir}/zabbix-server.service
%files server-pgsql
%{_docdir}/%{srcname}-server-pgsql-%{version}/
%{_sbindir}/zabbix_server_pgsql
%{_unitdir}/zabbix-server-pgsql.service
%preun server-pgsql
if [ $1 -eq 0 ] ; then
/bin/systemctl --no-reload disable zabbix-server-pgsql.service > /dev/null 2>&1 || :
/bin/systemctl stop zabbix-server-pgsql.service > /dev/null 2>&1 || :
fi
%postun server-pgsql
/bin/systemctl daemon-reload >/dev/null 2>&1 || :
if [ $1 -ge 1 ] ; then
/bin/systemctl try-restart zabbix-server-pgsql.service >/dev/null 2>&1 || :
fi
#----------------------------------------------------------------------------
2012-10-07 22:43:46 +00:00
%package server-sqlite3
2014-05-21 00:27:38 +11:00
Summary: Zabbix server compiled to use SQLite
Group: Monitoring
Requires: %{name} = %{EVRD}
Requires: %{name}-server = %{EVRD}
Requires(post,preun,postun): systemd-units
Provides: %{name}-server-implementation = %{EVRD}
Conflicts: %{name}-server-mysql
Conflicts: %{name}-server-pgsql
2012-10-07 22:43:46 +00:00
%description server-sqlite3
2014-05-21 00:27:38 +11:00
Zabbix server compiled to use SQLite.
%files server-sqlite3
%{_docdir}/%{srcname}-server-sqlite3-%{version}/
%{_sbindir}/zabbix_server_sqlite3
%{_unitdir}/zabbix-server-sqlite3.service
%post server-sqlite3
if [ $1 -eq 1 ] ; then
/bin/systemctl daemon-reload >/dev/null 2>&1 || :
fi
ln -sf %{_unitdir}/zabbix-server-sqlite3.service %{_unitdir}/zabbix-server.service
%preun server-sqlite3
if [ $1 -eq 0 ] ; then
/bin/systemctl --no-reload disable zabbix-server-sqlite3.service > /dev/null 2>&1 || :
/bin/systemctl stop zabbix-server-sqlite3.service > /dev/null 2>&1 || :
fi
%postun server-sqlite3
/bin/systemctl daemon-reload >/dev/null 2>&1 || :
if [ $1 -ge 1 ] ; then
/bin/systemctl try-restart zabbix-server-sqlite3.service >/dev/null 2>&1 || :
fi
#----------------------------------------------------------------------------
2012-02-01 20:58:23 +04:00
%package agent
2014-05-21 00:27:38 +11:00
Summary: Zabbix Agent
Group: Monitoring
Requires: %{name} = %{EVRD}
Requires(post,preun,postun): systemd-units
2012-02-01 20:58:23 +04:00
%description agent
2012-10-07 22:43:46 +00:00
The Zabbix client agent, to be installed on monitored systems.
2014-05-21 00:27:38 +11:00
%files agent
%doc conf/zabbix_agentd/*.conf
%config(noreplace) %{_sysconfdir}/zabbix_agent.conf
%{_sysconfdir}/%{srcname}/zabbix_agent.conf
%config(noreplace) %{_sysconfdir}/zabbix_agentd.conf
%{_sysconfdir}/%{srcname}/zabbix_agentd.conf
%config(noreplace) %{_sysconfdir}/logrotate.d/zabbix-agent
%{_unitdir}/zabbix-agent.service
%{_sbindir}/zabbix_agent
%{_sbindir}/zabbix_agentd
%{_mandir}/man8/zabbix_agentd.8*
%post agent
if [ $1 -eq 1 ] ; then
/bin/systemctl daemon-reload >/dev/null 2>&1 || :
fi
%preun agent
if [ $1 -eq 0 ] ; then
/bin/systemctl --no-reload disable zabbix-agent.service > /dev/null 2>&1 || :
/bin/systemctl stop zabbix-agent.service > /dev/null 2>&1 || :
fi
%postun agent
/bin/systemctl daemon-reload >/dev/null 2>&1 || :
if [ $1 -ge 1 ] ; then
/bin/systemctl try-restart zabbix-agent.service >/dev/null 2>&1 || :
fi
#----------------------------------------------------------------------------
2012-10-07 22:43:46 +00:00
%package proxy
2014-05-21 00:27:38 +11:00
Summary: Zabbix Proxy
Group: Monitoring
Requires: %{name} = %{version}-%{release}
Requires: %{name}-proxy-implementation = %{EVRD}
Requires: fping
2012-10-07 22:43:46 +00:00
%description proxy
2014-05-21 00:27:38 +11:00
The Zabbix proxy.
%files proxy
%doc misc/snmptrap/zabbix_trap_receiver.pl
%attr(0640,root,zabbix) %config(noreplace) %{_sysconfdir}/zabbix_proxy.conf
%{_sysconfdir}/%{srcname}/zabbix_proxy.conf
%attr(0755,zabbix,zabbix) %dir %{_sysconfdir}/%{srcname}/externalscripts
%config(noreplace) %{_sysconfdir}/logrotate.d/zabbix-proxy
%ghost %{_unitdir}/zabbix-proxy.service
%{_mandir}/man8/zabbix_proxy.8*
#----------------------------------------------------------------------------
2012-10-07 22:43:46 +00:00
%package proxy-mysql
2014-05-21 00:27:38 +11:00
Summary: Zabbix proxy compiled to use MySQL
Group: Monitoring
Requires: %{name}-proxy = %{EVRD}
Requires(post,preun,postun): systemd-units
Provides: %{name}-proxy-implementation = %{EVRD}
2012-10-07 22:43:46 +00:00
%description proxy-mysql
2014-05-21 00:27:38 +11:00
The Zabbix proxy compiled to use MySQL.
%files proxy-mysql
%{_docdir}/%{srcname}-proxy-mysql-%{version}/
%{_sbindir}/zabbix_proxy_mysql
%{_unitdir}/zabbix-proxy-mysql.service
%post proxy-mysql
if [ $1 -eq 1 ] ; then
/bin/systemctl daemon-reload >/dev/null 2>&1 || :
fi
ln -sf %{_unitdir}/zabbix-proxy-mysql.service %{_unitdir}/zabbix-proxy.service
%preun proxy-mysql
if [ $1 -eq 0 ] ; then
/bin/systemctl --no-reload disable zabbix-proxy-mysql.service > /dev/null 2>&1 || :
/bin/systemctl stop zabbix-proxy-mysql.service > /dev/null 2>&1 || :
fi
%postun proxy-mysql
/bin/systemctl daemon-reload >/dev/null 2>&1 || :
if [ $1 -ge 1 ] ; then
/bin/systemctl try-restart zabbix-proxy-mysql.service >/dev/null 2>&1 || :
fi
#----------------------------------------------------------------------------
2012-10-07 22:43:46 +00:00
%package proxy-pgsql
2014-05-21 00:27:38 +11:00
Summary: Zabbix proxy compiled to use PostgreSQL
Group: Monitoring
Requires: %{name}-proxy = %{EVRD}
Requires(post,preun,postun): systemd-units
Provides: %{name}-proxy-implementation = %{EVRD}
2012-10-07 22:43:46 +00:00
%description proxy-pgsql
2014-05-21 00:27:38 +11:00
The Zabbix proxy compiled to use PostgreSQL.
%files proxy-pgsql
%{_docdir}/%{srcname}-proxy-pgsql-%{version}/
%{_sbindir}/zabbix_proxy_pgsql
%{_unitdir}/zabbix-proxy-pgsql.service
%post proxy-pgsql
if [ $1 -eq 1 ] ; then
/bin/systemctl daemon-reload >/dev/null 2>&1 || :
fi
ln -sf %{_unitdir}/zabbix-proxy-pgsql.service %{_unitdir}/zabbix-proxy.service
%preun proxy-pgsql
if [ $1 -eq 0 ] ; then
/bin/systemctl --no-reload disable zabbix-proxy-pgsql.service > /dev/null 2>&1 || :
/bin/systemctl stop zabbix-proxy-pgsql.service > /dev/null 2>&1 || :
fi
%postun proxy-pgsql
/bin/systemctl daemon-reload >/dev/null 2>&1 || :
if [ $1 -ge 1 ] ; then
/bin/systemctl try-restart zabbix-proxy-pgsql.service >/dev/null 2>&1 || :
fi
#----------------------------------------------------------------------------
2012-10-07 22:43:46 +00:00
%package proxy-sqlite3
2014-05-21 00:27:38 +11:00
Summary: Zabbix proxy compiled to use SQLite
Group: Monitoring
Requires: %{name}-proxy = %{EVRD}
Requires(post,preun,postun): systemd-units
Provides: %{name}-proxy-implementation = %{EVRD}
2012-10-07 22:43:46 +00:00
%description proxy-sqlite3
2014-05-21 00:27:38 +11:00
The Zabbix proxy compiled to use SQLite.
%files proxy-sqlite3
%{_docdir}/%{srcname}-proxy-sqlite3-%{version}/
%{_sbindir}/zabbix_proxy_sqlite3
%{_unitdir}/zabbix-proxy-sqlite3.service
%post proxy-sqlite3
if [ $1 -eq 1 ] ; then
/bin/systemctl daemon-reload >/dev/null 2>&1 || :
fi
ln -sf %{_unitdir}/zabbix-proxy-sqlite3.service %{_unitdir}/zabbix-proxy.service
%preun proxy-sqlite3
if [ $1 -eq 0 ] ; then
/bin/systemctl --no-reload disable zabbix-proxy-sqlite3.service > /dev/null 2>&1 || :
/bin/systemctl stop zabbix-proxy-sqlite3.service > /dev/null 2>&1 || :
fi
%postun proxy-sqlite3
/bin/systemctl daemon-reload >/dev/null 2>&1 || :
if [ $1 -ge 1 ] ; then
/bin/systemctl try-restart zabbix-proxy-sqlite3.service >/dev/null 2>&1 || :
fi
#----------------------------------------------------------------------------
2012-02-01 20:58:23 +04:00
%package web
2014-05-21 00:27:38 +11:00
Summary: Zabbix Web Frontend
Group: Monitoring
Requires: php
Requires: php-gd
Requires: php-bcmath
Requires: php-mbstring
Requires: php-xml
Requires: php-gettext
Requires: fonts-ttf-dejavu
Requires: %{name} = %{EVRD}
Requires: %{name}-web-database = %{EVRD}
BuildArch: noarch
2012-02-01 20:58:23 +04:00
%description web
2012-10-07 22:43:46 +00:00
The php frontend to display the Zabbix web interface.
2014-05-21 00:27:38 +11:00
%files web
%dir %attr(0750,apache,apache) %{_sysconfdir}/%{srcname}/web
%ghost %attr(0644,apache,apache) %config(noreplace) %{_sysconfdir}/%{srcname}/web/zabbix.conf.php
%config(noreplace) %{_sysconfdir}/httpd/conf.d/zabbix.conf
%{_datadir}/%{srcname}
#----------------------------------------------------------------------------
2012-10-07 22:43:46 +00:00
%package web-mysql
2014-05-21 00:27:38 +11:00
Summary: Zabbix web frontend for MySQL
Group: Monitoring
Requires: %{name}-web = %{EVRD}
Requires: php-mysql
Provides: %{name}-web-database = %{EVRD}
Conflicts: %{name}-web-pgsql
Conflicts: %{name}-web-sqlite3
BuildArch: noarch
2012-10-07 22:43:46 +00:00
%description web-mysql
2014-05-21 00:27:38 +11:00
Zabbix web frontend for MySQL.
%files web-mysql
#----------------------------------------------------------------------------
2012-10-07 22:43:46 +00:00
%package web-pgsql
2014-05-21 00:27:38 +11:00
Summary: Zabbix web frontend for PostgreSQL
Group: Monitoring
Requires: %{name}-web = %{EVRD}
Requires: php-pgsql
Provides: %{name}-web-database = %{EVRD}
Conflicts: %{name}-web-mysql
Conflicts: %{name}-web-sqlite3
BuildArch: noarch
2012-10-07 22:43:46 +00:00
%description web-pgsql
2014-05-21 00:27:38 +11:00
Zabbix web frontend for PostgreSQL.
%files web-pgsql
#----------------------------------------------------------------------------
2012-10-07 22:43:46 +00:00
%package web-sqlite3
2014-05-21 00:27:38 +11:00
Summary: Zabbix web frontend for SQLite
Group: Monitoring
Requires: %{name}-web = %{EVRD}
2012-10-07 22:43:46 +00:00
# Need to use the same db file as the server
2014-05-21 00:27:38 +11:00
Requires: %{name}-server-sqlite3 = %{EVRD}
Provides: %{name}-web-database = %{EVRD}
Conflicts: %{name}-web-mysql
Conflicts: %{name}-web-pgsql
BuildArch: noarch
2012-10-07 22:43:46 +00:00
%description web-sqlite3
2014-05-21 00:27:38 +11:00
Zabbix web frontend for SQLite.
%files web-sqlite3
2012-10-07 22:43:46 +00:00
2014-05-21 00:27:38 +11:00
#----------------------------------------------------------------------------
2012-02-01 20:58:23 +04:00
%prep
2012-10-07 22:43:46 +00:00
%setup0 -q -n %{srcname}-%{version}
%patch0 -p1
%patch1 -p1
%patch3 -p1
# remove bundled java libs
rm -rf src/zabbix_java/lib/*.jar
2012-02-01 20:58:23 +04:00
2012-10-07 22:43:46 +00:00
# remove included fonts
rm -rf frontends/php/fonts
# remove executable permissions
chmod a-x upgrades/dbpatches/*/mysql/upgrade
# All libraries are expected in /usr/lib or /usr/local/lib
# https://support.zabbix.com/browse/ZBXNEXT-1296
sed -i.orig -e 's|_LIBDIR=/usr/lib|_LIBDIR=%{_libdir}|g' \
2012-02-01 20:58:23 +04:00
configure
2012-10-07 22:43:46 +00:00
# kill off .htaccess files, options set in SOURCE1
rm -f frontends/php/include/.htaccess
rm -f frontends/php/api/.htaccess
rm -f frontends/php/conf/.htaccess
# set timestamp on modified config file and directories
touch -r frontends/php/css.css frontends/php/include/config.inc.php \
frontends/php/include/defines.inc.php \
frontends/php/include \
frontends/php/include/classes
# remove prebuilt Windows binaries
rm -rf bin
# remove flash applet
# https://support.zabbix.com/browse/ZBX-4794
rm -f frontend/php/images/flash/zbxclock.swf
%patch2 -p1
2012-02-01 20:58:23 +04:00
%build
2012-10-07 22:43:46 +00:00
common_flags="
--enable-dependency-tracking
--enable-server
--enable-agent
--enable-proxy
--enable-ipv6
--disable-java
--with-net-snmp
--with-ldap
--with-libcurl
--with-openipmi
--with-jabber
--with-unixodbc
--with-ssh2
"
%configure2_5x $common_flags --with-mysql
%make
mv src/zabbix_server/zabbix_server src/zabbix_server/zabbix_server_mysql
mv src/zabbix_proxy/zabbix_proxy src/zabbix_proxy/zabbix_proxy_mysql
%configure2_5x $common_flags --with-postgresql
%make
mv src/zabbix_server/zabbix_server src/zabbix_server/zabbix_server_pgsql
mv src/zabbix_proxy/zabbix_proxy src/zabbix_proxy/zabbix_proxy_pgsql
%configure2_5x $common_flags --with-sqlite3
2012-02-01 20:58:23 +04:00
%make
2012-10-07 22:43:46 +00:00
mv src/zabbix_server/zabbix_server src/zabbix_server/zabbix_server_sqlite3
mv src/zabbix_proxy/zabbix_proxy src/zabbix_proxy/zabbix_proxy_sqlite3
touch src/zabbix_server/zabbix_server
touch src/zabbix_proxy/zabbix_proxy
2012-02-01 20:58:23 +04:00
%install
# set up some required directories
2012-10-07 22:43:46 +00:00
mkdir -p %{buildroot}%{_sysconfdir}/%{srcname}
mkdir -p %{buildroot}%{_sysconfdir}/%{srcname}/externalscripts
mkdir -p %{buildroot}%{_sysconfdir}/%{srcname}/web
2012-02-01 20:58:23 +04:00
mkdir -p %{buildroot}%{_sysconfdir}/logrotate.d
mkdir -p %{buildroot}%{_sysconfdir}/httpd/conf.d
2012-10-07 22:43:46 +00:00
mkdir -p %{buildroot}%{_unitdir}
2012-02-01 20:58:23 +04:00
mkdir -p %{buildroot}%{_datadir}
2012-10-07 22:43:46 +00:00
mkdir -p %{buildroot}%{_localstatedir}/lib/%{srcname}
mkdir -p %{buildroot}%{_localstatedir}/log/%{srcname}
mkdir -p %{buildroot}%{_localstatedir}/run/%{srcname}
# install the frontend
cp -a frontends/php %{buildroot}%{_datadir}/%{srcname}
# prepare ghosted config file
touch %{buildroot}%{_sysconfdir}/%{srcname}/web/zabbix.conf.php
# drop Apache config file in place
install -m 0644 -p %{SOURCE1} %{buildroot}%{_sysconfdir}/httpd/conf.d/%{srcname}.conf
# fix config file options
sed -i \
-e 's|# PidFile=.*|PidFile=%{_localstatedir}/run/%{srcname}/zabbix_agentd.pid|g' \
-e 's|^LogFile=.*|LogFile=%{_localstatedir}/log/%{srcname}/zabbix_agentd.log|g' \
-e 's|# LogFileSize=.*|LogFileSize=0|g' \
conf/zabbix_agentd.conf
sed -i \
-e 's|# PidFile=.*|PidFile=%{_localstatedir}/run/%{srcname}/zabbix.pid|g' \
-e 's|^LogFile=.*|LogFile=%{_localstatedir}/log/%{srcname}/zabbix_server.log|g' \
-e 's|# LogFileSize=.*|LogFileSize=0|g' \
-e 's|# AlertScriptsPath=/home/zabbix/bin/|AlertScriptsPath=%{_localstatedir}/lib/%{srcname}/|g' \
-e 's|^DBUser=root|DBUser=zabbix|g' \
-e 's|# DBSocket=/tmp/mysql.sock|DBSocket=%{_localstatedir}/lib/mysql/mysql.sock|g' \
conf/zabbix_server.conf
sed -i \
-e 's|# PidFile=.*|PidFile=%{_localstatedir}/run/%{srcname}/zabbix_proxy.pid|g' \
-e 's|^LogFile=.*|LogFile=%{_localstatedir}/log/%{srcname}/zabbix_proxy.log|g' \
-e 's|# LogFileSize=.*|LogFileSize=0|g' \
-e 's|# AlertScriptsPath=/home/zabbix/bin/|AlertScriptsPath=%{_localstatedir}/lib/%{srcname}/|g' \
-e 's|^DBUser=root|DBUser=zabbix|g' \
-e 's|# DBSocket=/tmp/mysql.sock|DBSocket=%{_localstatedir}/lib/mysql/mysql.sock|g' \
conf/zabbix_proxy.conf
# install log rotation
cat %{SOURCE5} | sed -e 's|COMPONENT|server|g' > \
%{buildroot}%{_sysconfdir}/logrotate.d/zabbix-server
cat %{SOURCE5} | sed -e 's|COMPONENT|agentd|g' > \
%{buildroot}%{_sysconfdir}/logrotate.d/zabbix-agent
cat %{SOURCE5} | sed -e 's|COMPONENT|proxy|g' > \
%{buildroot}%{_sysconfdir}/logrotate.d/zabbix-proxy
# systemd units
install -m 0644 -p %{SOURCE10} %{buildroot}%{_unitdir}/zabbix-agent.service
install -m 0644 -p %{SOURCE11} %{buildroot}%{_unitdir}/zabbix-proxy-mysql.service
install -m 0644 -p %{SOURCE12} %{buildroot}%{_unitdir}/zabbix-proxy-pgsql.service
install -m 0644 -p %{SOURCE13} %{buildroot}%{_unitdir}/zabbix-proxy-sqlite3.service
install -m 0644 -p %{SOURCE14} %{buildroot}%{_unitdir}/zabbix-server-mysql.service
install -m 0644 -p %{SOURCE15} %{buildroot}%{_unitdir}/zabbix-server-pgsql.service
install -m 0644 -p %{SOURCE16} %{buildroot}%{_unitdir}/zabbix-server-sqlite3.service
touch %{buildroot}%{_unitdir}/zabbix-proxy.service
touch %{buildroot}%{_unitdir}/zabbix-server.service
# install
2012-02-01 20:58:23 +04:00
make DESTDIR=%{buildroot} install
2012-10-07 22:43:46 +00:00
rm %{buildroot}%{_sbindir}/zabbix_server
install -m 0755 -p src/zabbix_server/zabbix_server_* %{buildroot}%{_sbindir}/
rm %{buildroot}%{_sbindir}/zabbix_proxy
install -m 0755 -p src/zabbix_proxy/zabbix_proxy_* %{buildroot}%{_sbindir}/
# install compatibility links for config files
ln -sf %{_sysconfdir}/zabbix_agent.conf %{buildroot}%{_sysconfdir}/%{srcname}/zabbix_agent.conf
ln -sf %{_sysconfdir}/zabbix_agentd.conf %{buildroot}%{_sysconfdir}/%{srcname}/zabbix_agentd.conf
ln -sf %{_sysconfdir}/zabbix_server.conf %{buildroot}%{_sysconfdir}/%{srcname}/zabbix_server.conf
ln -sf %{_sysconfdir}/zabbix_proxy.conf %{buildroot}%{_sysconfdir}/%{srcname}/zabbix_proxy.conf
# nuke static libs and empty oracle upgrade sql
2012-02-01 20:58:23 +04:00
rm -rf %{buildroot}%{_libdir}/libzbx*.a
2012-10-07 22:43:46 +00:00
# copy sql files to appropriate per package locations
for pkg in proxy server ; do
docdir=%{buildroot}%{_docdir}/%{srcname}-$pkg-mysql-%{version}
install -dm 755 $docdir
cp -p --parents database/mysql/schema.sql $docdir
cp -p --parents database/mysql/data.sql $docdir
cp -p --parents database/mysql/images.sql $docdir
cp -pR --parents upgrades/dbpatches/1.6/mysql $docdir
cp -pR --parents upgrades/dbpatches/1.8/mysql $docdir
cp -pR --parents upgrades/dbpatches/2.0/mysql $docdir
docdir=%{buildroot}%{_docdir}/%{srcname}-$pkg-pgsql-%{version}
install -dm 755 $docdir
cp -p --parents database/postgresql/schema.sql $docdir
cp -p --parents database/postgresql/data.sql $docdir
cp -p --parents database/postgresql/images.sql $docdir
cp -pR --parents upgrades/dbpatches/1.6/postgresql $docdir
cp -pR --parents upgrades/dbpatches/1.8/postgresql $docdir
cp -pR --parents upgrades/dbpatches/2.0/postgresql $docdir
docdir=%{buildroot}%{_docdir}/%{srcname}-$pkg-sqlite3-%{version}
install -dm 755 $docdir
cp -p --parents database/sqlite3/schema.sql $docdir
cp -p --parents database/sqlite3/data.sql $docdir
cp -p --parents database/sqlite3/images.sql $docdir
done
# remove extraneous ones
rm -rf %{buildroot}%{_datadir}/%{srcname}/create
# systemd must create /var/run/%{srcname}
mkdir -p %{buildroot}%{_sysconfdir}/tmpfiles.d
install -m 0644 %{SOURCE9} %{buildroot}%{_sysconfdir}/tmpfiles.d/zabbix.conf