summaryrefslogtreecommitdiffstats
path: root/debian/slapd.prerm
diff options
context:
space:
mode:
Diffstat (limited to 'debian/slapd.prerm')
-rwxr-xr-xdebian/slapd.prerm50
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: