Compare commits

..

13 commits

Author SHA1 Message Date
Juan Orti Alcaine
fe74e64c86 Remove lrzip 2017-12-12 14:53:27 +01:00
Juan Orti Alcaine
89d07ca25c Remove %defattr 2016-01-26 13:24:23 +01:00
Juan Orti Alcaine
27c8fbc476 Add patch to fix releasing mail from sql quarantine 2014-08-03 23:15:43 +02:00
Juan Orti Alcaine
28f1346e53 Update to 2.9.1 2014-06-28 18:52:36 +02:00
Juan Orti Alcaine
b9fb9ea55c Change permissions of /var/spool/amavisd folders to 750. Fix bug #906396 2014-06-27 17:23:11 +02:00
Juan Orti Alcaine
4c7ca9ad21 Update to 2.9.0 and fix missing dependencies 2014-06-26 12:57:46 +02:00
Robert Scheck
a9e6ff24bc Merge remote branch 'origin/master' into el6 2013-12-02 16:30:56 +01:00
Robert Scheck
f79ab9aa96 Merge remote branch 'origin/master' into el6
Conflicts:
	amavisd-new.spec
2013-02-22 02:18:21 +01:00
Jan-Frode Myklebust
366067a4a1 Merge branch 'f14' into el6 2011-03-28 23:52:44 +02:00
Marcela Mašláňová
b4f33d302b 561389 patch from Sandro Janke - change stderr to stdout 2010-11-09 09:46:12 +01:00
Fedora Release Engineering
8f85069be6 dist-git conversion 2010-07-28 09:49:50 +00:00
Dennis Gilmore
4dbe7cab19 Initialize branch EL-6 for amavisd-new 2010-05-08 01:42:43 +00:00
Bill Nottingham
1c68cbe19e Fix typo that causes a failure to update the common directory. (releng
#2781)
2009-11-26 01:27:16 +00:00
18 changed files with 930 additions and 1 deletions

3
.gitignore vendored Normal file
View file

@ -0,0 +1,3 @@
amavisd-new-2.8.0.tar.gz
/amavisd-new-2.9.0.tar.xz
/amavisd-new-2.9.1.tar.xz

68
README.fedora Normal file
View file

@ -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.

24
README.quarantine Normal file
View file

@ -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.

20
amavis-clamd.conf Normal file
View file

@ -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/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/spool/amavisd/clamd.sock

7
amavis-clamd.init Normal file
View file

@ -0,0 +1,7 @@
#!/bin/bash
#
# chkconfig: - 78 32
# description: The clamd server running for amavisd
CLAMD_SERVICE=amavisd
. /usr/share/clamav/clamd-wrapper

3
amavis-clamd.sysconfig Normal file
View file

@ -0,0 +1,3 @@
CLAMD_CONFIGFILE=/etc/clamd.d/amavisd.conf
CLAMD_SOCKET=/var/spool/amavisd/clamd.sock
CLAMD_OPTIONS=

16
amavisd-condrestart.patch Normal file
View file

@ -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

24
amavisd-init.patch Normal file
View file

@ -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}

View file

@ -0,0 +1,21 @@
diff -up amavisd-new-2.6.4/amavisd.err amavisd-new-2.6.4/amavisd
--- amavisd-new-2.6.4/amavisd.err 2010-11-09 09:24:54.065896574 +0100
+++ amavisd-new-2.6.4/amavisd 2010-11-09 09:25:59.192229627 +0100
@@ -14014,14 +14014,14 @@ eval {
my($msg) = !defined($killed_amavisd_pid) ? undef :
"Daemon [$killed_amavisd_pid] terminated by SIG$kill_sig_used";
if ($cmd eq 'stop') {
- if (defined $msg) { do_log(2,"%s",$msg); print STDERR "$msg\n" }
+ if (defined $msg) { do_log(2,"%s",$msg); print STDOUT "$msg\n" }
exit(0);
}
if (defined $killed_amavisd_pid) {
- print STDERR "$msg, waiting for dust to settle...\n";
+ print STDOUT "$msg, waiting for dust to settle...\n";
sleep 5; # wait for the TCP socket to be released
}
- print STDERR "becoming a new daemon...\n";
+ print STDOUT "becoming a new daemon...\n";
}
1;
} or do {

View file

@ -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"

View file

@ -0,0 +1,158 @@
From 81c7c660e6e0620c6616c0c7acc6064cb482117f Mon Sep 17 00:00:00 2001
From: Juan Orti Alcaine <j.orti.alcaine@gmail.com>
Date: Tue, 12 Dec 2017 14:48:37 +0100
Subject: [PATCH] amavisd-new-2.9.1-conf.patch
---
amavisd-agent | 2 +-
amavisd-nanny | 2 +-
amavisd.conf | 58 +++++++++++++++++++++++++++++-----------------------------
3 files changed, 31 insertions(+), 31 deletions(-)
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..13e9199 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
@@ -326,8 +326,8 @@ $banned_filename_re = new_RE(
['lzma', \&do_uncompress,
['lzmadec', 'xz -dc --format=lzma',
'lzma -dc', 'unlzma -c', 'lzcat', 'lzmadec'] ],
- ['lrz', \&do_uncompress,
- ['lrzip -q -k -d -o -', 'lrzcat -q -k'] ],
+# ['lrz', \&do_uncompress,
+# ['lrzip -q -k -d -o -', 'lrzcat -q -k'] ],
['lzo', \&do_uncompress, 'lzop -d'],
['rpm', \&do_uncompress, ['rpm2cpio.pl', 'rpm2cpio'] ],
[['cpio','tar'], \&do_pax_cpio, ['pax', 'gcpio', 'cpio'] ],
@@ -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/spool/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!
--
2.14.3

View file

@ -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

View file

@ -0,0 +1,2 @@
d /var/run/amavisd 755 amavis amavis -
d /var/run/clamd.amavisd 755 amavis amavis -

450
amavisd-new.spec Normal file
View file

@ -0,0 +1,450 @@
#%%define prerelease rc2
Summary: Email filter with virus scanner and spamassassin support
Name: amavisd-new
Version: 2.9.1
Release: 3%{?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.1-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)
Requires: clamd
Requires: tmpwatch
Requires: crontabs
Requires: binutils
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: 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}
touch $RPM_BUILD_ROOT%{_localstatedir}/spool/amavisd/clamd.sock
mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/run/{amavisd,clamd.amavisd}
%if 0%{?fedora}%{?rhel} > 6
install -D -m 644 %{SOURCE8} $RPM_BUILD_ROOT%{_sysconfdir}/tmpfiles.d/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
%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
%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
%ghost %{_localstatedir}/spool/amavisd/clamd.sock
%if 0%{?fedora}%{?rhel} > 6
%attr(644,root,root) %{_sysconfdir}/tmpfiles.d/amavisd-new.conf
%ghost %dir %attr(755,amavis,amavis) %{_localstatedir}/run/amavisd
%ghost %dir %attr(755,amavis,amavis) %{_localstatedir}/run/clamd.amavisd
%else
%dir %attr(755,amavis,amavis) %{_localstatedir}/run/amavisd
%dir %attr(755,amavis,amavis) %{_localstatedir}/run/clamd.amavisd
%endif
%files snmp
%doc AMAVIS-MIB.txt
%attr(755,root,root) %{_initrddir}/amavisd-snmp
%{_sbindir}/amavisd-snmp-subagent
%changelog
* Tue Dec 12 2017 Juan Orti Alcaine <jorti@fedoraproject.org> 2.9.1-3
- Remove lrzip
* Sun Aug 03 2014 Juan Orti Alcaine <jorti@fedoraproject.org> 2.9.1-2
- Add patch to fix releasing mail from sql quarantine
* Sat Jun 28 2014 Juan Orti Alcaine <jorti@fedoraproject.org> 2.9.1-1
- Update to 2.9.1
* Fri Jun 27 2014 Juan Orti Alcaine <jorti@fedoraproject.org> 2.9.0-2
- Change permissions of /var/spool/amavisd folders to 750. Fix bug #906396
* Thu Jun 26 2014 Juan Orti Alcaine <jorti@fedoraproject.org> - 2.9.0-1
- Update to version 2.9.0
- Rework amavisd-new-2.9.0-conf.patch
- Fix missing dependencies
* Mon Dec 02 2013 Robert Scheck <robert@fedoraproject.org> 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 <rel-eng@lists.fedoraproject.org> - 2.8.0-7
- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
* Thu Jul 18 2013 Petr Pisar <ppisar@redhat.com> - 2.8.0-6
- Perl 5.18 rebuild
* Fri May 10 2013 Adam Williamson <awilliam@redhat.com> - 2.8.0-5
- init_network.patch: don't source /etc/sysconfig/network in initscript
* Wed Feb 13 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.8.0-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
* Fri Oct 19 2012 Robert Scheck <robert@fedoraproject.org> 2.8.0-3
- Added requirements to lrzip and unzoo for unpacking
* Wed Jul 18 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.8.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
* Sun Jul 08 2012 Robert Scheck <robert@fedoraproject.org> 2.8.0-1
- Upgrade to 2.8.0
* Fri Jun 29 2012 Robert Scheck <robert@fedoraproject.org> 2.6.6-3
- Various minor spec file cleanups
* Thu Jan 12 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.6.6-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
* Sun Sep 18 2011 Steven Pritchard <steve@kspei.com> 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 <rel-eng@lists.fedoraproject.org> - 2.6.4-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
* Tue Nov 9 2010 Marcela Mašláňová <mmaslano@redhat.com> 2.6.4-2
- 561389 patch from Sandro Janke - change stderr to stdout
* Mon Aug 10 2009 Steven Pritchard <steve@kspei.com> 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 <rel-eng@lists.fedoraproject.org> - 2.6.2-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild
* Sun Mar 01 2009 Robert Scheck <robert@fedoraproject.org> 2.6.2-3
- Re-diffed amavisd-new configuration patch for no fuzz
* Mon Feb 23 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.6.2-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild
* Wed Dec 17 2008 Steven Pritchard <steve@kspei.com> 2.6.2-1
- Update to 2.6.2.
- Drop smtpdaemon dependency (BZ# 438078).
* Tue Jul 15 2008 Steven Pritchard <steve@kspei.com> 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 <tcallawa@redhat.com> 2.5.2-3
- fix license tag
- fix db patch to apply with fuzz=0
* Sun Aug 12 2007 Steven Pritchard <steve@kspei.com> 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 <steve@kspei.com> 2.5.2-1
- Update to 2.5.2.
* Fri Jun 22 2007 Steven Pritchard <steve@kspei.com> 2.5.2-0.1.rc2
- Update to 2.5.2-rc2.
* Fri Jun 22 2007 Steven Pritchard <steve@kspei.com> 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 <steve@kspei.com> 2.4.5-1
- Update to 2.4.5.
* Mon Dec 18 2006 Steven Pritchard <steve@kspei.com> 2.4.4-2
- Fix the path to amavisd.sock in amavisd-release.
* Tue Dec 05 2006 Steven Pritchard <steve@kspei.com> 2.4.4-1
- Update to 2.4.4.
* Fri Dec 01 2006 Steven Pritchard <steve@kspei.com> 2.4.3-5
- Add missing amavisd-release script.
* Tue Nov 14 2006 Steven Pritchard <steve@kspei.com> 2.4.3-4
- Rebuild.
* Tue Nov 14 2006 Steven Pritchard <steve@kspei.com> 2.4.3-3
- Add dependency on file. (#215492)
* Sat Oct 14 2006 Steven Pritchard <steve@kspei.com> 2.4.3-2
- Fix permissions on the cron.daily script.
* Tue Oct 10 2006 Steven Pritchard <steve@kspei.com> 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 <steve@kspei.com> 2.4.2-4
- Drop lha dependency and add arj.
* Sun Sep 17 2006 Steven Pritchard <steve@kspei.com> 2.4.2-3
- Rebuild.
* Wed Aug 02 2006 Steven Pritchard <steve@kspei.com> 2.4.2-2
- Fix path to clamd socket in amavisd-conf.patch.
* Mon Jul 31 2006 Steven Pritchard <steve@kspei.com> 2.4.2-1
- Update to 2.4.2
- Fix permissions on README.fedora (bug #200769)
* Tue Jun 20 2006 Steven Pritchard <steve@kspei.com> 2.4.1-1
- Update to 2.4.1
- Drop zoo dependency due to Extras maintainer security concerns
* Tue Apr 25 2006 Steven Pritchard <steve@kspei.com> 2.4.0-1
- Update to 2.4.0
* Thu Feb 02 2006 Steven Pritchard <steve@kspei.com> 2.3.3-5
- Add dist to Release
* Wed Sep 21 2005 Steven Pritchard <steve@kspei.com> 2.3.3-4
- Add TODO and amavisd.conf-* to %%doc
* Mon Sep 19 2005 Steven Pritchard <steve@kspei.com> 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 <steve@kspei.com> 2.3.3-2
- Requires: perl(Compress::Zlib) >= 1.35
* Thu Sep 01 2005 Steven Pritchard <steve@kspei.com> 2.3.3-1
- Update to 2.3.3
- Remove explicit dependencies on core perl modules
* Fri Aug 19 2005 Steven Pritchard <steve@kspei.com> 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 <steve@kspei.com> 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 <steve@kspei.com> 2.3.2-8
- Add dependencies for freeze, lzop, nomarch, zoo, cabextract
* Wed Jul 27 2005 Steven Pritchard <steve@kspei.com> 2.3.2-7
- Add README.fedora with simplified Postfix instructions
* Mon Jul 25 2005 Steven Pritchard <steve@kspei.com> 2.3.2-6
- Create /var/spool/amavisd/db
* Thu Jul 21 2005 Steven Pritchard <steve@kspei.com> 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 <steve@kspei.com> 2.3.2-4
- Add a bunch of other missing Requires (both actually required modules
and optional modules)
* Tue Jul 12 2005 Steven Pritchard <steve@kspei.com> 2.3.2-3
- Add missing Requires: perl(Convert::TNEF)
* Wed Jul 06 2005 Steven Pritchard <steve@kspei.com> 2.3.2-2
- Fix init script ordering
- Don't enable amavisd by default
* Wed Jul 06 2005 Steven Pritchard <steve@kspei.com> 2.3.2-1
- Update to 2.3.2
* Wed Jun 29 2005 Steven Pritchard <steve@kspei.com> 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 <steve@kspei.com> 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

67
amavisd-snmp.init Normal file
View file

@ -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

2
amavisd.cron Normal file
View file

@ -0,0 +1,2 @@
/usr/sbin/tmpwatch 24 /var/spool/amavisd/tmp
/usr/sbin/tmpwatch -d 720 /var/spool/amavisd/quarantine

View file

@ -1 +0,0 @@
Renamed to amavis

1
sources Normal file
View file

@ -0,0 +1 @@
2b83d60b49855943c297743db0029218 amavisd-new-2.9.1.tar.xz