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.

-- 
Jim Lippard        [email protected]       http://www.discord.org/
GPG Key ID: 0x99FD5CD6


diff -urN ports/mail/amavisd-new/Makefile 
ports/mystuff/mail/amavisd-new/Makefile
--- ports/mail/amavisd-new/Makefile     Tue Sep 26 05:28:09 2023
+++ ports/mystuff/mail/amavisd-new/Makefile     Sat Jun 20 16:40:26 2026
@@ -1,13 +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=         0
-REVISION-utils=                0
+#REVISION-main=                0
+#REVISION-utils=               0
 
 HOMEPAGE=              http://www.amavis.org/
 MAINTAINER=            Giovanni Bechis <[email protected]>
@@ -46,38 +46,67 @@
                        devel/p5-ZMQ-LibZMQ3 \
                        mail/amavisd-new
 
-NO_BUILD=              Yes
+NO_BUILD=               Yes
 NO_TEST=               Yes
 
 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
+P5SITE=         libdata/perl5/site_perl
 
+post-extract:
+       ${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 \
-               ${PREFIX}/sbin/
-       cd ${WRKSRC}; ${INSTALL_SCRIPT} amavisd-agent amavisd-nanny \
+       # 1. Install Utils Binaries (Tracked under PLIST-utils)
+       ${INSTALL_SCRIPT_DIR} ${PREFIX}/sbin ${PREFIX}/bin
+       ${INSTALL_SCRIPT} ${WRKSRC}/bin/amavis-mc ${WRKSRC}/bin/amavis-services 
${PREFIX}/sbin/
+
+       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/
+       ${INSTALL_SCRIPT} ${WRKSRC}/contrib/p0f-analyzer.pl ${PREFIX}/bin/
+
+       # 2. Install Main Daemon Binary (Tracked under PLIST-main)
+       ${INSTALL_SCRIPT} ${WRKSRC}/bin/amavisd ${PREFIX}/sbin/amavisd
+
+       # 3. Install Modularized Perl Packages to OpenBSD's Proper Target Tree
+       ${INSTALL_DATA_DIR} ${PREFIX}/${P5SITE}/Amavis
+       ${INSTALL_DATA} ${WRKSRC}/contrib/JpegTester.pm 
${PREFIX}/${P5SITE}/JpegTester.pm
+
+       # Copy the core library master file
+       ${INSTALL_DATA} ${WRKSRC}/lib/Amavis.pm ${PREFIX}/${P5SITE}/Amavis.pm
+
+       # Recursively find and map all nested *.pm components inside lib/Amavis/
+       cd ${WRKSRC}/lib/Amavis && \
+               find . -type d -exec ${INSTALL_DATA_DIR} 
${PREFIX}/${P5SITE}/Amavis/{} \; && \
+               find . -type f -name "*.pm" -exec ${INSTALL_DATA} {} 
${PREFIX}/${P5SITE}/Amavis/{} \;
+
+       # Recursively install lib/Mail/ components if they exist
+       if [ -d ${WRKSRC}/lib/Mail ]; then \
+               cd ${WRKSRC}/lib/Mail && \
+               find . -type d -exec ${INSTALL_DATA_DIR} 
${PREFIX}/${P5SITE}/Mail/{} \; && \
+               find . -type f -name "*.pm" -exec ${INSTALL_DATA} {} 
${PREFIX}/${P5SITE}/Mail/{} \; ; \
+       fi
+
+       # 4. Install Shared Documentation
        ${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.schema \
+               contrib/LDAP.ldif LICENSE MANIFEST.old README_FILES/README.* 
RELEASE_NOTES \
                ${PREFIX}/share/doc/amavisd-new/
+
+       # 5. Install SNMP MIB Data
        ${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/
+
+       # 6. Install Sample Configurations
        ${INSTALL_DATA_DIR} ${PREFIX}/share/examples/amavisd-new
-       cd ${WRKSRC}; ${INSTALL_DATA} amavisd*.conf amavisd.conf-default \
+       cd ${WRKSRC}/conf; ${INSTALL_DATA} amavisd*.conf amavisd.conf-default \
                ${PREFIX}/share/examples/amavisd-new/
 
 .include <bsd.port.mk>
diff -urN ports/mail/amavisd-new/distinfo 
ports/mystuff/mail/amavisd-new/distinfo
--- ports/mail/amavisd-new/distinfo     Wed Jun 15 01:16:30 2022
+++ ports/mystuff/mail/amavisd-new/distinfo     Sat Jun 20 16:06:19 2026
@@ -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
diff -urN ports/mail/amavisd-new/patches/patch-amavis-mc 
ports/mystuff/mail/amavisd-new/patches/patch-amavis-mc
--- ports/mail/amavisd-new/patches/patch-amavis-mc      Fri Mar 11 12:34:32 2022
+++ ports/mystuff/mail/amavisd-new/patches/patch-amavis-mc      Wed Dec 31 
17:00:00 1969
@@ -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' },
diff -urN ports/mail/amavisd-new/patches/patch-amavis-services 
ports/mystuff/mail/amavisd-new/patches/patch-amavis-services
--- ports/mail/amavisd-new/patches/patch-amavis-services        Fri Mar 11 
12:34:32 2022
+++ ports/mystuff/mail/amavisd-new/patches/patch-amavis-services        Sat Jun 
20 16:00:49 2026
@@ -1,6 +1,6 @@
---- 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
+--- bin/amavis-services.orig   Sat Jun 20 10:32:20 2026
++++ bin/amavis-services        Sat Jun 20 10:32:43 2026
+@@ -72,7 +72,7 @@
  $syslog_facility = LOG_MAIL;
  $syslog_ident = $myproduct_name;
  
diff -urN ports/mail/amavisd-new/patches/patch-amavisd 
ports/mystuff/mail/amavisd-new/patches/patch-amavisd
--- ports/mail/amavisd-new/patches/patch-amavisd        Fri Mar 11 12:34:32 2022
+++ ports/mystuff/mail/amavisd-new/patches/patch-amavisd        Wed Dec 31 
17:00:00 1969
@@ -1,42 +0,0 @@
-Hunks 1, 4: Disable File::LibMagic in favour of safer file(1) from base.
-Hunks 2, 5: fix DKIM signing
-
-Index: amavisd
---- amavisd.orig
-+++ amavisd
-@@ -12939,7 +12939,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
-@@ -30859,7 +30859,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})
-@@ -31634,17 +31634,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;
- 
diff -urN ports/mail/amavisd-new/patches/patch-amavisd-snmp-subagent-zmq 
ports/mystuff/mail/amavisd-new/patches/patch-amavisd-snmp-subagent-zmq
--- ports/mail/amavisd-new/patches/patch-amavisd-snmp-subagent-zmq      Fri Mar 
11 12:34:32 2022
+++ ports/mystuff/mail/amavisd-new/patches/patch-amavisd-snmp-subagent-zmq      
Wed Dec 31 17:00:00 1969
@@ -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): $!");
diff -urN ports/mail/amavisd-new/patches/patch-amavisd_conf 
ports/mystuff/mail/amavisd-new/patches/patch-amavisd_conf
--- ports/mail/amavisd-new/patches/patch-amavisd_conf   Fri Mar 11 12:34:32 2022
+++ ports/mystuff/mail/amavisd-new/patches/patch-amavisd_conf   Wed Dec 31 
17:00:00 1969
@@ -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'],
diff -urN ports/mail/amavisd-new/patches/patch-amavisd_conf-default 
ports/mystuff/mail/amavisd-new/patches/patch-amavisd_conf-default
--- ports/mail/amavisd-new/patches/patch-amavisd_conf-default   Fri Mar 11 
12:34:32 2022
+++ ports/mystuff/mail/amavisd-new/patches/patch-amavisd_conf-default   Wed Dec 
31 17:00:00 1969
@@ -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],
diff -urN ports/mail/amavisd-new/patches/patch-bin_amavis-mc 
ports/mystuff/mail/amavisd-new/patches/patch-bin_amavis-mc
--- ports/mail/amavisd-new/patches/patch-bin_amavis-mc  Wed Dec 31 17:00:00 1969
+++ ports/mystuff/mail/amavisd-new/patches/patch-bin_amavis-mc  Sat Jun 20 
16:00:49 2026
@@ -0,0 +1,23 @@
+--- bin/amavis-mc.orig Sat Jun 20 13:49:43 2026
++++ bin/amavis-mc      Sat Jun 20 13:49:51 2026
+@@ -73,16 +73,16 @@
+ 
+ ### 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' },
diff -urN ports/mail/amavisd-new/patches/patch-bin_amvisd-snmp-subagent-zmq 
ports/mystuff/mail/amavisd-new/patches/patch-bin_amvisd-snmp-subagent-zmq
--- ports/mail/amavisd-new/patches/patch-bin_amvisd-snmp-subagent-zmq   Wed Dec 
31 17:00:00 1969
+++ ports/mystuff/mail/amavisd-new/patches/patch-bin_amvisd-snmp-subagent-zmq   
Sat Jun 20 16:00:49 2026
@@ -0,0 +1,11 @@
+--- bin/amavisd-snmp-subagent-zmq.orig Sat Jun 20 12:54:12 2026
++++ bin/amavisd-snmp-subagent-zmq      Sat Jun 20 12:55:01 2026
+@@ -1124,7 +1124,7 @@
+   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): $!");
diff -urN ports/mail/amavisd-new/patches/patch-conf_amavisd_conf 
ports/mystuff/mail/amavisd-new/patches/patch-conf_amavisd_conf
--- ports/mail/amavisd-new/patches/patch-conf_amavisd_conf      Wed Dec 31 
17:00:00 1969
+++ ports/mystuff/mail/amavisd-new/patches/patch-conf_amavisd_conf      Sat Jun 
20 16:13:51 2026
@@ -0,0 +1,40 @@
+--- conf/amavisd.conf.orig     Sat Jun 20 16:10:13 2026
++++ conf/amavisd.conf  Sat Jun 20 16:12:03 2026
+@@ -22,7 +22,7 @@
+ 
+ $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 @@
+ 
+   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 @@
+ @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 @@
+            # ['/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'],
diff -urN ports/mail/amavisd-new/patches/patch-conf_amavisd_conf-default 
ports/mystuff/mail/amavisd-new/patches/patch-conf_amavisd_conf-default
--- ports/mail/amavisd-new/patches/patch-conf_amavisd_conf-default      Wed Dec 
31 17:00:00 1969
+++ ports/mystuff/mail/amavisd-new/patches/patch-conf_amavisd_conf-default      
Sat Jun 20 16:00:49 2026
@@ -0,0 +1,28 @@
+--- conf/amavisd.conf-default.orig     Sat Jun 20 13:03:05 2026
++++ conf/amavisd.conf-default  Sat Jun 20 13:05:02 2026
+@@ -16,10 +16,10 @@
+ # $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
+@@ -382,8 +382,8 @@
+ ### ['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],
diff -urN ports/mail/amavisd-new/patches/patch-lib_Amavis_Conf_pm 
ports/mystuff/mail/amavisd-new/patches/patch-lib_Amavis_Conf_pm
--- ports/mail/amavisd-new/patches/patch-lib_Amavis_Conf_pm     Wed Dec 31 
17:00:00 1969
+++ ports/mystuff/mail/amavisd-new/patches/patch-lib_Amavis_Conf_pm     Sat Jun 
20 16:00:49 2026
@@ -0,0 +1,11 @@
+--- lib/Amavis/Conf.pm.orig    Sat Jun 20 13:21:19 2026
++++ lib/Amavis/Conf.pm Sat Jun 20 13:21:34 2026
+@@ -467,7 +467,7 @@
+ #
+ 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
diff -urN 
ports/mail/amavisd-new/patches/patch-lib_Amavis_SpamControl_SpamAssassin_pm 
ports/mystuff/mail/amavisd-new/patches/patch-lib_Amavis_SpamControl_SpamAssassin_pm
--- ports/mail/amavisd-new/patches/patch-lib_Amavis_SpamControl_SpamAssassin_pm 
Wed Dec 31 17:00:00 1969
+++ 
ports/mystuff/mail/amavisd-new/patches/patch-lib_Amavis_SpamControl_SpamAssassin_pm
 Sat Jun 20 16:00:49 2026
@@ -0,0 +1,11 @@
+--- lib/Amavis/SpamControl/SpamAssassin.pm.orig        Sat Jun 20 11:16:36 2026
++++ lib/Amavis/SpamControl/SpamAssassin.pm     Sat Jun 20 11:17:11 2026
+@@ -243,7 +243,7 @@
+ #   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})
diff -urN ports/mail/amavisd-new/patches/patch-lib_Amavis_Unpackers_pm 
ports/mystuff/mail/amavisd-new/patches/patch-lib_Amavis_Unpackers_pm
--- ports/mail/amavisd-new/patches/patch-lib_Amavis_Unpackers_pm        Wed Dec 
31 17:00:00 1969
+++ ports/mystuff/mail/amavisd-new/patches/patch-lib_Amavis_Unpackers_pm        
Sat Jun 20 16:00:49 2026
@@ -0,0 +1,21 @@
+--- lib/Amavis/Unpackers.pm.orig       Sat Jun 20 11:18:24 2026
++++ lib/Amavis/Unpackers.pm    Sat Jun 20 11:19:55 2026
+@@ -26,17 +26,8 @@
+ use Amavis::Util qw(untaint min max minmax ll do_log snmp_count
+                     prolong_timer rmdir_recursively add_entropy);
+ 
+-BEGIN {
+-  use vars qw($filemagic);
+-  eval {
+-    require File::LibMagic;
+-    File::LibMagic->VERSION(1.00);
+-    import File::LibMagic;
+-    $filemagic = File::LibMagic->new;
+-  } or do {
++    use vars qw($filemagic);
+     undef $filemagic;
+-  };
+-}
+ 
+ use subs @EXPORT_OK;
+ 
diff -urN ports/mail/amavisd-new/patches/patch-lib_Amavis_pm 
ports/mystuff/mail/amavisd-new/patches/patch-lib_Amavis_pm
--- ports/mail/amavisd-new/patches/patch-lib_Amavis_pm  Wed Dec 31 17:00:00 1969
+++ ports/mystuff/mail/amavisd-new/patches/patch-lib_Amavis_pm  Mon Jun 22 
07:39:10 2026
@@ -0,0 +1,11 @@
+--- lib/Amavis.pm.orig Fri Jul 11 06:07:39 2025
++++ lib/Amavis.pm      Sun Jun 21 11:00:26 2026
+@@ -890,7 +890,7 @@
+                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
diff -urN ports/mail/amavisd-new/pkg/PLIST-main 
ports/mystuff/mail/amavisd-new/pkg/PLIST-main
--- ports/mail/amavisd-new/pkg/PLIST-main       Tue Nov  8 04:14:48 2022
+++ ports/mystuff/mail/amavisd-new/pkg/PLIST-main       Sat Jun 20 16:43:21 2026
@@ -8,19 +8,103 @@
 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
@@ -51,6 +135,7 @@
 share/doc/amavisd-new/RELEASE_NOTES
 share/examples/amavisd-new/
 share/examples/amavisd-new/amavisd-custom.conf
+share/examples/amavisd-new/amavisd-docker.conf
 share/examples/amavisd-new/amavisd.conf
 @sample ${SYSCONFDIR}/amavisd.conf
 share/examples/amavisd-new/amavisd.conf-default
@@ -62,7 +147,3 @@
 @sample /var/amavisd/db/
 @sample /var/amavisd/var/
 @sample /var/virusmails/
-@mode
-@owner
-@group
-share/snmp/
diff -urN ports/mail/amavisd-new/pkg/PLIST-utils 
ports/mystuff/mail/amavisd-new/pkg/PLIST-utils
--- ports/mail/amavisd-new/pkg/PLIST-utils      Fri Mar 11 12:34:32 2022
+++ ports/mystuff/mail/amavisd-new/pkg/PLIST-utils      Sat Jun 20 16:00:49 2026
@@ -6,5 +6,4 @@
 bin/amavisd-status
 sbin/amavis-mc
 sbin/amavis-services
-share/snmp/mibs/
 share/snmp/mibs/AMAVIS-MIB.txt

Reply via email to