This file is indexed.

postinst is in cyrus-common 2.5.10-3ubuntu1.

This file is a maintainer script. It is executed when installing (*inst) or removing (*rm) the package.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
#! /bin/sh
# postinst script for cyrus-common
# Copyright (c) 2002 by Henrique de Moraes Holschuh
# Distributed under the GNU General Public License version 2
#
# see: dh_installdeb(1)

set -e

# summary of how this script can be called:
#        * <postinst> `configure' <most-recently-configured-version>
#        * <old-postinst> `abort-upgrade' <new version>
#        * <conflictor's-postinst> `abort-remove' `in-favour' <package>
#          <new-version>
#        * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
#          <failed-install-package> <version> `removing'
#          <conflicting-package> <version>
# for details, see /usr/doc/packaging-manual/
#
# quoting from the policy:
#     Any necessary prompting should almost always be confined to the
#     post-installation script, and should be protected with a conditional
#     so that unnecessary prompting doesn't happen if a package's
#     installation fails and the `postinst' is called with `abort-upgrade',
#     `abort-remove' or `abort-deconfigure'.

export PATH=/sbin:/usr/sbin:/bin:/usr/bin

# Source debconf library.
. /usr/share/debconf/confmodule

CONF="/etc/imapd.conf"
CYRUS_CONFIG_DIR="/var/lib/cyrus"
[ -r /etc/default/cyrus-imapd ] && . /etc/default/cyrus-imapd

getconf () {
    if [ -r "${CONF}" ]; then
	confvalue=$(sed --silent -e "/^[[:blank:]]*${1}:/ { \
	s#^[[:blank:]]*${1}:[[:blank:]]*## \
	p
	}" < "${CONF}" | head -1)
	result=${confvalue:-$2}
    else
	result=${2}
    fi
}

case "$1" in
    configure)
	# Add the cyrus user (requires adduser >= 3.34)
	echo "Creating/updating cyrus user account..."
	adduser --quiet --system --ingroup mail --home /var/spool/cyrus \
           --shell /bin/sh --no-create-home --disabled-password \
	   --gecos "Cyrus Mailsystem User"  cyrus >/dev/null || {
	   if getent passwd | grep -s -q -E '^cyrus:'; then
		   echo "Non-system user cyrus found. I will not overwrite a non-system" >&2
		   echo "user. Remove the user and reinstall cyrus-common." >&2
		   exit 1
	   fi
	   # unknown adduser error, simply exit
	   exit 1
	}

	# Force correct owner and modes
	dpkg-statoverride --list /var/lib/cyrus 2>&1 >/dev/null ||
		dpkg-statoverride --update --add cyrus mail 750 /var/lib/cyrus
	dpkg-statoverride --list /var/spool/cyrus 2>&1 >/dev/null ||
		dpkg-statoverride --update --add cyrus mail 755 /var/spool/cyrus
	dpkg-statoverride --list /var/spool/sieve 2>&1 >/dev/null ||
	    dpkg-statoverride --update --add cyrus mail 755 /var/spool/sieve

	# Remove old statoverrides
	if dpkg-statoverride --list /var/run/cyrus 2>&1 >/dev/null; then
	    dpkg-statoverride --update --remove /var/run/cyrus;
	fi
	if dpkg-statoverride --list /var/run/cyrus/socket 2>&1 >/dev/null; then
	    dpkg-statoverride --remove /var/run/cyrus/socket;
	fi

	# Add user cyrus to group SASL, if such group exists
	adduser cyrus sasl || true

	if [ -z "$2" ]; then
	    echo -n "cyrus-common: Creating cyrus-imapd directories..."
            cyrus makedirs --cleansquat
	    echo "done."
	fi

        # Add USERDENY database if doesn't exist
        getconf configdirectory ${CYRUS_CONFIG_DIR}
        CYRUS_CONFIG_DIR=$result

        userdeny_database="${CYRUS_CONFIG_DIR}/user_deny.db"
        if [ ! -e ${userdeny_database} ]; then
	    echo -n "cyrus-common: Creating empty user_deny database..."
            touch ${userdeny_database}
            chmod 600 ${userdeny_database}
            chown cyrus:mail ${userdeny_database}
	    echo "done."
        fi	    

     	if [ -f /usr/lib/cyrus/cyrus-db-types.active ]; then
	    /usr/lib/cyrus/bin/upgrade-db
	    RET="$?"
	    case "$RET" in
		0) ;;
		2)
		    echo "ERROR: Upgrading of database backends failed." 1>&2
		    echo "ERROR: Please check the output, fix errors and re-run /usr/lib/cyrus/bin/upgrade-db" 1>&2
		    echo "ERROR: script, before trying to start cyrus-imapd." 1>&2
		    ;;
		1|*)
		    echo "ERROR: Upgrading of database backends failed with a fatal error." 1>&2
		    echo "ERROR: Please check /usr/share/doc/cyrus-common/README.Debian*" 1>&2
		    echo "ERROR: for instructions how to upgrade cyrus databases manually." 1>&2
		    exit $RET;
		    ;;
	    esac
	fi

	# Legacy code / needed in case something will change in future
	# Hopefully this will be handled by upstream next time
	cp -p /usr/lib/cyrus/cyrus-hardwired-config.txt \
	    /usr/lib/cyrus/cyrus-hardwired-config.active
    ;;

    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/11.1.4ubuntu1
if [ "$1" = "configure" ] || [ "$1" = "abort-upgrade" ] || [ "$1" = "abort-deconfigure" ] || [ "$1" = "abort-remove" ] ; then
	# In case this system is running systemd, we need to ensure that all
	# necessary tmpfiles (if any) are created before starting.
	if [ -d /run/systemd/system ] ; then
		systemd-tmpfiles --create /usr/lib/tmpfiles.d/cyrus-imapd.conf >/dev/null || true
	fi
fi
# End automatically added section
# Automatically added by dh_installinit/11.1.4ubuntu1
if [ "$1" = "configure" ] || [ "$1" = "abort-upgrade" ] || [ "$1" = "abort-deconfigure" ] || [ "$1" = "abort-remove" ] ; then
	if [ -x "/etc/init.d/cyrus-imapd" ]; then
		update-rc.d cyrus-imapd defaults >/dev/null
		invoke-rc.d cyrus-imapd start || exit 1
	fi
fi
# End automatically added section


exit 0