%global alignak_user nagios %global alignak_group nagios Summary: Python Monitoring tool Name: alignak Version: 1.0.0 Release: 1%{?dist} URL: https://github.com/Alignak-monitoring/%{name} Source0: https://github.com/Alignak-monitoring/%{name}/archive/%{version}/%{name}-%{version}.tar.gz Source1: %{name}-arbiter.service Source2: %{name}-broker.service Source3: %{name}-reactionner.service Source4: %{name}-receiver.service Source5: %{name}-poller.service Source6: %{name}-scheduler.service Source7: %{name}.logrotate Source8: %{name}-tmpfiles.conf License: AGPLv3+ Requires: python2-simplejson Requires: python2-pycurl Requires: python-cherrypy Requires: python2-requests Requires: python-setproctitle Requires: python-ujson Requires: python2-termcolor Requires: python2-numpy %{?systemd_requires} BuildRequires: python2-devel BuildRequires: python2-setuptools BuildRequires: python2-pbr BuildRequires: systemd BuildArch: noarch %description Alignak is a new monitoring tool written in Python. The main goal of Alignak is to allow users to have a fully flexible architecture for their monitoring system that can easily scale to large environments. %package all Summary: Meta-package to pull in all alignak Requires: %{name}-common = %{version}-%{release} Requires: %{name}-arbiter = %{version}-%{release} Requires: %{name}-broker = %{version}-%{release} Requires: %{name}-scheduler = %{version}-%{release} Requires: %{name}-reactionner = %{version}-%{release} Requires: %{name}-receiver = %{version}-%{release} Requires: %{name}-poller = %{version}-%{release} %description all Alignak is a new monitoring tool written in Python. The main goal of Alignak is to allow users to have a fully flexible architecture for their monitoring system that can easily scale to large environments. This is a dummy package which brings in all subpackages. %package common Summary: Alignak Common %description common Alignak Common %package arbiter Summary: Alignak Arbiter Requires: %{name}-common = %{version}-%{release} %description arbiter Alignak arbiter daemon %package reactionner Summary: Alignak Reactionner Requires: %{name}-common = %{version}-%{release} %description reactionner Alignak reactionner daemon %package scheduler Summary: Alignak Scheduler Requires: %{name}-common = %{version}-%{release} %description scheduler Alignak scheduler daemon %package poller Summary: Alignak Poller Requires: %{name}-common = %{version}-%{release} Requires: nagios-plugins-all %description poller Alignak poller daemon %package broker Summary: Alignak Broker Requires: %{name}-common = %{version}-%{release} %description broker Alignak broker daemon %package receiver Summary: Alignak Poller Requires: %{name}-common = %{version}-%{release} %description receiver Alignak receiver daemon %prep %setup -q -n %{name}-%{version} # clean git files find . -name '.gitignore' -exec rm -f {} \; find . -name '.gitempty' -exec rm -f {} \; find . -name '.gitkeep' -exec rm -f {} \; %build %py2_build %install find %{buildroot} -size 0 -delete %py2_install install -d -m0755 %{buildroot}%{_unitdir} install -p -m0644 %{SOURCE1} %{buildroot}%{_unitdir}/%{name}-arbiter.service install -p -m0644 %{SOURCE2} %{buildroot}%{_unitdir}/%{name}-broker.service install -p -m0644 %{SOURCE3} %{buildroot}%{_unitdir}/%{name}-reactionner.service install -p -m0644 %{SOURCE4} %{buildroot}%{_unitdir}/%{name}-receiver.service install -p -m0644 %{SOURCE5} %{buildroot}%{_unitdir}/%{name}-poller.service install -p -m0644 %{SOURCE6} %{buildroot}%{_unitdir}/%{name}-scheduler.service install -d -m0755 %{buildroot}%{_sysconfdir}/%{name}/ rm -rf %{buildroot}%{_sysconfdir}/%{name}/* rm -rf %{buildroot}/usr/etc/%{name}/* rm -rf %{buildroot}/etc/%{name}/%{name}.ini rm -rf %{buildroot}/usr/etc/default/%{name} install -d -m0755 %{buildroot}%{_sysconfdir}/%{name} cp -rf etc/* %{buildroot}%{_sysconfdir}/%{name} rm -rf %{buildroot}%{_sysconfdir}/%{name}/sample install -d -m0755 %{buildroot}%{_sysconfdir}/%{name}/modules install -d -m0755 %{buildroot}%{_sysconfdir}/logrotate.d install -p -m0644 %{SOURCE7} %{buildroot}%{_sysconfdir}/logrotate.d/%{name} mkdir -p %{buildroot}%{_tmpfilesdir} install -m 0644 %{SOURCE8} %{buildroot}%{_tmpfilesdir}/%{name}.conf install -d -m0755 %{buildroot}%{_localstatedir}/log/%{name} install -d -m0755 %{buildroot}%{_localstatedir}/log/%{name}/archives install -d -m0755 %{buildroot}%{_localstatedir}/lib/%{name} install -d -m0755 %{buildroot}/run/%{name} rm -rf %{buildroot}/usr/etc/init.d/* rm -rf %{buildroot}/usr/bin/alignak-environment sed -i 's|workdir=/usr/local/var/run/alignak|workdir=/var/run/alignak|g' %{buildroot}%{_sysconfdir}/%{name}/daemons/{arbiterd,brokerd,pollerd,reactionnerd,receiverd,schedulerd}.ini sed -i 's|logdir=/usr/local/var/log/alignak|logdir=/var/log/alignak|g' %{buildroot}%{_sysconfdir}/%{name}/daemons/{arbiterd,brokerd,pollerd,reactionnerd,receiverd,schedulerd}.ini sed -i 's|etcdir=/usr/local/etc/alignak|etcdir=/etc/alignak|g' %{buildroot}%{_sysconfdir}/%{name}/daemons/{arbiterd,brokerd,pollerd,reactionnerd,receiverd,schedulerd}.ini sed -i 's|#user=alignak|user=nagios|g' %{buildroot}%{_sysconfdir}/%{name}/daemons/{arbiterd,brokerd,pollerd,reactionnerd,receiverd,schedulerd}.ini sed -i 's|#group=alignak|group=nagios|g' %{buildroot}%{_sysconfdir}/%{name}/daemons/{arbiterd,brokerd,pollerd,reactionnerd,receiverd,schedulerd}.ini sed -i 's|pack_distribution_file=/usr/local/var/lib/alignak/pack_distribution.dat|pack_distribution_file=/var/lib/alignak/pack_distribution.dat|g' %{buildroot}%{_sysconfdir}/%{name}/%{name}.cfg sed -i 's|daemons_log_folder=/usr/local/var/log/alignak|daemons_log_folder=/var/log/alignak|g' %{buildroot}%{_sysconfdir}/%{name}/%{name}.cfg chmod 0644 %{buildroot}/etc/alignak/alignak.cfg chmod 0644 %{buildroot}/etc/alignak/alignak.ini chmod 0644 %{buildroot}/etc/alignak/daemons/arbiterd.ini chmod 0644 %{buildroot}/etc/alignak/daemons/brokerd.ini chmod 0644 %{buildroot}/etc/alignak/daemons/pollerd.ini chmod 0644 %{buildroot}/etc/alignak/daemons/reactionnerd.ini chmod 0644 %{buildroot}/etc/alignak/daemons/receiverd.ini chmod 0644 %{buildroot}/etc/alignak/daemons/schedulerd.ini chmod 0644 %{buildroot}/etc/alignak/daemons/reactionnerd.ini chmod 0644 %{buildroot}/etc/alignak/daemons/schedulerd.ini chmod 0644 %{buildroot}/etc/alignak/daemons/pollerd.ini chmod 0644 %{buildroot}/etc/alignak/daemons/brokerd.ini chmod 0644 %{buildroot}/etc/alignak/daemons/receiverd.ini for lib in %{buildroot}%{python2_sitelib}/%{name}/bin/alignak_*.py; do sed '1{\@^#!/usr/bin/env python@d}' $lib > $lib.new && touch -r $lib $lib.new && mv $lib.new $lib done %clean %pre getent group %{alignak_group} >/dev/null || groupadd -r %{alignak_group} getent passwd %{alignak_user} >/dev/null || useradd -r -g %{alignak_group} -d %{_localstatedir}/lib/alignak -s /sbin/nologin -c "Alignak/Nagios user" %{alignak_user} exit 0 %post arbiter %systemd_post %{name}-arbiter.service %post broker %systemd_post %{name}-broker.service %post poller %systemd_post %{name}-poller.service %post reactionner %systemd_post %{name}-reactionner.service %post scheduler %systemd_post %{name}-scheduler.service %post receiver %systemd_post %{name}-receiver.service %preun arbiter %systemd_preun %{name}-arbiter.service %preun broker %systemd_preun %{name}-broker.service %preun poller %systemd_preun %{name}-poller.service %preun reactionner %systemd_preun %{name}-reactionner.service %preun scheduler %systemd_preun %{name}-scheduler.service %preun receiver %systemd_preun %{name}-receiver.service %postun arbiter %systemd_postun_with_restart %{name}-arbiter.service %postun broker %systemd_postun_with_restart %{name}-broker.service %postun poller %systemd_postun_with_restart %{name}-poller.service %postun reactionner %systemd_postun_with_restart %{name}-reactionner.service %postun scheduler %systemd_postun_with_restart %{name}-scheduler.service %postun receiver %systemd_postun_with_restart %{name}-receiver.service %files arbiter %{_unitdir}/%{name}-arbiter.service %{_bindir}/%{name}-arbiter* %config(noreplace) %{_sysconfdir}/%{name} %files reactionner %{_unitdir}/%{name}-reactionner.service %{_bindir}/%{name}-reactionner* %config(noreplace) %{_sysconfdir}/%{name}/daemons/reactionnerd.ini %files scheduler %{_unitdir}/%{name}-scheduler.service %{_bindir}/%{name}-scheduler* %config(noreplace) %{_sysconfdir}/%{name}/daemons/schedulerd.ini %files poller %{_unitdir}/%{name}-poller.service %{_bindir}/%{name}-poller* %config(noreplace) %{_sysconfdir}/%{name}/daemons/pollerd.ini %files broker %{_unitdir}/%{name}-broker.service %{_bindir}/%{name}-broker* %config(noreplace) %{_sysconfdir}/%{name}/daemons/brokerd.ini %files receiver %{_unitdir}/%{name}-receiver.service %{_bindir}/%{name}-receiver* %config(noreplace) %{_sysconfdir}/%{name}/daemons/receiverd.ini %files common %{python2_sitelib}/%{name} %{python2_sitelib}/alignak*.egg-info %ghost %{_rundir}/%{name} %license LICENSE %doc AUTHORS CONTRIBUTING.rst Changelog README.rst %{_tmpfilesdir}/%{name}.conf %config(noreplace) %{_sysconfdir}/logrotate.d/%{name} %attr(-,%{alignak_user} ,%{alignak_group}) %dir %{_localstatedir}/log/%{name} %attr(-,%{alignak_user} ,%{alignak_group}) %{_localstatedir}/lib/%{name} #%attr(-,%{alignak_user} ,%{alignak_group}) %dir /run/%{name} %files all # No files for you! %changelog * Sun Oct 08 2017 David Hannequin - 1.0.0-1 - Initial release for Fedora.