--- /dev/null
+#!/bin/sh
+
+set -e
+
+[ "$1" = "configure" ] || exit 0
+
+hostname=`hostname -f`
+cron="/etc/cron.d/amavis-stats"
+htpasswd="/usr/share/amavis-stats/.htpasswd"
+aconf="/etc/amavis-stats/apache.conf"
+# these two are used in mail
+package="amavis-stats-cn"
+version="0.1.12-2"
+
+notify () {
+ if [ "x$1" = "x-mailonly" ]; then
+ shift
+ else
+ echo "$1"
+ fi
+ NOTICE="$NOTICE$1"
+ if [ `echo "$1" | wc -l` -eq 1 ]; then
+ NOTICE="$NOTICE
+"
+ fi
+}
+
+if [ ! -f $htpasswd ]; then
+ passwd=`makepasswd`
+ htpasswd -bc $htpasswd admin $passwd 2> /dev/null
+ notify "CN: amavis-stats URL is http://$hostname/amavis-stats/"
+ notify "CN: User: admin"
+ notify "CN: Password: $passwd"
+ notify "CN: Use \"htpasswd $htpasswd admin\" to change it."
+ notify ""
+fi
+
+# find out where the logs might lie
+cant_figure_out() {
+ notify "CN: Can't figure out log file, edit $cron yourself!" 1>&2
+}
+
+sl=/etc/syslog.conf
+if grep -q /var/log/mail.info $cron; then
+ if [ ! -e "$sl" ]; then
+ # no syslog.conf
+ cant_figure_out
+ elif pgrep syslog-ng > /dev/null; then
+ # syslog-ng, I'm not parsing _that_.
+ cant_figure_out
+ elif ! grep -q '^mail.info[ ][ ]*-?/var/log/mail.info' $sl; then
+ # where oh where does mail.info go to?
+ log=$(awk '$1 == "mail.info" {print $2}' < $sl | sed 's/^-//' | head -1)
+ [ -z "$log" ] && \
+ log=$(awk '$1 == "mail.*" {print $2}' < $sl | sed 's/^-//' | head -1)
+ [ -z "$log" ] && \
+ log=$(awk '$1 ~ /mail\.info/ {print $2}' < $sl | sed 's/^-//' | head -1)
+ [ -z "$log" ] && \
+ log=$(awk '$1 ~ /mail\.\*/ {print $2}' < $sl | sed 's/^-//' | head -1)
+ if [ -z "$log" ]; then
+ cant_figure_out
+ else
+ sed "s,/var/log/mail.info,$log,g" < "$cron" > "${cron}.dpkg-tmp"
+ if ! cmp -s "${cron}.dpkg-tmp" "$cron"; then
+ cp "${cron}.dpkg-tmp" "$cron"
+ notify "CN: ${log} set as log file in ${cron}."
+ fi
+ rm "${cron}.dpkg-tmp"
+ fi
+ fi
+fi
+
+# ash's [ continues after -a, so we need && here
+if [ -f "$log" ] && [ "$(dirname $log)" = "/var/log/mail" ]; then
+ logdirgroup=$(ls -ld /var/log/mail | awk '{print $4}')
+ if [ "$logdirgroup" != "adm" ]; then
+ # whyever was it not adm? on woody it's mail, on sarge smmsp...?
+ # and i'm not going to give amavis-stats privileges for those
+ notify "CN: chgrp adm /var/log/mail (was \"$logdirgroup\")."
+ chgrp adm /var/log/mail
+ #chgrp smmsp /var/log/mail
+ #addgroup amavis-stats smmsp > /dev/null
+ fi
+fi
+
+if ! grep -iq 'valid-user' $aconf; then
+ cat > ${aconf}.dpkg-tmp <<EOF
+Alias /amavis-stats /usr/share/amavis-stats/
+
+<Directory /usr/share/amavis-stats/>
+ Options +FollowSymLinks
+ AllowOverride None
+ order allow,deny
+ allow from all
+
+ AuthType Basic
+ AuthName amavis-stats
+ AuthUserFile $htpasswd
+
+ <Limit GET POST>
+ require valid-user
+ </Limit>
+</Directory>
+EOF
+ # If default debian file, don't bother to save it
+ if [ "$(md5sum $aconf|awk '{print $1}')" != "b6820ee83bc5b6386c72428f42950b6b" ]; then
+ bak="$aconf.dpkg-old.$(date '+%Y-%m-%d')"
+ if [ ! -f "$bak" ]; then
+ cp -p "${aconf}" "$bak"
+ notify "CN: Old apache config saved as \"$bak\"."
+ fi
+ fi
+ cp "${aconf}.dpkg-tmp" "$aconf"
+ rm "${aconf}.dpkg-tmp"
+ notify "CN: Forced valid-user for amavis-stats web."
+ reload=1
+fi
+
+if [ "$(echo $NOTICE|wc -w)" -gt 0 ]; then
+ echo "Mailing upgrade output to root."
+ NOTICE="From: $package postinst script <root>
+To: root
+Subject: $package $version package install log
+Date: $(/bin/date +'%a, %d %b %Y %H:%M:%S %z')
+
+Hello!
+
+The $package package has been successfully installed on your computer.
+For your convenience, a partial output of the last $package installation
+is included below.
+
+----------
+$NOTICE
+----------"
+
+ echo "$NOTICE" | /usr/sbin/sendmail -t &
+ sleep 1
+fi
+
+
+if [ ! -L /etc/apache2/conf.d/amavis-stats-cn.conf -a ! -f /etc/apache2/conf.d/amavis-stats-cn.conf ]; then
+ ln -sf /etc/amavis-stats/apache.conf /etc/apache2/conf.d/amavis-stats-cn.conf
+ reload_apache2="yes"
+fi
+
+if [ "$reload_apache2" = "yes" ]; then
+ if [ -x /usr/sbin/invoke-rc.d ]; then
+ [ -x /etc/init.d/apache2 ] && invoke-rc.d apache2 reload || true
+ else
+ [ -x /etc/init.d/apache2 ] && /etc/init.d/apache2 reload || true
+ fi
+fi
--- /dev/null
+#!/usr/bin/make -f
+# -*- makefile -*-
+# Sample debian/rules that uses debhelper.
+# This file was originally written by Joey Hess and Craig Small.
+# As a special exception, when this file is copied by dh-make into a
+# dh-make output file, you may use that output file without restriction.
+# This special exception was added by Craig Small in version 0.37 of dh-make.
+
+# Uncomment this to turn on verbose mode.
+#export DH_VERBOSE=1
+
+configure: configure-stamp
+configure-stamp:
+ dh_testdir
+ # Add here commands to configure the package.
+
+ touch configure-stamp
+
+
+build: build-stamp
+
+build-stamp: configure-stamp
+ dh_testdir
+
+ # Add here commands to compile the package.
+ # $(MAKE)
+
+ touch build-stamp
+
+clean:
+ dh_testdir
+ dh_testroot
+ rm -f build-stamp configure-stamp
+
+ # Add here commands to clean up after the build process.
+ # -$(MAKE) clean
+
+ dh_clean
+
+install: build
+ dh_testdir
+ dh_testroot
+ dh_clean -k
+ dh_installdirs
+
+ # Add here commands to install the package into debian/amavis-stats-cn.
+ # $(MAKE) install DESTDIR=$(CURDIR)/debian/amavis-stats-cn
+
+
+# Build architecture-independent files here.
+binary-indep: build install
+# We have nothing to do by default.
+
+# Build architecture-dependent files here.
+binary-arch: build install
+ dh_testdir
+ dh_testroot
+ dh_installchangelogs -k
+ dh_installdocs
+# dh_installexamples
+ dh_install
+# dh_installmenu
+# dh_installdebconf
+# dh_installlogrotate
+# dh_installemacsen
+# dh_installpam
+# dh_installmime
+# dh_installinit
+# dh_installcron
+# dh_installinfo
+ dh_installman
+# dh_link
+# dh_strip
+# dh_compress
+ dh_fixperms
+# dh_perl
+# dh_python
+# dh_makeshlibs
+ dh_installdeb
+# dh_shlibdeps
+ dh_gencontrol
+ dh_md5sums
+ dh_builddeb
+
+binary: binary-indep binary-arch
+.PHONY: build clean binary-indep binary-arch binary install configure