[SSSD] [PATCH] use systemd by default on fedora15+

Jakub Hrozek jhrozek at redhat.com
Fri Oct 19 10:43:33 UTC 2012


On Fri, Oct 19, 2012 at 10:19:25AM +0200, Pavel Březina wrote:
> On 10/18/2012 03:24 PM, Simo Sorce wrote:
> >On Thu, 2012-10-18 at 09:46 +0200, Pavel Březina wrote:
> >>https://fedorahosted.org/sssd/ticket/1437
> >
> >Fedora F15 has been EOLed and will not get updates, why bother with
> >F15 ?
> >Also F15 systemd was quite immature, and at the time guidelines
> >mentioned you shouldn't change from sysv to systemd after GA.
> >Did you mean to put F16 there ?
> >
> >Simo.
> >
> 
> OK. New patch is attached.

>  %if (0%{?enable_experimental} == 1)
> @@ -57,6 +61,12 @@ Requires(post): initscripts chkconfig
>  Requires(preun):  initscripts chkconfig
>  Requires(postun): initscripts chkconfig
>  
> +%if (0%{?use_systemd} == 1)
> +Requires(post): systemd-units
> +Requires(preun): systemd-units
> +Requires(postun): systemd-units
> +%endif

I think here ^^ should be an %else that would otherwise Require
initscripts. I don't think we need them in a pure systemd-enabled
package.

Instead of using -with-init-dir=%{_initrddir} in %configure and then
removing the init script, can we use --with-initscript=systemd and
optionally --with-systemdunitdir=. Can you check what do the Fedora
Packaging Guidelines say?

> +
>  %global servicename sssd
>  %global sssdstatedir %{_localstatedir}/lib/sss
>  %global dbpath %{sssdstatedir}/db
> @@ -290,6 +300,13 @@ install -m644 src/examples/logrotate $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/s
>  mkdir -p $RPM_BUILD_ROOT/%{_sysconfdir}/rwtab.d
>  install -m644 src/examples/rwtab $RPM_BUILD_ROOT%{_sysconfdir}/rwtab.d/sssd
>  
> +%if (0%{?use_systemd} == 1)
> +# Replace sysv init script with systemd unit file
> +rm -f $RPM_BUILD_ROOT/%{_initrddir}/%{name}
> +mkdir -p $RPM_BUILD_ROOT/%{_unitdir}/
> +cp src/sysv/systemd/sssd.service $RPM_BUILD_ROOT/%{_unitdir}/
> +%endif
> +
>  # Remove .la files created by libtool
>  find $RPM_BUILD_ROOT -name "*.la" -exec rm -f {} \;
>  
> @@ -336,8 +353,12 @@ rm -rf $RPM_BUILD_ROOT
>  %defattr(-,root,root,-)
>  %doc COPYING
>  %doc src/examples/sssd-example.conf
> -%{_initrddir}/%{name}
>  %{_sbindir}/sssd
> +%if (0%{?use_systemd} == 1)
> +%{_unitdir}/sssd.service
> +%else
> +%{_initrddir}/%{name}
> +%endif
>  
>  %dir %{_libexecdir}/%{servicename}
>  %{_libexecdir}/%{servicename}/krb5_child
> @@ -506,6 +527,41 @@ A utility library to allow communication between Autofs and SSSD
>  %doc src/sss_client/COPYING src/sss_client/COPYING.LESSER
>  %{_libdir}/sssd/modules/libsss_autofs.so*
>  
> +%if (0%{?use_systemd} == 1)
> +# systemd
> +%post
> +if [ $1 -ge 1 ] ; then
> +    # Initial installation
> +    /bin/systemctl daemon-reload >/dev/null 2>&1 || :
> +fi
> +
> +%preun
> +if [ $1 = 0 ]; then
> +     # Package removal, not upgrade
> +    /bin/systemctl --no-reload disable sssd.service > /dev/null 2>&1 || :
> +    /bin/systemctl stop sssd.service > /dev/null 2>&1 || :
> +fi
> +
> +%triggerun -- sssd < %{version}-%{release}
> +if /sbin/chkconfig --level 3 sssd ; then
> +        /bin/systemctl --no-reload enable sssd.service >/dev/null 2>&1 || :
> +fi
> +
> +if /sbin/chkconfig --level 5 sssd ; then
> +        /bin/systemctl --no-reload enable sssd.service >/dev/null 2>&1 || :
> +fi
> +
> +/sbin/chkconfig --del sssd >/dev/null 2>&1 || :
> +
> +%postun
> +/bin/systemctl daemon-reload >/dev/null 2>&1 || :
> +if [ $1 -ge 1 ] ; then
> +    # On upgrade, reload init system configuration if we changed unit files
> +    /bin/systemctl daemon-reload >/dev/null 2>&1 || :
> +    /bin/systemctl try-restart sssd.service >/dev/null 2>&1 || :
> +fi
> +%else
> +# sysv
>  %post

I guess these ^^ are copied from the Fedora spec? If so, then they are
probably correct (I haven't really tested this iteration of the patch
yet), but can you also test that a package that is chkconfiged-on stays
enabled after an upgrade?



More information about the sssd-devel mailing list