diff --git a/openldap.spec b/openldap.spec index b90d5e7..76a2dbd 100644 --- a/openldap.spec +++ b/openldap.spec @@ -81,11 +81,12 @@ customized LDAP clients. Summary: LDAP server License: OpenLDAP Requires: openldap = %{version}-%{release}, openssl -Requires(pre): shadow-utils, initscripts -Requires(post): chkconfig, /sbin/runuser, make, initscripts -Requires(preun): chkconfig, initscripts -# BEWARE: DB 5.1 is the latest version supported by OpenLDAP 2.4.25; however we have 5.2 in Rawhide +Requires(pre): shadow-utils +Requires(post): systemd-units, systemd-sysv, chkconfig +Requires(preun): systemd-units +Requires(postun): systemd-units BuildRequires: libdb-devel >= 5.0, libdb-devel < 5.3 +BuildRequires: systemd-units Group: System Environment/Daemons %description servers @@ -321,6 +322,13 @@ mkdir -p %{buildroot}/var/lib/ldap mkdir -p %{buildroot}%{_sysconfdir}/tmpfiles.d install -m 644 %SOURCE3 %{buildroot}%{_sysconfdir}/tmpfiles.d/slapd.conf +# setup maintainance scripts +mkdir -p %{buildroot}%{_libexecdir}/slapd +install -m 0644 %SOURCE50 %{buildroot}%{_libexecdir}/slapd/functions +install -m 0755 %SOURCE51 %{buildroot}%{_libexecdir}/slapd/convert-config.sh +install -m 0755 %SOURCE52 %{buildroot}%{_libexecdir}/slapd/check-config.sh +install -m 0755 %SOURCE53 %{buildroot}%{_libexecdir}/slapd/upgrade-db.sh + # remove build root from config files and manual pages perl -pi -e "s|%{buildroot}||g" %{buildroot}/%{_sysconfdir}/openldap/*.conf perl -pi -e "s|%{buildroot}||g" %{buildroot}%{_mandir}/*/*.* @@ -330,8 +338,8 @@ rm -f %{buildroot}/%{_sysconfdir}/openldap/*.default rm -f %{buildroot}/%{_sysconfdir}/openldap/schema/*.default # install an init script for the servers -mkdir -p %{buildroot}%{_sysconfdir}/rc.d/init.d -install -m 755 %SOURCE1 %{buildroot}%{_sysconfdir}/rc.d/init.d/slapd +mkdir -p %{buildroot}%{_unitdir} +install -m 0644 %SOURCE1 %{buildroot}%{_unitdir}/ # install syconfig/ldap mkdir -p %{buildroot}%{_sysconfdir}/sysconfig @@ -471,7 +479,11 @@ exit 0 %post servers /sbin/ldconfig -/sbin/chkconfig --add slapd + +if [ $1 -eq 1 ]; then + # initial installation + /sbin/systemctl daemon-reload &>/dev/null || : +fi # generate sample TLS certificates if [ ! -f %{_sysconfdir}/pki/tls/certs/slapd.pem ] ; then @@ -533,21 +545,33 @@ fi exit 0 %preun servers -if [ $1 -eq 0 ] ; then - /sbin/service slapd stop > /dev/null 2>&1 || : - /sbin/chkconfig --del slapd - - # openldap-servers are being removed from system - # do not touch the database! +if [ $1 -eq 0 ]; then + # package removal + /bin/systemctl --no-reload disable slapd.service &>/dev/null || : + /bin/systemctl stop slapd.service &>/dev/null || : fi %postun servers /sbin/ldconfig +/bin/systemctl daemon-reload &>/dev/null || : +if [ $1 -ge 1 ]; then + # package upgrade + /bin/systemctl try-restart slapd.service &>/dev/null || : +fi + %post devel -p /sbin/ldconfig %postun devel -p /sbin/ldconfig +%triggerun servers -- openldap-servers < 2.4.26-6 + +# migration from SysV to systemd +/usr/bin/systemd-sysv-convert --save slapd &>/dev/null || : +/sbin/chkconfig --del slapd &>/dev/null || : +/bin/systemctl try-restart slapd.service &>/dev/null || : + + %triggerin servers -- db4 # db4 upgrade (see %triggerun)