debian/0000755000000000000000000000000012252566536007202 5ustar debian/rules0000755000000000000000000001003012252565730010247 0ustar #!/usr/bin/make -f # Uncomment this to turn on verbose mode. #export DH_VERBOSE=1 DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH) # Allows easy backporting on non-multiarch aware distributions PREPROCESS_FILES := $(wildcard debian/*.install.in) $(PREPROCESS_FILES:.in=): %: %.in sed 's,@DEB_HOST_MULTIARCH@/,$(DEB_HOST_MULTIARCH:=/),g' $< > $@ # The first driver stated hear will be used as the # default driver in dspam.conf STORAGE = "hash_drv,mysql_drv,pgsql_drv,sqlite3_drv" CONFIGURE = --sysconfdir=/etc/dspam \ --disable-dependency-tracking \ --enable-split-configuration \ --enable-static \ --enable-external-lookup \ --enable-syslog \ --with-logdir=/var/log/dspam/ \ --with-dspam-home=/var/spool/dspam \ --enable-domain-scale \ --with-delivery-agent=/usr/bin/procmail \ --enable-daemon \ --with-mysql-includes=/usr/include/mysql \ --with-pgsql-includes=`pg_config --includedir` \ --with-storage-driver=${STORAGE} \ --enable-debug ifeq (,$(findstring disable_virtual_users,$(DEB_BUILD_OPTIONS))) CONFIGURE += --enable-virtual-users endif ifeq (,$(findstring disable_preferences_extension,$(DEB_BUILD_OPTIONS))) CONFIGURE += --enable-preferences-extension endif ifneq (,$(findstring verbose_debug,$(DEB_BUILD_OPTIONS))) CONFIGURE += --enable-verbose-debug endif ifeq (,$(findstring disable_clamav,$(DEB_BUILD_OPTIONS))) CONFIGURE += --enable-clamav endif # Needed to not depend on debhelper >= 9 (and thus ease backports) CPPFLAGS:=$(shell dpkg-buildflags --get CPPFLAGS) CFLAGS:=$(shell dpkg-buildflags --get CFLAGS) LDFLAGS:=$(shell dpkg-buildflags --get LDFLAGS) LDFLAGS+=-Wl,-z,defs -Wl,--as-needed # These are used for cross-compiling and for saving the configure script # from having to guess our platform (since we know it already) DEB_HOST_GNU_TYPE := $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE) DEB_BUILD_GNU_TYPE := $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE) %: dh $@ --with autoreconf override_dh_auto_configure: $(PREPROCESS_FILES:.in=) dh_auto_configure -- --build=$(DEB_BUILD_GNU_TYPE) --host=$(DEB_HOST_GNU_TYPE) $(CONFIGURE) # dh_install does not support renaming ln contrib/dspam_maintenance/dspam_maintenance.sh contrib/dspam_maintenance/dspam_maintenance # make sure we use the latest SQL schemas cat src/tools.mysql_drv/mysql_objects-4.1.sql > debian/sqlfiles/install/mysql cat src/tools.mysql_drv/virtual_users.sql >> debian/sqlfiles/install/mysql cat src/tools.pgsql_drv/pgsql_objects.sql > debian/sqlfiles/install/pgsql cat src/tools.pgsql_drv/virtual_users.sql >> debian/sqlfiles/install/pgsql # split the main configuration file into snippets cp src/dspam.conf.in src/dspam.conf.in.orig ./debian/split-config.sh override_dh_makeshlibs: dh_makeshlibs -Nlibdspam7-drv-hash -Nlibdspam7-drv-pgsql -Nlibdspam7-drv-mysql -Nlibdspam7-drv-sqlite3 override_dh_strip: dh_strip -pdspam --dbg-package=dspam-dbg dh_strip -plibdspam7 -plibdspam7-drv-hash -plibdspam7-drv-mysql -plibdspam7-drv-pgsql -plibdspam7-drv-sqlite3 --dbg-package=libdspam7-dbg override_dh_installinit: dh_installinit -- start 21 2 3 4 5 . stop 21 0 1 6 . ifneq (,$(DEB_HOST_MULTIARCH)) override_dh_gencontrol: dh_gencontrol -- -Vmisc:Multi-Arch=same endif override_dh_auto_clean: [ ! -f Makefile ] || $(MAKE) maintainer-clean -rm -f contrib/dspam_maintenance/dspam_maintenance # Remove DB schemas -rm -f debian/sqlfiles/install/mysql -rm -f debian/sqlfiles/install/pgsql # Remove splitted configuration files -rm -f src/extlookup.conf -rm -f src/hash.conf -rm -f src/mysql.conf -rm -f src/pgsql.conf -mv src/dspam.conf.in.orig src/dspam.conf.in # Remove install files generated from install.in files -rm -f debian/libdspam7.install -rm -f debian/libdspam7-dev.install -rm -f debian/libdspam7-drv-hash.install -rm -f debian/libdspam-drv-mysql.install -rm -f debian/libdspam7-drv-pgsql.install -rm -f debian/libdspam7-drv-sqlite3.install debian/libdspam7-dev.manpages0000644000000000000000000000036312252565730013352 0ustar debian/manpages/dspam_addattribute.3 debian/manpages/dspam_attach.3 debian/manpages/dspam_create.3 debian/manpages/dspam_destroy.3 debian/manpages/dspam_detach.3 debian/manpages/dspam_getsource.3 debian/manpages/dspam_process.3 man/libdspam.3 debian/libdspam7-drv-mysql.install.in0000644000000000000000000000107512252565730015013 0ustar debian/sqlfiles/install/mysql usr/share/dbconfig-common/data/libdspam7-drv-mysql/install usr/lib/@DEB_HOST_MULTIARCH@/dspam/libmysql_drv.so* src/mysql.conf usr/share/libdspam7-drv-mysql src/tools.mysql_drv/mysql_objects-4.1.sql usr/share/doc/libdspam7-drv-mysql/sql/ src/tools.mysql_drv/purge-4.1.sql usr/share/doc/libdspam7-drv-mysql/sql/ src/tools.mysql_drv/virtual_user_aliases.sql usr/share/doc/libdspam7-drv-mysql/sql/ src/tools.mysql_drv/virtual_users.sql usr/share/doc/libdspam7-drv-mysql/sql/ debian/libdspam7-drv-sqlite3.docs0000644000000000000000000000002312252565730014077 0ustar doc/sqlite_drv.txt debian/dspam.cron.daily0000644000000000000000000000030712252565730012265 0ustar #!/bin/sh MAINTENANCE_OPTIONS="" # Source our config [ -f /etc/default/dspam ] && . /etc/default/dspam [ -x /usr/bin/dspam_maintenance ] && /usr/bin/dspam_maintenance $MAINTENANCE_OPTIONS exit 0 debian/patches/0000755000000000000000000000000012252565730010624 5ustar debian/patches/009_fix_recipient_corruption_when_releasing_message_from_quarantine.diff0000644000000000000000000000343312252565730027215 0ustar From: Allan Ievers Subject: Fix recipient corruption when releasing a message from quarantine When releasing mail from quarantine, dspam corrupts the FROM part in the SMTP/LMTP handshake. Origin: vendor Bug: https://sourceforge.net/p/dspam/bug-tracker/160/ Bug-Debian: http://bugs.debian.org/698136 Last-Update: 2013-09-10 --- a/src/dspam.c +++ b/src/dspam.c @@ -499,8 +499,9 @@ process_message ( ATX->train_pristine = 1; } - /* Change also the mail recipient */ - ATX->recipient = CTX->username; + /* Change also the mail recipient. ATX->recipient either points to + * recipient[] or mailbox[] in process_users, hence the size of 256 */ + strlcpy(ATX->recipient, CTX->username, 256); } } @@ -1634,6 +1635,7 @@ int process_users(AGENT_CTX *ATX, buffer *message) { char filename[MAX_FILENAME_LENGTH]; int optin, optout; char *username = NULL; + char recipient[256]; /* If ServerParameters specifies a --user, there will only be one * instance on the stack, but possible multiple recipients. So we @@ -1672,7 +1674,7 @@ int process_users(AGENT_CTX *ATX, buffer *message) { username = node_nt->ptr; if (node_rcpt) { - ATX->recipient = node_rcpt->ptr; + strlcpy(recipient, node_rcpt->ptr, sizeof(recipient)); node_rcpt = c_nt_next (ATX->recipients, &c_rcpt); } else { @@ -1680,8 +1682,9 @@ int process_users(AGENT_CTX *ATX, buffer *message) { if (have_rcpts) break; - ATX->recipient = node_nt->ptr; + strlcpy(recipient, node_nt->ptr, sizeof(recipient)); } + ATX->recipient = recipient; /* If support for "+detail" is enabled, save full mailbox name for delivery and strip detail for processing */ debian/patches/003_dspam-default.prefs-in_etc.diff0000644000000000000000000000354712252565730017154 0ustar Description: default.prefs file is installed in /etc/dspam Author: Debian DSPAM Maintainers Forwarded: not-needed --- a/webui/cgi-bin/admin.cgi +++ b/webui/cgi-bin/admin.cgi @@ -167,14 +167,6 @@ if ($FORM{'username'} eq "" || $FORM{'username'} eq "default") { $FILE = "/etc/dspam/default.prefs"; - if ($CONFIG{'PREFERENCES_EXTENSION'} != 1 && ! -l "/etc/dspam/default.prefs") { - $DATA{'ERROR'} = "WARNING: " . - "These default preferences will not be loaded by DSPAM, but only by ". - " the CGI interface when a user initially sets up their preferences. ". - "To have DSPAM override its configuration with these default ". - "preferences, symlink $CONFIG{'DSPAM_HOME'}/default.prefs to the ". - "default.prefs file in the CGI directory.

"; - } } else { $FILE = GetPath($FORM{'username'}) . ".prefs"; } --- a/src/pref.c +++ b/src/pref.c @@ -180,7 +180,7 @@ PTX[0] = NULL; if (user == NULL) { - snprintf(filename, MAX_FILENAME_LENGTH, "%s/default.prefs", home); + snprintf(filename, MAX_FILENAME_LENGTH, "/etc/dspam/default.prefs", home); } else { _ds_userdir_path (filename, home, user, "prefs"); } @@ -310,7 +310,7 @@ ignore = ignore; /* Keep compiler happy */ if (username == NULL) { - snprintf(filename, MAX_FILENAME_LENGTH, "%s/default.prefs", home); + snprintf(filename, MAX_FILENAME_LENGTH, "/etc/dspam/default.prefs", home); } else { _ds_userdir_path (filename, home, username, "prefs"); } @@ -339,7 +339,7 @@ ignore = ignore; /* Keep compiler happy */ if (username == NULL) { - snprintf(filename, MAX_FILENAME_LENGTH, "%s/default.prefs", home); + snprintf(filename, MAX_FILENAME_LENGTH, "/etc/dspam/default.prefs", home); } else { _ds_userdir_path (filename, home, username, "prefs"); } debian/patches/series0000644000000000000000000000062112252565730012040 0ustar 001_dspam-webfrontend-config-debian.diff 002_update-dspam.conf.diff 003_dspam-default.prefs-in_etc.diff 005_dspam-notify.diff 006_default-daemon-port.diff 007_process_quarantine_if_spanish.diff 008_fix_exim_integration_doc.diff 009_fix_recipient_corruption_when_releasing_message_from_quarantine.diff 011_define_WCONTINUED_and_WIFCONTINUED_if_not_defined.diff 012_dont_read_past_end_of_css_files.diff debian/patches/008_fix_exim_integration_doc.diff0000644000000000000000000000517212252565730017112 0ustar Description: Fix documentation about exim integration Using dspam with exim requires to call exim with option -oi to avoid mails from being truncated. This commit modify the documentation and configuration file to add the -oi option when calling exim. Author: Kenneth Marshall Origin: upstream, http://dspam.git.sourceforge.net/git/gitweb.cgi?p=dspam/dspam;a=commitdiff;h=e515570c74b0e48e714c5b45f11de2a5b3482459 Bug-Debian: http://bugs.debian.org/644392 Forwarded: http://sourceforge.net/mailarchive/forum.php?thread_name=20120802190055.GF15829%40aart.rice.edu&forum_name=dspam-user Last-Update: 2012-08-13 --- dspam-3.10.1+dfsg.orig/CHANGELOG +++ dspam-3.10.1+dfsg/CHANGELOG @@ -1,3 +1,8 @@ +Patch backported for Debian +-------------- + +[20121202:2115] sbajic: Update documentation for Exim integration. + Version 3.10.2 -------------- --- dspam-3.10.1+dfsg.orig/doc/exim.txt +++ dspam-3.10.1+dfsg/doc/exim.txt @@ -1,4 +1,4 @@ -$Id: exim.txt,v 1.1 2005/03/11 21:16:03 jonz Exp $ +$Id: exim.txt,v 1.2 2012/08/02 21:09:23 sbajic Exp $ EXIM 4 INTEGRATION @@ -40,11 +40,17 @@ domain as part of the username: command = /usr/local/bin/dspam --deliver=innocent --user "$local_part@$domain" -- %u -Finally, you will need to configure and compile DSPAM. DSPAM will most likely -end up calling exim again for delivery, using the spam-scanned protocol to -identify scanned messages. The most common example is: - - ./configure --with-delivery-agent="/usr/sbin/exim -oMr spam-scanned" +Finally, you will need to configure and compile DSPAM. You can configure +DSPAM with the appropriate LDA using --with-delivery-agent= at configure +time or by specifying TrustedDeliveryAgent in dspam.conf. DSPAM will most +likely end up calling exim again for delivery, using the spam-scanned +protocol to identify scanned messages. The most common example is: + + ./configure --with-delivery-agent="/usr/local/sbin/exim -oMr spam-scanned -oi" + +Note: DSPAM expects the LDA to NOT provide the "line with a single dot (.)" +processing to indicate the end of data that a MTA must provide to meet the +SMTP RFC, hence the "-oi" option to exim above. RUNNING WITHOUT PRIVILEGED EXIM USERS --- dspam-3.10.1+dfsg.orig/src/dspam.conf.in +++ dspam-3.10.1+dfsg/src/dspam.conf.in @@ -43,7 +43,7 @@ StorageDriver @libdir@/dspam/@storage_dr # Other popular configurations: #TrustedDeliveryAgent "/usr/cyrus/bin/deliver" # Cyrus #TrustedDeliveryAgent "/bin/maildrop" # Maildrop -#TrustedDeliveryAgent "/usr/local/sbin/exim -oMr spam-scanned" # Exim +#TrustedDeliveryAgent "/usr/local/sbin/exim -oMr spam-scanned -oi" # Exim # TrustedDeliveryAgent "@delivery_agent@" debian/patches/005_dspam-notify.diff0000644000000000000000000000567212252565730014466 0ustar Description: split dspam_notify script to have a separate configuration file Author: Debian DSPAM Maintainers Forwarded: not-needed --- /dev/null +++ b/src/tools/dspam_notify.conf @@ -0,0 +1,29 @@ +#!/usr/bin/perl + +# Who will the notifications be sent from? +$FROM_EMAIL = 'dspam@example.org'; +$FROM_NAME = 'DSPAM Filter'; + +# What will the notification subject be? +$SUBJECT = 'Daily Spam Quarantine Summary'; + +# What text to display in the body? +$BODY = qq!

This report has been sent to you from the Anti-Spam service hosted at example.org. Below is a list of items in your quarantine area. You can view or release a message by clicking on the links (right). If you no longer wish to receive these reports then you may change the option on the 'Preferences' page.

!; + +# Quarantine URL +$DSPAM_URL = 'https://dspam.example.org'; + +# Maximum of entries to show in mail +$MAX_ITEMS = 200; + +# Address of your SMTP server? localhost should be fine. +$SERVER = 'localhost'; + +# Port of your SMTP server? 25 should be fine +$PORT = '25'; + +# Enable User Preference Checking (Very CPU Intensive!!!) Not Recommended for more than 500 email accounts. +$PREF_CHECK = 0; + +# Configuration was successful +1; --- a/src/tools/dspam_notify.in +++ b/src/tools/dspam_notify.in @@ -4,35 +4,15 @@ use Net::SMTP; -# Enter the location of you dspam.conf, dspam binary and path to dspam_admin/dspam_stats. -$DSPAMCONF = '@sysconfdir@/dspam.conf'; -$DSPAM_BINARY = '@bindir@/@dspam_transformed@'; -$BINDIR = '@bindir@'; - -# Who will the notifications be sent from? -$FROM_EMAIL = 'dspam@example.org'; -$FROM_NAME = 'DSPAM Filter'; - -# What will the notification subject be? -$SUBJECT = 'Daily Spam Quarantine Summary'; - -# What text to display in the body? -$BODY = qq!

This report has been sent to you from the Anti-Spam service hosted at example.org. Below is a list of items in your quarantine area. You can view or release a message by clicking on the links (right). If you no longer wish to receive these reports then you may change the option on the 'Preferences' page.

!; - -# Quarantine URL -$DSPAM_URL = 'https://dspam.example.org'; +if (!(-e "/etc/dspam/dspam_notify.conf") || !(-r "/etc/dspam/dspam_notify.conf")) { + die("Missing configuration file: /etc/dspam/dspam_notify.conf"); +} +require "/etc/dspam/dspam_notify.conf"; -# Maximum of entries to show in mail -$MAX_ITEMS = 200; - -# Address of your SMTP server? localhost should be fine. -$SERVER = 'localhost'; - -# Port of your SMTP server? 25 should be fine -$PORT = '25'; - -# Enable User Preference Checking (Very CPU Intensive!!!) Not Recommended for more than 500 email accounts. -$PREF_CHECK = 0; +# Enter the location of you dspam.conf, dspam binary and path to dspam_admin/dspam_stats. +$DSPAMCONF = '/etc/dspam/dspam.conf'; +$DSPAM_BINARY = '/usr/bin/dspam'; +$BINDIR = '/usr/bin'; ###################################### # No need to config below this point.# debian/patches/012_dont_read_past_end_of_css_files.diff0000644000000000000000000000366112252565730020400 0ustar From: Thomas Preud'homme Subject: don't read past the end of css files Currently, dspam's code assumes css files are well formed. It will thus check wether a record exist or not by comparing its position against the maximum number of records stored in the header. In the case of a corrupted header, that check could return true and the code access data beyond the end of the file, leading to a segmentation fault. This patch enhance cssclean to fix this kind of corruption. Origin: vendor Bug: https://sourceforge.net/p/dspam/bug-tracker/170/ Bug-Debian: http://bugs.debian.org/722485 Last-Update: 2013-11-26 --- src/tools.hash_drv/cssclean.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/tools.hash_drv/cssclean.c b/src/tools.hash_drv/cssclean.c index b3f6264..2f1209b 100644 --- a/src/tools.hash_drv/cssclean.c +++ b/src/tools.hash_drv/cssclean.c @@ -189,7 +189,7 @@ int cssclean(const char *filename, int heavy) { filepos = sizeof(struct _hash_drv_header); header = old.addr; while(filepos < old.file_len) { - for(i=0;ihash_rec_max;i++) { + for(i=0;ihash_rec_max&&filepos+sizeof(*rec)-1<=old.file_len;i++) { rec = (void *)((unsigned long) old.addr + filepos); nonspam = rec->nonspam & 0x0fffffff; @@ -232,12 +232,18 @@ int cssclean(const char *filename, int heavy) { } filepos += sizeof(struct _hash_drv_spam_record); } + if (ihash_rec_max) { + LOG(LOG_INFO, "css file was corrupted, fixing it now"); + if (header == old.addr) + old.header->hash_rec_max = i; + else + header->hash_rec_max = i; + } offset = (void *)((unsigned long) old.addr + filepos); header = offset; filepos += sizeof(struct _hash_drv_header); } - bcopy (old.header, new.header, sizeof(struct _hash_drv_header)); _hash_drv_close(&new); _hash_drv_close(&old); if (rename(newfile, filename) < 0) debian/patches/007_process_quarantine_if_spanish.diff0000644000000000000000000000203212252565730020151 0ustar Description: Fix quarantine deletion in web frontend for spanish users A string in dspam webfrontend is translated despite its value being used in cgi scripts. This string should not be translated as it is not shown to the user. Author: Daniel Vidal de la Rubia Bug-Debian: http://bugs.debian.org/673833 Origin: other, http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=673833 Forwarded: no Reviewed-By: Thomas Preud'homme Last-Update: 2012-05-21 --- dspam-3.10.2+dfsg.orig/webui/cgi-bin/templates/es-es/nav_quarantine.html +++ dspam-3.10.2+dfsg/webui/cgi-bin/templates/es-es/nav_quarantine.html @@ -38,7 +38,7 @@ Marca los mensajes y luego usa las opcio

- + debian/patches/006_default-daemon-port.diff0000644000000000000000000000250412252565730015713 0ustar Description: Debian default port is set to 2424 as dspam daemon is run by an unpriviledge user Author: Debian DSPAM Maintainers Forwarded: not-needed --- a/src/daemon.c +++ b/src/daemon.c @@ -97,7 +97,7 @@ int domain = 0; /* listening on domain socket? */ int listener; /* listener fd */ int i; - int port = 24, queue = 32; /* default port and queue size */ + int port = 2424, queue = 32; /* default port and queue size */ signal(SIGPIPE, SIG_IGN); signal(SIGINT, process_signal); --- a/src/dspam.conf.in +++ b/src/dspam.conf.in @@ -68,7 +68,7 @@ # the syntax: DeliveryHost.example.org 1.2.3.4 # #DeliveryHost 127.0.0.1 -#DeliveryPort 24 +#DeliveryPort 2424 #DeliveryIdent localhost #DeliveryProto LMTP @@ -805,8 +805,12 @@ # ServerHost: Not enabling ServerHost will bind DSPAM server to all available # interfaces. # +# ServerPort: Default upstream configuration is to run dspam daemon on port +# 24. On Debian, dspam being run as a unprivileged user, default port is +# set to 2424. +# #ServerHost 127.0.0.1 -#ServerPort 24 +#ServerPort 2424 #ServerQueueSize 32 #ServerPID /var/run/dspam/dspam.pid @@ -855,7 +859,7 @@ #ClientIdent "secret@Relay1" # #ClientHost 127.0.0.1 -#ClientPort 24 +#ClientPort 2424 #ClientIdent "secret@Relay1" # --- RABL --- debian/patches/001_dspam-webfrontend-config-debian.diff0000644000000000000000000001676012252565730020152 0ustar Description: Debian configuration for the WebUI Author: Debian DSPAM Maintainers Forwarded: not-needed --- a/webui/cgi-bin/admin.cgi +++ b/webui/cgi-bin/admin.cgi @@ -24,14 +24,14 @@ # # Read configuration parameters common to all CGI scripts # -if (!(-e "configure.pl") || !(-r "configure.pl")) { +if (!(-e "/etc/dspam/webfrontend.conf") || !(-r "/etc/dspam/webfrontend.conf")) { &htmlheader; print "Error!

"; print "Missing file configure.pl"; print "

\n"; exit; } -require "configure.pl"; +require "/etc/dspam/webfrontend.conf"; # # The current CGI script @@ -74,7 +74,7 @@ # do { my($admin) = 0; - open(FILE, "<./admins"); + open(FILE, ") { chomp; if ($_ eq $ENV{'REMOTE_USER'}) { @@ -165,9 +165,9 @@ $DATA{'USERNAME'} = $USER; - if ($FORM{'username'} eq "") { - $FILE = "./default.prefs"; - if ($CONFIG{'PREFERENCES_EXTENSION'} != 1 && ! -l "$CONFIG{'DSPAM_HOME'}/default.prefs") { + if ($FORM{'username'} eq "" || $FORM{'username'} eq "default") { + $FILE = "/etc/dspam/default.prefs"; + if ($CONFIG{'PREFERENCES_EXTENSION'} != 1 && ! -l "/etc/dspam/default.prefs") { $DATA{'ERROR'} = "WARNING: " . "These default preferences will not be loaded by DSPAM, but only by ". " the CGI interface when a user initially sets up their preferences. ". @@ -261,7 +261,7 @@ } if (! -e $FILE) { - %PREFS = GetPrefs($USER, "./default.prefs"); + %PREFS = GetPrefs($USER, "/etc/dspam/default.prefs"); } else { %PREFS = GetPrefs($USER, $FILE); } @@ -869,7 +869,7 @@ close(PIPE); } else { if (! -e $FILE) { - $FILE = "./default.prefs"; + $FILE = "/etc/dspam/default.prefs"; } if (! -e $FILE) { --- a/webui/cgi-bin/admingraph.cgi +++ b/webui/cgi-bin/admingraph.cgi @@ -25,14 +25,14 @@ # # Read configuration parameters common to all CGI scripts # -if (!(-e "configure.pl") || !(-r "configure.pl")) { +if (!(-e "/etc/dspam/webfrontend.conf") || !(-r "/etc/dspam/webfrontend.conf")) { &htmlheader; print "Error!

"; - print "Missing file configure.pl"; + print "Missing file /etc/dspam/webfrontend.conf"; print "

\n"; exit; } -require "configure.pl"; +require "/etc/dspam/webfrontend.conf"; # # Parse form @@ -52,7 +52,7 @@ $LANGUAGE = $CONFIG{'LANGUAGE_USED'}; } -GD::Graph::colour::read_rgb("rgb.txt"); +GD::Graph::colour::read_rgb("/etc/dspam/rgb.txt"); do { my($spam, $nonspam, $sm, $fp, $inoc, $wh, $corpus, $virus, $black, $block, $period) = split(/\_/, $FORM{'data'}); --- a/webui/cgi-bin/configure.pl.in +++ b/webui/cgi-bin/configure.pl.in @@ -28,11 +28,11 @@ $CONFIG{'DSPAM_STATS'} = $CONFIG{'DSPAM_BIN'} . "/dspam_stats"; $CONFIG{'DSPAM_ARGS'} = "--deliver=innocent --class=innocent " . "--source=error --user %CURRENT_USER% -d %u"; -$CONFIG{'TEMPLATES'} = "./templates"; # Location of HTML templates +$CONFIG{'TEMPLATES'} = "/etc/dspam/templates"; # Location of HTML templates $CONFIG{'DSPAM_PROCESSES'} = "ps auxw | grep dspam | grep -v 'grep\|cgi\|sock' | wc -l"; # use ps -deaf for Solaris $CONFIG{'MAIL_QUEUE'} = "mailq | grep '^[0-9,A-F]\{10,12\}[\t ][\t ]*[1-9]' | wc -l"; -$CONFIG{'WEB_ROOT'} = ""; # URL location of included htdocs/ files +$CONFIG{'WEB_ROOT'} = "/usr/share/dspam/"; # URL location of included htdocs/ files # Default DSPAM display #$CONFIG{'DATE_FORMAT'} = "%d.%m.%Y %H:%M"; # Date format in strftime style @@ -45,13 +45,15 @@ $CONFIG{'MAX_COL_LEN'} = 50; # Max chars in list columns $CONFIG{'SORT_DEFAULT'} = "Rating"; # Show quarantine by "Date" or "Rating" $CONFIG{'3D_GRAPHS'} = 1; # 0=graphs in 2D, 1=graphs in 3D -$CONFIG{'OPTMODE'} = "NONE"; # OUT=OptOut IN=OptIn NONE=not selectable +$CONFIG{'OPTMODE'} = "OUT"; # OUT=OptOut IN=OptIn NONE=not selectable # Full path to TTF font(s) used for legend, x and y labels in Graphs. GD must be compiled # with TTF support if you want to use this feature. -#$CONFIG{'GRAPHS_X_LABEL_FONT'} = "/usr/share/fonts/dejavu/DejaVuSans.ttf"; -#$CONFIG{'GRAPHS_Y_LABEL_FONT'} = "/usr/share/fonts/dejavu/DejaVuSans.ttf"; -#$CONFIG{'GRAPHS_LEGEND_FONT'} = "/usr/share/fonts/dejavu/DejaVuSans-Bold.ttf"; +# On Debian, you need to install libgd-gd2-perl rather than libgd-gd2-noxpm-perl +# You will also need some ttf font (eg. DejaVu in the ttf-dejavu-core package) +#$CONFIG{'GRAPHS_X_LABEL_FONT'} = "/usr/share/fonts/truetype/ttf-dejavu/DejaVuSans.ttf"; +#$CONFIG{'GRAPHS_Y_LABEL_FONT'} = "/usr/share/fonts/truetype/ttf-dejavu/DejaVuSans.ttf"; +#$CONFIG{'GRAPHS_LEGEND_FONT'} = "/usr/share/fonts/truetype/ttf-dejavu/DejaVuSans-Bold.ttf"; # Add customized settings below $CONFIG{'LOCAL_DOMAIN'} = "example.org"; --- a/webui/cgi-bin/dspam.cgi +++ b/webui/cgi-bin/dspam.cgi @@ -26,14 +26,14 @@ # # Read configuration parameters common to all CGI scripts # -if (!(-e "configure.pl") || !(-r "configure.pl")) { +if (!(-e "/etc/dspam/webfrontend.conf") || !(-r "/etc/dspam/webfrontend.conf")) { &htmlheader; print "Error!

"; - print "Missing file configure.pl"; + print "Missing file /etc/dspam/webfrontend.conf"; print "

\n"; exit; } -require "configure.pl"; +require "/etc/dspam/webfrontend.conf"; # # The current CGI script @@ -71,7 +71,7 @@ $CONFIG{'ADMIN'} = 0; if ($ENV{'REMOTE_USER'} ne "") { - open(FILE, "<./admins"); + open(FILE, ") { chomp; if ($_ eq $ENV{'REMOTE_USER'}) { @@ -84,7 +84,7 @@ $CONFIG{'SUBADMIN'} = 0; $CONFIG{'SUBADMIN_USERS'} = {}; if ($ENV{'REMOTE_USER'} ne "" && $CONFIG{'ADMIN'} == 0) { - open(FILE, "<./subadmins"); + open(FILE, ") { chomp; if ($_ !~ /^\s*#/) { @@ -1829,6 +1829,7 @@ my(%PREFS); my($FILE) = "$USER.prefs"; + my($DEFAULT_PREFS) = "/etc/dspam/default.prefs"; if ($CONFIG{'PREFERENCES_EXTENSION'} == 1) { my $PREF_USER = $CURRENT_USER; @@ -1844,10 +1845,10 @@ if (keys(%PREFS) eq "0" || $CONFIG{'PREFERENCES_EXTENSION'} != 1) { - if (! -e "./default.prefs") { + if (! -e "$DEFAULT_PREFS") { &error("$CONFIG{'LANG'}->{$LANGUAGE}->{'error_load_default_prefs'}"); } - open(FILE, "<./default.prefs"); + open(FILE, "<$DEFAULT_PREFS"); while() { chomp; my($directive, $value) = split(/\=/); --- a/webui/cgi-bin/graph.cgi +++ b/webui/cgi-bin/graph.cgi @@ -26,14 +26,14 @@ # # Read configuration parameters common to all CGI scripts # -if (!(-e "configure.pl") || !(-r "configure.pl")) { +if (!(-e "/etc/dspam/webfrontend.conf") || !(-r "/etc/dspam/webfrontend.conf")) { &htmlheader; print "Error!

"; - print "Missing file configure.pl"; + print "Missing file /etc/dspam/webfrontend.conf"; print "

\n"; exit; } -require "configure.pl"; +require "/etc/dspam/webfrontend.conf"; # # Parse form @@ -53,7 +53,7 @@ $LANGUAGE = $CONFIG{'LANGUAGE_USED'}; } -GD::Graph::colour::read_rgb("rgb.txt"); +GD::Graph::colour::read_rgb("/etc/dspam/rgb.txt"); do { my($spam, $nonspam, $period) = split(/\_/, $FORM{'data'}); debian/patches/011_define_WCONTINUED_and_WIFCONTINUED_if_not_defined.diff0000644000000000000000000000165212252565730022650 0ustar From: Thomas Preud'homme Date: Sat, 7 Sep 2013 20:52:23 +0200 Subject: Define WCONTINUED and WIFCONTINUED if not defined WCONTINUED and WIFCONTINUED are Linux-specific macros to the wait system call. Thus, these macros might not be defined for other operating systems such as Hurd. This patch define WCONTINUED and WIFCONTINUED in such case so that the case of a child process receiving a SIGCONT is simply not notified. Origin: vendor Bug: https://sourceforge.net/p/dspam/bug-tracker/169/ Last-Update: 2013-09-07 --- src/external_lookup.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/external_lookup.c b/src/external_lookup.c index 4f8e10e..8d0dcc9 100644 --- a/src/external_lookup.c +++ b/src/external_lookup.c @@ -51,6 +51,12 @@ # define BIND_TIMEOUT 10 #endif +/* Hurd */ +#ifndef WCONTINUED +#define WCONTINUED 0 +#define WIFCONTINUED(status) 0 +#endif + void sig_alrm(int signum) { debian/patches/002_update-dspam.conf.diff0000644000000000000000000000723512252565730015356 0ustar Description: Debian default configuration Author: Debian DSPAM Maintainers Forwarded: not-needed --- a/src/dspam.conf.in +++ b/src/dspam.conf.in @@ -19,7 +19,7 @@ # # Options include: # -# libmysql_drv.so libpgsql_drv.so libsqlite_drv.so +# libmysql_drv.so libpgsql_drv.so # libsqlite3_drv.so libhash_drv.so # # IMPORTANT: Switching storage drivers requires more than merely changing @@ -143,11 +143,10 @@ # Trust root Trust dspam -Trust apache +Trust www-data Trust mail -Trust mailnull -Trust smmsp Trust daemon +Trust amavis #Trust nobody #Trust majordomo @@ -290,7 +289,7 @@ # defaults. # Preference "trainingMode=TEFT" # { TOE | TUM | TEFT | NOTRAIN } -> default:teft -Preference "spamAction=quarantine" # { quarantine | tag | deliver } -> default:quarantine +Preference "spamAction=tag" # { quarantine | tag | deliver } -> default:quarantine Preference "spamSubject=[SPAM]" # { string } -> default:[SPAM] Preference "statisticalSedation=5" # { 0 - 10 } -> default:0 Preference "enableBNR=on" # { on | off } -> default:off @@ -350,19 +349,19 @@ # Storage driver settings: Specific to a particular storage driver. Uncomment # the configuration specific to your installation, if applicable. # -#MySQLServer /var/lib/mysql/mysql.sock -#MySQLPort -#MySQLUser dspam -#MySQLPass changeme -#MySQLDb dspam -#MySQLCompress true -#MySQLReconnect true +MySQLServer /var/run/mysqld/mysqld.sock +#MySQLPort 3306 +MySQLUser _DBC_DBUSER_ +MySQLPass _DBC_DBPASS_ +MySQLDb _DBC_DBNAME_ +MySQLCompress true +MySQLReconnect true # If you are using replication for clustering, you can also specify a separate # server to perform all writes to. # -#MySQLWriteServer /var/lib/mysql/mysql.sock -#MySQLWritePort +#MySQLWriteServer /var/run/mysqld/mysqld.sock +#MySQLWritePort 3306 #MySQLWriteUser dspam #MySQLWritePass changeme #MySQLWriteDb dspam_write @@ -406,11 +405,11 @@ # in /var/run/postgresql/.s.PGSQL.5432 specify just the path where the socket # resits (without .s.PGSQL.5432). -#PgSQLServer /var/run/postgresql/ -#PgSQLPort -#PgSQLUser dspam -#PgSQLPass changeme -#PgSQLDb dspam +PgSQLServer 127.0.0.1 +PgSQLPort 5432 +PgSQLUser _DBC_DBUSER_ +PgSQLPass _DBC_DBPASS_ +PgSQLDb _DBC_DBNAME_ # If you're running DSPAM in client/server (daemon) mode, uncomment the # setting below to override the default connection cache size (the number @@ -645,7 +644,7 @@ # TxtDirectory: the directory that holds the templates for notification # messages (see Notifications) and tagging (see tagSpam/tagNonspam). # -#TxtDirectory @dspam_home@/txt +#TxtDirectory /etc/dspam/txt # # QuarantineWarnSize: You may specify a size when DSPAM should send a "Quarantine @@ -809,7 +808,7 @@ #ServerHost 127.0.0.1 #ServerPort 24 #ServerQueueSize 32 -#ServerPID /var/run/dspam.pid +#ServerPID /var/run/dspam/dspam.pid # # ServerMode specifies the type of LMTP server to start. This can be one of: @@ -845,14 +844,14 @@ # you are running the client and server on the same machine, as it eliminates # much of the bandwidth overhead. # -#ServerDomainSocketPath "/tmp/dspam.sock" +#ServerDomainSocketPath "/var/run/dspam/dspam.sock" # # Client Mode: If you are running DSPAM in client/server mode, uncomment and # set these variables. A ClientHost beginning with a / will be treated as # a domain socket. # -#ClientHost /tmp/dspam.sock +#ClientHost /var/run/dspam/dspam.sock #ClientIdent "secret@Relay1" # #ClientHost 127.0.0.1 @@ -906,7 +905,7 @@ # --- Split Configuration File Support --- # Include a directory with configuration items. -#Include /etc/dspam/dspam.d/ +Include /etc/dspam/dspam.d/ # --- --- debian/dspam-webfrontend.lintian-overrides0000644000000000000000000000142112252565730016172 0ustar # /var/www being apache2-suexec hardcoded root, DSPAM cgi's have # to be installed into this directory. # See discussion at: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=555129 # Using apache2-suexec-custom is not possible as it also allows one # unique location, and would prevent its use by other packages/scripts dspam-webfrontend: dir-or-file-in-var-www var/www/dspam/ dspam-webfrontend: dir-or-file-in-var-www var/www/dspam/admin.cgi dspam-webfrontend: dir-or-file-in-var-www var/www/dspam/admingraph.cgi dspam-webfrontend: dir-or-file-in-var-www var/www/dspam/dspam.cgi dspam-webfrontend: dir-or-file-in-var-www var/www/dspam/graph.cgi dspam-webfrontend: script-not-executable usr/share/dspam/configure.pl dspam-webfrontend: script-not-executable etc/dspam/dspam_notify.conf debian/dspam-documents/0000755000000000000000000000000012252565730012300 5ustar debian/dspam-documents/exim4/0000755000000000000000000000000012252565730013326 5ustar debian/dspam-documents/exim4/router/0000755000000000000000000000000012252565730014646 5ustar debian/dspam-documents/exim4/router/350_dspam_aliases0000644000000000000000000000033512252565730017766 0ustar dspam_addspam: driver = accept check_local_user local_part_prefix = spam- transport = addspam dspam_falsepositive: driver = accept check_local_user local_part_prefix = falsepos- transport = falsepositive debian/dspam-documents/exim4/router/250_dspam_spamcheck_director0000644000000000000000000000042112252565730022171 0ustar # DSPAM spamcheck_director: driver = accept check_local_user condition = "${if and {\ {!def:h_X-DSPAM-Result:}\ }{1}{0}}" headers_add = "X-DSPAM-Check: by $primary_hostname on $tod_full" transport = spamcheck no_verify debian/dspam-documents/exim4/transport/0000755000000000000000000000000012252565730015362 5ustar debian/dspam-documents/exim4/transport/40_dspam_spamcheck0000644000000000000000000000047712252565730020742 0ustar # DSPAM spamcheck: driver = pipe command = /usr/local/bin/dspam --mode=teft --deliver=innocent,spam --user $local_part -bm %u current_directory = "/var/dspam" group = mail home_directory = "/var/dspam" log_output message_prefix = message_suffix = return_fail_output no_return_path_add user = mail debian/dspam-documents/exim4/transport/40_dspam_falsepos0000644000000000000000000000050412252565730020607 0ustar falsepositive: driver = pipe command = "/usr/local/bin/dspam --user $local_part --mode=teft --class=innocent --source=error" current_directory = "/var/dspam" group = mail home_directory = "/var/dspam" log_output message_prefix = "" message_suffix = "" return_fail_output no_return_path_add user = mail debian/dspam-documents/exim4/transport/40_dspam_addspam0000644000000000000000000000047212252565730020410 0ustar addspam: driver = pipe command = "/usr/local/bin/dspam --user $local_part --mode=teft --class=spam --source=error" current_directory = "/var/dspam" group = mail home_directory = "/var/dspam" log_output message_prefix = "" message_suffix = "" return_fail_output no_return_path_add user = mail debian/dspam-documents/exim4/dspam.conf0000644000000000000000000002645212252565730015312 0ustar ## $Id: dspam.conf.in,v 1.2 2004/11/12 16:29:19 jonz Exp $ ## dspam.conf -- DSPAM configuration file ## # # DSPAM Home: Specifies the base directory to be used for DSPAM storage # Home /var/dspam # # Trusted Delivery Agent: Specifies the local delivery agent DSPAM should call # when delivering mail as a trusted user. Use %u to specify the user DSPAM is # processing mail for. It is generally a good idea to allow the MTA to specify # the pass-through arguments at run-time, but they may also be specified here. # # Most operating system defaults: #TrustedDeliveryAgent "/usr/bin/procmail" # Linux #TrustedDeliveryAgent "/usr/bin/mail" # Solaris #TrustedDeliveryAgent "/usr/libexec/mail.local" # FreeBSD #TrustedDeliveryAgent "/usr/bin/procmail" # Cygwin # # Other popular configurations: #TrustedDeliveryAgent "/usr/cyrus/bin/deliver" # Cyrus #TrustedDeliveryAgent "/bin/maildrop" # Maildrop #TrustedDeliveryAgent "/usr/sbin/exim -oMr spam-scanned -oi $u" # Exim TrustedDeliveryAgent "/usr/sbin/exim4" # Exim # #TrustedDeliveryAgent "/usr/bin/procmail" # # Untrusted Delivery Agent: Specifies the local delivery agent and arguments # DSPAM should use when delivering mail and running in untrusted user mode. # Because DSPAM will not allow pass-through arguments to be specified to # untrusted users, all arguments should be specified here. Use %u to specify # the user DSPAM is processing mail for. This configuration parameter is only # necessary if you plan on allowing untrusted processing. # #UntrustedDeliveryAgent "/usr/bin/procmail -d %u" # # Quarantine Agent: DSPAM's default behavior is to quarantine all mail it # thinks is spam. If you wish to override this behavior, you may specify # a quarantine agent which will be called with all messages DSPAM thinks is # spam. Use %u to specify the user DSPAM is processing mail for. # #QuarantineAgent "/usr/bin/procmail -d spam" # # OnFail: What to do if local delivery or quarantine should fail. If set # to "unlearn", DSPAM will unlearn the message prior to exiting with an # un successful return code. The default option, "error" will not unlearn # the message but return the appropriate error code. The unlearn option # is use-ful on some systems where local delivery failures will cause the # message to be requeued for delivery, and could result in the message # being processed multiple times. During a very large failure, however, # this could cause a significant load increase. # OnFail error # Trusted Users: Only the users specified below will be allowed to perform # administrative functions in DSPAM such as setting the active user and # accessing tools. All other users attempting to run DSPAM will be restricted; # their uids will be forced to match the active username and they will not be # able to specify delivery agent privileges or use tools. # Trust root Trust mail Trust mailnull Trust smmsp Trust daemon #Trust nobody #Trust majordomo # # Debugging: Enables debugging for some or all users. IMPORTANT: DSPAM must # be compiled with debug support in order to use this option. DSPAM should # never be running in production with debug active unless you are # troubleshooting problems. # # DebugOpt: One or more of: process, classify, spam, fp, inoculation, corpus # process standard message processing # classify message classification using --classify # spam error correction of missed spam # fp error correction of false positives # inoculation message inoculations (source=inoculation) # corpus corpusfed messages (source=corpus) # #Debug * #Debug bob bill # #DebugOpt process spam fp # # Training Mode: The default training mode to use for all operations, when # one has not been specified on the commandline or in the user's preferences. # Acceptable values are: toe, tum, teft, notrain # TrainingMode teft # # Features: Specify features to activate by default; can also be specified # on the commandline. See the documentation for a list of available features. # If _any_ features are specified on the commandline, these are ignored. # #Feature sbph Feature chained Feature tb=4 Feature whitelist Feature noise # # Algorithms: Specify the statistical algorithms to use, overriding any # defaults configured in the build. The options are: # graham Graham-Bayesian ("A Plan for Spam") # burton Burton-Bayesian (SpamProbe) # robinson Robinson's Geometric Mean Test (Obsolete) # chi-square Fisher-Robinson's Chi-Square Algorithm # # You may have multiple algorithms active simultaneously, but it is strongly # recommended that you group Bayesian algorithms with other Bayesian # algorithms, and any use of Chi-Square remain exclusive. # # Don't mess with this unless you know what you're doing # #Algorithm chi-square Algorithm graham burton # # PValue: Specify the technique used for calculating PValues, overriding any # defaults configured in the build. These options are: # graham Graham's Technique ("A Plan for Spam") # robinson Robinson's Technique # # Unlike algorithms, you may only have one of these defined. Use of the # chi-square algorithm automatically changes this to robinson. # # Don't mess with this unless you know what you're doing. # #PValue robinson PValue graham # # Preferences: Specify any preferences to set by default, unless otherwise # overridden by the user (see next section) or a default.prefs file. # If user or default.prefs are found, none of these preferences are # loaded. # #Preference "spamAction=quarantine" Preference "signatureLocation=headers" # 'message' or 'headers' #Preference "showFactors=on" #Preference "spamAction=tag" #Preference "spamSubject=SPAM" # # Overrides: Specifies the user preferences which may override configuration # and commandline defaults. Any other preferences supplied by an untrusted user # will be ignored. # AllowOverride trainingMode AllowOverride spamAction spamSubject AllowOverride statisticalSedation AllowOverride enableBNR AllowOverride enableWhitelist AllowOverride signatureLocation AllowOverride showFactors AllowOverride optIn optOut AllowOverride whitelistThreshold # # Storage driver settings: Specific to a particular storage driver. Uncomment # the configuration specific to your installation, if applicable. # #MySQLServer /var/lib/mysql/mysql.sock #MySQLPort #MySQLUser dspam #MySQLPass changeme #MySQLDb dspam #MySQLCompress true #PgSQLServer 127.0.0.1 #PgSQLPort 5432 #PgSQLUser dspam #PgSQLPass changeme #PgSQLDb dspam #OraServer "(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=127.0.0.1)(PORT=1521))(CONNECT_DATA=(SID=PROD)))" #OraUser dspam #OraPass changeme #OraSchema dspam #SQLitePragma "synchronous = OFF" # # Optionally, you can specify storage profiles, and specify the server to # use on the commandline with --profile. For example: # #Profile DECAlpha #MySQLServer.DECAlpha 10.0.0.1 #MySQLPort.DECAlpha 3306 #MySQLUser.DECAlpha dspam #MySQLPass.DECAlpha changeme #MySQLDb.DECAlpha dspam #MySQLCompress.DECAlpha true # #Profile Sun420R #MySQLServer.Sun420R 10.0.0.2 #MySQLPort.Sun420R 3306 #MySQLUser.Sun420R dspam #MySQLPass.Sun420R changeme #MySQLDb.Sun420R dspam #MySQLCompress.Sun420R false # #DefaultProfile DECAlpha # # Ignored headers: If DSPAM is behind other tools which may add a header to # incoming emails, it may be beneficial to ignore these headers - especially # if they are coming from another spam filter. If you are _not_ using one of # these tools, however, leaving the appropriate headers commented out will # allow DSPAM to use them as telltale signs of forged email. # #IgnoreHeader X-Spam-Status #IgnoreHeader X-Spam-Scanned #IgnoreHeader X-Virus-Scanner-Result # # Notifications: Enable the sending of notification emails to users (first # message, quarantine full, etc.) # Notifications on # # Purge configuration: Set dspam_clean purge default options, if not otherwise # specified on the commandline # PurgeSignatures 14 # Stale signatures PurgeNeutral 30 # Tokens with neutralish probabilities PurgeUnused 60 # Unused tokens PurgeHapaxes 15 # Tokens with less than 5 hits (hapaxes) PurgeHits1S 10 # Tokens with only 1 spam hit PurgeHits1I 10 # Tokens with only 1 innocent hit # # Purge configuration for SQL-based installations using purge.sql # #PurgeSignature off # Specified in purge.sql #PurgeNeutral 30 #PurgeUnused off # Specified in purge.sql #PurgeHapaxes off # Specified in purge.sql #PurgeHits1S off # Specified in purge.sql #PurgeHits1I off # Specified in purge.sql # # Local Mail Exchangers: Used for source address tracking, tells DSPAM which # mail exchangers are local and therefore should be ignored in the Received: # header when tracking the source of an email. Note: you should use the address # of the host as appears between brackets [ ] in the Received header. # LocalMX 127.0.0.1 # # Logging: Disabling logging for users will make usage graphs unavailable to # them. Disabling system logging will make admin graphs unavailable. # SystemLog on UserLog on # # TrainPristine: for systems where the original message remains server side # and can therefore be presented in pristine format for retraining. This option # will cause DSPAM to cease all writing of signatures and DSPAM headers to the # message, and deliver the message in as pristine format as possible. This mode # REQUIRES that the original message in its pristine format (as of delivery) # be presented for retraining, as in the case of webmail, imap, or other # applications where the message is actually kept server-side during reading, # and is preserved. DO NOT use this switch unless the original message can be # presented for retraining with the ORIGINAL HEADERS and NO MODIFICATIONS. # #TrainPristine on # # Opt: in or out; determines DSPAM's default filtering behavior. If this value # is set to in, users must opt-in to filtering by dropping a .dspam file in # /var/dspam/opt-in/user.dspam (or if you have homedirs configured, a .dspam # folder in their home directory). The default is opt-out, which means all # users will be filtered unless a .nodspam file is dropped in # /var/dspam/opt-out/user.nodspam # Opt out # # TrackSources: specify which (if any) source addresses to track and report # them to syslog (mail.info). This is useful if you're running a firewall or # blacklist and would like to use this information. Spam reporting also drops # SBL blacklist files (see http://www.nuclearelephant.com/projects/sbl/). # #TrackSources spam nonspam # # ParseToHeaders: When retraining, it's possible to set up a wildcard such # as *@spam.yourdomain.com to intercept all missed spam. If you do this, # you'll need to enable this option so that the username is assigned based # on the To: address of the message; for example spam-bob will assign the # username to bob. # #ParseToHeaders on # # Broken MTA Options: Some MTAs don't support the proper functionality # necessary. In these cases you can activate certain features in DSPAM to # compensate. 'returnCodes' causes DSPAM to return an exit code of 99 if # the message is spam, 0 if not, or a negative code if an error has occured. # Specifying 'case' causes DSPAM to force the input usernames to lowercase. # Spceifying 'lineStripping' causes DSPAM to strip ^M's from messages passed # in. # #Broken returnCodes #Broken case #Broken lineStripping ## EOF debian/dspam-documents/postfix/0000755000000000000000000000000012252565730013774 5ustar debian/dspam-documents/postfix/master.cf0000644000000000000000000000731612252565730015610 0ustar # ========================================================================== # service type private unpriv chroot wakeup maxproc command + args # (yes) (yes) (yes) (never) (100) # ========================================================================== smtp inet n - n - - smtpd #submission inet n - - - - smtpd # -o smtpd_etrn_restrictions=reject #628 inet n - - - - qmqpd pickup fifo n - - 60 1 pickup cleanup unix n - - - 0 cleanup qmgr fifo n - - 300 1 qmgr #qmgr fifo n - - 300 1 oqmgr rewrite unix - - - - - trivial-rewrite bounce unix - - - - 0 bounce defer unix - - - - 0 bounce trace unix - - - - 0 bounce verify unix - - - - 1 verify flush unix n - - 1000? 0 flush proxymap unix - - n - - proxymap smtp unix - - - - - smtp relay unix - - - - - smtp # -o smtp_helo_timeout=5 -o smtp_connect_timeout=5 showq unix n - - - - showq error unix - - - - - error local unix - n n - - local virtual unix - n n - - virtual lmtp unix - - n - - lmtp anvil unix - - n - 1 anvil cyrus unix - n n - - pipe flags=R user=cyrus argv=/usr/sbin/cyrdeliver -e -m ${extension} ${user} # # Interfaces to non-Postfix software. Be sure to examine the manual # pages of the non-Postfix software to find out what options it wants. # # maildrop. See the Postfix MAILDROP_README file for details. # maildrop unix - n n - - pipe flags=DRhu user=dspam argv=/usr/bin/maildrop -d ${user} uucp unix - n n - - pipe flags=Fqhu user=uucp argv=uux -r -n -z -a$sender - $nexthop!rmail ($recipient) ifmail unix - n n - - pipe flags=F user=ftn argv=/usr/lib/ifmail/ifmail -r $nexthop ($recipient) bsmtp unix - n n - - pipe flags=Fq. user=bsmtp argv=/usr/lib/bsmtp/bsmtp -d -t$nexthop -f$sender $recipient scalemail-backend unix - n n - 2 pipe flags=R user=scalemail argv=/usr/lib/scalemail/bin/scalemail-store ${nexthop} ${user} ${extension} # only used by postfix-tls #tlsmgr fifo - - n 300 1 tlsmgr #smtps inet n - n - - smtpd -o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes #587 inet n - n - - smtpd -o smtpd_enforce_tls=yes -o smtpd_sasl_auth_enable=yes # only allow local network to post to these entries dspam-add unix - n n - - pipe flags=Rhq user=dspam argv=/usr/bin/dspam --mode=teft --class=spam --source=error -i -f ${sender} -- %u - -o smtpd_recipient_restrictions=permit_mynetworks,reject -o mynetworks=192.168.1.0/24 # only allow local network to post to these entries dspam-fp unix - n n - - pipe flags=Rhq user=dspam argv=/usr/bin/dspam --mode=teft --user ${user} --class=innocent --source=error -o smtpd_recipient_restrictions=permit_mynetworks,reject -o mynetworks=192.168.1.0/24 dspam unix - n n - - pipe flags=Rhq user=dspam argv=/usr/bin/dspam --mode=teft --deliver=innocent,spam --feature=ch,no,tb=2 --user debian/dspam-documents/postfix/transport.domain0000644000000000000000000000020212252565730017213 0ustar # Dspam integration (DO NOT FORGET TO CREATE DNS ENTRIES FOR THEM) addspam.DOMAIN dspam-add:dummy fp.DOMAIN dspam-fp:dummy debian/dspam-documents/postfix/main.cf0000644000000000000000000000263012252565730015233 0ustar queue_directory = /var/spool/postfix command_directory = /usr/sbin daemon_directory = /usr/lib/postfix mail_owner = postfix default_privs = nobody myhostname = HOSTNAME mydomain = DOMAIN myorigin = ORIGIN inet_interfaces = localhost, INET_INTERFACE mydestination = localhost.$mydomain, $mydomain mail_spool_directory = /var/spool/mail mailbox_command = /usr/bin/procmail -a $DOMAIN -d $LOGNAME mailbox_transport = dspam fallback_transport = relay_domains = mynetworks = 192.168.0.0/24, 127.0.0.0/8 smtpd_banner = $myhostname ESMTP (--SMTP SERVER--) local_destination_concurrency_limit = 2 default_destination_concurrency_limit = 10 debug_peer_level = 10 program_directory = /usr/lib/postfix alias_maps = hash:/etc/postfix/aliases transport_maps = hash:/etc/postfix/transport, hash:/etc/postfix/transport.domain alias_database = hash:/etc/mail/aliases sender_canonical_maps = hash:/etc/postfix/canonical # filtres smtpd_sender_restrictions = reject_unknown_sender_domain, permit smtpd_helo_restrictions = permit_mynetworks, reject_invalid_hostname, permit # TLS #smtpd_use_tls = yes #smtpd_tls_cert_file = #smtpd_tls_key_file = sendmail_path = /usr/sbin/sendmail setgid_group = postdrop manpage_directory = /usr/share/man newaliases_path = /usr/bin/newaliases mailq_path = /usr/bin/mailq # Dspam dspam_destination_recipient_limit = 1 dspam-add_destination_recipient_limit = 1 spam-fp_destination_recipient_limit = 1 debian/libdspam7.dirs0000644000000000000000000000002012252565730011732 0ustar var/spool/dspam debian/dspam-webfrontend.cron.daily0000644000000000000000000000037512252565730014605 0ustar #!/bin/sh RUN_NOTIFY="no" # Source our config [ -f /etc/default/dspam ] && . /etc/default/dspam case "$RUN_NOTIFY" in [Yy]es) [ -x /usr/bin/dspam_notify ] && /usr/bin/dspam_notify ;; *) exit 0 ;; esac exit 0 debian/libdspam7-drv-pgsql.install.in0000644000000000000000000000110712252565730014770 0ustar debian/sqlfiles/install-dbadmin/pgsql usr/share/dbconfig-common/data/libdspam7-drv-pgsql/install-dbadmin debian/sqlfiles/install/pgsql usr/share/dbconfig-common/data/libdspam7-drv-pgsql/install usr/lib/@DEB_HOST_MULTIARCH@/dspam/libpgsql_drv.so* src/pgsql.conf usr/share/libdspam7-drv-pgsql src/tools.pgsql_drv/pgsql_objects.sql usr/share/doc/libdspam7-drv-pgsql/sql/ src/tools.pgsql_drv/purge-pe.sql usr/share/doc/libdspam7-drv-pgsql/sql/ src/tools.pgsql_drv/virtual_users.sql usr/share/doc/libdspam7-drv-pgsql/sql/ debian/libdspam7-drv-hash.postrm0000644000000000000000000000050712252565730014041 0ustar #!/bin/sh set -e case "$1" in purge) dpkg-statoverride --quiet --remove /etc/dspam/dspam.d/hash.conf || true ;; remove|upgrade|failed-upgrade|abort-install|abort-upgrade|disappear) ;; *) echo "postrm called with unknown argument \`$1'" >&2 exit 1 ;; esac #DEBHELPER# exit 0 debian/gbp.conf0000644000000000000000000000011412252565730010610 0ustar [git-import-orig] filter = contrib/lotus_notes/* filter-pristine-tar = True debian/dspam.init0000644000000000000000000000701312252565730011167 0ustar #!/bin/sh ### BEGIN INIT INFO # Provides: dspam # Required-Start: $local_fs $remote_fs # Required-Stop: $local_fs $remote_fs # Should-Start: mysql postgresql-8.3 postgresql-8.4 # Should-Stop: mysql postgresql-8.3 postgresql-8.4 # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: initscript for dspam # Description: dspam is a scalable, fast and statistical anti-spam filter ### END INIT INFO # # Authors: Matthijs Mohlmann # Julien Valroff # Original script based on the init script of pdns-recursor # Reworked script based on the skeleton script of the initscripts package PATH=/sbin:/usr/sbin:/bin:/usr/bin DESC="DSPAM Statistical anti-spam filter" NAME=dspam DAEMON=/usr/bin/$NAME PIDFILE=/var/run/dspam/$NAME.pid SCRIPTNAME=/etc/init.d/$NAME USER=dspam # Exit if the package is not installed [ -x "$DAEMON" ] || exit 0 # Read configuration variable file if it is present [ -r /etc/default/$NAME ] && . /etc/default/$NAME # Load the VERBOSE setting and other rcS variables . /lib/init/vars.sh # Define LSB log_* functions. . /lib/lsb/init-functions # Create directory for PIDFILE, if it does not exist [ -d $(dirname $PIDFILE) ] || mkdir -p -m 755 $(dirname $PIDFILE) # Make sure the directory for PIDFILE is owned by the user which runs dspam chown --quiet $USER $(dirname $PIDFILE) DAEMON_ARGS="--daemon $OPTIONS" # # Function that starts the daemon/service # do_start() { # Return # 0 if daemon has been started # 1 if daemon was already running # 2 if daemon could not be started start-stop-daemon --start --quiet --pidfile $PIDFILE --chuid $USER --exec $DAEMON --test > /dev/null \ || return 1 start-stop-daemon --start --quiet --pidfile $PIDFILE --chuid $USER --exec $DAEMON -- $DAEMON_ARGS < /dev/null > /dev/null 2>&1 \ || return 2 } # # Function that stops the daemon/service # do_stop() { # Return # 0 if daemon has been stopped # 1 if daemon was already stopped # 2 if daemon could not be stopped # other if a failure occurred start-stop-daemon --stop --quiet --retry=TERM/5/KILL/5 --pidfile $PIDFILE --name $NAME RETVAL="$?" [ "$RETVAL" = 2 ] && return 2 rm -f $PIDFILE return "$RETVAL" } # # Function that sends a SIGHUP to the daemon/service # do_reload() { start-stop-daemon --stop --quiet --signal 1 --pidfile $PIDFILE --name $NAME return 0 } case "$1" in start) if [ "$START" != "yes" ]; then [ "$VERBOSE" != no ] && log_daemon_msg "Not starting $DESC -- disabled." exit 0 fi [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME" do_start case "$?" in 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;; 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;; esac ;; stop) [ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME" do_stop case "$?" in 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;; 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;; esac ;; status) status_of_proc "$DAEMON" "$NAME" && exit 0 || exit $? ;; reload|force-reload) log_daemon_msg "Reloading $DESC" "$NAME" do_reload log_end_msg $? ;; restart) if [ "$START" != "yes" ]; then $0 stop exit 0 fi log_daemon_msg "Restarting $DESC" "$NAME" do_stop case "$?" in 0|1) do_start case "$?" in 0) log_end_msg 0 ;; 1) log_end_msg 1 ;; # Old process is still running *) log_end_msg 1 ;; # Failed to start esac ;; *) # Failed to stop log_end_msg 1 ;; esac ;; *) echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload|reload|status}" >&2 exit 3 ;; esac : debian/libdspam7-drv-mysql.postinst0000644000000000000000000000137012252565730014621 0ustar #!/bin/sh set -e # Load debconf . /usr/share/debconf/confmodule # Load dbconfig (mysql part) . /usr/share/dbconfig-common/dpkg/postinst.mysql # Set some variables dbc_generate_include=template:/etc/dspam/dspam.d/mysql.conf dbc_generate_include_args="-U -o template_infile='/usr/share/libdspam7-drv-mysql/mysql.conf'" # Run dbconfig dbc_go libdspam7-drv-mysql $@ case "$1" in configure) if ! dpkg-statoverride --list /etc/dspam/dspam.d/mysql.conf >/dev/null then dpkg-statoverride --update --add dspam dspam 0640 /etc/dspam/dspam.d/mysql.conf fi ;; abort-upgrade|abort-remove|abort-deconfigure) ;; *) echo "postinst called with unknown argument \`$1'" >&2 ;; esac #DEBHELPER# exit 0 debian/manpages/0000755000000000000000000000000012252565730010770 5ustar debian/manpages/dspam_create.30000644000000000000000000000002412252565730013477 0ustar .so man3/libdspam.3 debian/manpages/dspam_getsource.30000644000000000000000000000002412252565730014234 0ustar .so man3/libdspam.3 debian/manpages/dspam_genaliases.10000644000000000000000000000303012252565730014345 0ustar .\" Hey, EMACS: -*- nroff -*- .\" First parameter, NAME, should be all caps .\" Second parameter, SECTION, should be 1-8, maybe w/ subsection .\" other parameters are allowed: see man(7), man(1) .\" Please adjust this date whenever revising the manpage. .\" .\" Some roff macros, for reference: .\" .nh disable hyphenation .\" .hy enable hyphenation .\" .ad l left justify .\" .ad b justify to both left and right margins .\" .nf disable filling .\" .fi enable filling .\" .br insert line break .\" .sp insert n+1 empty lines .\" for manpage-specific macros, see man(7) .TH "dspam_genaliases" "1" "december 6, 2004" "" "" .SH "NAME" dspam_genaliases \- generate mail aliases for Dspam learning module .SH "SYNOPSIS" .B dspam_genaliases Generate a mail alias line for each system user, for Dspam learning module. .SH "DESCRIPTION" .B dspam_genaliases Generated alias lines are to be used for the learning functionnality of dspam. Users have to forward nont\-detected spam to spam\-[username]@yourdomain, and then the spam will be processed by dspam engine, and tokens will be recorded into user's tokens reference. Sample for Postfix: dspam_genaliases > /etc/aliases .br postmap /etc/aliases .br /etc/init.d/postfix reload .SH "OPTIONS" .SH "SEE ALSO" .BR dspam (1) .SH "AUTHOR" dspam_genaliases was written by Jonathan Zdziarski . .PP This manual page was written by Aurelien Labrosse , for the Debian project (but may be used by others). debian/manpages/cssstat.10000644000000000000000000000227612252565730012545 0ustar .\" Hey, EMACS: -*- nroff -*- .\" First parameter, NAME, should be all caps .\" Second parameter, SECTION, should be 1-8, maybe w/ subsection .\" other parameters are allowed: see man(7), man(1) .\" Please adjust this date whenever revising the manpage. .\" .\" Some roff macros, for reference: .\" .nh disable hyphenation .\" .hy enable hyphenation .\" .ad l left justify .\" .ad b justify to both left and right margins .\" .nf disable filling .\" .fi enable filling .\" .br insert line break .\" .sp insert n+1 empty lines .\" for manpage-specific macros, see man(7) .TH "CSSSTAT" "1" "november 4, 2005" "" "" .SH "NAME" cssstat \- Print hash file statistics .SH "SYNOPSIS" .B cssstat [database file] .br .SH "DESCRIPTION" .B cssstat Print statistics for the given hashed database file. .SH "OPTIONS" .TP .B [database file] File that contains tokens database. .SH "SEE ALSO" .BR cssclean (1) .BR csscompress (1) .BR cssconvert (1) .SH "AUTHOR" cssstat was written by Jonathan Zdziarski . .PP This manual page was written by Aurelien Labrosse , for the Debian project (but may be used by others). debian/manpages/dspam_init.30000644000000000000000000000002412252565730013177 0ustar .so man3/libdspam.3 debian/manpages/dspam_process.30000644000000000000000000000002412252565730013712 0ustar .so man3/libdspam.3 debian/manpages/dspam_detach.30000644000000000000000000000002412252565730013464 0ustar .so man3/libdspam.3 debian/manpages/dspam_addattribute.30000644000000000000000000000002412252565730014710 0ustar .so man3/libdspam.3 debian/manpages/dspamc.10000644000000000000000000003067312252565730012332 0ustar .\" $Id: dspam.1,v 1.5 2005/03/15 12:59:08 jonz Exp $ .\" -*- nroff -*- .\" .\" dspam3.2 .\" .\" Authors: Jonathan A. Zdziarski .\" .\" Copyright (c) 2004 Network Dweebs Corporation .\" All rights reserved .\" .\" .TH "DSPAMC" "1" "Sep 29, 2004" "Jonathan A. Zdziarski " "DSPAM" .SH "NAME" dspamc \- DSPAM Anti\-Spam Agent (client) .SH "SYNOPSIS" .na .B dspamc [\c .BI \-\-mode=[teft|toe|tum|notrain|unlearn]\fR\c ] [\c .BI \-\-user\ user1 user2\ ...\ userN\fR\c ] [\c .BI \-\-feature\c =[ch,no,wh,tb=N,sb]\fR\c ] [\c .B \-\-class\c =[spam|innocent]\fR\c ] [\c .B \-\-source\c =[error|corpus|inoculation] \c ] [\c .B \-\-profile\c =[PROFILE] \c ] .B \-\-deliver\c =[spam,innocent] \c ] [\c .B \-\-help \c ] [\c .B \-\-process \c ] [\c .B \-\-classify \c ] [\c .B \-\-signature\c =[signature] \c ] [\c .BI \-\-stdout \c ] [\c .BI \-\-debug \c ] [\c .BI \-\-daemon \c ] [\c .BI \-\-client \c ] [\c .BI \-\-rcpt\-to \c ] [\c .BI \-\-mail\-from \c ] [\c .I \ delivery\_arguments \fR\c ] .ad .SH "DESCRIPTION " .LP .B The DSPAM agent provides a direct interface to mail servers for command\-line spam filtering. The agent can masquerade as the mail server's local delivery agent and will process any email passed to it. The agent will then call whatever delivery agent was specified at compile time or quarantine/tag/drop messages identified as spam. The DSPAM agent can function locally or as a proxy. It is also responsible for processing classification errors so that DSPAM can learn from its mistakes. This version (dspamc) uses a connection to a dspam server rather than re\-create contexts on each execution. .SH "OPTIONS" .LP .ne 3 .TP .BI \-\-user\ user1 \ user2\ ...\ userN\fR\c Specifies the destination users of the incoming message. In most cases this is the local user on the system, however some implementations may call for virtual usernames, specific to DSPAM, to be assigned. The agent processes an incoming message once for each user specified. If the message is to be delivered, the $u (or %u) parameters of the argument string will be interpolated for the current user being processed. .ne 3 .TP .BI \-\-mode= [toe|tum|teft|notrain]\c Configures the training mode to be used for this process, overriding any defaults in dspam.conf: .B teft : Train\-Everything. Trains on all messages processed. This is a very thorough training approach and should be considered the standard training approach for most users. TEFT may, however, prove too volatile on installations with extremely high per\-user traffic, or prove not very scalable on systems with extremely large user\-bases. In the event that TEFT is proving ineffective, one of the other modes is recommended. .B toe : Train\-on\-Error. Trains only on a classification error, once the user's metadata has matured to 2500 innocent messages. This training mode is much less resource intensive, as only occasional metadata writes are necessary. It is also far less volatile than the TEFT mode of training. One drawback, however, is that TOE only learns when DSPAM has made a mistake \- which means the data is sometimes too static, and unable to "ease into" a different type of behavior. .B tum : Train\-until\-Mature. This training mode is a hybrid between the other two training modes and provides a great balance between volatility and static metadata. TuM will train on a per\-token basis only tokens which have had fewer than 25 "hits" on them, unless an error is being retrained in which case all tokens are trained. This training mode provides a solid core of stable tokens to keep accuracy consistent, but also allows for dynamic adaptation to any new types of email behavior a user might be experiencing. .B notrain : No training. Do not train the user's data, and do not keep totals. This should only be used in cases where you want to process mail for a particular user (based on a group, for example), but don't want the user to accumulate any learning data. .B unlearn : Unlearn original training. Use this if you wish to unlearn a previously learned message. Be sure to specify \-\-source=error and \-\-class to whatever the original classification the message was learned under. If not using TrainPristine, this will require the original signature from training. .ne 3 .TP .BI \-\-feature= [chained,noise,tb=N,whitelist] \c Specifies the features that should be activated for this filter instance. The following features may be used individually or combined using a comma as a delimiter: .B chained : Chained Tokens (also known as biGrams). Chained Tokens combines adjacent tokens, presently with a window size of 2, to form token "chains". Chained tokens uses additional storage resources, but greatly improves accuracy. Recommended as a default feature. .B noise : Bayesian Noise Reduction (BNR). Bayesian Noise Reduction kicks in at 2500 innocent messages and provides an advanced progressive noise logic to reduce Bayesian Noise (wordlist attacks) in spams. See http://bnr.nuclearelephant.com for more information. .B tb\=N : Sets the training loop buffering level. Training loop buffering is the amount of statistical sedation performed to water down statistics and avoid false positives during the user's training loop. The training buffer sets the buffer sensitivity, and should be a number between 0 (no buffering whatsoever) to 10 (heavy buffering). The default is 5, half of what previous versions of DSPAM used. To avoid dulling down statistics at all during the training loop, set this to 0. .B whitelist : Automatic whitelisting. DSPAM will keep track of the entire "From:" line for each message received per user, and automatically whitelist messages from senders with more than 20 innocent messages and zero spams. Once the user reports a spam from the sender, automatic whitelisting will automatically be deactivated for that sender. Since DSPAM uses the entire "From:" line, and not just the sender's email address, automatic whitelisting is a very safe approach to improving accuracy especially during initial training. .B sbph : Sparse Binary Polynomial Hashing. Bill Yerazunis' tokenizer method from CRM114. Tokenizer method only \- works with existing combination algorithms. .ne 3 .TP .BI \-\-class= [spam|innocent] \c Identifies the disposition (if any) of the message being presented. This flag should be used when a misclassification has occured, when the user is corpus\-feeding a message, or when an inoculation is being presented. This flag should not be used for standard processing. This flag must be used in conjunction with the \-\-source flag. Omitting this flag causes DSPAM to determine the disposition of the message on its own (the standard operating mode). .ne 3 .TP .BI \-\-source= [error|corpus|inoculation] \c Where .B \-\-class is used, the source of the classification must also be provided. The source tells dspam how to learn the message being presented: .B error : The message being presented was a message previously misclassified by DSPAM. When 'error' is provided as a source, DSPAM requires that the DSPAM signature be present in the message, and will use the signature to recall the original training metadata. If the signature is not present, the message will be rejected. In this source mode, DSPAM will also decrement each token's previous classification's count as well as the user totals. You should use error only when DSPAM has made an error in classifying the message, and should present the modified version of the message with the DSPAM signature when doing so. .B corpus : The message being presented is from a mail corpus, and should be trained as a new message, rather than re\-trained based on a signature. The message's full headers and body will be analyzed and the correct classification will be incremented, without its opposite being decremented. You should use corpus only when feeding messages in from corpus. .B inoculation : The message being presented is in pristine form, and should be trained as an inoculation. Inoculations are a more intense mode of training designed to cause DSPAM to train the user's metadata repeatedly on previoulsy unknown tokens, in an attepmt to vaccinate the user from future messages similar to the one being presented. You should use inoculation only on honeypots and the like. .ne 3 .TP .BI \-\-profile= [PROFILE]\c Specify a storage profile from dspam.conf. The storage profile selected will be used for all database connectivity. See dspam.conf for more information. .ne 3 .TP .BI \-\-deliver= [innocent,spam]\c Tells .B DSPAM to deliver the message if its result falls within the criteria specified. For example, \-\-deliver=innocent will cause DSPAM to only deliver the message if its classification has been determined as innocent. Providing \-\-deliver=innocent,spam will cause DSPAM to deliver the message regardless of its classification. This flag provides a significant amount of flexibility for nonstandard implementations. .ne 3 .TP .B \-\-stdout \c If the message is indeed deemed "deliverable" by the .B \-\-deliver flag, this flag will cause DSPAM to deliver the message to stdout, rather than the configured delivery agent. .ne 3 .TP .B \-\-process \c Tells .B DSPAM to process the message. This is the default behavior, and the flag is implied unless .B \-\-classify is used. .ne 3 .TP .BI \-\-classify\c Tells .B DSPAM to only classify the message, and not perform any writes to the user's data or attempt to deliver/quarantine the message. The results of a classification are printed to stdout in the following format: X\-DSPAM\-Result: User; result="Spam"; probability=1.0000; confidence=0.80 .B NOTE : The output of the classification is specific to a user's own data, and does not include the output of any groups they might be affiliated with, so it is entirely possible that the message would be caught as spam by a group the user belongs to, and appear as innocent in the output of a classification. To get the classification for the .B group , use the group name as the user instead of an individual. .ne 3 .TP .BI \-\-signature =[signature] If only the signature is available for training, and not the entire message, the \-\-signature flag may be used to feed the signature into DSPAM and forego the reading of stdin. DSPAM will process the signature with whatever commandline classification was specified. NOTE: This should only be used with .B \-\-source=error .ne 3 .TP .BI \-\-debug\c If .B DSPAM was compiled with .B \-\-enable\-debug then using \-\-debug will turn on debugging messages to /tmp/dspam.debug. .ne 3 .TP .BI \-\-daemon\c If .B DSPAM was compiled with .B \-\-enable\-daemon then using \-\-daemon will cause DSPAM to enter daemon mode, where it will listen for DSPAM clients to connect and actively service requests. .ne 3 .TP .BI \-\-client\c If .B DSPAM was compiled with .B \-\-enable\-daemon then using \-\-client will cause DSPAM to act as a client and attempt to connect to the DSPAM server specified in the client's configuration within dspam.conf. If client behavior is desired, this option .B must be specified, otherwise the agent simply operate as self\-contained and processes the message on its own, eliminating any benefit of using the daemon. .ne 3 .TP .BI \-\-rcpt\-to\c If .B DSPAM will be configured to deliver via LMTP or SMTP, this flag may be used to define the RCPT TOs which will be used for the delivery of each user specified with \-\-user. If no recipients are provided, the RCPT TOs will match the username. NOTE: The recipient list should always be balanced with the user list, or empty. Specifying an unbalanced number of recipients to users will result in undefined behavior. .ne 3 .TP .BI \-\-mail\-from\c If .B DSPAM will be cofigured to deliver via LMTP or SMTP, this flag will set the MAIL FROM sent on delivery of the message. The default MAIL FROM depends on how the message was originally relayed to DSPAM. If it was relayed via the commandline, an empty MAIL FROM will be used. If it was relayed via LMTP, the original MAIL FROM will be used. .SH "EXIT VALUE" .LP .ne 3 .PD 0 .TP .B 0 Operation was successful. .ne 3 .TP .B other Operation resulted in an error. If the error involved an error in calling the delivery agent, the exit value of the delivery agent will be returned. .PD .SH "AUTHORS" .LP Jonathan A. Zdziarski For more information, see http://dspam.nuclearelephant.com. .SH "SEE ALSO" .BR dspam_stats (1), .BR dspam_corpus (1), .BR dspam_clean (1), .BR dspam_dump (1), .BR dspam_merge (1) debian/manpages/dspam_2sql.10000644000000000000000000000101112252565730013110 0ustar .TH "DSPAM_2SQL" "1" "december 6, 2004" "" "" .SH "NAME" dspam_2sql \- Dump dspam tokens in sql format. dspam_2sql .SH "SYNOPSIS" .B dspam_2sql .br Dump dspam tokens in sql format on stdout. .SH "DESCRIPTION" dspam_2sql Dump dspam tokens in sql format on stdout. .SH "SEE ALSO" .BR dspam (1) .SH "AUTHOR" dspam_2sql was written by Jonathan Zdziarski . .PP This manual page was written by Aurelien Labrosse , for the Debian project (but may be used by others). debian/manpages/dspam_destroy.30000644000000000000000000000002412252565730013725 0ustar .so man3/libdspam.3 debian/manpages/csscompress.10000644000000000000000000000231412252565730013416 0ustar .\" Hey, EMACS: -*- nroff -*- .\" First parameter, NAME, should be all caps .\" Second parameter, SECTION, should be 1-8, maybe w/ subsection .\" other parameters are allowed: see man(7), man(1) .\" Please adjust this date whenever revising the manpage. .\" .\" Some roff macros, for reference: .\" .nh disable hyphenation .\" .hy enable hyphenation .\" .ad l left justify .\" .ad b justify to both left and right margins .\" .nf disable filling .\" .fi enable filling .\" .br insert line break .\" .sp insert n+1 empty lines .\" for manpage-specific macros, see man(7) .TH "CSSCOMPRESS" "1" "november 4, 2005" "" "" .SH "NAME" csscompress \- Compress a hash database's extents .SH "SYNOPSIS" .B csscompress [database file] .br .SH "DESCRIPTION" .B csscompress Compress a hash database's extents .SH "OPTIONS" .TP .B [database file] File that contains the database to compress. .SH "SEE ALSO" .BR cssclean (1) .BR cssstat (1) .BR cssconvert (1) .SH "AUTHOR" csscompress was written by Jonathan Zdziarski . .PP This manual page was written by Aurelien Labrosse , for the Debian project (but may be used by others). debian/manpages/dspam_pg2int8.10000644000000000000000000000243512252565730013535 0ustar .\" Hey, EMACS: -*- nroff -*- .\" First parameter, NAME, should be all caps .\" Second parameter, SECTION, should be 1-8, maybe w/ subsection .\" other parameters are allowed: see man(7), man(1) .\" Please adjust this date whenever revising the manpage. .\" .\" Some roff macros, for reference: .\" .nh disable hyphenation .\" .hy enable hyphenation .\" .ad l left justify .\" .ad b justify to both left and right margins .\" .nf disable filling .\" .fi enable filling .\" .br insert line break .\" .sp insert n+1 empty lines .\" for manpage-specific macros, see man(7) .TH "DSPAM_PG2INT8" "1" "november 4, 2005" "" "" .SH "NAME" dspam_pg2int8 \- Creates SQL file to migrate from NUMERIC to BIGINT type and vice-versa in PostgreSQL .SH "SYNOPSIS" .B dspam_pg2int8 [output filename] .br .SH "DESCRIPTION" .B dspam_pg2int8 Creates SQL file to migrate from NUMERIC to BIGINT type and vice-versa in PostgreSQL .SH "OPTIONS" .TP .B [output filename] File where to store the result of dspam_pg2int8. .SH "SEE ALSO" .BR dspam (1) .SH "AUTHOR" dspam_pg2int8 was written by Jonathan Zdziarski . .PP This manual page was written by Aurelien Labrosse , for the Debian project (but may be used by others). debian/manpages/dspam_notify.10000644000000000000000000000212412252565730013545 0ustar .\" Hey, EMACS: -*- nroff -*- .\" First parameter, NAME, should be all caps .\" Second parameter, SECTION, should be 1-8, maybe w/ subsection .\" other parameters are allowed: see man(7), man(1) .\" Please adjust this date whenever revising the manpage. .\" .\" Some roff macros, for reference: .\" .nh disable hyphenation .\" .hy enable hyphenation .\" .ad l left justify .\" .ad b justify to both left and right margins .\" .nf disable filling .\" .fi enable filling .\" .br insert line break .\" .sp insert n+1 empty lines .\" for manpage-specific macros, see man(7) .TH "DSPAM_NOTIFY" "1" "July 18, 2009" "" "" .SH "NAME" dspam_notify \- send daily spam quarantine summary email .SH "SYNOPSIS" .B dspam_notify .br .SH "DESCRIPTION" .B dspam_notify is used to send daily spam quarantine summary email, depending on the users' preference key dailyQuarantineSummary. .SH "AUTHORS" .LP dspam_notify was written by Kyle Johnson. .PP This manual page was written by Julien Valroff , for the Debian project (but may be used by others). debian/manpages/cssclean.10000644000000000000000000000230512252565730012645 0ustar .\" Hey, EMACS: -*- nroff -*- .\" First parameter, NAME, should be all caps .\" Second parameter, SECTION, should be 1-8, maybe w/ subsection .\" other parameters are allowed: see man(7), man(1) .\" Please adjust this date whenever revising the manpage. .\" .\" Some roff macros, for reference: .\" .nh disable hyphenation .\" .hy enable hyphenation .\" .ad l left justify .\" .ad b justify to both left and right margins .\" .nf disable filling .\" .fi enable filling .\" .br insert line break .\" .sp insert n+1 empty lines .\" for manpage-specific macros, see man(7) .TH "CSSCLEAN" "1" "november 4, 2005" "" "" .SH "NAME" cssclean \- rebuild a hash database, omitting hapaxes .SH "SYNOPSIS" .B cssclean [database file] .br .SH "DESCRIPTION" .B cssclean rebuild a hash database, omitting hapaxes .SH "OPTIONS" .TP .B [database file] File that contains tokens database. .SH "SEE ALSO" .BR csscompress (1) .BR cssstat (1) .BR cssconvert (1) .SH "AUTHOR" cssclean was written by Jonathan Zdziarski . .PP This manual page was written by Aurelien Labrosse , for the Debian project (but may be used by others). debian/manpages/dspam_attach.30000644000000000000000000000002412252565730013500 0ustar .so man3/libdspam.3 debian/manpages/cssconvert.10000644000000000000000000000242212252565730013243 0ustar .\" Hey, EMACS: -*- nroff -*- .\" First parameter, NAME, should be all caps .\" Second parameter, SECTION, should be 1-8, maybe w/ subsection .\" other parameters are allowed: see man(7), man(1) .\" Please adjust this date whenever revising the manpage. .\" .\" Some roff macros, for reference: .\" .nh disable hyphenation .\" .hy enable hyphenation .\" .ad l left justify .\" .ad b justify to both left and right margins .\" .nf disable filling .\" .fi enable filling .\" .br insert line break .\" .sp insert n+1 empty lines .\" for manpage-specific macros, see man(7) .TH "CSSCONVERT" "1" "August 6, 2006" "" "" .SH "NAME" cssconvert \- convert a dspam v3.6.0 hash database to v3.6.1 .SH "SYNOPSIS" .B cssconvert [database file] .br .SH "DESCRIPTION" .B cssconvert Convert a dspam v3.6.0 hash database to v3.6.1 (which includes 8-byte alignment for 64-bit systems) .SH "OPTIONS" .TP .B [database file] File that contains tokens database. .SH "SEE ALSO" .BR csscompress (1) .BR cssstat (1) .BR cssclean (1) .SH "AUTHOR" cssconvert was written by Jonathan Zdziarski . .PP This manual page was written by Daniel Kahn Gillmor , for the Debian project (but may be used by others). debian/dspam.logrotate0000644000000000000000000000040512252565730012222 0ustar # dspam.debug file is only used if dspam is built with # verbose-debug which is not recommended for a production server #/var/log/dspam/dspam.debug /var/log/dspam/dspam.messages /var/log/dspam/sql.errors { monthly missingok notifempty rotate 7 compress } debian/libdspam7-drv-pgsql.docs0000644000000000000000000000002412252565730013642 0ustar doc/pgsql_drv.txt debian/dspam-webfrontend.examples0000644000000000000000000000002412252565730014350 0ustar debian/apache2.conf debian/dspam.dirs0000644000000000000000000000015412252565730011164 0ustar usr/bin var/spool/dspam/data var/spool/dspam/opt-in var/spool/dspam/opt-out etc/dspam/dspam.d var/log/dspam debian/dspam-webfrontend.manpages0000644000000000000000000000003712252565730014331 0ustar debian/manpages/dspam_notify.1 debian/README.source0000644000000000000000000000313312252565730011354 0ustar DFSG clean sources ================== Some parts of the DSPAM tarball shipped in contrib/ do not comply with the Debian Free Software Guidelines [0] and hence have been excluded from the Debian source package. Here are the files excluded: contrib/lotus_notes/ Non DFSG-free license [0] http://www.debian.org/social_contract#guidelines Build options ============= This package honours the following build options which have to be set as DEB_BUILD_OPTIONS, for example, in bash: $ export DEB_BUILD_OPTIONS="disable_virtual_users debug" All these options are disabled by default. a. General options: -------------------- DSPAM supports the build options recommended by Debian Policy §4.9.1: http://www.debian.org/doc/debian-policy/ch-source.html#s-debianrules-options b. Package specific options: ---------------------------- See http://sourceforge.net/apps/mediawiki/dspam/index.php?title=Build_options for detailed explanations of each option. disable_virtual_users package is built without virtual users support disable_preferences_extension package is built without preferences extension support verbose_debug package is built with verbose debug. Never use this on production builds! Note: When verbose debug is compiled in, DSPAM performs many additional mathematical calculations regardless of whether or not it's been activated. You shouldn't use --enable-verbose-debug for production builds unless you have serious issues you can't resolve. disable_clamav package is built without clamav support debian/dspam.install0000644000000000000000000000105712252565730011674 0ustar contrib/dspam_maintenance/dspam_maintenance usr/bin/ etc/dspam usr/bin/cssclean usr/bin/csscompress usr/bin/cssconvert usr/bin/cssstat usr/bin/dspam_2sql usr/bin/dspam_admin usr/bin/dspam_clean usr/bin/dspam_crc usr/bin/dspamc usr/bin/dspam_dump usr/bin/dspam_logrotate usr/bin/dspam_merge usr/bin/dspam_pg2int8 usr/bin/dspam_stats usr/bin/dspam_train usr/bin/dspam src/extlookup.conf etc/dspam/dspam.d/ txt/*.txt etc/dspam/txt/ webui/cgi-bin/default.prefs etc/dspam/ debian/dspam.docs0000644000000000000000000000013712252565730011154 0ustar README doc/cssclean.txt UPGRADING RELEASE.NOTES debian/licenses/AGPL-3 debian/licenses/MPL-1.1 debian/libdspam7-drv-hash.postinst0000644000000000000000000000063112252565730014376 0ustar #!/bin/sh set -e case "$1" in configure) if ! dpkg-statoverride --list /etc/dspam/dspam.d/hash.conf >/dev/null then dpkg-statoverride --update --add dspam dspam 0640 /etc/dspam/dspam.d/hash.conf fi ;; abort-upgrade|abort-remove|abort-deconfigure) ;; *) echo "postinst called with unknown argument \`$1'" >&2 ;; esac #DEBHELPER# exit 0 debian/dspam-webfrontend.postinst0000644000000000000000000000166112252565730014425 0ustar #!/bin/sh set -e case "$1" in configure) for i in /var/www/dspam \ /var/www/dspam/admin.cgi \ /var/www/dspam/admingraph.cgi \ /var/www/dspam/dspam.cgi \ /var/www/dspam/graph.cgi do if ! dpkg-statoverride --list $i >/dev/null then dpkg-statoverride --update --add dspam dspam 0755 $i fi done ucf /usr/share/dspam/configure.pl /etc/dspam/webfrontend.conf ucfr dspam-webfrontend /etc/dspam/webfrontend.conf if ! dpkg-statoverride --list /etc/dspam/webfrontend.conf >/dev/null then dpkg-statoverride --update --add dspam dspam 0644 /etc/dspam/webfrontend.conf fi ;; abort-upgrade|abort-remove|abort-deconfigure) ;; *) echo "postinst called with unknown argument \`$1'" >&2 exit 1 ;; esac #DEBHELPER# exit 0 debian/split-config.sh0000755000000000000000000000116412252565730012134 0ustar #!/bin/sh # Thanks to Stevan Bajić and Milan Straka # for their great help on writing this script CONFIG_FILE="src/dspam.conf.in" for foo in Hash=hash ExtLookup=extlookup SQLite=sqlite MySQL=mysql PostgreSQL=pgsql; do first_line="/^#[\t ]\{1,\}-\{2,3\}[\t ]\{1,\}${foo%=*}[\t ]\{1,\}-\{2,3\}[\t ]*$/" one_line_below="/^#[\t ]\{1,\}-\{2,3\}[\t ]\{1,\}[^-]\{1,\}-\{2,3\}[\t ]*$/" sed -n -e "$first_line,$one_line_below {$one_line_below {$first_line!d}; p}" $CONFIG_FILE > src/${foo#*=}.conf; sed -i -e "$first_line,$one_line_below {$one_line_below {$first_line!p}; d}" $CONFIG_FILE done; debian/libdspam7-drv-pgsql.postrm0000644000000000000000000000164212252565730014245 0ustar #!/bin/sh set -e # Load debconf . /usr/share/debconf/confmodule # Load dbconfig if [ -f /usr/share/dbconfig-common/dpkg/postrm.pgsql ]; then . /usr/share/dbconfig-common/dpkg/postrm.pgsql dbc_go libdspam7-drv-pgsql $@ fi case "$1" in purge) dpkg-statoverride --quiet --remove /etc/dspam/dspam.d/pgsql.conf || true # Remove files registered with ucf (through dbconfig-common). for ext in '~' '%' .bak .dpkg-tmp .dpkg-new .dpkg-old .dpkg-dist .ucf-old .ucf-dist; do rm -f /etc/dspam/dspam.d/pgsql.conf$ext done rm -f /etc/dspam/dspam.d/pgsql.conf if [ -x /usr/bin/ucf ]; then ucf --purge /etc/dspam/dspam.d/pgsql.conf fi ;; remove|upgrade|failed-upgrade|abort-install|abort-upgrade|disappear) ;; *) echo "postrm called with unknown argument \`$1'" >&2 exit 1 ;; esac #DEBHELPER# exit 0 debian/README.Debian0000644000000000000000000000241112252565730011234 0ustar dspam for Debian ================ Configuring dspam under Debian ------------------------------ Example configuration files for dspam.conf and exim4's "router" and "transport" can be found in the dspam-doc package. As your regular user you should be able to use dspam_stats to check the received mail. For training purposes you have to use dspam_corpus [--addspam] Customising the dspam-webfrontend cgi interface ----------------------------------------------- The cgi interface uses the upstream html templates located in /etc/dspam/templates/. In addition, the following files are also installed in /etc/dspam: admins subadmins dspam_notify.conf webfrontend.conf (derived from upstream's configure.pl) rgb.txt These configuration files may be modified by the user as required. Updates to the source files will be handled by debconf as required. An example apache configuration snippet can be found as /usr/share/doc/dspam-webfrontend/examples/dspam.conf Add your admin user to /etc/dspam/admins, and use htpasswd add your users to /etc/dspam/passwd. If the users are also in /etc/passwd, then the passwords should differ. -- Debian DSPAM Maintainers , Tue, 29 Jul 2008 22:29:41 -0400 debian/dspam-doc.docs0000644000000000000000000000011012252565730011706 0ustar doc/*.txt debian/dspam-documents/exim4/ debian/dspam-documents/postfix/ debian/libdspam7-drv-sqlite3.postinst0000644000000000000000000000063412252565730015042 0ustar #!/bin/sh set -e case "$1" in configure) if ! dpkg-statoverride --list /etc/dspam/dspam.d/sqlite.conf >/dev/null then dpkg-statoverride --update --add dspam dspam 0640 /etc/dspam/dspam.d/sqlite.conf fi ;; abort-upgrade|abort-remove|abort-deconfigure) ;; *) echo "postinst called with unknown argument \`$1'" >&2 ;; esac #DEBHELPER# exit 0 debian/dspam.NEWS0000644000000000000000000000127412252565730011003 0ustar dspam (3.10.1+dfsg-2) unstable; urgency=low Multi-arch support was added to the DSPAM Debian packages, causing the locations of the various drivers to be moved from /usr/lib/dspam/ to /usr/lib//dspam/ (where is eg. i386-linux-gnu, amd64-linux-gnu etc.). As a consequence, /etc/dspam/dspam.conf should be edited so that the StorageDriver option matches the new location, as an example: StorageDriver /usr/lib/dspam/libmysql_drv.so should be changed to: StorageDriver /usr/lib/i386-linux-gnu/dspam/libmysql_drv.so if DSPAM is installed on linux-i386. -- Julien Valroff Mon, 15 Aug 2011 14:33:46 +0200 debian/libdspam7-drv-pgsql.prerm0000644000000000000000000000030412252565730014040 0ustar #!/bin/sh set -e # Load debconf . /usr/share/debconf/confmodule # Load dbconfig . /usr/share/dbconfig-common/dpkg/prerm.pgsql # Run dbconfig dbc_go libdspam7-drv-pgsql $@ #DEBHELPER# exit 0 debian/libdspam7.symbols0000644000000000000000000001236212252565730012475 0ustar libdspam.so.7 libdspam7 #MINVER# DO_DEBUG@Base 3.6.8 LOG@Base 3.6.8 LOGDEBUG@Base 3.6.8 __syslog_lock@Base 3.6.8 _bnr_round@Base 3.6.8 _drv_handle@Base 3.6.8 _ds_actualize_message@Base 3.6.8 _ds_add_attribute@Base 3.6.8 _ds_analyze_header@Base 3.6.8 _ds_apply_bnr@Base 3.6.8 _ds_assemble_message@Base 3.6.8 _ds_calc_result@Base 3.6.8 _ds_calc_stat@Base 3.6.8 _ds_compute_complexity@Base 3.6.8 _ds_compute_sparse@Base 3.6.8 _ds_compute_weight@Base 3.6.8 _ds_compute_weight_osb@Base 3.9.0 _ds_connect@Base 3.6.8 _ds_create_header_field@Base 3.6.8 _ds_create_message_part@Base 3.6.8 _ds_create_signature_id@Base 3.6.8 _ds_decode_base64@Base 3.6.8 _ds_decode_block@Base 3.6.8 _ds_decode_headers@Base 3.6.8 _ds_decode_hex8bit@Base 3.9.0 _ds_decode_quoted@Base 3.6.8 _ds_degenerate_message@Base 3.6.8 _ds_del_spamrecord@Base 3.6.8 _ds_delall_spamrecords@Base 3.6.8 _ds_delete_signature@Base 3.6.8 _ds_destroy_block@Base 3.6.8 _ds_destroy_config@Base 3.6.8 _ds_destroy_headers@Base 3.6.8 _ds_destroy_message@Base 3.6.8 _ds_encode_base64@Base 3.6.8 _ds_encode_block@Base 3.6.8 _ds_extract_address@Base 3.6.8 _ds_extract_boundary@Base 3.6.8 _ds_factor@Base 3.6.8 _ds_factor_destroy@Base 3.6.8 _ds_ff_pref_commit@Base 3.6.8 _ds_ff_pref_del@Base 3.6.8 _ds_ff_pref_load@Base 3.6.8 _ds_ff_pref_prepare_file@Base 3.6.8 _ds_ff_pref_set@Base 3.6.8 _ds_find_attribute@Base 3.6.8 _ds_find_header@Base 3.6.8 _ds_free_fcntl_lock@Base 3.6.8 _ds_generate_bitpattern@Base 3.9.0 _ds_get_fcntl_lock@Base 3.6.8 _ds_get_nextsignature@Base 3.6.8 _ds_get_nexttoken@Base 3.6.8 _ds_get_nextuser@Base 3.6.8 _ds_get_signature@Base 3.6.8 _ds_get_spamrecord@Base 3.6.8 _ds_getall_spamrecords@Base 3.6.8 _ds_getcrc64@Base 3.6.8 _ds_gettime@Base 3.6.8 _ds_hex2dec@Base 3.9.0 _ds_increment_tokens@Base 3.6.8 _ds_init_storage@Base 3.6.8 _ds_instantiate_bnr@Base 3.6.8 _ds_map_body_token@Base 3.6.8 _ds_map_header_token@Base 3.6.8 _ds_match_attribute@Base 3.6.8 _ds_match_boundary@Base 3.6.8 _ds_operate@Base 3.6.8 _ds_overwrite_attribute@Base 3.6.8 _ds_pop_boundary@Base 3.6.8 _ds_pow2@Base 3.6.8 _ds_pow@Base 3.9.0 _ds_pref_aggregate@Base 3.6.8 _ds_pref_del@Base 3.6.8 _ds_pref_free@Base 3.6.8 _ds_pref_load@Base 3.6.8 _ds_pref_new@Base 3.6.8 _ds_pref_set@Base 3.6.8 _ds_pref_val@Base 3.6.8 _ds_prepare_path_for@Base 3.6.8 _ds_process_body_token@Base 3.6.8 _ds_process_header_token@Base 3.6.8 _ds_process_signature@Base 3.6.8 _ds_push_boundary@Base 3.6.8 _ds_read_attribute@Base 3.6.8 _ds_round@Base 3.6.8 #MISSING: 3.9.0# _ds_sbph_clear@Base 3.6.8 _ds_set_signature@Base 3.6.8 _ds_set_spamrecord@Base 3.6.8 _ds_setall_spamrecords@Base 3.6.8 _ds_shutdown_storage@Base 3.6.8 _ds_sparse_clear@Base 3.9.0 _ds_strip_html@Base 3.9.0 _ds_tokenize@Base 3.6.8 _ds_tokenize_ngram@Base 3.6.8 #MISSING: 3.9.0# _ds_tokenize_sbph@Base 3.6.8 _ds_tokenize_sparse@Base 3.9.0 _ds_truncate_token@Base 3.6.8 _ds_url_tokenize@Base 3.6.8 _ds_userdir_path@Base 3.6.8 _ds_validate_address@Base 3.9.0 _ds_verify_signature@Base 3.6.8 agent_config@Base 3.6.8 base64decode@Base 3.6.8 base64encode@Base 3.6.8 bnr_add@Base 3.6.8 bnr_destroy@Base 3.6.8 bnr_finalize@Base 3.6.8 bnr_get_pattern@Base 3.6.8 bnr_get_token@Base 3.6.8 bnr_hash_create@Base 3.6.8 bnr_hash_delete@Base 3.6.8 bnr_hash_destroy@Base 3.6.8 bnr_hash_hashcode@Base 3.6.8 bnr_hash_hit@Base 3.6.8 bnr_hash_node_create@Base 3.6.8 bnr_hash_set@Base 3.6.8 bnr_hash_value@Base 3.6.8 bnr_init@Base 3.6.8 bnr_instantiate@Base 3.6.8 bnr_list_create@Base 3.6.8 bnr_list_destroy@Base 3.6.8 bnr_list_insert@Base 3.6.8 bnr_set_pattern@Base 3.6.8 buffer_cat@Base 3.6.8 buffer_clear@Base 3.6.8 buffer_copy@Base 3.6.8 buffer_create@Base 3.6.8 buffer_destroy@Base 3.6.8 buffer_ncat@Base 3.9.0 buffer_ncopy@Base 3.9.0 buffer_ncreate@Base 3.9.0 c_bnr_hash_first@Base 3.6.8 c_bnr_hash_next@Base 3.6.8 c_bnr_list_first@Base 3.6.8 c_bnr_list_next@Base 3.6.8 c_nt_first@Base 3.6.8 c_nt_next@Base 3.6.8 chi2Q@Base 3.6.8 chomp@Base 3.6.8 debug_out@Base 3.6.8 ds_diction_addstat@Base 3.6.8 ds_diction_close@Base 3.6.8 ds_diction_create@Base 3.6.8 ds_diction_cursor@Base 3.6.8 ds_diction_delete@Base 3.6.8 ds_diction_destroy@Base 3.6.8 ds_diction_find@Base 3.6.8 ds_diction_getstat@Base 3.6.8 ds_diction_next@Base 3.6.8 ds_diction_setstat@Base 3.6.8 ds_diction_term_create@Base 3.6.8 ds_diction_touch@Base 3.6.8 ds_heap_create@Base 3.6.8 ds_heap_destroy@Base 3.6.8 ds_heap_element_create@Base 3.6.8 ds_heap_insert@Base 3.6.8 dspam_addattribute@Base 3.6.8 dspam_attach@Base 3.6.8 dspam_clearattributes@Base 3.6.8 dspam_create@Base 3.6.8 dspam_destroy@Base 3.6.8 dspam_detach@Base 3.6.8 dspam_getsource@Base 3.6.8 dspam_init@Base 3.6.8 dspam_init_driver@Base 3.6.8 dspam_process@Base 3.6.8 dspam_shutdown_driver@Base 3.6.8 external_lookup@Base 3.9.0 format_date_r@Base 3.6.8 inet_ntoa_r@Base 3.6.8 lc@Base 3.6.8 ldap_lookup@Base 3.9.0 #MISSING: 3.9.0# ldap_verify@Base 3.6.8 libdspam_init@Base 3.6.8 libdspam_shutdown@Base 3.6.8 ltrim@Base 3.6.8 nt_add@Base 3.6.8 nt_create@Base 3.6.8 nt_destroy@Base 3.6.8 nt_node_create@Base 3.6.8 program_lookup@Base 3.9.0 rtrim@Base 3.6.8 sig_alrm@Base 3.9.0 strlcat@Base 3.6.8 strlcpy@Base 3.6.8 timeout@Base 3.9.0 transcode_query@Base 3.9.0 verified_user@Base 3.9.0 debian/libdspam7-drv-mysql.docs0000644000000000000000000000002412252565730013661 0ustar doc/mysql_drv.txt debian/libdspam7-drv-hash.install.in0000644000000000000000000000016612252565730014571 0ustar usr/lib/@DEB_HOST_MULTIARCH@/dspam/libhash_drv.so* src/hash.conf etc/dspam/dspam.d/ debian/libdspam7.postinst0000644000000000000000000000120412252565730012661 0ustar #!/bin/sh set -e case "$1" in configure) if [ -z "`getent group dspam`" ]; then addgroup --quiet --system dspam adduser --quiet --system --ingroup dspam --home /var/spool/dspam \ --no-create-home --disabled-password \ --gecos 'DSPAM' dspam else # Unlock account in case it was locked from previous purge. usermod -U -e '' dspam > /dev/null || true fi ;; abort-upgrade|abort-remove|abort-deconfigure) ;; *) echo "postinst called with unknown argument \`$1'" >&2 exit 1 ;; esac #DEBHELPER# exit 0 debian/libdspam7-drv-mysql.postrm0000644000000000000000000000163212252565730014263 0ustar #!/bin/sh set -e # Load debconf . /usr/share/debconf/confmodule # Load dbconfig if [ -f /usr/share/dbconfig-common/dpkg/postrm.mysql ]; then . /usr/share/dbconfig-common/dpkg/postrm.mysql dbc_go libdspam7-drv-mysql $@ fi case "$1" in purge) dpkg-statoverride --quiet --remove /etc/dspam/dspam.d/mysql.conf || true # Remove files registered with ucf (through dbconfig-common). for ext in '~' '%' .bak .dpkg-tmp .dpkg-new .dpkg-old .dpkg-dist .ucf-old .ucf-dist; do rm -f /etc/dspam/dspam.d/mysql.conf$ext done rm -f /etc/dspam/dspam.d/mysql.conf if [ -x /usr/bin/ucf ]; then ucf --purge /etc/dspam/dspam.d/mysql.conf fi ;; remove|upgrade|failed-upgrade|abort-install|abort-upgrade|disappear) ;; *) echo "postrm called with unknown argument \`$1'" >&2 exit 1 ;; esac #DEBHELPER# exit 0 debian/libdspam7-dev.dirs0000644000000000000000000000002212252565730012510 0ustar usr/include/dspam debian/compat0000644000000000000000000000000212252565730010373 0ustar 9 debian/dspam.manpages0000644000000000000000000000062212252565730012016 0ustar debian/manpages/dspam_2sql.1 debian/manpages/dspamc.1 debian/manpages/cssclean.1 debian/manpages/csscompress.1 debian/manpages/cssconvert.1 debian/manpages/cssstat.1 debian/manpages/dspam_pg2int8.1 man/dspam.1 man/dspam_admin.1 man/dspam_clean.1 man/dspam_crc.1 man/dspam_dump.1 man/dspam_logrotate.1 man/dspam_merge.1 man/dspam_stats.1 man/dspam_train.1 contrib/dspam_maintenance/dspam_maintenance.1 debian/dspam-webfrontend.dirs0000644000000000000000000000017512252565730013502 0ustar etc/dspam/templates/ etc/dspam/templates/fr/ etc/dspam/templates/he/ etc/dspam/templates/ro/ usr/share/dspam/ var/www/dspam/ debian/dspam.examples0000644000000000000000000000007012252565730012036 0ustar contrib/dspam_alias_retraining/dspam-retrain-forward.pl debian/copyright0000644000000000000000000001172612252565730011137 0ustar Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ Upstream-Name: DSPAM Source: http://dspam.sourceforge.net Comment: Some parts of the DSPAM tarball shipped in contrib/ do not comply with the Debian Free Software Guidelines and hence have been excluded from the Debian source package: * contrib/lotus_notes/ - Non DFSG-free license Files: * Copyright: 2002-2011, DSPAM Project License: AGPL-3+ Files: src/util.c Copyright: 2002-2011, DSPAM Project 1983, 1993, The Regents of the University of California License: AGPL-3+ and BSD-4-clause Comment: inet_ntoa_r() is under BSD-4-clause license, the rest of the code is under AGPL-3+ license Files: src/external_loopkup.* Copyright: 2006 Hugo Monteiro License: GPL-2 Files: contrib/dspam_maintenance/* Copyright: 2007-2010, Stevan Bajic License: AGPL-3+ Files: contrib/plugins/* Copyright: Hugo Monteiro License: MPL The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ . Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. . The complete text of the Mozilla Public License 1.1 can be found in the file `/usr/share/doc/dspam/MPL-1.1.gz'. Files: debian/* Copyright: 2005-2010, Debian DSPAM Maintainers License: GPL-2 Files: debian/manpages/dspamc.1 Copyright: 2004, Network Dweebs Corporation License: GPL-2 License: AGPL-3+ This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. . This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. You should have received a copy of the GNU Affero General Public License along with this program. If not, see . . The complete text of the GNU Affero General Public License can be found in the file `/usr/share/doc/dspam/AGPL-3.gz'. License: BSD-4-clause Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. All advertising materials mentioning features or use of this software must display the following acknowledgement: This product includes software developed by the University of California, Berkeley and its contributors. 4. Neither the name of the University nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. . THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. License: GPL-2 This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation version 2 of the License. . This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. . You should have received a copy of the GNU General Public License along with this package; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA . On Debian systems, the full text of the GNU General Public License version 2 can be found in the file `/usr/share/common-licenses/GPL-2'. debian/libdspam7.postrm0000644000000000000000000000023312252565730012323 0ustar #!/bin/sh set -e # Locks dspam system account on purge if [ "$1" = "purge" ] ; then usermod -L -e 1 dspam > /dev/null || true fi #DEBHELPER# exit 0 debian/libdspam7-drv-pgsql.config0000644000000000000000000000063512252565730014167 0ustar #!/bin/sh # # Configure PostgreSQL database. set -e # Load debconf . /usr/share/debconf/confmodule # The questions that are asked are pretty important. export DEBIAN_PRIORITY=low dbc_dbuser="dspam" dbc_dbname="dspam" if [ -f /usr/share/dbconfig-common/dpkg/config.pgsql ]; then # Load dbconfig . /usr/share/dbconfig-common/dpkg/config.pgsql # Run dbconfig dbc_go libdspam7-drv-pgsql $@ fi exit 0 debian/libdspam7-drv-mysql.dirs0000644000000000000000000000015312252565730013675 0ustar etc/dspam/dspam.d usr/share/libdspam7-drv-mysql usr/share/dbconfig-common/data/libdspam7-drv-mysql/install debian/control0000644000000000000000000001702312252565730010603 0ustar Source: dspam Section: mail Priority: optional Maintainer: Debian DSPAM Maintainers Uploaders: Julien Valroff , Thomas Preud'homme Build-Depends: debhelper (>= 9.0.0), dh-autoreconf, libtool, automake, zlib1g-dev, libmysqlclient-dev, libpq-dev, libsqlite3-dev, libldap2-dev Standards-Version: 3.9.5 Homepage: http://dspam.sourceforge.net Vcs-Git: git://anonscm.debian.org/pkg-dspam/dspam.git Vcs-Browser: http://anonscm.debian.org/gitweb/?p=pkg-dspam/dspam.git;a=summary Package: dspam Architecture: any Depends: ${misc:Depends}, ${shlibs:Depends}, ${perl:Depends}, lsb-base (>= 3.0-6), libdspam7-drv-hash (= ${binary:Version}) | libdspam7-drv-mysql (= ${binary:Version}) | libdspam7-drv-pgsql (= ${binary:Version}) | libdspam7-drv-sqlite3 (= ${binary:Version}) Recommends: procmail | maildrop | courier-maildrop | sensible-mda, dspam-doc Suggests: clamav-daemon, dspam-webfrontend Description: Scalable, fast and statistical anti-spam filter DSPAM is a dedicated statistical filter with minimal resources. It includes many new algorithms to fight against spam including: * Concept Identification * Message Inoculation * Advanced de-obfuscation techniques * Bayesian Noise Reduction . This package includes the DSPAM agent which provides. Package: dspam-webfrontend Priority: extra Architecture: all Pre-Depends: ${misc:Pre-Depends} Depends: ${misc:Depends}, ${perl:Depends}, dspam (>= ${source:Version}), ucf (>= 0.28), libgd-gd2-perl | libgd-gd2-noxpm-perl, libgd-graph3d-perl, libhtml-parser-perl Suggests: apache2, apache2-suexec (>= 2.2.9-3), libapache2-mod-perl2, libapache2-mod-auth-pam | libapache2-mod-auth-mysql | libapache2-mod-auth-pgsql | libapache2-mod-auth-openid | libapache2-mod-auth-kerb | libapache2-mod-auth-plain | libapache2-mod-auth-radius | libapache2-mod-auth-sys-group, ttf-dejavu-core | ttf-bitstream-vera | ttf-freefont Description: Webfrontend for DSPAM anti-spam filter DSPAM is a dedicated statistical filter with minimal resources. It includes many new algorithms to fight against spam including: * Concept Identification * Message Inoculation * Advanced de-obfuscation techniques * Bayesian Noise Reduction . This package includes the webfrontend for DSPAM. This can be used together with several database backends including PostgreSQL, MySQL, and sqlite3. Package: libdspam7 Section: libs Architecture: any Pre-Depends: ${misc:Pre-Depends} Depends: ${misc:Depends}, ${shlibs:Depends}, adduser Suggests: libdspam7-drv-hash (= ${binary:Version}) | libdspam7-drv-pgsql (= ${binary:Version}) | libdspam7-drv-mysql (= ${binary:Version}) | libdspam7-drv-sqlite3 (= ${binary:Version}) Description: Core message processing and classification functionality for DSPAM DSPAM is a dedicated statistical filter with minimal resources. It includes many new algorithms to fight against spam including: * Concept Identification * Message Inoculation * Advanced de-obfuscation techniques * Bayesian Noise Reduction . This package contains the library where people can link to. Package: libdspam7-dev Section: libdevel Architecture: any Pre-Depends: ${misc:Pre-Depends} Depends: ${misc:Depends}, libdspam7 (= ${binary:Version}) Description: Development headers for libdspam DSPAM is a dedicated statistical filter with minimal resources. It includes many new algorithms to fight against spam including: * Concept Identification * Message Inoculation * Advanced de-obfuscation techniques * Bayesian Noise Reduction . This package contains the development headers for libdspam. Package: libdspam7-drv-hash Architecture: any Pre-Depends: ${misc:Pre-Depends} Depends: ${misc:Depends}, ${shlibs:Depends}, libdspam7 (= ${binary:Version}) Description: Hash backend for DSPAM anti-spam filter DSPAM is a dedicated statistical filter with minimal resources. It includes many new algorithms to fight against spam including: * Concept Identification * Message Inoculation * Advanced de-obfuscation techniques * Bayesian Noise Reduction . This package contains the hash backend. Package: libdspam7-drv-pgsql Architecture: any Pre-Depends: ${misc:Pre-Depends} Depends: ${misc:Depends}, ${shlibs:Depends}, libdspam7 (= ${binary:Version}), dbconfig-common, ucf (>= 0.28), postgresql-client Recommends: postgresql Description: PostgreSQL backend for DSPAM anti-spam filter DSPAM is a dedicated statistical filter with minimal resources. It includes many new algorithms to fight against spam including: * Concept Identification * Message Inoculation * Advanced de-obfuscation techniques * Bayesian Noise Reduction . This package contains the PostgreSQL backend. Package: libdspam7-drv-mysql Architecture: any Pre-Depends: ${misc:Pre-Depends} Depends: ${misc:Depends}, ${shlibs:Depends}, libdspam7 (= ${binary:Version}), dbconfig-common, ucf (>= 0.28), mysql-client Recommends: mysql-server Description: MySQL backend for DSPAM anti-spam filter DSPAM is a dedicated statistical filter with minimal resources. It includes many new algorithms to fight against spam including: * Concept Identification * Message Inoculation * Advanced de-obfuscation techniques * Bayesian Noise Reduction . This package contains the MySQL backend. Package: libdspam7-drv-sqlite3 Architecture: any Pre-Depends: ${misc:Pre-Depends} Depends: ${misc:Depends}, ${shlibs:Depends}, sqlite3, libdspam7 (= ${binary:Version}) Description: sqlite3 backend for DSPAM anti-spam filter DSPAM is a dedicated statistical filter with minimal resources. It includes many new algorithms to fight against spam including: * Concept Identification * Message Inoculation * Advanced de-obfuscation techniques * Bayesian Noise Reduction . This package contains the sqlite3 backend. Package: dspam-doc Section: doc Architecture: all Depends: ${misc:Depends} Description: Documentation for DSPAM anti-spam filter DSPAM is a dedicated statistical filter with minimal resources. It includes many new algorithms to fight against spam including: * Concept Identification * Message Inoculation * Advanced de-obfuscation techniques * Bayesian Noise Reduction . This package contains the documentation for DSPAM. Package: dspam-dbg Section: debug Architecture: any Depends: ${misc:Depends}, dspam (= ${binary:Version}) Priority: extra Description: debugging symbols for dspam DSPAM is a dedicated statistical filter with minimal resources. It includes many new algorithms to fight against spam including: * Concept Identification * Message Inoculation * Advanced de-obfuscation techniques * Bayesian Noise Reduction . This package includes the debugging symbols for the dspam package. Package: libdspam7-dbg Section: debug Architecture: any Depends: ${misc:Depends}, libdspam7 (= ${binary:Version}) Recommends: libdspam7-drv-hash (= ${binary:Version}), libdspam7-drv-mysql (= ${binary:Version}), libdspam7-drv-pgsql (= ${binary:Version}), libdspam7-drv-sqlite3 (= ${binary:Version}) Suggests: libc-dbg Priority: extra Description: debugging symbols for DSPAM related libraries DSPAM is a dedicated statistical filter with minimal resources. It includes many new algorithms to fight against spam including: * Concept Identification * Message Inoculation * Advanced de-obfuscation techniques * Bayesian Noise Reduction . This package includes the debugging symbols for DSPAM related libraries. debian/changelog0000644000000000000000000007332212252565730011056 0ustar dspam (3.10.2+dfsg-13) unstable; urgency=medium * debian/patches: + drop patch to introduce escape string constants. Although escaped, the only escape sequence contained in strings are made to be interpreted (Closes: #731093). * Bump Standards-Version to 3.9.5 (no changes needed). -- Thomas Preud'homme Fri, 13 Dec 2013 19:11:00 +0800 dspam (3.10.2+dfsg-12) unstable; urgency=low * Close stdin, stdout and stderr when launching dspam daemon in dspam init script as dspam fails to do so (Closes: #726713). * Remove /var/log/dspam and /var/spool/dspam on purge (Closes: 729787). * debian/patches: + Enhance cssclean to fix corrupted css file (Closes: #722485). + Properly escape string constants in PostgreSQL driver (Closes: #719663). + drop patch to require legacy mode for string escaping in PostgreSQL. -- Thomas Preud'homme Tue, 26 Nov 2013 22:28:14 +0800 dspam (3.10.2+dfsg-11) unstable; urgency=low * debian/patches: + Remove patch improving handling of malformed css file as it creates more problems than it solves in its current form. -- Thomas Preud'homme Tue, 15 Oct 2013 04:59:39 +0200 dspam (3.10.2+dfsg-10) unstable; urgency=low * debian/patches: + Improve handling of malformed css file (Closes: #722484). -- Thomas Preud'homme Wed, 25 Sep 2013 13:25:02 +0200 dspam (3.10.2+dfsg-9) unstable; urgency=low * Add patch 011_define_WCONTINUED_and_WIFCONTINUED_if_not_defined.diff to fix Hurd FTBFS. * Add patch 012_cssclean_dont_read_past_end_of_css_files.diff to prevent segfault of cssclean in case of malformed css file (Closes: #722057). * Fix metadata of patch 009_fix_recipient_corruption_when_releasing_message_from_quarantine.diff * Update Vcs-* field to use the current canonical URI. -- Thomas Preud'homme Tue, 10 Sep 2013 15:19:26 +0200 dspam (3.10.2+dfsg-8) unstable; urgency=low * Remove obsolete DM-Upload-Allowed flag. * debian/control: + Use real packages for the versionned Suggest dependency instead of virtual package libdspam7-drv. + Remove useless libdspam7-drv virtual package. + Wrap lines to 80 characters. * Drop elements for upgrade from pre-wheezy systems. * Create plpgsql only if it is not loaded yet (Closes: #702764). * Explicitly require legacy mode for string escaping in PostgreSQL since it now defaults to standard compliant mode (Closes: #694942). -- Thomas Preud'homme Wed, 29 May 2013 15:58:22 +0200 dspam (3.10.1+dfsg-11) testing-proposed-updates; urgency=low * Create plpgsql only if it is not loaded yet (Closes: #702764). -- Thomas Preud'homme Thu, 07 Mar 2013 10:25:49 +0100 dspam (3.10.1+dfsg-10) testing-proposed-updates; urgency=low * Explicitly require legacy mode for string escaping in PostgreSQL since it now defaults to standard compliant mode (Closes: #694942). * Fix error when creating database in PostgreSQL by creating plpgsql as extension instead of language. -- Thomas Preud'homme Mon, 04 Mar 2013 13:56:45 +0100 dspam (3.10.1+dfsg-9) testing-proposed-updates; urgency=low * Add a new version of the patch fixing recipient corruption when releasing a message from quarantine (Closes: #698136). -- Thomas Preud'homme Thu, 28 Feb 2013 21:33:50 +0100 dspam (3.10.2+dfsg-7) unstable; urgency=low * Add a new version of the patch fixing recipient corruption when releasing a message from quarantine (Closes: #698136). -- Thomas Preud'homme Fri, 22 Feb 2013 11:28:17 +0100 dspam (3.10.2+dfsg-6) unstable; urgency=low * Drop patch fixing recipient corruption when releasing a message from quarantine as it's not clear whether it is safe from buffer overflow. -- Thomas Preud'homme Mon, 11 Feb 2013 14:39:32 +0100 dspam (3.10.1+dfsg-8) testing-proposed-updates; urgency=low * Stop shipping ucf template as a conffile: this avoid unnecessary prompt when upgrading if configuration files have not been modified by the user (Closes: #698580). -- Thomas Preud'homme Mon, 21 Jan 2013 22:25:00 +0100 dspam (3.10.2+dfsg-5) unstable; urgency=low * Stop shipping ucf template as a conffile: this avoid unnecessary prompt when upgrading if configuration files have not been modified by the user (Closes: #698580). -- Thomas Preud'homme Mon, 21 Jan 2013 22:25:00 +0100 dspam (3.10.1+dfsg-7) testing-proposed-updates; urgency=low * Disable multi-arch since it create many problems with regards to the handling of shared resources when a package is installed for several architectures (Closes: #695275). -- Thomas Preud'homme Tue, 08 Jan 2013 11:37:35 +0100 dspam (3.10.2+dfsg-4) unstable; urgency=low * Disable multi-arch since it create many problems with regards to the handling of shared resources when a package is installed for several architectures (Closes: #695275). * Enhance 008_fix_exim_integration_doc.diff to state more explicitly in CHANGELOG which changes are backports for Debian of upstream commits. * Cherry-pick patch from upstream to fix recipient corruption when releasing a message from quarantine (Closes: #698136). * Bump Standards-Version to 3.9.4 (no changes needed). -- Thomas Preud'homme Tue, 08 Jan 2013 18:50:26 +0100 dspam (3.10.2+dfsg-3) unstable; urgency=low * Only lock dspam user account when the last libdspam7 package is purged (Thanks Jakub Wilk for the review, Closes: #695275). * debian/changelog: + Add entry for upload of version 3.10.1+dfsg-5 and 3.10.1+dfsg-6 to testing. * debian/control: + Update my maintainer email address. -- Thomas Preud'homme Thu, 20 Dec 2012 06:56:43 +0100 dspam (3.10.1+dfsg-6) testing-proposed-updates; urgency=low * Do not lock dspam user account on purge since the package could be still installed for other architectures via multi-arch (Closes: #695275). -- Thomas Preud'homme Thu, 20 Dec 2012 06:27:12 +0100 dspam (3.10.2+dfsg-2) unstable; urgency=low [ Thomas Preud'homme ] * Team upload. * Cherry-pick patch from upstream to recommend using -oi when using dspam with exim (Closes: #644392). [ Paul Tagliamonte ] * Although this changelog is signed by Tom, this upload has been signed by me. Tom prepared this upload, but is remote (and without his GPG key), so these changes have been reviewed and uploaded by me. -- Thomas Preud'homme Mon, 13 Aug 2012 16:13:05 +0800 dspam (3.10.1+dfsg-5) testing-proposed-updates; urgency=low [ Thomas Preud'homme ] * Team upload. * Upload via testing-proposed-updates as unstable contains a new upstream version. * Cherry-pick patch from upstream to recommend using -oi when using dspam with exim (Closes: #644392). * Remove multiarch support for libdspam7-dev as it contains an header with arch-specific contents (Closes: #669993). [ Paul Tagliamonte ] * Although this changelog is signed by Tom, this upload has been signed by me. Tom prepared this upload, but is remote (and without his GPG key), so these changes have been reviewed and uploaded by me. -- Thomas Preud'homme Mon, 13 Aug 2012 15:20:48 +0800 dspam (3.10.2+dfsg-1) unstable; urgency=low [ Julien Valroff ] * New upstream release * Add gbp.conf to allow filtering out non DFSG-clean files when using git-import-orig to merge new upstream releases * Use definitive DEP-5 copyright format uri * Add dspam_alias_retraining script to dspam package as example * Refresh and update patches * Use maintscript support in dh_installdeb rather than writing out dpkg-maintscript-helper commands by hand. We now simply Pre-Depend on a new enough version of dpkg rather than using 'dpkg-maintscript-helper supports' guards, leading to more predictable behaviour on upgrades. Thanks to Colin Watson (Closes: #659717) * Add Thomas Preud'homme as uploader * Set DM-Upload-Allowed: yes [ Thomas Preud'homme ] * Remove multiarch support for libdspam7-dev as it contains an header with arch-specific contents (Closes: #669993). * Build-depend on debhelper (>= 9.0.0) to match compatibility. * Bump Standards-Version to 3.9.3 (no changes needed). * Fix quarantine mails deletion in web frontend for spanish users (Closes: #673833). -- Thomas Preud'homme Sun, 22 Apr 2012 17:46:10 +0200 dspam (3.10.1+dfsg-4) unstable; urgency=low * Apply patch from upstream to use POSIX::ctime() instead of deprecated ctime.pl (Closes: #658950) -- Julien Valroff Fri, 10 Feb 2012 21:55:13 +0100 dspam (3.10.1+dfsg-3) unstable; urgency=low * Fix Apache configuration example (Closes: #638289) * Add again ucf calls in libdspam7-drv-{mysql,pgsql}.postinst scripts: they are actually needed to clean files registered through dbconfig-common -- Julien Valroff Sun, 21 Aug 2011 21:53:32 +0200 dspam (3.10.1+dfsg-2) unstable; urgency=low * Let libdspam7-dbg suggest libc-debug * Add dspam.NEWS file to state that dspam.conf should be updated following to the change of location of the various backend shared objects due to multi-arch support * Let dh_installdocs automatically install debian/TODO as TODO.Debian -- Julien Valroff Mon, 15 Aug 2011 14:59:35 +0200 dspam (3.10.1+dfsg-1) unstable; urgency=low [ Julien Valroff ] * New upstream release: + Update copyright information following to upstream license switch from GPL-2 to AGPL-3+ + Drop patches merged upstream * Ensures system user is actually locked on purge, and unlocked in case the package is reinstalled * Demote various MDA's from Depends to Recommends * Add multiarch support: + Move the hash driver to as dedicated package + Clean .install files + Split debugging symbols into independent debug packages + Move dspam_pg2int8 to dspam (which introduces a new dependency on libpq5) * Remove useless 001_drivers-in-usr_lib_dspam patch * Remove useless calls to ucf in libdspam7-drv-{mysql,pgsql}.postinst scripts [ Thomas Preud'homme ] * Set build flags (CPPFLAGS, CFLAGS and LDFLAGS) using dpkg-buildflags. -- Julien Valroff Sat, 13 Aug 2011 08:12:05 +0200 dspam (3.9.1~rc1+git20110514.347379b+dfsg-1) unstable; urgency=low * New git snapshot * Fix typo in libdspam7-drv-pgsql short description (Closes: #626608) * Ensure old conffiles are correctly removed on upgrade (Closes: #626286) -- Julien Valroff Sat, 14 May 2011 08:57:43 +0200 dspam (3.9.1~rc1+git20110419.29261fb+dfsg-2) unstable; urgency=low * Fix typos in dspam postinst script which caused the package to be uninstallable -- Julien Valroff Sun, 08 May 2011 15:44:26 +0200 dspam (3.9.1~rc1+git20110419.29261fb+dfsg-1) unstable; urgency=low [ Julien Valroff ] * New git snapshot * Install all dspam_* tools setgid so that they can be used by standard users * Add symbols file for libdspam7 * Upload to unstable [ Thomas Preud'homme ] * Fix permissions on dspam_stats and missing opt-{in,out} directories (Closes: #394443) -- Julien Valroff Sun, 08 May 2011 13:43:52 +0200 dspam (3.9.1~rc1+git20110312.9a9050f+dfsg-2) experimental; urgency=low * Add the complete MPL-1.1 text to the dspam package * Update to new policy 3.9.2 (no changes needed) * Locks dspam system account on purge -- Julien Valroff Sun, 10 Apr 2011 13:36:00 +0200 dspam (3.9.1~rc1+git20110312.9a9050f+dfsg-1) experimental; urgency=low [ Kurt B. Kaiser ] * debian/rules: don't use --build config option if host equals target. * debian/rules: dpkg-dev now handles CFLAGS. * Use maintainer-clean in clean target and remove any Makefile.in left over. * Remove libapache2-mod-auth-shadow - no longer available in unstable * Suggest clamav-daemon instead of recommending it. * Suggest dspam-webfrontend. * Add amavis to trusted users (Closes: #477508) * Use dh_lintian to install the webfrontend conffile override * Webfrontend improvements: - Delete the old, obsolete apache.conf file from the package, and purge it when dspam-webfrontend is purged if it is present in /etc/dspam/. - Move the html templates to /etc/dspam/templates/ - Install the apache conf fragment as an example in dspam-webfrontend - Modify apache2.conf to install a working example website. Use /etc/dspam/passwd, which doesn't need access to /etc/shadow. (Closes: #430589) - Clean up customize-cgi.txt and add it to README.Debian. [ Julien Valroff ] * New upstream release (Closes: #418736, #491387, #505010, #514498, #577661, #445890, #383964, #430840, #568068) * Bump Standards to 3.9.1: - Add README.source, as per Debian Policy Manual 4.14 * Bump debhelper compatibility to 8 * Update/remove patches for new release * Add misc depends to all binary packages * Rewrite package descriptions * Use dh_prep instead of dh_clean -k * Drop obsolete db4 driver (Closes: #601209) * Update copyright information * Add Vcs-* and Homepage fields in control file * Remove useless DMUA field * Add TODO.Debian file to describe planned changes to DSPAM Debian packages * Fix watch file to track upstream releases on new hosting location * Remove /var/run/dspam from dspam.dirs to make lintian happy - the init script makes sure the directory is created before starting dspam * Install examples scripts using dh_installexamples * Update SQL schemas and make sure the databases are updated when upgrading from 3.6.8 using dbconfig-common * Set default database name and user name to dspam for both MySQL and PgSQL * Make dspam-webfrontend suggest apache2 * Remove inactive & MIA uploaders (Closes: #503488) * Add myself as uploader * Add depends on other MDAs than procmail (Closes: #506312) * Honour $USER in call to chmod (Closes: #505217) * Fix MySQL daily cronjob to work correctly when using storage profiles * Make MySQL daily cronjob quiet * Fix build-dependencies to use current automake version and use unversionned libmysqclient-dev * Drop runtime dependencies on debconf - unneeded as this package is "required" * Purge ucf database and ucf config files on package purge * Remove unused lintian overrides * Add description to all patches * Rewrite init script based on the current skeleton shipped in the initscripts package * Add numerical prefixes to Debian patches * Fix verbose_bug build option * Add logrotate entry for dspam.messages and sql.errors * Add 'notifempty' option for logrotate * Fix 'hyphen-used-as-minus-sign' lintian information: escape all -- in manpages * Update dspam_admin manpage to list aggregate feature * Makes drv-sqlite3 daily cronjob quiet if package is removed and not purged - thanks to Petter Reinholdtsen (Closes: #540064, #562857) * Converted source package to 3.0 (quilt) format * Add dependency to libhtml-parser-perl for the webfrontend * Opt Out is now the default condfiguration, as per upstream default * Default daemon port is set to 2424 as dspam daemon is run by an unprivileged user (Closes: #385760) * Add explicit dependency on perl * Fix typo in README.source * Fix daily cron scripts to avoid problems if the user has added two identical entries for certain values (thanks to Stevan Bajić ) * Add automatic configuration file splitting snippet in rules (thanks to Stevan Bajić ) * Make use of dspam_maintenance.sh script instead of homemade purge scripts * Only ships SQL files for MySQL >= 4.1 as no older version is available in Debian * Add dspam_notify script in dspam-webfrontend to send automatic quarantine email notification * Add debug package which ships debugging symbols * Switch to dh style rules file * Repack upstream tarball to make DFSG clean sources and add explanations to README.source file -- Julien Valroff Mon, 28 Mar 2011 15:04:10 +0200 dspam (3.6.8-9.3) unstable; urgency=low * Non-maintainer upload to fix release goal. * Correct init.d script provide and dependency information (Closes: #541982). -- Petter Reinholdtsen Sun, 04 Oct 2009 13:04:21 +0200 dspam (3.6.8-9.2) unstable; urgency=low * NMU * Switch build dependency to libdb-dev (>= 4.7). closes: #517279. -- Clint Adams Fri, 25 Sep 2009 23:41:22 -0400 dspam (3.6.8-9.1) unstable; urgency=low * Non-maintainer upload. * Fix FTBFS by changing autotool definition for sqlite3. Closes: #522645 -- Andreas Barth Sat, 29 Aug 2009 12:33:05 +0200 dspam (3.6.8-9) unstable; urgency=low [ Kurt B. Kaiser ] * (This is a maintenance release for lenny from pkg-dspam/branches/lenny) * Add apache2-suexec (>= 2.2.9-3) as webfrontend Suggests: (Closes: #488924). * Acknowledge NMU. Thanks Peter Eisentraut (Closes: #473027, #480602). * Fix a regression in #455052, #469668: force removal of the /usr/share/dspam directory with dspam-webfrontend.preinst for versions prior to 3.6.8-9. * Fix regression from #388140: remote mySQL server fails (Closes: #481755) * /etc/init.d/dspam ignored $USER (LP: #232543)(Closes: #483868) * cron shouldn't try to clean mysql db if dspam was removed (Closes: 484889) -- Debian DSPAM Maintainers Thu, 11 Sep 2008 17:45:18 -0400 dspam (3.6.8-9) unstable; urgency=low [ Kurt B. Kaiser ] * (This is a maintenance release for lenny from pkg-dspam/branches/lenny) * Add apache2-suexec (>= 2.2.9-3) as webfrontend Suggests: (Closes: #488924). * Acknowledge NMU. Thanks Peter Eisentraut (Closes: #473027, #480602). * Fix a regression in #455052, #469668: force removal of the /usr/share/dspam directory with dspam-webfrontend.preinst for versions prior to 3.6.8-9. * Fix regression from #388140: remote mySQL server fails (Closes: #481755) * /etc/init.d/dspam ignored $USER (LP: #232543)(Closes: #483868) * cron shouldn't try to clean mysql db if dspam was removed (Closes: 484889) -- Debian DSPAM Maintainers Thu, 11 Sep 2008 17:45:18 -0400 dspam (3.6.8-8.1) unstable; urgency=low * Non-maintainer upload. * Fixed bashism in debian/libdspam7-drv-mysql.cron.daily (Closes: #473027) -- Peter Eisentraut Tue, 15 Jul 2008 13:13:03 +0200 dspam (3.6.8-8) unstable; urgency=high [ Matthijs Mohlmann ] * Urgency high, fixes a serious bug. * Fix post install dspam-webfrontend (Closes: #469668) * When $MYSQL_HOST is empty or starting with a / assume socket communication otherwise tcp communication (Closes: #466992) * Fix apache2 config to get authentication working with the example (Closes: #425542) * Fix typo sqlite -> sqlite3 (Closes: #400917) * Run dspam as user and fix ownership of directory /var/run/dspam (Closes: #385760) * Remove symlink added by postinst of dspam-webfrontend. (Lenny recommendation) (Closes: #455052) * Add patch to fix cssclean and csscompress to work when /tmp is on another partition. (Closes: #438605) -- Debian DSPAM Maintainers Sun, 09 Mar 2008 13:55:15 +0100 dspam (3.6.8-7) unstable; urgency=low [Kurt B. Kaiser] * Add policy-compliant copyright notice in debian/copyright * Cleanup manpages: remove 'n3' typos; fix unescaped minus signs. * Remove obsolete Suggests: from dspam-webfrontend, make it Priority: extra. * ldap_init result was implicitly converted to pointer. (Closes: #463362) * libdspam7-drv-mysql: cron should use defaults-file. (Closes: #467437) -- Debian DSPAM Maintainers Thu, 28 Feb 2008 15:47:08 -0500 dspam (3.6.8-6) unstable; urgency=low [Kurt B. Kaiser] * Acknowledge NMU. Thanks Adrian Friedli. (Closes: #448519) * dspamc should be setgid. (Closes: #449530, Closes: #461133) * Daemon crashes sometimes, can't determine user. (Closes: #385353) * Don't ignore make clean error in rules. (Closes: #461134) * Move to Standards Version 3.7.3. * libdspam7-dev should be Section: libdevel. * Switch from ${Source-Version} to ${binary:Version} in control file. * Remove postgresql-dev, no longer in archive. (Closes: #429967) * Add XS-DM-Upload-Allowed field to control file. * Eliminate a bashism from libdspam7-drv-mysql.cron.daily (Closes: #461137) * dspam-init: create directory for PIDFILE, if it does not exist. (Closes: #461135) * Eliminate postgresql-client-8.1 dependency. (Closes: #419312) * Move from db4.2 to db4.5 build dependency. (Closes: #421944) * dspam-init: Remove 'S' from Default-Stop (Lintian). * Remove unused dirs from libdspam7-drv-db4, libdspam7-dev, and dspam-webfrontend (Lintian). [ Matthijs Mohlmann ] * Fix lintian warnings. * Fix manpages which had a missing NAME section. * Remove overrides for mysql and pgsql, not needed anymore. -- Debian DSPAM Maintainers Sat, 26 Jan 2008 13:03:18 +0100 dspam (3.6.8-5.1) unstable; urgency=medium * Non-maintainer upload. * Giving the password in libdspam7-drv-mysql cronjob in a file instead of the command line. CVE-2007-6418[0] (Closes: #448519) -- Adrian Friedli Sun, 13 Jan 2008 14:59:25 +0100 dspam (3.6.8-5) unstable; urgency=high [Kurt B. Kaiser] * dspam-webfrontend needed a dependency on dspam to assure user 'dspam' exists before configuration. (Closes: #349591) * Move user 'dspam' creation to libdspam7.postinst to avoid having libdspam7-drv-{mysql,pgsql} similarly error out due to missing user. -- Debian DSPAM Maintainers Sun, 24 Dec 2006 10:21:38 +0100 dspam (3.6.8-4) unstable; urgency=low [ Matthijs Mohlmann ] * Fix purging of libdspam7-drv-{pg|my}sql. (Closes: #392716) -- Debian DSPAM Maintainers Thu, 19 Oct 2006 23:49:34 +0300 dspam (3.6.8-3) unstable; urgency=low [ Matthijs Mohlmann ] * Acknowlegde NMU. Thanks Steinar H. Gunderson. (Closes: #389538, #388225, #388226) * Update package descriptions. Neural networking was experimental is now removed from the upstream sources. * It's a security risk to remove a user on purge of the package. So don't remove it. * Update update-dspam.conf ServerPID parameter, pidfile is now in /var/run/dspam. [ Jesus Climent ] * Check for the existance of ucf before executing it on purge time. * Use the defined MySQL host option in the config file to connect to an non-local MySQL database server (Closes: #388140). -- Debian DSPAM Maintainers Sat, 14 Oct 2006 16:31:49 +0200 dspam (3.6.8-2.1) unstable; urgency=medium * Non-maintainer upload. * Make config and postrm scripts run with only essential packages installed. * Check for availability of dbconfig-common scripts and ucf in libdspam7-drv-mysql.config and .postrm. (Closes: #388225) * Same for libdspam7-drv-pgsql. (Closes: #388226) -- Steinar H. Gunderson Tue, 26 Sep 2006 12:18:33 +0200 dspam (3.6.8-2) unstable; urgency=low [ Debian DSPAM Maintainers ] * Polish the manpages a bit. * Updated fsf address. * Updated lintian override for postgresql driver. [ Daniel Kahn Gillmor ] * added doc/relay.txt to dspam-doc. Thanks to Micah Anderson (Closes: #381253) * added patches/fix-tag-class.dpatch (Closes: #381395) * added manpage for cssconvert. [ Matthijs Mohlmann ] * added auto-config.h and pref.h to libdspam7-dev. (Closes: #380138) -- Debian DSPAM Maintainers Sun, 6 Aug 2006 10:50:44 -0400 dspam (3.6.8-1) unstable; urgency=low * New upstream release. + dspam_admin's "delete preference" sub-command causes infinite loop (Closes: #369862) * Drop patch ldap-verify-fix incorporated upstream. * Drop patch fix-delivery-segv incorporated upstream. * Updated patch make-daemon-quiet. * debian/copyright: Added small preamble in the file. -- Debian DSPAM Maintainers Mon, 19 Jun 2006 13:54:14 +0000 dspam (3.6.6-2) unstable; urgency=low * Update add-config-dir patch: patch from Daniel Kahn Gillmor - it passes arguments as config_t** instead of config_t* around. - read only *.conf files instead of all files. (Closes: #369414) * Add a patch that adds a virus notification to the log. Patch from Julien Valrof (Closes: #369434) * Dspam segfaults when DeliveryHost is unset, added patch from Daniel Kahn Gillmor to fix this. (Closes: #369421) * The QuarantaineMailbox option does not work properly if the user is domain qualified. Added patch from Daniel Kahn Gillmor. (Closes: #369432) * Clean up minor warnings in dspam. Patch from Daniel Kahn Gillmor (Closes: #369426) -- Debian DSPAM Maintainers Mon, 29 May 2006 22:31:36 +0200 dspam (3.6.6-1) unstable; urgency=low * New upstream release. (Closes: #361249) * Include dspam_train and the manpage into the dspam package (Closes: #366464) * Added --list-missing to dh_install, to see if there are files that are not placed in an install directory. * Removed obsolete patch configure-ac, upstream fixed the typo. * Updated patch dspam-webfrontend-config-debian. (default config for debian) * Updated patch update-dspam.conf (default config for debian) * Updated Standards-Version to 3.7.2.0 * Make dspam_clean a bit more quiet. (Closes: #368822) * Fix improper quotation in the pgsql backend. (Closes: #369179) -- Debian DSPAM Maintainers Sun, 28 May 2006 13:16:41 +0200 dspam (3.6.4-4) unstable; urgency=low * Remove previous fix for #359944 this introduced two grave bugs. (Closes: #364005, #361384) * Change dependency on libgd-gd2-perl with the -noxpm package, so that no not needed packages get installed (Closes: #365666). -- Debian DSPAM Maintainers Tue, 1 May 2006 12:43:00 +0200 dspam (3.6.4-3) unstable; urgency=low * Small changes in daily crontab. (Closes: #356874) * Recommend clamav-daemon, instead of clamav. (Closes: #356899) * Don't do apache configuration for dspam-webfrontend. (Closes: #356835) * Swap totals in the User Statistics web frontend. (Closes: #357094) * Added cron.daily purge script for mysql. (Closes: #357100) * Modified dspam crontab to also purge entries from a db4 database. * Added patch to remove hardcoded 'yourdomain.com'. Thanks to Martijn Pieters. (Closes: #357273) * Don't try to configure the mysql / postgresql backend on an unattended install. (Closes: #359944) * Change procmail dependency to sensible-mda. (Closes: #358681) * Removed manpage libdspam from the dspam package (Closes: #360923) -- Debian DSPAM Maintainers Wed, 5 Apr 2006 18:33:43 +0200 dspam (3.6.4-2) unstable; urgency=low * Updated dependency of libmysqlclient to 15-dev (Closes: #354218). * Copy paste fault in configure.ac which causes sqlite3 backend not linked with -lsqlite3 (Closes: #355095) -- Debian DSPAM Maintainers Sat, 11 Mar 2006 14:22:47 +0100 dspam (3.6.4-1) experimental; urgency=low * New upstream release. * Fix path to purge-3.sql in libdspam7-drv-sqlite3 (Closes: #347168) * Move hash backend into dspam. This solves a lot of problems around installing several other backends. * Suggests libdspam7-drv instead of depending on it. (Closes: #349591) * Improved the cron.daily for the hash backend (It now checks if dspam is running with the hash backend) * Improved add-config-dir patch to prevent a segfault. (Closes: #347852) * Add a free() call to fix a memleak. * Move dspam init script from 20 to 21. It doesn't handle reconnects of the several databases. (Closes: #353977) * Removed patch dspam-extpref-plain. Upstream has fixed it. * Updated patch manpage-in-right-section. * Applied patch to README.Debian from Jamie L. Penman-Smithson (Closes: #352105) -- Debian DSPAM Maintainers Sat, 18 Feb 2006 21:55:58 +0100 dspam (3.6.2-2) experimental; urgency=low * Add patch to fix ldap_verify bug * Add autogen.sh patch to conform Steve Langasek 's mail to debian-devel-announce@.. * Updated link-dynamically patch to link all tools dynamically to libdspam7 * Updated debian/rules to call ./autogen.sh * Fixed path in mysql.conf (mysqld/mysqld.sock instead of mysql/mysqld.sock) * MySQL and PostgreSQL sql files needs to be a file not a directory with files * Daemon is in usr/bin (Closes: #345588) * When starting as daemon and no pidfile was given the pidfile isn't created. Added a patch that fixes this problem * Added a patch to background dspam when issued with --daemon * Updated init script to give a TERM on stop instead of a HUP which is actually a reload of the configuration file. * Updated the permission problems in /etc/dspam/dspam.d * Updated the dspam.conf and Trust user dspam. (Otherwise it isn't possible to train messages in the web interface) * Make dspam easier to backport to Sarge * Added dependency libgd-graph3d-perl to dspam-webfrontend (Closes: #346032) -- Debian DSPAM Maintainers Thu, 5 Jan 2006 01:26:33 +0100 dspam (3.6.2-1) experimental; urgency=low * Initial release. (Closes: #195948) -- Debian DSPAM Maintainers Wed, 30 Nov 2005 09:31:06 +0100 debian/libdspam7-drv-pgsql.dirs0000644000000000000000000000025612252565730013662 0ustar etc/dspam/dspam.d usr/share/libdspam7-drv-pgsql usr/share/dbconfig-common/data/libdspam7-drv-pgsql/install usr/share/dbconfig-common/data/libdspam7-drv-pgsql/install-dbadmin debian/libdspam7-drv-sqlite3.install.in0000644000000000000000000000031312252565730015224 0ustar usr/lib/@DEB_HOST_MULTIARCH@/dspam/libsqlite3_drv.so* src/sqlite.conf etc/dspam/dspam.d/ src/tools.sqlite_drv/purge-3.sql usr/share/doc/libdspam-drv-sqlite3/sql/ debian/dspam.default0000644000000000000000000000070212252565730011646 0ustar # Variables for dspam. # # Do not start dspam. START=no # User that runs dspam. USER=dspam # Options for dspam. #OPTIONS="--debug" # Options for dspam_maintenance script (daily cronjob) # See dspam_maintenance(1) for possible options MAINTENANCE_OPTIONS="--with-sql-autoupdate --with-sql-optimization" # Enable the sending of daily spam quarantine summary email # Make sure to edit /etc/dspam/dspam_notify.conf before enabling it RUN_NOTIFY="no" debian/libdspam7-drv-mysql.config0000644000000000000000000000063012252565730014201 0ustar #!/bin/sh # # Configure mysql database. set -e # Load debconf . /usr/share/debconf/confmodule # The questions that are asked are pretty important. export DEBIAN_PRIORITY=low dbc_dbuser="dspam" dbc_dbname="dspam" if [ -f /usr/share/dbconfig-common/dpkg/config.mysql ]; then # Load dbconfig . /usr/share/dbconfig-common/dpkg/config.mysql # Run dbconfig dbc_go libdspam7-drv-mysql $@ fi exit 0 debian/dspam-webfrontend.preinst0000644000000000000000000000064612252565730014230 0ustar #!/bin/sh set -e case "$1" in install|upgrade) if dpkg --compare-versions "$2" lt "3.6.8-9"; then # remove bad symlinks created in previous package versions # by removing the dspam directory: rm -rf /usr/share/dspam fi ;; abort-upgrade) ;; *) echo "preinst called with unknown argument \`$1'" >&2 exit 1 ;; esac #DEBHELPER# exit 0 debian/libdspam7-drv-pgsql.postinst0000644000000000000000000000136712252565730014610 0ustar #!/bin/sh set -e # Load debconf . /usr/share/debconf/confmodule # Set some variables dbc_generate_include=template:/etc/dspam/dspam.d/pgsql.conf dbc_generate_include_args="-U -o template_infile='/usr/share/libdspam7-drv-pgsql/pgsql.conf'" # Load dbconfig (pgsql part) . /usr/share/dbconfig-common/dpkg/postinst.pgsql # Run dbconfig dbc_go libdspam7-drv-pgsql $@ case "$1" in configure) if ! dpkg-statoverride --list /etc/dspam/dspam.d/pgsql.conf >/dev/null then dpkg-statoverride --update --add dspam dspam 0640 /etc/dspam/dspam.d/pgsql.conf fi ;; abort-upgrade|abort-remove|abort-deconfigure) ;; *) echo "postinst called with unknown argument \`$1'" >&2 ;; esac #DEBHELPER# exit 0 debian/apache2.conf0000644000000000000000000000406312252565730011352 0ustar # Dspam example website configuration for Apache 2 # # Use htpasswd to create /etc/dspam/passwd and add a system username. # The password should not be the same as the user's system password. # # htpasswd -c /etc/dspam/passwd # # chown root.www-data /etc/dspam/passwd && chmod 640 /etc/dspam/passwd # # Make sure the suexec module is installed and loaded: # # apt-get install apache2-suexec # # a2enmod suexec # # Install this file in Apache configuration directory: # # cp /usr/share/doc/dspam-webfrontend/examples/apache2.conf \ # /etc/apache2/conf.d/dspam # # Then visit http://127.0.0.1:8024 and log in. # # Add the admin username to /etc/dspam/admins, which will enable the # 'Administrative Suite' tab and functionality for that person. Listen 8024 # This makes the /dspam directory unavailable from the default virtual host Order deny,allow Deny from all DocumentRoot /var/www/dspam/ SuexecUserGroup dspam dspam Alias /usr/share/dspam /usr/share/dspam/ Addhandler cgi-script .cgi DirectoryIndex dspam.cgi Options +ExecCGI +MultiViews -Indexes AllowOverride None Order deny,allow Deny from all # This makes the DSPAM WebUI only available from the local machine # You may obviously want to add other IP adresses (local network etc.) # to the following line Allow from 127.0.0.0/255.0.0.0 ::1/128 AuthType Basic AuthName "DSPAM Control Center" AuthUserFile /etc/dspam/passwd Require valid-user Options -Indexes AllowOverride None # The above configuration is provided only as an example. For serious work # over the internet, it should be set up as a proper VirtualHost and SSL # should be used to protect the user's credentials. If the site has many # users, consider using one of the db-based authentication methods, # e.g. mod_auth_mysql. debian/TODO0000644000000000000000000000151012252565730007662 0ustar TODO list for DSPAM debian packages ==================================== * Move the .cgi files out of /var/www/dspam/ which is currently not possible as apache2-suexec default docroot is set to /var/www/. See discussion at: http://lists.alioth.debian.org/pipermail/pkg-dspam-misc/2009-August/000649.html Blocked by: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=491547 Debian Policy: http://www.debian.org/doc/debian-policy/ch-customized-programs.html#s-web-appl * Build TB plugin as a separate package? * Install automatically a working webfrontend instance for Apache, which implies adding a debconf screen prompting for a username and password to create eg. /etc/dspam/passwd as well as adding the username to /etc/dspam/admins * Add support for /run (see commit 69045692a5bf34988449ab9ebeb431f7951957c4) debian/dspam.postrm0000644000000000000000000000207012252565730011546 0ustar #!/bin/sh set -e case "$1" in purge) for i in \ /etc/dspam/dspam.conf \ /etc/dspam/dspam.d/extlookup.conf \ /usr/bin/dspam \ /usr/bin/dspamc \ /usr/bin/dspam_2sql \ /usr/bin/dspam_admin \ /usr/bin/dspam_clean \ /usr/bin/dspam_crc \ /usr/bin/dspam_dump \ /usr/bin/dspam_merge \ /usr/bin/dspam_stats \ /usr/bin/dspam_train \ /var/spool/dspam \ /var/spool/dspam/data \ /var/spool/dspam/opt-in \ /var/spool/dspam/opt-out \ /var/log/dspam \ ; do dpkg-statoverride --quiet --remove $i || true done for i in \ /var/spool/dspam \ /var/log/dspam \ ; do rm -r $i || true done ;; remove|upgrade|failed-upgrade|abort-install|abort-upgrade|disappear) ;; *) echo "postrm called with unknown argument \`$1'" >&2 exit 1 ;; esac #DEBHELPER# exit 0 debian/dspam-webfrontend.postrm0000644000000000000000000000202412252565730014060 0ustar #!/bin/sh set -e case "$1" in remove) for i in \ /var/www/dspam \ /var/www/dspam/admin.cgi \ /var/www/dspam/admingraph.cgi \ /var/www/dspam/dspam.cgi \ /var/www/dspam/graph.cgi do dpkg-statoverride --quiet --remove $i || true done ;; purge) # Remove files registered with ucf. for ext in '~' '%' .bak .dpkg-tmp .dpkg-new .dpkg-old .dpkg-dist .ucf-old .ucf-dist; do rm -f /etc/dspam/webfrontend.conf$ext done rm -f /etc/dspam/webfrontend.conf if [ -x /usr/bin/ucf ]; then ucf --purge /etc/dspam/webfrontend.conf fi dpkg-statoverride --quiet --remove /etc/dspam/default.prefs || true dpkg-statoverride --quiet --remove /etc/dspam/webfrontend.conf || true ;; upgrade|failed-upgrade|abort-install|abort-upgrade|disappear) ;; *) echo "postrm called with unknown argument \`$1'" >&2 exit 1 esac #DEBHELPER# exit 0 debian/sqlfiles/0000755000000000000000000000000012252565730011017 5ustar debian/sqlfiles/install-dbadmin/0000755000000000000000000000000012252565730014061 5ustar debian/sqlfiles/install-dbadmin/pgsql0000644000000000000000000000105512252565730015133 0ustar CREATE OR REPLACE FUNCTION public.create_plpgsql_language () RETURNS TEXT AS $$ CREATE LANGUAGE plpgsql; SELECT 'language plpgsql created'::TEXT; $$ LANGUAGE 'sql'; SELECT CASE WHEN (SELECT true::BOOLEAN FROM pg_language WHERE lanname='plpgsql') THEN (SELECT 'language already installed'::TEXT) ELSE (SELECT public.create_plpgsql_language()) END; DROP FUNCTION public.create_plpgsql_language (); debian/sqlfiles/install/0000755000000000000000000000000012252565730012465 5ustar debian/sqlfiles/install/README0000644000000000000000000000007412252565730013346 0ustar SQL intallation schemas are autogenerated in the rules file debian/libdspam7-dev.install.in0000644000000000000000000000040712252565730013631 0ustar usr/include/dspam/* usr/lib/@DEB_HOST_MULTIARCH@/libdspam.a usr/lib/@DEB_HOST_MULTIARCH@/libdspam.so usr/lib/@DEB_HOST_MULTIARCH@/pkgconfig/dspam.pc src/auto-config.h usr/include/dspam src/pref.h usr/include/dspam debian/watch0000644000000000000000000000016512252565730010230 0ustar version=3 opts=dversionmangle=s/\+.*(?!dfsg)$//,uversionmangle=s/-RC/~rc/ \ http://sf.net/dspam/ dspam-(.+)\.tar\.gz debian/source/0000755000000000000000000000000012252565730010475 5ustar debian/source/format0000644000000000000000000000001412252565730011703 0ustar 3.0 (quilt) debian/licenses/0000755000000000000000000000000012252565730011002 5ustar debian/licenses/MPL-1.10000644000000000000000000006223312252565730011660 0ustar MOZILLA PUBLIC LICENSE Version 1.1 --------------- 1. Definitions. 1.0.1. "Commercial Use" means distribution or otherwise making the Covered Code available to a third party. 1.1. "Contributor" means each entity that creates or contributes to the creation of Modifications. 1.2. "Contributor Version" means the combination of the Original Code, prior Modifications used by a Contributor, and the Modifications made by that particular Contributor. 1.3. "Covered Code" means the Original Code or Modifications or the combination of the Original Code and Modifications, in each case including portions thereof. 1.4. "Electronic Distribution Mechanism" means a mechanism generally accepted in the software development community for the electronic transfer of data. 1.5. "Executable" means Covered Code in any form other than Source Code. 1.6. "Initial Developer" means the individual or entity identified as the Initial Developer in the Source Code notice required by Exhibit A. 1.7. "Larger Work" means a work which combines Covered Code or portions thereof with code not governed by the terms of this License. 1.8. "License" means this document. 1.8.1. "Licensable" means having the right to grant, to the maximum extent possible, whether at the time of the initial grant or subsequently acquired, any and all of the rights conveyed herein. 1.9. "Modifications" means any addition to or deletion from the substance or structure of either the Original Code or any previous Modifications. When Covered Code is released as a series of files, a Modification is: A. Any addition to or deletion from the contents of a file containing Original Code or previous Modifications. B. Any new file that contains any part of the Original Code or previous Modifications. 1.10. "Original Code" means Source Code of computer software code which is described in the Source Code notice required by Exhibit A as Original Code, and which, at the time of its release under this License is not already Covered Code governed by this License. 1.10.1. "Patent Claims" means any patent claim(s), now owned or hereafter acquired, including without limitation, method, process, and apparatus claims, in any patent Licensable by grantor. 1.11. "Source Code" means the preferred form of the Covered Code for making modifications to it, including all modules it contains, plus any associated interface definition files, scripts used to control compilation and installation of an Executable, or source code differential comparisons against either the Original Code or another well known, available Covered Code of the Contributor's choice. The Source Code can be in a compressed or archival form, provided the appropriate decompression or de-archiving software is widely available for no charge. 1.12. "You" (or "Your") means an individual or a legal entity exercising rights under, and complying with all of the terms of, this License or a future version of this License issued under Section 6.1. For legal entities, "You" includes any entity which controls, is controlled by, or is under common control with You. For purposes of this definition, "control" means (a) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (b) ownership of more than fifty percent (50%) of the outstanding shares or beneficial ownership of such entity. 2. Source Code License. 2.1. The Initial Developer Grant. The Initial Developer hereby grants You a world-wide, royalty-free, non-exclusive license, subject to third party intellectual property claims: (a) under intellectual property rights (other than patent or trademark) Licensable by Initial Developer to use, reproduce, modify, display, perform, sublicense and distribute the Original Code (or portions thereof) with or without Modifications, and/or as part of a Larger Work; and (b) under Patents Claims infringed by the making, using or selling of Original Code, to make, have made, use, practice, sell, and offer for sale, and/or otherwise dispose of the Original Code (or portions thereof). (c) the licenses granted in this Section 2.1(a) and (b) are effective on the date Initial Developer first distributes Original Code under the terms of this License. (d) Notwithstanding Section 2.1(b) above, no patent license is granted: 1) for code that You delete from the Original Code; 2) separate from the Original Code; or 3) for infringements caused by: i) the modification of the Original Code or ii) the combination of the Original Code with other software or devices. 2.2. Contributor Grant. Subject to third party intellectual property claims, each Contributor hereby grants You a world-wide, royalty-free, non-exclusive license (a) under intellectual property rights (other than patent or trademark) Licensable by Contributor, to use, reproduce, modify, display, perform, sublicense and distribute the Modifications created by such Contributor (or portions thereof) either on an unmodified basis, with other Modifications, as Covered Code and/or as part of a Larger Work; and (b) under Patent Claims infringed by the making, using, or selling of Modifications made by that Contributor either alone and/or in combination with its Contributor Version (or portions of such combination), to make, use, sell, offer for sale, have made, and/or otherwise dispose of: 1) Modifications made by that Contributor (or portions thereof); and 2) the combination of Modifications made by that Contributor with its Contributor Version (or portions of such combination). (c) the licenses granted in Sections 2.2(a) and 2.2(b) are effective on the date Contributor first makes Commercial Use of the Covered Code. (d) Notwithstanding Section 2.2(b) above, no patent license is granted: 1) for any code that Contributor has deleted from the Contributor Version; 2) separate from the Contributor Version; 3) for infringements caused by: i) third party modifications of Contributor Version or ii) the combination of Modifications made by that Contributor with other software (except as part of the Contributor Version) or other devices; or 4) under Patent Claims infringed by Covered Code in the absence of Modifications made by that Contributor. 3. Distribution Obligations. 3.1. Application of License. The Modifications which You create or to which You contribute are governed by the terms of this License, including without limitation Section 2.2. The Source Code version of Covered Code may be distributed only under the terms of this License or a future version of this License released under Section 6.1, and You must include a copy of this License with every copy of the Source Code You distribute. You may not offer or impose any terms on any Source Code version that alters or restricts the applicable version of this License or the recipients' rights hereunder. However, You may include an additional document offering the additional rights described in Section 3.5. 3.2. Availability of Source Code. Any Modification which You create or to which You contribute must be made available in Source Code form under the terms of this License either on the same media as an Executable version or via an accepted Electronic Distribution Mechanism to anyone to whom you made an Executable version available; and if made available via Electronic Distribution Mechanism, must remain available for at least twelve (12) months after the date it initially became available, or at least six (6) months after a subsequent version of that particular Modification has been made available to such recipients. You are responsible for ensuring that the Source Code version remains available even if the Electronic Distribution Mechanism is maintained by a third party. 3.3. Description of Modifications. You must cause all Covered Code to which You contribute to contain a file documenting the changes You made to create that Covered Code and the date of any change. You must include a prominent statement that the Modification is derived, directly or indirectly, from Original Code provided by the Initial Developer and including the name of the Initial Developer in (a) the Source Code, and (b) in any notice in an Executable version or related documentation in which You describe the origin or ownership of the Covered Code. 3.4. Intellectual Property Matters (a) Third Party Claims. If Contributor has knowledge that a license under a third party's intellectual property rights is required to exercise the rights granted by such Contributor under Sections 2.1 or 2.2, Contributor must include a text file with the Source Code distribution titled "LEGAL" which describes the claim and the party making the claim in sufficient detail that a recipient will know whom to contact. If Contributor obtains such knowledge after the Modification is made available as described in Section 3.2, Contributor shall promptly modify the LEGAL file in all copies Contributor makes available thereafter and shall take other steps (such as notifying appropriate mailing lists or newsgroups) reasonably calculated to inform those who received the Covered Code that new knowledge has been obtained. (b) Contributor APIs. If Contributor's Modifications include an application programming interface and Contributor has knowledge of patent licenses which are reasonably necessary to implement that API, Contributor must also include this information in the LEGAL file. (c) Representations. Contributor represents that, except as disclosed pursuant to Section 3.4(a) above, Contributor believes that Contributor's Modifications are Contributor's original creation(s) and/or Contributor has sufficient rights to grant the rights conveyed by this License. 3.5. Required Notices. You must duplicate the notice in Exhibit A in each file of the Source Code. If it is not possible to put such notice in a particular Source Code file due to its structure, then You must include such notice in a location (such as a relevant directory) where a user would be likely to look for such a notice. If You created one or more Modification(s) You may add your name as a Contributor to the notice described in Exhibit A. You must also duplicate this License in any documentation for the Source Code where You describe recipients' rights or ownership rights relating to Covered Code. You may choose to offer, and to charge a fee for, warranty, support, indemnity or liability obligations to one or more recipients of Covered Code. However, You may do so only on Your own behalf, and not on behalf of the Initial Developer or any Contributor. You must make it absolutely clear than any such warranty, support, indemnity or liability obligation is offered by You alone, and You hereby agree to indemnify the Initial Developer and every Contributor for any liability incurred by the Initial Developer or such Contributor as a result of warranty, support, indemnity or liability terms You offer. 3.6. Distribution of Executable Versions. You may distribute Covered Code in Executable form only if the requirements of Section 3.1-3.5 have been met for that Covered Code, and if You include a notice stating that the Source Code version of the Covered Code is available under the terms of this License, including a description of how and where You have fulfilled the obligations of Section 3.2. The notice must be conspicuously included in any notice in an Executable version, related documentation or collateral in which You describe recipients' rights relating to the Covered Code. You may distribute the Executable version of Covered Code or ownership rights under a license of Your choice, which may contain terms different from this License, provided that You are in compliance with the terms of this License and that the license for the Executable version does not attempt to limit or alter the recipient's rights in the Source Code version from the rights set forth in this License. If You distribute the Executable version under a different license You must make it absolutely clear that any terms which differ from this License are offered by You alone, not by the Initial Developer or any Contributor. You hereby agree to indemnify the Initial Developer and every Contributor for any liability incurred by the Initial Developer or such Contributor as a result of any such terms You offer. 3.7. Larger Works. You may create a Larger Work by combining Covered Code with other code not governed by the terms of this License and distribute the Larger Work as a single product. In such a case, You must make sure the requirements of this License are fulfilled for the Covered Code. 4. Inability to Comply Due to Statute or Regulation. If it is impossible for You to comply with any of the terms of this License with respect to some or all of the Covered Code due to statute, judicial order, or regulation then You must: (a) comply with the terms of this License to the maximum extent possible; and (b) describe the limitations and the code they affect. Such description must be included in the LEGAL file described in Section 3.4 and must be included with all distributions of the Source Code. Except to the extent prohibited by statute or regulation, such description must be sufficiently detailed for a recipient of ordinary skill to be able to understand it. 5. Application of this License. This License applies to code to which the Initial Developer has attached the notice in Exhibit A and to related Covered Code. 6. Versions of the License. 6.1. New Versions. Netscape Communications Corporation ("Netscape") may publish revised and/or new versions of the License from time to time. Each version will be given a distinguishing version number. 6.2. Effect of New Versions. Once Covered Code has been published under a particular version of the License, You may always continue to use it under the terms of that version. You may also choose to use such Covered Code under the terms of any subsequent version of the License published by Netscape. No one other than Netscape has the right to modify the terms applicable to Covered Code created under this License. 6.3. Derivative Works. If You create or use a modified version of this License (which you may only do in order to apply it to code which is not already Covered Code governed by this License), You must (a) rename Your license so that the phrases "Mozilla", "MOZILLAPL", "MOZPL", "Netscape", "MPL", "NPL" or any confusingly similar phrase do not appear in your license (except to note that your license differs from this License) and (b) otherwise make it clear that Your version of the license contains terms which differ from the Mozilla Public License and Netscape Public License. (Filling in the name of the Initial Developer, Original Code or Contributor in the notice described in Exhibit A shall not of themselves be deemed to be modifications of this License.) 7. DISCLAIMER OF WARRANTY. COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE COVERED CODE IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED CODE IS WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER. 8. TERMINATION. 8.1. This License and the rights granted hereunder will terminate automatically if You fail to comply with terms herein and fail to cure such breach within 30 days of becoming aware of the breach. All sublicenses to the Covered Code which are properly granted shall survive any termination of this License. Provisions which, by their nature, must remain in effect beyond the termination of this License shall survive. 8.2. If You initiate litigation by asserting a patent infringement claim (excluding declatory judgment actions) against Initial Developer or a Contributor (the Initial Developer or Contributor against whom You file such action is referred to as "Participant") alleging that: (a) such Participant's Contributor Version directly or indirectly infringes any patent, then any and all rights granted by such Participant to You under Sections 2.1 and/or 2.2 of this License shall, upon 60 days notice from Participant terminate prospectively, unless if within 60 days after receipt of notice You either: (i) agree in writing to pay Participant a mutually agreeable reasonable royalty for Your past and future use of Modifications made by such Participant, or (ii) withdraw Your litigation claim with respect to the Contributor Version against such Participant. If within 60 days of notice, a reasonable royalty and payment arrangement are not mutually agreed upon in writing by the parties or the litigation claim is not withdrawn, the rights granted by Participant to You under Sections 2.1 and/or 2.2 automatically terminate at the expiration of the 60 day notice period specified above. (b) any software, hardware, or device, other than such Participant's Contributor Version, directly or indirectly infringes any patent, then any rights granted to You by such Participant under Sections 2.1(b) and 2.2(b) are revoked effective as of the date You first made, used, sold, distributed, or had made, Modifications made by that Participant. 8.3. If You assert a patent infringement claim against Participant alleging that such Participant's Contributor Version directly or indirectly infringes any patent where such claim is resolved (such as by license or settlement) prior to the initiation of patent infringement litigation, then the reasonable value of the licenses granted by such Participant under Sections 2.1 or 2.2 shall be taken into account in determining the amount or value of any payment or license. 8.4. In the event of termination under Sections 8.1 or 8.2 above, all end user license agreements (excluding distributors and resellers) which have been validly granted by You or any distributor hereunder prior to termination shall survive termination. 9. LIMITATION OF LIABILITY. UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY RESULTING FROM SUCH PARTY'S NEGLIGENCE TO THE EXTENT APPLICABLE LAW PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU. 10. U.S. GOVERNMENT END USERS. The Covered Code is a "commercial item," as that term is defined in 48 C.F.R. 2.101 (Oct. 1995), consisting of "commercial computer software" and "commercial computer software documentation," as such terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48 C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995), all U.S. Government End Users acquire Covered Code with only those rights set forth herein. 11. MISCELLANEOUS. This License represents the complete agreement concerning subject matter hereof. If any provision of this License is held to be unenforceable, such provision shall be reformed only to the extent necessary to make it enforceable. This License shall be governed by California law provisions (except to the extent applicable law, if any, provides otherwise), excluding its conflict-of-law provisions. With respect to disputes in which at least one party is a citizen of, or an entity chartered or registered to do business in the United States of America, any litigation relating to this License shall be subject to the jurisdiction of the Federal Courts of the Northern District of California, with venue lying in Santa Clara County, California, with the losing party responsible for costs, including without limitation, court costs and reasonable attorneys' fees and expenses. The application of the United Nations Convention on Contracts for the International Sale of Goods is expressly excluded. Any law or regulation which provides that the language of a contract shall be construed against the drafter shall not apply to this License. 12. RESPONSIBILITY FOR CLAIMS. As between Initial Developer and the Contributors, each party is responsible for claims and damages arising, directly or indirectly, out of its utilization of rights under this License and You agree to work with Initial Developer and Contributors to distribute such responsibility on an equitable basis. Nothing herein is intended or shall be deemed to constitute any admission of liability. 13. MULTIPLE-LICENSED CODE. Initial Developer may designate portions of the Covered Code as "Multiple-Licensed". "Multiple-Licensed" means that the Initial Developer permits you to utilize portions of the Covered Code under Your choice of the NPL or the alternative licenses, if any, specified by the Initial Developer in the file described in Exhibit A. EXHIBIT A -Mozilla Public License. ``The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is ______________________________________. The Initial Developer of the Original Code is ________________________. Portions created by ______________________ are Copyright (C) ______ _______________________. All Rights Reserved. Contributor(s): ______________________________________. Alternatively, the contents of this file may be used under the terms of the _____ license (the "[___] License"), in which case the provisions of [______] License are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of the [____] License and not to allow others to use your version of this file under the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the [___] License. If you do not delete the provisions above, a recipient may use your version of this file under either the MPL or the [___] License." [NOTE: The text of this Exhibit A may differ slightly from the text of the notices in the Source Code files of the Original Code. You should use the text of this Exhibit A rather than the text found in the Original Code Source Code for Your Modifications.] debian/licenses/AGPL-30000644000000000000000000010333112252565730011611 0ustar GNU AFFERO GENERAL PUBLIC LICENSE Version 3, 19 November 2007 Copyright (C) 2007 Free Software Foundation, Inc. Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The GNU Affero General Public License is a free, copyleft license for software and other kinds of works, specifically designed to ensure cooperation with the community in the case of network server software. The licenses for most software and other practical works are designed to take away your freedom to share and change the works. By contrast, our General Public Licenses are intended to guarantee your freedom to share and change all versions of a program--to make sure it remains free software for all its users. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for them if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs, and that you know you can do these things. Developers that use our General Public Licenses protect your rights with two steps: (1) assert copyright on the software, and (2) offer you this License which gives you legal permission to copy, distribute and/or modify the software. A secondary benefit of defending all users' freedom is that improvements made in alternate versions of the program, if they receive widespread use, become available for other developers to incorporate. Many developers of free software are heartened and encouraged by the resulting cooperation. However, in the case of software used on network servers, this result may fail to come about. The GNU General Public License permits making a modified version and letting the public access it on a server without ever releasing its source code to the public. The GNU Affero General Public License is designed specifically to ensure that, in such cases, the modified source code becomes available to the community. It requires the operator of a network server to provide the source code of the modified version running there to the users of that server. Therefore, public use of a modified version, on a publicly accessible server, gives the public access to the source code of the modified version. An older license, called the Affero General Public License and published by Affero, was designed to accomplish similar goals. This is a different license, not a version of the Affero GPL, but Affero has released a new version of the Affero GPL which permits relicensing under this license. The precise terms and conditions for copying, distribution and modification follow. TERMS AND CONDITIONS 0. Definitions. "This License" refers to version 3 of the GNU Affero General Public License. "Copyright" also means copyright-like laws that apply to other kinds of works, such as semiconductor masks. "The Program" refers to any copyrightable work licensed under this License. Each licensee is addressed as "you". "Licensees" and "recipients" may be individuals or organizations. To "modify" a work means to copy from or adapt all or part of the work in a fashion requiring copyright permission, other than the making of an exact copy. The resulting work is called a "modified version" of the earlier work or a work "based on" the earlier work. A "covered work" means either the unmodified Program or a work based on the Program. To "propagate" a work means to do anything with it that, without permission, would make you directly or secondarily liable for infringement under applicable copyright law, except executing it on a computer or modifying a private copy. Propagation includes copying, distribution (with or without modification), making available to the public, and in some countries other activities as well. To "convey" a work means any kind of propagation that enables other parties to make or receive copies. Mere interaction with a user through a computer network, with no transfer of a copy, is not conveying. An interactive user interface displays "Appropriate Legal Notices" to the extent that it includes a convenient and prominently visible feature that (1) displays an appropriate copyright notice, and (2) tells the user that there is no warranty for the work (except to the extent that warranties are provided), that licensees may convey the work under this License, and how to view a copy of this License. If the interface presents a list of user commands or options, such as a menu, a prominent item in the list meets this criterion. 1. Source Code. The "source code" for a work means the preferred form of the work for making modifications to it. "Object code" means any non-source form of a work. A "Standard Interface" means an interface that either is an official standard defined by a recognized standards body, or, in the case of interfaces specified for a particular programming language, one that is widely used among developers working in that language. The "System Libraries" of an executable work include anything, other than the work as a whole, that (a) is included in the normal form of packaging a Major Component, but which is not part of that Major Component, and (b) serves only to enable use of the work with that Major Component, or to implement a Standard Interface for which an implementation is available to the public in source code form. A "Major Component", in this context, means a major essential component (kernel, window system, and so on) of the specific operating system (if any) on which the executable work runs, or a compiler used to produce the work, or an object code interpreter used to run it. The "Corresponding Source" for a work in object code form means all the source code needed to generate, install, and (for an executable work) run the object code and to modify the work, including scripts to control those activities. However, it does not include the work's System Libraries, or general-purpose tools or generally available free programs which are used unmodified in performing those activities but which are not part of the work. For example, Corresponding Source includes interface definition files associated with source files for the work, and the source code for shared libraries and dynamically linked subprograms that the work is specifically designed to require, such as by intimate data communication or control flow between those subprograms and other parts of the work. The Corresponding Source need not include anything that users can regenerate automatically from other parts of the Corresponding Source. The Corresponding Source for a work in source code form is that same work. 2. Basic Permissions. All rights granted under this License are granted for the term of copyright on the Program, and are irrevocable provided the stated conditions are met. This License explicitly affirms your unlimited permission to run the unmodified Program. The output from running a covered work is covered by this License only if the output, given its content, constitutes a covered work. This License acknowledges your rights of fair use or other equivalent, as provided by copyright law. You may make, run and propagate covered works that you do not convey, without conditions so long as your license otherwise remains in force. You may convey covered works to others for the sole purpose of having them make modifications exclusively for you, or provide you with facilities for running those works, provided that you comply with the terms of this License in conveying all material for which you do not control copyright. Those thus making or running the covered works for you must do so exclusively on your behalf, under your direction and control, on terms that prohibit them from making any copies of your copyrighted material outside their relationship with you. Conveying under any other circumstances is permitted solely under the conditions stated below. Sublicensing is not allowed; section 10 makes it unnecessary. 3. Protecting Users' Legal Rights From Anti-Circumvention Law. No covered work shall be deemed part of an effective technological measure under any applicable law fulfilling obligations under article 11 of the WIPO copyright treaty adopted on 20 December 1996, or similar laws prohibiting or restricting circumvention of such measures. When you convey a covered work, you waive any legal power to forbid circumvention of technological measures to the extent such circumvention is effected by exercising rights under this License with respect to the covered work, and you disclaim any intention to limit operation or modification of the work as a means of enforcing, against the work's users, your or third parties' legal rights to forbid circumvention of technological measures. 4. Conveying Verbatim Copies. You may convey verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice; keep intact all notices stating that this License and any non-permissive terms added in accord with section 7 apply to the code; keep intact all notices of the absence of any warranty; and give all recipients a copy of this License along with the Program. You may charge any price or no price for each copy that you convey, and you may offer support or warranty protection for a fee. 5. Conveying Modified Source Versions. You may convey a work based on the Program, or the modifications to produce it from the Program, in the form of source code under the terms of section 4, provided that you also meet all of these conditions: a) The work must carry prominent notices stating that you modified it, and giving a relevant date. b) The work must carry prominent notices stating that it is released under this License and any conditions added under section 7. This requirement modifies the requirement in section 4 to "keep intact all notices". c) You must license the entire work, as a whole, under this License to anyone who comes into possession of a copy. This License will therefore apply, along with any applicable section 7 additional terms, to the whole of the work, and all its parts, regardless of how they are packaged. This License gives no permission to license the work in any other way, but it does not invalidate such permission if you have separately received it. d) If the work has interactive user interfaces, each must display Appropriate Legal Notices; however, if the Program has interactive interfaces that do not display Appropriate Legal Notices, your work need not make them do so. A compilation of a covered work with other separate and independent works, which are not by their nature extensions of the covered work, and which are not combined with it such as to form a larger program, in or on a volume of a storage or distribution medium, is called an "aggregate" if the compilation and its resulting copyright are not used to limit the access or legal rights of the compilation's users beyond what the individual works permit. Inclusion of a covered work in an aggregate does not cause this License to apply to the other parts of the aggregate. 6. Conveying Non-Source Forms. You may convey a covered work in object code form under the terms of sections 4 and 5, provided that you also convey the machine-readable Corresponding Source under the terms of this License, in one of these ways: a) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by the Corresponding Source fixed on a durable physical medium customarily used for software interchange. b) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by a written offer, valid for at least three years and valid for as long as you offer spare parts or customer support for that product model, to give anyone who possesses the object code either (1) a copy of the Corresponding Source for all the software in the product that is covered by this License, on a durable physical medium customarily used for software interchange, for a price no more than your reasonable cost of physically performing this conveying of source, or (2) access to copy the Corresponding Source from a network server at no charge. c) Convey individual copies of the object code with a copy of the written offer to provide the Corresponding Source. This alternative is allowed only occasionally and noncommercially, and only if you received the object code with such an offer, in accord with subsection 6b. d) Convey the object code by offering access from a designated place (gratis or for a charge), and offer equivalent access to the Corresponding Source in the same way through the same place at no further charge. You need not require recipients to copy the Corresponding Source along with the object code. If the place to copy the object code is a network server, the Corresponding Source may be on a different server (operated by you or a third party) that supports equivalent copying facilities, provided you maintain clear directions next to the object code saying where to find the Corresponding Source. Regardless of what server hosts the Corresponding Source, you remain obligated to ensure that it is available for as long as needed to satisfy these requirements. e) Convey the object code using peer-to-peer transmission, provided you inform other peers where the object code and Corresponding Source of the work are being offered to the general public at no charge under subsection 6d. A separable portion of the object code, whose source code is excluded from the Corresponding Source as a System Library, need not be included in conveying the object code work. A "User Product" is either (1) a "consumer product", which means any tangible personal property which is normally used for personal, family, or household purposes, or (2) anything designed or sold for incorporation into a dwelling. In determining whether a product is a consumer product, doubtful cases shall be resolved in favor of coverage. For a particular product received by a particular user, "normally used" refers to a typical or common use of that class of product, regardless of the status of the particular user or of the way in which the particular user actually uses, or expects or is expected to use, the product. A product is a consumer product regardless of whether the product has substantial commercial, industrial or non-consumer uses, unless such uses represent the only significant mode of use of the product. "Installation Information" for a User Product means any methods, procedures, authorization keys, or other information required to install and execute modified versions of a covered work in that User Product from a modified version of its Corresponding Source. The information must suffice to ensure that the continued functioning of the modified object code is in no case prevented or interfered with solely because modification has been made. If you convey an object code work under this section in, or with, or specifically for use in, a User Product, and the conveying occurs as part of a transaction in which the right of possession and use of the User Product is transferred to the recipient in perpetuity or for a fixed term (regardless of how the transaction is characterized), the Corresponding Source conveyed under this section must be accompanied by the Installation Information. But this requirement does not apply if neither you nor any third party retains the ability to install modified object code on the User Product (for example, the work has been installed in ROM). The requirement to provide Installation Information does not include a requirement to continue to provide support service, warranty, or updates for a work that has been modified or installed by the recipient, or for the User Product in which it has been modified or installed. Access to a network may be denied when the modification itself materially and adversely affects the operation of the network or violates the rules and protocols for communication across the network. Corresponding Source conveyed, and Installation Information provided, in accord with this section must be in a format that is publicly documented (and with an implementation available to the public in source code form), and must require no special password or key for unpacking, reading or copying. 7. Additional Terms. "Additional permissions" are terms that supplement the terms of this License by making exceptions from one or more of its conditions. Additional permissions that are applicable to the entire Program shall be treated as though they were included in this License, to the extent that they are valid under applicable law. If additional permissions apply only to part of the Program, that part may be used separately under those permissions, but the entire Program remains governed by this License without regard to the additional permissions. When you convey a copy of a covered work, you may at your option remove any additional permissions from that copy, or from any part of it. (Additional permissions may be written to require their own removal in certain cases when you modify the work.) You may place additional permissions on material, added by you to a covered work, for which you have or can give appropriate copyright permission. Notwithstanding any other provision of this License, for material you add to a covered work, you may (if authorized by the copyright holders of that material) supplement the terms of this License with terms: a) Disclaiming warranty or limiting liability differently from the terms of sections 15 and 16 of this License; or b) Requiring preservation of specified reasonable legal notices or author attributions in that material or in the Appropriate Legal Notices displayed by works containing it; or c) Prohibiting misrepresentation of the origin of that material, or requiring that modified versions of such material be marked in reasonable ways as different from the original version; or d) Limiting the use for publicity purposes of names of licensors or authors of the material; or e) Declining to grant rights under trademark law for use of some trade names, trademarks, or service marks; or f) Requiring indemnification of licensors and authors of that material by anyone who conveys the material (or modified versions of it) with contractual assumptions of liability to the recipient, for any liability that these contractual assumptions directly impose on those licensors and authors. All other non-permissive additional terms are considered "further restrictions" within the meaning of section 10. If the Program as you received it, or any part of it, contains a notice stating that it is governed by this License along with a term that is a further restriction, you may remove that term. If a license document contains a further restriction but permits relicensing or conveying under this License, you may add to a covered work material governed by the terms of that license document, provided that the further restriction does not survive such relicensing or conveying. If you add terms to a covered work in accord with this section, you must place, in the relevant source files, a statement of the additional terms that apply to those files, or a notice indicating where to find the applicable terms. Additional terms, permissive or non-permissive, may be stated in the form of a separately written license, or stated as exceptions; the above requirements apply either way. 8. Termination. You may not propagate or modify a covered work except as expressly provided under this License. Any attempt otherwise to propagate or modify it is void, and will automatically terminate your rights under this License (including any patent licenses granted under the third paragraph of section 11). However, if you cease all violation of this License, then your license from a particular copyright holder is reinstated (a) provisionally, unless and until the copyright holder explicitly and finally terminates your license, and (b) permanently, if the copyright holder fails to notify you of the violation by some reasonable means prior to 60 days after the cessation. Moreover, your license from a particular copyright holder is reinstated permanently if the copyright holder notifies you of the violation by some reasonable means, this is the first time you have received notice of violation of this License (for any work) from that copyright holder, and you cure the violation prior to 30 days after your receipt of the notice. Termination of your rights under this section does not terminate the licenses of parties who have received copies or rights from you under this License. If your rights have been terminated and not permanently reinstated, you do not qualify to receive new licenses for the same material under section 10. 9. Acceptance Not Required for Having Copies. You are not required to accept this License in order to receive or run a copy of the Program. Ancillary propagation of a covered work occurring solely as a consequence of using peer-to-peer transmission to receive a copy likewise does not require acceptance. However, nothing other than this License grants you permission to propagate or modify any covered work. These actions infringe copyright if you do not accept this License. Therefore, by modifying or propagating a covered work, you indicate your acceptance of this License to do so. 10. Automatic Licensing of Downstream Recipients. Each time you convey a covered work, the recipient automatically receives a license from the original licensors, to run, modify and propagate that work, subject to this License. You are not responsible for enforcing compliance by third parties with this License. An "entity transaction" is a transaction transferring control of an organization, or substantially all assets of one, or subdividing an organization, or merging organizations. If propagation of a covered work results from an entity transaction, each party to that transaction who receives a copy of the work also receives whatever licenses to the work the party's predecessor in interest had or could give under the previous paragraph, plus a right to possession of the Corresponding Source of the work from the predecessor in interest, if the predecessor has it or can get it with reasonable efforts. You may not impose any further restrictions on the exercise of the rights granted or affirmed under this License. For example, you may not impose a license fee, royalty, or other charge for exercise of rights granted under this License, and you may not initiate litigation (including a cross-claim or counterclaim in a lawsuit) alleging that any patent claim is infringed by making, using, selling, offering for sale, or importing the Program or any portion of it. 11. Patents. A "contributor" is a copyright holder who authorizes use under this License of the Program or a work on which the Program is based. The work thus licensed is called the contributor's "contributor version". A contributor's "essential patent claims" are all patent claims owned or controlled by the contributor, whether already acquired or hereafter acquired, that would be infringed by some manner, permitted by this License, of making, using, or selling its contributor version, but do not include claims that would be infringed only as a consequence of further modification of the contributor version. For purposes of this definition, "control" includes the right to grant patent sublicenses in a manner consistent with the requirements of this License. Each contributor grants you a non-exclusive, worldwide, royalty-free patent license under the contributor's essential patent claims, to make, use, sell, offer for sale, import and otherwise run, modify and propagate the contents of its contributor version. In the following three paragraphs, a "patent license" is any express agreement or commitment, however denominated, not to enforce a patent (such as an express permission to practice a patent or covenant not to sue for patent infringement). To "grant" such a patent license to a party means to make such an agreement or commitment not to enforce a patent against the party. If you convey a covered work, knowingly relying on a patent license, and the Corresponding Source of the work is not available for anyone to copy, free of charge and under the terms of this License, through a publicly available network server or other readily accessible means, then you must either (1) cause the Corresponding Source to be so available, or (2) arrange to deprive yourself of the benefit of the patent license for this particular work, or (3) arrange, in a manner consistent with the requirements of this License, to extend the patent license to downstream recipients. "Knowingly relying" means you have actual knowledge that, but for the patent license, your conveying the covered work in a country, or your recipient's use of the covered work in a country, would infringe one or more identifiable patents in that country that you have reason to believe are valid. If, pursuant to or in connection with a single transaction or arrangement, you convey, or propagate by procuring conveyance of, a covered work, and grant a patent license to some of the parties receiving the covered work authorizing them to use, propagate, modify or convey a specific copy of the covered work, then the patent license you grant is automatically extended to all recipients of the covered work and works based on it. A patent license is "discriminatory" if it does not include within the scope of its coverage, prohibits the exercise of, or is conditioned on the non-exercise of one or more of the rights that are specifically granted under this License. You may not convey a covered work if you are a party to an arrangement with a third party that is in the business of distributing software, under which you make payment to the third party based on the extent of your activity of conveying the work, and under which the third party grants, to any of the parties who would receive the covered work from you, a discriminatory patent license (a) in connection with copies of the covered work conveyed by you (or copies made from those copies), or (b) primarily for and in connection with specific products or compilations that contain the covered work, unless you entered into that arrangement, or that patent license was granted, prior to 28 March 2007. Nothing in this License shall be construed as excluding or limiting any implied license or other defenses to infringement that may otherwise be available to you under applicable patent law. 12. No Surrender of Others' Freedom. If conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot convey a covered work so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not convey it at all. For example, if you agree to terms that obligate you to collect a royalty for further conveying from those to whom you convey the Program, the only way you could satisfy both those terms and this License would be to refrain entirely from conveying the Program. 13. Remote Network Interaction; Use with the GNU General Public License. Notwithstanding any other provision of this License, if you modify the Program, your modified version must prominently offer all users interacting with it remotely through a computer network (if your version supports such interaction) an opportunity to receive the Corresponding Source of your version by providing access to the Corresponding Source from a network server at no charge, through some standard or customary means of facilitating copying of software. This Corresponding Source shall include the Corresponding Source for any work covered by version 3 of the GNU General Public License that is incorporated pursuant to the following paragraph. Notwithstanding any other provision of this License, you have permission to link or combine any covered work with a work licensed under version 3 of the GNU General Public License into a single combined work, and to convey the resulting work. The terms of this License will continue to apply to the part which is the covered work, but the work with which it is combined will remain governed by version 3 of the GNU General Public License. 14. Revised Versions of this License. The Free Software Foundation may publish revised and/or new versions of the GNU Affero General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies that a certain numbered version of the GNU Affero General Public License "or any later version" applies to it, you have the option of following the terms and conditions either of that numbered version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of the GNU Affero General Public License, you may choose any version ever published by the Free Software Foundation. If the Program specifies that a proxy can decide which future versions of the GNU Affero General Public License can be used, that proxy's public statement of acceptance of a version permanently authorizes you to choose that version for the Program. Later license versions may give you additional or different permissions. However, no additional obligations are imposed on any author or copyright holder as a result of your choosing to follow a later version. 15. Disclaimer of Warranty. THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 16. Limitation of Liability. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. 17. Interpretation of Sections 15 and 16. If the disclaimer of warranty and limitation of liability provided above cannot be given local legal effect according to their terms, reviewing courts shall apply local law that most closely approximates an absolute waiver of all civil liability in connection with the Program, unless a warranty or assumption of liability accompanies a copy of the Program in return for a fee. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively state the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. You should have received a copy of the GNU Affero General Public License along with this program. If not, see . Also add information on how to contact you by electronic and paper mail. If your software can interact with users remotely through a computer network, you should also make sure that it provides a way for users to get its source. For example, if your program is a web application, its interface could display a "Source" link that leads users to an archive of the code. There are many ways you could offer source, and different solutions will be better for different programs; see section 13 for the specific requirements. You should also get your employer (if you work as a programmer) or school, if any, to sign a "copyright disclaimer" for the program, if necessary. For more information on this, and how to apply and follow the GNU AGPL, see . debian/dspam.postinst0000644000000000000000000000363112252565730012111 0ustar #!/bin/sh set -e set_dspam_perms() { # If you add any other permission/ownership tweaks here, then # remember to add a corresponding remove operation to the # dspam.postrm # Database password info is contained in dspam.conf and other conffiles for config_file in dspam.conf dspam.d/extlookup.conf ; do if ! dpkg-statoverride --list /etc/dspam/$config_file >/dev/null then dpkg-statoverride --update --add dspam dspam 0640 /etc/dspam/$config_file fi done # dspam & dspamc need to be setgid for agent in dspam dspamc ; do if ! dpkg-statoverride --list /usr/bin/$agent >/dev/null then dpkg-statoverride --update --add dspam dspam 2755 /usr/bin/$agent fi done # so as tools (standard users can then use them provided DSPAM doesn't use # virtual users) for tool in dspam_2sql dspam_admin dspam_clean dspam_crc dspam_dump \ dspam_merge dspam_stats dspam_train ; do if ! dpkg-statoverride --list /usr/bin/$tool >/dev/null then dpkg-statoverride --update --add root dspam 2755 /usr/bin/$tool fi done # Directories in /var/spool/dspam are made read-only as they contain private data DSPAM_HOME="/var/spool/dspam" for dir in $DSPAM_HOME $DSPAM_HOME/data $DSPAM_HOME/opt-in $DSPAM_HOME/opt-out ; do if ! dpkg-statoverride --list $dir >/dev/null then dpkg-statoverride --update --add dspam dspam 0770 $dir fi done if ! dpkg-statoverride --list /var/log/dspam >/dev/null then dpkg-statoverride --update --add dspam dspam 0755 /var/log/dspam fi return 0 } case "$1" in configure) set_dspam_perms ;; abort-upgrade|abort-remove|abort-deconfigure) ;; *) echo "postinst called with unknown argument \`$1'" >&2 exit 1 ;; esac #DEBHELPER# exit 0 debian/dspam-webfrontend.install0000644000000000000000000000317112252565730014206 0ustar src/tools/dspam_notify.conf etc/dspam src/tools/dspam_notify usr/bin webui/cgi-bin/admins etc/dspam webui/cgi-bin/*.cgi var/www/dspam webui/cgi-bin/configure.pl usr/share/dspam webui/cgi-bin/rgb.txt etc/dspam webui/cgi-bin/subadmins etc/dspam webui/cgi-bin/templates/cs/*.html etc/dspam/templates/cs webui/cgi-bin/templates/cs/strings.pl etc/dspam/templates/cs webui/cgi-bin/templates/de/*.html etc/dspam/templates/de webui/cgi-bin/templates/de/strings.pl etc/dspam/templates/de webui/cgi-bin/templates/es-es/*.html etc/dspam/templates/es-es webui/cgi-bin/templates/es-es/strings.pl etc/dspam/templates/es-es webui/cgi-bin/templates/fr/*.html etc/dspam/templates/fr webui/cgi-bin/templates/fr/strings.pl etc/dspam/templates/fr webui/cgi-bin/templates/he/*.html etc/dspam/templates/he webui/cgi-bin/templates/he/strings.pl etc/dspam/templates/he webui/cgi-bin/templates/*.html etc/dspam/templates webui/cgi-bin/templates/pt-br/*.html etc/dspam/templates/pt-br webui/cgi-bin/templates/pt-br/strings.pl etc/dspam/templates/pt-br webui/cgi-bin/templates/ro/*.html etc/dspam/templates/ro webui/cgi-bin/templates/ru/*.html etc/dspam/templates/ru webui/cgi-bin/templates/ru/strings.pl etc/dspam/templates/ru webui/cgi-bin/templates/strings.pl etc/dspam/templates webui/htdocs/base.css usr/share/dspam webui/htdocs/dspam.js usr/share/dspam webui/htdocs/dspam-logo-small.gif usr/share/dspam debian/libdspam7-drv-mysql.prerm0000644000000000000000000000030412252565730014057 0ustar #!/bin/sh set -e # Load debconf . /usr/share/debconf/confmodule # Load dbconfig . /usr/share/dbconfig-common/dpkg/prerm.mysql # Run dbconfig dbc_go libdspam7-drv-mysql $@ #DEBHELPER# exit 0 debian/libdspam7.install.in0000644000000000000000000000005312252565730013052 0ustar usr/lib/@DEB_HOST_MULTIARCH@/libdspam.so.*