scriptlet: convert sysconfig/ldap to sysconfig/slapd

This commit is contained in:
Jan Vcelak 2011-10-27 13:48:53 +02:00
parent 62f9c65cff
commit 33514c3f00
1 changed files with 33 additions and 9 deletions

View File

@ -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