56a07558b6189feab98bab0a0864aaa49739d60b
[amavisd-cn.git] / debian / postinst
1 #!/bin/sh
2
3 set -e
4
5 [ "$DEBIAN_SCRIPT_DEBUG" ] && set -vx
6
7 case "$1" in
8   configure)
9     # continue below
10   ;;
11
12   abort-upgrade|abort-remove|abort-deconfigure)
13     exit 0
14   ;;
15
16   *)
17     echo "postinst called with unknown argument \`$1'" >&2
18     exit 0
19   ;;
20 esac
21
22 PATH=/bin:/usr/bin:/sbin:/usr/sbin
23 export PATH
24
25 . /usr/share/amavisd-cn/version.sh
26 . /usr/share/carnet-tools/functions.sh
27 . /usr/share/amavisd-cn/variables.sh
28 . /usr/share/amavisd-cn/functions.sh
29
30 mta=postfix
31 . /usr/share/amavisd-cn/postfix.sh
32
33 # $domain will be equal to $host if nothing better can be found
34 cp_get_mx_domain
35 domain=$RET
36
37 update_postfix $*
38
39 # amavisd.conf
40 if [ -f "$ACONFOLD" ]; then
41   cp_echo "CN: Amavisd configuration is now in $ACONF."
42   noisy_backup "$ACONFOLD"
43   rm -f "$ACONFOLD"
44   cp_echo ""
45   cp_echo "CN: Please read /usr/share/doc/amavisd-cn/README.CARNet."
46 elif [ -f "$ACONFOLD.disabled" ]; then
47   noisy_backup "$ACONFOLD.disabled" "$(basename $ACONFOLD)"
48   rm -f "$ACONFOLD.disabled"
49   cp_echo "CN: Please read /usr/share/doc/amavisd-cn/README.CARNet."
50 fi
51
52 if [ -f $ACONF ]; then
53   # add other fixups to function update_conf(), way above
54   update_conf $*
55 fi
56 # nonexistent or empty config
57 if [ ! -f $ACONF -o ! -s $ACONF ]; then
58   # Create fresh config from template
59   conf_from_template
60   restart_daemon=1
61 fi
62
63 # disable SAVI as proven problematic
64 if cp_check_and_sed "^[[:blank:]]*\['Sophos SAVI'" \
65  "s/^[[:blank:]]*\(\['Sophos SAVI', ..sophos_savi \]\)/#\1/" $ACONF; then
66   cp_echo "CN: Disabled SAVI::Perl usage in ${ACONF}."
67   restart_daemon=1
68 fi
69
70 check_and_add_alias virusalert root
71 check_and_add_alias spamalert root
72
73 # ovo je rijeseno u spamassassin-cn, i ovdje nije potrebno, stoga brisemo
74 if [ -f $AHOME/.spamassassin/user_prefs ] ; then
75   user_prefs_temp=$(mktemp /tmp/user_prefs.XXXXXX)
76   cat > $user_prefs_temp <<-EEND
77         bayes_path              $AHOME/.spamassassin/bayes
78         bayes_auto_expire       0
79         auto_whitelist_path     $AHOME/.spamassassin/auto-whitelist
80         EEND
81   if cmp -s $user_prefs_temp $AHOME/.spamassassin/user_prefs; then
82     rm -f $AHOME/.spamassassin/user_prefs
83   fi
84   rm -f $user_prefs_temp
85 fi
86
87 # No sysvinit order fixes
88 :
89
90 # Fix missing redirection in cron files for amavisd-new-cronjob
91 add_redirection /etc/cron.d/amavisd-new /etc/cron.daily/amavisd-new
92
93 # Cleanup and finalization
94 if dpkg --compare-versions "$2" lt 2:20030616p10-4; then
95   update-rc.d -f amavisd remove > /dev/null
96   restart_daemon=1
97   chown_ahome=1
98   # a complicated way to say chmod 750
99   dpkg-statoverride --remove $AHOME > /dev/null || true
100   dpkg-statoverride --update --add amavis amavis 750 $AHOME
101 fi
102
103 if [ -n "$chown_ahome" ]; then
104   # might be slow
105   echo -n "CN: Fixing ownership in /var/*/amavis... "
106   chown -R amavis:amavis $AHOME /var/run/amavis || true
107   echo "done."
108   cp_echo -mailonly "CN: Fixed ownerships in /var/*/amavis."
109 fi
110
111 # kill naughty pyzor descendants -- XXX needed for 2.4 or not?
112 if dpkg --compare-versions "$2" lt 2:20030616p10-7 && \
113   pgrep -u amavis -f '/usr/bin/pyzor check' > /dev/null; then
114   if [ -x "/etc/init.d/amavisd-cn" ]; then
115     if [ -x "`which invoke-rc.d 2>/dev/null`" ]; then
116       invoke-rc.d amavisd-cn stop
117     else
118       /etc/init.d/amavisd-cn stop
119     fi
120   fi
121   pkill -9 -u amavis -f '/usr/bin/pyzor check' > /dev/null || true
122   if [ -x "/etc/init.d/amavisd-cn" ]; then
123     if [ -x "`which invoke-rc.d 2>/dev/null`" ]; then
124       invoke-rc.d amavisd-cn start
125     else
126       /etc/init.d/amavisd-cn start
127     fi
128   fi
129   restart_daemon=
130   restart_mta=
131 fi
132
133 # register for automatic start
134 update-rc.d -f amavis remove >/dev/null || true
135 update-rc.d amavisd-cn defaults 19 21 >/dev/null
136
137 # START AMAVISD
138 # about a half of amavisd-cn script is here
139 if [ "$restart_daemon" -a -x /etc/init.d/amavis.amavisd-new ]; then
140   if [ -x "/etc/init.d/amavis.amavisd-new" ]; then
141     if [ -x "`which invoke-rc.d 2>/dev/null`" ]; then
142       invoke-rc.d amavis.amavisd-new restart
143     else
144       /etc/init.d/amavis.amavisd-new restart
145     fi
146   fi
147 fi
148 # always check that the daemons are running
149 if ! wait_for_fds amavis; then
150   if [ -x "/etc/init.d/amavis.amavisd-new" ]; then
151     if [ -x "`which invoke-rc.d 2>/dev/null`" ]; then
152       invoke-rc.d amavis.amavisd-new start
153     else
154       /etc/init.d/amavis.amavisd-new start
155     fi
156   fi
157   wait_for_fds amavis
158 fi
159 if [ "$restart_mta" ]; then
160   if [ -x "/etc/init.d/$mta" ]; then
161     if [ -x "`which invoke-rc.d 2>/dev/null`" ]; then
162       invoke-rc.d $mta restart
163     else
164       /etc/init.d/$mta restart
165     fi
166   fi
167 fi
168
169 # this needs to be updated when $CRONTAB file changes
170 if dpkg --compare-versions "$2" lt "2:20030616p10-4"; then
171   cp_echo ""
172   cp_echo "CN: Deleting temp files older than 1 day every day at 01:35 AM"
173   cp_echo "CN: Deleting spam-mail  older than 7 days every day at 03:15 AM"
174   cp_echo "CN: Deleting virus-mail older than 7 days every day at 04:25 AM"
175   cp_echo "    (can be changed in $CRONTAB)"
176 fi
177 # This script is, hopefully, not needed any more.  Hide it.
178 ## display this message just once... maybe use debconf instead
179 #if dpkg --compare-versions "$2" lt "2:20030616p10-4"; then
180 #  cp_echo ""
181 #  cp_echo "CN: To stop, start or restart all of the clamav+amavis+mta components,"
182 #  cp_echo "CN: use the /etc/init.d/amavisd-cn script."
183 #fi
184 if [ "$failed" ]; then
185   cp_echo ""
186   cp_echo "CN: Services $failed failed to restart!"
187   cp_echo "CN: Please check and start manually if needed."
188 fi
189
190 # Upgrade, but no automatically changed config;
191 # warn if new template available
192 if [ -n "$2" -a -z "$changed_config" ] && \
193    dpkg --compare-versions "$2" lt "$TMPLVERSION"; then
194   cp_echo ""
195   cp_echo "CN: It seems you have upgraded this package from version $2."
196   cp_echo "CN: Configuration template for $mta was modified in version ${TMPLVERSION}."
197   cp_echo "    You might want to review the changes, or simply copy the new template and"
198   cp_echo "    and replace the _CN_DOMAIN_ string with an adequate value:"
199   cp_echo "    cp $ACONFTMPL $ACONF"
200   cp_echo "    perl -pi -e 's/_CN_DOMAIN_/$domain/g' $ACONF"
201 fi
202
203 cp_mail $PKG $VERSION