postinst is in opensmtpd 6.0.3p1-1build1.
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 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 | #!/bin/sh
set -e
. /usr/share/debconf/confmodule
# 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>
# * <postinst> `abort-remove'
# * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
# <failed-install-package> <version> `removing'
# <conflicting-package> <version>
# for details, see http://www.debian.org/doc/debian-policy/ or
# the debian-policy package
update_alias () {
ALIAS=$1
ADDR=$2
# Operation is as follows:
# If debconf has a new non-empty value for the root alias:
# If the alias file already has that alias:
# Do nothing
# else if the alias file has no commented out root alias and
# the alias file has no root alias:
# Append the new alias
# else if the alias file has a commented out root alias and
# the alias file has no root alias:
# Insert the new alias after the commented out one
# else:
# Comment out the existing root alias and insert the new one
# below it
if [ "${ALIAS}" -a "${ADDR}" -a -f /etc/aliases ]; then
REGEX="${ALIAS}[[:space:]]*:[[:space:]]*"
# Don't abort if an egrep has a non-zero status, i.e., fails to find a
# match
set +e
# Is the alias in the file?
egrep "^${REGEX}.*" /etc/aliases > /dev/null 2>&1
HAS_ALIAS=$?
# Is the new alias in the file?
egrep "^${REGEX}${ADDR}($|[[:space:]]*#.*)" /etc/aliases >/dev/null 2>&1
HAS_OUR_ALIAS=$?
# Is the alias commented out in the file?
egrep "^#[[:space:]]*${REGEX}.*" /etc/aliases > /dev/null 2>&1
HAS_COMMENTED_ALIAS=$?
set -e
if [ $HAS_OUR_ALIAS -eq 0 ]; then
# The alias file already has our alias, do nothing
true
elif [ $HAS_ALIAS -ne 0 -a $HAS_COMMENTED_ALIAS -ne 0 ]; then
# There's no ${ALIAS} alias whatsoever, add ours to the end of the
# file
printf "\n${ALIAS}: ${ADDR}" >> /etc/aliases
else
# /etc/aliases has either the alias with the wrong value or alias
# commented out
if [ $HAS_ALIAS -eq 0 ]; then
# aliases has the alias with the wrong value, we'll comment it
# out and add the new one below it.
SEARCH="/^${REGEX}.*/"
else
# aliases only has a commented out version of the alias; add
# ours below it.
SEARCH="/^#[[:space:]]*${REGEX}.*/"
fi
# We don't have an instance of the desired alias, insert it.
#
# ed:
# Turn on descriptive errors to assist in debugging should the script
# fail.
# Find the first occurence of a "${ALIAS}:" alias / comment.
# Comment it out if it's an alias.
# Add a line with the new alias.
# Comment out any subsequent ${ALIAS}: aliases that may exist.
# Write changes to disk.
#
# Note, if using <<-, you *must* indent with tabs. Add a "|| true"
# since ed will exit 1 at the end if a search failed.
ed -s /etc/aliases <<-EOF > /dev/null 2>&1 || true
H
${SEARCH}
s/^${REGEX}/# &/
a
${ALIAS}: ${ADDR}
.
+1,\$s/^${ALIAS}[[:space:]]*:.*/# &/g
w
EOF
fi
fi
}
db_fget opensmtpd/mailname changed || true
# Has the user reconfigured / updated the debconf value?
if [ "${RET}" = "true" ]; then
db_get opensmtpd/mailname
echo "${RET}" > /etc/mailname
db_fset opensmtpd/mailname changed false
fi
db_get opensmtpd/root_address
ROOT_ADDRESS="${RET}"
# The user can leave ROOT_ADDRESS blank to not forward root mail anywhere.
if [ ! -f /etc/aliases ]; then
if [ "${ROOT_ADDRESS}" ]; then
ROOT_LINE="root: ${ROOT_ADDRESS}"
else
ROOT_LINE="# root:"
fi
# Note, if using <<-, you *must* indent with tabs; moreover, blank lines
# must also contain the appropriate number of tab.
cat <<-EOF > /etc/aliases
# Enter mail aliases below in the format described by aliases(5)
${ROOT_LINE}
# RFC 2142 NETWORK OPERATIONS MAILBOX NAMES
abuse: root
noc: root
security: root
# RFC 2142 SUPPORT MAILBOX NAMES FOR SPECIFIC INTERNET SERVICES
postmaster: root
hostmaster: root
# usenet: root
# news: usenet
webmaster: root
www: webmaster
# uucp: root
ftp: root
EOF
db_fset opensmtpd/root_address changed false
fi
db_fget opensmtpd/root_address changed || true
if [ "${RET}" = "true" ]; then
update_alias "root" "${ROOT_ADDRESS}"
fi
db_fset opensmtpd/root_address changed false
db_fget opensmtpd/root_address first || true
if [ "${RET}" = "true" -a ${ROOT_ADDRESS} ]; then
# It's our first time configuring aliases; create a postmaster alias as
# promised in the template if it doesn't already exist. Use ed to insert it
# after the root alias, which is guaranteed to exist by the actions above.
egrep "^postmaster[[:space:]]*:" /etc/aliases >/dev/null 2>&1 || \
ed -s /etc/aliases <<-EOF > /dev/null 2>&1
H
/^root[[:space:]]*:.*/
a
postmaster: root
.
w
EOF
db_fset opensmtpd/root_address first false
fi
makemap -t aliases /etc/aliases
case "$1" in
configure)
for name in opensmtpd opensmtpq; do
id -g ${name} > /dev/null 2>&1 || addgroup --system ${name}
done
# Based on postfix.postinst:
id opensmtpd > /dev/null 2>&1 || \
adduser --system --home /var/lib/opensmtpd/empty \
--no-create-home --disabled-password \
--gecos "OpenSMTD Daemon" \
--ingroup opensmtpd opensmtpd
id opensmtpq > /dev/null 2>&1 || \
adduser --system --home /var/lib/opensmtpd/empty \
--no-create-home --disabled-password \
--gecos "OpenSMTD queue user" \
--ingroup opensmtpq opensmtpq
if dpkg --compare-versions "$2" lt 6.0.2p1-2; then
# In versions < 6.0.2p1-2, the purge directory was created with
# permissions that won't work with versions >= 6.0.2p1. We can
# safely delete it: smtpd will recreate it for us when it starts if
# it's missing, and the purge directory only contains data that is
# slated for deletion.
rm -fr /var/spool/smtpd/purge || true
fi
;;
abort-upgrade|abort-remove|abort-deconfigure|reconfigure)
;;
*)
echo "postinst called with unknown argument \`$1'" >&2
exit 1
;;
esac
db_stop
# 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
if [ -x "/etc/init.d/opensmtpd" ]; then
update-rc.d opensmtpd defaults >/dev/null
if [ -n "$2" ]; then
_dh_action=restart
else
_dh_action=start
fi
invoke-rc.d opensmtpd $_dh_action || exit 1
fi
fi
# End automatically added section
# Automatically added by dh_installsystemd/11.1.4ubuntu1
if [ "$1" = "configure" ] || [ "$1" = "abort-upgrade" ] || [ "$1" = "abort-deconfigure" ] || [ "$1" = "abort-remove" ] ; then
# This will only remove masks created by d-s-h on package removal.
deb-systemd-helper unmask 'opensmtpd.service' >/dev/null || true
# was-enabled defaults to true, so new installations run enable.
if deb-systemd-helper --quiet was-enabled 'opensmtpd.service'; then
# Enables the unit on first installation, creates new
# symlinks on upgrades if the unit file has changed.
deb-systemd-helper enable 'opensmtpd.service' >/dev/null || true
else
# Update the statefile to add new symlinks (if any), which need to be
# cleaned up on purge. Also remove old symlinks.
deb-systemd-helper update-state 'opensmtpd.service' >/dev/null || true
fi
fi
# End automatically added section
exit 0
|