On 2026/06/25 08:36, Stuart Henderson wrote:
> On 2026/06/22 08:04, James J. Lippard wrote:
> > The mail/amavisd-new port is broken in OpenBSD 7.9 and also contains
> > the vulnerability CVE-2024-28054 (MIME boundary confusion which allows
> > bypassing scanners for attachments). The vuln is fixed in 2.13.1 and
> > current stable release is 2.14.0. Attached is a unified diff that
> > modifies Makefile and the existing patches to work on 2.14.0. (It's
> > also possible to add a few lines to do some pledge and unveil
> > restrictions in Amavis.pm which I'm running on my systems, but I've
> > left that out of this minimal set of changes to make it work.)
> >
> > Sent at giovanni's request since he no longer uses amavisd.
>
> Updated diff below.
actually, I've just committed Johan's small fix, so we've got something
working before the bigger change goes in. here's an updated diff taking
that into account.
Index: Makefile
===================================================================
RCS file: /cvs/ports/mail/amavisd-new/Makefile,v
diff -u -p -r1.56 Makefile
--- Makefile 25 Jun 2026 07:37:30 -0000 1.56
+++ Makefile 25 Jun 2026 07:38:33 -0000
@@ -1,15 +1,13 @@
COMMENT-main= interface between mailer MTA and content checkers
COMMENT-utils= utilities to monitor amavisd-new server
-V= 2.12.2
+V= 2.14.0
DISTNAME= amavis-v${V}
PKGNAME-main= amavisd-new-${V}
PKGNAME-utils= amavisd-new-utils-${V}
CATEGORIES= mail security
-REVISION-main= 1
-REVISION-utils= 0
-HOMEPAGE= http://www.amavis.org/
+HOMEPAGE= https://www.amavis.org/
MAINTAINER= Giovanni Bechis <[email protected]>
# BSD / GPLv2
@@ -35,6 +33,7 @@ RUN_DEPENDS= archivers/arc \
mail/p5-Mail-SpamAssassin \
mail/p5-Mail-DKIM>=0.31 \
mail/p5-MIME-tools \
+ misc/p5-File-LibMagic \
net/net-snmp \
net/p5-IO-Socket-INET6 \
net/p5-Net-LibIDN \
@@ -54,30 +53,41 @@ PKG_ARCH= *
MULTI_PACKAGES= -main -utils
pre-configure:
- ${SUBST_CMD} ${WRKSRC}/amavis-mc
- @perl -pi -e 's,/var/amavis,/${VARBASE}/amavisd,g' ${WRKSRC}/amavisd-*
- @perl -pi -e "s,= 'vscan',= '_vscan',g" ${WRKSRC}/amavisd-signer \
- ${WRKSRC}/amavisd.conf ${WRKSRC}/amavisd.conf-default
+ ${SUBST_CMD} ${WRKSRC}/bin/amavis-mc
+ @perl -pi -e 's,/var/amavis,/${VARBASE}/amavisd,g' \
+ ${WRKSRC}/bin/amavisd-*
+ @perl -pi -e "s,= 'vscan',= '_vscan',g" \
+ ${WRKSRC}/bin/amavisd-signer \
+ ${WRKSRC}/conf/amavisd.conf \
+ ${WRKSRC}/conf/amavisd.conf-default
do-install:
- cd ${WRKSRC}; ${INSTALL_SCRIPT} amavisd amavis-mc amavis-services \
+ cd ${WRKSRC}/bin; ${INSTALL_SCRIPT} amavisd amavis-mc amavis-services \
${PREFIX}/sbin/
- cd ${WRKSRC}; ${INSTALL_SCRIPT} amavisd-agent amavisd-nanny \
+ cd ${WRKSRC}/bin; ${INSTALL_SCRIPT} amavisd-agent amavisd-nanny \
amavisd-release amavisd-signer amavisd-snmp-subagent \
amavisd-submit amavisd-status amavisd-snmp-subagent-zmq \
- p0f-analyzer.pl ${PREFIX}/bin/
- ${INSTALL_DATA} ${WRKSRC}/JpegTester.pm \
- ${PREFIX}/libdata/perl5/site_perl/JpegTester.pm
- ${INSTALL_DATA} ${WRKSRC}/TinyRedis.pm \
- ${PREFIX}/libdata/perl5/site_perl/TinyRedis.pm
+ ${PREFIX}/bin/
+
+ cp -r ${WRKSRC}/lib/* ${PREFIX}/libdata/perl5/site_perl/
+ find ${PREFIX}/libdata/perl5/site_perl/ -name '*${PATCHORIG}' -delete
+
+ ${INSTALL_SCRIPT} ${WRKSRC}/contrib/p0f-analyzer.pl ${PREFIX}/bin/
+ ${INSTALL_DATA} ${WRKSRC}/contrib/JpegTester.pm \
+ ${PREFIX}/libdata/perl5/site_perl/JpegTester.pm
+
${INSTALL_DATA_DIR} ${PREFIX}/share/doc/amavisd-new
- cd ${WRKSRC}; ${INSTALL_DATA} AAAREADME.first INSTALL LDAP.schema \
- LDAP.ldif LICENSE MANIFEST README_FILES/README.* RELEASE_NOTES \
+ cd ${WRKSRC}; ${INSTALL_DATA} AAAREADME.first contrib/LDAP* \
+ LICENSE MANIFEST.old README_FILES/README.* RELEASE_NOTES \
${PREFIX}/share/doc/amavisd-new/
+
${INSTALL_DATA_DIR} ${PREFIX}/share/snmp/mibs
- ${INSTALL_DATA} ${WRKSRC}/AMAVIS-MIB.txt ${PREFIX}/share/snmp/mibs
+ ${INSTALL_DATA} ${WRKSRC}/AMAVIS-MIB.txt ${PREFIX}/share/snmp/mibs/
+
${INSTALL_DATA_DIR} ${PREFIX}/share/examples/amavisd-new
- cd ${WRKSRC}; ${INSTALL_DATA} amavisd*.conf amavisd.conf-default \
+ cd ${WRKSRC}/conf; ${INSTALL_DATA} \
+ amavisd.conf-default \
+ amavisd{,-custom}.conf \
${PREFIX}/share/examples/amavisd-new/
.include <bsd.port.mk>
Index: distinfo
===================================================================
RCS file: /cvs/ports/mail/amavisd-new/distinfo,v
diff -u -p -r1.23 distinfo
--- distinfo 15 Jun 2022 08:16:30 -0000 1.23
+++ distinfo 25 Jun 2026 07:38:33 -0000
@@ -1,2 +1,2 @@
-SHA256 (amavis-v2.12.2.tar.bz2) = nbYZAQoxA1HFf/GDhc8G3W4GFgQS0+Uw8/6bG6IZ5Fc=
-SIZE (amavis-v2.12.2.tar.bz2) = 874946
+SHA256 (amavis-v2.14.0.tar.bz2) = aXPuWCsZNHnMsOfTda0ggFEjbuAxihcHHSYzl6KCMYk=
+SIZE (amavis-v2.14.0.tar.bz2) = 898335
Index: patches/patch-amavis-mc
===================================================================
RCS file: patches/patch-amavis-mc
diff -N patches/patch-amavis-mc
--- patches/patch-amavis-mc 11 Mar 2022 19:34:32 -0000 1.2
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,23 +0,0 @@
---- amavis-mc.orig Tue May 6 13:56:46 2014
-+++ amavis-mc Mon Jul 14 10:15:13 2014
-@@ -70,16 +70,16 @@ use vars qw(@path @services $daemon_user $daemon_group
-
- ### USER CONFIGURABLE:
-
--$daemon_user = 'vscan';
--$daemon_group = 'vscan';
-+$daemon_user = '_vscan';
-+$daemon_group = '_vscan';
-
--$pid_file = '/var/amavis/amavis-mc.pid';
-+$pid_file = '/var/amavisd/amavis-mc.pid';
-
- $log_level = 0;
- $syslog_ident = 'amavis-mc';
- $syslog_facility = LOG_MAIL;
-
--@path = qw(/usr/local/sbin /usr/local/bin /usr/sbin /sbin /usr/bin /bin);
-+@path = qw(${TRUEPREFIX}/sbin ${TRUEPREFIX}/bin /usr/sbin /sbin /usr/bin
/bin);
-
- @services = (
- { cmd => 'amavis-services msg-forwarder' },
Index: patches/patch-amavis-services
===================================================================
RCS file: patches/patch-amavis-services
diff -N patches/patch-amavis-services
--- patches/patch-amavis-services 11 Mar 2022 19:34:32 -0000 1.2
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,11 +0,0 @@
---- amavis-services.orig Fri Jul 11 08:42:24 2014
-+++ amavis-services Fri Jul 11 08:42:55 2014
-@@ -71,7 +71,7 @@ $log_level = 0; # 0..5
- $syslog_facility = LOG_MAIL;
- $syslog_ident = $myproduct_name;
-
--$MYHOME = '/var/amavis';
-+$MYHOME = '/var/amavisd';
-
- # A socket to which amavisd child processes report their data.
- # should match one of the sockets in @zmq_sockets in amavisd.conf
Index: patches/patch-amavisd
===================================================================
RCS file: patches/patch-amavisd
diff -N patches/patch-amavisd
--- patches/patch-amavisd 25 Jun 2026 07:37:30 -0000 1.19
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,63 +0,0 @@
-Hunks 1, 5: Disable File::LibMagic in favour of safer file(1) from base.
-Hunks 4, 6: fix DKIM signing
-Hunks 2, 3: fix Crypto::OpenSSL::RSA
-
-Index: amavisd
---- amavisd.orig
-+++ amavisd
-@@ -12964,7 +12964,7 @@ sub after_chroot_init() {
- grep(/\.pm\z/, keys %INC)) {
- next if !grep($_ eq $m, qw(Amavis::Conf
- Archive::Tar Archive::Zip Compress::Zlib Compress::Raw::Zlib
-- Convert::TNEF Convert::UUlib File::LibMagic
-+ Convert::TNEF Convert::UUlib
- MIME::Entity MIME::Parser MIME::Tools Mail::Header Mail::Internet
- Digest::MD5 Digest::SHA Digest::SHA1 Crypt::OpenSSL::RSA
- Authen::SASL Authen::SASL::XS Authen::SASL::Cyrus Authen::SASL::Perl
-@@ -18790,7 +18790,7 @@ sub fetch_modules_extra() {
- auto::Net::SSLeay::dump_peer_certificate));
- }
- push(@modules, qw(Net::DNS::RR::TXT Text::ParseWords
-- auto::Crypt::OpenSSL::RSA::new_public_key)) if $extra_code_dkim;
-+ )) if $extra_code_dkim;
- push(@modules, 'Anomy::Sanitizer') if $enable_anomy_sanitizer;
- Amavis::Boot::fetch_modules('REQUIRED ADDITIONAL MODULES', 1, @modules);
-
-@@ -30827,10 +30827,6 @@ sub getSAPlugins {
- $mod_names{'Mail::SpamAssassin::Plugin::DKIM'}) {
- push(@modules, qw(
- Crypt::OpenSSL::RSA
-- auto::Crypt::OpenSSL::RSA::new_public_key
-- auto::Crypt::OpenSSL::RSA::new_key_from_parameters
-- auto::Crypt::OpenSSL::RSA::get_key_parameters
-- auto::Crypt::OpenSSL::RSA::import_random_seed
- Digest::SHA Error));
- }
- # HTML/HeadParser.pm
-@@ -30915,7 +30911,7 @@ sub new_SpamAssassin_instance {
- # PREFIX => '/usr/local',
- # DEF_RULES_DIR => '/usr/local/share/spamassassin',
- # LOCAL_RULES_DIR => '/etc/mail/spamassassin',
--# LOCAL_STATE_DIR => '/var/lib/spamassassin',
-+ LOCAL_STATE_DIR => '/var/db/spamassassin',
- #see Mail::SpamAssassin man page for other options
- };
- if ($sa_version_num < 3.001005 && !defined $sa_args->{LOCAL_STATE_DIR})
-@@ -31690,17 +31686,8 @@ BEGIN {
- import Amavis::Unpackers::NewFilename qw(consumed_bytes);
- }
-
--BEGIN {
- use vars qw($filemagic);
-- eval {
-- require File::LibMagic;
-- File::LibMagic->VERSION(1.00);
-- import File::LibMagic;
-- $filemagic = File::LibMagic->new;
-- } or do {
- undef $filemagic;
-- };
--}
-
- use subs @EXPORT_OK;
-
Index: patches/patch-amavisd-snmp-subagent-zmq
===================================================================
RCS file: patches/patch-amavisd-snmp-subagent-zmq
diff -N patches/patch-amavisd-snmp-subagent-zmq
--- patches/patch-amavisd-snmp-subagent-zmq 11 Mar 2022 19:34:32 -0000
1.2
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,11 +0,0 @@
---- amavisd-snmp-subagent-zmq.orig Fri Jul 11 10:03:13 2014
-+++ amavisd-snmp-subagent-zmq Fri Jul 11 10:10:01 2014
-@@ -1123,7 +1123,7 @@ my $keep_running = 1;
- if (!defined $mta_queue_dir) { # test for access to Postfix queue directory
- local($ENV{PATH}) = '/usr/sbin:/usr/local/sbin:/opt/postfix/sbin';
- $! = 0;
-- $mta_queue_dir = qx(postconf -h queue_directory);
-+ $mta_queue_dir = qx(postconf -h queue_directory 2>&1);
- if (!defined $mta_queue_dir) {
- if ($! != 0) {
- do_log(1, "no postfix (unable to run postconf command): $!");
Index: patches/patch-amavisd_conf
===================================================================
RCS file: patches/patch-amavisd_conf
diff -N patches/patch-amavisd_conf
--- patches/patch-amavisd_conf 11 Mar 2022 19:34:32 -0000 1.11
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,48 +0,0 @@
-Index: amavisd.conf
---- amavisd.conf.orig
-+++ amavisd.conf
-@@ -17,12 +17,12 @@ use strict;
- # truncation in /proc/<pid>/stat and ps -e output
-
- $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 = '_vscan'; # (no default; customary: _vscan or amavis), -u
-+$daemon_group = '_vscan'; # (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/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
-@@ -235,7 +235,7 @@ $banned_filename_re = new_RE(
-
- qr'.\.(exe|vbs|pif|scr|cpl)$'i, # banned extension - basic
- # qr'.\.(exe|vbs|pif|scr|cpl|bat|cmd|com)$'i, # banned extension - basic+cmd
--# qr'.\.(ade|adp|app|bas|bat|chm|cmd|com|cpl|crt|emf|exe|fxp|grp|hlp|hta|
-+#
qr'.\.(ade|adp|app|bas|bat|chm|cmd|com|cpl|crt|emf|exe|fxp|gadget|grp|hlp|hta|
- # inf|ini|ins|isp|js|jse|lib|lnk|mda|mdb|mde|mdt|mdw|mdz|msc|msi|
- # msp|mst|ocx|ops|pcd|pif|prg|reg|scr|sct|shb|shs|sys|vb|vbe|vbs|vxd|
- # wmf|wsc|wsf|wsh)$'ix, # banned extensions - long
-@@ -319,7 +319,7 @@ $banned_filename_re = new_RE(
- @decoders = (
- ['mail', \&do_mime_decode],
- # [[qw(asc uue hqx ync)], \&do_ascii], # not safe
-- ['F', \&do_uncompress, ['unfreeze', 'freeze -d', 'melt', 'fcat'] ],
-+# ['F', \&do_uncompress, ['unfreeze', 'freeze -d', 'melt', 'fcat'] ],
- ['Z', \&do_uncompress, ['uncompress', 'gzip -d', 'zcat'] ],
- ['gz', \&do_uncompress, 'gzip -d'],
- ['gz', \&do_gunzip],
-@@ -338,8 +338,8 @@ $banned_filename_re = new_RE(
- # ['/usr/local/heirloom/usr/5bin/pax', 'pax', 'gcpio', 'cpio']
- ['deb', \&do_ar, 'ar'],
- # ['a', \&do_ar, 'ar'], # unpacking .a seems an overkill
-- ['rar', \&do_unrar, ['unrar', 'rar'] ],
-- ['arj', \&do_unarj, ['unarj', 'arj'] ],
-+ ['rar', \&do_7zip, ['7z'] ],
-+ ['arj', \&do_7zip, ['7z'] ],
- ['arc', \&do_arc, ['nomarch', 'arc'] ],
- ['zoo', \&do_zoo, ['zoo', 'unzoo'] ],
- ['doc', \&do_ole, 'ripole'],
Index: patches/patch-amavisd_conf-default
===================================================================
RCS file: patches/patch-amavisd_conf-default
diff -N patches/patch-amavisd_conf-default
--- patches/patch-amavisd_conf-default 11 Mar 2022 19:34:32 -0000 1.6
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,26 +0,0 @@
---- amavisd.conf-default.orig Fri Feb 26 14:37:51 2016
-+++ amavisd.conf-default Fri Jul 1 01:02:59 2016
-@@ -16,9 +16,9 @@ use strict;
- # $mydomain = ... no useful default, should be set if used in expressions
- # $snmp_contact = '';
- # $snmp_location = '';
--# $daemon_user = undef;
--# $daemon_group = undef;
--# $MYHOME = '/var/amavis';
-+$daemon_user = _vscan;
-+$daemon_group = _vscan;
-+$MYHOME = '/var/amavisd';
- # $TEMPBASE = $MYHOME; # after-default
- # $db_home = "$MYHOME/db"; # after-default
- # $pid_file = "$MYHOME/amavisd.pid"; # after-default
-@@ -381,8 +381,8 @@ use strict;
- ### ['tar', \&do_tar], # no longer supported
- # ['deb', \&do_ar, \$ar],
- ### ['a', \&do_ar, \$ar], # unpacking .a seems an overkill
--# ['rar', \&do_unrar, \$unrar],
--# ['arj', \&do_unarj, \$unarj],
-+# ['rar', \&do_7zip, '7z'],
-+# ['arj', \&do_7zip, '7z'],
- # ['arc', \&do_arc, \$arc],
- # ['zoo', \&do_zoo, \$zoo],
- # ['doc', \&do_ole, \$ripole],
Index: patches/patch-bin_amavis-mc
===================================================================
RCS file: patches/patch-bin_amavis-mc
diff -N patches/patch-bin_amavis-mc
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ patches/patch-bin_amavis-mc 25 Jun 2026 07:38:33 -0000
@@ -0,0 +1,24 @@
+Index: bin/amavis-mc
+--- bin/amavis-mc.orig
++++ bin/amavis-mc
+@@ -73,16 +73,16 @@ use vars qw(@path @services $daemon_user @daemon_group
+
+ ### USER CONFIGURABLE:
+
+-$daemon_user = 'vscan';
+-@daemon_groups = 'vscan';
++$daemon_user = '_vscan';
++@daemon_groups = '_vscan';
+
+-$pid_file = '/var/amavis/amavis-mc.pid';
++$pid_file = '/var/amavisd/amavis-mc.pid';
+
+ $log_level = 0;
+ $syslog_ident = 'amavis-mc';
+ $syslog_facility = LOG_MAIL;
+
+-@path = qw(/usr/local/sbin /usr/local/bin /usr/sbin /sbin /usr/bin /bin);
++@path = qw(${TRUEPREFIX}/sbin ${TRUEPREFIX}/bin /usr/sbin /sbin /usr/bin
/bin);
+
+ @services = (
+ { cmd => 'amavis-services msg-forwarder' },
Index: patches/patch-bin_amavis-services
===================================================================
RCS file: patches/patch-bin_amavis-services
diff -N patches/patch-bin_amavis-services
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ patches/patch-bin_amavis-services 25 Jun 2026 07:38:33 -0000
@@ -0,0 +1,12 @@
+Index: bin/amavis-services
+--- bin/amavis-services.orig
++++ bin/amavis-services
+@@ -72,7 +72,7 @@ $log_level = 0; # 0..5
+ $syslog_facility = LOG_MAIL;
+ $syslog_ident = $myproduct_name;
+
+-$MYHOME = '/var/amavis';
++$MYHOME = '/var/amavisd';
+
+ # A socket to which amavisd child processes report their data.
+ # should match one of the sockets in @zmq_sockets in amavisd.conf
Index: patches/patch-conf_amavisd_conf
===================================================================
RCS file: patches/patch-conf_amavisd_conf
diff -N patches/patch-conf_amavisd_conf
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ patches/patch-conf_amavisd_conf 25 Jun 2026 07:38:33 -0000
@@ -0,0 +1,41 @@
+Index: conf/amavisd.conf
+--- conf/amavisd.conf.orig
++++ conf/amavisd.conf
+@@ -22,7 +22,7 @@ $daemon_user = 'vscan'; # (no default; customary
+
+ $mydomain = 'example.com'; # a convenient default for other settings
+
+-# $MYHOME = '/var/amavis'; # a convenient default for other settings, -H
++$MYHOME = '/var/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
+@@ -248,7 +248,7 @@ $banned_filename_re = new_RE(
+
+ qr'.\.(exe|vbs|pif|scr|cpl)$'i, # banned extension - basic
+ # qr'.\.(exe|vbs|pif|scr|cpl|bat|cmd|com)$'i, # banned extension - basic+cmd
+-# qr'.\.(ade|adp|app|bas|bat|chm|cmd|com|cpl|crt|emf|exe|fxp|grp|hlp|hta|
++#
qr'.\.(ade|adp|app|bas|bat|chm|cmd|com|cpl|crt|emf|exe|fxp|gadget|grp|hlp|hta|
+ # inf|ini|ins|isp|js|jse|lib|lnk|mda|mdb|mde|mdt|mdw|mdz|msc|msi|
+ # msp|mst|ocx|ops|pcd|pif|prg|reg|scr|sct|shb|shs|sys|vb|vbe|vbs|vxd|
+ # wmf|wsc|wsf|wsh)$'ix, # banned extensions - long
+@@ -332,7 +332,7 @@ $banned_filename_re = new_RE(
+ @decoders = (
+ ['mail', \&do_mime_decode],
+ # [[qw(asc uue hqx ync)], \&do_ascii], # not safe
+- ['F', \&do_uncompress, ['unfreeze', 'freeze -d', 'melt', 'fcat'] ],
++# ['F', \&do_uncompress, ['unfreeze', 'freeze -d', 'melt', 'fcat'] ],
+ ['Z', \&do_uncompress, ['uncompress', 'gzip -d', 'zcat'] ],
+ ['gz', \&do_uncompress, 'gzip -d'],
+ ['gz', \&do_gunzip],
+@@ -352,8 +352,8 @@ $banned_filename_re = new_RE(
+ # ['/usr/local/heirloom/usr/5bin/pax', 'pax', 'gcpio', 'cpio']
+ ['deb', \&do_ar, 'ar'],
+ # ['a', \&do_ar, 'ar'], # unpacking .a seems an overkill
+- ['rar', \&do_unrar, ['unrar', 'rar'] ],
+- ['arj', \&do_unarj, ['unarj', 'arj'] ],
++ ['rar', \&do_7zip, ['7z'] ],
++ ['arj', \&do_7zip, ['7z'] ],
+ ['arc', \&do_arc, ['nomarch', 'arc'] ],
+ ['zoo', \&do_zoo, ['zoo', 'unzoo'] ],
+ ['doc', \&do_ole, 'ripole'],
Index: patches/patch-conf_amavisd_conf-default
===================================================================
RCS file: patches/patch-conf_amavisd_conf-default
diff -N patches/patch-conf_amavisd_conf-default
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ patches/patch-conf_amavisd_conf-default 25 Jun 2026 07:38:33 -0000
@@ -0,0 +1,29 @@
+Index: conf/amavisd.conf-default
+--- conf/amavisd.conf-default.orig
++++ conf/amavisd.conf-default
+@@ -16,10 +16,10 @@ use strict;
+ # $mydomain = ... no useful default, should be set if used in expressions
+ # $snmp_contact = '';
+ # $snmp_location = '';
+-# $daemon_user = undef;
+-# $daemon_group = undef; # legacy
+-# @daemon_groups = $daemon_group // (); # after-default
+-# $MYHOME = '/var/amavis';
++$daemon_user = _vscan;
++$daemon_group = _vscan; # legacy
++@daemon_groups = $daemon_group // (); # after-default
++$MYHOME = '/var/amavisd';
+ # $TEMPBASE = $MYHOME; # after-default
+ # $db_home = "$MYHOME/db"; # after-default
+ # $pid_file = "$MYHOME/amavisd.pid"; # after-default
+@@ -383,8 +383,8 @@ use strict;
+ ### ['tar', \&do_tar], # no longer supported
+ # ['deb', \&do_ar, \$ar],
+ ### ['a', \&do_ar, \$ar], # unpacking .a seems an overkill
+-# ['rar', \&do_unrar, \$unrar],
+-# ['arj', \&do_unarj, \$unarj],
++# ['rar', \&do_7zip, '7z'],
++# ['arj', \&do_7zip, '7z'],
+ # ['arc', \&do_arc, \$arc],
+ # ['zoo', \&do_zoo, \$zoo],
+ # ['doc', \&do_ole, \$ripole],
Index: patches/patch-lib_Amavis_Conf_pm
===================================================================
RCS file: patches/patch-lib_Amavis_Conf_pm
diff -N patches/patch-lib_Amavis_Conf_pm
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ patches/patch-lib_Amavis_Conf_pm 25 Jun 2026 07:38:33 -0000
@@ -0,0 +1,12 @@
+Index: lib/Amavis/Conf.pm
+--- lib/Amavis/Conf.pm.orig
++++ lib/Amavis/Conf.pm
+@@ -467,7 +467,7 @@ BEGIN { # init_primary: version, base policy bank
+ #
+ BEGIN {
+ # serves only as a quick default for other configuration settings
+- $MYHOME = '/var/amavis';
++ $MYHOME = '/var/amavisd';
+ $mydomain = '!change-mydomain-variable!.example.com';#intentionally bad
deflt
+
+ # Create debugging output - true: log to stderr; false: log to syslog/file
Index: patches/patch-lib_Amavis_SpamControl_SpamAssassin_pm
===================================================================
RCS file: patches/patch-lib_Amavis_SpamControl_SpamAssassin_pm
diff -N patches/patch-lib_Amavis_SpamControl_SpamAssassin_pm
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ patches/patch-lib_Amavis_SpamControl_SpamAssassin_pm 25 Jun 2026
07:38:33 -0000
@@ -0,0 +1,12 @@
+Index: lib/Amavis/SpamControl/SpamAssassin.pm
+--- lib/Amavis/SpamControl/SpamAssassin.pm.orig
++++ lib/Amavis/SpamControl/SpamAssassin.pm
+@@ -243,7 +243,7 @@ sub new_SpamAssassin_instance {
+ # PREFIX => '/usr/local',
+ # DEF_RULES_DIR => '/usr/local/share/spamassassin',
+ # LOCAL_RULES_DIR => '/etc/mail/spamassassin',
+-# LOCAL_STATE_DIR => '/var/lib/spamassassin',
++ LOCAL_STATE_DIR => '/var/db/spamassassin',
+ #see Mail::SpamAssassin man page for other options
+ };
+ if ($sa_version_num < 3.001005 && !defined $sa_args->{LOCAL_STATE_DIR})
Index: pkg/PLIST-main
===================================================================
RCS file: /cvs/ports/mail/amavisd-new/pkg/PLIST-main,v
diff -u -p -r1.7 PLIST-main
--- pkg/PLIST-main 8 Nov 2022 11:14:48 -0000 1.7
+++ pkg/PLIST-main 25 Jun 2026 07:38:33 -0000
@@ -8,19 +8,103 @@ bin/amavisd-release
bin/amavisd-signer
bin/amavisd-submit
bin/p0f-analyzer.pl
+libdata/perl5/site_perl/Amavis/
+libdata/perl5/site_perl/Amavis.pm
+libdata/perl5/site_perl/Amavis/AV.pm
+libdata/perl5/site_perl/Amavis/Boot.pm
+libdata/perl5/site_perl/Amavis/Conf.pm
+libdata/perl5/site_perl/Amavis/Custom.pm
+libdata/perl5/site_perl/Amavis/DB/
+libdata/perl5/site_perl/Amavis/DB.pm
+libdata/perl5/site_perl/Amavis/DB/SNMP.pm
+libdata/perl5/site_perl/Amavis/DKIM/
+libdata/perl5/site_perl/Amavis/DKIM.pm
+libdata/perl5/site_perl/Amavis/DKIM/CustomSigner.pm
+libdata/perl5/site_perl/Amavis/DbgLog.pm
+libdata/perl5/site_perl/Amavis/Expand.pm
+libdata/perl5/site_perl/Amavis/IO/
+libdata/perl5/site_perl/Amavis/IO/FileHandle.pm
+libdata/perl5/site_perl/Amavis/IO/RW.pm
+libdata/perl5/site_perl/Amavis/IO/SQL.pm
+libdata/perl5/site_perl/Amavis/IO/Zlib.pm
+libdata/perl5/site_perl/Amavis/In/
+libdata/perl5/site_perl/Amavis/In/AMPDP.pm
+libdata/perl5/site_perl/Amavis/In/Connection.pm
+libdata/perl5/site_perl/Amavis/In/Message/
+libdata/perl5/site_perl/Amavis/In/Message.pm
+libdata/perl5/site_perl/Amavis/In/Message/PerRecip.pm
+libdata/perl5/site_perl/Amavis/In/SMTP.pm
+libdata/perl5/site_perl/Amavis/JSON.pm
+libdata/perl5/site_perl/Amavis/LDAP/
+libdata/perl5/site_perl/Amavis/LDAP/Connection.pm
+libdata/perl5/site_perl/Amavis/Log.pm
+libdata/perl5/site_perl/Amavis/Lookup/
+libdata/perl5/site_perl/Amavis/Lookup.pm
+libdata/perl5/site_perl/Amavis/Lookup/DNSxL.pm
+libdata/perl5/site_perl/Amavis/Lookup/IP.pm
+libdata/perl5/site_perl/Amavis/Lookup/LDAP.pm
+libdata/perl5/site_perl/Amavis/Lookup/LDAPattr.pm
+libdata/perl5/site_perl/Amavis/Lookup/Label.pm
+libdata/perl5/site_perl/Amavis/Lookup/Opaque.pm
+libdata/perl5/site_perl/Amavis/Lookup/OpaqueRef.pm
+libdata/perl5/site_perl/Amavis/Lookup/RE.pm
+libdata/perl5/site_perl/Amavis/Lookup/SQL.pm
+libdata/perl5/site_perl/Amavis/Lookup/SQLfield.pm
+libdata/perl5/site_perl/Amavis/MIME/
+libdata/perl5/site_perl/Amavis/MIME/Body/
+libdata/perl5/site_perl/Amavis/MIME/Body/OnOpenFh.pm
+libdata/perl5/site_perl/Amavis/Notify.pm
+libdata/perl5/site_perl/Amavis/OS_Fingerprint.pm
+libdata/perl5/site_perl/Amavis/Out/
+libdata/perl5/site_perl/Amavis/Out.pm
+libdata/perl5/site_perl/Amavis/Out/BSMTP.pm
+libdata/perl5/site_perl/Amavis/Out/EditHeader.pm
+libdata/perl5/site_perl/Amavis/Out/Local.pm
+libdata/perl5/site_perl/Amavis/Out/Pipe.pm
+libdata/perl5/site_perl/Amavis/Out/SMTP/
+libdata/perl5/site_perl/Amavis/Out/SMTP.pm
+libdata/perl5/site_perl/Amavis/Out/SMTP/Protocol.pm
+libdata/perl5/site_perl/Amavis/Out/SMTP/Session.pm
+libdata/perl5/site_perl/Amavis/Out/SQL/
+libdata/perl5/site_perl/Amavis/Out/SQL/Connection.pm
+libdata/perl5/site_perl/Amavis/Out/SQL/Log.pm
+libdata/perl5/site_perl/Amavis/Out/SQL/Quarantine.pm
+libdata/perl5/site_perl/Amavis/ProcControl.pm
+libdata/perl5/site_perl/Amavis/Redis.pm
+libdata/perl5/site_perl/Amavis/SpamControl/
+libdata/perl5/site_perl/Amavis/SpamControl.pm
+libdata/perl5/site_perl/Amavis/SpamControl/ExtProg.pm
+libdata/perl5/site_perl/Amavis/SpamControl/RspamdClient.pm
+libdata/perl5/site_perl/Amavis/SpamControl/SpamAssassin.pm
+libdata/perl5/site_perl/Amavis/SpamControl/SpamdClient.pm
+libdata/perl5/site_perl/Amavis/TempDir.pm
+libdata/perl5/site_perl/Amavis/Timing.pm
+libdata/perl5/site_perl/Amavis/TinyRedis.pm
+libdata/perl5/site_perl/Amavis/Tools.pm
+libdata/perl5/site_perl/Amavis/UnmangleSender.pm
+libdata/perl5/site_perl/Amavis/Unpackers/
+libdata/perl5/site_perl/Amavis/Unpackers.pm
+libdata/perl5/site_perl/Amavis/Unpackers/MIME.pm
+libdata/perl5/site_perl/Amavis/Unpackers/NewFilename.pm
+libdata/perl5/site_perl/Amavis/Unpackers/OurFiler.pm
+libdata/perl5/site_perl/Amavis/Unpackers/Part.pm
+libdata/perl5/site_perl/Amavis/Unpackers/Validity.pm
+libdata/perl5/site_perl/Amavis/Util.pm
+libdata/perl5/site_perl/Amavis/ZMQ.pm
+libdata/perl5/site_perl/Amavis/rfc2821_2822_Tools.pm
libdata/perl5/site_perl/JpegTester.pm
-libdata/perl5/site_perl/TinyRedis.pm
+libdata/perl5/site_perl/Mail/SpamAssassin/Logger/Amavislog.pm
sbin/amavisd
share/doc/amavisd-new/
share/doc/amavisd-new/AAAREADME.first
-share/doc/amavisd-new/INSTALL
share/doc/amavisd-new/LDAP.ldif
share/doc/amavisd-new/LDAP.schema
@sample ${SYSCONFDIR}/openldap/
@sample ${SYSCONFDIR}/openldap/schema/
@sample ${SYSCONFDIR}/openldap/schema/amavisd.schema
share/doc/amavisd-new/LICENSE
-share/doc/amavisd-new/MANIFEST
+share/doc/amavisd-new/MANIFEST.old
+share/doc/amavisd-new/README.CVE-2024-28054
share/doc/amavisd-new/README.banned
share/doc/amavisd-new/README.chroot
share/doc/amavisd-new/README.contributed
@@ -62,7 +146,3 @@ share/examples/amavisd-new/amavisd.conf-
@sample /var/amavisd/db/
@sample /var/amavisd/var/
@sample /var/virusmails/
-@mode
-@owner
-@group
-share/snmp/
Index: pkg/PLIST-utils
===================================================================
RCS file: /cvs/ports/mail/amavisd-new/pkg/PLIST-utils,v
diff -u -p -r1.4 PLIST-utils
--- pkg/PLIST-utils 11 Mar 2022 19:34:32 -0000 1.4
+++ pkg/PLIST-utils 25 Jun 2026 07:38:33 -0000
@@ -6,5 +6,6 @@ bin/amavisd-snmp-subagent-zmq
bin/amavisd-status
sbin/amavis-mc
sbin/amavis-services
+share/snmp/
share/snmp/mibs/
share/snmp/mibs/AMAVIS-MIB.txt