# $Id$ # Authority: The icinga devel team # Upstream: The icinga devel team # ExcludeDist: el4 el3 %define revision 0 %define configdir %{_sysconfdir}/icingaweb %define logdir %{_localstatedir}/log/icingaweb %define sharedir %{_datadir}/icingaweb %define prefixdir %{_datadir}/icingaweb %if "%{_vendor}" == "suse" %define phpname php5 %define phpzendname php5-ZendFramework %endif %if "%{_vendor}" == "redhat" %define phpname php %define phpzendname php-ZendFramework %endif # el5 requires newer php53 rather than php (5.1) %if 0%{?el5} || 0%{?rhel} == 5 || "%{?dist}" == ".el5" %define phpname php53 %endif %if "%{_vendor}" == "suse" %define apacheconfdir %{_sysconfdir}/apache2/conf.d %define apacheuser wwwrun %define apachegroup www %define extcmdfile1x %{_localstatedir}/icinga/rw/icinga.cmd %define livestatussocket1x %{_localstatedir}/icinga/rw/live %endif %if "%{_vendor}" == "redhat" %define apacheconfdir %{_sysconfdir}/httpd/conf.d %define apacheuser apache %define apachegroup apache %define extcmdfile-1x %{_localstatedir}/spool/icinga/cmd/icinga.cmd %define livestatussocket1x %{_localstatedir}/spool/icinga/cmd/live %endif Summary: Open Source host, service and network monitoring Web UI Name: icingaweb2 Version: 1.0.0 Release: %{revision}%{?dist} License: GPLv2 Group: Applications/System URL: http://www.icinga.org BuildArch: noarch %if "%{_vendor}" == "suse" AutoReqProv: Off %endif Source0: https://downloads.sourceforge.net/project/icinga/%{name}/%{version}/%{name}-%{version}.tar.gz BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root BuildRequires: %{phpname} >= 5.3.0 BuildRequires: %{phpname}-devel >= 5.3.0 BuildRequires: %{phpname}-ldap BuildRequires: %{phpname}-pdo BuildRequires: %{phpzendname} BuildRequires: %{phpzendname}-Db-Adapter-Pdo BuildRequires: %{phpzendname}-Db-Adapter-Pdo-Mysql BuildRequires: %{phpzendname}-Db-Adapter-Pdo-Pgsql %if "%{_vendor}" == "redhat" %endif %if "%{_vendor}" == "suse" Requires: %{phpname}-devel >= 5.3.0 BuildRequires: %{phpname}-json BuildRequires: %{phpname}-sockets BuildRequires: %{phpname}-dom %endif Requires: %{phpname} >= 5.3.0 Requires: %{phpzendname} Requires: %{phpname}-ldap Requires: %{phpname}-pdo %if "%{_vendor}" == "redhat" Requires: %{phpname}-common Requires: php-pear %endif %if "%{_vendor}" == "suse" Requires: %{phpname}-pear Requires: %{phpname}-dom Requires: %{phpname}-tokenizer Requires: %{phpname}-gettext Requires: %{phpname}-ctype Requires: %{phpname}-json Requires: apache2-mod_php5 %endif Requires: %{name}-doc %description IcingaWeb for Icinga 2 or Icinga 1.x using status data, IDOUtils or Livestatus as backend provider. %package config-internal-mysql Summary: config for internal mysql database Group: Applications/System Requires: %{name} = %{version}-%{release} Requires: %{phpzendname}-Db-Adapter-Pdo Requires: %{phpzendname}-Db-Adapter-Pdo-Mysql %description config-internal-mysql Configuration for internal mysql database. %package config-internal-pgsql Summary: config for internal pgsql database Group: Applications/System Requires: %{name} = %{version}-%{release} Requires: %{phpzendname}-Db-Adapter-Pdo Requires: %{phpzendname}-Db-Adapter-Pdo-Pgsql %description config-internal-pgsql Configuration for internal pgsql database. %package config-backend-statusdata-1x Summary: Backend config for status data Group: Applications/System Requires: %{name} = %{version}-%{release} Provides: %{name}-config-statusdata %description config-backend-statusdata-1x Backend config for status data provided by Icinga 1.x Core. %package config-backend-ido-mysql-1x Summary: Backend config for icinga 1.x ido mysql database Group: Applications/System Requires: %{name} = %{version}-%{release} Requires: %{phpname}-mysql Provides: %{name}-config-ido-mysql %description config-backend-ido-mysql-1x Backend config for ido mysql database provided by Icinga 1.x IDOUtils with MySQL. %package config-backend-ido-pgsql-1x Summary: Backend config for icinga 1.x ido pgsql database Group: Applications/System Requires: %{name} = %{version}-%{release} Requires: %{phpname}-pgsql Provides: %{name}-config-ido-pgsql %description config-backend-ido-pgsql-1x Backend config for ido mysql database provided by Icinga 1.x IDOUtils with PostgreSQL. %package config-backend-livestatus-1x Summary: Backend config for icinga 1.x livestatus Group: Applications/System Requires: %{name} = %{version}-%{release} Provides: %{name}-config-livestatus %description config-backend-livestatus-1x Backend config for livestatus provided by Icinga 1.x with mk_livestatus NEB module. %package config-backend-commands-1x Summary: Backend config for icinga 1.x commands Group: Applications/System Requires: %{name} = %{version}-%{release} Provides: %{name}-config-commands %description config-backend-commands-1x Backend config for external command pipe provided by Icinga 1.x %prep %setup -q -n %{name}-%{version} %build %configure \ --prefix="%{prefixdir}" \ --datadir="%{sharedir}" \ --datarootdir="%{sharedir}" \ --sysconfdir="%{configdir}" \ --with-icingaweb-config-path='%{configdir}' \ --with-icingaweb-log-path='%{logdir}' \ --with-web-path='/icingaweb' \ --with-httpd-config-path=%{apacheconfdir} \ --with-web-user='%{apacheuser}' \ --with-web-group='%{apachegroup}' \ --with-internal-db-type='mysql' \ --with-internal-db-name='icingaweb' \ --with-internal-db-host='localhost' \ --with-internal-db-port='3306' \ --with-internal-db-pass='icingaweb' \ --with-internal-db-user='icingaweb' \ --with-internal-authentication=yes \ --with-icinga-commandpipe='%{extcmdfile1x}' \ --with-livestatus-socket='%{livestatussocket1x}' cat > README.RHEL.SUSE <<"EOF" IcingaWeb for RHEL and SUSE =========================== Please check ./doc/installation.md for requirements and database setup. EOF %install [ "%{buildroot}" != "/" ] && [ -d "%{buildroot}" ] && rm -rf %{buildroot} %{__mkdir} -p %{buildroot}/%{apacheconfdir} %{__make} install \ install-apache-config \ DESTDIR="%{buildroot}" \ INSTALL_OPTS="" \ COMMAND_OPTS="" \ INSTALL_OPTS_WEB="" \ INIT_OPTS="" # prepare configuration for sub packages %pre # Add apacheuser in the icingacmd group # If the group exists, add the apacheuser in the icingacmd group. # It is not neccessary that icinga2-web is installed on the same system as # icinga and only on systems with icinga installed the icingacmd # group exists. In all other cases the user used for ssh access has # to be added to the icingacmd group on the remote icinga server. getent group icingacmd > /dev/null if [ $? -eq 0 ]; then %{_sbindir}/usermod -a -G icingacmd %{apacheuser} fi # uncomment if building from git # %{__rm} -rf %{buildroot}%{_datadir}/icinga2-web/.git %preun %post %clean [ "%{buildroot}" != "/" ] && [ -d "%{buildroot}" ] && rm -rf %{buildroot} %files # main dirs %defattr(-,root,root) %doc etc/schema doc README.RHEL.SUSE %{sharedir}/application %{sharedir}/library %{sharedir}/public %{sharedir}/modules # configs %defattr(-,root,root) %config(noreplace) %attr(-,root,root) %{apacheconfdir}/icingaweb.conf %dir %{configdir} %config(noreplace) %attr(775,%{apacheuser},%{apachegroup}) %{configdir} # logs %attr(2775,%{apacheuser},%{apachegroup}) %dir %{logdir} %changelog * Sun Oct 20 2013 Michael Friedrich - 1.0.0-1 - initial creation