From 33514c3f006d118c15637e556e7f69f6b8a3ab53 Mon Sep 17 00:00:00 2001 From: Jan Vcelak Date: Nov 01 2011 12:34:17 +0000 Subject: scriptlet: convert sysconfig/ldap to sysconfig/slapd --- diff --git a/openldap.spec b/openldap.spec index 4cc6a40..7685d24 100644 --- a/openldap.spec +++ b/openldap.spec @@ -457,27 +457,51 @@ if [ ! -f %{_sysconfdir}/openldap/slapd.d/cn=config.ldif ]; then fi fi +start_slapd=0 + # upgrade the database if [ -f %{_sharedstatedir}/ldap/rpm_upgrade_openldap ]; then if /bin/systemctl --quiet is-active slapd.service; then /bin/systemctl stop slapd.service - start=1 - else - start=0 + start_slapd=1 fi %{_libexecdir}/slapd/upgrade-db.sh &>/dev/null rm -f %{_sharedstatedir}/ldap/rpm_upgrade_openldap +fi - [ $start -eq 1 ] && /bin/systemctl start slapd.service &>/dev/null - skip_restart=1 -else - skip_restart=0 +# conversion from /etc/sysconfig/ldap to /etc/sysconfig/slapd +if [ $1 -eq 2 ]; then + # we expect that 'ldap' will be renamed to 'ldap.rpmsave' after removing the old package + [ -r %{_sysconfdir}/sysconfig/ldap ] || exit 0 + source %{_sysconfdir}/sysconfig/ldap &>/dev/null + + new_urls= + [ "$SLAPD_LDAP" != "no" ] && new_urls="$new_urls ldap:///" + [ "$SLAPD_LDAPI" != "no" ] && new_urls="$new_urls ldapi:///" + [ "$SLAPD_LDAPS" == "yes" ] && new_urls="$new_urls ldaps:///" + [ -n "$SLAPD_URLS" ] && new_urls="$new_urls $SLAPD_URLS" + + failure=0 + cp -f %{_sysconfdir}/sysconfig/slapd %{_sysconfdir}/sysconfig/slapd.rpmconvert + sed -i '/^#\?SLAPD_URLS=/s@.*@SLAPD_URLS="'"$new_urls"'"@' %{_sysconfdir}/sysconfig/slapd.rpmconvert &>/dev/null || failure=1 + [ -n "$SLAPD_OPTIONS" ] && \ + sed -i '/^#\?SLAPD_OPTIONS=/s@.*$@SLAPD_OPTIONS="'"$SLAPD_OPTIONS"'"@' %{_sysconfdir}/sysconfig/slapd.rpmconvert &>/dev/null || failure=1 + + if [ $failure -eq 0 ]; then + mv -f %{_sysconfdir}/sysconfig/slapd.rpmconvert %{_sysconfdir}/sysconfig/slapd + else + rm -f %{_sysconfdir}/sysconfig/slapd.rpmconvert + fi fi # restart after upgrade -if [ $1 -ge 1 -a $skip_restart -ne 1 ]; then - /bin/systemctl condrestart slapd.service &>/dev/null || : +if [ $1 -ge 1 ]; then + if [ $start_slapd -eq 1 ]; then + /bin/systemctl start slapd.service &>/dev/null || : + else + /bin/systemctl condrestart slapd.service &>/dev/null || : + fi fi exit 0