Commit | Line | Data |
---|---|---|
de45f55a AM |
1 | #!/bin/sh |
2 | ||
3 | set -e | |
4 | . /usr/share/debconf/confmodule | |
5 | ||
6 | if [ -n "$EX4DEBUG" ]; then | |
7 | echo "now debugging $0 $@" | |
8 | set -x | |
9 | fi | |
10 | ||
11 | db_version 2.0 | |
12 | ||
13 | BDBVERSION=5.3 | |
14 | ||
15 | case "$1" in | |
16 | configure) | |
17 | ||
18 | if ! getent passwd Debian-exim > /dev/null ; then | |
19 | echo 'Adding system-user for exim (v4)' 1>&2 | |
20 | adduser --system --group --quiet --home /var/spool/exim4 \ | |
21 | --no-create-home --disabled-login --force-badname Debian-exim | |
22 | fi | |
23 | # Create directories for log etc | |
24 | # install also fixes permissions. | |
25 | install -d -oDebian-exim -gadm -m2750 /var/log/exim4 | |
0baa7b9d | 26 | install -d -oDebian-exim -gDebian-exim -m750 /run/exim4 |
de45f55a AM |
27 | install -d -oDebian-exim -gDebian-exim -m750 /var/spool/exim4 |
28 | install -d -oDebian-exim -gDebian-exim -m750 /var/spool/exim4/db \ | |
29 | /var/spool/exim4/input /var/spool/exim4/msglog | |
30 | ||
31 | # fix permissions on upgrades | |
32 | if dpkg --compare-versions "$2" le "4.30-1" ; then | |
33 | find /var/log/exim4 /var/spool/exim4 -group mail \ | |
34 | \( -type f -or -type d \) -print0 | \ | |
35 | xargs -0r chgrp Debian-exim | |
36 | find /var/log/exim4 /var/spool/exim4 -user mail \ | |
37 | \( -type f -or -type d \) -print0 | \ | |
38 | xargs -0r chown Debian-exim | |
39 | fi | |
40 | ||
41 | # Paranoia check: On any db upgrade throw away hints | |
42 | # databases. | |
43 | if test -r /var/lib/exim4/berkeleydbvers.txt ; then | |
44 | OLDBDB=`head -n1 /var/lib/exim4/berkeleydbvers.txt` | |
45 | else | |
46 | OLDBDB="unknown" | |
47 | fi | |
48 | if [ "$BDBVERSION" != "$OLDBDB" ] ; then | |
49 | echo exim: DB upgrade, deleting hints-db 1>&2 | |
50 | rm -f /var/spool/exim4/db/misc-* /var/spool/exim4/db/wait-* \ | |
51 | /var/spool/exim4/db/callout* \ | |
52 | /var/spool/exim4/db/retry* \ | |
53 | /var/spool/exim4/db/ratelimit* \ | |
54 | /var/spool/exim4/db/__db.retry \ | |
55 | /var/spool/exim4/db/__db.misc* \ | |
56 | /var/spool/exim4/db/__db.callout \ | |
57 | /var/spool/exim4/db/__db.ratelimit \ | |
58 | /var/spool/exim4/db/__db.wait* \ | |
59 | /var/spool/exim4/db/log.* | |
60 | echo "$BDBVERSION" > /var/lib/exim4/berkeleydbvers.txt | |
61 | fi | |
62 | # Check that db files are readable by this Exim's db library | |
63 | dbfiles="" | |
64 | for f in /var/spool/exim4/db/misc-* /var/spool/exim4/db/wait-* \ | |
65 | /var/spool/exim4/db/callout* /var/spool/exim4/db/retry* \ | |
66 | /var/spool/exim4/db/ratelimit* ; do | |
67 | if [ -f "$f" ]; then | |
68 | if echo $f | grep \.lockfile\$ >/dev/null 2>&1; then | |
69 | : # ignore lock files | |
70 | else | |
71 | dbfiles="$dbfiles $(basename $f)" | |
72 | fi | |
73 | fi | |
74 | done | |
75 | for dbfile in $dbfiles; do | |
76 | if exim_dumpdb /var/spool/exim4 $dbfile >/dev/null 2>&1; then | |
77 | : # File OK | |
78 | else | |
79 | echo "Resetting invalid $dbfile hints db" 1>&2 | |
80 | rm -f /var/spool/exim4/db/$dbfile \ | |
81 | /var/spool/exim4/db/$dbfile.* \ | |
82 | /var/spool/exim4/db/__db.${dbfile}.* \ | |
83 | /var/spool/exim4/db/log.* | |
84 | fi | |
85 | done | |
86 | ||
87 | if [ -x "/etc/init.d/exim4" ]; then | |
88 | update-rc.d exim4 defaults >/dev/null | |
89 | fi | |
90 | ||
91 | # honor dpkg-statoverride settings for files not managed with dpkg | |
92 | for pat in /var/\*/exim4 /var/\*/exim4/\*; do | |
93 | [ $EX4DEBUG ] && eval echo "evaluate statoverride $pat" | |
94 | eval dpkg-statoverride --list $pat | while read USER GROUP MODE FILE; do | |
95 | [ $EX4DEBUG ] && echo "statoverride $USER $GROUP $MODE $FILE" | |
96 | chown ${USER}:${GROUP} $FILE | |
97 | chmod $MODE $FILE | |
98 | done | |
99 | done | |
100 | ;; | |
101 | esac | |
102 | ||
103 | #DEBHELPER# |