diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..9b70741 --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +amavisd-new-2.8.0.tar.gz +/amavisd-new-2.8.1.tar.gz +/amavisd-new-2.9.0.tar.xz +/amavisd-new-2.9.1.tar.xz diff --git a/README.fedora b/README.fedora new file mode 100644 index 0000000..494e34e --- /dev/null +++ b/README.fedora @@ -0,0 +1,68 @@ +INSTALLATION +------------ +Installing amavisd-new from Fedora is simple. First, install the +amavisd-new package: + + yum -y install amavisd-new + +Don't be alarmed at the number of dependencies this installs. This +package tries to be as full-featured as possible, including many +optional components for amavisd-new. + +Next, configure amavisd-new to start on boot: + + chkconfig --level 2345 amavisd on + +If you want to use the Clam Antivirus daemon (recommended), set it to +start on boot as well: + + chkconfig --level 2345 clamd.amavisd on + +When you are ready, start the clamd.amavisd (optional but recommended) +and amavisd services: + + service clamd.amavisd start + service amavisd start + +Check /var/log/maillog for startup messages from both daemons. + +The next step is to integrate amavisd with your MTA. + +POSTFIX +------- +The simplest method for enabling amavisd-new support in postfix is to +use the content_filter configuration option to tell postfix to relay +mail through amavisd-new using SMTP. In this configuration, incoming +mail passes from postfix to amavisd and back to postfix. (Mail never +actually leaves the control of postfix however, since amavisd does not +answer OK until it scans the message and transfers it back to postfix. +The worst that can happen is a failure at just the right time could +allow a message to be queued twice.) + +Add the following to /etc/postfix/main.cf: + + content_filter = smtp:[127.0.0.1]:10024 + +You will probably also want to limit the number of postfix processes +to keep mail from coming in faster than it can be processed by adding +the following to /etc/postfix/main.cf: + + default_process_limit = 20 + +Add the following to /etc/postfix/master.cf: + + 127.0.0.1:10025 inet n - - - 0 smtpd -o content_filter= + +Be sure to read the TUNING section in README.postfix for information +on process limits. + +SENDMAIL +-------- +See README.sendmail* in this directory. + +Please note that amavisd-new's milter functionality is not enabled in +this package. + +EXIM +---- +See README.exim* in this directory. diff --git a/README.quarantine b/README.quarantine new file mode 100644 index 0000000..21d805e --- /dev/null +++ b/README.quarantine @@ -0,0 +1,24 @@ +To enable quarantine support simply change the following line in +/etc/amavisd/amavisd.conf: + + $QUARANTINEDIR = undef; # -Q + +to + + $QUARANTINEDIR = "$MYHOME/quarantine"; # -Q + +then restart amavisd. + +The following will make the change for you: + + sed -i.orig -e '/\$QUARANTINEDIR =/s,undef,"$MYHOME/quarantine",' \ + /etc/amavisd/amavisd.conf + +PLEASE NOTE: This is intentionally a manual step. Before turning on +the quarantine feature of amavisd-new, be sure that there is a +sufficient amount of free space on /var/spool/amavisd/quarantine. +"Sufficient" depends entirely on your environment. + +In the default configuration, files in the quarantine directory will +be automatically deleted by tmpwatch after 30 days. See +/etc/cron.daily/amavisd to adjust this behavior for your environment. diff --git a/amavis-clamd.conf b/amavis-clamd.conf new file mode 100644 index 0000000..a84b8ef --- /dev/null +++ b/amavis-clamd.conf @@ -0,0 +1,20 @@ +# Use system logger. +LogSyslog yes + +# Specify the type of syslog messages - please refer to 'man syslog' +# for facility names. +LogFacility LOG_MAIL + +# This option allows you to save a process identifier of the listening +# daemon (main thread). +PidFile /var/run/clamd.amavisd/clamd.pid + +# Remove stale socket after unclean shutdown. +# Default: disabled +FixStaleSocket yes + +# Run as a selected user (clamd must be started by root). +User amavis + +# Path to a local socket file the daemon will listen on. +LocalSocket /var/run/clamd.amavisd/clamd.sock diff --git a/amavis-clamd.init b/amavis-clamd.init new file mode 100644 index 0000000..27a6f87 --- /dev/null +++ b/amavis-clamd.init @@ -0,0 +1,7 @@ +#!/bin/bash +# +# chkconfig: - 78 32 +# description: The clamd server running for amavisd + +CLAMD_SERVICE=amavisd +. /usr/share/clamav/clamd-wrapper diff --git a/amavis-clamd.sysconfig b/amavis-clamd.sysconfig new file mode 100644 index 0000000..875534d --- /dev/null +++ b/amavis-clamd.sysconfig @@ -0,0 +1,3 @@ +CLAMD_CONFIGFILE=/etc/clamd.d/amavisd.conf +CLAMD_SOCKET=/var/run/clamd.amavisd/clamd.sock +CLAMD_OPTIONS= diff --git a/amavisd-condrestart.patch b/amavisd-condrestart.patch new file mode 100644 index 0000000..02cac2a --- /dev/null +++ b/amavisd-condrestart.patch @@ -0,0 +1,16 @@ +--- amavisd_init.sh.orig 2004-02-23 16:09:02.000000000 -0600 ++++ amavisd_init.sh 2004-02-23 16:13:52.000000000 -0600 +@@ -60,8 +60,12 @@ + action $"Reloading ${prog_base}:" ${prog} -c ${prog_config_file} reload + RETVAL=$? + ;; ++ condrestart) ++ [ -f /var/lock/subsys/${prog_base} ] && $0 restart || : ++ RETVAL=$? ++ ;; + *) +- echo "Usage: $0 {start|stop|status|restart|reload}" ++ echo "Usage: $0 {start|stop|status|restart|reload|condrestart}" + exit 1 + esac + diff --git a/amavisd-conf.patch b/amavisd-conf.patch new file mode 100644 index 0000000..5cb5e23 --- /dev/null +++ b/amavisd-conf.patch @@ -0,0 +1,127 @@ +--- amavisd-new-2.8.0/amavisd.conf 2012-06-30 23:33:32.000000000 +0200 ++++ amavisd-new-2.8.0/amavisd.conf.conf 2013-12-02 16:24:05.000000000 +0100 +@@ -14,25 +14,25 @@ + # $bypass_decode_parts = 1; # controls running of decoders&dearchivers + + $max_servers = 2; # num of pre-forked children (2..30 is common), -m +-$daemon_user = 'vscan'; # (no default; customary: vscan or amavis), -u +-$daemon_group = 'vscan'; # (no default; customary: vscan or amavis), -g ++$daemon_user = 'amavis'; # (no default; customary: vscan or amavis), -u ++$daemon_group = 'amavis'; # (no default; customary: vscan or amavis), -g + + $mydomain = 'example.com'; # a convenient default for other settings + +-# $MYHOME = '/var/amavis'; # a convenient default for other settings, -H ++$MYHOME = '/var/spool/amavisd'; # a convenient default for other settings, -H + $TEMPBASE = "$MYHOME/tmp"; # working directory, needs to exist, -T + $ENV{TMPDIR} = $TEMPBASE; # environment variable TMPDIR, used by SA, etc. +-$QUARANTINEDIR = '/var/virusmails'; # -Q ++$QUARANTINEDIR = undef; # -Q + # $quarantine_subdir_levels = 1; # add level of subdirs to disperse quarantine + # $release_format = 'resend'; # 'attach', 'plain', 'resend' + # $report_format = 'arf'; # 'attach', 'plain', 'resend', 'arf' + + # $daemon_chroot_dir = $MYHOME; # chroot directory or undef, -R + +-# $db_home = "$MYHOME/db"; # dir for bdb nanny/cache/snmp databases, -D ++$db_home = "$MYHOME/db"; # dir for bdb nanny/cache/snmp databases, -D + # $helpers_home = "$MYHOME/var"; # working directory for SpamAssassin, -S +-# $lock_file = "$MYHOME/var/amavisd.lock"; # -L +-# $pid_file = "$MYHOME/var/amavisd.pid"; # -P ++$lock_file = "/var/run/amavisd/amavisd.lock"; # -L ++$pid_file = "/var/run/amavisd/amavisd.pid"; # -P + #NOTE: create directories $MYHOME/tmp, $MYHOME/var, $MYHOME/db manually + + $log_level = 0; # verbosity 0..5, -d +@@ -113,11 +113,11 @@ + # $timestamp_fmt_mysql = 1; # if using MySQL *and* msgs.time_iso is TIMESTAMP; + # defaults to 0, which is good for non-MySQL or if msgs.time_iso is CHAR(16) + +-$virus_admin = "virusalert\@$mydomain"; # notifications recip. ++$virus_admin = undef; # notifications recip. + +-$mailfrom_notify_admin = "virusalert\@$mydomain"; # notifications sender +-$mailfrom_notify_recip = "virusalert\@$mydomain"; # notifications sender +-$mailfrom_notify_spamadmin = "spam.police\@$mydomain"; # notifications sender ++$mailfrom_notify_admin = undef; # notifications sender ++$mailfrom_notify_recip = undef; # notifications sender ++$mailfrom_notify_spamadmin = undef; # notifications sender + $mailfrom_to_quarantine = ''; # null return path; uses original sender if undef + + @addr_extension_virus_maps = ('virus'); +@@ -151,10 +151,10 @@ + # $notify_method = 'smtp:[127.0.0.1]:10025'; + # $forward_method = 'smtp:[127.0.0.1]:10025'; # set to undef with milter! + +-# $final_virus_destiny = D_DISCARD; +-# $final_banned_destiny = D_DISCARD; +-# $final_spam_destiny = D_PASS; #!!! D_DISCARD / D_REJECT +-# $final_bad_header_destiny = D_PASS; ++$final_virus_destiny = D_DISCARD; ++$final_banned_destiny = D_BOUNCE; ++$final_spam_destiny = D_DISCARD; #!!! D_DISCARD / D_REJECT ++$final_bad_header_destiny = D_BOUNCE; + # $bad_header_quarantine_method = undef; + + # $os_fingerprint_method = 'p0f:*:2345'; # to query p0f-analyzer.pl +@@ -335,9 +335,9 @@ + ['arj', \&do_unarj, ['unarj', 'arj'] ], + ['arc', \&do_arc, ['nomarch', 'arc'] ], + ['zoo', \&do_zoo, ['zoo', 'unzoo'] ], +- ['doc', \&do_ole, 'ripole'], ++# ['doc', \&do_ole, 'ripole'], # no ripole package so far + ['cab', \&do_cabextract, 'cabextract'], +- ['tnef', \&do_tnef_ext, 'tnef'], ++# ['tnef', \&do_tnef_ext, 'tnef'], # use internal do_tnef() instead + ['tnef', \&do_tnef], + # ['lha', \&do_lha, 'lha'], # not safe, use 7z instead + # ['sit', \&do_unstuff, 'unstuff'], # not safe +@@ -375,16 +375,16 @@ + # qr/^(?:310|420)[,\s]*(?:.* <<< )?(.+?)(?: ; |$)/m ], + # settings for the SAVAPI3.conf: ArchiveScan=1, HeurLevel=2, MailboxScan=1 + +-# ### http://www.clamav.net/ +-# ['ClamAV-clamd', +-# \&ask_daemon, ["CONTSCAN {}\n", "/var/run/clamav/clamd.sock"], +-# qr/\bOK$/m, qr/\bFOUND$/m, +-# qr/^.*?: (?!Infected Archive)(.*) FOUND$/m ], +-# # NOTE: run clamd under the same user as amavisd - or run it under its own +-# # uid such as clamav, add user clamav to the amavis group, and then add +-# # AllowSupplementaryGroups to clamd.conf; +-# # NOTE: match socket name (LocalSocket) in clamav.conf to the socket name in +-# # this entry; when running chrooted one may prefer a socket under $MYHOME. ++ ### http://www.clamav.net/ ++ ['ClamAV-clamd', ++ \&ask_daemon, ["CONTSCAN {}\n", "/var/run/clamd.amavisd/clamd.sock"], ++ qr/\bOK$/m, qr/\bFOUND$/m, ++ qr/^.*?: (?!Infected Archive)(.*) FOUND$/m ], ++ # NOTE: run clamd under the same user as amavisd - or run it under its own ++ # uid such as clamav, add user clamav to the amavis group, and then add ++ # AllowSupplementaryGroups to clamd.conf; ++ # NOTE: match socket name (LocalSocket) in clamav.conf to the socket name in ++ # this entry; when running chrooted one may prefer a socket under $MYHOME. + + # ### http://www.clamav.net/ and CPAN (memory-hungry! clamd is preferred) + # # note that Mail::ClamAV requires perl to be build with threading! +--- amavisd-new-2.8.0/amavisd-nanny 2009-06-25 19:57:13.000000000 +0200 ++++ amavisd-new-2.8.0/amavisd-nanny.conf 2012-07-08 01:00:58.000000000 +0200 +@@ -58,7 +58,7 @@ + + my($dbfile) = 'nanny.db'; + my($db_home) = # DB databases directory +- defined $ENV{'AMAVISD_DB_HOME'} ? $ENV{'AMAVISD_DB_HOME'} : '/var/amavis/db'; ++ defined $ENV{'AMAVISD_DB_HOME'} ? $ENV{'AMAVISD_DB_HOME'} : '/var/spool/amavisd/db'; + my($wakeuptime) = 2; # -w, sleep time in seconds, may be fractional + my($repeatcount); # -c, repeat count (when defined) + +--- amavisd-new-2.8.0/amavisd-agent 2009-06-18 21:17:30.000000000 +0200 ++++ amavisd-new-2.8.0/amavisd-agent.conf 2012-07-08 01:03:16.000000000 +0200 +@@ -50,7 +50,7 @@ + + my($dbfile) = 'snmp.db'; + my($db_home) = # DB databases directory +- defined $ENV{'AMAVISD_DB_HOME'} ? $ENV{'AMAVISD_DB_HOME'} : '/var/amavis/db'; ++ defined $ENV{'AMAVISD_DB_HOME'} ? $ENV{'AMAVISD_DB_HOME'} : '/var/spool/amavisd/db'; + + my($wakeuptime) = 10; # -w, sleep time in seconds, may be fractional + my($repeatcount); # -c, repeat count (when defined) diff --git a/amavisd-init.patch b/amavisd-init.patch new file mode 100644 index 0000000..ff850cd --- /dev/null +++ b/amavisd-init.patch @@ -0,0 +1,24 @@ +--- amavisd-new-2.3.2.orig/amavisd_init.sh 2002-11-15 22:22:47.000000000 -0600 ++++ amavisd-new-2.3.2/amavisd_init.sh 2005-07-06 16:11:23.000000000 -0500 +@@ -4,10 +4,10 @@ + # (to be used with version amavisd-new-20020630 or later) + # + +-# chkconfig: 2345 79 31 ++# chkconfig: - 79 31 + # description: amavisd is an interface between MTA and content checkers + # processname: amavisd +-# pidfile: /var/amavis/amavisd.pid ++# pidfile: /var/run/amavisd/amavisd.pid + + # Source function library. + . /etc/rc.d/init.d/functions +@@ -19,7 +19,7 @@ + prog="/usr/sbin/amavisd" + prog_base="$(basename ${prog})" + +-prog_config_file="/etc/amavisd.conf" ++prog_config_file="/etc/amavisd/amavisd.conf" + + # Source configuration. + [ -e /etc/sysconfig/${prog_base} ] && . /etc/sysconfig/${prog_base} diff --git a/amavisd-new-2.8.0-init_network.patch b/amavisd-new-2.8.0-init_network.patch new file mode 100644 index 0000000..8018e2c --- /dev/null +++ b/amavisd-new-2.8.0-init_network.patch @@ -0,0 +1,13 @@ +--- amavisd-new-2.8.0/amavisd_init.sh 2002-11-15 20:22:47.000000000 -0800 ++++ amavisd-new-2.8.0/amavisd_init.sh.new 2013-05-10 09:54:58.849116467 -0700 +@@ -12,8 +12,8 @@ + # Source function library. + . /etc/rc.d/init.d/functions + +-# Source networking configuration. +-. /etc/sysconfig/network ++## Source networking configuration. ++#. /etc/sysconfig/network + + #prog="/opt/amavisd-new/sbin/amavisd" + prog="/usr/sbin/amavisd" diff --git a/amavisd-new-2.9.0-conf.patch b/amavisd-new-2.9.0-conf.patch new file mode 100644 index 0000000..54cfc35 --- /dev/null +++ b/amavisd-new-2.9.0-conf.patch @@ -0,0 +1,139 @@ +commit 44707666dd30b5196e75002f1661da6b77e360f8 +Author: Juan Orti Alcaine +Date: Mon May 12 09:59:27 2014 +0200 + + amavisd-conf.patch + +diff --git a/amavisd-agent b/amavisd-agent +index 1ebe2bb..b8271a3 100755 +--- a/amavisd-agent ++++ b/amavisd-agent +@@ -53,7 +53,7 @@ use BerkeleyDB; + + my($dbfile) = 'snmp.db'; + my($db_home) = # DB databases directory +- defined $ENV{'AMAVISD_DB_HOME'} ? $ENV{'AMAVISD_DB_HOME'} : '/var/amavis/db'; ++ defined $ENV{'AMAVISD_DB_HOME'} ? $ENV{'AMAVISD_DB_HOME'} : '/var/spool/amavisd/db'; + + my($wakeuptime) = 10; # -w, sleep time in seconds, may be fractional + my($repeatcount); # -c, repeat count (when defined) +diff --git a/amavisd-nanny b/amavisd-nanny +index 80b84dc..164549f 100755 +--- a/amavisd-nanny ++++ b/amavisd-nanny +@@ -61,7 +61,7 @@ my($activettl) = 10*60; # stuck active children are sent a SIGTERM + + my($dbfile) = 'nanny.db'; + my($db_home) = # DB databases directory +- defined $ENV{'AMAVISD_DB_HOME'} ? $ENV{'AMAVISD_DB_HOME'} : '/var/amavis/db'; ++ defined $ENV{'AMAVISD_DB_HOME'} ? $ENV{'AMAVISD_DB_HOME'} : '/var/spool/amavisd/db'; + my($wakeuptime) = 2; # -w, sleep time in seconds, may be fractional + my($repeatcount); # -c, repeat count (when defined) + +diff --git a/amavisd.conf b/amavisd.conf +index a09597f..25db750 100644 +--- a/amavisd.conf ++++ b/amavisd.conf +@@ -14,25 +14,25 @@ use strict; + # $bypass_decode_parts = 1; # controls running of decoders&dearchivers + + $max_servers = 2; # num of pre-forked children (2..30 is common), -m +-$daemon_user = 'vscan'; # (no default; customary: vscan or amavis), -u +-$daemon_group = 'vscan'; # (no default; customary: vscan or amavis), -g ++$daemon_user = 'amavis'; # (no default; customary: vscan or amavis), -u ++$daemon_group = 'amavis'; # (no default; customary: vscan or amavis), -g + + $mydomain = 'example.com'; # a convenient default for other settings + +-# $MYHOME = '/var/amavis'; # a convenient default for other settings, -H ++$MYHOME = '/var/spool/amavisd'; # a convenient default for other settings, -H + $TEMPBASE = "$MYHOME/tmp"; # working directory, needs to exist, -T + $ENV{TMPDIR} = $TEMPBASE; # environment variable TMPDIR, used by SA, etc. +-$QUARANTINEDIR = '/var/virusmails'; # -Q ++$QUARANTINEDIR = undef; # -Q + # $quarantine_subdir_levels = 1; # add level of subdirs to disperse quarantine + # $release_format = 'resend'; # 'attach', 'plain', 'resend' + # $report_format = 'arf'; # 'attach', 'plain', 'resend', 'arf' + + # $daemon_chroot_dir = $MYHOME; # chroot directory or undef, -R + +-# $db_home = "$MYHOME/db"; # dir for bdb nanny/cache/snmp databases, -D ++$db_home = "$MYHOME/db"; # dir for bdb nanny/cache/snmp databases, -D + # $helpers_home = "$MYHOME/var"; # working directory for SpamAssassin, -S +-# $lock_file = "$MYHOME/var/amavisd.lock"; # -L +-# $pid_file = "$MYHOME/var/amavisd.pid"; # -P ++$lock_file = "/var/run/amavisd/amavisd.lock"; # -L ++$pid_file = "/var/run/amavisd/amavisd.pid"; # -P + #NOTE: create directories $MYHOME/tmp, $MYHOME/var, $MYHOME/db manually + + $log_level = 0; # verbosity 0..5, -d +@@ -116,11 +116,11 @@ $sa_local_tests_only = 0; # only tests which do not require internet access? + # $timestamp_fmt_mysql = 1; # if using MySQL *and* msgs.time_iso is TIMESTAMP; + # defaults to 0, which is good for non-MySQL or if msgs.time_iso is CHAR(16) + +-$virus_admin = "virusalert\@$mydomain"; # notifications recip. ++$virus_admin = undef; # notifications recip. + +-$mailfrom_notify_admin = "virusalert\@$mydomain"; # notifications sender +-$mailfrom_notify_recip = "virusalert\@$mydomain"; # notifications sender +-$mailfrom_notify_spamadmin = "spam.police\@$mydomain"; # notifications sender ++$mailfrom_notify_admin = undef; # notifications sender ++$mailfrom_notify_recip = undef; # notifications sender ++$mailfrom_notify_spamadmin = undef; # notifications sender + $mailfrom_to_quarantine = ''; # null return path; uses original sender if undef + + @addr_extension_virus_maps = ('virus'); +@@ -154,10 +154,10 @@ $defang_by_ccat{CC_BADH.",6"} = 1; # header field syntax error + # $notify_method = 'smtp:[127.0.0.1]:10025'; + # $forward_method = 'smtp:[127.0.0.1]:10025'; # set to undef with milter! + +-# $final_virus_destiny = D_DISCARD; +-# $final_banned_destiny = D_DISCARD; +-# $final_spam_destiny = D_PASS; #!!! D_DISCARD / D_REJECT +-# $final_bad_header_destiny = D_PASS; ++$final_virus_destiny = D_DISCARD; ++$final_banned_destiny = D_BOUNCE; ++$final_spam_destiny = D_DISCARD; #!!! D_DISCARD / D_REJECT ++$final_bad_header_destiny = D_BOUNCE; + # $bad_header_quarantine_method = undef; + + # $os_fingerprint_method = 'p0f:*:2345'; # to query p0f-analyzer.pl +@@ -338,9 +338,9 @@ $banned_filename_re = new_RE( + ['arj', \&do_unarj, ['unarj', 'arj'] ], + ['arc', \&do_arc, ['nomarch', 'arc'] ], + ['zoo', \&do_zoo, ['zoo', 'unzoo'] ], +- ['doc', \&do_ole, 'ripole'], ++# ['doc', \&do_ole, 'ripole'], # no ripole package so far + ['cab', \&do_cabextract, 'cabextract'], +- ['tnef', \&do_tnef_ext, 'tnef'], ++# ['tnef', \&do_tnef_ext, 'tnef'], # use internal do_tnef() instead + ['tnef', \&do_tnef], + # ['lha', \&do_lha, 'lha'], # not safe, use 7z instead + # ['sit', \&do_unstuff, 'unstuff'], # not safe +@@ -378,16 +378,16 @@ $banned_filename_re = new_RE( + # qr/^(?:310|420)[,\s]*(?:.* <<< )?(.+?)(?: ; |$)/m ], + # settings for the SAVAPI3.conf: ArchiveScan=1, HeurLevel=2, MailboxScan=1 + +-# ### http://www.clamav.net/ +-# ['ClamAV-clamd', +-# \&ask_daemon, ["CONTSCAN {}\n", "/var/run/clamav/clamd.sock"], +-# qr/\bOK$/m, qr/\bFOUND$/m, +-# qr/^.*?: (?!Infected Archive)(.*) FOUND$/m ], +-# # NOTE: run clamd under the same user as amavisd - or run it under its own +-# # uid such as clamav, add user clamav to the amavis group, and then add +-# # AllowSupplementaryGroups to clamd.conf; +-# # NOTE: match socket name (LocalSocket) in clamav.conf to the socket name in +-# # this entry; when running chrooted one may prefer a socket under $MYHOME. ++ ### http://www.clamav.net/ ++ ['ClamAV-clamd', ++ \&ask_daemon, ["CONTSCAN {}\n", "/var/run/clamd.amavisd/clamd.sock"], ++ qr/\bOK$/m, qr/\bFOUND$/m, ++ qr/^.*?: (?!Infected Archive)(.*) FOUND$/m ], ++ # NOTE: run clamd under the same user as amavisd - or run it under its own ++ # uid such as clamav, add user clamav to the amavis group, and then add ++ # AllowSupplementaryGroups to clamd.conf; ++ # NOTE: match socket name (LocalSocket) in clamav.conf to the socket name in ++ # this entry; when running chrooted one may prefer a socket under $MYHOME. + + # ### http://www.clamav.net/ and CPAN (memory-hungry! clamd is preferred) + # # note that Mail::ClamAV requires perl to be build with threading! diff --git a/amavisd-new-2.9.1-release_mail_from_sql_quarantine.patch b/amavisd-new-2.9.1-release_mail_from_sql_quarantine.patch new file mode 100644 index 0000000..fe5fc04 --- /dev/null +++ b/amavisd-new-2.9.1-release_mail_from_sql_quarantine.patch @@ -0,0 +1,51 @@ +diff --git a/amavisd b/amavisd +index f721756..2a2c418 100755 +--- a/amavisd ++++ b/amavisd +@@ -20208,7 +20208,7 @@ sub preprocess_policy_query($$) { + new_am_id('rel-'.$msginfo->mail_id) if $releasing; + if ($releasing && $quar_type eq 'Q') { # releasing from SQL + do_log(5, "preprocess_policy_query: opening in sql: %s", +- $msginfo->mail_id); ++ $msginfo->parent_mail_id); + my $obj = $Amavis::sql_storage; + $Amavis::extra_code_sql_quar && $obj + or die "SQL quarantine code not enabled (3)"; +@@ -20218,31 +20218,31 @@ sub preprocess_policy_query($$) { + if (!defined($msginfo->partition_tag) && + defined($sel_msg) && $sel_msg ne '') { + do_log(5, "preprocess_policy_query: missing partition_tag in request,". +- " fetching msgs record for mail_id=%s", $msginfo->mail_id); ++ " fetching msgs record for mail_id=%s", $msginfo->parent_mail_id); + # find a corresponding partition_tag if missing from a release request + $conn_h->begin_work_nontransaction; #(re)connect if necessary +- $conn_h->execute($sel_msg, untaint($msginfo->mail_id)); ++ $conn_h->execute($sel_msg, untaint($msginfo->parent_mail_id)); + my $a_ref; my $cnt = 0; my $partition_tag; + while ( defined($a_ref=$conn_h->fetchrow_arrayref($sel_msg)) ) { + $cnt++; + $partition_tag = $a_ref->[0] if !defined $partition_tag; + ll(5) && do_log(5, "release: got msgs record for mail_id=%s: %s", +- $msginfo->mail_id, join(', ',@$a_ref)); ++ $msginfo->parent_mail_id, join(', ',@$a_ref)); + } + $conn_h->finish($sel_msg) if defined $a_ref; # only if not all read + $cnt <= 1 or die "Multiple ($cnt) records with same mail_id exist, ". + "specify a partition_tag in the AM.PDP request"; + if ($cnt < 1) { + do_log(0, "release: no records with msgs.mail_id=%s in a database, ". +- "trying to read from a quar. anyway", $msginfo->mail_id); ++ "trying to read from a quar. anyway", $msginfo->parent_mail_id); + } + $msginfo->partition_tag($partition_tag); # could still be undef/NULL ! + } + ll(5) && do_log(5, "release: opening mail_id=%s, partition_tag=%s", +- $msginfo->mail_id, $msginfo->partition_tag); ++ $msginfo->parent_mail_id, $msginfo->partition_tag); + $conn_h->begin_work_nontransaction; # (re)connect if not connected + $fh = Amavis::IO::SQL->new; +- $fh->open($conn_h, $sel_quar, untaint($msginfo->mail_id), ++ $fh->open($conn_h, $sel_quar, untaint($msginfo->parent_mail_id), + 'r', untaint($msginfo->partition_tag)) + or die "Can't open sql obj for reading: $!"; 1; + } else { # mail checking or releasing from a file diff --git a/amavisd-new-tmpfiles.conf b/amavisd-new-tmpfiles.conf new file mode 100644 index 0000000..fac3b2f --- /dev/null +++ b/amavisd-new-tmpfiles.conf @@ -0,0 +1,2 @@ +d /var/run/amavisd 755 amavis amavis - +d /var/run/clamd.amavisd 770 amavis clamupdate - diff --git a/amavisd-new.spec b/amavisd-new.spec new file mode 100644 index 0000000..ee7c04c --- /dev/null +++ b/amavisd-new.spec @@ -0,0 +1,455 @@ +#%%define prerelease rc2 + +Summary: Email filter with virus scanner and spamassassin support +Name: amavisd-new +Version: 2.9.1 +Release: 2%{?prerelease:.%{prerelease}}%{?dist} +# LDAP schema is GFDL, some helpers are BSD, core is GPLv2+ +License: GPLv2+ and BSD and GFDL +Group: Applications/System +URL: http://www.ijs.si/software/amavisd/ +Source0: http://www.ijs.si/software/amavisd/amavisd-new-%{version}%{?prerelease:-%{prerelease}}.tar.xz +Source1: amavis-clamd.init +Source2: amavis-clamd.conf +Source3: amavis-clamd.sysconfig +Source4: README.fedora +Source5: README.quarantine +Source6: amavisd.cron +Source7: amavisd-snmp.init +Source8: amavisd-new-tmpfiles.conf +Patch0: amavisd-new-2.9.0-conf.patch +Patch1: amavisd-init.patch +Patch2: amavisd-condrestart.patch +# Don't source /etc/sysconfig/network in init script; the network check +# is commented out upstream so there's no apparent reason to source it, +# and it can't be relied upon to exist in recent Fedora builds. Mail +# sent upstream to amavis-users ML 2013-05-10. -adamw +Patch3: amavisd-new-2.8.0-init_network.patch +# Fix bug #1121552 +# http://lists.amavis.org/pipermail/amavis-users/2014-June/002957.html +Patch4: amavisd-new-2.9.1-release_mail_from_sql_quarantine.patch +BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) +BuildRequires: systemd +Requires: clamav-server +Requires: clamav-server-sysvinit +Requires: /usr/sbin/tmpwatch, /etc/cron.daily +Requires: /usr/bin/ar +Requires: altermime +Requires: arj +Requires: bzip2 +Requires: cabextract +Requires: cpio +Requires: file +Requires: freeze +Requires: gzip +Requires: lzop +Requires: nomarch +Requires: p7zip, p7zip-plugins +Requires: tar +Requires: lrzip +Requires: unzoo +# We probably should parse the fetch_modules() code in amavisd for this list. +# These are just the dependencies that don't get picked up otherwise. +Requires: perl(Archive::Tar) +Requires: perl(Archive::Zip) +Requires: perl(Authen::SASL) +Requires: perl(Compress::Zlib) >= 1.35 +Requires: perl(Convert::TNEF) +Requires: perl(Convert::UUlib) +Requires: perl(Crypt::OpenSSL::RSA) +Requires: perl(DBD::SQLite) +Requires: perl(DBI) +Requires: perl(Digest::SHA) +Requires: perl(Digest::SHA1) +Requires: perl(IO::Socket::INET6) +Requires: perl(IO::Socket::SSL) +Requires: perl(IO::Stringy) +Requires: perl(MIME::Body) +Requires: perl(MIME::Decoder::Base64) +Requires: perl(MIME::Decoder::Binary) +Requires: perl(MIME::Decoder::Gzip64) +Requires: perl(MIME::Decoder::NBit) +Requires: perl(MIME::Decoder::QuotedPrint) +Requires: perl(MIME::Decoder::UU) +Requires: perl(MIME::Head) +Requires: perl(Mail::DKIM) +Requires: perl(Mail::Field) +Requires: perl(Mail::Header) +Requires: perl(Mail::Internet) +Requires: perl(Mail::SPF) +Requires: perl(Mail::SpamAssassin) +Requires: perl(Net::DNS) +Requires: perl(Net::LDAP) +Requires: perl(Net::SSLeay) +Requires: perl(Net::Server) +Requires: perl(NetAddr::IP) +Requires: perl(Razor2::Client::Version) +Requires: perl(Socket6) +Requires: perl(Unix::Syslog) +Requires: perl(URI) +Requires(pre): shadow-utils +Requires(post): /sbin/chkconfig +Requires(preun): /sbin/service, /sbin/chkconfig +Requires(postun): /sbin/service +BuildArch: noarch + +%package snmp +Group: Applications/System +Summary: Exports amavisd SNMP data +Requires: %{name} = %{version}-%{release} +Requires: perl(NetSNMP::OID) +Requires(post): /sbin/chkconfig +Requires(preun): /sbin/service, /sbin/chkconfig +Requires(postun): /sbin/service + +%description +amavisd-new is a high-performance and reliable interface between mailer +(MTA) and one or more content checkers: virus scanners, and/or +Mail::SpamAssassin Perl module. It is written in Perl, assuring high +reliability, portability and maintainability. It talks to MTA via (E)SMTP +or LMTP, or by using helper programs. No timing gaps exist in the design +which could cause a mail loss. + +%description snmp +This package contains the program amavisd-snmp-subagent, which can be +used as a SNMP AgentX, exporting amavisd statistical counters database +(snmp.db) as well as a child process status database (nanny.db) to a +SNMP daemon supporting the AgentX protocol (RFC 2741), such as NET-SNMP. + +It is similar to combined existing utility programs amavisd-agent and +amavisd-nanny, but instead of writing results as text to stdout, it +exports data to a SNMP server running on a host (same or remote), making +them available to SNMP clients (such a Cacti or mrtg) for monitoring or +alerting purposes. + +%prep +%setup -q -n %{name}-%{version}%{?prerelease:-%{prerelease}} +%patch0 -p1 +%patch1 -p1 +%patch2 -p0 +%patch3 -p1 +%patch4 -p1 + +install -p -m 644 %{SOURCE4} %{SOURCE5} README_FILES/ +sed -e 's,/var/amavis/amavisd.sock\>,%{_localstatedir}/spool/amavisd/amavisd.sock,' -i amavisd-release + +%build + +%install +rm -rf $RPM_BUILD_ROOT + +install -D -p -m 755 amavisd $RPM_BUILD_ROOT%{_sbindir}/amavisd +install -D -p -m 755 amavisd-snmp-subagent $RPM_BUILD_ROOT%{_sbindir}/amavisd-snmp-subagent +ln -sf clamd $RPM_BUILD_ROOT%{_sbindir}/clamd.amavisd + +mkdir -p $RPM_BUILD_ROOT%{_bindir} +install -p -m 755 amavisd-{agent,nanny,release} $RPM_BUILD_ROOT%{_bindir}/ + +install -D -p -m 755 amavisd_init.sh $RPM_BUILD_ROOT%{_initrddir}/amavisd +install -D -p -m 755 %{SOURCE1} $RPM_BUILD_ROOT%{_initrddir}/clamd.amavisd +install -D -p -m 755 %{SOURCE7} $RPM_BUILD_ROOT%{_initrddir}/amavisd-snmp + +install -D -p -m 644 amavisd.conf $RPM_BUILD_ROOT%{_sysconfdir}/amavisd/amavisd.conf +install -D -p -m 644 %{SOURCE2} $RPM_BUILD_ROOT%{_sysconfdir}/clamd.d/amavisd.conf +install -D -p -m 644 %{SOURCE3} $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig/clamd.amavisd +install -D -p -m 755 %{SOURCE6} $RPM_BUILD_ROOT%{_sysconfdir}/cron.daily/amavisd + +mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/spool/amavisd/{tmp,db,quarantine} +mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/run/{amavisd,clamd.amavisd} + +%if 0%{?fedora}%{?rhel} > 6 +install -D -m 644 %{SOURCE8} $RPM_BUILD_ROOT%{_tmpfilesdir}/amavisd-new.conf +%endif + +%clean +rm -rf $RPM_BUILD_ROOT + +%pre +getent group amavis > /dev/null || %{_sbindir}/groupadd -r amavis +getent passwd amavis > /dev/null || \ + %{_sbindir}/useradd -r -g amavis -d %{_localstatedir}/spool/amavisd -s /sbin/nologin \ + -c "User for amavisd-new" amavis +exit 0 + +%preun +if [ $1 -eq 0 ]; then + /sbin/service amavisd stop > /dev/null 2>&1 || : + /sbin/chkconfig --del amavisd + /sbin/service clamd.amavisd stop > /dev/null 2>&1 || : + /sbin/chkconfig --del clamd.amavisd +fi + +%preun snmp +if [ $1 -eq 0 ]; then + /sbin/service amavisd-snmp stop > /dev/null 2>&1 || : + /sbin/chkconfig --del amavisd-snmp +fi + +%post +/sbin/chkconfig --add clamd.amavisd +/sbin/chkconfig --add amavisd + +%post snmp +/sbin/chkconfig --add amavisd-snmp + +%postun +if [ $1 -ne 0 ]; then + /sbin/service clamd.amavisd condrestart > /dev/null 2>&1 || : + /sbin/service amavisd condrestart > /dev/null 2>&1 || : +fi + +%postun snmp +if [ $1 -ne 0 ]; then + /sbin/service amavisd-snmp condrestart > /dev/null 2>&1 || : +fi + +%files +%defattr(-,root,root,-) +%doc AAAREADME.first LDAP.schema LDAP.ldif LICENSE RELEASE_NOTES +%doc README_FILES test-messages amavisd.conf-* +%dir %{_sysconfdir}/amavisd/ +%attr(755,root,root) %{_initrddir}/amavisd +%attr(755,root,root) %{_initrddir}/clamd.amavisd +%config(noreplace) %{_sysconfdir}/amavisd/amavisd.conf +%config(noreplace) %{_sysconfdir}/clamd.d/amavisd.conf +%config(noreplace) %{_sysconfdir}/sysconfig/clamd.amavisd +%config(noreplace) %{_sysconfdir}/cron.daily/amavisd +%{_sbindir}/amavisd +%{_sbindir}/clamd.amavisd +%{_bindir}/amavisd-* +%dir %attr(750,amavis,amavis) %{_localstatedir}/spool/amavisd +%dir %attr(750,amavis,amavis) %{_localstatedir}/spool/amavisd/tmp +%dir %attr(750,amavis,amavis) %{_localstatedir}/spool/amavisd/db +%dir %attr(750,amavis,amavis) %{_localstatedir}/spool/amavisd/quarantine +%if 0%{?fedora}%{?rhel} > 6 +%attr(644,root,root) %{_tmpfilesdir}/amavisd-new.conf +%endif +%dir %attr(755,amavis,amavis) %{_localstatedir}/run/amavisd +%dir %attr(770,amavis,clamupdate) %{_localstatedir}/run/clamd.amavisd + +%files snmp +%defattr(-,root,root,-) +%doc AMAVIS-MIB.txt +%attr(755,root,root) %{_initrddir}/amavisd-snmp +%{_sbindir}/amavisd-snmp-subagent + +%changelog +* Sun Aug 03 2014 Juan Orti Alcaine 2.9.1-2 +- Add patch to fix releasing mail from sql quarantine + +* Mon Jun 30 2014 Juan Orti Alcaine 2.9.1-1 +- Update to version 2.9.1 + +* Fri Jun 27 2014 Juan Orti Alcaine 2.9.0-2 +- Change permissions of /var/spool/amavisd folders to 750. Fix bug #906396 + +* Thu Jun 26 2014 Juan Orti Alcaine 2.9.0-1 +- Update to version 2.9.0 +- Rework amavisd-conf.patch + +* Sun Feb 16 2014 Juan Orti Alcaine 2.8.1-1 +- Update to version 2.8.1 +- Add missing dependencies +- Place tmpfiles conf in _tmpfilesdir +- Use _localstatedir macro +- Change clamd socket location to /var/run/clamd.amavisd/clamd.sock + +* Mon Dec 02 2013 Robert Scheck 2.8.0-8 +- Commented ripole(1) decoder as the binary is not packaged +- Commented tnef(1) decoder as the perl module is a dependency + +* Sat Aug 03 2013 Fedora Release Engineering - 2.8.0-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild + +* Thu Jul 18 2013 Petr Pisar - 2.8.0-6 +- Perl 5.18 rebuild + +* Fri May 10 2013 Adam Williamson - 2.8.0-5 +- init_network.patch: don't source /etc/sysconfig/network in initscript + +* Wed Feb 13 2013 Fedora Release Engineering - 2.8.0-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild + +* Fri Oct 19 2012 Robert Scheck 2.8.0-3 +- Added requirements to lrzip and unzoo for unpacking + +* Wed Jul 18 2012 Fedora Release Engineering - 2.8.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild + +* Sun Jul 08 2012 Robert Scheck 2.8.0-1 +- Upgrade to 2.8.0 + +* Fri Jun 29 2012 Robert Scheck 2.6.6-3 +- Various minor spec file cleanups + +* Thu Jan 12 2012 Fedora Release Engineering - 2.6.6-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild + +* Sun Sep 18 2011 Steven Pritchard 2.6.6-1 +- Update to 2.6.6. +- Make /var/spool/amavisd g+x (BZ 548234). +- %%ghost /var/run/amavisd and add /etc/tmpfiles.d/amavisd-new-tmpfiles.conf + (BZ 656544, 676430, 710984, 734271). +- Also add /var/run/clamd.amavisd (which seems to be a bug itself). Fixes + BZ 696725. + +* Mon Feb 07 2011 Fedora Release Engineering - 2.6.4-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild + +* Tue Nov 9 2010 Marcela Mašláňová 2.6.4-2 +- 561389 patch from Sandro Janke - change stderr to stdout + +* Mon Aug 10 2009 Steven Pritchard 2.6.4-1 +- Update to 2.6.4. +- Make a snmp sub-package for amavisd-snmp-subagent. + +* Fri Jul 24 2009 Fedora Release Engineering - 2.6.2-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild + +* Sun Mar 01 2009 Robert Scheck 2.6.2-3 +- Re-diffed amavisd-new configuration patch for no fuzz + +* Mon Feb 23 2009 Fedora Release Engineering - 2.6.2-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild + +* Wed Dec 17 2008 Steven Pritchard 2.6.2-1 +- Update to 2.6.2. +- Drop smtpdaemon dependency (BZ# 438078). + +* Tue Jul 15 2008 Steven Pritchard 2.6.1-1 +- Update to 2.6.1. +- Require Crypt::OpenSSL::RSA, Digest::SHA, Digest::SHA1, IO::Socket::SSL, + Mail::DKIM, Net::SSLeay, NetAddr::IP, and Socket6. + +* Mon Jul 14 2008 Tom "spot" Callaway 2.5.2-3 +- fix license tag +- fix db patch to apply with fuzz=0 + +* Sun Aug 12 2007 Steven Pritchard 2.5.2-2 +- Fix pre/preun/post dependencies and improve scriptlets a bit. +- Drop dependencies on DBD::mysql and Mail::SPF::Query. +- Add dependencies on IO::Socket::INET6, Mail::SPF, and altermime. + +* Sun Jul 08 2007 Steven Pritchard 2.5.2-1 +- Update to 2.5.2. + +* Fri Jun 22 2007 Steven Pritchard 2.5.2-0.1.rc2 +- Update to 2.5.2-rc2. + +* Fri Jun 22 2007 Steven Pritchard 2.5.1-1 +- Update to 2.5.1. +- Fix amavis-clamd.conf (bug #237252). +- Update amavisd-conf.patch. +- Require p7zip and tar. +- Improve pre/preun/post scripts. + +* Thu Feb 22 2007 Steven Pritchard 2.4.5-1 +- Update to 2.4.5. + +* Mon Dec 18 2006 Steven Pritchard 2.4.4-2 +- Fix the path to amavisd.sock in amavisd-release. + +* Tue Dec 05 2006 Steven Pritchard 2.4.4-1 +- Update to 2.4.4. + +* Fri Dec 01 2006 Steven Pritchard 2.4.3-5 +- Add missing amavisd-release script. + +* Tue Nov 14 2006 Steven Pritchard 2.4.3-4 +- Rebuild. + +* Tue Nov 14 2006 Steven Pritchard 2.4.3-3 +- Add dependency on file. (#215492) + +* Sat Oct 14 2006 Steven Pritchard 2.4.3-2 +- Fix permissions on the cron.daily script. + +* Tue Oct 10 2006 Steven Pritchard 2.4.3-1 +- Update to 2.4.3. +- Add quarantine directory and instructions for enabling it. +- Add tmpwatch cron script. + +* Thu Sep 28 2006 Steven Pritchard 2.4.2-4 +- Drop lha dependency and add arj. + +* Sun Sep 17 2006 Steven Pritchard 2.4.2-3 +- Rebuild. + +* Wed Aug 02 2006 Steven Pritchard 2.4.2-2 +- Fix path to clamd socket in amavisd-conf.patch. + +* Mon Jul 31 2006 Steven Pritchard 2.4.2-1 +- Update to 2.4.2 +- Fix permissions on README.fedora (bug #200769) + +* Tue Jun 20 2006 Steven Pritchard 2.4.1-1 +- Update to 2.4.1 +- Drop zoo dependency due to Extras maintainer security concerns + +* Tue Apr 25 2006 Steven Pritchard 2.4.0-1 +- Update to 2.4.0 + +* Thu Feb 02 2006 Steven Pritchard 2.3.3-5 +- Add dist to Release + +* Wed Sep 21 2005 Steven Pritchard 2.3.3-4 +- Add TODO and amavisd.conf-* to %%doc + +* Mon Sep 19 2005 Steven Pritchard 2.3.3-3 +- Add amavisd-db.patch to fix the path to the db directory in + amavisd-agent and amavisd-nanny. (Thanks to Julien Tognazzi.) + +* Fri Sep 02 2005 Steven Pritchard 2.3.3-2 +- Requires: perl(Compress::Zlib) >= 1.35 + +* Thu Sep 01 2005 Steven Pritchard 2.3.3-1 +- Update to 2.3.3 +- Remove explicit dependencies on core perl modules + +* Fri Aug 19 2005 Steven Pritchard 2.3.2-10 +- Recommend using 127.0.0.1 instead of localhost in README.fedora +- .deb support requires ar + +* Wed Aug 17 2005 Steven Pritchard 2.3.2-9 +- Set $virus_admin, $mailfrom_notify_admin, $mailfrom_notify_recip, + and $mailfrom_notify_spamadmin to undef in the default config to + turn off notification emails + +* Fri Aug 12 2005 Steven Pritchard 2.3.2-8 +- Add dependencies for freeze, lzop, nomarch, zoo, cabextract + +* Wed Jul 27 2005 Steven Pritchard 2.3.2-7 +- Add README.fedora with simplified Postfix instructions + +* Mon Jul 25 2005 Steven Pritchard 2.3.2-6 +- Create /var/spool/amavisd/db + +* Thu Jul 21 2005 Steven Pritchard 2.3.2-5 +- Add perl(Mail::SPF::Query) (now packaged for Extras) dependency +- Drop /var/log/amavisd since we weren't using it +- Fix paths for clamd.sock and amavisd.pid in a couple of places + +* Tue Jul 12 2005 Steven Pritchard 2.3.2-4 +- Add a bunch of other missing Requires (both actually required modules + and optional modules) + +* Tue Jul 12 2005 Steven Pritchard 2.3.2-3 +- Add missing Requires: perl(Convert::TNEF) + +* Wed Jul 06 2005 Steven Pritchard 2.3.2-2 +- Fix init script ordering +- Don't enable amavisd by default + +* Wed Jul 06 2005 Steven Pritchard 2.3.2-1 +- Update to 2.3.2 + +* Wed Jun 29 2005 Steven Pritchard 2.3.2-0.1.rc1 +- Update to 2.3.2-rc1 +- Fedora Extras clamav integration +- Drop amavisd-syslog.patch (Unix::Syslog is in Extras) + +* Mon Feb 23 2004 Steven Pritchard 0.20030616.p7-0.fdr.0.1 +- Add amavisd-syslog.patch to eliminate Unix::Syslog dependency +- Add in clamd helper +- Fix up init script +- Initial package diff --git a/amavisd-snmp.init b/amavisd-snmp.init new file mode 100644 index 0000000..8ce2369 --- /dev/null +++ b/amavisd-snmp.init @@ -0,0 +1,67 @@ +#!/bin/sh +# +# amavisd-snmp: Init script for amavisd-snmp-subagent +# +# chkconfig: - 79 31 +# description: Exports amavisd SNMP data +# pidfile: /var/run/amavisd-snmp-subagent.pid + +# Source function library. +. /etc/init.d/functions + +RETVAL=0 + +start() { + echo -n $"Starting amavisd-snmp-subagent: " + [ $RETVAL -eq 0 ] && { daemon amavisd-snmp-subagent -P /var/run/amavisd-snmp-subagent.pid; RETVAL=$?; }; + [ $RETVAL -eq 0 ] && { touch /var/lock/subsys/amavisd-snmp-subagent; RETVAL=$?; }; + [ $RETVAL -eq 0 ] && echo_success || echo_failure + echo +} + +stop() { + echo -n $"Shutting down amavisd-snmp-subagent: " + kill $( cat /var/run/amavisd-snmp-subagent.pid ) || RETVAL=1 + [ $RETVAL -eq 0 ] && { rm -f /var/lock/subsys/amavisd-snmp-subagent; RETVAL=$?; }; + [ $RETVAL -eq 0 ] && echo_success || echo_failure + echo +} + +restart() { + stop + start +} + +# See how we were called. +case "$1" in + start) + start + ;; + + stop) + stop + ;; + + status) + status amavisd-snmp-subagent + ;; + + reload) + restart + ;; + + restart) + restart + ;; + + condrestart) + [ -f /var/lock/subsys/amavisd-snmp-subagent ] && restart || : + ;; + + *) + echo $"Usage: $0 {start|stop|status|restart|condrestart}" + exit 1 +esac + +exit $RETVAL + diff --git a/amavisd.cron b/amavisd.cron new file mode 100644 index 0000000..3e408d9 --- /dev/null +++ b/amavisd.cron @@ -0,0 +1,2 @@ +/usr/sbin/tmpwatch 24 /var/spool/amavisd/tmp +/usr/sbin/tmpwatch -d 720 /var/spool/amavisd/quarantine diff --git a/dead.package b/dead.package deleted file mode 100644 index f76cc4b..0000000 --- a/dead.package +++ /dev/null @@ -1 +0,0 @@ -Renamed to amavis diff --git a/sources b/sources new file mode 100644 index 0000000..d81113a --- /dev/null +++ b/sources @@ -0,0 +1 @@ +2b83d60b49855943c297743db0029218 amavisd-new-2.9.1.tar.xz