From 01babd9e25b84c963d0ffb097b9e24825a974002 Mon Sep 17 00:00:00 2001 From: Markus Frosch Date: Thu, 26 Jul 2018 17:38:45 +0200 Subject: [PATCH 1/2] Prepare split of daemon from bin package --- icinga2.spec | 133 ++++++++++++++++++++++++++++----------------------- 1 file changed, 73 insertions(+), 60 deletions(-) diff --git a/icinga2.spec b/icinga2.spec index 50c1486..e10f0cb 100644 --- a/icinga2.spec +++ b/icinga2.spec @@ -88,6 +88,9 @@ Source: https://github.com/Icinga/%{name}/archive/v%{version}.tar.gz BuildRoot: %{_tmppath}/%{name}-%{version}-build Requires: %{name}-bin = %{version}-%{release} +Requires: %{name}-common = %{version}-%{release} + +Conflicts: %{name}-common < %{version}-%{release} %description Meta package for Icinga 2 Core, DB IDO and Web. @@ -216,7 +219,7 @@ BuildRequires: mysql-devel BuildRequires: mysql-devel %endif #suse -Requires: %{name} = %{version}-%{release} +Requires: %{name}-bin = %{version}-%{release} %description ido-mysql Icinga 2 IDO mysql database backend. Compatible with Icinga 1.x @@ -231,7 +234,7 @@ BuildRequires: postgresql-devel >= 8.4 %else BuildRequires: postgresql-devel %endif -Requires: %{name} = %{version}-%{release} +Requires: %{name}-bin = %{version}-%{release} %description ido-pgsql Icinga 2 IDO PostgreSQL database backend. Compatible with Icinga 1.x @@ -247,7 +250,7 @@ Group: System/Base BuildRequires: checkpolicy BuildRequires: hardlink BuildRequires: selinux-policy-devel -Requires: %{name} = %{version}-%{release} +Requires: %{name}-bin = %{version}-%{release} Requires(post): policycoreutils-python Requires(postun): policycoreutils-python @@ -412,27 +415,16 @@ install -D -m 0644 tools/syntax/vim/ftdetect/%{name}.vim %{buildroot}%{_datadir} install -D -m 0644 tools/syntax/nano/%{name}.nanorc %{buildroot}%{_datadir}/nano/%{name}.nanorc -%pre common -getent group %{icinga_group} >/dev/null || %{_sbindir}/groupadd -r %{icinga_group} -getent group %{icingacmd_group} >/dev/null || %{_sbindir}/groupadd -r %{icingacmd_group} -getent passwd %{icinga_user} >/dev/null || %{_sbindir}/useradd -c "icinga" -s /sbin/nologin -r -d %{_localstatedir}/spool/%{name} -G %{icingacmd_group} -g %{icinga_group} %{icinga_user} - +%pre %if "%{_vendor}" == "suse" %if 0%{?use_systemd} %service_add_pre %{name}.service %endif - -%verifyscript common -%verify_permissions -e %{_rundir}/%{name}/cmd %endif -%post common +%post # suse %if "%{_vendor}" == "suse" -%if 0%{?suse_version} >= 1310 -%set_permissions %{_rundir}/%{name}/cmd -%endif - %if 0%{?use_systemd} %fillup_only %{name} %service_add_post %{name}.service @@ -472,7 +464,36 @@ exit 0 %endif # suse/rhel -%postun common +%preun +# suse +%if "%{_vendor}" == "suse" + +%if 0%{?use_systemd} + %service_del_preun %{name}.service +%else + %stop_on_removal %{name} +%endif + +exit 0 + +%else +# rhel + +%if 0%{?use_systemd} +%systemd_preun %{name}.service +%else +if [ "$1" = "0" ]; then + /sbin/service %{name} stop > /dev/null 2>&1 || : + /sbin/chkconfig --del %{name} || : +fi +%endif + +exit 0 + +%endif +# suse / rhel + +%postun # suse %if "%{_vendor}" == "suse" %if 0%{?use_systemd} @@ -503,37 +524,25 @@ fi exit 0 -%preun common -# suse +%pre common +getent group %{icinga_group} >/dev/null || %{_sbindir}/groupadd -r %{icinga_group} +getent group %{icingacmd_group} >/dev/null || %{_sbindir}/groupadd -r %{icingacmd_group} +getent passwd %{icinga_user} >/dev/null || %{_sbindir}/useradd -c "icinga" -s /sbin/nologin -r -d %{_localstatedir}/spool/%{name} -G %{icingacmd_group} -g %{icinga_group} %{icinga_user} + %if "%{_vendor}" == "suse" - -%if 0%{?use_systemd} - %service_del_preun %{name}.service -%else - %stop_on_removal %{name} +%verifyscript common +%verify_permissions -e %{_rundir}/%{name}/cmd %endif -exit 0 - -%else -# rhel - -%if 0%{?use_systemd} -%systemd_preun %{name}.service -%else -if [ "$1" = "0" ]; then - /sbin/service %{name} stop > /dev/null 2>&1 || : - /sbin/chkconfig --del %{name} || : -fi +%post common +%if "%{_vendor}" == "suse" +%if 0%{?suse_version} >= 1310 +%set_permissions %{_rundir}/%{name}/cmd %endif - -exit 0 - %endif -# suse / rhel %post ido-mysql -if [ ${1:-0} -eq 1 ] +if [ ${1:-0} -eq 1 ] && [ -e %{_sysconfdir}/%{name}/features-enabled/ido-mysql.conf ] then # initial installation, enable ido-mysql feature ln -sf ../features-available/ido-mysql.conf %{_sysconfdir}/%{name}/features-enabled/ido-mysql.conf @@ -550,7 +559,7 @@ fi exit 0 %post ido-pgsql -if [ ${1:-0} -eq 1 ] +if [ ${1:-0} -eq 1 ] && [ -e %{_sysconfdir}/%{name}/features-enabled/ido-pgsql.conf ] then # initial installation, enable ido-pgsql feature ln -sf ../features-available/ido-pgsql.conf %{_sysconfdir}/%{name}/features-enabled/ido-pgsql.conf @@ -594,22 +603,8 @@ fi %defattr(-,root,root,-) %doc COPYING -%files bin -%defattr(-,root,root,-) -%doc COPYING README.md NEWS AUTHORS CHANGELOG.md -%{_sbindir}/%{name} -%dir %{_libdir}/%{name}/sbin -%{_libdir}/%{name}/sbin/%{name} -%{plugindir}/check_nscp_api -%{_datadir}/%{name} -%exclude %{_datadir}/%{name}/include -%{_mandir}/man8/%{name}.8.gz - -%files common -%defattr(-,root,root,-) -%doc COPYING README.md NEWS AUTHORS CHANGELOG.md tools/syntax %config(noreplace) %{_sysconfdir}/logrotate.d/%{name} -%{_sysconfdir}/bash_completion.d/%{name} + %if 0%{?use_systemd} %attr(644,root,root) %{_unitdir}/%{name}.service %if 0%{?configure_systemd_limits} @@ -629,6 +624,11 @@ fi %else %config(noreplace) %{_sysconfdir}/sysconfig/%{name} %endif + +%dir %{_libexecdir}/%{name} +%{_libexecdir}/%{name}/prepare-dirs +%{_libexecdir}/%{name}/safe-reload + %attr(0750,root,%{icinga_group}) %dir %{_sysconfdir}/%{name} %attr(0750,%{icinga_user},%{icinga_group}) %dir %{_sysconfdir}/%{name}/conf.d %attr(0750,%{icinga_user},%{icinga_group}) %dir %{_sysconfdir}/%{name}/features-available @@ -643,9 +643,22 @@ fi %config(noreplace) %attr(0640,%{icinga_user},%{icinga_group}) %{_sysconfdir}/%{name}/features-available/*.conf %config(noreplace) %attr(0640,%{icinga_user},%{icinga_group}) %{_sysconfdir}/%{name}/zones.d/* %config(noreplace) %{_sysconfdir}/%{name}/scripts/* -%dir %{_libexecdir}/%{name} -%{_libexecdir}/%{name}/prepare-dirs -%{_libexecdir}/%{name}/safe-reload + +%files bin +%defattr(-,root,root,-) +%doc COPYING README.md NEWS AUTHORS CHANGELOG.md +%{_sbindir}/%{name} +%dir %{_libdir}/%{name}/sbin +%{_libdir}/%{name}/sbin/%{name} +%{plugindir}/check_nscp_api +%{_datadir}/%{name} +%exclude %{_datadir}/%{name}/include +%{_mandir}/man8/%{name}.8.gz + +%files common +%defattr(-,root,root,-) +%doc COPYING README.md NEWS AUTHORS CHANGELOG.md tools/syntax +%{_sysconfdir}/bash_completion.d/%{name} %attr(0750,%{icinga_user},%{icingacmd_group}) %{_localstatedir}/cache/%{name} %attr(0750,%{icinga_user},%{icingacmd_group}) %dir %{_localstatedir}/log/%{name} %attr(0750,%{icinga_user},%{icinga_group}) %dir %{_localstatedir}/log/%{name}/crash From d87234d2bde94b17902c4710256be979e0011c40 Mon Sep 17 00:00:00 2001 From: Markus Frosch Date: Mon, 20 Aug 2018 15:10:10 +0200 Subject: [PATCH 2/2] Move all state files and main binary over to icinga2 itself --- icinga2.spec | 32 +++++++++++++++++--------------- 1 file changed, 17 insertions(+), 15 deletions(-) diff --git a/icinga2.spec b/icinga2.spec index e10f0cb..b7721d0 100644 --- a/icinga2.spec +++ b/icinga2.spec @@ -625,6 +625,8 @@ fi %config(noreplace) %{_sysconfdir}/sysconfig/%{name} %endif +%{_sbindir}/%{name} + %dir %{_libexecdir}/%{name} %{_libexecdir}/%{name}/prepare-dirs %{_libexecdir}/%{name}/safe-reload @@ -644,21 +646,6 @@ fi %config(noreplace) %attr(0640,%{icinga_user},%{icinga_group}) %{_sysconfdir}/%{name}/zones.d/* %config(noreplace) %{_sysconfdir}/%{name}/scripts/* -%files bin -%defattr(-,root,root,-) -%doc COPYING README.md NEWS AUTHORS CHANGELOG.md -%{_sbindir}/%{name} -%dir %{_libdir}/%{name}/sbin -%{_libdir}/%{name}/sbin/%{name} -%{plugindir}/check_nscp_api -%{_datadir}/%{name} -%exclude %{_datadir}/%{name}/include -%{_mandir}/man8/%{name}.8.gz - -%files common -%defattr(-,root,root,-) -%doc COPYING README.md NEWS AUTHORS CHANGELOG.md tools/syntax -%{_sysconfdir}/bash_completion.d/%{name} %attr(0750,%{icinga_user},%{icingacmd_group}) %{_localstatedir}/cache/%{name} %attr(0750,%{icinga_user},%{icingacmd_group}) %dir %{_localstatedir}/log/%{name} %attr(0750,%{icinga_user},%{icinga_group}) %dir %{_localstatedir}/log/%{name}/crash @@ -670,6 +657,21 @@ fi %attr(0750,%{icinga_user},%{icinga_group}) %dir %{_localstatedir}/spool/%{name} %attr(0770,%{icinga_user},%{icinga_group}) %dir %{_localstatedir}/spool/%{name}/perfdata %attr(0750,%{icinga_user},%{icinga_group}) %dir %{_localstatedir}/spool/%{name}/tmp + +%files bin +%defattr(-,root,root,-) +%doc COPYING README.md NEWS AUTHORS CHANGELOG.md +%dir %{_libdir}/%{name}/sbin +%{_libdir}/%{name}/sbin/%{name} +%{plugindir}/check_nscp_api +%{_datadir}/%{name} +%exclude %{_datadir}/%{name}/include +%{_mandir}/man8/%{name}.8.gz + +%files common +%defattr(-,root,root,-) +%doc COPYING README.md NEWS AUTHORS CHANGELOG.md tools/syntax +%{_sysconfdir}/bash_completion.d/%{name} %attr(0750,%{icinga_user},%{icinga_group}) %dir %{_datadir}/%{name}/include %{_datadir}/%{name}/include/*