diff options
Diffstat (limited to '')
-rwxr-xr-x | debian/slapd.prerm | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/debian/slapd.prerm b/debian/slapd.prerm new file mode 100755 index 0000000..ab8b991 --- /dev/null +++ b/debian/slapd.prerm @@ -0,0 +1,50 @@ +#!/bin/sh + +set -e + +. /usr/share/debconf/confmodule + +# This will be replaced with debian/slapd.scripts-common which includes +# various helper functions and $OLD_VERSION and $SLAPD_CONF +#SCRIPTSCOMMON# + +# dh_installinit's --error-handler option requires that the +# error-handling function be defined in the prerm and postinst +# scripts. This function is declared here as a formality, but we do +# not want to ignore the init script failure during the prerm phase. +ignore_init_failure() { # {{{ + : +} +# }}} + +#DEBHELPER# + +# Workaround for #1006147. Debhelper changed to stop the service in +# preinst instead of prerm. However, dpkg-reconfigure doesn't run +# preinst yet. +if [ "$MODE" = upgrade ] && [ -x /etc/init.d/slapd ]; then + invoke-rc.d slapd stop || exit 1 +fi + +# Dump config and data to LDIF before removing slapd. +# If a later version is reinstalled without being purged first, the LDIF +# files may be required for the upgrade, and the old slapcat won't be +# available any more. +# During an upgrade, the new preinst will be in a better position to +# control whether dumping is needed. + +# If the config is badly broken, slapcat may fail, but this should not +# prevent the package from being removed or purged. +set +e + +if [ "$MODE" = remove ]; then + # scripts-common sets OLD_VERSION incorrectly for remove + OLD_VERSION="$(dpkg-query -W -f '${Version}' slapd)" + + dump_config + dump_databases +fi + +exit 0 + +# vim: set foldmethod=marker: |