#!/bin/sh # postinst script for sasl2-bin # Copyright (c) 2006 Fabian Fagerholm # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. set -e FALLBACK_RUN_DIR=/var/run/saslauthd SASLDB_FILE=/etc/sasldb2 # Debconf hook. . /usr/share/debconf/confmodule case "$1" in configure) # Upgrade SASL database if needed # The libdb dependency was updated in the following versions: # 2.1.22.dfsg1-14 (db4.2 -> db4.4) # 2.1.22.dfsg1-17 (db4.4 -> db4.6) # 2.1.22.dfsg1-24 (db4.6 -> db4.7) # 2.1.23.dfsg1-4 (db4.7 -> db4.8) if dpkg --compare-versions "$2" "lt-nl" 2.1.23.dfsg1-4; then # If the database contains no users, just wipe it out, # it will be recreated later in the current format if [ -e $SASLDB_FILE ] && \ [ `sasldblistusers2 | wc -l` -eq 0 ]; then rm $SASLDB_FILE elif [ -e $SASLDB_FILE ]; then # The database exists and has users, begin upgrade procedure # Make backup and handle errors db_get cyrus-sasl2/backup-sasldb2 if ! cp --archive $SASLDB_FILE "$RET" >/dev/null 2>&1; then db_input high cyrus-sasl2/upgrade-sasldb2-backup-failed || true db_go || true exit 1 fi # Upgrade SASL database and handle errors if ! db4.8_upgrade $SASLDB_FILE >/dev/null 2>&1; then db_input high cyrus-sasl2/upgrade-sasldb2-failed || true db_go || true cp --archive "$RET" $SASLDB_FILE >/dev/null 2>&1 exit 1 fi fi fi # Create a statoverride for the default saslauthd run directory, # unless one already exists if ! dpkg-statoverride --list $FALLBACK_RUN_DIR >/dev/null 2>&1; then install -d --owner="root" --group="sasl" --mode="710" \ $FALLBACK_RUN_DIR dpkg-statoverride --update --add root sasl 710 $FALLBACK_RUN_DIR fi # Create an empty sasldb file, unless one already exists if [ ! -e $SASLDB_FILE ]; then echo '!' | saslpasswd2 -c 'no:such:user' saslpasswd2 -d 'no:such:user' fi # Create a statoverride for the sasldb file, unless one already exists if ! dpkg-statoverride --list $SASLDB_FILE >/dev/null 2>&1; then dpkg-statoverride --update --add root sasl 660 $SASLDB_FILE fi # In 2.1.23.dfsg1-4 and later versions, saslauthd is no longer # explicitly stopped on shutdown and reboot. if dpkg --compare-versions "$2" lt "2.1.23.dfsg1-4"; then rm -f /etc/rc0.d/K20saslauthd /etc/rc6.d/K20saslauthd fi db_stop ;; abort-upgrade|abort-remove|abort-deconfigure) ;; *) echo "postinst called with unknown argument $1" >&2 exit 0 ;; esac # dh_installdeb will replace this with shell code automatically # generated by other debhelper scripts. # Automatically added by dh_installinit if [ -x "/etc/init.d/saslauthd" ]; then update-rc.d saslauthd defaults >/dev/null if [ -x "`which invoke-rc.d 2>/dev/null`" ]; then invoke-rc.d saslauthd start || exit $? else /etc/init.d/saslauthd start || exit $? fi fi # End automatically added section exit 0