tags 387878 = patch thanks > I suggest that spamd is changed such that it disables virtual-config > when the user name passed by spamc does not include an @ sign. > > Alternatively, maybe spamc could get an option which would let spamd > know that it's not to do virtual stuff for this check.
While upstream is still working on this, I have now augmented the init.d script and default settings to allow for a second spamd instance to be started out of the box to handle virtual configurations. I would appreciate if you'd apply the attached patch. -- .''`. martin f. krafft <[EMAIL PROTECTED]> : :' : proud Debian developer, author, administrator, and user `. `'` http://people.debian.org/~madduck - http://debiansystem.info `- Debian - when you have better things to do than fixing systems
diff -u spamassassin-3.2.1/debian/spamassassin.init spamassassin-3.2.1/debian/spamassassin.init --- spamassassin-3.2.1/debian/spamassassin.init +++ spamassassin-3.2.1/debian/spamassassin.init @@ -3,6 +3,7 @@ # Spamd init script # June 2002 # Duncan Findlay +# Virtual configuration by martin f. krafft # Based on skeleton by Miquel van Smoorenburg and Ian Murdock @@ -22,10 +23,23 @@ OPTIONS="" NICE= +VNAME=$NAME-virtual +VDESC="$DESC (virtual instance)" +VINSTANCE=0 +VPORT=784 +VUSER="" +VCONFIGDIR="" +VOPTIONS="" +VPIDFILE=/var/run/$VNAME.pid +VNICE= + test -f /etc/default/spamassassin && . /etc/default/spamassassin DOPTIONS="-d --pidfile=$PIDFILE" +VOPTIONS="$VOPTIONS --virtual-config-dir=$VCONFIGDIR --nouser-config" +VOPTIONS="$VOPTIONS --username $VUSER --port $VPORT" + if [ "$ENABLED" = "0" ]; then echo "$DESC: disabled, see /etc/default/spamassassin" exit 0 @@ -33,6 +47,16 @@ test -f $DAEMON || exit 0 +if [ "$VINSTANCE" = "1" ]; then + if [ -z "$VCONFIGDIR" ]; then + echo "$VDESC: no virtual-config-dir specified, disabling..." + VINSTANCE=0 + elif [ -z "$VUSER" ]; then + echo "$VDESC: no virtual user specified, disabling..." + VINSTANCE=0 + fi +fi + set -e case "$1" in @@ -41,18 +65,34 @@ start-stop-daemon --start --pidfile $PIDFILE --exec $XNAME \ $NICE --oknodo --startas $DAEMON -- $OPTIONS $DOPTIONS echo "$NAME." + if [ "$VINSTANCE" = 1 ]; then + echo -n "Starting $VDESC: " + start-stop-daemon --start --pidfile $VPIDFILE --exec $XNAME \ + $VNICE --oknodo --startas $DAEMON -- $VOPTIONS $DOPTIONS + echo "$VNAME." + fi ;; stop) echo -n "Stopping $DESC: " start-stop-daemon --stop --pidfile $PIDFILE --exec $XNAME --oknodo echo "$NAME." + if [ "$VINSTANCE" = 1 ]; then + echo -n "Stopping $VDESC: " + start-stop-daemon --stop --pidfile $VPIDFILE --exec $XNAME --oknodo + echo "$VNAME." + fi ;; reload|force-reload) echo -n "Reloading $DESC: " start-stop-daemon --stop --pidfile $PIDFILE --signal HUP --exec $XNAME echo "$NAME." + if [ "$VINSTANCE" = 1 ]; then + echo -n "Reloading $VDESC: " + start-stop-daemon --stop --pidfile $VPIDFILE --signal HUP --exec $XNAME + echo "$VNAME." + fi ;; restart) @@ -63,6 +103,14 @@ $NICE --oknodo --startas $DAEMON -- $OPTIONS $DOPTIONS echo "$NAME." + if [ "$VINSTANCE" = 1 ]; then + echo -n "Restarting $VDESC: " + start-stop-daemon --stop --pidfile $VPIDFILE --exec $XNAME \ + --retry 5 --oknodo + start-stop-daemon --start --pidfile $VPIDFILE --exec $XNAME \ + $VNICE --oknodo --startas $DAEMON -- $VOPTIONS $DOPTIONS + echo "$VNAME." + fi ;; *) diff -u spamassassin-3.2.1/debian/changelog spamassassin-3.2.1/debian/changelog --- spamassassin-3.2.1/debian/changelog +++ spamassassin-3.2.1/debian/changelog @@ -1,3 +1,10 @@ +spamassassin (3.2.1-1.1) unstable; urgency=low + + * Added infrastructure to spawn a second spamd instance for virtual + configurations (closes: #387878). + + -- martin f. krafft <[EMAIL PROTECTED]> Tue, 14 Aug 2007 11:02:42 +0200 + spamassassin (3.2.1-1) unstable; urgency=low * New upstream release diff -u spamassassin-3.2.1/debian/spamassassin.README.Debian spamassassin-3.2.1/debian/spamassassin.README.Debian --- spamassassin-3.2.1/debian/spamassassin.README.Debian +++ spamassassin-3.2.1/debian/spamassassin.README.Debian @@ -139,2 +139,9 @@ +Virtual mail setups +------------------- + +Debian's spamassassin can now support virtual and non-virtual mail setups out +of the box by spawning two separate spamd instances. You can enable and +configure the second instance in /etc/default/spamassassin. + -- Duncan Findlay <[EMAIL PROTECTED]>, Mon, 21 May 2007 23:53:57 -0400 diff -u spamassassin-3.2.1/debian/spamassassin.default spamassassin-3.2.1/debian/spamassassin.default --- spamassassin-3.2.1/debian/spamassassin.default +++ spamassassin-3.2.1/debian/spamassassin.default @@ -1,5 +1,5 @@ # /etc/default/spamassassin -# Duncan Findlay +# Duncan Findlay and martin f. krafft # WARNING: please read README.spamd before using. # There may be security risks. @@ -31,0 +32,51 @@ + + + +### VIRTUAL CONFIGURATION +# Debian's spamassassin package can spawn a second spamd instance and thus +# handle virtual and non-virtual mail configurations out of the box. +# +# To enable the virtual instance, set VINSTANCE to 1 and configure at least +# VUSER and VCONFIGDIR below. +#VINSTANCE=1 + +# Port +# The virtual instance must listen on a different port than the main instance. +# The default is 784. +#VPORT=784 + +# User +# The virtual instance must be run by a non-root user. Ideally, this will be +# the same user as responsible for delivering mail to your virtual mail +# directory hierarchy. There is no default. +#VUSER=vmail + +# Directory layout +# How is your virtual directory hierarchy organised? Where can spamd find +# per-vuser configuration. Specify the complete path to the directory to hold +# the user_prefs and bayes_* files for each vuser. You can use the following +# escapes: +# %u -- replaced with the full name of the current user, as sent by spamc. +# %l -- replaced with the ’local part’ of the current username. In other +# words, if the username is an email address, this is the part before +# the "@" sign. +# %d -- replaced with the ’domain’ of the current username. In other words, +# if the user‐ name is an email address, this is the part after the +# "@" sign. +# %% -- replaced with a single percent sign (%). +# There is no default. +#VCONFIGDIR=/srv/vmail/%d/%l/.spamassassin + +# spamd options +# Specify the options to pass to the virtual spamd instance. Note that these +# are separate from the OPTIONS further up. However, the same notes apply, so +# make sure not to increase --max-children without knowing what you're doing. +# I suggest not to use --helper-home-dir +VOPTIONS="--create-prefs --max-children 5" + +# Set nice level of virtual spamd +#NICE="--nicelevel 15" +# +# Pid file +# the location of the file to hold the virtual instance's PID +#VPIDFILE=/var/run/spamd-virtual.pid
digital_signature_gpg.asc
Description: Digital signature (see http://martin-krafft.net/gpg/)